mirror of
https://github.com/systemd/systemd.git
synced 2025-02-02 13:47:27 +03:00
Install build dependencies into final image
This allows us to build and install after booting without having to build a new image. Together with https://github.com/systemd/mkosi/pull/2601 and after enabling RuntimeBuildSources=yes, after booting, "meson install -C /work/build" can be used to do an incremental build and install. This won't build proper packages, but will be invaluable for having a quick compile, edit, test cycle without having to rebuild the image all the time.
This commit is contained in:
parent
8826953547
commit
8440ea8f21
@ -20,8 +20,10 @@ Packages=
|
||||
cryptsetup
|
||||
dbus-broker
|
||||
dbus-broker-units
|
||||
debugedit
|
||||
dhcp
|
||||
f2fs-tools
|
||||
fakeroot
|
||||
git
|
||||
gnutls
|
||||
iproute
|
||||
@ -31,6 +33,7 @@ Packages=
|
||||
openssh
|
||||
openssl
|
||||
pacman
|
||||
pkgconf
|
||||
polkit
|
||||
quota-tools
|
||||
sbsigntools
|
||||
@ -41,8 +44,3 @@ Packages=
|
||||
InitrdPackages=
|
||||
btrfs-progs
|
||||
tpm2-tools
|
||||
|
||||
BuildPackages=
|
||||
fakeroot
|
||||
pkgconf
|
||||
debugedit
|
||||
|
@ -2,23 +2,25 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
if [ "$1" = "build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "pkg/$PKG_SUBDIR/PKGBUILD" ]; then
|
||||
echo "PKGBUILD not found at pkg/$PKG_SUBDIR/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
# We get depends and optdepends from .SRCINFO as getting them from the PKGBUILD is rather complex.
|
||||
sed --expression 's/^[ \t]*//' "pkg/$PKG_SUBDIR/.SRCINFO" |
|
||||
grep --regexp '^depends =' --regexp '^optdepends =' |
|
||||
sed --expression 's/^depends = //' --expression 's/^optdepends = //' --expression 's/:.*//' |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
else
|
||||
# We get makedepends from the PKGBUILD as .SRCINFO can't encode conditional dependencies depending on
|
||||
# whether some environment variable is set or not.
|
||||
# shellcheck source=/dev/null
|
||||
UPSTREAM=1 . "pkg/$PKG_SUBDIR/PKGBUILD"
|
||||
# We get depends and optdepends from .SRCINFO as getting them from the PKGBUILD is rather complex.
|
||||
sed --expression 's/^[ \t]*//' "pkg/$PKG_SUBDIR/.SRCINFO" |
|
||||
grep --regexp '^depends =' --regexp '^optdepends =' |
|
||||
sed --expression 's/^depends = //' --expression 's/^optdepends = //' --expression 's/:.*//' |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
mkosi-install "${makedepends[@]}"
|
||||
fi
|
||||
# We get makedepends from the PKGBUILD as .SRCINFO can't encode conditional dependencies depending on
|
||||
# whether some environment variable is set or not.
|
||||
# shellcheck source=/dev/null
|
||||
UPSTREAM=1 . "pkg/$PKG_SUBDIR/PKGBUILD"
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
mkosi-install "${makedepends[@]}"
|
||||
|
@ -2,33 +2,29 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
if [ "$1" = "build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]; then
|
||||
echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi with -ff to make sure the spec is cloned" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
DEPS="--requires"
|
||||
else
|
||||
DEPS="--buildrequires"
|
||||
fi
|
||||
|
||||
mkosi-chroot \
|
||||
rpmspec \
|
||||
--with upstream \
|
||||
--query \
|
||||
"$DEPS" \
|
||||
--define "_topdir /var/tmp" \
|
||||
--define "_sourcedir pkg/$PKG_SUBDIR" \
|
||||
"pkg/$PKG_SUBDIR/systemd.spec" |
|
||||
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
|
||||
sort --unique |
|
||||
tee /tmp/buildrequires |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
exit 0
|
||||
fi
|
||||
for DEPS in --requires --buildrequires; do
|
||||
mkosi-chroot \
|
||||
rpmspec \
|
||||
--with upstream \
|
||||
--query \
|
||||
"$DEPS" \
|
||||
--define "_topdir /var/tmp" \
|
||||
--define "_sourcedir pkg/$PKG_SUBDIR" \
|
||||
"pkg/$PKG_SUBDIR/systemd.spec" |
|
||||
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
|
||||
sort --unique |
|
||||
tee /tmp/buildrequires |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
done
|
||||
|
||||
# rpmbuild -br tries to build a source package which means all source files have to exist which isn't the
|
||||
# case when using --build-in-place so we get rid of the source file that doesn't exist to make it happy.
|
||||
|
@ -36,6 +36,7 @@ Packages=
|
||||
dbus-broker
|
||||
dbus-user-session
|
||||
dmsetup
|
||||
dpkg-dev
|
||||
f2fs-tools
|
||||
fdisk
|
||||
git-core
|
||||
@ -59,6 +60,3 @@ Packages=
|
||||
InitrdPackages=
|
||||
btrfs-progs
|
||||
tpm2-tools
|
||||
|
||||
BuildPackages=
|
||||
dpkg-dev
|
||||
|
@ -2,7 +2,7 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
if [ "$1" = "build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
@ -2,33 +2,29 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
if [ "$1" = "build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]; then
|
||||
echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
DEPS="--requires"
|
||||
else
|
||||
DEPS="--buildrequires"
|
||||
fi
|
||||
|
||||
mkosi-chroot \
|
||||
rpmspec \
|
||||
--with upstream \
|
||||
--query \
|
||||
"$DEPS" \
|
||||
--define "_topdir /var/tmp" \
|
||||
--define "_sourcedir pkg/$PKG_SUBDIR" \
|
||||
"pkg/$PKG_SUBDIR/systemd.spec" |
|
||||
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
|
||||
sort --unique |
|
||||
tee /tmp/buildrequires |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
|
||||
if [ "$1" = "final" ]; then
|
||||
exit 0
|
||||
fi
|
||||
for DEPS in --requires --buildrequires; do
|
||||
mkosi-chroot \
|
||||
rpmspec \
|
||||
--with upstream \
|
||||
--query \
|
||||
"$DEPS" \
|
||||
--define "_topdir /var/tmp" \
|
||||
--define "_sourcedir pkg/$PKG_SUBDIR" \
|
||||
"pkg/$PKG_SUBDIR/systemd.spec" |
|
||||
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
|
||||
sort --unique |
|
||||
tee /tmp/buildrequires |
|
||||
xargs --delimiter '\n' mkosi-install
|
||||
done
|
||||
|
||||
until mkosi-chroot \
|
||||
rpmbuild \
|
||||
|
Loading…
x
Reference in New Issue
Block a user