1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:47:45 +00:00

Revert "Build: Use fakeroot if non-root build is possible"

This reverts commit 3d342f72a7.

This is causing trouble for macOS users. Also it's painfully slow
compared to using the sudo method. This should definitely not be
the default since it punishes people who have genext2fs installed.
This commit is contained in:
Andreas Kling 2020-05-13 01:15:56 +02:00
parent d69ed91790
commit 415d6fb230
3 changed files with 40 additions and 47 deletions

View file

@ -8,7 +8,7 @@ die() {
} }
if [ "$(id -u)" != 0 ]; then if [ "$(id -u)" != 0 ]; then
die "this script needs to run as root (or with fakeroot)" die "this script needs to run as root"
fi fi
if [ "$(uname -s)" = "Darwin" ]; then if [ "$(uname -s)" = "Darwin" ]; then
export PATH="/usr/local/opt/e2fsprogs/bin:$PATH" export PATH="/usr/local/opt/e2fsprogs/bin:$PATH"
@ -19,10 +19,6 @@ qemu-img create _disk_image "${DISK_SIZE:-600}"m || die "could not create disk i
chown "$SUDO_UID":"$SUDO_GID" _disk_image || die "could not adjust permissions on disk image" chown "$SUDO_UID":"$SUDO_GID" _disk_image || die "could not adjust permissions on disk image"
echo "done" echo "done"
use_genext2fs=0
if command -v genext2fs 1>/dev/null ; then
use_genext2fs=1
else
printf "creating new filesystem... " printf "creating new filesystem... "
if [ "$(uname -s)" = "OpenBSD" ]; then if [ "$(uname -s)" = "OpenBSD" ]; then
VND=$(vnconfig _disk_image) VND=$(vnconfig _disk_image)
@ -42,6 +38,7 @@ else
printf "mounting filesystem... " printf "mounting filesystem... "
mkdir -p mnt mkdir -p mnt
use_genext2fs=0
if [ "$(uname -s)" = "Darwin" ]; then if [ "$(uname -s)" = "Darwin" ]; then
fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20 || die "could not mount filesystem" fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20 || die "could not mount filesystem"
elif [ "$(uname -s)" = "OpenBSD" ]; then elif [ "$(uname -s)" = "OpenBSD" ]; then
@ -49,10 +46,16 @@ else
elif [ "$(uname -s)" = "FreeBSD" ]; then elif [ "$(uname -s)" = "FreeBSD" ]; then
fuse-ext2 -o rw+ "/dev/${MD}" mnt/ || die "could not mount filesystem" fuse-ext2 -o rw+ "/dev/${MD}" mnt/ || die "could not mount filesystem"
else else
mount _disk_image mnt/ || die "could not mount filesystem" if ! mount _disk_image mnt/ ; then
if command -v genext2fs 1>/dev/null ; then
echo "mount failed but genext2fs exists, use it instead"
use_genext2fs=1
else
die "could not mount filesystem and genext2fs is missing"
fi
fi
fi fi
echo "done" echo "done"
fi
cleanup() { cleanup() {
if [ -d mnt ]; then if [ -d mnt ]; then
@ -61,13 +64,11 @@ cleanup() {
umount mnt || ( sleep 1 && sync && umount mnt ) umount mnt || ( sleep 1 && sync && umount mnt )
fi fi
rm -rf mnt rm -rf mnt
if [ $use_genext2fs = 0 ] ; then
if [ "$(uname -s)" = "OpenBSD" ]; then if [ "$(uname -s)" = "OpenBSD" ]; then
vnconfig -u "$VND" vnconfig -u "$VND"
elif [ "$(uname -s)" = "FreeBSD" ]; then elif [ "$(uname -s)" = "FreeBSD" ]; then
mdconfig -d -u "$MD" mdconfig -d -u "$MD"
fi fi
fi
echo "done" echo "done"
fi fi
} }
@ -80,9 +81,7 @@ if [ $use_genext2fs = 1 ]; then
# genext2fs is very slow in generating big images, so I use a smaller image here. size can be updated # genext2fs is very slow in generating big images, so I use a smaller image here. size can be updated
# if it's not enough. # if it's not enough.
# not using "-i 128" since it hangs. Serenity handles whatever default this uses instead. # not using "-i 128" since it hangs. Serenity handles whatever default this uses instead.
printf "generating filesystem... "
genext2fs -b 250000 -d mnt _disk_image || die "try increasing image size (genext2fs -b)" genext2fs -b 250000 -d mnt _disk_image || die "try increasing image size (genext2fs -b)"
echo "done"
# if using docker with shared mount, file is created as root, so make it writable for users # if using docker with shared mount, file is created as root, so make it writable for users
chmod 0666 _disk_image chmod 0666 _disk_image
fi fi

View file

@ -16,9 +16,7 @@ while [ "$1" != "" ]; do
shift shift
done done
if ! (command -v genext2fs 1>/dev/null && command -v fakeroot 1>/dev/null); then
sudo id sudo id
fi
MAKE="make" MAKE="make"
@ -29,11 +27,11 @@ fi
if [ "$fast_mode" = "1" ]; then if [ "$fast_mode" = "1" ]; then
$MAKE -C ../ && \ $MAKE -C ../ && \
$MAKE -C ../ install && $MAKE -C ../ install &&
./sync.sh sudo -E PATH="$PATH" ./build-image-qemu.sh
else else
$MAKE -C ../ clean && \ $MAKE -C ../ clean && \
$MAKE -C ../ && \ $MAKE -C ../ && \
$MAKE -C ../ test && \ $MAKE -C ../ test && \
$MAKE -C ../ install && $MAKE -C ../ install &&
./sync.sh sudo -E PATH="$PATH" ./build-image-qemu.sh
fi fi

View file

@ -4,8 +4,4 @@ set -e
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P) script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "$script_path" cd "$script_path"
if command -v genext2fs 1>/dev/null && command -v fakeroot 1>/dev/null; then
fakeroot ./build-image-qemu.sh
else
sudo -E PATH="$PATH" ./build-image-qemu.sh sudo -E PATH="$PATH" ./build-image-qemu.sh
fi