From 77f04c6c8a8de0acf1f3e5871ddd943ee801d785 Mon Sep 17 00:00:00 2001 From: Ivan Davidov Date: Wed, 29 Nov 2017 03:55:56 +0200 Subject: [PATCH] Major structural changes. - New overlay bundle which provides the MLL sources. - The build process has been enhanced. --- Sources are provided as part of the new overlay bundle. --- The MLL scripts have been refactored to handle the above change. --- The overlay dependency file has been renamed. NOTE: at this point some overlay bundles may be broken due to the numerous changes that haven't been fully tested. --- src/.config | 20 +++----- src/08_prepare_bundles.sh | 21 ++++++++ src/08_prepare_src.sh | 34 ------------- src/09_generate_rootfs.sh | 19 ++----- src/12_generate_iso.sh | 41 ++++------------ src/Makefile | 5 +- src/README | 5 +- src/minimal_overlay/bundles/cf_cli/01_get.sh | 11 ++--- .../bundles/cf_cli/02_install.sh | 21 ++++---- src/minimal_overlay/bundles/cf_cli/bundle.sh | 5 +- .../bundles/coreutils/01_get.sh | 11 ++--- .../bundles/coreutils/02_build.sh | 18 +++---- .../bundles/coreutils/bundle.sh | 6 ++- src/minimal_overlay/bundles/dhcp/bundle.sh | 29 +++++------ .../bundles/dhcp/{mll_deps => bundle_deps} | 0 src/minimal_overlay/bundles/dialog/01_get.sh | 8 +-- .../bundles/dialog/02_build.sh | 21 +++----- src/minimal_overlay/bundles/dialog/bundle.sh | 5 +- .../bundles/dialog/{mll_deps => bundle_deps} | 0 .../bundles/dropbear/01_get.sh | 9 ++-- .../bundles/dropbear/02_build.sh | 49 +++++++++---------- .../bundles/dropbear/bundle.sh | 5 +- .../dropbear/{mll_deps => bundle_deps} | 0 src/minimal_overlay/bundles/felix/01_get.sh | 9 ++-- .../bundles/felix/02_install.sh | 15 +++--- src/minimal_overlay/bundles/felix/bundle.sh | 4 +- src/minimal_overlay/bundles/fio/01_get.sh | 11 ++--- src/minimal_overlay/bundles/fio/02_build.sh | 18 +++---- src/minimal_overlay/bundles/fio/bundle.sh | 7 +-- .../bundles/glibc_full/bundle.sh | 3 ++ .../glibc_full/{mll_deps => bundle_deps} | 0 .../bundles/glibc_ld-linux/bundle.sh | 6 ++- .../bundles/glibc_libBrokenLocale/bundle.sh | 18 +++---- .../bundles/glibc_libanl/bundle.sh | 20 +++----- .../bundles/glibc_libc/bundle.sh | 6 ++- .../bundles/glibc_libcidn/bundle.sh | 18 +++---- .../bundles/glibc_libcrypt/bundle.sh | 18 +++---- .../bundles/glibc_libdl/bundle.sh | 18 +++---- .../bundles/glibc_libm/bundle.sh | 6 ++- .../bundles/glibc_libnsl/bundle.sh | 18 +++---- .../bundles/glibc_libnss_db/bundle.sh | 18 +++---- .../bundles/glibc_libnss_dns/bundle.sh | 18 +++---- .../bundles/glibc_libnss_files/bundle.sh | 18 +++---- .../bundles/glibc_libnss_hesiod/bundle.sh | 18 +++---- .../bundles/glibc_libpthread/bundle.sh | 17 +++---- .../bundles/glibc_libresolv/bundle.sh | 18 +++---- .../bundles/glibc_librt/bundle.sh | 18 +++---- .../bundles/glibc_libthread_db/bundle.sh | 18 +++---- .../bundles/glibc_libutil/bundle.sh | 18 +++---- src/minimal_overlay/bundles/java/bundle.sh | 18 +++---- src/minimal_overlay/bundles/kbd/01_get.sh | 38 +++++++++----- src/minimal_overlay/bundles/kbd/02_build.sh | 29 +++++------ src/minimal_overlay/bundles/kbd/bundle.sh | 5 +- .../bundles/kexec-tools/01_get.sh | 10 ++-- .../bundles/kexec-tools/02_build.sh | 21 ++++---- .../bundles/kexec-tools/bundle.sh | 4 +- .../bundles/libevent/01_get.sh | 11 ++--- .../bundles/libevent/02_build.sh | 18 +++---- .../bundles/libevent/bundle.sh | 7 +-- src/minimal_overlay/bundles/links/01_get.sh | 9 ++-- src/minimal_overlay/bundles/links/02_build.sh | 19 +++---- src/minimal_overlay/bundles/links/bundle.sh | 5 +- src/minimal_overlay/bundles/lua/01_get.sh | 8 +-- src/minimal_overlay/bundles/lua/02_build.sh | 17 +++---- src/minimal_overlay/bundles/lua/bundle.sh | 4 +- src/minimal_overlay/bundles/make/01_get.sh | 11 ++--- src/minimal_overlay/bundles/make/02_build.sh | 22 ++++----- src/minimal_overlay/bundles/make/bundle.sh | 6 ++- .../bundles/mll_source/bundle.sh | 33 +++++++++++++ .../bundles/mll_utils/01_prepare.sh | 7 ++- .../bundles/mll_utils/02_disk_erase.sh | 13 +++-- .../bundles/mll_utils/03_installer.sh | 29 ++++++----- .../bundles/mll_utils/04_install.sh | 9 ++-- .../bundles/mll_utils/bundle.sh | 5 +- src/minimal_overlay/bundles/nano/01_get.sh | 10 ++-- src/minimal_overlay/bundles/nano/02_build.sh | 20 +++----- src/minimal_overlay/bundles/nano/bundle.sh | 4 +- .../bundles/nano/{mll_deps => bundle_deps} | 0 src/minimal_overlay/bundles/ncurses/01_get.sh | 8 +-- .../bundles/ncurses/02_build.sh | 21 +++----- src/minimal_overlay/bundles/ncurses/bundle.sh | 5 +- src/minimal_overlay/bundles/nweb/bundle.sh | 29 +++++------ src/minimal_overlay/bundles/openjdk/01_get.sh | 9 ++-- .../bundles/openjdk/02_install.sh | 19 ++++--- src/minimal_overlay/bundles/openjdk/bundle.sh | 5 +- .../bundles/openjdk/{mll_deps => bundle_deps} | 0 .../bundles/static_get/01_get.sh | 3 +- .../bundles/static_get/02_install.sh | 17 +++---- .../bundles/static_get/bundle.sh | 5 +- src/minimal_overlay/bundles/stress/01_get.sh | 11 ++--- .../bundles/stress/02_build.sh | 16 +++--- src/minimal_overlay/bundles/stress/bundle.sh | 6 ++- .../bundles/util_linux/01_get.sh | 9 ++-- .../bundles/util_linux/02_build.sh | 18 +++---- .../bundles/util_linux/bundle.sh | 5 +- src/minimal_overlay/bundles/vim/01_get.sh | 11 ++--- src/minimal_overlay/bundles/vim/02_build.sh | 29 +++++------ src/minimal_overlay/bundles/vim/bundle.sh | 7 +-- .../bundles/vim/{mll_deps => bundle_deps} | 0 src/minimal_overlay/bundles/zlib/01_get.sh | 9 ++-- src/minimal_overlay/bundles/zlib/02_build.sh | 19 +++---- src/minimal_overlay/bundles/zlib/bundle.sh | 5 +- src/minimal_overlay/common.sh | 13 +++-- src/minimal_overlay/overlay_build.sh | 9 ++-- src/minimal_overlay/overlay_clean.sh | 22 ++------- 105 files changed, 640 insertions(+), 761 deletions(-) create mode 100755 src/08_prepare_bundles.sh delete mode 100755 src/08_prepare_src.sh rename src/minimal_overlay/bundles/dhcp/{mll_deps => bundle_deps} (100%) rename src/minimal_overlay/bundles/dialog/{mll_deps => bundle_deps} (100%) rename src/minimal_overlay/bundles/dropbear/{mll_deps => bundle_deps} (100%) rename src/minimal_overlay/bundles/glibc_full/{mll_deps => bundle_deps} (100%) create mode 100755 src/minimal_overlay/bundles/mll_source/bundle.sh rename src/minimal_overlay/bundles/nano/{mll_deps => bundle_deps} (100%) rename src/minimal_overlay/bundles/openjdk/{mll_deps => bundle_deps} (100%) rename src/minimal_overlay/bundles/vim/{mll_deps => bundle_deps} (100%) diff --git a/src/.config b/src/.config index 0f5f4da72..cfaa070b9 100644 --- a/src/.config +++ b/src/.config @@ -222,16 +222,6 @@ OVERLAY_TYPE=folder # Live" with predefined sources. USE_LOCAL_SOURCE=false -# Copy "Minimal Linux Live" source files and folders in '/src' inside initramfs. -# The default value is 'true'. You can use any other value, no value, or comment -# the property in order to disable it. -COPY_SOURCE_ROOTFS=true - -# Copy "Minimal Linux Live" source files and folders in '/src' on the ISO image. -# The default value is 'true'. You can use any other value, no value, or comment -# the property in order to disable it. -COPY_SOURCE_ISO=true - # This property defines one or more additional overlay software pieces which # will be generated and placed in the 'work/src/minimal_overlay/rootfs' folder. # These software pieces will be visible and fully usable after boot. By default @@ -261,7 +251,8 @@ COPY_SOURCE_ISO=true # lua - scripting language. # make - GNU make utility # mll_utils - set of executable utilities (mll-*). -# nano - simple command-line text editor with on-screen shortcuts.git +# mll_source - MLL source code provided in directory '/usr/src'. +# nano - simple command-line text editor with on-screen shortcuts.git # ncurses - "GUI-like" API that runs within a terminal emulator. # nweb - simple mini http server. # openjdk - installs Open JDK. All operations are automated. @@ -276,7 +267,12 @@ COPY_SOURCE_ISO=true # The line below is sample which provides Open JDK, Apache Felix and Links. # There is also DHCP/DNS functionality provided by the 'dhcp' overlay bundle. # -#OVERLAY_BUNDLES=glibc_full,dhcp,felix,links,openjdk,zlib +# OVERLAY_BUNDLES=glibc_full,dhcp,felix,links,openjdk +# +# The only default overlay bundle is 'mll_source'. It provides all MLL sources +# in the directory '/usr/src'. Note that these sources will not work there +# since MLL does not provide build tool chain. +OVERLAY_BUNDLES=mll_source # This property enables the standard penguin boot logo in the upper left corner # of the screen. The property is used in 'xx_build_kernel.sh'. The default value diff --git a/src/08_prepare_bundles.sh b/src/08_prepare_bundles.sh new file mode 100755 index 000000000..c96d17b9d --- /dev/null +++ b/src/08_prepare_bundles.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +SRC_DIR=$(pwd) + +echo "*** PREPARE OVERLAY BEGIN ***" + +# Read the 'OVERLAY_BUNDLES' property from '.config' +OVERLAY_BUNDLES="$(grep -i ^OVERLAY_BUNDLES .config | cut -f2 -d'=')" + +if [ ! "$OVERLAY_BUNDLES" = "" ] ; then + echo "Generating additional overlay bundles. This may take a while..." + cd minimal_overlay + ./overlay_build.sh + cd $SRC_DIR +else + echo "Generation of additional overlay bundles has been skipped." +fi + +echo "*** PREPARE OVERLAY END ***" diff --git a/src/08_prepare_src.sh b/src/08_prepare_src.sh deleted file mode 100755 index 8cf22b00f..000000000 --- a/src/08_prepare_src.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -set -e - -echo "*** PREPARE SRC BEGIN ***" - -SRC_DIR=$(pwd) - -cd work - -echo "Preparing source files and folders. This may take a while..." - -# Remove old sources (if they exist) -rm -rf src -mkdir src - -# Copy all source files and folders to 'work/src'. -cp ../*.sh src -cp ../.config src -cp ../README src -cp ../*.txt src -cp -r ../minimal_rootfs src -cp -r ../minimal_overlay src -cp -r ../minimal_config src - -# Delete the '.gitignore' files which we use in order to keep track of otherwise -# empty folders. -find * -type f -name '.gitignore' -exec rm {} + - -echo "Source files and folders have been prepared." - -cd $SRC_DIR - -echo "*** PREPARE SRC END ***" - diff --git a/src/09_generate_rootfs.sh b/src/09_generate_rootfs.sh index dac4cea08..c974638d6 100755 --- a/src/09_generate_rootfs.sh +++ b/src/09_generate_rootfs.sh @@ -20,25 +20,17 @@ rm -rf rootfs cp -r $BUSYBOX_INSTALLED rootfs # Copy all rootfs resources to the location of our 'initramfs' folder. -cp -r src/minimal_rootfs/* rootfs +cp -r ../minimal_rootfs/* rootfs cd rootfs +# Delete the '.gitignore' files which we use in order to keep track of otherwise +# empty folders. +find * -type f -name '.gitignore' -exec rm {} + + # Remove 'linuxrc' which is used when we boot in 'RAM disk' mode. rm -f linuxrc -# Read the 'COPY_SOURCE_ROOTFS' property from '.config' -COPY_SOURCE_ROOTFS="$(grep -i ^COPY_SOURCE_ROOTFS $SRC_ROOT/.config | cut -f2 -d'=')" - -if [ "$COPY_SOURCE_ROOTFS" = "true" ] ; then - # Copy all prepared source files and folders to '/src'. Note that the scripts - # will not work there because you also need proper toolchain. - cp -r ../src src - echo "Source files and folders have been copied to '/src'." -else - echo "Source files and folders have been skipped." -fi - # This is for the dynamic loader. Note that the name and the location are both # specific for 32-bit and 64-bit machines. First we check the BusyBox executable # and then we copy the dynamic loader to its appropriate location. @@ -72,4 +64,3 @@ echo "The initramfs area has been generated." cd $SRC_ROOT echo "*** GENERATE ROOTFS END ***" - diff --git a/src/12_generate_iso.sh b/src/12_generate_iso.sh index 69e4120ee..8622c904e 100755 --- a/src/12_generate_iso.sh +++ b/src/12_generate_iso.sh @@ -5,11 +5,9 @@ set -e # TODO - this shell script file needs serios refactoring since right now it does # too many things: # -# 1) Deal with 'src' copy. -# 2) Generate the 'overlay' software bundles. -# 3) Create proper overlay structure. -# 4) Prepare the actual ISO structure. -# 5) Generate the actual ISO image. +# 1) Create proper overlay structure. +# 2) Prepare the actual ISO structure. +# 3) Generate the actual ISO image. # # Probably it's best to create separate shell scripts for each functionality. @@ -41,27 +39,6 @@ echo "Prepared new ISO image work area." # Read the 'COPY_SOURCE_ISO' property from '.config' COPY_SOURCE_ISO="$(grep -i ^COPY_SOURCE_ISO .config | cut -f2 -d'=')" -if [ "$COPY_SOURCE_ISO" = "true" ] ; then - # Copy all prepared source files and folders to '/src'. Note that the scripts - # will not work there because you also need proper toolchain. - cp -r work/src work/isoimage - echo "Source files and folders have been copied to '/src'." -else - echo "Source files and folders have been skipped." -fi - -# Read the 'OVERLAY_BUNDLES' property from '.config' -OVERLAY_BUNDLES="$(grep -i ^OVERLAY_BUNDLES .config | cut -f2 -d'=')" - -if [ ! "$OVERLAY_BUNDLES" = "" ] ; then - echo "Generating additional overlay bundles. This may take a while..." - cd minimal_overlay - ./overlay_build.sh - cd $SRC_DIR -else - echo "Generation of additional overlay bundles has been skipped." -fi - cd work/isoimage # Now we copy the kernel. @@ -106,7 +83,8 @@ if [ "$OVERLAY_TYPE" = "sparse" -a "$(id -u)" = "0" ] ; then mkdir -p sparse/work # Copy the overlay content. - cp -r $SRC_DIR/work/src/minimal_overlay/rootfs/* sparse/rootfs/ + cp -r $SRC_DIR/overlay_rootfs/* sparse/rootfs/ + cp -r $SRC_DIR/minimal_overlay/rootfs/* sparse/rootfs/ # Unmount the sparse file and delete the temporary folder. $BUSYBOX umount sparse @@ -120,11 +98,13 @@ elif [ "$OVERLAY_TYPE" = "folder" ] ; then echo "Using folder structure for overlay." + # Create the overlay folders. mkdir -p minimal/rootfs mkdir -p minimal/work - cp -rf $SRC_DIR/work/src/minimal_overlay/rootfs/* \ - minimal/rootfs/ + # Copy the overlay content. + cp -rf $SRC_DIR/work/overlay_rootfs/* minimal/rootfs/ + cp -r $SRC_DIR/minimal_overlay/rootfs/* minimal/rootfs/ else echo "Generating ISO image with no overlay structure..." fi @@ -148,7 +128,7 @@ CEOF # Now we generate the ISO image file. xorriso \ -as mkisofs \ - -J \ + -R \ -r \ -o ../minimal_linux_live.iso \ -b isolinux.bin \ @@ -183,4 +163,3 @@ cat << CEOF CEOF echo "*** GENERATE ISO END ***" - diff --git a/src/Makefile b/src/Makefile index ed84634a7..dff25be1d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -36,10 +36,9 @@ qemu: src: @echo "Generating source archive..." @rm -f minimal_linux_live_*_src.tar.xz - @mkdir -p work - @./08_prepare_src.sh 1>/dev/null + @cd minimal_overlay && ./overlay_build.sh mll_source 1>/dev/null && cd .. @$(eval DATE_PARSED := $(shell LANG=en_US ; date +"%d-%b-%Y")) - @cd work/src && tar -cpf - `ls -A` | xz - > ../../minimal_linux_live_$(DATE_PARSED)_src.tar.xz && cd ../.. + @cd work/overlay_rootfs/usr/src && tar -cpf - `ls -A` | xz - > ../../../../minimal_linux_live_$(DATE_PARSED)_src.tar.xz && cd ../../../.. @echo "Source archive: minimal_linux_live_$(DATE_PARSED)_src.tar.xz" help: diff --git a/src/README b/src/README index 5c7a5be1c..66edd99ac 100644 --- a/src/README +++ b/src/README @@ -58,7 +58,7 @@ Currently available overlay bundles: to the "JAVA_ARCHIVE" property in the ".config" file for more detailed information. - This overlay bundle requires GLIBC. JDK 9 requires ZLIB. + This overlay bundle requires GLIBC. JDK 9 requires ZLIB. * kbd - Keyboard utilities and keymaps, you can for example load a german keyboard layout: @@ -90,6 +90,9 @@ Currently available overlay bundles: This overlay bundle is currently experimental and its build process depends on the host machine. +* MLL Source - This overlay bundle provides all MLL source code in the + directory 'usr/src'. + * nano - Simple command-line text editor with on-screen shortcuts. This overlay bundle requires ncurses. diff --git a/src/minimal_overlay/bundles/cf_cli/01_get.sh b/src/minimal_overlay/bundles/cf_cli/01_get.sh index 534e2495c..b570e36ce 100755 --- a/src/minimal_overlay/bundles/cf_cli/01_get.sh +++ b/src/minimal_overlay/bundles/cf_cli/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -29,11 +29,10 @@ fi # Delete folder with previously prepared cloud foundry cli. echo "Removing cloud foundry cli work area. This may take a while..." -rm -rf $WORK_DIR/overlay/clofo -mkdir $WORK_DIR/overlay/clofo +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME -# Copy cf-cli.tgz to folder 'work/overlay/clofo'. -cp cf-cli.tgz $WORK_DIR/overlay/clofo +# Copy cf-cli.tgz to folder 'work/overlay/cf_cli'. +cp cf-cli.tgz $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/cf_cli/02_install.sh b/src/minimal_overlay/bundles/cf_cli/02_install.sh index 70314f276..4a85c9e02 100755 --- a/src/minimal_overlay/bundles/cf_cli/02_install.sh +++ b/src/minimal_overlay/bundles/cf_cli/02_install.sh @@ -1,15 +1,15 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh echo "Removing old cloud foundry artifacts. This may take a while..." -rm -rf $WORK_DIR/overlay/clofo/clofo_installed -mkdir -p $WORK_DIR/overlay/clofo/clofo_installed/opt/clofo -mkdir -p $WORK_DIR/overlay/clofo/clofo_installed/bin +rm -rf $DEST_DIR +mkdir -p $DEST_DIR/opt/$BUNDLE_NAME +mkdir -p $DEST_DIR/bin -cd $WORK_DIR/overlay/clofo +cd $WORK_DIR/overlay/$BUNDLE_NAME cp $MAIN_SRC_DIR/source/overlay/cf-cli.tgz . @@ -17,15 +17,14 @@ tar -xvf cf-cli.tgz rm -f LICENSE NOTICE cf-cli.tgz chmod +rx cf -cp cf $WORK_DIR/overlay/clofo/clofo_installed/opt/clofo/cf +cp cf $DEST_DIR/opt/$BUNDLE_NAME/cf -cd $WORK_DIR/overlay/clofo/clofo_installed +cd $DEST_DIR -ln -s ../opt/clofo/cf bin/cf +ln -s ../opt/$BUNDLE_NAME/cf bin/cf -cp -r $WORK_DIR/overlay/clofo/clofo_installed/* $WORK_DIR/src/minimal_overlay/rootfs +cp -r $DEST_DIR/* $OVERLAY_ROOTFS -echo "cloud foundry cli has been installed." +echo "Cloud Foundry CLI has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/cf_cli/bundle.sh b/src/minimal_overlay/bundles/cf_cli/bundle.sh index d5b039710..0be2a10d3 100755 --- a/src/minimal_overlay/bundles/cf_cli/bundle.sh +++ b/src/minimal_overlay/bundles/cf_cli/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_install.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/coreutils/01_get.sh b/src/minimal_overlay/bundles/coreutils/01_get.sh index dd879e455..dfecd17f1 100755 --- a/src/minimal_overlay/bundles/coreutils/01_get.sh +++ b/src/minimal_overlay/bundles/coreutils/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted coreutils. echo "Removing coreutils work area. This may take a while..." -rm -rf $WORK_DIR/overlay/coreutils -mkdir $WORK_DIR/overlay/coreutils +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract coreutils to folder 'work/overlay/coreutils'. # Full path will be something like 'work/overlay/coreutils/coreutils-8.28'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/coreutils +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/coreutils/02_build.sh b/src/minimal_overlay/bundles/coreutils/02_build.sh index a8d22973d..ef06446d9 100755 --- a/src/minimal_overlay/bundles/coreutils/02_build.sh +++ b/src/minimal_overlay/bundles/coreutils/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/coreutils - -DESTDIR="$PWD/coreutils_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the coreutils source directory which ls finds, e.g. 'coreutils-8.28'. cd $(ls -d coreutils-*) @@ -14,7 +12,7 @@ cd $(ls -d coreutils-*) echo "Preparing coreutils work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring coreutils..." CFLAGS="$CFLAGS" ./configure \ @@ -24,14 +22,12 @@ echo "Building coreutils..." make -j $NUM_JOBS echo "Installing coreutils..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing coreutils size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "coreutils has been installed." diff --git a/src/minimal_overlay/bundles/coreutils/bundle.sh b/src/minimal_overlay/bundles/coreutils/bundle.sh index cbf2c5338..e132bc25f 100755 --- a/src/minimal_overlay/bundles/coreutils/bundle.sh +++ b/src/minimal_overlay/bundles/coreutils/bundle.sh @@ -1,6 +1,8 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/dhcp/bundle.sh b/src/minimal_overlay/bundles/dhcp/bundle.sh index dfa2e465a..748dc4d8a 100755 --- a/src/minimal_overlay/bundles/dhcp/bundle.sh +++ b/src/minimal_overlay/bundles/dhcp/bundle.sh @@ -1,23 +1,20 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -echo "removing previous work area" -rm -rf $WORK_DIR/overlay/dhcp -mkdir -p $WORK_DIR/overlay/dhcp -cd $WORK_DIR/overlay/dhcp +echo "Removing previous work area." +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME +cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$MAIN_SRC_DIR/work/src/minimal_overlay/rootfs" -mkdir -p "$DESTDIR" +install -d -m755 "$OVERLAY_ROOTFS/etc" +install -m644 "$SRC_DIR/hosts" "$OVERLAY_ROOTFS/etc/hosts" +install -m644 "$SRC_DIR/nsswitch.conf" "$OVERLAY_ROOTFS/etc/nsswitch.conf" +install -m644 "$SRC_DIR/resolv.conf" "$OVERLAY_ROOTFS/etc/resolv.conf" +install -d -m755 "$OVERLAY_ROOTFS/etc/autorun" +install -m755 "$SRC_DIR/01_network.sh" "$OVERLAY_ROOTFS/etc/autorun/01_network.sh" +install -m755 "$SRC_DIR/05_rc.dhcp" "$OVERLAY_ROOTFS/etc/05_rc.dhcp" -install -d -m755 "$DESTDIR/etc" -install -m644 "$SRC_DIR/hosts" "$DESTDIR/etc/hosts" -install -m644 "$SRC_DIR/nsswitch.conf" "$DESTDIR/etc/nsswitch.conf" -install -m644 "$SRC_DIR/resolv.conf" "$DESTDIR/etc/resolv.conf" -install -d -m755 "$DESTDIR/etc/autorun" -install -m755 "$SRC_DIR/01_network.sh" "$DESTDIR/etc/autorun/01_network.sh" -install -m755 "$SRC_DIR/05_rc.dhcp" "$DESTDIR/etc/05_rc.dhcp" - -echo "dhcp scripts and libraries have been installed" +echo "DHCP scripts and libraries have been installed." diff --git a/src/minimal_overlay/bundles/dhcp/mll_deps b/src/minimal_overlay/bundles/dhcp/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/dhcp/mll_deps rename to src/minimal_overlay/bundles/dhcp/bundle_deps diff --git a/src/minimal_overlay/bundles/dialog/01_get.sh b/src/minimal_overlay/bundles/dialog/01_get.sh index b6f3e00e0..1dc7f0041 100755 --- a/src/minimal_overlay/bundles/dialog/01_get.sh +++ b/src/minimal_overlay/bundles/dialog/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,11 +30,11 @@ fi # Delete folder with previously extracted dialog. echo "Removing dialog work area. This may take a while..." -rm -rf $WORK_DIR/overlay/dialog -mkdir $WORK_DIR/overlay/dialog +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract dialog to folder 'work/overlay/dialog'. # Full path will be something like 'work/overlay/dialog/dialog-1.3-20170509'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/dialog +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/dialog/02_build.sh b/src/minimal_overlay/bundles/dialog/02_build.sh index 29fdb8f74..cb16e60cc 100755 --- a/src/minimal_overlay/bundles/dialog/02_build.sh +++ b/src/minimal_overlay/bundles/dialog/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/dialog - -DESTDIR="$PWD/dialog_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the dialog source directory which ls finds, e.g. 'dialog-1.3-20170509'. cd $(ls -d dialog-*) @@ -14,7 +12,7 @@ cd $(ls -d dialog-*) echo "Preparing dialog work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR # Configure dialog echo "Configuring dialog..." @@ -25,16 +23,13 @@ echo "Building dialog..." make -j $NUM_JOBS echo "Installing dialog..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing dialog size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" +cp -r $DEST_DIR/usr/* $OVERLAY_ROOTFS -cp -r $DESTDIR/usr/* $ROOTFS - -echo "dialog has been installed." +echo "Bundle 'dialog' has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/dialog/bundle.sh b/src/minimal_overlay/bundles/dialog/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/dialog/bundle.sh +++ b/src/minimal_overlay/bundles/dialog/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/dialog/mll_deps b/src/minimal_overlay/bundles/dialog/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/dialog/mll_deps rename to src/minimal_overlay/bundles/dialog/bundle_deps diff --git a/src/minimal_overlay/bundles/dropbear/01_get.sh b/src/minimal_overlay/bundles/dropbear/01_get.sh index 06c36109f..d9a73a265 100755 --- a/src/minimal_overlay/bundles/dropbear/01_get.sh +++ b/src/minimal_overlay/bundles/dropbear/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted Dropbear. echo "Removing Dropbear work area. This may take a while..." -rm -rf $WORK_DIR/overlay/dropbear -mkdir $WORK_DIR/overlay/dropbear +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract Dropbear to folder 'work/overlay/dropbear'. # Full path will be something like 'work/overlay/dropbear/dropbear-2016.73'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/dropbear +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/dropbear/02_build.sh b/src/minimal_overlay/bundles/dropbear/02_build.sh index 2cf0e1c1d..eacbf5060 100755 --- a/src/minimal_overlay/bundles/dropbear/02_build.sh +++ b/src/minimal_overlay/bundles/dropbear/02_build.sh @@ -1,19 +1,17 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/dropbear - -DESTDIR="$PWD/dropbear_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the Dropbear source directory which ls finds, e.g. 'dropbear-2016.73'. cd $(ls -d dropbear-*) echo "Preparing Dropbear work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring Dropbear..." ./configure \ @@ -26,53 +24,50 @@ echo "Building Dropbear..." make -j $NUM_JOBS echo "Installing Dropbear..." -make -j $NUM_JOBS install DESTDIR="$DESTDIR" +make -j $NUM_JOBS install DESTDIR="$DEST_DIR" -mkdir -p $DESTDIR/etc/dropbear +mkdir -p $DEST_DIR/etc/dropbear # Create Dropbear SSH configuration BEGIN for key_type in rsa dss ecdsa; do echo "generating $key_type host key" - $DESTDIR/usr/bin/dropbearkey \ + $DEST_DIR/usr/bin/dropbearkey \ -t $key_type \ - -f $DESTDIR/etc/dropbear/dropbear_${key_type}_host_key + -f $DEST_DIR/etc/dropbear/dropbear_${key_type}_host_key done # Create user/group configuration files. -touch $DESTDIR/etc/passwd -touch $DESTDIR/etc/group +touch $DEST_DIR/etc/passwd +touch $DEST_DIR/etc/group # Add group 0 for root. echo "root:x:0:" \ - > $DESTDIR/etc/group + > $DEST_DIR/etc/group # Add user root with password 'toor'. echo "root:AprZpdBUhZXss:0:0:Minimal Root,,,:/root:/bin/sh" \ - > $DESTDIR/etc/passwd + > $DEST_DIR/etc/passwd # Create home folder for root user. -mkdir -p $DESTDIR/root +mkdir -p $DEST_DIR/root # Create Dropbear SSH configuration END echo "Reducing Dropbear size..." strip -g \ - $DESTDIR/usr/bin/* \ - $DESTDIR/usr/sbin/* \ - $DESTDIR/lib/* + $DEST_DIR/usr/bin/* \ + $DEST_DIR/usr/sbin/* \ + $DEST_DIR/lib/* -ROOTFS=$WORK_DIR/src/minimal_overlay/rootfs - -mkdir -p $ROOTFS/usr -cp -r $DESTDIR/etc $ROOTFS -cp -r $DESTDIR/usr/bin $ROOTFS/usr -cp -r $DESTDIR/usr/sbin $ROOTFS/usr -cp -r $DESTDIR/lib $ROOTFS -mkdir -p "$ROOTFS/etc/autorun" -install -m 0755 "$SRC_DIR/20_dropbear.sh" "$ROOTFS/etc/autorun/" +mkdir -p $OVERLAY_ROOTFS/usr +cp -r $DEST_DIR/etc $OVERLAY_ROOTFS +cp -r $DEST_DIR/usr/bin $OVERLAY_ROOTFS/usr +cp -r $DEST_DIR/usr/sbin $OVERLAY_ROOTFS/usr +cp -r $DEST_DIR/lib $OVERLAY_ROOTFS +mkdir -p "$OVERLAY_ROOTFS/etc/autorun" +install -m 0755 "$SRC_DIR/20_dropbear.sh" "$OVERLAY_ROOTFS/etc/autorun/" echo "Dropbear has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/dropbear/bundle.sh b/src/minimal_overlay/bundles/dropbear/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/dropbear/bundle.sh +++ b/src/minimal_overlay/bundles/dropbear/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/dropbear/mll_deps b/src/minimal_overlay/bundles/dropbear/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/dropbear/mll_deps rename to src/minimal_overlay/bundles/dropbear/bundle_deps diff --git a/src/minimal_overlay/bundles/felix/01_get.sh b/src/minimal_overlay/bundles/felix/01_get.sh index 0a1707b56..148efc67a 100755 --- a/src/minimal_overlay/bundles/felix/01_get.sh +++ b/src/minimal_overlay/bundles/felix/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted Felix. echo "Removing Apache Felix work area. This may take a while..." -rm -rf $WORK_DIR/overlay/felix -mkdir $WORK_DIR/overlay/felix +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract Felix to folder 'work/overlay/felix'. # Full path will be something like 'work/overlay/felix/felix-framework-5.4.0'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/felix +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/felix/02_install.sh b/src/minimal_overlay/bundles/felix/02_install.sh index a90cdf4ef..ed2253c38 100755 --- a/src/minimal_overlay/bundles/felix/02_install.sh +++ b/src/minimal_overlay/bundles/felix/02_install.sh @@ -1,13 +1,13 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh echo "Removing old Apache Felix artifacts. This may take a while..." -rm -rf $WORK_DIR/overlay/felix/felix_installed -mkdir -p $WORK_DIR/overlay/felix/felix_installed/opt/felix -mkdir -p $WORK_DIR/overlay/felix/felix_installed/bin +rm -rf $DEST_DIR +mkdir -p $DEST_DIR/opt/felix +mkdir -p $DEST_DIR/bin cd $WORK_DIR/overlay/felix cd $(ls -d felix-*) @@ -22,14 +22,13 @@ CEOF chmod +rx bin/felix-start.sh -cp -r * $WORK_DIR/overlay/felix/felix_installed/opt/felix +cp -r * $DEST_DIR/opt/felix -cd $WORK_DIR/overlay/felix/felix_installed +cd $DEST_DIR ln -s ../opt/felix/bin/felix-start.sh bin/felix-start -cp -r $WORK_DIR/overlay/felix/felix_installed/* \ - $WORK_DIR/src/minimal_overlay/rootfs +cp -r $DEST_DIR/* $OVERLAYFS_ROOT echo "Apache Felix has been installed." diff --git a/src/minimal_overlay/bundles/felix/bundle.sh b/src/minimal_overlay/bundles/felix/bundle.sh index d5b039710..de7ec49c5 100755 --- a/src/minimal_overlay/bundles/felix/bundle.sh +++ b/src/minimal_overlay/bundles/felix/bundle.sh @@ -1,6 +1,8 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_install.sh diff --git a/src/minimal_overlay/bundles/fio/01_get.sh b/src/minimal_overlay/bundles/fio/01_get.sh index d02590fb0..e2e49a75a 100755 --- a/src/minimal_overlay/bundles/fio/01_get.sh +++ b/src/minimal_overlay/bundles/fio/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted fio. echo "Removing fio work area. This may take a while..." -rm -rf $WORK_DIR/overlay/fio -mkdir $WORK_DIR/overlay/fio +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract fio to folder 'work/overlay/fio'. # Full path will be something like 'work/overlay/fio/fio-3.2'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/fio +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/fio/02_build.sh b/src/minimal_overlay/bundles/fio/02_build.sh index d41153eca..743c7e338 100755 --- a/src/minimal_overlay/bundles/fio/02_build.sh +++ b/src/minimal_overlay/bundles/fio/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/fio - -DESTDIR="$PWD/fio_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the fio source directory which ls finds, e.g. 'fio-3.2'. cd $(ls -d fio-*) @@ -14,7 +12,7 @@ cd $(ls -d fio-*) echo "Preparing fio work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring fio..." CFLAGS="$CFLAGS" ./configure \ @@ -24,14 +22,12 @@ echo "Building fio..." make -j $NUM_JOBS echo "Installing fio..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing fio size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "fio has been installed." diff --git a/src/minimal_overlay/bundles/fio/bundle.sh b/src/minimal_overlay/bundles/fio/bundle.sh index ffd32c002..e132bc25f 100755 --- a/src/minimal_overlay/bundles/fio/bundle.sh +++ b/src/minimal_overlay/bundles/fio/bundle.sh @@ -1,9 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/glibc_full/bundle.sh b/src/minimal_overlay/bundles/glibc_full/bundle.sh index 33735ae1e..395e87327 100755 --- a/src/minimal_overlay/bundles/glibc_full/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_full/bundle.sh @@ -1,2 +1,5 @@ #!/bin/sh + +set -e + echo "All GNU C libraries have been installed." diff --git a/src/minimal_overlay/bundles/glibc_full/mll_deps b/src/minimal_overlay/bundles/glibc_full/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/glibc_full/mll_deps rename to src/minimal_overlay/bundles/glibc_full/bundle_deps diff --git a/src/minimal_overlay/bundles/glibc_ld-linux/bundle.sh b/src/minimal_overlay/bundles/glibc_ld-linux/bundle.sh index 6196fe87e..9fc9de8db 100755 --- a/src/minimal_overlay/bundles/glibc_ld-linux/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_ld-linux/bundle.sh @@ -1,3 +1,7 @@ #!/bin/sh -echo "$BUNDLE_NAME is provided by the initramfs" +set -e + +. ../../common.sh + +echo "Bundle '$BUNDLE_NAME' is provided by the initramfs." diff --git a/src/minimal_overlay/bundles/glibc_libBrokenLocale/bundle.sh b/src/minimal_overlay/bundles/glibc_libBrokenLocale/bundle.sh index 8d9e66917..7460ad525 100755 --- a/src/minimal_overlay/bundles/glibc_libBrokenLocale/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libBrokenLocale/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libBrokenLocale.so.1 $DESTDIR/lib/ -ln -s libBrokenLocale.so.1 $DESTDIR/lib/libBrokenLocale.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libBrokenLocale.so.1 $DEST_DIR/lib/ +ln -s libBrokenLocale.so.1 $DEST_DIR/lib/libBrokenLocale.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libanl/bundle.sh b/src/minimal_overlay/bundles/glibc_libanl/bundle.sh index ae2712921..ab3c28baf 100755 --- a/src/minimal_overlay/bundles/glibc_libanl/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libanl/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libanl.so.1 $DEST_DIR/lib/ +ln -s libanl.so.1 $DEST_DIR/lib/libanl.so -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libanl.so.1 $DESTDIR/lib/ -ln -s libanl.so.1 $DESTDIR/lib/libanl.so +echo "Reducing $BUNDLE_NAME size." +strip -g $DEST_DIR/lib/* -echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* - -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libc/bundle.sh b/src/minimal_overlay/bundles/glibc_libc/bundle.sh index 6196fe87e..9fc9de8db 100755 --- a/src/minimal_overlay/bundles/glibc_libc/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libc/bundle.sh @@ -1,3 +1,7 @@ #!/bin/sh -echo "$BUNDLE_NAME is provided by the initramfs" +set -e + +. ../../common.sh + +echo "Bundle '$BUNDLE_NAME' is provided by the initramfs." diff --git a/src/minimal_overlay/bundles/glibc_libcidn/bundle.sh b/src/minimal_overlay/bundles/glibc_libcidn/bundle.sh index 187c3bda1..ea3ac2f00 100755 --- a/src/minimal_overlay/bundles/glibc_libcidn/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libcidn/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libcidn.so.1 $DESTDIR/lib/ -ln -s libcidn.so.1 $DESTDIR/lib/libcidn.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libcidn.so.1 $DEST_DIR/lib/ +ln -s libcidn.so.1 $DEST_DIR/lib/libcidn.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libcrypt/bundle.sh b/src/minimal_overlay/bundles/glibc_libcrypt/bundle.sh index c0ef4f2b4..6d686b679 100755 --- a/src/minimal_overlay/bundles/glibc_libcrypt/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libcrypt/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libcrypt.so.1 $DESTDIR/lib/ -ln -s libcrypt.so.1 $DESTDIR/lib/libcrypt.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libcrypt.so.1 $DEST_DIR/lib/ +ln -s libcrypt.so.1 $DEST_DIR/lib/libcrypt.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libdl/bundle.sh b/src/minimal_overlay/bundles/glibc_libdl/bundle.sh index 701b303cd..62a6e1906 100755 --- a/src/minimal_overlay/bundles/glibc_libdl/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libdl/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libdl.so.2 $DESTDIR/lib/ -ln -s libdl.so.2 $DESTDIR/lib/libdl.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libdl.so.2 $DEST_DIR/lib/ +ln -s libdl.so.2 $DEST_DIR/lib/libdl.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libm/bundle.sh b/src/minimal_overlay/bundles/glibc_libm/bundle.sh index 6196fe87e..9fc9de8db 100755 --- a/src/minimal_overlay/bundles/glibc_libm/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libm/bundle.sh @@ -1,3 +1,7 @@ #!/bin/sh -echo "$BUNDLE_NAME is provided by the initramfs" +set -e + +. ../../common.sh + +echo "Bundle '$BUNDLE_NAME' is provided by the initramfs." diff --git a/src/minimal_overlay/bundles/glibc_libnsl/bundle.sh b/src/minimal_overlay/bundles/glibc_libnsl/bundle.sh index 8c4543915..17f27f84f 100755 --- a/src/minimal_overlay/bundles/glibc_libnsl/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libnsl/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libnsl.so.1 $DESTDIR/lib/ -ln -s libnsl.so.1 $DESTDIR/lib/libnsl.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libnsl.so.1 $DEST_DIR/lib/ +ln -s libnsl.so.1 $DEST_DIR/lib/libnsl.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libnss_db/bundle.sh b/src/minimal_overlay/bundles/glibc_libnss_db/bundle.sh index 8db76e092..9fc037760 100755 --- a/src/minimal_overlay/bundles/glibc_libnss_db/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libnss_db/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libnss_db.so.2 $DESTDIR/lib/ -ln -s libnss_db.so.2 $DESTDIR/lib/libnss_db.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libnss_db.so.2 $DEST_DIR/lib/ +ln -s libnss_db.so.2 $DEST_DIR/lib/libnss_db.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libnss_dns/bundle.sh b/src/minimal_overlay/bundles/glibc_libnss_dns/bundle.sh index 744733d9f..0f82f43cb 100755 --- a/src/minimal_overlay/bundles/glibc_libnss_dns/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libnss_dns/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libnss_dns.so.2 $DESTDIR/lib/ -ln -s libnss_dns.so.2 $DESTDIR/lib/libnss_dns.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libnss_dns.so.2 $DEST_DIR/lib/ +ln -s libnss_dns.so.2 $DEST_DIR/lib/libnss_dns.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libnss_files/bundle.sh b/src/minimal_overlay/bundles/glibc_libnss_files/bundle.sh index 4d8f534e0..310508cd7 100755 --- a/src/minimal_overlay/bundles/glibc_libnss_files/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libnss_files/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libnss_files.so.2 $DESTDIR/lib/ -ln -s libnss_files.so.2 $DESTDIR/lib/libnss_files.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libnss_files.so.2 $DEST_DIR/lib/ +ln -s libnss_files.so.2 $DEST_DIR/lib/libnss_files.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libnss_hesiod/bundle.sh b/src/minimal_overlay/bundles/glibc_libnss_hesiod/bundle.sh index 451156570..74fb42b27 100755 --- a/src/minimal_overlay/bundles/glibc_libnss_hesiod/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libnss_hesiod/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libnss_hesiod.so.2 $DESTDIR/lib/ -ln -s libnss_hesiod.so.2 $DESTDIR/lib/libnss_hesiod.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libnss_hesiod.so.2 $DEST_DIR/lib/ +ln -s libnss_hesiod.so.2 $DEST_DIR/lib/libnss_hesiod.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libpthread/bundle.sh b/src/minimal_overlay/bundles/glibc_libpthread/bundle.sh index f01b513d6..466e6c30f 100755 --- a/src/minimal_overlay/bundles/glibc_libpthread/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libpthread/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,19 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libpthread.so.0 $DESTDIR/lib/ +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libpthread.so.0 $DEST_DIR/lib/ +ln -s libpthread.so.0 $DEST_DIR/lib/libpthread.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libresolv/bundle.sh b/src/minimal_overlay/bundles/glibc_libresolv/bundle.sh index e5c93cd35..4f482cd41 100755 --- a/src/minimal_overlay/bundles/glibc_libresolv/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libresolv/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libresolv.so.2 $DESTDIR/lib/ -ln -s libresolv.so.2 $DESTDIR/lib/libresolv.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libresolv.so.2 $DEST_DIR/lib/ +ln -s libresolv.so.2 $DEST_DIR/lib/libresolv.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_librt/bundle.sh b/src/minimal_overlay/bundles/glibc_librt/bundle.sh index ee33939ef..48dee8533 100755 --- a/src/minimal_overlay/bundles/glibc_librt/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_librt/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/librt.so.1 $DESTDIR/lib/ -ln -s librt.so.1 $DESTDIR/lib/librt.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/librt.so.1 $DEST_DIR/lib/ +ln -s librt.so.1 $DEST_DIR/lib/librt.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libthread_db/bundle.sh b/src/minimal_overlay/bundles/glibc_libthread_db/bundle.sh index 9a69a4708..edfcd5888 100755 --- a/src/minimal_overlay/bundles/glibc_libthread_db/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libthread_db/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libthread_db.so.1 $DESTDIR/lib/ -ln -s libthread_db.so.1 $DESTDIR/lib/libthread_db.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libthread_db.so.1 $DEST_DIR/lib/ +ln -s libthread_db.so.1 $DEST_DIR/lib/libthread_db.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/glibc_libutil/bundle.sh b/src/minimal_overlay/bundles/glibc_libutil/bundle.sh index a7c85d629..ba4156d8d 100755 --- a/src/minimal_overlay/bundles/glibc_libutil/bundle.sh +++ b/src/minimal_overlay/bundles/glibc_libutil/bundle.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -12,20 +12,16 @@ fi mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" cd $WORK_DIR/overlay/$BUNDLE_NAME -DESTDIR="$PWD/${BUNDLE_NAME}_installed" +rm -rf $DEST_DIR -rm -rf $DESTDIR - -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libutil.so.1 $DESTDIR/lib/ -ln -s libutil.so.1 $DESTDIR/lib/libutil.so +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libutil.so.1 $DEST_DIR/lib/ +ln -s libutil.so.1 $DEST_DIR/lib/libutil.so echo "Reducing $BUNDLE_NAME size" -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "$BUNDLE_NAME has been installed." diff --git a/src/minimal_overlay/bundles/java/bundle.sh b/src/minimal_overlay/bundles/java/bundle.sh index 887561b79..28e90a28a 100755 --- a/src/minimal_overlay/bundles/java/bundle.sh +++ b/src/minimal_overlay/bundles/java/bundle.sh @@ -16,7 +16,7 @@ # 3) Run this script. Note that the script will fail with error message if the # 'JAVA_ARCHIVE' property is not set or if it points to invalid file. -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -31,27 +31,25 @@ elif [ ! -f "$JAVA_ARCHIVE" ] ; then exit 1 fi -rm -rf $WORK_DIR/overlay/java -mkdir -p $WORK_DIR/overlay/java/opt +rm -rf $DEST_DIR +mkdir -p $DEST_DIR/opt tar -xvf \ $JAVA_ARCHIVE \ - -C $WORK_DIR/overlay/java/opt + -C $DEST_DIR/opt -cd $WORK_DIR/overlay/java/opt +cd $DEST_DIR/opt mv $(ls -d *) java -mkdir $WORK_DIR/overlay/java/bin +mkdir $DEST_DIR/bin for FILE in $(ls java/bin) do - ln -s ../opt/java/bin/$FILE ../bin/$FILE + ln -s ../opt/$BUNDLE_NAME/bin/$FILE ../bin/$FILE done -cp -r $WORK_DIR/overlay/java/* \ - $WORK_DIR/src/minimal_overlay/rootfs +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "Java has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/kbd/01_get.sh b/src/minimal_overlay/bundles/kbd/01_get.sh index f9cefc5df..b85a0601f 100755 --- a/src/minimal_overlay/bundles/kbd/01_get.sh +++ b/src/minimal_overlay/bundles/kbd/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,25 +30,37 @@ fi # Delete folder with previously extracted kbd. echo "Removing kbd work area. This may take a while..." -rm -rf $WORK_DIR/overlay/kbd -mkdir $WORK_DIR/overlay/kbd +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract kbd to folder 'work/overlay/kbd'. # Full path will be something like 'work/overlay/kbd/kbd-2.04'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/kbd +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME -cd "$WORK_DIR/overlay/kbd" +cd "$WORK_DIR/overlay/$BUNDLE_NAME" cd $(ls -d kbd-*) -# rename keymaps with the same name -mv data/keymaps/i386/qwertz/cz.map data/keymaps/i386/qwertz/cz-qwertz.map -mv data/keymaps/i386/olpc/es.map data/keymaps/i386/olpc/es-olpc.map -mv data/keymaps/i386/olpc/pt.map data/keymaps/i386/olpc/pt-olpc.map -mv data/keymaps/i386/dvorak/no.map data/keymaps/i386/dvorak/no-dvorak.map -mv data/keymaps/i386/fgGIod/trf.map data/keymaps/i386/fgGIod/trf-fgGIod.map -mv data/keymaps/i386/colemak/en-latin9.map data/keymaps/i386/colemak/colemak.map +# Rename keymaps with the same name BEGIN +mv data/keymaps/i386/qwertz/cz.map \ + data/keymaps/i386/qwertz/cz-qwertz.map + +mv data/keymaps/i386/olpc/es.map \ + data/keymaps/i386/olpc/es-olpc.map + +mv data/keymaps/i386/olpc/pt.map \ + data/keymaps/i386/olpc/pt-olpc.map + +mv data/keymaps/i386/dvorak/no.map \ + data/keymaps/i386/dvorak/no-dvorak.map + +mv data/keymaps/i386/fgGIod/trf.map \ + data/keymaps/i386/fgGIod/trf-fgGIod.map + +mv data/keymaps/i386/colemak/en-latin9.map \ + data/keymaps/i386/colemak/colemak.map + +# Rename keymaps with the same name BEGIN cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/kbd/02_build.sh b/src/minimal_overlay/bundles/kbd/02_build.sh index 204323b5a..08502174e 100755 --- a/src/minimal_overlay/bundles/kbd/02_build.sh +++ b/src/minimal_overlay/bundles/kbd/02_build.sh @@ -1,19 +1,17 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/kbd - -DESTDIR="$PWD/kbd_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the kbd source directory which ls finds, e.g. 'kbd-2.04'. cd $(ls -d kbd-*) echo "Preparing kbd work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring kbd..." CFLAGS="$CFLAGS" ./configure \ @@ -25,22 +23,19 @@ echo "Building kbd..." make -j $NUM_JOBS echo "Installing kbd..." -make -j $NUM_JOBS install DESTDIR="$DESTDIR" +make -j $NUM_JOBS install DESTDIR="$DEST_DIR" echo "Reducing kbd size..." strip -g \ - $DESTDIR/usr/bin/* \ - $DESTDIR/usr/sbin/* \ - $DESTDIR/lib/* + $DEST_DIR/usr/bin/* \ + $DEST_DIR/usr/sbin/* \ + $DEST_DIR/lib/* -ROOTFS=$WORK_DIR/src/minimal_overlay/rootfs +mkdir -p $OVERLAY_ROOTFS/usr +cp -r "$DEST_DIR/usr/bin" \ + "$DEST_DIR/usr/share" \ + "$OVERLAY_ROOTFS/usr/" -mkdir -p $ROOTFS/usr -cp -r "$DESTDIR/usr/bin" \ - "$DESTDIR/usr/share" \ - "$ROOTFS/usr/" - -echo "kbd has been installed." +echo "Bundle 'kbd' has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/kbd/bundle.sh b/src/minimal_overlay/bundles/kbd/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/kbd/bundle.sh +++ b/src/minimal_overlay/bundles/kbd/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/kexec-tools/01_get.sh b/src/minimal_overlay/bundles/kexec-tools/01_get.sh index 8ae9b1d3a..ec86cbbd0 100755 --- a/src/minimal_overlay/bundles/kexec-tools/01_get.sh +++ b/src/minimal_overlay/bundles/kexec-tools/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,11 +30,11 @@ fi # Delete folder with previously extracted kexec-tools. echo "Removing kexec-tools work area. This may take a while..." -rm -rf $WORK_DIR/overlay/kexec-tools -mkdir $WORK_DIR/overlay/kexec-tools +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract kexec-tools to folder 'work/overlay/kexec-tools'. # Full path will be something like 'work/overlay/kexec-tools/kexec-tools-2.0.15'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/kexec-tools +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/kexec-tools/02_build.sh b/src/minimal_overlay/bundles/kexec-tools/02_build.sh index 1a811eb13..9a2b43919 100755 --- a/src/minimal_overlay/bundles/kexec-tools/02_build.sh +++ b/src/minimal_overlay/bundles/kexec-tools/02_build.sh @@ -1,19 +1,17 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/kexec-tools - -DESTDIR="$PWD/kexec-tools_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the kexec-tools source directory which ls finds, e.g. 'kexec-tools-2.0.15'. cd $(ls -d kexec-tools-*) echo "Preparing kexec-tools work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Building kexec-tools..." CFLAGS="$CFLAGS" ./configure \ @@ -22,15 +20,14 @@ CFLAGS="$CFLAGS" ./configure \ make -j $NUM_JOBS -make -j $NUM_JOBS install DESTDIR="$DESTDIR" +make -j $NUM_JOBS install DESTDIR="$DEST_DIR" echo "Reducing kexec-tools size..." -strip -g $DESTDIR/usr/bin/* \ - $DESTDIR/usr/lib/* 2>/dev/null +strip -g $DEST_DIR/usr/bin/* \ + $DEST_DIR/usr/lib/* 2>/dev/null -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" -mkdir -p $ROOTFS/usr/ -cp -r $DESTDIR/usr/* $ROOTFS/usr/ +mkdir -p $OVERLAY_ROOTFS/usr/ +cp -r $DEST_DIR/usr/* $OVERLAY_ROOTFS/usr/ echo "kexec-tools has been installed." diff --git a/src/minimal_overlay/bundles/kexec-tools/bundle.sh b/src/minimal_overlay/bundles/kexec-tools/bundle.sh index db41a1610..e132bc25f 100755 --- a/src/minimal_overlay/bundles/kexec-tools/bundle.sh +++ b/src/minimal_overlay/bundles/kexec-tools/bundle.sh @@ -1,6 +1,8 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/libevent/01_get.sh b/src/minimal_overlay/bundles/libevent/01_get.sh index 79beb6988..a9af10116 100755 --- a/src/minimal_overlay/bundles/libevent/01_get.sh +++ b/src/minimal_overlay/bundles/libevent/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted libevent. echo "Removing libevent work area. This may take a while..." -rm -rf $WORK_DIR/overlay/libevent -mkdir $WORK_DIR/overlay/libevent +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract libevent to folder 'work/overlay/libevent'. # Full path will be something like 'work/overlay/libevent/libevent-2.1.8-stable'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/libevent +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/libevent/02_build.sh b/src/minimal_overlay/bundles/libevent/02_build.sh index 3360ed45b..b091afea9 100755 --- a/src/minimal_overlay/bundles/libevent/02_build.sh +++ b/src/minimal_overlay/bundles/libevent/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/libevent - -DESTDIR="$PWD/libevent_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the libevent source directory which ls finds, e.g. 'libevent-2.1.8-stable'. cd $(ls -d libevent-*) @@ -14,7 +12,7 @@ cd $(ls -d libevent-*) echo "Preparing libevent work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring libevent..." CFLAGS="$CFLAGS" ./configure @@ -23,14 +21,12 @@ echo "Building libevent..." make -j $NUM_JOBS echo "Installing libevent..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing libevent size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/usr/local/* $ROOTFS +cp -r $DEST_DIR/usr/local/* $OVERLAY_ROOTFS echo "libevent has been installed." diff --git a/src/minimal_overlay/bundles/libevent/bundle.sh b/src/minimal_overlay/bundles/libevent/bundle.sh index ffd32c002..e132bc25f 100755 --- a/src/minimal_overlay/bundles/libevent/bundle.sh +++ b/src/minimal_overlay/bundles/libevent/bundle.sh @@ -1,9 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/links/01_get.sh b/src/minimal_overlay/bundles/links/01_get.sh index f245643c5..9fdab9cbf 100755 --- a/src/minimal_overlay/bundles/links/01_get.sh +++ b/src/minimal_overlay/bundles/links/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted Links. echo "Removing Links work area. This may take a while..." -rm -rf $WORK_DIR/overlay/links -mkdir $WORK_DIR/overlay/links +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract Links to folder 'work/overlay/links'. # Full path will be something like 'work/overlay/links/links-2.12'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/links +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/links/02_build.sh b/src/minimal_overlay/bundles/links/02_build.sh index 340abf958..e1bb620c9 100755 --- a/src/minimal_overlay/bundles/links/02_build.sh +++ b/src/minimal_overlay/bundles/links/02_build.sh @@ -1,12 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/links - -DESTDIR="$PWD/links_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the Links source directory which ls finds, e.g. 'links-2.12'. cd $(ls -d links-*) @@ -14,7 +12,7 @@ cd $(ls -d links-*) echo "Preparing Links work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring Links..." CFLAGS="$CFLAGS" ./configure \ @@ -30,17 +28,14 @@ echo "Building Links..." make -j $NUM_JOBS echo "Installing Links..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing Links size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -mkdir -p "$ROOTFS/usr/bin" -cp -r $DESTDIR/usr/bin/* $ROOTFS/usr/bin/ +mkdir -p "$OVERLAY_ROOTFS/usr/bin" +cp -r $DEST_DIR/usr/bin/* $OVERLAY_ROOTFS/usr/bin/ echo "Links has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/links/bundle.sh b/src/minimal_overlay/bundles/links/bundle.sh index 3935ced35..1b2ceb586 100755 --- a/src/minimal_overlay/bundles/links/bundle.sh +++ b/src/minimal_overlay/bundles/links/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +. ../../common.sh + +set -e ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/lua/01_get.sh b/src/minimal_overlay/bundles/lua/01_get.sh index 2a2a91bfa..9d069072e 100755 --- a/src/minimal_overlay/bundles/lua/01_get.sh +++ b/src/minimal_overlay/bundles/lua/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,11 +30,11 @@ fi # Delete folder with previously extracted Lua. echo "Removing Lua work area. This may take a while..." -rm -rf $WORK_DIR/overlay/lua -mkdir $WORK_DIR/overlay/lua +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract lua to folder 'work/overlay/lua'. # Full path will be something like 'work/overlay/lua/lua-5.3.4'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/lua +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/lua/02_build.sh b/src/minimal_overlay/bundles/lua/02_build.sh index f6e1edd7e..55c1dfd41 100755 --- a/src/minimal_overlay/bundles/lua/02_build.sh +++ b/src/minimal_overlay/bundles/lua/02_build.sh @@ -2,13 +2,11 @@ # TODO: compile the gnu readline library for line editing support -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/lua - -DESTDIR="$PWD/lua_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the Lua source directory which ls finds, e.g. 'lua-5.3.4'. cd $(ls -d lua-*) @@ -17,19 +15,18 @@ echo "Preparing Lua work area. This may take a while..." # we install lua to /usr and not to /usr/local so we need to fix luaconf.h so lua can find modules, etc ... sed -i 's/#define LUA_ROOT.*/#define LUA_ROOT \"\/usr\/\"/' src/luaconf.h make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Building Lua..." make -j $NUM_JOBS posix CFLAGS="$CFLAGS" -make -j $NUM_JOBS install INSTALL_TOP="$DESTDIR/usr" +make -j $NUM_JOBS install INSTALL_TOP="$DEST_DIR/usr" echo "Reducing Lua size..." -strip -g $DESTDIR/usr/bin/* 2>/dev/null +strip -g $DEST_DIR/usr/bin/* 2>/dev/null -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" -mkdir -p $ROOTFS/usr/ -cp -r $DESTDIR/usr/* $ROOTFS/usr/ +mkdir -p $OVERLAY_ROOTFS/usr/ +cp -r $DEST_DIR/usr/* $OVERLAY_ROOTFS/usr/ echo "Lua has been installed." diff --git a/src/minimal_overlay/bundles/lua/bundle.sh b/src/minimal_overlay/bundles/lua/bundle.sh index db41a1610..1b2ceb586 100755 --- a/src/minimal_overlay/bundles/lua/bundle.sh +++ b/src/minimal_overlay/bundles/lua/bundle.sh @@ -1,6 +1,8 @@ #!/bin/sh -SRC_DIR=$(pwd) +. ../../common.sh + +set -e ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/make/01_get.sh b/src/minimal_overlay/bundles/make/01_get.sh index dda550e40..6b680cfb4 100755 --- a/src/minimal_overlay/bundles/make/01_get.sh +++ b/src/minimal_overlay/bundles/make/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted make. echo "Removing make work area. This may take a while..." -rm -rf $WORK_DIR/overlay/make -mkdir $WORK_DIR/overlay/make +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract make to folder 'work/overlay/make'. # Full path will be something like 'work/overlay/make/make-8.28'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/make +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/make/02_build.sh b/src/minimal_overlay/bundles/make/02_build.sh index 6db3cd47a..95f71da32 100755 --- a/src/minimal_overlay/bundles/make/02_build.sh +++ b/src/minimal_overlay/bundles/make/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/make - -DESTDIR="$PWD/make_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the make source directory which ls finds, e.g. 'make-8.28'. cd $(ls -d make-*) @@ -14,7 +12,7 @@ cd $(ls -d make-*) echo "Preparing make work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring make..." CFLAGS="$CFLAGS" ./configure \ @@ -24,17 +22,15 @@ echo "Building make..." make -j $NUM_JOBS echo "Installing make..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR -mkdir -p $DESTDIR/lib -cp $SYSROOT/lib/libdl.so.2 $DESTDIR/lib/ +mkdir -p $DEST_DIR/lib +cp $SYSROOT/lib/libdl.so.2 $DEST_DIR/lib/ echo "Reducing make size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "make has been installed." diff --git a/src/minimal_overlay/bundles/make/bundle.sh b/src/minimal_overlay/bundles/make/bundle.sh index cbf2c5338..e132bc25f 100755 --- a/src/minimal_overlay/bundles/make/bundle.sh +++ b/src/minimal_overlay/bundles/make/bundle.sh @@ -1,6 +1,8 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/mll_source/bundle.sh b/src/minimal_overlay/bundles/mll_source/bundle.sh new file mode 100755 index 000000000..956a4d88f --- /dev/null +++ b/src/minimal_overlay/bundles/mll_source/bundle.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +set -e + +. ../../common.sh + +mkdir -p "$WORK_DIR/overlay/$BUNDLE_NAME" +cd $WORK_DIR/overlay/$BUNDLE_NAME + +rm -rf $DEST_DIR + +mkdir -p $DEST_DIR/usr/src + +# Copy all source files and folders to 'work/src'. +cp $MAIN_SRC_DIR/*.sh $DEST_DIR/usr/src +cp $MAIN_SRC_DIR/.config $DEST_DIR/usr/src +cp $MAIN_SRC_DIR/README $DEST_DIR/usr/src +cp $MAIN_SRC_DIR/*.txt $DEST_DIR/usr/src +cp -r $MAIN_SRC_DIR/minimal_rootfs $DEST_DIR/usr/src +cp -r $MAIN_SRC_DIR/minimal_overlay $DEST_DIR/usr/src +cp -r $MAIN_SRC_DIR/minimal_config $DEST_DIR/usr/src + +cd $DEST_DIR/usr/src + +# Delete the '.gitignore' files which we use in order to keep track of otherwise +# empty folders. +find * -type f -name '.gitignore' -exec rm {} + + +cp -r $DEST_DIR/* $OVERLAY_ROOTFS + +echo "$BUNDLE_NAME has been installed." + +cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/mll_utils/01_prepare.sh b/src/minimal_overlay/bundles/mll_utils/01_prepare.sh index 36b4db352..994e1ef1d 100755 --- a/src/minimal_overlay/bundles/mll_utils/01_prepare.sh +++ b/src/minimal_overlay/bundles/mll_utils/01_prepare.sh @@ -1,14 +1,13 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh echo "Preparing the Minimal Linux Live utilities folder. This may take a while..." -rm -rf $WORK_DIR/overlay/mll_utils -mkdir -p $WORK_DIR/overlay/mll_utils/sbin +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/sbin echo "Miminal Linux Live utilities folder has been prepared." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/mll_utils/02_disk_erase.sh b/src/minimal_overlay/bundles/mll_utils/02_disk_erase.sh index 46d854c1a..6c720ff92 100755 --- a/src/minimal_overlay/bundles/mll_utils/02_disk_erase.sh +++ b/src/minimal_overlay/bundles/mll_utils/02_disk_erase.sh @@ -1,15 +1,15 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -if [ ! -d "$WORK_DIR/overlay/mll_utils" ] ; then - echo "The directory $WORK_DIR/overlay/mll_utils does not exist. Cannot continue." +if [ ! -d "$WORK_DIR/overlay/$BUNDLE_NAME" ] ; then + echo "The directory $WORK_DIR/overlay/$BUNDLE_NAME does not exist. Cannot continue." exit 1 fi -cd $WORK_DIR/overlay/mll_utils +cd $WORK_DIR/overlay/$BUNDLE_NAME # 'mll-disk-erase' BEGIN @@ -48,7 +48,7 @@ if [ "\$PRINT_HELP" = "true" ] ; then The above example wipes '/dev/sdb' 8 times in row. DEOF - + exit 0 fi @@ -71,7 +71,7 @@ fi for n in \$(seq \$NUM_LOOPS) ; do echo " Windows update \$n of \$NUM_LOOPS is being installed. Please wait..." dd if=/dev/urandom of=/dev/\$1 bs=1024b conv=notrunc > /dev/null 2>\&1 -done +done echo " All updates have been installed." @@ -84,4 +84,3 @@ chmod +rx sbin/mll-disk-erase echo "Utility script 'mll-disk-erase' has been generated." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/mll_utils/03_installer.sh b/src/minimal_overlay/bundles/mll_utils/03_installer.sh index 6a5731574..dd8619b96 100755 --- a/src/minimal_overlay/bundles/mll_utils/03_installer.sh +++ b/src/minimal_overlay/bundles/mll_utils/03_installer.sh @@ -1,15 +1,15 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -if [ ! -d "$WORK_DIR/overlay/mll_utils" ] ; then - echo "The directory $WORK_DIR/overlay/mll_utils does not exist. Cannot continue." +if [ ! -d "$WORK_DIR/overlay/$BUNDLE_NAME" ] ; then + echo "The directory $WORK_DIR/overlay/$BUNDLE_NAME does not exist. Cannot continue." exit 1 fi -cd $WORK_DIR/overlay/mll_utils +cd $WORK_DIR/overlay/$BUNDLE_NAME # 'mll-install' BEGIN @@ -43,7 +43,7 @@ if [ "\$PRINT_HELP" = "true" ] ; then The above example installs Minimal Linux Live on '/dev/sdb'. DEOF - + exit 0 fi @@ -59,10 +59,10 @@ fi cat << DEOF - Minimal Linux Live will be installed on device '/dev/\$1'. The device will be + Minimal Linux Live will be installed on device '/dev/\$1'. The device will be formatted with Ext2 and all previous data will be lost. Press 'Ctrl + C' to exit or any other key to continue. - + DEOF read -n1 -s @@ -108,24 +108,23 @@ cd $WORK_DIR/syslinux cd $(ls -d syslinux-*) cp bios/extlinux/extlinux \ - $WORK_DIR/overlay/mll_utils/sbin -mkdir -p $WORK_DIR/overlay/mll_utils/opt/syslinux + $WORK_DIR/overlay/$BUNDLE_NAME/sbin +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/opt/syslinux cp bios/mbr/mbr.bin \ - $WORK_DIR/overlay/mll_utils/opt/syslinux + $WORK_DIR/overlay/$BUNDLE_NAME/opt/syslinux # Big mama hack - need to find proper workaround!!! # Both syslinux and extlinux are 32-bit executables which require 32-bit libs. # Possible solution 1 - build 32-bit GLIBC on demand. # Possible solution 2 - drop 32-bit MLL and provide 64-bit with multi-arch. -mkdir -p $WORK_DIR/overlay/mll_utils/lib -mkdir -p $WORK_DIR/overlay/mll_utils/usr/lib +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/lib +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/usr/lib cp /lib/ld-linux.so.2 \ - $WORK_DIR/overlay/mll_utils/lib + $WORK_DIR/overlay/$BUNDLE_NAME/lib cp /lib/i386-linux-gnu/libc.so.6 \ - $WORK_DIR/overlay/mll_utils/usr/lib + $WORK_DIR/overlay/$BUNDLE_NAME/usr/lib # Big mama hack - end. echo "Minimal Linux Live installer has been generated." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/mll_utils/04_install.sh b/src/minimal_overlay/bundles/mll_utils/04_install.sh index aa4593d30..709b7f400 100755 --- a/src/minimal_overlay/bundles/mll_utils/04_install.sh +++ b/src/minimal_overlay/bundles/mll_utils/04_install.sh @@ -1,18 +1,17 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -if [ ! -d "$WORK_DIR/overlay/mll_utils" ] ; then - echo "The directory $WORK_DIR/overlay/mll_utils does not exist. Cannot continue." +if [ ! -d "$WORK_DIR/overlay/$BUNDLE_NAME" ] ; then + echo "The directory $WORK_DIR/overlay/$BUNDLE_NAME does not exist. Cannot continue." exit 1 fi # Copy all generated files to the source overlay folder. -cp -r $WORK_DIR/overlay/mll_utils/* $WORK_DIR/src/minimal_overlay/rootfs +cp -r $WORK_DIR/overlay/$BUNDLE_NAME/* $OVERLAY_ROOTFS echo "All MLL utilities have been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/mll_utils/bundle.sh b/src/minimal_overlay/bundles/mll_utils/bundle.sh index 6a8320dbb..cfe26340b 100755 --- a/src/minimal_overlay/bundles/mll_utils/bundle.sh +++ b/src/minimal_overlay/bundles/mll_utils/bundle.sh @@ -1,6 +1,8 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_prepare.sh ./02_disk_erase.sh @@ -8,4 +10,3 @@ SRC_DIR=$(pwd) ./04_install.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/nano/01_get.sh b/src/minimal_overlay/bundles/nano/01_get.sh index daae2653a..6cbf71b98 100755 --- a/src/minimal_overlay/bundles/nano/01_get.sh +++ b/src/minimal_overlay/bundles/nano/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,11 +30,11 @@ fi # Delete folder with previously extracted nano. echo "Removing nano work area. This may take a while..." -rm -rf $WORK_DIR/overlay/nano -mkdir $WORK_DIR/overlay/nano +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract nano to folder 'work/overlay/nano'. # Full path will be something like 'work/overlay/nano/nano-2.8.7'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/nano +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/nano/02_build.sh b/src/minimal_overlay/bundles/nano/02_build.sh index 9480712e5..133b14a26 100755 --- a/src/minimal_overlay/bundles/nano/02_build.sh +++ b/src/minimal_overlay/bundles/nano/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/nano - -DESTDIR="$PWD/nano_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the nano source directory which ls finds, e.g. 'nano-2.8.7'. cd $(ls -d nano-*) @@ -14,25 +12,23 @@ cd $(ls -d nano-*) echo "Preparing nano work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring nano..." CFLAGS="$CFLAGS" ./configure \ --prefix=/usr \ - LDFLAGS=-L$WORK_DIR/overlay/ncurses/ncurses_installed/usr/include + LDFLAGS=-L$DEST_DIR/usr/include echo "Building nano..." make -j $NUM_JOBS echo "Installing nano..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing nano size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "nano has been installed." diff --git a/src/minimal_overlay/bundles/nano/bundle.sh b/src/minimal_overlay/bundles/nano/bundle.sh index db41a1610..e132bc25f 100755 --- a/src/minimal_overlay/bundles/nano/bundle.sh +++ b/src/minimal_overlay/bundles/nano/bundle.sh @@ -1,6 +1,8 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/nano/mll_deps b/src/minimal_overlay/bundles/nano/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/nano/mll_deps rename to src/minimal_overlay/bundles/nano/bundle_deps diff --git a/src/minimal_overlay/bundles/ncurses/01_get.sh b/src/minimal_overlay/bundles/ncurses/01_get.sh index 3d0315215..4757ceddd 100755 --- a/src/minimal_overlay/bundles/ncurses/01_get.sh +++ b/src/minimal_overlay/bundles/ncurses/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,11 +30,11 @@ fi # Delete folder with previously extracted ncurses. echo "Removing ncurses work area. This may take a while..." -rm -rf $WORK_DIR/overlay/ncurses -mkdir $WORK_DIR/overlay/ncurses +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract ncurses to folder 'work/overlay/ncurses'. # Full path will be something like 'work/overlay/ncurses/ncurses-6.0'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/ncurses +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/ncurses/02_build.sh b/src/minimal_overlay/bundles/ncurses/02_build.sh index 3362c6a6a..e4c9f6977 100755 --- a/src/minimal_overlay/bundles/ncurses/02_build.sh +++ b/src/minimal_overlay/bundles/ncurses/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/ncurses - -DESTDIR="$PWD/ncurses_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the ncurses source directory which ls finds, e.g. 'ncurses-6.0'. cd $(ls -d ncurses-*) @@ -14,7 +12,7 @@ cd $(ls -d ncurses-*) echo "Preparing ncurses work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR # Remove static library sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in @@ -48,23 +46,20 @@ echo "Building ncurses..." make -j $NUM_JOBS echo "Installing ncurses..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR # Symnlink wide character libraries -cd $DESTDIR/usr/lib +cd $DEST_DIR/usr/lib ln -s libncursesw.so.5 libncurses.so.5 ln -s libncurses.so.5 libncurses.so ln -s libtinfow.so.5 libtinfo.so.5 ln -s libtinfo.so.5 libtinfo.so echo "Reducing ncurses size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/usr/* $ROOTFS +cp -r $DEST_DIR/usr/* $OVERLAY_ROOTFS echo "ncurses has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/ncurses/bundle.sh b/src/minimal_overlay/bundles/ncurses/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/ncurses/bundle.sh +++ b/src/minimal_overlay/bundles/ncurses/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/nweb/bundle.sh b/src/minimal_overlay/bundles/nweb/bundle.sh index 7af7184d8..b9744f44c 100755 --- a/src/minimal_overlay/bundles/nweb/bundle.sh +++ b/src/minimal_overlay/bundles/nweb/bundle.sh @@ -1,31 +1,28 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh echo "removing previous work area" -rm -rf $WORK_DIR/overlay/nweb -mkdir -p $WORK_DIR/overlay/nweb -cd $WORK_DIR/overlay/nweb +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME +cd $WORK_DIR/overlay/$BUNDLE_NAME # nweb gcc $CFLAGS $SRC_DIR/nweb23.c -o nweb echo "nweb has been build." -DESTDIR="$MAIN_SRC_DIR/work/src/minimal_overlay/rootfs" - -install -d -m755 "$DESTDIR/usr" -install -d -m755 "$DESTDIR/usr/bin" -install -m755 nweb "$DESTDIR/usr/bin/nweb" -install -d -m755 "$DESTDIR/srv/www" # FHS compliant location -install -m644 "$SRC_DIR/index.html" "$DESTDIR/srv/www/index.html" -install -m644 "$SRC_DIR/favicon.ico" "$DESTDIR/srv/www/favicon.ico" -install -d -m755 "$DESTDIR/etc" -install -d -m755 "$DESTDIR/etc/autorun" -install -m755 "$SRC_DIR/90_nweb.sh" "$DESTDIR/etc/autorun/90_nweb.sh" +install -d -m755 "$OVERLAY_ROOTFS/usr" +install -d -m755 "$OVERLAY_ROOTFS/usr/bin" +install -m755 nweb "$OVERLAY_ROOTFS/usr/bin/nweb" +install -d -m755 "$OVERLAY_ROOTFS/srv/www" # FHS compliant location +install -m644 "$SRC_DIR/index.html" "$OVERLAY_ROOTFS/srv/www/index.html" +install -m644 "$SRC_DIR/favicon.ico" "$OVERLAY_ROOTFS/srv/www/favicon.ico" +install -d -m755 "$OVERLAY_ROOTFS/etc" +install -d -m755 "$OVERLAY_ROOTFS/etc/autorun" +install -m755 "$SRC_DIR/90_nweb.sh" "$OVERLAY_ROOTFS/etc/autorun/90_nweb.sh" echo "nweb has been installed." echo "It will be autostarted on boot." - diff --git a/src/minimal_overlay/bundles/openjdk/01_get.sh b/src/minimal_overlay/bundles/openjdk/01_get.sh index a2c360919..b7ab37f3f 100755 --- a/src/minimal_overlay/bundles/openjdk/01_get.sh +++ b/src/minimal_overlay/bundles/openjdk/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted Felix. echo "Removing Open JDK work area. This may take a while..." -rm -rf $WORK_DIR/overlay/openjdk -mkdir $WORK_DIR/overlay/openjdk +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract Open JDK to folder 'work/overlay/openjdk'. # Full path will be something like 'work/overlay/openjdk/jdk-9'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/openjdk +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/openjdk/02_install.sh b/src/minimal_overlay/bundles/openjdk/02_install.sh index d65a9e231..b25afc3e0 100755 --- a/src/minimal_overlay/bundles/openjdk/02_install.sh +++ b/src/minimal_overlay/bundles/openjdk/02_install.sh @@ -1,27 +1,26 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/openjdk -mv `ls -d *` openjdk +cd $WORK_DIR/overlay/$BUNDLE_NAME +mv `ls -d *` $BUNDLE_NAME mkdir opt mv openjdk opt -mkdir $WORK_DIR/overlay/openjdk/bin -cd $WORK_DIR/overlay/openjdk/bin +mkdir $WORK_DIR/overlay/$BUNDLE_NAME/bin +cd $WORK_DIR/overlay/$BUNDLE_NAME/bin -for FILE in $(ls ../opt/openjdk/bin) +for FILE in $(ls ../opt/$BUNDLE_NAME/bin) do - ln -s ../opt/openjdk/bin/$FILE $FILE + ln -s ../opt/$BUNDLE_NAME/bin/$FILE $FILE done -cp -r $WORK_DIR/overlay/openjdk/* \ - $WORK_DIR/src/minimal_overlay/rootfs +cp -r $WORK_DIR/overlay/$BUNDLE_NAME/* \ + $OVERLAY_ROOTFS echo "Open JDK has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/openjdk/bundle.sh b/src/minimal_overlay/bundles/openjdk/bundle.sh index d5b039710..0be2a10d3 100755 --- a/src/minimal_overlay/bundles/openjdk/bundle.sh +++ b/src/minimal_overlay/bundles/openjdk/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_install.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/openjdk/mll_deps b/src/minimal_overlay/bundles/openjdk/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/openjdk/mll_deps rename to src/minimal_overlay/bundles/openjdk/bundle_deps diff --git a/src/minimal_overlay/bundles/static_get/01_get.sh b/src/minimal_overlay/bundles/static_get/01_get.sh index 3a1a37826..b4bbf1362 100755 --- a/src/minimal_overlay/bundles/static_get/01_get.sh +++ b/src/minimal_overlay/bundles/static_get/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -34,4 +34,3 @@ mkdir $WORK_DIR/overlay/$BUNDLE_NAME cp static-get.sh $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/static_get/02_install.sh b/src/minimal_overlay/bundles/static_get/02_install.sh index 57e284f29..9cb86e751 100755 --- a/src/minimal_overlay/bundles/static_get/02_install.sh +++ b/src/minimal_overlay/bundles/static_get/02_install.sh @@ -1,13 +1,13 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh echo "Removing old static-get artifacts. This may take a while..." -rm -rf $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed -mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed/opt/$BUNDLE_NAME -mkdir -p $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed/bin +rm -rf $DEST_DIR +mkdir -p $DEST_DIR/opt/$BUNDLE_NAME +mkdir -p $DEST_DIR/bin cd $WORK_DIR/overlay/$BUNDLE_NAME @@ -15,17 +15,16 @@ cp $MAIN_SRC_DIR/source/overlay/static-get.sh . chmod +rx static-get.sh -cp static-get.sh $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed/opt/$BUNDLE_NAME +cp static-get.sh $DEST_DIR/opt/$BUNDLE_NAME -cd $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed +cd $DEST_DIR ln -s ../opt/$BUNDLE_NAME/static-get.sh bin/static-get ln -s ../opt/$BUNDLE_NAME/static-get.sh bin/mll-get -cp -r $WORK_DIR/overlay/$BUNDLE_NAME/$BUNDLE_NAME_installed/* \ - $WORK_DIR/src/minimal_overlay/rootfs +cp -r $DEST_DIR/* \ + $OVERLAY_ROOTFS echo "static-get has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/static_get/bundle.sh b/src/minimal_overlay/bundles/static_get/bundle.sh index d5b039710..0be2a10d3 100755 --- a/src/minimal_overlay/bundles/static_get/bundle.sh +++ b/src/minimal_overlay/bundles/static_get/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_install.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/stress/01_get.sh b/src/minimal_overlay/bundles/stress/01_get.sh index c355eba02..189b70dec 100755 --- a/src/minimal_overlay/bundles/stress/01_get.sh +++ b/src/minimal_overlay/bundles/stress/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted stress. echo "Removing stress work area. This may take a while..." -rm -rf $WORK_DIR/overlay/stress -mkdir $WORK_DIR/overlay/stress +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract stress to folder 'work/overlay/stress'. # Full path will be something like 'work/overlay/stress/stress-1.0.4'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/stress +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/stress/02_build.sh b/src/minimal_overlay/bundles/stress/02_build.sh index 6c1598a64..4a8e2e795 100755 --- a/src/minimal_overlay/bundles/stress/02_build.sh +++ b/src/minimal_overlay/bundles/stress/02_build.sh @@ -1,10 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/stress +cd $WORK_DIR/overlay/$BUNDLE_NAME DESTDIR="$PWD/stress_installed" @@ -14,7 +14,7 @@ cd $(ls -d stress-*) echo "Preparing stress work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring stress..." CFLAGS="$CFLAGS" ./configure \ @@ -24,14 +24,12 @@ echo "Building stress..." make -j $NUM_JOBS echo "Installing stress..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing stress size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "stress has been installed." diff --git a/src/minimal_overlay/bundles/stress/bundle.sh b/src/minimal_overlay/bundles/stress/bundle.sh index ffd32c002..c4349cdd2 100755 --- a/src/minimal_overlay/bundles/stress/bundle.sh +++ b/src/minimal_overlay/bundles/stress/bundle.sh @@ -1,6 +1,8 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh diff --git a/src/minimal_overlay/bundles/util_linux/01_get.sh b/src/minimal_overlay/bundles/util_linux/01_get.sh index e51161c08..2506e9fd5 100755 --- a/src/minimal_overlay/bundles/util_linux/01_get.sh +++ b/src/minimal_overlay/bundles/util_linux/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted util-linux. echo "Removing util-linux work area. This may take a while..." -rm -rf $WORK_DIR/overlay/util_linux -mkdir $WORK_DIR/overlay/util_linux +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract util-linux to folder 'work/overlay/util_linux'. # Full path will be something like 'work/overlay/util_linux/util-linux-2.31'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/util_linux +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/util_linux/02_build.sh b/src/minimal_overlay/bundles/util_linux/02_build.sh index cfc860174..14d6a9479 100755 --- a/src/minimal_overlay/bundles/util_linux/02_build.sh +++ b/src/minimal_overlay/bundles/util_linux/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/util_linux - -DESTDIR="$PWD/util_linux_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the util-linux source directory which ls finds, e.g. 'util-linux-2.31'. cd $(ls -d util-linux-*) @@ -14,7 +12,7 @@ cd $(ls -d util-linux-*) echo "Preparing util-linux work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring util-linux..." CFLAGS="$CFLAGS" ./configure \ @@ -36,14 +34,12 @@ echo "Building util-linux..." make -j $NUM_JOBS echo "Installing util-linux..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Reducing util-linux size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "util-linux has been installed." diff --git a/src/minimal_overlay/bundles/util_linux/bundle.sh b/src/minimal_overlay/bundles/util_linux/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/util_linux/bundle.sh +++ b/src/minimal_overlay/bundles/util_linux/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/vim/01_get.sh b/src/minimal_overlay/bundles/vim/01_get.sh index 2a3369e2a..7344e76a2 100755 --- a/src/minimal_overlay/bundles/vim/01_get.sh +++ b/src/minimal_overlay/bundles/vim/01_get.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted vim. echo "Removing vim work area. This may take a while..." -rm -rf $WORK_DIR/overlay/vim -mkdir $WORK_DIR/overlay/vim +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract vim to folder 'work/overlay/vim'. # Full path will be something like 'work/overlay/vim/vim-8.0.1298'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/vim +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/vim/02_build.sh b/src/minimal_overlay/bundles/vim/02_build.sh index 20a7c8c1a..72b0220ee 100755 --- a/src/minimal_overlay/bundles/vim/02_build.sh +++ b/src/minimal_overlay/bundles/vim/02_build.sh @@ -1,12 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/vim - -DESTDIR="$PWD/vim_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the vim source directory which ls finds, e.g. 'vim-8.0.1298'. cd $(ls -d vim-*) @@ -14,7 +12,7 @@ cd $(ls -d vim-*) echo "Preparing vim work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Setting vimrc location..." echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h @@ -27,11 +25,11 @@ echo "Building vim..." make -j $NUM_JOBS echo "Installing vim..." -make -j $NUM_JOBS install DESTDIR=$DESTDIR +make -j $NUM_JOBS install DESTDIR=$DEST_DIR echo "Generating vimrc..." -mkdir -p $DESTDIR/etc -cat > $DESTDIR/etc/vimrc << "EOF" +mkdir -p $DEST_DIR/etc +cat > $DES_TDIR/etc/vimrc << "EOF" " Begin /etc/vimrc set nocompatible @@ -44,18 +42,15 @@ set background=dark EOF echo "Symlinking vim to vi..." -ln -sv vim $DESTDIR/usr/bin/vi -mkdir -p $DESTDIR/bin -ln -sv vim $DESTDIR/bin/vi +ln -sv vim $DEST_DIR/usr/bin/vi +mkdir -p $DEST_DIR/bin +ln -sv vim $DEST_DIR/bin/vi echo "Reducing vim size..." -strip -g $DESTDIR/usr/bin/* +strip -g $DEST_DIR/usr/bin/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -cp -r $DESTDIR/* $ROOTFS +cp -r $DEST_DIR/* $OVERLAY_ROOTFS echo "vim has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/vim/bundle.sh b/src/minimal_overlay/bundles/vim/bundle.sh index ffd32c002..e132bc25f 100755 --- a/src/minimal_overlay/bundles/vim/bundle.sh +++ b/src/minimal_overlay/bundles/vim/bundle.sh @@ -1,9 +1,10 @@ -#!/bin/bash +#!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/vim/mll_deps b/src/minimal_overlay/bundles/vim/bundle_deps similarity index 100% rename from src/minimal_overlay/bundles/vim/mll_deps rename to src/minimal_overlay/bundles/vim/bundle_deps diff --git a/src/minimal_overlay/bundles/zlib/01_get.sh b/src/minimal_overlay/bundles/zlib/01_get.sh index bcaf452ab..2a845d617 100755 --- a/src/minimal_overlay/bundles/zlib/01_get.sh +++ b/src/minimal_overlay/bundles/zlib/01_get.sh @@ -1,6 +1,6 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh @@ -30,12 +30,11 @@ fi # Delete folder with previously extracted ZLIB. echo "Removing ZLIB work area. This may take a while..." -rm -rf $WORK_DIR/overlay/zlib -mkdir $WORK_DIR/overlay/zlib +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME # Extract ZLIB to folder 'work/overlay/zlib'. # Full path will be something like 'work/overlay/zlib/zlib-1.2.11'. -tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/zlib +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/zlib/02_build.sh b/src/minimal_overlay/bundles/zlib/02_build.sh index 2c9b12d1a..0cd84a834 100755 --- a/src/minimal_overlay/bundles/zlib/02_build.sh +++ b/src/minimal_overlay/bundles/zlib/02_build.sh @@ -1,12 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e . ../../common.sh -cd $WORK_DIR/overlay/zlib - -DESTDIR="$WORK_DIR/overlay/zlib/zlib_installed" +cd $WORK_DIR/overlay/$BUNDLE_NAME # Change to the Links source directory which ls finds, e.g. 'zlib-1.2.11'. cd $(ls -d zlib-*) @@ -14,11 +12,11 @@ cd $(ls -d zlib-*) echo "Preparing ZLIB work area. This may take a while..." make -j $NUM_JOBS clean -rm -rf $DESTDIR +rm -rf $DEST_DIR echo "Configuring ZLIB..." CFLAGS="$CFLAGS" ./configure \ - --prefix=$DESTDIR + --prefix=$DEST_DIR echo "Building ZLIB..." make -j $NUM_JOBS @@ -27,14 +25,11 @@ echo "Installing ZLIB..." make -j $NUM_JOBS install echo "Reducing ZLIB size..." -strip -g $DESTDIR/lib/* +strip -g $DEST_DIR/lib/* -ROOTFS="$WORK_DIR/src/minimal_overlay/rootfs" - -mkdir -p "$ROOTFS/lib" -cp -r $DESTDIR/lib/libz.so.1.* $ROOTFS/lib/libz.so.1 +mkdir -p "$OVERLAY_ROOTFS/lib" +cp -r $DEST_DIR/lib/libz.so.1.* $OVERLAY_ROOTFS/lib/libz.so.1 echo "ZLIB has been installed." cd $SRC_DIR - diff --git a/src/minimal_overlay/bundles/zlib/bundle.sh b/src/minimal_overlay/bundles/zlib/bundle.sh index 3935ced35..e132bc25f 100755 --- a/src/minimal_overlay/bundles/zlib/bundle.sh +++ b/src/minimal_overlay/bundles/zlib/bundle.sh @@ -1,9 +1,10 @@ #!/bin/sh -SRC_DIR=$(pwd) +set -e + +. ../../common.sh ./01_get.sh ./02_build.sh cd $SRC_DIR - diff --git a/src/minimal_overlay/common.sh b/src/minimal_overlay/common.sh index cc56f07f0..e7eae9d98 100755 --- a/src/minimal_overlay/common.sh +++ b/src/minimal_overlay/common.sh @@ -1,14 +1,19 @@ #!/bin/sh + +set -e + # common code used by all bundles # should be included at the top of every *.sh file of each bundle export MAIN_SRC_DIR=`realpath --no-symlinks $PWD/../../../` -export WORK_DIR="$MAIN_SRC_DIR/work" +export WORK_DIR=$MAIN_SRC_DIR/work export SRC_DIR=`pwd` +export OVERLAY_ROOTFS=$WORK_DIR/overlay_rootfs export BUNDLE_NAME=`basename $SRC_DIR` -export CONFIG="$MAIN_SRC_DIR/.config" -export SYSROOT="$WORK_DIR/sysroot" -export SYSROOT_SPECS="$WORK_DIR/sysroot.specs" +export DEST_DIR=$WORK_DIR/overlay/$BUNDLE_NAME/${BUNDLE_NAME}_installed +export CONFIG=$MAIN_SRC_DIR/.config +export SYSROOT=$WORK_DIR/sysroot +#export SYSROOT_SPECS=$WORK_DIR/sysroot.specs # Read the 'JOB_FACTOR' property from $CONFIG export JOB_FACTOR="$(grep -i ^JOB_FACTOR $CONFIG | cut -f2 -d'=')" diff --git a/src/minimal_overlay/overlay_build.sh b/src/minimal_overlay/overlay_build.sh index 04fe72709..fa8b1f980 100755 --- a/src/minimal_overlay/overlay_build.sh +++ b/src/minimal_overlay/overlay_build.sh @@ -1,5 +1,7 @@ #!/bin/sh +set -e + SRC_DIR=$(pwd) # Find the main source directory @@ -40,9 +42,9 @@ do fi # Deal with dependencies BEGIN - if [ -f $BUNDLE_DIR/mll_deps ] ; then + if [ -f $BUNDLE_DIR/bundle_deps ] ; then echo "Overlay bundle '$BUNDLE' depends on the following overlay bundles:" - cat $BUNDLE_DIR/mll_deps + cat $BUNDLE_DIR/bundle_deps while read line; do # Trim all white spaces in bundle name @@ -58,7 +60,7 @@ do ./overlay_build.sh --skip-clean $BUNDLE_DEP echo "Overlay bundle '$BUNDLE_DEP' has been prepared." fi - done < $BUNDLE_DIR/mll_deps + done < $BUNDLE_DIR/bundle_deps fi # Deal with dependencies END @@ -78,4 +80,3 @@ do done cd $SRC_DIR - diff --git a/src/minimal_overlay/overlay_clean.sh b/src/minimal_overlay/overlay_clean.sh index 458d3ca37..d6af5aeb2 100755 --- a/src/minimal_overlay/overlay_clean.sh +++ b/src/minimal_overlay/overlay_clean.sh @@ -1,32 +1,18 @@ #!/bin/sh +set -e + SRC_DIR=$(pwd) echo "Cleaning up the overlay work area. This may take a while..." rm -rf ../work/overlay +rm -rf ../work/overlay_rootfs # -p stops errors if the directory already exists. mkdir -p ../work/overlay -mkdir -p ../work/src/minimal_overlay/rootfs +mkdir -p ../work/overlay_rootfs mkdir -p ../source/overlay -cd ../work/src/minimal_overlay/rootfs - -# Remove all previously generated overlay artifacts. -for dir in $(ls -d */ 2>/dev/null) ; do - rm -rf $dir - echo "Overlay folder '$dir' has been removed." -done - -cd $SRC_DIR/../minimal_overlay/rootfs - -# Copy the files/folders from the default overlay folder -for dir in $(ls -d */ 2>/dev/null) ; do - cp -r $dir $SRC_DIR/../work/src/minimal_overlay/rootfs - echo "Default overlay folder '$dir' has been prepared." -done - echo "Ready to continue with the overlay software." cd $SRC_DIR -