summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-05-13 01:15:56 +0200
committerAndreas Kling <kling@serenityos.org>2020-05-13 01:18:14 +0200
commit415d6fb2306f918334e1bed87d12e693a353d219 (patch)
tree4831819c30e6154ab3743c91310e900ad1c743d5 /Kernel
parentd69ed91790d3acc48f050a9e0fb991d5ab25de63 (diff)
downloadserenity-415d6fb2306f918334e1bed87d12e693a353d219.zip
Revert "Build: Use fakeroot if non-root build is possible"
This reverts commit 3d342f72a76b70fcee8872da081a19f7ea229eec. 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.
Diffstat (limited to 'Kernel')
-rwxr-xr-xKernel/build-image-qemu.sh73
-rwxr-xr-xKernel/makeall.sh8
-rwxr-xr-xKernel/sync.sh6
3 files changed, 40 insertions, 47 deletions
diff --git a/Kernel/build-image-qemu.sh b/Kernel/build-image-qemu.sh
index e555fc4c11..50dc4e32ad 100755
--- a/Kernel/build-image-qemu.sh
+++ b/Kernel/build-image-qemu.sh
@@ -8,7 +8,7 @@ die() {
}
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
if [ "$(uname -s)" = "Darwin" ]; then
export PATH="/usr/local/opt/e2fsprogs/bin:$PATH"
@@ -19,40 +19,43 @@ 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"
echo "done"
-use_genext2fs=0
-if command -v genext2fs 1>/dev/null ; then
- use_genext2fs=1
+printf "creating new filesystem... "
+if [ "$(uname -s)" = "OpenBSD" ]; then
+ VND=$(vnconfig _disk_image)
+ (echo "e 0"; echo 83; echo n; echo 0; echo "*"; echo "quit") | fdisk -e "$VND"
+ mkfs.ext2 -I 128 -F "/dev/${VND}i" || die "could not create filesystem"
+elif [ "$(uname -s)" = "FreeBSD" ]; then
+ MD=$(mdconfig _disk_image)
+ mke2fs -q -I 128 _disk_image || die "could not create filesystem"
else
- printf "creating new filesystem... "
- if [ "$(uname -s)" = "OpenBSD" ]; then
- VND=$(vnconfig _disk_image)
- (echo "e 0"; echo 83; echo n; echo 0; echo "*"; echo "quit") | fdisk -e "$VND"
- mkfs.ext2 -I 128 -F "/dev/${VND}i" || die "could not create filesystem"
- elif [ "$(uname -s)" = "FreeBSD" ]; then
- MD=$(mdconfig _disk_image)
- mke2fs -q -I 128 _disk_image || die "could not create filesystem"
+ if [ -x /sbin/mke2fs ]; then
+ /sbin/mke2fs -q -I 128 _disk_image || die "could not create filesystem"
else
- if [ -x /sbin/mke2fs ]; then
- /sbin/mke2fs -q -I 128 _disk_image || die "could not create filesystem"
- else
- mke2fs -q -I 128 _disk_image || die "could not create filesystem"
- fi
+ mke2fs -q -I 128 _disk_image || die "could not create filesystem"
fi
- echo "done"
+fi
+echo "done"
- printf "mounting filesystem... "
- mkdir -p mnt
- if [ "$(uname -s)" = "Darwin" ]; then
- fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20 || die "could not mount filesystem"
- elif [ "$(uname -s)" = "OpenBSD" ]; then
- mount -t ext2fs "/dev/${VND}i" mnt/ || die "could not mount filesystem"
- elif [ "$(uname -s)" = "FreeBSD" ]; then
- fuse-ext2 -o rw+ "/dev/${MD}" mnt/ || die "could not mount filesystem"
- else
- mount _disk_image mnt/ || die "could not mount filesystem"
+printf "mounting filesystem... "
+mkdir -p mnt
+use_genext2fs=0
+if [ "$(uname -s)" = "Darwin" ]; then
+ fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20 || die "could not mount filesystem"
+elif [ "$(uname -s)" = "OpenBSD" ]; then
+ mount -t ext2fs "/dev/${VND}i" mnt/ || die "could not mount filesystem"
+elif [ "$(uname -s)" = "FreeBSD" ]; then
+ fuse-ext2 -o rw+ "/dev/${MD}" mnt/ || die "could not mount filesystem"
+else
+ 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
- echo "done"
fi
+echo "done"
cleanup() {
if [ -d mnt ]; then
@@ -61,12 +64,10 @@ cleanup() {
umount mnt || ( sleep 1 && sync && umount mnt )
fi
rm -rf mnt
- if [ $use_genext2fs = 0 ] ; then
- if [ "$(uname -s)" = "OpenBSD" ]; then
- vnconfig -u "$VND"
- elif [ "$(uname -s)" = "FreeBSD" ]; then
- mdconfig -d -u "$MD"
- fi
+ if [ "$(uname -s)" = "OpenBSD" ]; then
+ vnconfig -u "$VND"
+ elif [ "$(uname -s)" = "FreeBSD" ]; then
+ mdconfig -d -u "$MD"
fi
echo "done"
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
# if it's not enough.
# 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)"
- echo "done"
# if using docker with shared mount, file is created as root, so make it writable for users
chmod 0666 _disk_image
fi
diff --git a/Kernel/makeall.sh b/Kernel/makeall.sh
index 10d464454c..5c3a008d85 100755
--- a/Kernel/makeall.sh
+++ b/Kernel/makeall.sh
@@ -16,9 +16,7 @@ while [ "$1" != "" ]; do
shift
done
-if ! (command -v genext2fs 1>/dev/null && command -v fakeroot 1>/dev/null); then
- sudo id
-fi
+sudo id
MAKE="make"
@@ -29,11 +27,11 @@ fi
if [ "$fast_mode" = "1" ]; then
$MAKE -C ../ && \
$MAKE -C ../ install &&
- ./sync.sh
+ sudo -E PATH="$PATH" ./build-image-qemu.sh
else
$MAKE -C ../ clean && \
$MAKE -C ../ && \
$MAKE -C ../ test && \
$MAKE -C ../ install &&
- ./sync.sh
+ sudo -E PATH="$PATH" ./build-image-qemu.sh
fi
diff --git a/Kernel/sync.sh b/Kernel/sync.sh
index c0dce5d769..6dcab996f1 100755
--- a/Kernel/sync.sh
+++ b/Kernel/sync.sh
@@ -4,8 +4,4 @@ set -e
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
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
-fi
+sudo -E PATH="$PATH" ./build-image-qemu.sh