You are not logged in.

#1 2016-11-05 14:43:57

czk
Member
Registered: 2013-01-09
Posts: 6

bootstrap tarball's package list

Hi,

Could anyone please explain how the bootstrap tarballs (eg. http://archlinux.de-labrusse.fr/iso/201 … 64.tar.gz) get created?

I can't find any information on that on the Wiki, MLs or the forum.

I'm most interested in how the list of packages to be included is determined. Is that list published somewhere?

The current tarball's pacman.log mentions 77 packages:

$ tar xf archlinux-bootstrap-2016.11.01-x86_64.tar.gz
$ grep installed root.x86_64/var/log/pacman.log
[2016-11-01 12:10] [ALPM] installed linux-api-headers (4.7-1)
[2016-11-01 12:10] [ALPM] installed tzdata (2016h-1)
[2016-11-01 12:10] [ALPM] installed iana-etc (20160927-1)
[2016-11-01 12:10] [ALPM] installed filesystem (2015.09-1)
[2016-11-01 12:10] [ALPM] installed glibc (2.24-2)
[2016-11-01 12:10] [ALPM] installed gcc-libs (6.2.1-1)
[2016-11-01 12:10] [ALPM] installed ncurses (6.0-4)
[2016-11-01 12:10] [ALPM] installed readline (6.3.008-4)
[2016-11-01 12:10] [ALPM] installed bash (4.3.046-1)
[2016-11-01 12:10] [ALPM] installed attr (2.4.47-1)
[2016-11-01 12:10] [ALPM] installed acl (2.2.52-2)
[2016-11-01 12:10] [ALPM] installed gmp (6.1.1-1)
[2016-11-01 12:10] [ALPM] installed libcap (2.25-1)
[2016-11-01 12:10] [ALPM] installed gdbm (1.12-2)
[2016-11-01 12:10] [ALPM] installed db (5.3.28-3)
[2016-11-01 12:10] [ALPM] installed perl (5.24.0-2)
[2016-11-01 12:10] [ALPM] installed openssl (1.0.2.j-1)
[2016-11-01 12:10] [ALPM] installed coreutils (8.25-2)
[2016-11-01 12:10] [ALPM] installed bzip2 (1.0.6-5)
[2016-11-01 12:10] [ALPM] installed expat (2.2.0-2)
[2016-11-01 12:10] [ALPM] installed lz4 (131-2)
[2016-11-01 12:10] [ALPM] installed lzo (2.09-1)
[2016-11-01 12:10] [ALPM] installed xz (5.2.2-1)
[2016-11-01 12:10] [ALPM] installed zlib (1.2.8-4)
[2016-11-01 12:10] [ALPM] installed libarchive (3.2.1-2)
[2016-11-01 12:10] [ALPM] installed findutils (4.6.0-2)
[2016-11-01 12:10] [ALPM] installed libtasn1 (4.9-2)
[2016-11-01 12:10] [ALPM] installed libffi (3.2.1-2)
[2016-11-01 12:10] [ALPM] installed p11-kit (0.23.2-1)
[2016-11-01 12:10] [ALPM] installed ca-certificates-utils (20160507-1)
[2016-11-01 12:10] [ALPM] installed ca-certificates-mozilla (3.27.1-1)
[2016-11-01 12:10] [ALPM] installed ca-certificates-cacert (20140824-3)
[2016-11-01 12:10] [ALPM] installed ca-certificates (20160507-1)
[2016-11-01 12:10] [ALPM] installed libutil-linux (2.28.2-1)
[2016-11-01 12:10] [ALPM] installed e2fsprogs (1.43.3-1)
[2016-11-01 12:10] [ALPM] installed libsasl (2.1.26-8)
[2016-11-01 12:10] [ALPM] installed libldap (2.4.44-2)
[2016-11-01 12:10] [ALPM] installed keyutils (1.5.9-1)
[2016-11-01 12:10] [ALPM] installed krb5 (1.13.4-1)
[2016-11-01 12:10] [ALPM] installed libidn (1.33-1)
[2016-11-01 12:10] [ALPM] installed libssh2 (1.7.0-2)
[2016-11-01 12:10] [ALPM] installed curl (7.50.3-1)
[2016-11-01 12:10] [ALPM] installed libgpg-error (1.24-1)
[2016-11-01 12:10] [ALPM] installed npth (1.2-1)
[2016-11-01 12:10] [ALPM] installed libgcrypt (1.7.3-1)
[2016-11-01 12:10] [ALPM] installed libksba (1.3.4-2)
[2016-11-01 12:10] [ALPM] installed libassuan (2.4.3-1)
[2016-11-01 12:10] [ALPM] installed pcre (8.39-1)
[2016-11-01 12:10] [ALPM] installed glib2 (2.50.1-1)
[2016-11-01 12:10] [ALPM] installed libsecret (0.18.5-1)
[2016-11-01 12:10] [ALPM] installed pinentry (0.9.7-3)
[2016-11-01 12:10] [ALPM] installed nettle (3.3-1)
[2016-11-01 12:10] [ALPM] installed gnutls (3.4.16-1)
[2016-11-01 12:10] [ALPM] installed sqlite (3.15.0-1)
[2016-11-01 12:10] [ALPM] installed gnupg (2.1.15-1)
[2016-11-01 12:10] [ALPM] installed gpgme (1.6.0-3)
[2016-11-01 12:10] [ALPM] installed pacman-mirrorlist (20161101-1)
[2016-11-01 12:10] [ALPM] installed archlinux-keyring (20161101-1)
[2016-11-01 12:10] [ALPM] installed pacman (5.0.1-4)
[2016-11-01 12:10] [ALPM] installed cracklib (2.9.6-1)
[2016-11-01 12:10] [ALPM] installed libtirpc (1.0.1-2)
[2016-11-01 12:10] [ALPM] installed pambase (20130928-1)
[2016-11-01 12:10] [ALPM] installed pam (1.3.0-1)
[2016-11-01 12:10] [ALPM] installed shadow (4.4-2)
[2016-11-01 12:10] [ALPM] installed libsystemd (231-4)
[2016-11-01 12:10] [ALPM] installed util-linux (2.28.2-1)
[2016-11-01 12:10] [ALPM] installed arch-install-scripts (17-1)
[2016-11-01 12:10] [ALPM] installed dbus (1.10.12-1)
[2016-11-01 12:10] [ALPM] installed libmnl (1.0.4-1)
[2016-11-01 12:10] [ALPM] installed libnftnl (1.0.6-1)
[2016-11-01 12:10] [ALPM] installed iptables (1.6.0-1)
[2016-11-01 12:10] [ALPM] installed kbd (2.0.3-1)
[2016-11-01 12:10] [ALPM] installed kmod (23-1)
[2016-11-01 12:10] [ALPM] installed hwids (20160801-1)
[2016-11-01 12:10] [ALPM] installed libelf (0.167-1)
[2016-11-01 12:10] [ALPM] installed libseccomp (2.3.1-1)
[2016-11-01 12:10] [ALPM] installed systemd (231-4)

Offline

#2 2016-11-09 20:35:07

czk
Member
Registered: 2013-01-09
Posts: 6

Re: bootstrap tarball's package list

Some background story: I have come up with an Arch Linux Docker base image build setup, based on bootstrap tarball. Compared to the shell script approach (https://wiki.archlinux.org/index.php/Docker#Build_Image), it has the benefit of enabling Arch Linux Docker image builds on non-Arch  hosts, and does not require root. Here: https://github.com/czka/archlinux-docker.

I would like to learn how the bootstrap tarballs get created to ask the authors whether they could additionally contain sed (needed by rankmirrors and locale-gen), gzip (for locale-gen) and awk (for paccache). This would let me simplify the Dockerfile a bit.

BTW, I'm also wondering about 2 other things:

1. /dev/ setup.

mkimage-arch.sh does the following:

mknod -m 666 $DEV/null c 1 3
mknod -m 666 $DEV/zero c 1 5
mknod -m 666 $DEV/random c 1 8
mknod -m 666 $DEV/urandom c 1 9
mkdir -m 755 $DEV/pts
mkdir -m 1777 $DEV/shm
mknod -m 666 $DEV/tty c 5 0
mknod -m 600 $DEV/console c 5 1
mknod -m 666 $DEV/tty0 c 4 0
mknod -m 666 $DEV/full c 1 7
mknod -m 600 $DEV/initctl p
mknod -m 666 $DEV/ptmx c 5 2

Whereas a `docker run' creates the following on its own:

crw-------  1 root root 136,   2 Nov  8 21:48 console
lrwxrwxrwx  1 root root       11 Nov  8 21:29 core -> /proc/kcore
lrwxrwxrwx  1 root root       13 Nov  8 21:29 fd -> /proc/self/fd
crw-rw-rw-  1 root root   1,   7 Nov  8 21:29 full
crw-rw-rw-  1 root root  10, 229 Nov  8 21:29 fuse
drwxrwxrwt  2 root root       40 Nov  8 21:29 mqueue
crw-rw-rw-  1 root root   1,   3 Nov  8 21:29 null
lrwxrwxrwx  1 root root        8 Nov  8 21:29 ptmx -> pts/ptmx
drwxr-xr-x  2 root root        0 Nov  8 21:29 pts
crw-rw-rw-  1 root root   1,   8 Nov  8 21:29 random
drwxrwxrwt  2 root root       40 Nov  8 21:29 shm
lrwxrwxrwx  1 root root       15 Nov  8 21:29 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 root root       15 Nov  8 21:29 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 root root       15 Nov  8 21:29 stdout -> /proc/self/fd/1
crw-rw-rw-  1 root root   5,   0 Nov  8 21:29 tty
crw-rw-rw-  1 root root   1,   9 Nov  8 21:29 urandom
crw-rw-rw-  1 root root   1,   5 Nov  8 21:29 zero

So it seems that mkimage-arch.sh creates most of the devices for no purpose, right? Only tty0 and initctl are missing in Docker's default /dev. FWIW, on my Arch Linux machine initctl is a link to /run/systemd/initctl/fifo:

lrwxrwxrwx 1 root root 25 11-04 09:19 /dev/initctl -> /run/systemd/initctl/fifo
prw------- 1 root root 0 11-04 09:19 /run/systemd/initctl/fifo

systemd will not normally run on a Docker container. So maybe /dev/initctl still has has be created manually? What about /dev/tty0? Any thoughts welcome.

2. Is haveged still necessary?

I have built a rather big number of Arch Linux Docker images and "pacman-key --init" ran fine and fast each time without having to run haveged in advance, to provide more entropy. Am I just lucky, or could the script drop haveged as well? Or maybe there is a good reason to run haveged anyway?

Offline

Board footer

Powered by FluxBB