source: pkgmngt/packageManager.xml.pacman@ 594ff3d

ablfs-more trunk
Last change on this file since 594ff3d was 55e82d2, checked in by Pierre Labastie <pierre.labastie@…>, 2 years ago

Various updates for pacman PM

  • update versions and instructions in packageManager.xml.pacman. Also remove the pages for old books.
  • Fix packInstall.sh.pacman, so that restarting after a failure is possible
  • Change LFS/lfs.xsl so that destdir install use symlinks for /lib, /sbin, and /bin. Remove also absolete commands for old books
  • fix gcc script in book parser
  • Property mode set to 100644
File size: 16.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- Above is a mandatory header for xml files. It must be the first
3line in the file. Change encoding to the one you use on your computer -->
4
5<!-- Mandatory DOCTYPE declaration. Fill free to add entities,
6but no external entities in local files, since they would not
7be accessible from JHALFSDIR. Change the document type `article' to
8book if you prefer. That slightly changes the aspect if you render
9it in html -->
10<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
11 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
12<!ENTITY libarchive-version "3.6.1">
13<!ENTITY curl-version "7.83.1">
14<!ENTITY fakeroot-version "1.29">
15<!ENTITY pacman-version "6.0.1">
16<!ENTITY libarchive-url "https://github.com/libarchive/libarchive/releases/download/v&libarchive-version;/libarchive-&libarchive-version;.tar.xz">
17<!ENTITY curl-url "https://curl.se/download/curl-&curl-version;.tar.xz">
18<!ENTITY fakeroot-url "http://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_&fakeroot-version;.orig.tar.gz">
19<!ENTITY pacman-url "https://sources.archlinux.org/other/pacman/pacman-&pacman-version;.tar.xz">
20<!ENTITY curl-md5 "08c6d9c25d9cf8d17be28363753e42ca">
21<!ENTITY libarchive-md5 "9465f7995649c9ea84854a7fd8c76f30">
22<!ENTITY fakeroot-md5 "cab9604a7dc1d58346e0d15bb285bd0f">
23<!ENTITY pacman-md5 "f71e6f06867749735960d0c1d199d375">
24<!ENTITY % general-entities SYSTEM "BOOK/general.ent">
25%general-entities;
26]>
27
28
29<!-- The first markup should be the one defined in the DOCTYPE DECLARATION -->
30<article>
31
32<!-- First section for the tarball download address.
33Only the next four lines are mandatory, but you can add anything
34to make the text look more like the LFS book.
35Do not change anything, except the url and the md5 checksum. -->
36<sect1 id="package">
37 <?dbhtml filename="package.html"?>
38
39 <title>All Packages</title>
40 <para>Download: <ulink url="&curl-url;"/></para>
41 <para>MD5 sum: <literal>&curl-md5;</literal></para>
42 <para>Download: <ulink url="&fakeroot-url;"/></para>
43 <para>MD5 sum: <literal>&fakeroot-md5;</literal></para>
44 <para>Download: <ulink url="&libarchive-url;"/></para>
45 <para>MD5 sum: <literal>&libarchive-md5;</literal></para>
46 <para>Download: <ulink url="&pacman-url;"/></para>
47 <para>MD5 sum: <literal>&pacman-md5;</literal></para>
48</sect1>
49
50<!-- If needed, uncomment and edit this:
51<sect1 id="patches">
52 <para>Download: <ulink url="somepatch-url"/></para>
53 <para>MD5 sum: <literal>somepatch-md5</literal></para>
54</sect1>
55-->
56
57<!-- pacman now needs ninja and meson, which needs
58 Python rebuilt with libffi and zlib. Needs also pkg-config -->
59<sect1 id="ch-chroot-libarchive" role="wrap">
60 <?dbhtml filename="libarchive.html"?>
61
62 <sect1info condition="script">
63 <productname>libarchive</productname>
64 <productnumber>&libarchive-version;</productnumber>
65 <address>&libarchive-url;</address>
66 </sect1info>
67
68 <title>Libarchive-&libarchive-version;</title>
69
70 <sect2 role="installation">
71 <title/>
72<screen><userinput remap="configure">./configure --prefix=/usr \
73 --without-bz2lib \
74 --without-xml2 \
75 --enable-bsdtar=static \
76 --enable-bsdcpio=static</userinput></screen>
77<screen><userinput remap="make">make</userinput></screen>
78<screen><userinput remap="install">make install</userinput></screen>
79 </sect2>
80
81</sect1>
82
83<sect1 id="ch-chroot-openssl" role="wrap">
84 <?dbhtml filename="openssl.html"?>
85
86 <sect1info condition="script">
87 <productname>openssl</productname>
88 <productnumber>&openssl-version;</productnumber>
89 <address>&openssl-url;</address>
90 </sect1info>
91
92 <title>openssl-&openssl-version;</title>
93
94 <sect2 role="installation">
95 <title/>
96<screen><userinput remap="configure">
97./config --prefix=/usr \
98 --openssldir=/etc/ssl \
99 --libdir=lib \
100 shared</userinput></screen>
101<screen><userinput remap="make">make</userinput></screen>
102<screen><userinput remap="install">make install</userinput></screen>
103 </sect2>
104
105</sect1>
106
107<sect1 id="ch-chroot-curl" role="wrap">
108 <?dbhtml filename="curl.html"?>
109
110 <sect1info condition="script">
111 <productname>curl</productname>
112 <productnumber>&curl-version;</productnumber>
113 <address>&curl-url;</address>
114 </sect1info>
115
116 <title>Curl-&curl-version;</title>
117
118 <sect2 role="installation">
119 <title/>
120<screen><userinput remap="configure">./configure --prefix=/usr \
121 --disable-static \
122 --with-openssl</userinput></screen>
123<screen><userinput remap="make">make</userinput></screen>
124<screen><userinput remap="install">make install</userinput></screen>
125 </sect2>
126
127</sect1>
128
129<sect1 id="ch-chroot-libcap" role="wrap">
130 <?dbhtml filename="libcap.html"?>
131
132 <sect1info condition="script">
133 <productname>libcap</productname>
134 <productnumber>&libcap-version;</productnumber>
135 <address>&libcap-url;</address>
136 </sect1info>
137
138 <title>libcap-&libcap-version;</title>
139
140 <sect2 role="installation">
141 <title/>
142<screen><userinput remap="pre">sed -i '/install -m.*STA/d' libcap/Makefile</userinput></screen>
143<screen><userinput remap="make">make prefix=/usr lib=lib</userinput></screen>
144<screen><userinput remap="install">make lib=lib prefix=/usr install</userinput></screen>
145 </sect2>
146
147</sect1>
148
149<sect1 id="ch-chroot-fakeroot" role="wrap">
150 <?dbhtml filename="fakeroot.html"?>
151
152 <sect1info condition="script">
153 <productname>fakeroot</productname>
154 <productnumber>&fakeroot-version;</productnumber>
155 <address>&fakeroot-url;</address>
156 </sect1info>
157
158 <title>fakeroot-&fakeroot-version;</title>
159
160 <sect2 role="installation">
161 <title/>
162<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
163<screen><userinput remap="make">make</userinput></screen>
164<screen><userinput remap="install">make install</userinput></screen>
165 </sect2>
166
167</sect1>
168
169<sect1 id="ch-chroot-zlib" role="wrap">
170 <?dbhtml filename="zlib.html"?>
171
172 <sect1info condition="script">
173 <productname>zlib</productname>
174 <productnumber>&zlib-version;</productnumber>
175 <address>&zlib-url;</address>
176 </sect1info>
177
178 <title>zlib-&zlib-version;</title>
179
180 <sect2 role="installation">
181 <title/>
182<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
183<screen><userinput remap="make">make</userinput></screen>
184<screen><userinput remap="install">make install
185rm -fv /usr/lib/libz.a</userinput></screen>
186 </sect2>
187
188</sect1>
189
190<sect1 id="ch-chroot-libffi" role="wrap">
191 <?dbhtml filename="libffi.html"?>
192
193 <sect1info condition="script">
194 <productname>libffi</productname>
195 <productnumber>&libffi-version;</productnumber>
196 <address>&libffi-url;</address>
197 </sect1info>
198
199 <title>libffi-&libffi-version;</title>
200
201 <sect2 role="installation">
202 <title/>
203<screen><userinput remap="configure">./configure --prefix=/usr --disable-static --with-gcc-arch=native --disable-exec-static-tramp</userinput></screen>
204<screen><userinput remap="make">make</userinput></screen>
205<screen><userinput remap="install">make install</userinput></screen>
206 </sect2>
207
208</sect1>
209
210<sect1 id="ch-chroot-python" role="wrap">
211 <?dbhtml filename="Python-pass2.html"?>
212
213 <sect1info condition="script">
214 <productname>Python</productname>
215 <productnumber>&python-version;</productnumber>
216 <address>&python-url;</address>
217 </sect1info>
218
219 <title>Python-&python-version;</title>
220
221 <sect2 role="installation">
222 <title/>
223<screen><userinput remap="configure">./configure --prefix=/usr --without-ensurepip --enable-shared</userinput></screen>
224<screen><userinput remap="make">make</userinput></screen>
225<screen><userinput remap="install">make install</userinput></screen>
226 </sect2>
227
228</sect1>
229
230<sect1 id="ch-chroot-ninja" role="wrap">
231 <?dbhtml filename="ninja.html"?>
232
233 <sect1info condition="script">
234 <productname>ninja</productname>
235 <productnumber>&ninja-version;</productnumber>
236 <address>&ninja-url;</address>
237 </sect1info>
238
239 <title>ninja-&ninja-version;</title>
240
241 <sect2 role="installation">
242 <title/>
243<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
244<screen><userinput remap="install">install -vm755 ninja /usr/bin/</userinput></screen>
245 </sect2>
246
247</sect1>
248
249<sect1 id="ch-chroot-meson" role="wrap">
250 <?dbhtml filename="meson.html"?>
251
252 <sect1info condition="script">
253 <productname>meson</productname>
254 <productnumber>&meson-version;</productnumber>
255 <address>&meson-url;</address>
256 </sect1info>
257
258 <title>meson-&meson-version;</title>
259
260 <sect2 role="installation">
261 <title/>
262<screen><userinput remap="install">cp meson.py /usr/bin/meson
263cp -rv mesonbuild /usr/bin</userinput></screen>
264 </sect2>
265
266</sect1>
267
268<sect1 id="ch-chroot-pkgconfig" role="wrap">
269 <?dbhtml filename="pkgconfig.html"?>
270
271 <sect1info condition="script">
272 <productname>pkg-config</productname>
273 <productnumber>&pkgconfig-version;</productnumber>
274 <address>&pkgconfig-url;</address>
275 </sect1info>
276
277 <title>pkg-config-&pkgconfig-version;</title>
278
279 <sect2 role="installation">
280 <title/>
281<screen><userinput remap="configure">./configure --prefix=/usr \
282 --with-internal-glib \
283 --disable-host-tool \
284 --docdir=/usr/share/doc/pkg-config-&pkgconfig-version;</userinput></screen>
285<screen><userinput remap="make">make</userinput></screen>
286<screen><userinput remap="install">make install</userinput></screen>
287 </sect2>
288
289</sect1>
290
291<sect1 id="ch-chroot-pkgmngt" role="wrap">
292 <?dbhtml filename="pacman.html"?>
293
294 <sect1info condition="script">
295 <productname>pacman</productname>
296 <productnumber>&pacman-version;</productnumber>
297 <address>&pacman-url;</address>
298 </sect1info>
299
300 <title>Pacman-&pacman-version;</title>
301
302 <sect2 role="installation">
303 <title/>
304<screen><userinput remap="configure">mkdir build
305cd build
306meson --prefix=/usr \
307 -Dcrypto=openssl \
308 -Ddoc=disabled \
309 -Dgpgme=disabled</userinput></screen>
310
311<screen><userinput remap="make">ninja</userinput></screen>
312
313<screen><userinput remap="install">ninja install</userinput></screen>
314
315<screen><userinput>sed -e 's/\([^!]\)strip/\1!strip/' \
316 -e 's/\([^!]\)libtool/\1!libtool/' \
317 -e 's/\([^!]\)zipman/\1!zipman/' \
318 -i /etc/makepkg.conf
319cat &gt;&gt; /etc/makepkg.conf &lt;&lt; EOF
320BUILDDIR=/sources
321PKGDEST=/var/lib/packages
322PACKAGER="Pierre Labastie &lt;lnimbus@club-internet.fr&gt;"
323EOF
324cat &gt;&gt; /etc/pacman.conf &lt;&lt; EOF
325DBPath = /var/lib/pacman/
326CacheDir = /var/cache/pacman/pkg/
327LogFile = /var/log/pacman.log
328SigLevel = Never
329# Repository: do not add one now: repo-add needs openssl.
330EOF</userinput></screen>
331
332 </sect2>
333
334</sect1>
335
336<sect1 id="ch-chroot-shadow" role="wrap">
337 <?dbhtml filename="shadow.html"?>
338
339 <sect1info condition="script">
340 <productname>shadow</productname>
341 <productnumber>&shadow-version;</productnumber>
342 <address>&shadow-url;</address>
343 </sect1info>
344
345 <title>shadow-&shadow-version;</title>
346
347 <sect2 role="installation">
348 <title/>
349<screen><userinput remap="pre">sed -i 's/groups$(EXEEXT) //' src/Makefile.in
350find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
351find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
352find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
353sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
354 -e 's:/var/spool/mail:/var/mail:' \
355 -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
356 -i etc/login.defs</userinput></screen>
357<screen><userinput remap="configure">touch /usr/bin/passwd
358./configure --sysconfdir=/etc --disable-static \
359 --with-group-name-max-length=32</userinput></screen>
360<screen><userinput remap="make">make</userinput></screen>
361<screen><userinput remap="install">make install</userinput></screen>
362 </sect2>
363
364</sect1>
365
366<!-- Mandatory section for creating dirs. These instructions are added at the
367end of the creating dirs instructions of the book. Do not change the
368following line -->
369<sect1 id="ch-pkgmngt-creatingdirs">
370
371 <title>Creating Directories</title>
372
373<screen><userinput>mkdir -pv /var/{lib/{packages,pacman},cache/pkg}</userinput></screen>
374
375</sect1>
376<!-- Same for files. Do not change the following line -->
377<sect1 id="ch-pkgmngt-createfiles">
378
379 <title>Creating Essential Files</title>
380
381<screen><userinput>if ! grep -q tester /etc/passwd; then
382 echo "builder:x:101:101::/home/builder:/bin/bash" >> /etc/passwd
383 echo "builder:x:101:" >> /etc/group
384 install -o builder -d /home/builder
385else
386 TEST_UID=$(grep tester /etc/passwd | cut -d: -f3)
387 TEST_GID=$(grep tester /etc/group | cut -d: -f3)
388 echo "builder:x:$((TEST_UID+1)):$((TEST_GID+1))::/home/builder:/bin/bash" >> /etc/passwd
389 echo "builder:x:$((TEST_GID+1)):" >> /etc/group
390 install -o builder -d /home/builder
391fi
392chown builder:builder /var/lib/{packages,pacman}</userinput></screen>
393
394</sect1>
395
396<!-- Last but not least : Final instructions for installing the
397package manager at the end of chapter 6. Again, the scriptlet file name is
398taken from the dbhtml instruction, with digits added before and .html cut
399and the tarball name is formed from this name + version. So the file
400here _must_ be the same as in chapter 5. If rendering in html, both
401sets of instructions end up in the same file, which is usually not a problem.
402-->
403<sect1 id="ch-system-libarchive" role="wrap">
404 <?dbhtml filename="libarchive.html"?>
405
406 <sect1info condition="script">
407 <productname>libarchive</productname>
408 <productnumber>&libarchive-version;</productnumber>
409 <address>&libarchive-url;</address>
410 </sect1info>
411
412 <title>Libarchive-&libarchive-version;</title>
413
414 <sect2 role="installation">
415 <title/>
416<screen><userinput remap="configure">./configure --prefix=/usr \
417 --disable-static</userinput></screen>
418<screen><userinput remap="make">make</userinput></screen>
419<screen><userinput remap="install">make DESTDIR=$PKG_DEST install</userinput></screen>
420 </sect2>
421
422</sect1>
423<sect1 id="ch-system-curl" role="wrap">
424 <?dbhtml filename="curl.html"?>
425
426 <sect1info condition="script">
427 <productname>curl</productname>
428 <productnumber>&curl-version;</productnumber>
429 <address>&curl-url;</address>
430 </sect1info>
431
432 <title>Curl-&curl-version;</title>
433
434 <sect2 role="installation">
435 <title/>
436<screen><userinput remap="configure">./configure --prefix=/usr \
437 --disable-static --with-openssl \
438 --enable-threaded-resolver \
439 --with-ca-path=/etc/ssl/certs</userinput></screen>
440<screen><userinput remap="make">make</userinput></screen>
441<screen><userinput remap="install">make DESTDIR=$PKG_DEST install
442rm -rf docs/examples/.deps
443find docs \( -name "Makefile*" -o -name "*.1" -o -name "*.3" \) -exec rm {} \;
444install -v -d -m755 $PKG_DEST/usr/share/doc/curl-&curl-version;
445cp -v -R docs/* $PKG_DEST/usr/share/doc/curl-&curl-version;</userinput></screen>
446 </sect2>
447
448</sect1>
449
450<sect1 id="ch-system-fakeroot" role="wrap">
451 <?dbhtml filename="fakeroot.html"?>
452
453 <sect1info condition="script">
454 <productname>fakeroot</productname>
455 <productnumber>&fakeroot-version;</productnumber>
456 <address>&fakeroot-url;</address>
457 </sect1info>
458
459 <title>fakeroot-&fakeroot-version;</title>
460
461 <sect2 role="installation">
462 <title/>
463<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
464<screen><userinput remap="make">make</userinput></screen>
465<screen><userinput remap="install">make DESTDIR=$PKG_DEST install</userinput></screen>
466 </sect2>
467
468</sect1>
469
470<sect1 id="ch-system-pkgmngt" role="wrap">
471 <?dbhtml filename="pacman.html"?>
472
473 <sect1info condition="script">
474 <productname>pacman</productname>
475 <productnumber>&pacman-version;</productnumber>
476 <address>&pacman-url;</address>
477 </sect1info>
478
479 <title>Pacman-&pacman-version;</title>
480
481 <sect2 role="installation">
482 <title/>
483
484<screen><userinput remap="configure">mkdir build
485cd build
486meson --prefix=/usr \
487 -Dcrypto=openssl</userinput></screen>
488
489<screen><userinput remap="make">ninja</userinput></screen>
490
491<!-- Those instructions are executed with PKG_DEST set. They are not processed
492in any way to add $PKG_DEST at some place, and the PKG_DEST directory is not
493populated before, so it is basically empty. You have thus to create any directory
494needed in $PKG_DEST and not otherwise created by the make install command. -->
495<screen><userinput remap="install">DESTDIR=$PKG_DEST ninja install</userinput></screen>
496
497<screen><userinput>sed -e 's/\([^!]\)strip/\1!strip/' \
498 -e 's/\([^!]\)zipman/\1!zipman/' \
499 -e 's/\([^!]\)libtool/\1!libtool/' \
500 -i /etc/makepkg.conf
501cat &gt;&gt; /etc/makepkg.conf &lt;&lt; EOF
502BUILDDIR=/sources
503PKGDEST=/var/lib/packages
504PACKAGER="Pierre Labastie &lt;lnimbus@club-internet.fr&lt;"
505EOF
506cat &gt;&gt; /etc/pacman.conf &lt;&lt; EOF
507DBPath = /var/lib/pacman/
508CacheDir = /var/cache/pacman/pkg/
509LogFile = /var/log/pacman.log
510SigLevel = Never
511EOF</userinput></screen>
512
513 </sect2>
514
515</sect1>
516</article>
Note: See TracBrowser for help on using the repository browser.