-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathgolf.spec
executable file
·155 lines (135 loc) · 5.05 KB
/
golf.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#SPDX-License-Identifier: Apache-2.0
#Copyright 2018 Gliim LLC.
#Licensed under Apache License v2. See LICENSE file.
#On the web http://golf-lang.com/ - this file is part of Golf framework.
Name: golf
Version: 471
Release: 1%{?dist}
Summary: Language and server for web services and back-end solutions
Vendor: Golf Team
Group: Development/Tools
URL: https://golf-lang.com/
License: Apache-2.0
Source0: https://github.com/golf-lang/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
#Make sure to install EPEL (currently just for fcgi/fcgi_devel): sudo dnf install epel-release
#NOTE: the package includes devel packages and .h files since this is a development tool
#Meaning there is no package and "development" package. It is *both* in one by nature.
%define all_requires make gcc openssl-devel libcurl-devel pcre2-devel libxml2-devel
#python utils for selinux, only for rhel
%if 0%{?rhel}
%define rhel_sel policycoreutils-python-utils
%endif
#requirements:
#sudo dnf -y install rpmdevtools dnf-utils
#sudo dnf builddep -y golf.spec
#OPENSUSE:sudo zypper -n install rpmdevtools yum-utils
#OPENSUSE:sudo yum-builddep -y golf.spec (bug with rpmutils missing, however)
#OPENSUSE has no default policy: no SELINUX
#OPENSUSE:FastCGI is for cgi-fcgi utility
#Note: is_opensuse does seem to work on Tumbleweed, but not on Leap (where sle_version works)
%if 0%{?sle_version} || 0%{?is_opensuse}
%define suse_requires %all_requires libmariadb-devel gpg sshpass FastCGI FastCGI-devel postgresql-devel sqlite3-devel
BuildRequires: %suse_requires
Requires: %suse_requires
%else
#MAGEIA:sudo dnf -y install rpmdevtools dnf-utils
#MAGEIA:sudo dnf builddep -y mageia.spec
#MAGEIA:fcgi is for cgi-fcgi utility
%if 0%{?mgaversion} >= 8
#SELINUX:policycoreutils policycoreutils-devel libselinux-utils
%define mga_requires %all_requires mariadb-devel libfcgi-devel postgresql-devel policycoreutils policycoreutils-devel libselinux-utils sqlite3-devel
BuildRequires: %mga_requires
Requires: %mga_requires
%else
#SELINUX:policycoreutils policycoreutils-devel libselinux-utils
#fcgi is for cgi-fcgi utility; sometimes it's packaged within fcgi-devel and sometimes not.
%define rh_requires %all_requires mariadb-connector-c-devel fcgi-devel libpq-devel policycoreutils policycoreutils-devel libselinux-utils sqlite-devel
BuildRequires: %rh_requires %{?rhel_sel}
Requires: %rh_requires %{?rhel_sel}
%endif
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}
%description
Golf is a memory-safe and high-performance programming language and
application server. Golf is a compiled language that creates native
executables. It's main purpose is easy and rapid development and
deployment of web services and applications on Linux back-end.
Golf is built with industry-standard Free Open Source libraries,
extensible with C programming language.
%prep
%autosetup -n %{name}-471
%build
make clean
make GG_FEDORA_BUILD=1
%install
rm -rf %{buildroot}/*
#GG_FAKEROOT=1 means do not install selinux script to generate policy. This should be done only when sudo make install (from source)
#or when actually installing the rpm (in which case install doesn't run at all)
#GG_FAKEROOT=1 basically means this is fake root.
make DESTDIR="%{buildroot}" GG_FAKEROOT=1 GG_FEDORA_BUILD=1 install
%post
#since post runs during installation, execute selinux.setup
#sudo /usr/lib/golf/selinux/selinux.setup
/usr/lib/golf/selinux/selinux.setup
%files
%license LICENSE
%dir /var/lib/gg
%dir /var/lib/gg/bld/
%dir /usr/lib/golf/
%dir /usr/include/golf/
%dir /usr/lib/golf/selinux
%dir /usr/share/doc/golf
/usr/include/golf/golf.h
/usr/include/golf/gcli.h
/usr/lib/golf/libgolfarr.so
/usr/lib/golf/libgolfpg.so
/usr/lib/golf/libgolfdb.so
/usr/lib/golf/libgolflite.so
/usr/lib/golf/libgolfmys.so
/usr/lib/golf/libgolfsec.so
/usr/lib/golf/libgolftree.so
/usr/lib/golf/libgolfcurl.so
/usr/lib/golf/libgolfxml.so
/usr/lib/golf/libgolfpcre2.so
/usr/lib/golf/libsrvcgolf.so
/usr/lib/golf/libgolf.so
/usr/lib/golf/libgolfcli.so
/usr/lib/golf/libgolfscli.so
/usr/lib/golf/stub_arr.o
/usr/lib/golf/stub_after.o
/usr/lib/golf/stub_crypto.o
/usr/lib/golf/stub_gendb.o
/usr/lib/golf/stub_pcre2.o
/usr/lib/golf/stub_sqlite.o
/usr/lib/golf/stub_tree.o
/usr/lib/golf/stub_before.o
/usr/lib/golf/stub_curl.o
/usr/lib/golf/stub_mariadb.o
/usr/lib/golf/stub_postgres.o
/usr/lib/golf/stub_srvc.o
/usr/lib/golf/stub_xml.o
/usr/lib/golf/vmakefile
/usr/lib/golf/vdiag
/usr/lib/golf/golf.vim
/usr/lib/golf/sys
/usr/lib/golf/v1
/usr/share/doc/golf/LICENSE
/usr/share/doc/golf/NOTICE
/usr/share/doc/golf/README.md
/usr/share/doc/golf/CONTRIBUTING.md
/usr/bin/mgrg
/usr/bin/gg
/usr/share/man/man2/*.2gg*
#SELINUX
#Always distribute source selinux policy files; support for pp distribution is shaky, so none given (we generate pp files)
/usr/lib/golf/selinux/gg.te
/usr/lib/golf/selinux/gg.fc
/usr/lib/golf/selinux/golf.te
/usr/lib/golf/selinux/golf.sel
/usr/lib/golf/selinux/selinux.setup
#/usr/lib/selinux/golf.pp
#/usr/lib/selinux/gg.pp
#SELINUXEND
%changelog
* Fri Jan 31 2025 Gliim LLC <team@golf-lang.com> - 2.0.0-1
- Initial version.