1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:58:13 +00:00

POSIX compliance: (most) shell scripts converted to generic shell

Ports/.port_include.sh, Toolchain/BuildIt.sh, Toolchain/UseIt.sh
have been left largely untouched due to use of Bash-exclusive
functions and variables such as $BASH_SOURCE, pushd and popd.
This commit is contained in:
George Pickering 2019-11-02 16:34:54 +00:00 committed by Andreas Kling
parent 2cc5f3a93f
commit 704f48d7f3
43 changed files with 152 additions and 144 deletions

View file

@ -1,19 +1,19 @@
#!/bin/bash #!/bin/sh
set -e set -e
die() { die() {
echo "die: $@" echo "die: $*"
exit 1 exit 1
} }
if [ $(id -u) != 0 ]; then if [ "$(id -u)" != 0 ]; then
die "this script needs to run as root" die "this script needs to run as root"
fi fi
grub=$(which grub-install 2>/dev/null) || true grub=$(command -v grub-install 2>/dev/null) || true
if [[ -z "$grub" ]]; then if [ -z "$grub" ]; then
grub=$(which grub2-install 2>/dev/null) || true grub=$(command -v grub2-install 2>/dev/null) || true
fi fi
if [ -z "$grub" ]; then if [ -z "$grub" ]; then
echo "can't find a grub-install or grub2-install binary, oh no" echo "can't find a grub-install or grub2-install binary, oh no"
@ -22,58 +22,58 @@ fi
echo "using grub-install at ${grub}" echo "using grub-install at ${grub}"
echo "setting up disk image..." echo "setting up disk image..."
dd if=/dev/zero of=_disk_image bs=1M count=${DISK_SIZE:-701} status=none || die "couldn't create disk image" dd if=/dev/zero of=_disk_image bs=1M count="${DISK_SIZE:-701}" status=none || die "couldn't create disk image"
chown 1000:1000 _disk_image || die "couldn't adjust permissions on disk image" chown 1000:1000 _disk_image || die "couldn't adjust permissions on disk image"
echo "done" echo "done"
echo -n "creating loopback device... " printf "creating loopback device... "
dev=$(losetup --find --partscan --show _disk_image) dev=$(losetup --find --partscan --show _disk_image)
if [ -z $dev ]; then if [ -z "$dev" ]; then
die "couldn't mount loopback device" die "couldn't mount loopback device"
fi fi
echo "loopback device is at ${dev}" echo "loopback device is at ${dev}"
cleanup() { cleanup() {
if [ -d mnt ]; then if [ -d mnt ]; then
echo -n "unmounting filesystem... " printf "unmounting filesystem... "
umount mnt || ( sleep 1 && sync && umount mnt ) umount mnt || ( sleep 1 && sync && umount mnt )
rm -rf mnt rm -rf mnt
echo "done" echo "done"
fi fi
if [ -e ${dev} ]; then if [ -e "${dev}" ]; then
echo -n "cleaning up loopback device... " printf "cleaning up loopback device... "
losetup -d ${dev} losetup -d "${dev}"
echo "done" echo "done"
fi fi
} }
trap cleanup EXIT trap cleanup EXIT
echo -n "creating partition table... " printf "creating partition table... "
parted -s ${dev} mklabel gpt mkpart BIOSBOOT ext3 1MiB 8MiB mkpart OS ext2 8MiB 700MiB set 1 bios_grub || die "couldn't partition disk" parted -s "${dev}" mklabel gpt mkpart BIOSBOOT ext3 1MiB 8MiB mkpart OS ext2 8MiB 700MiB set 1 bios_grub || die "couldn't partition disk"
echo "done" echo "done"
echo -n "destroying old filesystem... " printf "destroying old filesystem... "
dd if=/dev/zero of=${dev}p2 bs=1M count=1 status=none || die "couldn't destroy old filesystem" dd if=/dev/zero of="${dev}"p2 bs=1M count=1 status=none || die "couldn't destroy old filesystem"
echo "done" echo "done"
echo -n "creating new filesystem... " printf "creating new filesystem... "
mke2fs -q ${dev}p2 || die "couldn't create filesystem" mke2fs -q "${dev}"p2 || die "couldn't create filesystem"
echo "done" echo "done"
echo -n "mounting filesystem... " printf "mounting filesystem... "
mkdir -p mnt mkdir -p mnt
mount ${dev}p2 mnt/ || die "couldn't mount filesystem" mount "${dev}"p2 mnt/ || die "couldn't mount filesystem"
echo "done" echo "done"
./build-root-filesystem.sh ./build-root-filesystem.sh
echo -n "creating /boot... " printf "creating /boot... "
mkdir -p mnt/boot mkdir -p mnt/boot
echo "done" echo "done"
echo "installing grub using $grub..." echo "installing grub using $grub..."
$grub --boot-directory=mnt/boot --target=i386-pc --modules="ext2 part_msdos part_gpt" ${dev} $grub --boot-directory=mnt/boot --target=i386-pc --modules="ext2 part_msdos part_gpt ${dev}"
if [ -d mnt/boot/grub2 ]; then if [ -d mnt/boot/grub2 ]; then
cp grub_gpt.cfg mnt/boot/grub2/grub.cfg cp grub_gpt.cfg mnt/boot/grub2/grub.cfg
@ -82,6 +82,6 @@ else
fi fi
echo "done" echo "done"
echo -n "installing kernel in /boot... " printf "installing kernel in /boot... "
cp kernel mnt/boot cp kernel mnt/boot
echo "done" echo "done"

