Age | Commit message (Collapse) | Author |
|
The change in arch-nspawn is subtle:
This was the source of "infamous" "it fails every other time" bug that
took me over a year to solve. <https://labs.parabola.nu/issues/435>
By having a repository of local packages (rather than simply running
`pacman -U`), we are inviting pacman to cache them in
`/var/cache/pacman/pkg`. Besides being needless disk writes, this
actually causes a real issue. If the package gets rebuilt, pacman
will balk, as the file no longer matches the cached signature.
So, how do we prevent pacman from caching these local packages?
Simple: include the directory they are already in in the
pacman.conf:CacheDir list. This will prevent pacman from copying
the files to one of the other cache directories.
|
|
This allows us to run an ARM chroot on an x86 box; as the binfmt
runner will set the architecture for us, and the x86
`/usr/bin/setarch` program won't know about the ARM architecture
string.
|
|
This allows us to copy in files like `qemu-arm-static`, which is
necessary for running an ARM chroot on an x86 box.
|
|
|
|
for now)
|
|
arch-nspawn has the `-s` flag to turn off setarch
This reverts commit c3819bb4224622c6d10ab7a3511472f314e026ba.
|
|
|
|
|
|
Conflicts:
arch-nspawn.in
archbuild.in
makechrootpkg.in
|
|
Fixes FS#42277.
|
|
|
|
No need to do this since we don't run an init system in the build root.
|
|
This is at the suggestion of Roman Neuhauser, who emailed Dave Reisner and
me.
|
|
- Simplify the commented out call to find HOST_NAME_MAX
- Use `systemd-nspawn -q` instead of 2>/dev/null
- Use Bash 4.1's new {var}>&- syntax in lock_close()
|
|
|
|
Conflicts:
lib/common.sh
makechrootpkg.in
|
|
In collaborative builder machine, these scripts are often allowed to become root
via sudo. This patch avoid to prefix them by sudo each time or call su.
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
|
|
The criteria for a valid name are:
- is made of of alphanumerics, "_", ".", and "-"
- is not emtpy
- cannot end with "."
- cannot contain ".."
- the maximum length is HOST_NAME_MAX, as defined in <limits.h>
The existing code takes care of all but the last of these. So, added code
after the existing code to check the length of the string, and grab the
longest possible substring from the end.
I hard-coded our interpretation of HOST_NAME_MAX as 64--on Linux that has
been the value since version 1.0 of the kernel... I don't think it will be
changing any time soon, and since systemd is Linux-only, we don't have to
worry about other kernels.
But, just in case, I included a commented out version that uses cpp to get
the value.
|
|
Conflicts:
arch-nspawn.in
This effectively reverts my machine_name patch; I took a simpler route to
dealing with a working_dir with funny characters in it, using a different
scheme for the machine_name. This fixes the problems devtools' original
scheme had, so I'm going back to that.
|
|
|
|
This fixes various errors one might encounter when trying to use a
build root or cachedir with whitespace in it.
Note that the cachedir fix is not a complete one, as pacman's output is
unreliable (and not meant for parsing here).
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
eval is no longer involved in the execution of systemd-nspawn, so we no
longer need a layer of escaping on the arguments.
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
|
|
Now that die() properly forwards arguments to error(), we can expect
that the first arg is a format string and not the entirety of the
output.
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
systemd-nspawn always outputs some debug messages over stderr.
Both stdout and stderr from inside the chroot are sent through
a pty to stdout.
|
|
Allows calling makechrootpkg without worrying about the architecture
|
|
Recent changes to systemd-nspawn have it take the machine name from
the chroot dir name, which isn't unique enough for our setup.
|
|
Separates the two features of mkarchroot. Provides users of the new
arch-nspawn with the full feature set of systemd-nspawn.
For example, this can be used to bind custom directories into the chroot.
|