diff --git a/package/target-finish/1st-stage/1st-stage.conf b/package/target-finish/1st-stage/1st-stage.conf index 68a3d0fe1..11fe31b34 100644 --- a/package/target-finish/1st-stage/1st-stage.conf +++ b/package/target-finish/1st-stage/1st-stage.conf @@ -12,14 +12,13 @@ fi initrd_config="$ROCKCFG_PKG_1ST_STAGE_INITRD" rootdir="$root" -build_rock="$root/ROCK" -disksdir="$build_rock/target-finish" +disksdir="$root/ROCK/target-finish" mkdir -p "$disksdir" targetdir="$disksdir/$initrd_config" cross_compile="" if [ "$ROCKCFG_CROSSBUILD" = "1" ] ; then - cross_compile="`find ${build_rock}/tools.cross/ -name "*-readelf"`" + cross_compile="`find ${root}/ROCK/tools.cross/ -name "*-readelf"`" cross_compile="${cross_compile##*/}" cross_compile="${cross_compile%%readelf}" fi diff --git a/package/target-finish/1st-stage/1st-stage.desc b/package/target-finish/1st-stage/1st-stage.desc index 3085f8e23..e19870fba 100644 --- a/package/target-finish/1st-stage/1st-stage.desc +++ b/package/target-finish/1st-stage/1st-stage.desc @@ -29,6 +29,7 @@ [M] The ROCK Linux Project [C] extra/base +[F] CORE [L] GPL [S] Stable diff --git a/package/target-finish/1st-stage/linuxrc.sh b/package/target-finish/1st-stage/linuxrc.sh index 91cc38f82..c8d6781f1 100644 --- a/package/target-finish/1st-stage/linuxrc.sh +++ b/package/target-finish/1st-stage/linuxrc.sh @@ -9,7 +9,8 @@ STAGE_2_SMALL_IMAGE="2nd_stage_small.tar.gz" STAGE_2_COMPRESS_ARG="--use-compress-program=gzip -m" #640kB, err, 64 MB should be enought for the tmpfs ;-) -TMPFS_OPTIONS="size=67108864" +# 80 MB is better... +TMPFS_OPTIONS="size=83886060" mod_load_info () { # {{{ read os host version rest < <( uname -a ) diff --git a/package/target-finish/2nd-stage/2nd-stage.conf b/package/target-finish/2nd-stage/2nd-stage.conf index 9f65ada1f..376142fa1 100644 --- a/package/target-finish/2nd-stage/2nd-stage.conf +++ b/package/target-finish/2nd-stage/2nd-stage.conf @@ -61,6 +61,8 @@ if [ $packager = bize ] ; then progs="$progs bzip2 md5sum" fi +disksdir="$root/ROCK/target-finish" + mainfunction="second_stage_mainfunction" second_stage_mainfunction () @@ -70,9 +72,6 @@ if [ "$ROCK_BUILD_TARGET" != 1 ] ; then false fi -build_rock="$root/ROCK" -disksdir="$build_rock/target-finish" - echo "Creating 2nd stage filesystem:" rm -rf $disksdir/2nd_stage{,_small} @@ -102,7 +101,7 @@ while read pkg pkg_ver pkg_extraver do xpkg="${pkg#*=}" ; pkg="{pkg%=*}" - eval x="$build_rock/pkgs/$xpkg$pkg_suffix" + eval x="$root/ROCK/pkgs/$xpkg$pkg_suffix" if [ -z "${xpkg##*:dev*}" -o -z "${xpkg##*:doc*}" ] then @@ -114,7 +113,7 @@ do echo "- `basename $x` not found - ignored ..." else eval echo "- Extracting $xpkg$pkg_suffix ..." - install_pkg $build_rock/pkgs/$xpkg$pkg_suffix + install_pkg $root/ROCK/pkgs/$xpkg$pkg_suffix fi elif ! echo "" $package_map "" | grep -q " -$xpkg " then @@ -128,21 +127,12 @@ rm -rf boot rm -rf home usr/{local,doc,man,info,games,share} rm -rf var/{adm,games,mail,opt} rm -rf usr/{include,src,*-linux-gnu} {,usr/}lib/*.{a,la,o} +# save a few MB by removing unneeded modules +rm -rf lib/modules/*/kernel/{drivers/media,sound} for x in usr/lib/*/ ; do rm -rf ${x%/} ; done # if [ "$arch" = arm ] ; then echo "Installing /usr/lib/libgcc_s.so.1 ..." -# pkg_ver="$( grep "[ =]$ROCKCFG_DEFAULT_CC " $base/config/$config/packages | cut -f6 -d" " )" -# pkg_extraver="$( grep "[ =]$ROCKCFG_DEFAULT_CC " $base/config/$config/packages | cut -f7 -d" " )" -# echo "$pkg_suffix $pkg_ver $pkg_extraver" -# eval echo $pkg_suffix -# eval x=$build_rock/pkgs/$ROCKCFG_DEFAULT_CC$pkg_suffix -# if [[ "$pkg_suffix" == *gem ]] ; then -# mine -k pkg_tarbz2 $x > tmp/$ROCKCFG_DEFAULT_CC.tar.bz2 -# x=tmp/$ROCKCFG_DEFAULT_CC.tar.bz2 -# fi -# tar --wildcards $taropt $x "usr/lib/libgcc_s.so*" -# false cp -v $root/usr/lib/libgcc_s.so* usr/lib/ fi @@ -153,7 +143,7 @@ pkg_ver="$( grep " ncurses " $base/config/$config/packages | cut -f6 -d" " )" pkg_extraver="$( grep " ncurses " $base/config/$config/packages | cut -f7 -d" " )" echo "$pkg_suffix $pkg_ver $pkg_extraver" eval echo $pkg_suffix -eval x=$build_rock/pkgs/ncurses$pkg_suffix +eval x=$root/ROCK/pkgs/ncurses$pkg_suffix if [[ "$pkg_suffix" == *gem ]] ; then mine -k pkg_tarbz2 $x > tmp/ncurses.tar.bz2 x=tmp/ncurses.tar.bz2 @@ -168,7 +158,7 @@ if pkginstalled kbd ; then echo "Installing some keymaps ..." pkg_ver="$( grep " kbd " $base/config/$config/packages | cut -f6 -d" " )" pkg_extraver="$( grep " kbd " $base/config/$config/packages | cut -f7 -d" " )" - eval x=$build_rock/pkgs/kbd$pkg_suffix + eval x=$root/ROCK/pkgs/kbd$pkg_suffix if [[ "$pkg_suffix" == *gem ]] ; then mine -k pkg_tarbz2 $x > tmp/kbd.tar.bz2 x=tmp/kbd.tar.bz2 @@ -184,7 +174,7 @@ fi if pkginstalled pciutils ; then pkg_ver="$( grep " pciutils " $base/config/$config/packages | cut -f6 -d" " )" pkg_extraver="$( grep " pciutils " $base/config/$config/packages | cut -f7 -d" " )" - eval x=$build_rock/pkgs/pciutils$pkg_suffix + eval x=$root/ROCK/pkgs/pciutils$pkg_suffix if [[ "$pkg_suffix" == *gem ]] ; then mine -k pkg_tarbz2 $x > tmp/pciutils.tar.bz2 x=tmp/pciutils.tar.bz2 @@ -200,6 +190,16 @@ cp -v $confdir/linuxrc2.sh sbin/init ; chmod -v +x sbin/init cp -v $confdir/shutdown sbin/shutdown ; chmod -v +x sbin/shutdown echo '$STONE install' > etc/stone.d/default.sh # +echo "Creating 2nd stage setup scripts." +cat <<- EOT > etc/setup-00-start-udevd.sh + #!/bin/sh + if [ "$( type -p udevd )" ] ; then + udevd --daemon + udevtrigger + udevsettle + fi +EOT +# echo "Creating 2nd_stage.tar.gz archive." tar -czvf ../2nd_stage.tar.gz * ; cd .. diff --git a/package/target-finish/2nd-stage/2nd-stage.desc b/package/target-finish/2nd-stage/2nd-stage.desc index 1075236f5..84fc7a48b 100644 --- a/package/target-finish/2nd-stage/2nd-stage.desc +++ b/package/target-finish/2nd-stage/2nd-stage.desc @@ -30,6 +30,7 @@ [M] The ROCK Linux Project [C] extra/base +[F] CORE [L] GPL [S] Stable diff --git a/package/target-finish/bootloader/bootloader.conf b/package/target-finish/bootloader/bootloader.conf index 5c61f0842..fbd52a8e7 100644 --- a/package/target-finish/bootloader/bootloader.conf +++ b/package/target-finish/bootloader/bootloader.conf @@ -1,5 +1,9 @@ #!/bin/bash +disksdir="$root/ROCK/target-finish" +# datadir is relative to $base. +datadir="build/${ROCKCFG_ID}/ROCK/target-finish" + mainfunction="bootloader_mainfunction" bootloader_mainfunction () @@ -10,10 +14,6 @@ if [ "$ROCK_BUILD_TARGET" != 1 ] ; then false fi -rootdir="$root" -build_rock="$root/ROCK" -disksdir="$build_rock/target-finish" - tmpdir="$( mktemp -d )" ; mkdir -p "$tmpdir" pkg_suffix=.no_binpkg if [ "$ROCKCFG_CREATE_TARBZ2" == 1 ] ; then @@ -32,7 +32,7 @@ cd $disksdir rm -rf boot/ ; mkdir -p boot # Provide at least the kernel and initrd image in the boot/ directory of the # ISO image, useful for direct booting with qemu. -cp -a $rootdir/boot/* boot/ +cp -a $root/boot/* boot/ rm -f boot/{initrd.img,kconfig,System.map}* ln $ROCKCFG_PKG_1ST_STAGE_INITRD.gz boot/ @@ -47,9 +47,9 @@ echo "Creating isofs directory.." ln 2nd_stage.tar.gz 2nd_stage_small.tar.gz isofs/ echo "Creating isofs.txt file .." -cat > $build_rock/isofs_bootdisk.txt <<- EOT - DISK1 $disksdir/boot/ boot/ - DISK1 $disksdir/isofs/ ${ROCKCFG_SHORTID}/ +cat > $root/ROCK/isofs_bootdisk.txt <<- EOT + DISK1 $datadir/boot/ boot/ + DISK1 $datadir/isofs/ ${ROCKCFG_SHORTID}/ EOT rm -rf "$tmpdir" } diff --git a/package/target-finish/bootloader/bootloader.desc b/package/target-finish/bootloader/bootloader.desc index fb9a629c8..3809b0452 100644 --- a/package/target-finish/bootloader/bootloader.desc +++ b/package/target-finish/bootloader/bootloader.desc @@ -29,6 +29,7 @@ [M] The ROCK Linux Project [C] extra/base +[F] CORE [L] GPL [S] Stable diff --git a/package/target-finish/bootloader/powerpc/build.sh b/package/target-finish/bootloader/powerpc/build.sh index cba64ee64..c9eb207ec 100644 --- a/package/target-finish/bootloader/powerpc/build.sh +++ b/package/target-finish/bootloader/powerpc/build.sh @@ -33,8 +33,7 @@ then echo "Copy more config files." cp -v $confdir/powerpc/mapping . # - datadir="build/${ROCKCFG_ID}/ROCK/target-finish" - cat > $xroot/ROCK/isofs_arch.txt <<- EOT + cat > $root/ROCK/isofs_arch.txt <<- EOT BOOT -hfs -part -map $datadir/mapping -hfs-volid "ROCK_Linux_CD" BOOTx -hfs-bless boot -sysid PPC -l -L -r -T -chrp-boot BOOTx --prep-boot install.bin diff --git a/package/target-finish/bootloader/sparc/build.sh b/package/target-finish/bootloader/sparc/build.sh index cfdeb12e9..780d35ca7 100644 --- a/package/target-finish/bootloader/sparc/build.sh +++ b/package/target-finish/bootloader/sparc/build.sh @@ -7,6 +7,6 @@ find boot/ -name "*.b" ! -name "second.b" -exec rm -f {} + echo "Creating silo config file." cp -v $confdir/sparc/{silo.conf,boot.msg,help1.txt} boot/ # -cat > $build_rock/isofs_arch.txt <<- EOT - BOOT -G $rootdir/boot/isofs.b -B ... +cat > $root/ROCK/isofs_arch.txt <<- EOT + BOOT -G build/${ROCKCFG_ID}/boot/isofs.b -B ... EOT diff --git a/package/target-finish/bootloader/x86/build.sh b/package/target-finish/bootloader/x86/build.sh index 0f49f608c..cd2033a06 100644 --- a/package/target-finish/bootloader/x86/build.sh +++ b/package/target-finish/bootloader/x86/build.sh @@ -48,13 +48,13 @@ then cp $confdir/x86/{isolinux.cfg,help?.txt} isolinux/ # echo "Copy images to isolinux directory." - [ -e $rootdir/boot/memtest86.bin ] && \ - cp $rootdir/boot/memtest86.bin isolinux/memtest86 || true - cp $ROCKCFG_PKG_1ST_STAGE_INITRD.gz $rootdir/boot/vmlinuz* isolinux/ + [ -e $root/boot/memtest86.bin ] && \ + cp $root/boot/memtest86.bin isolinux/memtest86 || true + cp $ROCKCFG_PKG_1ST_STAGE_INITRD.gz $root/boot/vmlinuz* isolinux/ # - cat > $build_rock/isofs_arch.txt <<- EOT + cat > $root/ROCK/isofs_arch.txt <<- EOT BOOT -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.catalog BOOTx -no-emul-boot -boot-load-size 4 -boot-info-table - DISK1 $disksdir/isolinux/ boot/isolinux/ + DISK1 $datadir/isolinux/ boot/isolinux/ EOT fi diff --git a/target/crystal/build.sh b/target/crystal/build.sh index 22ace9112..d4f27627d 100644 --- a/target/crystal/build.sh +++ b/target/crystal/build.sh @@ -55,7 +55,7 @@ admdir="build/${ROCKCFG_ID}/ROCK/info_sel" create_package_db $admdir build/${ROCKCFG_ID}/ROCK/pkgs_sel echo_status "Creating isofs.txt file .." -cat << EOT > build/${ROCKCFG_ID}/ROCK/isofs.txt +cat << EOT > build/${ROCKCFG_ID}/ROCK/isofs_crystal-pkgsel.txt DISK1 $admdir/cksums/ ${ROCKCFG_SHORTID}/info/cksums/ DISK1 $admdir/dependencies/ ${ROCKCFG_SHORTID}/info/dependencies/ DISK1 $admdir/descs/ ${ROCKCFG_SHORTID}/info/descs/ @@ -69,3 +69,4 @@ EVERY build/${ROCKCFG_ID}/ROCK/pkgs_sel/packages.db ${ROCKCFG_SHORTID}/pkgs/pack SPLIT build/${ROCKCFG_ID}/ROCK/pkgs_sel/ ${ROCKCFG_SHORTID}/pkgs/ EOT +cat build/${ROCKCFG_ID}/ROCK/isofs_*.txt > build/${ROCKCFG_ID}/ROCK/isofs.txt diff --git a/target/crystal/config.in b/target/crystal/config.in index f5ad153c5..f92cb352c 100644 --- a/target/crystal/config.in +++ b/target/crystal/config.in @@ -1,3 +1,4 @@ +#!/bin/bash # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. @@ -26,6 +27,10 @@ bool 'Also build add-on (non-CORE) packages' \ bool 'Include documentation on ISO' \ ROCKCFG_TARGET_CRYSTAL_INCLUDEDOCS 1 +pkgenable 1st-stage +pkgenable 2nd-stage +pkgenable bootloader + if [ $ROCKCFG_TARGET_CRYSTAL_BUILDADDONS = 1 ] then pkgfilter sed \