View file

@ -1,19 +1,19 @@
#!/bin/bash #!/bin/sh
set -e set -e
die() { die() {
echo "die: $@" echo "die: $*"
exit 1 exit 1
} }
if [ $(id -u) != 0 ]; then if [ "$(id -u)" != 0 ]; then
die "this script needs to run as root" die "this script needs to run as root"
fi fi
grub=$(which grub-install 2>/dev/null) || true grub=$(command -v grub-install 2>/dev/null) || true
if [[ -z "$grub" ]]; then if [ -z "$grub" ]; then
grub=$(which grub2-install 2>/dev/null) || true grub=$(command -v grub2-install 2>/dev/null) || true
fi fi
if [ -z "$grub" ]; then if [ -z "$grub" ]; then
echo "can't find a grub-install or grub2-install binary, oh no" echo "can't find a grub-install or grub2-install binary, oh no"
@ -22,58 +22,58 @@ fi
echo "using grub-install at ${grub}" echo "using grub-install at ${grub}"
echo "setting up disk image..." echo "setting up disk image..."
dd if=/dev/zero of=_disk_image bs=1M count=${DISK_SIZE:-500} status=none || die "couldn't create disk image" dd if=/dev/zero of=_disk_image bs=1M count="${DISK_SIZE:-500}" status=none || die "couldn't create disk image"
chown 1000:1000 _disk_image || die "couldn't adjust permissions on disk image" chown 1000:1000 _disk_image || die "couldn't adjust permissions on disk image"
echo "done" echo "done"
echo -n "creating loopback device... " printf "creating loopback device... "
dev=$(losetup --find --partscan --show _disk_image) dev=$(losetup --find --partscan --show _disk_image)
if [ -z $dev ]; then if [ -z "$dev" ]; then
die "couldn't mount loopback device" die "couldn't mount loopback device"
fi fi
echo "loopback device is at ${dev}" echo "loopback device is at ${dev}"
cleanup() { cleanup() {
if [ -d mnt ]; then if [ -d mnt ]; then
echo -n "unmounting filesystem... " printf "unmounting filesystem... "
umount mnt || ( sleep 1 && sync && umount mnt ) umount mnt || ( sleep 1 && sync && umount mnt )
rm -rf mnt rm -rf mnt
echo "done" echo "done"
fi fi
if [ -e ${dev} ]; then if [ -e "${dev}" ]; then
echo -n "cleaning up loopback device... " printf "cleaning up loopback device... "
losetup -d ${dev} losetup -d "${dev}"
echo "done" echo "done"
fi fi
} }
trap cleanup EXIT trap cleanup EXIT
echo -n "creating partition table... " printf "creating partition table... "
parted -s ${dev} mklabel msdos mkpart primary ext2 32k 100% -a minimal set 1 boot on || die "couldn't partition disk" parted -s "${dev}" mklabel msdos mkpart primary ext2 32k 100% -a minimal set 1 boot on || die "couldn't partition disk"
echo "done" echo "done"
echo -n "destroying old filesystem... " printf "destroying old filesystem... "
dd if=/dev/zero of=${dev}p1 bs=1M count=1 status=none || die "couldn't destroy old filesystem" dd if=/dev/zero of="${dev}"p1 bs=1M count=1 status=none || die "couldn't destroy old filesystem"
echo "done" echo "done"
echo -n "creating new filesystem... " printf "creating new filesystem... "
mke2fs -q -I 128 ${dev}p1 || die "couldn't create filesystem" mke2fs -q -I 128 "${dev}"p1 || die "couldn't create filesystem"
echo "done" echo "done"
echo -n "mounting filesystem... " printf "mounting filesystem... "
mkdir -p mnt mkdir -p mnt
mount ${dev}p1 mnt/ || die "couldn't mount filesystem" mount "${dev}"p1 mnt/ || die "couldn't mount filesystem"
echo "done" echo "done"
./build-root-filesystem.sh ./build-root-filesystem.sh
echo -n "creating /boot... " printf "creating /boot... "
mkdir -p mnt/boot mkdir -p mnt/boot
echo "done" echo "done"
echo "installing grub using $grub..." echo "installing grub using $grub..."
$grub --boot-directory=mnt/boot --target=i386-pc --modules="ext2 part_msdos" ${dev} $grub --boot-directory=mnt/boot --target=i386-pc --modules="ext2 part_msdos ${dev}"
if [ -d mnt/boot/grub2 ]; then if [ -d mnt/boot/grub2 ]; then
cp grub.cfg mnt/boot/grub2/grub.cfg cp grub.cfg mnt/boot/grub2/grub.cfg
@ -82,6 +82,6 @@ else
fi fi
echo "done" echo "done"
echo -n "installing kernel in /boot... " printf "installing kernel in /boot... "
cp kernel mnt/boot cp kernel mnt/boot
echo "done" echo "done"

View file

@ -1,33 +1,33 @@
#!/bin/bash #!/bin/sh
set -e set -e
die() { die() {
echo "die: $@" echo "die: $*"
exit 1 exit 1
} }
if [ $(id -u) != 0 ]; then if [ "$(id -u)" != 0 ]; then
die "this script needs to run as root" die "this script needs to run as root"
fi fi
echo "setting up disk image..." echo "setting up disk image..."
qemu-img create _disk_image ${DISK_SIZE:-500}m || die "couldn't create disk image" qemu-img create _disk_image "${DISK_SIZE:-500}"m || die "couldn't create disk image"
chown $build_user:$build_group _disk_image || die "couldn't adjust permissions on disk image" chown "$build_user":"$build_group" _disk_image || die "couldn't adjust permissions on disk image"
echo "done" echo "done"
echo -n "creating new filesystem... " printf "creating new filesystem... "
mke2fs -q -I 128 _disk_image || die "couldn't create filesystem" mke2fs -q -I 128 _disk_image || die "couldn't create filesystem"
echo "done" echo "done"
echo -n "mounting filesystem... " printf "mounting filesystem... "
mkdir -p mnt mkdir -p mnt
mount _disk_image mnt/ || die "couldn't mount filesystem" mount _disk_image mnt/ || die "couldn't mount filesystem"
echo "done" echo "done"
cleanup() { cleanup() {
if [ -d mnt ]; then if [ -d mnt ]; then
echo -n "unmounting filesystem... " printf "unmounting filesystem... "
umount mnt || ( sleep 1 && sync && umount mnt ) umount mnt || ( sleep 1 && sync && umount mnt )
rm -rf mnt rm -rf mnt
echo "done" echo "done"

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -e
@ -6,20 +6,22 @@ set -e
rm -f ../Userland/qs rm -f ../Userland/qs
die() { die() {
echo "die: $@" echo "die: $*"
exit 1 exit 1
} }
if [ $(id -u) != 0 ]; then if [ "$(id -u)" != 0 ]; then
die "this script needs to run as root" die "this script needs to run as root"
fi fi
echo -n "creating initial filesystem structure... " printf "creating initial filesystem structure... "
mkdir -p mnt/{bin,etc,proc,mnt,tmp} for dir in bin etc proc mnt tmp; do
mkdir -p mnt/$dir
done
chmod 1777 mnt/tmp chmod 1777 mnt/tmp
echo "done" echo "done"
echo -n "setting up device nodes... " printf "setting up device nodes... "
mkdir -p mnt/dev mkdir -p mnt/dev
mkdir -p mnt/dev/pts mkdir -p mnt/dev/pts
mknod -m 666 mnt/dev/fb0 b 29 0 mknod -m 666 mnt/dev/fb0 b 29 0
@ -49,13 +51,13 @@ ln -s /proc/self/fd/1 mnt/dev/stdout
ln -s /proc/self/fd/2 mnt/dev/stderr ln -s /proc/self/fd/2 mnt/dev/stderr
echo "done" echo "done"
echo -n "installing base system... " printf "installing base system... "
cp -R ../Base/* mnt/ cp -R ../Base/* mnt/
cp -R ../Root/* mnt/ cp -R ../Root/* mnt/
cp kernel.map mnt/ cp kernel.map mnt/
echo "done" echo "done"
echo -n "installing users... " printf "installing users... "
mkdir -p mnt/home/anon mkdir -p mnt/home/anon
mkdir -p mnt/home/nona mkdir -p mnt/home/nona
cp ../ReadMe.md mnt/home/anon/ cp ../ReadMe.md mnt/home/anon/
@ -63,12 +65,12 @@ chown -R 100:100 mnt/home/anon
chown -R 200:200 mnt/home/nona chown -R 200:200 mnt/home/nona
echo "done" echo "done"
echo -n "installing userland... " printf "installing userland... "
find ../Userland/ -type f -executable -exec cp {} mnt/bin/ \; find ../Userland/ -type f -executable -exec cp {} mnt/bin/ \;
chmod 4755 mnt/bin/su chmod 4755 mnt/bin/su
echo "done" echo "done"
echo -n "installing applications... " printf "installing applications... "
cp ../Applications/About/About mnt/bin/About cp ../Applications/About/About mnt/bin/About
cp ../Applications/Downloader/Downloader mnt/bin/Downloader cp ../Applications/Downloader/Downloader mnt/bin/Downloader
cp ../Applications/FileManager/FileManager mnt/bin/FileManager cp ../Applications/FileManager/FileManager mnt/bin/FileManager
@ -110,7 +112,7 @@ cp ../Servers/TelnetServer/TelnetServer mnt/bin/TelnetServer
cp ../Shell/Shell mnt/bin/Shell cp ../Shell/Shell mnt/bin/Shell
echo "done" echo "done"
echo -n "installing shortcuts... " printf "installing shortcuts... "
ln -s Downloader mnt/bin/dl ln -s Downloader mnt/bin/dl
ln -s FileManager mnt/bin/fm ln -s FileManager mnt/bin/fm
ln -s HelloWorld mnt/bin/hw ln -s HelloWorld mnt/bin/hw

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
mkdir -p ../Root/usr/include/Kernel/ mkdir -p ../Root/usr/include/Kernel/
cp *.h ../Root/usr/include/Kernel/ cp ./*.h ../Root/usr/include/Kernel/

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -e
# Get user and group details for setting qemu disk image ownership # Get user and group details for setting qemu disk image ownership

View file

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/sh
./build-image-qemu.sh ./build-image-qemu.sh

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
@ -8,7 +8,7 @@ mkdir -p $SERENITY_ROOT/Root/usr/include/bits/
mkdir -p $SERENITY_ROOT/Root/usr/include/netinet/ mkdir -p $SERENITY_ROOT/Root/usr/include/netinet/
mkdir -p $SERENITY_ROOT/Root/usr/include/arpa/ mkdir -p $SERENITY_ROOT/Root/usr/include/arpa/
mkdir -p $SERENITY_ROOT/Root/usr/lib/ mkdir -p $SERENITY_ROOT/Root/usr/lib/
cp *.h $SERENITY_ROOT/Root/usr/include/ cp ./*.h $SERENITY_ROOT/Root/usr/include/
cp sys/*.h $SERENITY_ROOT/Root/usr/include/sys/ cp sys/*.h $SERENITY_ROOT/Root/usr/include/sys/
cp bits/*.h $SERENITY_ROOT/Root/usr/include/bits/ cp bits/*.h $SERENITY_ROOT/Root/usr/include/bits/
cp arpa/*.h $SERENITY_ROOT/Root/usr/include/arpa/ cp arpa/*.h $SERENITY_ROOT/Root/usr/include/arpa/

View file

@ -4,5 +4,5 @@ set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibCore/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibCore/
cp *.h $SERENITY_ROOT/Root/usr/include/LibCore/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibCore/
cp libcore.a $SERENITY_ROOT/Root/usr/lib/ cp libcore.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibDraw/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibDraw/
cp *.h $SERENITY_ROOT/Root/usr/include/LibDraw/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibDraw/
cp libdraw.a $SERENITY_ROOT/Root/usr/lib/ cp libdraw.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibGUI/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibGUI/
cp *.h $SERENITY_ROOT/Root/usr/include/LibGUI/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibGUI/
cp libgui.a $SERENITY_ROOT/Root/usr/lib/ cp libgui.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -1,10 +1,8 @@
#!/bin/bash #!/bin/sh
echo "extern const char $1[];" echo "extern const char $1[];"
echo "const char $1[] = \"\\" echo "const char $1[] = \"\\"
IFS=$'\n' grep -v '^ *#' < "$2" | while IFS= read -r line; do
for line in $(cat $2); do echo "$line""\\"
echo $line"\\"
done done
echo "\";" echo "\";"

View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibIPC/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibIPC/
cp *.h $SERENITY_ROOT/Root/usr/include/LibIPC/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibIPC/

View file

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/sys/ mkdir -p $SERENITY_ROOT/Root/usr/include/sys/
mkdir -p $SERENITY_ROOT/Root/usr/lib/ mkdir -p $SERENITY_ROOT/Root/usr/lib/
cp *.h $SERENITY_ROOT/Root/usr/include/ cp ./*.h $SERENITY_ROOT/Root/usr/include/
cp libm.a $SERENITY_ROOT/Root/usr/lib/ cp libm.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/sh
set -e set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibPCIDB/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibPCIDB/
cp *.h $SERENITY_ROOT/Root/usr/include/LibPCIDB/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibPCIDB/
cp libpcidb.a $SERENITY_ROOT/Root/usr/lib/ cp libpcidb.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -4,5 +4,5 @@ set -e
SERENITY_ROOT=../../ SERENITY_ROOT=../../
mkdir -p $SERENITY_ROOT/Root/usr/include/LibThread/ mkdir -p $SERENITY_ROOT/Root/usr/include/LibThread/
cp *.h $SERENITY_ROOT/Root/usr/include/LibThread/ cp ./*.h $SERENITY_ROOT/Root/usr/include/LibThread/
cp libthread.a $SERENITY_ROOT/Root/usr/lib/ cp libthread.a $SERENITY_ROOT/Root/usr/lib/

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
cd $SERENITY_ROOT cd "$SERENITY_ROOT" || exit 1
find . -name '*.ipc' -or -name '*.cpp' -or -name '*.h' -or -name '*.S' -or -name '*.css' | grep -Fv Patches/ | grep -Fv Root/ | grep -Fv Ports/ | grep -Fv Toolchain/ | grep -Fv Base/ > serenity.files find . -name '*.ipc' -or -name '*.cpp' -or -name '*.h' -or -name '*.S' -or -name '*.css' | grep -Fv Patches/ | grep -Fv Root/ | grep -Fv Ports/ | grep -Fv Toolchain/ | grep -Fv Base/ > serenity.files

View file

@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# This file will need to be run in bash, for now.
if [ -z "$SERENITY_ROOT" ]; then if [ -z "$SERENITY_ROOT" ]; then
echo "You must source UseIt.sh to build ports." echo "You must source UseIt.sh to build ports."
exit 1 exit 1
@ -30,19 +33,19 @@ run() {
(cd "$workdir" && "$@") (cd "$workdir" && "$@")
} }
run_replace_in_file(){ run_replace_in_file(){
run perl -p -i -e "$1" $2 run perl -p -i -e "$1" "$2"
} }
# Checks if a function is defined. In this case, if the function is not defined in the port's script, then we will use our defaults. This way, ports don't need to include these functions every time, but they can override our defaults if needed. # Checks if a function is defined. In this case, if the function is not defined in the port's script, then we will use our defaults. This way, ports don't need to include these functions every time, but they can override our defaults if needed.
func_defined() { func_defined() {
PATH= command -V "$1" > /dev/null 2>&1 PATH=$(command -V "$1" > /dev/null 2>&1)
} }
func_defined fetch || fetch() { func_defined fetch || fetch() {
OLDIFS=$IFS OLDIFS=$IFS
IFS=$'\n' IFS=$'\n'
for f in $files; do for f in $files; do
IFS=$OLDIFS IFS=$OLDIFS
read url filename <<< $(echo "$f") read url filename <<< "$(echo $f)"
run_nocd curl ${curlopts:-} "$url" -o "$filename" run_nocd curl "${curlopts:-}" "$url" -o "$filename"
case "$filename" in case "$filename" in
*.tar*|.tbz*|*.txz|*.tgz) *.tar*|.tbz*|*.txz|*.tgz)
run_nocd tar xf "$filename" run_nocd tar xf "$filename"
@ -65,13 +68,13 @@ func_defined configure || configure() {
run ./"$configscript" --host=i686-pc-serenity $configopts run ./"$configscript" --host=i686-pc-serenity $configopts
} }
func_defined build || build() { func_defined build || build() {
run make $makeopts run make "$makeopts"
} }
func_defined install || install() { func_defined install || install() {
run make DESTDIR="$SERENITY_ROOT"/Root $installopts install run make DESTDIR="$SERENITY_ROOT"/Root $installopts install
} }
func_defined clean || clean() { func_defined clean || clean() {
rm -rf "$workdir" *.out rm -rf "$workdir" -- *.out
} }
func_defined clean_dist || clean_dist() { func_defined clean_dist || clean_dist() {
OLDIFS=$IFS OLDIFS=$IFS
@ -83,7 +86,7 @@ func_defined clean_dist || clean_dist() {
done done
} }
func_defined clean_all || clean_all() { func_defined clean_all || clean_all() {
rm -rf "$workdir" *.out rm -rf "$workdir" -- *.out
OLDIFS=$IFS OLDIFS=$IFS
IFS=$'\n' IFS=$'\n'
for f in $files; do for f in $files; do
@ -103,7 +106,7 @@ addtodb() {
echo "auto $port $version" >> "$prefix"/packages.db echo "auto $port $version" >> "$prefix"/packages.db
else else
echo "manual $port $version" >> "$prefix"/packages.db echo "manual $port $version" >> "$prefix"/packages.db
if [ ! -z "${dependlist:-}" ]; then if [ -n "${dependlist:-}" ]; then
echo "dependency $port$dependlist" >> "$prefix/packages.db" echo "dependency $port$dependlist" >> "$prefix/packages.db"
fi fi
fi fi
@ -194,10 +197,10 @@ if [ -z "${1:-}" ]; then
else else
case "$1" in case "$1" in
fetch|configure|build|install|clean|clean_dist|clean_all|uninstall) fetch|configure|build|install|clean|clean_dist|clean_all|uninstall)
do_$1 do_"$1"
;; ;;
--auto) --auto)
do_all $1 do_all "$1"
;; ;;
*) *)
>&2 echo "I don't understand $1! Supported arguments: fetch, configure, build, install, clean, clean_dist, clean_all, uninstall." >&2 echo "I don't understand $1! Supported arguments: fetch, configure, build, install, clean, clean_dist, clean_all, uninstall."

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=SDL2 port=SDL2
version=serenity-git version=serenity-git
workdir=SDL-master-serenity workdir=SDL-master-serenity
@ -8,5 +8,5 @@ files="https://github.com/SerenityOS/SDL/archive/master-serenity.tar.gz SDL2-git
configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_ROOT/Toolchain/CMakeToolchain.txt -DPULSEAUDIO=OFF" configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_ROOT/Toolchain/CMakeToolchain.txt -DPULSEAUDIO=OFF"
configure() { configure() {
run cmake $configopts run cmake "$configopts"
} }

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=bash port=bash
version=5.0 version=5.0
useconfigure=true useconfigure=true
@ -8,5 +8,5 @@ files="https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz bash-5.0.tar.gz"
build() { build() {
run_replace_in_file "s/define GETCWD_BROKEN 1/undef GETCWD_BROKEN/" config.h run_replace_in_file "s/define GETCWD_BROKEN 1/undef GETCWD_BROKEN/" config.h
run_replace_in_file "s/define CAN_REDEFINE_GETENV 1/undef CAN_REDEFINE_GETENV/" config.h run_replace_in_file "s/define CAN_REDEFINE_GETENV 1/undef CAN_REDEFINE_GETENV/" config.h
run make $makeopts run make "$makeopts"
} }

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=binutils port=binutils
version=2.32 version=2.32
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=curl port=curl
version=7.65.3 version=7.65.3
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=doom port=doom
workdir=SerenityDOOM-master workdir=SerenityDOOM-master
version=serenity-git version=serenity-git

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=figlet port=figlet
version=2.2.5 version=2.2.5
files="http://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz figlet-2.2.5.tar.gz" files="http://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz figlet-2.2.5.tar.gz"

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=gcc port=gcc
version=8.3.0 version=8.3.0
useconfigure=true useconfigure=true
@ -18,10 +18,10 @@ fetch() {
done done
} }
build() { build() {
run make $makeopts run make "$makeopts"
run find ./host-i686-pc-serenity/gcc/ -maxdepth 1 -type f -executable -exec strip --strip-debug {} \; || echo run find ./host-i686-pc-serenity/gcc/ -maxdepth 1 -type f -executable -exec strip --strip-debug {} \; || echo
} }
install() { install() {
run make $installopts run make "$installopts"
} }

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=less port=less
version=530 version=530
useconfigure="true" useconfigure="true"

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=libarchive port=libarchive
version=3.4.0 version=3.4.0
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=libexpat port=libexpat
version=2.2.9 version=2.2.9
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=libiconv port=libiconv
version=1.16 version=1.16
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=links port=links
version=2.19 version=2.19
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=lua port=lua
version=5.3.5 version=5.3.5
files="http://www.lua.org/ftp/lua-5.3.5.tar.gz lua-5.3.5.tar.gz" files="http://www.lua.org/ftp/lua-5.3.5.tar.gz lua-5.3.5.tar.gz"

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=make port=make
version=4.2.1 version=4.2.1
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=mbedtls port=mbedtls
version=2.16.2 version=2.16.2
files="https://tls.mbed.org/download/mbedtls-2.16.2-apache.tgz mbedtls-2.16.2-apache.tgz" files="https://tls.mbed.org/download/mbedtls-2.16.2-apache.tgz mbedtls-2.16.2-apache.tgz"

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=ncurses port=ncurses
version=git version=git
workdir=ncurses-master workdir=ncurses-master

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=nyancat port=nyancat
version=git version=git
workdir=nyancat-master workdir=nyancat-master

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=quake port=quake
version=0.65 version=0.65
workdir=SerenityQuake-master workdir=SerenityQuake-master

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=tinycc port=tinycc
workdir=tinycc-dev workdir=tinycc-dev
version=dev version=dev

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=vim port=vim
version=git version=git
workdir=vim-master workdir=vim-master

View file

@ -1,4 +1,4 @@
#!/bin/bash ../.port_include.sh #!/bin/sh ../.port_include.sh
port=zlib port=zlib
version=1.2.11 version=1.2.11
useconfigure=true useconfigure=true

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
#mkdir -p ../../Root/usr/include/SystemServer/ #mkdir -p ../../Root/usr/include/SystemServer/
#cp *.h ../../Root/usr/include/SystemServer/ #cp *.h ../../Root/usr/include/SystemServer/

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
mkdir -p ../../Root/usr/include/WindowServer/ mkdir -p ../../Root/usr/include/WindowServer/
cp *.h ../../Root/usr/include/WindowServer/ cp ./*.h ../../Root/usr/include/WindowServer/

View file

@ -1,16 +1,18 @@
#!/bin/bash #!/bin/bash
set -e set -e
# This file will need to be run in bash, for now.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $DIR echo "$DIR"
TARGET=i686-pc-serenity TARGET=i686-pc-serenity
PREFIX="$DIR/Local" PREFIX="$DIR/Local"
SYSROOT="$DIR/../Root" SYSROOT="$DIR/../Root"
echo PREFIX is $PREFIX echo PREFIX is "$PREFIX"
echo SYSROOT is $SYSROOT echo SYSROOT is "$SYSROOT"
mkdir -p "$DIR/Tarballs" mkdir -p "$DIR/Tarballs"
@ -40,7 +42,7 @@ pushd "$DIR/Tarballs"
tar -xf "binutils-2.32.tar.gz" tar -xf "binutils-2.32.tar.gz"
pushd "binutils-2.32" pushd "binutils-2.32"
patch -p1 < $DIR/Patches/binutils.patch > /dev/null patch -p1 < "$DIR"/Patches/binutils.patch > /dev/null
popd popd
else else
echo "Skipped extracting binutils" echo "Skipped extracting binutils"
@ -51,14 +53,14 @@ pushd "$DIR/Tarballs"
tar -xf "gcc-8.3.0.tar.gz" tar -xf "gcc-8.3.0.tar.gz"
pushd "gcc-8.3.0" pushd "gcc-8.3.0"
patch -p1 < $DIR/Patches/gcc.patch > /dev/null patch -p1 < "$DIR"/Patches/gcc.patch > /dev/null
popd popd
else else
echo "Skipped extracting gcc" echo "Skipped extracting gcc"
fi fi
popd popd
mkdir -p $PREFIX mkdir -p "$PREFIX"
mkdir -p "$DIR/Build/binutils" mkdir -p "$DIR/Build/binutils"
mkdir -p "$DIR/Build/gcc" mkdir -p "$DIR/Build/gcc"
@ -71,24 +73,24 @@ pushd "$DIR/Build/"
unset PKG_CONFIG_LIBDIR # Just in case unset PKG_CONFIG_LIBDIR # Just in case
pushd binutils pushd binutils
$DIR/Tarballs/binutils-2.32/configure --prefix=$PREFIX \ "$DIR"/Tarballs/binutils-2.32/configure --prefix="$PREFIX" \
--target=$TARGET \ --target="$TARGET" \
--with-sysroot=$SYSROOT \ --with-sysroot="$SYSROOT" \
--disable-nls || exit 1 --disable-nls || exit 1
make -j $MAKEJOBS || exit 1 make -j "$MAKEJOBS" || exit 1
make install || exit 1 make install || exit 1
popd popd
pushd gcc pushd gcc
$DIR/Tarballs/gcc-8.3.0/configure --prefix=$PREFIX \ "$DIR"/Tarballs/gcc-8.3.0/configure --prefix="$PREFIX" \
--target=$TARGET \ --target="$TARGET" \
--with-sysroot=$SYSROOT \ --with-sysroot="$SYSROOT" \
--disable-nls \ --disable-nls \
--with-newlib \ --with-newlib \
--enable-languages=c,c++ || exit 1 --enable-languages=c,c++ || exit 1
echo "XXX build gcc and libgcc" echo "XXX build gcc and libgcc"
make -j $MAKEJOBS all-gcc all-target-libgcc || exit 1 make -j "$MAKEJOBS" all-gcc all-target-libgcc || exit 1
echo "XXX install gcc and libgcc" echo "XXX install gcc and libgcc"
make install-gcc install-target-libgcc || exit 1 make install-gcc install-target-libgcc || exit 1

View file

@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# This file will need to be run in bash, for now.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export PATH="$DIR/Local/bin:$PATH" export PATH="$DIR/Local/bin:$PATH"
export TOOLCHAIN="$DIR" export TOOLCHAIN="$DIR"