2 Summary: PLD RPM builder environment
3 Summary(pl.UTF-8): Środowisko budowniczego pakietów RPM dla PLD
8 Group: Development/Building
9 Source0: %{name}-%{version}.tar.bz2
10 # Source0-md5: 33912ce1eff84b97afc1d686015d5b28
12 Source2: %{name}.sysconfig
13 URL: http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.new/
15 BuildRequires: rpm-pythonprov
16 BuildRequires: rpmbuild(macros) >= 1.469
17 BuildRequires: sed >= 4.0
18 Requires(post,preun): /sbin/chkconfig
19 Requires(postun): /usr/sbin/userdel
20 Requires(pre): /bin/id
21 Requires(pre): /usr/bin/getgid
22 Requires(pre): /usr/sbin/groupadd
23 Requires(pre): /usr/sbin/useradd
24 Requires: /usr/lib/sendmail
27 Requires: filesystem >= 3.0-33
31 Requires: python-pld-builder = %{version}-%{release}
35 Provides: group(builder)
36 Provides: user(builder)
38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40 %define _sysconfdir /etc/pld-builder
41 %define _datadir /usr/share/%{name}
44 PLD RPM builder environment. This is the freshest "new" builder.
46 Other new and older attempts can be found from:
47 http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
48 http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
49 http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
51 %description -l pl.UTF-8
52 Środowisko budowniczego pakietów RPM dla PLD. To jest najnowszy "nowy"
55 Inne nowe i starsze próby można znaleźć pod:
56 http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
57 http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
58 http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
60 %package -n python-pld-builder
62 Summary(pl.UTF-8): Budowniczy PLD
63 Group: Development/Building
64 %pyrequires_eq python-modules
66 %description -n python-pld-builder
67 PLD Builder Python code.
69 %description -n python-pld-builder -l pl.UTF-8
70 Kod pythonowy budowniczego PLD.
73 Summary: PLD Builder chroot
74 Summary(pl.UTF-8): Środowisko chroot buildera PLD
75 Group: Development/Building
76 Requires(postun): /usr/sbin/userdel
77 Requires(pre): /bin/id
78 Requires(pre): /usr/bin/getgid
79 Requires(pre): /usr/sbin/groupadd
80 Requires(pre): /usr/sbin/useradd
82 Requires: filesystem >= 3.0-33
84 Requires: poldek >= 0.21-0.20070703.00.16
87 # NOTE: vserver-packages is usually hidden, so you must install it manually with --noignore
89 Requires: vserver-packages
90 Provides: group(builder)
91 Provides: user(builder)
94 Requires: rpm-build-tools
97 This is the package to be installed in builder chroot.
99 %description chroot -l pl.UTF-8
100 Ten pakiet należy zainstalować w środowisku chroot buildera.
105 /^root_dir/s,=.*,= "%{_sharedstatedir}/%{name}",
106 /^conf_dir/s,=.*,= "%{_sysconfdir}",
107 ' PLD_Builder/path.py
110 s,pld-linux\.org,example.org,g
111 s,/spools/ready,/var/cache/%{name}/ready,
112 ' config/builder.conf
114 cat <<'EOF' > poldek.conf
115 # locally cached rpms
120 path = /var/cache/%{name}/ready/
123 cat <<'EOF' > crontab
127 #* * * * * builder exec nice -n 19 %{_datadir}/bin/request-fetcher.sh
128 #* * * * * builder exec nice -n 19 %{_datadir}/bin/load-balancer.sh
129 #* * * * * builder exec nice -n 19 %{_datadir}/bin/file-sender.sh
131 #0 0 * * * chroot /home/users/builder/chroot-ac nice -n 19 tmpwatch -m 240 /var/cache/%{name}/ready
134 cat <<'EOF' > procmailrc
141 * ^X-New-PLD-Builder:
142 | %{_datadir}/bin/request-handler.sh
152 cat <<'EOF' > rpm.macros
153 # rpm macros for pld builder chroot
155 # A colon separated list of desired locales to be installed;
156 # "all" means install all locale specific files.
157 %%_install_langs en_US
159 # If non-zero, all erasures will be automagically repackaged.
160 %%_repackage_all_erasures 0
162 # Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
163 # marked as %doc should be installed.
164 # FIXME: excludedocs breaks kde build
173 rm -rf $RPM_BUILD_ROOT
176 install -d $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
177 cp -a PLD_Builder/*.py[co] $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
180 install -d $RPM_BUILD_ROOT%{_sysconfdir}
181 cp -a config/{rsync-passwords,*.conf} $RPM_BUILD_ROOT%{_sysconfdir}
182 install -d $RPM_BUILD_ROOT%{_datadir}/{bin,admin}
183 for a in bin/*.sh; do
185 /cd ~\/pld-builder.new/d
186 s,python \(PLD_Builder.*.py\),python %{py_scriptdir}/\1c,
187 ' $a > $RPM_BUILD_ROOT%{_datadir}/bin/$(basename $a)
189 cp -a admin/*.sh $RPM_BUILD_ROOT%{_datadir}/admin
192 install -d $RPM_BUILD_ROOT{%{_sharedstatedir}/%{name}/{spool/{buildlogs,builds,ftp,notify},lock},/etc/{sysconfig,rc.d/init.d}}
193 install -d $RPM_BUILD_ROOT/home/services/builder/.gnupg
194 install -d $RPM_BUILD_ROOT/home/services/builder/.ssh
195 install -d $RPM_BUILD_ROOT/home/services/builder/rpm/{BUILD,RPMS,SRPMS,SPECS,SOURCES,packages/CVS}
196 install -d $RPM_BUILD_ROOT/var/cache/%{name}/ready
197 ln -s %{_bindir}/builder $RPM_BUILD_ROOT/home/services/builder/rpm/packages
199 echo "packages" > $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Repository
200 echo ":pserver:cvs@cvs.pld-linux.org:/cvsroot" > $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Root
201 touch $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Entries{,.Static}
203 install -d $RPM_BUILD_ROOT/etc/poldek/repos.d
204 cp -a poldek.conf $RPM_BUILD_ROOT/etc/poldek/repos.d/%{name}.conf
206 install -d $RPM_BUILD_ROOT/etc/rpm
207 cp -a rpm.macros $RPM_BUILD_ROOT/etc/rpm/macros.builder
210 install -d $RPM_BUILD_ROOT/etc/cron.d
211 cp -a crontab $RPM_BUILD_ROOT/etc/cron.d/%{name}
213 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pld-builder
214 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pld-builder
216 # from admin/fresh-queue.sh
217 cd $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}
218 install -d spool/{builds,buildlogs,notify,ftp} lock
219 echo 0 > spool/last_req_no
220 echo -n > spool/processed_ids
221 echo -n > spool/got_lock
222 echo '<queue/>' > spool/queue
223 echo '<queue/>' > spool/req_queue
224 if [ "$binary_builders" ]; then
225 for bb in $binary_builders; do
226 echo '<queue/>' > spool/queue-$bb
231 rm -rf $RPM_BUILD_ROOT
234 %groupadd -g 181 builder
235 %useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
238 %groupadd -g 181 builder
239 %useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
242 /sbin/chkconfig --add %{name}
245 if [ "$1" = "0" ]; then
246 %service %{name} stop
247 /sbin/chkconfig --del %{name}
251 if [ "$1" = "0" ]; then
257 if [ "$1" = "0" ]; then
263 %defattr(644,root,root,755)
266 %lang(pl) %doc jak-to-dziala.txt jak-wysylac-zlecenia.txt
268 %attr(754,root,root) /etc/rc.d/init.d/pld-builder
269 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pld-builder
271 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
274 %attr(640,root,builder) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
275 %attr(640,root,builder) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsync-passwords
279 %attr(755,root,root) %{_datadir}/bin/*
280 %dir %{_datadir}/admin
281 %attr(755,root,root) %{_datadir}/admin/*
283 %dir %{_sharedstatedir}/%{name}
285 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool
286 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/buildlogs
287 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/builds
288 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/ftp
289 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/notify
291 %attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/got_lock
292 %attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/last_req_no
293 %attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/processed_ids
294 %attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/queue
295 %attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/req_queue
297 %dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/lock
299 %dir %attr(750,builder,builder) /home/services/builder
300 %dir %attr(750,builder,builder) /home/services/builder/.gnupg
301 %dir %attr(700,builder,builder) /home/services/builder/.ssh
304 %defattr(644,root,root,755)
305 %dir %attr(750,builder,builder) /home/services/builder
306 %dir %attr(750,builder,builder) /home/services/builder/rpm
307 %dir %attr(750,builder,builder) /home/services/builder/rpm/BUILD
308 %dir %attr(750,builder,builder) /home/services/builder/rpm/RPMS
309 %dir %attr(750,builder,builder) /home/services/builder/rpm/SRPMS
310 %dir %attr(750,builder,builder) /home/services/builder/rpm/SPECS
311 %dir %attr(750,builder,builder) /home/services/builder/rpm/SOURCES
312 %dir %attr(750,builder,builder) /home/services/builder/rpm/packages
315 %attr(750,builder,builder) /home/services/builder/rpm/packages/builder
316 %dir %attr(750,builder,builder) /home/services/builder/rpm/packages/CVS
317 %attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Repository
318 %attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Root
319 %attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Entries
320 %attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Entries.Static
322 # minimal but sane defaults for rpm inside chroot
323 %config(noreplace) %verify(not md5 mtime size) /etc/rpm/macros.builder
325 # locally cached rpms from bin-builder
326 %config(noreplace) %verify(not md5 mtime size) /etc/poldek/repos.d/%{name}.conf
327 %dir /var/cache/%{name}
328 %dir %attr(775,root,builder) /var/cache/%{name}/ready
330 %files -n python-pld-builder
331 %defattr(644,root,root,755)
332 %{py_scriptdir}/PLD_Builder