Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #written by mistfire, modified by s243a
- #Build TazPuppy either online or local
- curdir=`pwd`
- if [ ! -f $curdir/builder.cfg ]; then
- echo 'WEBSITE="http://mirror1.slitaz.org/iso/rolling"
- LIVECD="slitaz-rolling-core.iso"' > $curdir/builder.cfg
- fi
- prefix="/64"
- . $curdir/builder.cfg
- LABEL1=""
- xmode=""
- xinteractive=""
- unmount_vfs(){
- umount -l $curdir/slitaz-rootfs/dev 2>/dev/null
- umount -l $curdir/slitaz-rootfs/sys 2>/dev/null
- umount -l $curdir/slitaz-rootfs/proc 2>/dev/null
- if [ ! -z $prefix ]; then
- umount -l $curdir/slitaz-rootfs$prefix/dev 2>/dev/null
- umount -l $curdir/slitaz-rootfs$prefix/sys 2>/dev/null
- umount -l $curdir/slitaz-rootfs$prefix/proc 2>/dev/null
- fi
- umount /mnt/wktaz 2>/dev/null
- umount /mnt/wksfs 2>/dev/null
- }
- trap unmount_vfs EXIT
- trap unmount_vfs SIGKILL
- trap unmount_vfs SIGTERM
- clean_up(){
- if [ -d $curdir/slitaz-rootfs ]; then
- if [ "$(mount | grep "$curdir/slitaz-rootfs/dev")" != "" ]; then
- umount -l $curdir/slitaz-rootfs/dev
- fi
- if [ "$(mount | grep "$curdir/slitaz-rootfs/sys")" != "" ]; then
- umount -l $curdir/slitaz-rootfs/sys
- fi
- if [ "$(mount | grep "$curdir/slitaz-rootfs/proc")" != "" ]; then
- umount -l $curdir/slitaz-rootfs/proc
- fi
- echo "Deleting slitaz-rootfs..."
- rm -rf $curdir/slitaz-rootfs
- fi
- if [ -d $curdir/tazpup-preiso ]; then
- echo "Deleting tazpup-preiso..."
- rm -rf $curdir/tazpup-preiso
- fi
- if [ -d $curdir/kernel-modules ]; then
- echo "Deleting kernel-modules..."
- rm -rf $curdir/kernel-modules
- fi
- if [ -d $curdir/slitaz-dload ]; then
- echo "Deleting slitaz-dload..."
- rm -rf $curdir/slitaz-dload
- fi
- if [ -d $curdir/tazpup-core-files/slitaz-packages-fs ]; then
- echo "Deleting slitaz-packages-fs..."
- rm -rf $curdir/tazpup-core-files/slitaz-packages-fs
- fi
- if [ -f $curdir/slitaz-rolling-core.iso ]; then
- echo "Deleting slitaz-rolling-core.iso..."
- rm -f $curdir/slitaz-rolling-core.iso
- fi
- rm -f $curdir/tazpup-core-files/installed-isolated.md5
- rm -f $curdir/tazpup-core-files/installed-isolated.info
- rm -f $curdir/package-deps.txt
- rm -f $curdir/package-listed
- if [ -f $curdir/custom-tazpup.iso ]; then
- echo "Deleting custom-tazpup.iso..."
- rm -f $curdir/custom-tazpup.iso
- fi
- if [ -f $curdir/custom-tazpup.iso.md5 ]; then
- echo "Deleting custom-tazpup.iso.md5..."
- rm -f $curdir/custom-tazpup.iso.md5
- fi
- if [ -d $curdir/slitaz-livecd-wkg ]; then
- rm -rf $curdir/slitaz-livecd-wkg
- fi
- }
- sandbox_pkg(){
- cmd="$1"
- pkg="$2"
- bname="$(basename $pkg)"
- if [ ! -d $curdir/tazpup-core-files/slitaz-sandbox ]; then
- mkdir -p $curdir/tazpup-core-files/slitaz-sandbox 2> /dev/null
- fi
- cp -f $pkg $curdir/tazpup-core-files/slitaz-packages-fs/$bname
- mount -t aufs -o udba=reval,diropq=w,dirs=$curdir/tazpup-core-files/slitaz-packages-fs=rw:$curdir/slitaz-rootfs=ro unionfs $curdir/tazpup-core-files/slitaz-sandbox
- if [ "$cmd" == "install" ]; then
- xcmd="tazpkg install /$bname --forced"
- elif [ "$cmd" == "remove" ]; then
- xcmd="tazpkg remove $pkg"
- fi
- chroot $curdir/tazpup-core-files/slitaz-sandbox/ $xcmd
- umount -l $curdir/tazpup-core-files/slitaz-sandbox
- rm -f $curdir/tazpup-core-files/slitaz-packages-fs/$bname
- }
- install_pkg(){
- pkg="$1"
- opt_in=$2
- options=${opt_in:-'--local'} #In some cases might want to use options like --forced --newconf --nodeps of --local
- echo "installing $1"
- echo "options=$options"
- bname="$(basename $pkg)"
- #cp -f $pkg $curdir/slitaz-rootfs/$bname #We'll copy everything into $curdir/slitaz-rootfs/pkgs before installig anything.
- echo "#!/bin/sh
- cd $prefix/pkgs
- tazpkg $options install $bname --root=$prefix
- " > $curdir/slitaz-rootfs$prefix/pkgs/start.sh #$curdir/slitaz-rootfs/start.sh
- chmod +x $curdir/slitaz-rootfs$prefix/pkgs/start.sh
- chroot $curdir/slitaz-rootfs/ $prefix/pkgs/start.sh #Consider chrooting into the prefix folder once enough packages are installed
- #read -p "Press enter to continue" #added by s243a
- rm -f $curdir/slitaz-rootfs$prefix/pkgs/$bname
- rm -f $curdir/slitaz-rootfs$prefix/pkgs/start.sh
- }
- install_pet_pkg(){
- pkg="$1"
- bname="$(basename $pkg)"
- cp -f $pkg $curdir/slitaz-rootfs/$bname
- if [ $xforced -eq 1 ]; then
- line="tazpet /$bname --forced"
- else
- line="tazpet /$bname"
- fi
- echo "#!/bin/sh
- $line
- " > $curdir/slitaz-rootfs/start.sh
- chmod +x $curdir/slitaz-rootfs/start.sh
- chroot $curdir/slitaz-rootfs/ /start.sh
- rm -f $curdir/slitaz-rootfs/$bname
- rm -f $curdir/slitaz-rootfs/start.sh
- }
- make_pupcore(){
- mkdir -p $curdir/slitaz-rootfs$prefix/usr/share/pupcore 2> /dev/null
- cp -f $curdir/tazpup-core-files/puppy/bin/ps $curdir/slitaz-rootfs$prefix/usr/share/pupcore/ps.bak
- cp -f $curdir/tazpup-core-files/puppy/sbin/init $curdir/slitaz-rootfs$prefix/usr/share/pupcore/init.bak
- cp -f $curdir/tazpup-core-files/puppy/sbin/losetup $curdir/slitaz-rootfs$prefix/usr/share/pupcore/losetup.bak
- cp -f $curdir/tazpup-core-files/slitaz/bin/gnome-alsamixer $curdir/slitaz-rootfs$prefix/usr/share/pupcore/gnome-alsamixer.bak
- cp -f $curdir/tazpup-core-files/slitaz/etc/inittab $curdir/slitaz-rootfs$prefix/usr/share/pupcore/inittab.bak
- cp -f $curdir/tazpup-core-files/slitaz/etc/init.d/daemon $curdir/slitaz-rootfs$prefix/usr/share/pupcore/daemon.bak
- cp -f $curdir/tazpup-core-files/slitaz/etc/init.d/bootopts.sh $curdir/slitaz-rootfs$prefix/usr/share/pupcore/bootopts.sh.bak
- }
- remove_some_slitaz(){
- if [ -z $prefix]; then #TODO ad or case for when we want to enter this if block but the prefix exists
- rm -rf $curdir/slitaz-rootfs$prefix/lib/modules/*
- for pkg2 in $(ls -1 $curdir/slitaz-rootfs/var/lib/tazpkg/installed/ | grep -E "^linux" | tr '\n' ' ')
- do
- chroot $curdir/slitaz-rootfs$prefix tazpkg remove $pkg2
- done
- for pkg2 in $(ls -1 $curdir/slitaz-rootfs/var/lib/tazpkg/installed/ | grep -E "^firmware-" | tr '\n' ' ')
- do
- chroot $curdir/slitaz-rootfs$prefix tazpkg remove $pkg2
- done
- if [ -f $curdir/remove-builtin.txt ]; then
- for pkg2 in $(cat $curdir/remove-builtin.txt)
- do
- chroot $curdir/slitaz-rootfs$prefix tazpkg remove $pkg2
- done
- fi
- fi
- rm -f $curdir/slitaz-rootfs/etc/dialogrc
- }
- extractfs() {
- one=$1
- #$prefix2=${one:-""} #If we have a prefix it is usually empty but in theory
- if [ ! -d $curdir/slitaz-rootfs ]; then
- mkdir $curdir/slitaz-rootfs
- fi
- (busybox unlzma -c $1 || cat $1 ) 2>/dev/null | (cd $curdir/slitaz-rootfs; busybox cpio -idmu > /dev/null)
- }
- #extractfs_prefix is not used yet. It will be be used if one want to use a seperate iso for the build than the build system
- extractfs_prefix() { #TODO use options to combine this with the above function
- #one=$1 #TODO allow prefix2 to be defined as an ninput argument
- #$prefix2=${one:-""} #If we have a prefix it is usually empty but in theory
- if [ ! -d $curdir/slitaz-rootfs$prefix ]; then
- mkdir $curdir/slitaz-rootfs$prefix
- fi
- (busybox unlzma -c $1 || cat $1 ) 2>/dev/null | (cd $curdir/slitaz-rootfs$prefix2; busybox cpio -idmu > /dev/null)
- }
- select_local(){
- IMG="$(Xdialog --stdout --title "$LABEL1 Select Slitaz image file" --fselect $HOME 0 0)"
- if [ $? -ne 0 ]; then
- echo "Operation cancelled"
- exit
- fi
- if [ "$IMG" == "" ]; then
- echo "No image file selected"
- exit
- fi
- }
- install_local_pkg(){
- if [ ! -d $curdir/slitaz-packages ]; then
- echo "Core tazpup package is missing."
- exit
- else
- if [ $(find $curdir/slitaz-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
- echo "Core tazpup package is missing."
- exit
- fi
- if [ $(find $curdir/special-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
- echo "Special tazpup package is missing."
- #exit
- read -p "Press enter to continue" #added by s243a
- fi
- for pkg in $(find $curdir/slitaz-packages -type f -name "*.tazpkg" | sort -r)
- do
- echo "Processing core package: $(basename $pkg)"
- install_pkg "$pkg"
- done
- for pkg in $(find $curdir/special-packages -type f -name "*.tazpkg" | sort -r)
- do
- echo "Processing special package: $(basename $pkg)"
- install_pkg "$pkg"
- done
- fi
- }
- install_online_pkg(){
- if [ ! -f $curdir/package-cloud.txt ]; then
- echo "Package list is missing."
- exit
- else
- if [ $(find $curdir/special-packages -type f -name "*.tazpkg" | wc -l) -eq 0 ]; then
- echo "Special tazpup package is missing."
- exit
- fi
- for pkg in $(cat $curdir/package-cloud.txt | tr '\n' ' ')
- do
- echo "Processing core package: $(basename $pkg)"
- get_install_pkg "$pkg"
- done
- for pkg in $(find $curdir/special-packages -type f -name "*.tazpkg" | sort -r)
- do
- echo "Processing special package: $(basename $pkg)"
- install_pkg "$pkg"
- done
- fi
- }
- get_install_pkg(){
- pkg="$1"
- echo "#!/bin/sh
- cd $prefix/pkgs
- tazpkg get-install $pkg
- " > $curdir/slitaz-rootfs$prefix/pkgs/start.sh #$curdir/slitaz-rootfs/start.sh
- chmod +x $curdir/slitaz-rootfs$prefix/pkgs/start.sh
- #read -p "Press enter to continue"
- chroot $curdir/slitaz-rootfs $prefix/pkgs/start.sh
- rm -f $curdir/slitaz-rootfs$prefix/pkgs/start.sh
- }
- download_iso(){
- wget -4 -t 2 -T 20 --waitretry=20 --spider -S "$WEBSITE/$LIVECD"
- if [ $? -ne 0 ]; then
- echo "Failed to reach $WEBSITE"
- exit
- fi
- wget "$WEBSITE/$LIVECD" -O $curdir/$LIVECD
- if [ $? -ne 0 ]; then
- echo "Downloading Slitaz live cd failed"
- rm -f $curdir/$LIVECD
- exit
- fi
- IMG="$curdir/$LIVECD"
- }
- if [ "$(whoami)" != "root" ]; then
- echo "Requires root access to do it"
- exit
- fi
- if [ "$(which Xdialog)" == "" ]; then
- echo "Requires Xdialog. Install it first"
- exit
- fi
- if [ ! -w $curdir ]; then
- echo "The working path is not writable"
- exit
- fi
- if [ ! -e $curdir/tazpup-core-files ]; then
- echo "Core files are missing"
- exit
- fi
- Xdialog --title "TazPuppy Builder" --ok-label "LOCAL" --cancel-label "ONLINE" --yesno "Select mode for building TazPuppy\n\nLOCAL - Build TazPuppy offline using collection of files and packages\nONLINE - Build TazPuppy using slitaz repo. Internet connection required\n\nNOTE: Both modes requires Puppy ISO file" 0 0
- retval3=$?
- if [ $retval3 -eq 255 ]; then
- echo "Operation cancelled"
- exit
- fi
- if [ $retval3 -eq 0 ]; then
- LABEL1="Local Build:"
- xmode="local"
- select_local
- elif [ $retval3 -eq 1 ]; then
- LABEL1="Online Build:"
- xmode="online"
- fi
- IMGPUP="$(Xdialog --stdout --title "$LABEL1 Select Puppy image file" --fselect $HOME 0 0)"
- if [ $? -ne 0 ]; then
- echo "Operation cancelled"
- exit
- fi
- if [ "$IMGPUP" == "" ]; then
- echo "No puppy image file selected"
- exit
- fi
- Xdialog --title "TazPuppy Builder" --ok-label "Yes" --cancel-label "No" --yesno "Allow the post install script packages to interact?" 0 0
- retval3=$?
- if [ $retval3 -eq 255 ]; then
- xinteractive=0
- exit
- fi
- if [ $retval3 -eq 0 ]; then
- xinteractive=1
- else
- xinteractive=0
- fi
- Xdialog --title "TazPuppy Builder" --ok-label "Yes" --cancel-label "No" --yesno "Force install custom pet package?" 0 0
- retval3=$?
- if [ $retval3 -eq 0 ]; then
- xforced=1
- else
- xforced=0
- fi
- clean_up
- if [ "$xmode" == "online" ]; then
- if [ -f $curdir/$LIVECD ]; then
- echo "Deleting $LIVECD..."
- rm -rf $curdir/$LIVECD
- fi
- download_iso
- fi
- echo "Preparing working folders..."
- if [ ! -d $curdir/slitaz-livecd-wkg ]; then
- mkdir $curdir/slitaz-livecd-wkg
- fi
- if [ ! -d $curdir/tazpup-preiso ]; then
- mkdir $curdir/tazpup-preiso
- fi
- if [ ! -d /mnt/wktaz ]; then
- mkdir /mnt/wktaz
- fi
- if [ ! -d /mnt/wksfs ]; then
- mkdir /mnt/wksfs
- fi
- echo "Mounting $(basename $IMG)..."
- mount -o ro $IMG /mnt/wktaz
- if [ $? -ne 0 ]; then
- echo "Mounting slitaz image failed"
- exit
- fi
- if [ -f /mnt/wktaz/rootfs.gz ] || [ -f /mnt/wktaz/rootfs1.gz ]; then
- echo "Copying rootfs gz..."
- src1="/mnt/wktaz/rootfs*.gz"
- elif [ -f /mnt/wktaz/boot/rootfs.gz ] || [ -f /mnt/wktaz/boot/rootfs1.gz ]; then
- echo "Copying rootfs gz..."
- src1="/mnt/wktaz/boot/rootfs*.gz"
- else
- echo "Not a slitaz disc image"
- umount /mnt/wktaz
- exit
- fi
- cp -f $src1 $curdir/slitaz-livecd-wkg/
- umount /mnt/wktaz
- cd $curdir/slitaz-livecd-wkg
- rcount=$(ls -1 ./rootfs*.gz | wc -l)
- if [ $rcount -eq 1 ]; then
- echo "Extracting rootfs gz..."
- extractfs $curdir/slitaz-livecd-wkg/rootfs.gz
- elif [ $rcount -gt 1 ]; then
- for rf1 in $(ls -1 ./rootfs*.gz | sort -r)
- do
- echo "Extracting $(basename $rf1)..."
- extractfs $rf16
- done
- else
- echo "No rootfs found"
- exit
- fi
- rm -rf $curdir/slitaz-livecd-wkg
- remove_some_slitaz
- rm -rf $curdir/slitaz-rootfs/var/www/tazpanel/menu.d/network/*
- for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-executable.png")
- do
- if [ -L $file1 ]; then
- fname=$(readlink $file1)
- if [ "$fname" != "" ]; then
- if [ "$(basename $fname)" == "application-x-generic.png" ]; then
- rm -f $file1
- fi
- fi
- fi
- done
- for file1 in $(find $curdir/slitaz-rootfs/usr/share/icons/ -type f -name "application-x-generic.png")
- do
- mv -f $file1 $(dirname $file1)/application-x-executable.png
- done
- #exit
- #chroot "$curdir/slitaz-rootfs/" tazpkg setup-mirror http://mirror.slitaz.org/packages/next64/
- echo "http://mirror.slitaz.org/packages/next64/">$curdir/slitaz-rootfs/var/lib/tazpkg/mirror
- echo "SliTaZ Extracted"
- read -p "Press enter to continue"
- if [ ! -d $curdir/slitaz-rootfs ]; then
- echo "Extract rootfs failed"
- exit
- fi
- rm -f $curdir/slitaz-rootfs$prefix/init
- cd $curdir
- mkdir -p $curdir/slitaz-rootfs$prefix/pkgs
- for aDir in slitaz-preinst-pkg slitaz-packages; do
- cp --remove-destination -arf $curdir/$aDir/* $curdir/slitaz-rootfs$prefix/pkgs #2>/dev/null
- done
- cd $curdir
- mount -o rbind /proc $curdir/slitaz-rootfs/proc #TODO also added mounts in $curdir/slitaz-rootfs$prefix
- mount -t sysfs none $curdir/slitaz-rootfs/sys
- if [ $xinteractive -eq 1 ]; then
- echo "Removing block device files..."
- rm -rf $curdir/slitaz-rootfs/dev/*
- #mount bind -t devtmpfs none $curdir/slitaz-rootfs/dev
- mount -o rbind /dev $curdir/slitaz-rootfs/dev
- fi
- make_pupcore
- cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpkg $curdir/slitaz-rootfs$prefix/usr/bin/tazpkg
- cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpet $curdir/slitaz-rootfs$prefix/usr/bin/tazpet
- cp -f $curdir/tazpup-core-files/slitaz/usr/bin/tazpet-box $curdir/slitaz-rootfs$prefix/usr/bin/tazpet-box
- cp -f $curdir/tazpup-core-files/slitaz/usr/bin/active-networks $curdir/slitaz-rootfs$prefix/usr/bin/active-networks
- cp -f $curdir/tazpup-core-files/slitaz/usr/libexec/tazpkg/* $curdir/slitaz-rootfs$prefix/usr/libexec/tazpkg/
- mkdir -p $curdir/slitaz-rootfs$prefix/etc/rc.d/
- echo "PUPMODE='2'" > $curdir/slitaz-rootfs$prefix/etc/rc.d/PUPSTATE
- #exit
- #install_pkg $curdir/slitaz-packages/readline-7.0-x86_64.tazpkg
- #install_pkg $curdir/slitaz-packages/bash-4.4.p23-x86_64.tazpkg
- #install_pkg $curdir/extract/busybox-1.27.2-x86_64.tazpkg
- #cp -f $curdir/extract/busybox-1.27.2-x86_64.tazpkg.extracted/fs/bin/busybox $curdir/slitaz-rootfs/bin/busybox
- while read aFile; do
- install_pkg $curdir/slitaz-preinst-pkg/$aFile
- done <$curdir/slitaz-preinst-pkg/files.txt
- #TODO append file in directory to files.txt that aren't already on the list
- #TODO remove from list any files that are not in the directory, unless flagged for remote download.
- #TODO consider using tazpkg in the prefix folder at this point.
- echo "Fishished slitaz-preinst-pkg"
- read -p "Press enter to continue" #added by s243a
- echo "Processing Slitaz packages..."
- if [ "$xmode" == "local" ]; then
- install_local_pkg
- else
- install_online_pkg
- fi
- #exit
- if [ -d $curdir/custom-packages ]; then
- for pkg in $(find $curdir/custom-packages -type f -name "*.tazpkg")
- do
- echo "Processing custom package: $(basename $pkg)"
- install_pkg "$pkg"
- done
- fi
- if [ -d $curdir/pet-packages ]; then
- for pkg in $(find $curdir/pet-packages -type f -name "*.pet")
- do
- echo "Processing pet package: $(basename $pkg)"
- install_pet_pkg "$pkg"
- done
- fi
- #exit
- echo "Applying patches..."
- cp --remove-destination -arf $curdir/tazpup-core-files/slitaz/* $curdir/slitaz-rootfs$prefix/ 2>/dev/null
- cp --remove-destination -arf $curdir/tazpup-core-files/puppy/* $curdir/slitaz-rootfs$prefix/ 2>/dev/null
- make_pupcore
- if [ -f $curdir/slitaz-rootfs$prefix/usr/sbin/hald ]; then
- mv -f $curdir/slitaz-rootfs$prefix/usr/sbin/hald $curdir/slitaz-rootfs/usr/bin/hald
- sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs$prefix/var/lib/tazpkg/installed/hal/files.list
- sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs$prefix/var/lib/tazpkg/installed/hal/md5sum
- sed -i -e "s#\/usr\/sbin\/hald#\/usr\/bin\/hald#g" $curdir/slitaz-rootfs$prefix/etc/init.d/hald
- fi
- if [ -f $curdir/slitaz-rootfs$prefix/usr/share/applications/defaults.list ]; then
- rm -f $curdir/slitaz-rootfs$prefix/usr/share/applications/defaults.list
- fi
- cp $curdir/slitaz-post-patch-packages/coreutils-multicall-8.30-x86_64.tazpkg $curdir/slitaz-rootfs$prefix/pkgs/coreutils-multicall-8.30-x86_64.tazpkg
- install_pkg $curdir/slitaz-post-patch-packages/coreutils-multicall-8.30-x86_64.tazpkg
- if [ -f $curdir/slitaz-rootfs$prefix/usr/bin/coreutils ]; then
- echo '#!/bin/sh
- exec df $@' > $curdir/slitaz-rootfs$prefix/usr/bin/df-FULL
- chmod +x $curdir/slitaz-rootfs$prefix/usr/bin/df-FULL
- fi
- if [ -f $curdir/slitaz-rootfs$prefix/usr/bin/gzip ]; then
- rm -f $curdir/slitaz-rootfs$prefix/bin/gzip
- fi
- if [ -d $curdir/slitaz-rootfs$prefix/usr/lib/grub/i386-slitaz ]; then
- ln -sr $curdir/slitaz-rootfs$prefix/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs$prefix/usr/lib/grub/i386-pc
- ln -sr $curdir/slitaz-rootfs$prefix/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs$prefix/usr/lib/grub/i386-t2
- fi
- if [ -d $curdir/slitaz-rootfs$prefix/usr/share/boot ]; then
- ln -sr $curdir/slitaz-rootfs$prefix/usr/share/boot $curdir/slitaz-rootfs$prefix/usr/share/syslinux
- for file1 in grldr.lzma grub.exe.lzma memdisk.lzma pxelinux.0.lzma
- do
- cp -f $curdir/slitaz-rootfs$prefix/usr/share/boot/$file1 $curdir/slitaz-rootfs$prefix/usr/share/boot/$file1.bak
- unlzma $curdir/slitaz-rootfs$prefix/usr/share/boot/$file1
- mv -f $curdir/slitaz-rootfs$prefix/usr/share/boot/$file1.bak $curdir/slitaz-rootfs$prefix/usr/share/boot/$file1
- done
- fi
- for fullcmd in mount umount ps
- do
- if [ "$fullcmd" == "ps" ]; then
- cp -f $curdir/slitaz-rootfs/bin/ps $curdir/slitaz-rootfs/bin/ps-FULL
- elif [ -f $curdir/slitaz-rootfs/bin/$fullcmd ]; then
- ln -rs $curdir/slitaz-rootfs/bin/$fullcmd $curdir/slitaz-rootfs/bin/$fullcmd-FULL
- fi
- done
- ln -rs $curdir/slitaz-rootfs/usr/bin/notify-send $curdir/slitaz-rootfs/usr/bin/notify
- echo "Updating system database..."
- if [ ! -z $prefix ]; then
- mount -o rbind /proc $curdir/slitaz-rootfs$prefix/proc #We might want to do these minds earlier
- mount -t sysfs none $curdir/slitaz-rootfs$prefix/sys
- if [ $xinteractive -eq 1 ]; then
- echo "Removing block device files..."
- rm -rf $curdir/slitaz-rootfs$prefix/dev/* #Maybe we want to rename rather than delete these
- #mount bind -t devtmpfs none $curdir/slitaz-rootfs/dev
- mount -o rbind /dev $curdir/slitaz-rootfs$prefix/dev
- fi
- fi
- chroot "$curdir/slitaz-rootfs$prefix/" tazpkg recharge
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/update-desktop-database /usr/share/applications
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/update-mime-database /usr/share/mime
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/gdk-pixbuf-query-loaders --update-cache
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/gio-querymodules /usr/lib/gio/modules
- chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/fc-cache -f
- #exit
- if [ "$xmode" == "local" ]; then
- touch $curdir/slitaz-rootfs/var/lib/tazpkg/locked-packages
- touch $curdir/slitaz-rootfs/tmp/tazpkg-local.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skipdep.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skipremovedep.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-dontbreak.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skipupdate.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-editreceipt.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-autoconfirm.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skiprefresh.lock
- else
- touch $curdir/slitaz-rootfs/tmp/tazpkg-dontbreak.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skipremovedep.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skipupdate.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-editreceipt.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-autoconfirm.lock
- touch $curdir/slitaz-rootfs/tmp/tazpkg-skiprefresh.lock
- cp -f $curdir/tazpup-core-files/slitaz/var/lib/tazpkg/blocked-packages.list $curdir/slitaz-rootfs/var/lib/tazpkg/blocked-packages.list
- cp -f $curdir/tazpup-core-files/slitaz/var/lib/tazpkg/locked-packages $curdir/slitaz-rootfs/var/lib/tazpkg/locked-packages
- fi
- if [ -e $curdir/slitaz-rootfs/usr/sbin/iconvconfig ]; then
- chroot "$curdir/slitaz-rootfs/" /usr/sbin/iconvconfig
- fi
- #dont include to main sfs
- rm -rf $curdir/slitaz-rootfs/var/cache/tazpkg/* 2>/dev/null
- rm -rf $curdir/slitaz-rootfs/var/log/slitaz/* 2>/dev/null
- rm -rf $curdir/slitaz-rootfs/var/log/*.log 2>/dev/null
- rm -rf $curdir/slitaz-rootfs/var/tmp/* 2>/dev/null
- rm -rf $curdir/slitaz-rootfs/tmp/* 2>/dev/null
- rm -f $curdir/slitaz-rootfs/etc/rc.d/PUPSTATE
- umount -l $curdir/slitaz-rootfs/dev 2>/dev/null
- umount -l $curdir/slitaz-rootfs/sys
- umount -l $curdir/slitaz-rootfs/proc
- if [ ! -z $prefix ]; then
- umount -l $curdir/slitaz-rootfs$prefix/dev 2>/dev/null
- umount -l $curdir/slitaz-rootfs$prefix/sys
- umount -l $curdir/slitaz-rootfs$prefix/proc
- fi
- #exit
- echo "Mounting $(basename $IMGPUP)..."
- mount -o ro $IMGPUP /mnt/wktaz
- if [ $? -ne 0 ]; then
- echo "Mounting puppy image failed"
- exit
- fi
- rootfslist="$(find /mnt/wktaz -type f -name "*.sfs")"
- if [ "$rootfslist" == "" ]; then
- echo "Not a puppy disc image"
- umount /mnt/wktaz
- exit
- fi
- echo "Copying puppy kernel...."
- cp -f /mnt/wktaz/vmlinuz $curdir/tazpup-preiso/
- echo "Searching for kernel modules..."
- mkdir -p $curdir/kernel-modules/lib
- for file1 in $(find /mnt/wktaz -type f -name "*.sfs")
- do
- mount -t squashfs $file1 /mnt/wksfs
- if [ $? -eq 0 ]; then
- if [ -d /mnt/wksfs/lib/modules ]; then
- echo "Copying kernel modules from $(basename $file1) to rootfs..."
- cp -rf /mnt/wksfs/lib/modules $curdir/kernel-modules/lib/
- mkdir -p $curdir/kernel-modules/var/lib/tazpkg/installed/linux
- touch $curdir/kernel-modules/var/lib/tazpkg/installed/linux/files.list
- echo 'PACKAGE="linux"
- VERSION=""
- CATEGORY="misc"
- SHORT_DESC="Linux kernel (compiled for puppy linux)"
- WEB_SITE="http://puppylinux.org/"
- MAINTAINER="nobody@slitaz.org"
- DEPENDS="linux-modules"
- ' > $curdir/kernel-modules/var/lib/tazpkg/installed/linux/receipt
- mkdir -p $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules
- echo 'PACKAGE="linux-modules"
- VERSION=""
- CATEGORY="misc"
- SHORT_DESC="Linux kernel modules(compiled for puppy linux)"
- WEB_SITE="http://puppylinux.org/"
- MAINTAINER="nobody@slitaz.org"
- DEPENDS=""
- ' > $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules/receipt
- xcurdir="$(echo "$curdir" | sed "s#\/#\\\/#g")"
- find $curdir/kernel-modules/lib/ -type f -name "*" | sed -e "s#$xcurdir\/kernel-modules\/lib\/#\/lib\/#g" > $curdir/kernel-modules/var/lib/tazpkg/installed/linux-modules/files.list
- fi
- if [ -d /mnt/wksfs/etc/modules ]; then
- cp -rf /mnt/wksfs/etc/modules $curdir/kernel-modules/etc/
- fi
- umount /mnt/wksfs
- fi
- done
- umount /mnt/wktaz
- if [ ! -f $curdir/tazpup-core-files/puppy/etc/DISTRO_SPECS ]; then
- echo "DISTRO_SPECS file is missing"
- exit
- fi
- . $curdir/tazpup-core-files/puppy/etc/DISTRO_SPECS
- #exit
- echo "Creating tazpup zdrv sfs..."
- mksquashfs "$curdir/kernel-modules" "$curdir/tazpup-preiso/$DISTRO_ZDRVSFS" -comp xz -Xbcj x86 -b 1M -Xdict-size 100%
- echo "Creating tazpup sfs..."
- mksquashfs "$curdir/slitaz-rootfs$prefix" "$curdir/tazpup-preiso/$DISTRO_PUPPYSFS" -comp xz -Xbcj x86 -b 1M -Xdict-size 100%
- echo "Creating live cd..."
- #mv -f $curdir/$DISTRO_PUPPYSFS $curdir/tazpup-preiso/
- cp -rf $curdir/tazpup-livecd-files/* $curdir/tazpup-preiso/
- BOOTPARM=""
- [ -f $curdir/tazpup-preiso/grldr ] && BOOTPARM="-b grldr"
- [ -f $curdir/tazpup-preiso/isolinux.bin ] && BOOTPARM="-b isolinux.bin -c boot.cat"
- if [ -f $curdir/tazpup-preiso/boot.catalog ]; then
- BOOTPARM="-b isolinux.bin -c boot.catalog"
- else
- BOOTPARM="-b isolinux.bin -c boot.cat"
- fi
- if [ -f $curdir/tazpup-preiso/efiboot.img ]; then
- efi1="true"
- efiimg1="efiboot.img"
- elif [ -f $curdir/tazpup-preiso/efi.img ]; then
- efi1="true"
- efiimg1="efi.img"
- else
- efi1="false"
- fi
- VOLI="tazpup-preiso"
- cd $curdir
- if [ -f $curdir/custom-tazpup.iso ]; then
- rm -f $curdir/custom-tazpup.iso
- fi
- if [ -f $curdir/custom-tazpup.iso.md5 ]; then
- rm -f $curdir/custom-tazpup.iso.md5
- fi
- if [ "$efi1" == "true" ]; then
- #rxvt -bg blue -fg white -title "$m_01 (with UEFI)" -e mkisofs -U -A $VOLI -J -joliet-long -r -v -T -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e efi.img -no-emul-boot $curdir/tazpup-preiso
- echo "UEFI enabled"
- mkisofs -D -R -J -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot $efiimg1 -no-emul-boot $curdir/tazpup-preiso/
- isohybrid --uefi $curdir/custom-tazpup.iso
- else
- mkisofs -D -R -J -o $curdir/custom-tazpup.iso $BOOTPARM -no-emul-boot -boot-load-size 4 -boot-info-table $curdir/tazpup-preiso/
- fi
- MD5=`md5sum $curdir/custom-tazpup.iso | cut -f 1 -d ' '`
- echo "$MD5" > $curdir/custom-tazpup.iso.md5
- echo "MD5 Checksum: ${MD5}"
- echo ""
- echo "Process complete!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement