]> git.pld-linux.org Git - packages/pld-builder.git/blame_incremental - pld-builder.spec
drop rpm/{SPECS,SOURCES}
[packages/pld-builder.git] / pld-builder.spec
... / ...
CommitLineData
1%define snap 20141202
2Summary: PLD Linux RPM builder environment
3Summary(pl.UTF-8): Środowisko budowniczego pakietów RPM dla PLD
4Name: pld-builder
5Version: 0.6.%{snap}
6Release: 3
7License: GPL
8Group: Development/Building
9Source0: %{name}-%{version}.tar.bz2
10# Source0-md5: 2fae9f6f0db55331306ed5351219fdcb
11URL: http://git.pld-linux.org/projects/pld-builder.new
12BuildRequires: python
13BuildRequires: rpm-pythonprov
14BuildRequires: rpmbuild(macros) >= 1.469
15BuildRequires: sed >= 4.0
16Requires(post,preun): /sbin/chkconfig
17Requires(postun): /usr/sbin/userdel
18Requires(pre): /bin/id
19Requires(pre): /usr/bin/getgid
20Requires(pre): /usr/sbin/groupadd
21Requires(pre): /usr/sbin/useradd
22Requires: /usr/lib/sendmail
23Requires: bash
24Requires: bzip2
25Requires: crondaemon
26Requires: filesystem >= 3.0-33
27Requires: gnupg
28Requires: libuuid
29Requires: python
30Requires: python-pld-builder = %{version}-%{release}
31Requires: rc-scripts
32Requires: rsync
33Requires: sudo
34Provides: group(builder)
35Provides: user(builder)
36BuildArch: noarch
37BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
38
39%define _sysconfdir /etc/pld-builder
40%define _datadir /usr/share/%{name}
41
42# ensure these packaegs are never removed
43%define keep_packages() { \
44 f=/etc/rpm/sysinfo/Requirename; \
45 for pkg in %*; do \
46 grep -q "^$pkg$" $f && continue; \
47 echo $pkg >> $f; \
48 done; \
49}
50
51# remove packages from keep
52%define undo_keep_packages() { \
53 f=/etc/rpm/sysinfo/Requirename; \
54 for pkg in %*; do \
55 %{__sed} -i -e "/^$pkg$/d" $f; \
56 done; \
57}
58
59%description
60PLD RPM builder environment. This is the freshest "new" builder.
61
62Other new and older attempts can be found from:
63http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
64http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
65http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
66
67%description -l pl.UTF-8
68Środowisko budowniczego pakietów RPM dla PLD. To jest najnowszy "nowy"
69builder.
70
71Inne nowe i starsze próby można znaleźć pod:
72http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
73http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
74http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
75
76%package -n python-pld-builder
77Summary: PLD Builder
78Summary(pl.UTF-8): Budowniczy PLD
79Group: Development/Building
80Requires: python-modules
81
82%description -n python-pld-builder
83PLD Builder Python code.
84
85%description -n python-pld-builder -l pl.UTF-8
86Kod pythonowy budowniczego PLD.
87
88%package chroot
89Summary: PLD Builder chroot
90Summary(pl.UTF-8): Środowisko chroot buildera PLD
91Group: Development/Building
92Requires(postun): /usr/sbin/userdel
93Requires(pre): /bin/id
94Requires(pre): /usr/bin/getgid
95Requires(pre): /usr/sbin/groupadd
96Requires(pre): /usr/sbin/useradd
97Requires: basesystem
98Requires: bash
99Requires: filesystem >= 3.0-33
100Requires: mount
101Requires: poldek >= 0.21-0.20070703.00.16
102Requires: rpm-build
103Requires: time
104Requires: tmpwatch
105# NOTE: vserver-packages is usually hidden, so you must install it manually with --noignore
106Requires: vserver-packages
107Provides: group(builder)
108Provides: user(builder)
109# for srpm builder
110Requires: git-core
111Requires: rpm-build-tools
112Requires: rpm-specdump
113
114%description chroot
115This is the package to be installed in builder chroot.
116
117%description chroot -l pl.UTF-8
118Ten pakiet należy zainstalować w środowisku chroot buildera.
119
120%prep
121%setup -q
122
123for a in config/*.dist; do
124 mv $a ${a%.dist}
125done
126
127%{__sed} -i -e '
128 /^root_dir/s,=.*,= "%{_sharedstatedir}/%{name}",
129 /^conf_dir/s,=.*,= "%{_sysconfdir}",
130' PLD_Builder/path.py
131
132%{__sed} -i -e '
133 s,pld-linux\.org,example.org,g
134 s,/spools/ready,/var/cache/%{name}/ready,
135' config/builder.conf
136
137%build
138%{__make}
139%py_lint PLD_Builder
140
141%install
142rm -rf $RPM_BUILD_ROOT
143
144# python
145install -d $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
146cp -p PLD_Builder/*.py[co] $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
147
148# other
149install -d $RPM_BUILD_ROOT%{_sysconfdir}
150cp -p config/{rsync-passwords,*.conf} $RPM_BUILD_ROOT%{_sysconfdir}
151install -d $RPM_BUILD_ROOT%{_datadir}/{bin,admin}
152for a in bin/*.sh; do
153sed -e '
154 /cd ~\/pld-builder.new/d
155 s,python \(PLD_Builder.*.py\),python %{py_scriptdir}/\1c,
156' $a > $RPM_BUILD_ROOT%{_datadir}/bin/$(basename $a)
157done
158cp -a admin/*.sh $RPM_BUILD_ROOT%{_datadir}/admin
159
160# dirs
161install -d $RPM_BUILD_ROOT{%{_sharedstatedir}/%{name}/{spool/{buildlogs,builds,ftp,notify},lock},/etc/{sysconfig,rc.d/init.d}}
162install -d $RPM_BUILD_ROOT/home/services/builder/.gnupg
163install -d $RPM_BUILD_ROOT/home/services/builder/.ssh
164install -d $RPM_BUILD_ROOT/home/services/builder/rpm/{BUILD,RPMS,SRPMS,packages}
165install -d $RPM_BUILD_ROOT/var/cache/%{name}/ready
166ln -s %{_bindir}/builder $RPM_BUILD_ROOT/home/services/builder/rpm/packages
167
168install -d $RPM_BUILD_ROOT/etc/poldek/repos.d
169cp -p etc/poldek.conf $RPM_BUILD_ROOT/etc/poldek/repos.d/%{name}.conf
170
171install -d $RPM_BUILD_ROOT/etc/rpm
172cp -p etc/rpm.macros $RPM_BUILD_ROOT/etc/rpm/macros.builder
173
174# crontab
175install -d $RPM_BUILD_ROOT/etc/cron.d
176cp -p etc/crontab $RPM_BUILD_ROOT/etc/cron.d/%{name}
177
178# sudo
179install -d $RPM_BUILD_ROOT/etc/sudoers.d
180cp -p etc/sudo $RPM_BUILD_ROOT/etc/sudoers.d/%{name}
181
182install -p etc/pld-builder.init $RPM_BUILD_ROOT/etc/rc.d/init.d/pld-builder
183cp -p etc/pld-builder.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/pld-builder
184
185# from admin/fresh-queue.sh
186cd $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}
187install -d spool/{builds,buildlogs,notify,ftp} lock
188echo 0 > spool/last_req_no
189echo -n > spool/processed_ids
190echo -n > spool/got_lock
191echo '<queue/>' > spool/queue
192echo '<queue/>' > spool/req_queue
193if [ "$binary_builders" ]; then
194 for bb in $binary_builders; do
195 echo '<queue/>' > spool/queue-$bb
196 done
197fi
198
199%clean
200rm -rf $RPM_BUILD_ROOT
201
202%pre
203%groupadd -g 181 builder
204%useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
205
206%pre chroot
207%groupadd -g 181 builder
208%useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
209
210%post
211/sbin/chkconfig --add %{name}
212
213%preun
214if [ "$1" = "0" ]; then
215 %service %{name} stop
216 /sbin/chkconfig --del %{name}
217fi
218
219%postun
220if [ "$1" = "0" ]; then
221 %userremove builder
222 %groupremove builder
223fi
224
225%post chroot
226%keep_packages pld-builder-chroot
227
228%postun chroot
229if [ "$1" = "0" ]; then
230 %userremove builder
231 %groupremove builder
232 %undo_keep_packages pld-builder-chroot
233fi
234
235%files
236%defattr(644,root,root,755)
237%doc doc/{README,TODO,user-manual.txt}
238%lang(pl) %doc doc/{jak-to-dziala.txt,jak-wysylac-zlecenia.txt}
239
240%attr(754,root,root) /etc/rc.d/init.d/pld-builder
241%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pld-builder
242
243%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
244%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/%{name}
245
246%dir %{_sysconfdir}
247%attr(640,root,builder) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
248%attr(640,root,builder) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsync-passwords
249
250%dir %{_datadir}
251%dir %{_datadir}/bin
252%attr(755,root,root) %{_datadir}/bin/*
253%dir %{_datadir}/admin
254%attr(755,root,root) %{_datadir}/admin/*
255
256%dir %{_sharedstatedir}/%{name}
257
258%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool
259%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/buildlogs
260%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/builds
261%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/ftp
262%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/notify
263
264%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/got_lock
265%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/last_req_no
266%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/processed_ids
267%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/queue
268%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/req_queue
269
270%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/lock
271
272%dir %attr(750,builder,builder) /home/services/builder
273%dir %attr(750,builder,builder) /home/services/builder/.gnupg
274%dir %attr(700,builder,builder) /home/services/builder/.ssh
275
276%files chroot
277%defattr(644,root,root,755)
278%dir %attr(750,builder,builder) /home/services/builder
279%dir %attr(750,builder,builder) /home/services/builder/rpm
280%dir %attr(750,builder,builder) /home/services/builder/rpm/BUILD
281%dir %attr(750,builder,builder) /home/services/builder/rpm/RPMS
282%dir %attr(750,builder,builder) /home/services/builder/rpm/SRPMS
283%dir %attr(750,builder,builder) /home/services/builder/rpm/packages
284
285# for srpm builder
286%attr(750,builder,builder) /home/services/builder/rpm/packages/builder
287
288# minimal but sane defaults for rpm inside chroot
289%config(noreplace) %verify(not md5 mtime size) /etc/rpm/macros.builder
290
291# locally cached rpms from bin-builder
292%config(noreplace) %verify(not md5 mtime size) /etc/poldek/repos.d/%{name}.conf
293%dir /var/cache/%{name}
294%dir %attr(775,root,builder) /var/cache/%{name}/ready
295
296%files -n python-pld-builder
297%defattr(644,root,root,755)
298%{py_scriptdir}/PLD_Builder
This page took 0.065811 seconds and 4 git commands to generate.