Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- curdir=`pwd`
- remove_some_slitaz(){
- if [ -f $curdir/remove-builtin.txt ]; then
- for pkg2 in $(cat $curdir/remove-builtin.txt)
- do
- if [ -d $curdir/slitaz-rootfs/var/lib/tazpkg/installed/$pkg2 ]; then
- for files1 in `cat $curdir/slitaz-rootfs/var/lib/tazpkg/installed/$pkg2/files.list`
- do
- rm -f $curdir/slitaz-rootfs/$files1
- done
- rm -rf $curdir/slitaz-rootfs/var/lib/tazpkg/installed/$pkg2
- fi
- cat $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5 | grep -v " $pkg2-" sort > $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5.new
- rm -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5
- mv -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5.new $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5
- PTRN="$(echo "^$pkg2" | sed -e "s#\+#\\\+#g")"
- cat $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info | grep -Ev "$PTRN" | sort > $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info.new
- rm -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info
- mv -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info.new $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info
- done
- fi
- rm -f $curdir/slitaz-rootfs/etc/dialogrc
- }
- extractfs() {
- if [ ! -d $curdir/slitaz-rootfs ]; then
- mkdir $curdir/slitaz-rootfs
- fi
- (unlzma -c $1 || cat $1 ) 2>/dev/null | (cd $curdir/slitaz-rootfs; cpio -idm > /dev/null)
- }
- process_package() {
- chksum="$(md5sum $1)"
- cpio -idm --quiet < "$1" && rm -f "$1"
- if [ -f fs.cpio.lzma ]; then
- unlzma < fs.cpio.lzma | cpio -idm --quiet && rm fs.cpio.lzma
- elif [ -f fs.cpio.gz ]; then
- zcat fs.cpio.gz | cpio -idm --quiet && rm fs.cpio.gz
- fi
- . ./receipt
- if [ -f $curdir/slitaz-build-data/installed-isolated.info ]; then
- xPTRN80="$(echo "^$PACKAGE\t" | sed -e "s#\+#\\\+#g")"
- if [ "$(cat $curdir/slitaz-build-data/installed-isolated.info | grep -E "$xPTRN80" | grep "$VERSION$EXTRAVERSION")" != "" ]; then
- echo "Package entry skipped"
- else
- echo "$PACKAGE $VERSION$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS $PKG_SUM" >> $curdir/slitaz-build-data/installed-isolated.info
- fi
- else
- echo "$PACKAGE $VERSION$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS $PKG_SUM" >> $curdir/slitaz-build-data/installed-isolated.info
- fi
- if [ -f $curdir/slitaz-build-data/installed-isolated.md5 ]; then
- PTRN="$(echo "${1}\$" | sed -e "s#\+#\\\+#g")"
- if [ "$(cat $curdir/slitaz-build-data/installed-isolated.md5 | grep -E "$PTRN")" != "" ]; then
- echo "Checksum entry skipped"
- else
- echo "$chksum" >> $curdir/slitaz-build-data/installed-isolated.md5
- fi
- else
- echo "$chksum" >> $curdir/slitaz-build-data/installed-isolated.md5
- fi
- mkdir ./var/lib/tazpkg/installed/$PACKAGE/
- mv -f ./receipt ./var/lib/tazpkg/installed/$PACKAGE/
- mv -f ./md5sum ./var/lib/tazpkg/installed/$PACKAGE/
- if [ -f ./description.txt ]; then
- mv -f ./description.txt ./var/lib/tazpkg/installed/$PACKAGE/
- fi
- mv ./files.list ./var/lib/tazpkg/installed/$PACKAGE/
- cp -arf ./fs/* ./
- rm -rf ./fs
- unset PACKAGE VERSION EXTRAVERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS PKG_SUM
- }
- IMG="$(Xdialog --stdout --title "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
- IMGPUP="$(Xdialog --stdout --title "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
- #---------------------Cleanup---------------------------- added by s243a
- if [ -d $curdir/slitaz-rootfs ]; then
- 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/slitaz-build-data/slitaz-packages-fs ]; then
- echo "Deleting slitaz-packages-fs..."
- rm -rf $curdir/slitaz-build-data/slitaz-packages-fs
- fi
- rm -f $curdir/slitaz-build-data/installed-isolated.md5
- rm -f $curdir/slitaz-build-data/installed-isolated.info
- 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/boot/rootfs.gz ]; then
- echo "Not a slitaz disc image"
- umount /mnt/wktaz
- exit
- fi
- echo "Copying rootfs gz..."
- if [ -f /mnt/wktaz/rootfs.gz ]; then
- src1="/mnt/wktaz/rootfs.gz"
- elif [ -f /mnt/wktaz/boot/rootfs.gz ]; then
- src1="/mnt/wktaz/boot/rootfs.gz"
- fi
- cp -f $src1 $curdir/slitaz-livecd-wkg/
- umount /mnt/wktaz
- cd $curdir/slitaz-livecd-wkg
- echo "Extracting rootfs gz..."
- extractfs $curdir/slitaz-livecd-wkg/rootfs.gz
- cd $curdir
- rm -rf $curdir/slitaz-livecd-wkg
- rm -f $curdir/slitaz-rootfs/init
- remove_some_slitaz
- #echo "Removing block device files..."
- #rm -rf $curdir/slitaz-rootfs/dev/*
- echo "Removing slitaz modules..."
- rm -rf $curdir/slitaz-rootfs/lib/modules/*
- rm -rf $curdir/slitaz-rootfs/var/lib/tazpkg/installed/linux*
- echo "Removing slitaz firmware..."
- rm -rf $curdir/slitaz-rootfs/lib/firmware/*
- rm -rf $curdir/slitaz-rootfs/var/lib/tazpkg/installed/firmware*
- 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
- echo "Processing Slitaz packages..."
- if [ ! -d $curdir/slitaz-build-data/slitaz-packages-fs ]; then
- mkdir $curdir/slitaz-build-data/slitaz-packages-fs
- mkdir $curdir/slitaz-build-data/slitaz-packages-fs/var
- mkdir $curdir/slitaz-build-data/slitaz-packages-fs/var/lib
- mkdir $curdir/slitaz-build-data/slitaz-packages-fs/var/lib/tazpkg
- mkdir $curdir/slitaz-build-data/slitaz-packages-fs/var/lib/tazpkg/installed
- fi
- 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
- for pkg in $(find $curdir/slitaz-packages -type f -name "*.tazpkg" | sort -r)
- do
- echo "Processing core package: $(basename $pkg)"
- cp -f $pkg $curdir/slitaz-build-data/slitaz-packages-fs/
- cd $curdir/slitaz-build-data/slitaz-packages-fs/
- process_package "$(basename $pkg)"
- done
- 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)"
- cp -f $pkg $curdir/slitaz-build-data/slitaz-packages-fs/
- cd $curdir/slitaz-build-data/slitaz-packages-fs/
- process_package "$(basename $pkg)"
- done
- fi
- for fullcmd in mount umount ps
- do
- if [ -f $curdir/slitaz-build-data/slitaz-packages-fs/bin/$fullcmd ]; then
- ln -rs $curdir/slitaz-build-data/slitaz-packages-fs/bin/$fullcmd \
- $curdir/slitaz-build-data/slitaz-packages-fs/bin/$fullcmd-FULL
- fi
- done
- #exit
- cd $curdir
- echo "Installing Slitaz packages..."
- cp --remove-destination -arf $curdir/slitaz-build-data/slitaz-packages-fs/* $curdir/slitaz-rootfs/
- #exit
- if [ -f $curdir/slitaz-rootfs/usr/bin/coreutils ]; then
- rm -f $curdir/slitaz-rootfs/bin/stat
- ln -sr $curdir/slitaz-rootfs/usr/bin/coreutils $curdir/slitaz-rootfs/usr/bin/df-FULL
- fi
- if [ -f $curdir/slitaz-rootfs/usr/bin/gzip ]; then
- rm -f $curdir/slitaz-rootfs/bin/gzip
- fi
- if [ -d $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz ]; then
- ln -sr $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs/usr/lib/grub/i386-pc
- ln -sr $curdir/slitaz-rootfs/usr/lib/grub/i386-slitaz $curdir/slitaz-rootfs/usr/lib/grub/i386-t2
- fi
- if [ -d $curdir/slitaz-rootfs/usr/share/boot ]; then
- ln -sr $curdir/slitaz-rootfs/usr/share/boot $curdir/slitaz-rootfs/usr/share/syslinux
- for file1 in grldr.lzma grub.exe.lzma memdisk.lzma pxelinux.0.lzma
- do
- cp -f $curdir/slitaz-rootfs/usr/share/boot/$file1 $curdir/slitaz-rootfs/usr/share/boot/$file1.bak
- unlzma $curdir/slitaz-rootfs/usr/share/boot/$file1
- mv -f $curdir/slitaz-rootfs/usr/share/boot/$file1.bak $curdir/slitaz-rootfs/usr/share/boot/$file1
- done
- fi
- #exit
- cat $curdir/slitaz-build-data/installed-isolated.md5 >> $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5
- cat $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5 | grep -v " linux-" | grep -v " firmware-" | sort > $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5.new
- rm -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5
- mv -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5.new $curdir/slitaz-rootfs/var/lib/tazpkg/installed.md5
- cat $curdir/slitaz-build-data/installed-isolated.info >> $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info
- cat $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info | grep -Ev "^linux|^firmware" | sort > $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info.new
- rm -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info
- mv -f $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info.new $curdir/slitaz-rootfs/var/lib/tazpkg/installed.info
- #exit
- echo "Applying patches..."
- cp --remove-destination -arf $curdir/slitaz-build-data/rootfs-skeleton-slitaz/* $curdir/slitaz-rootfs/
- if [ -d $curdir/slitaz-build-data/slitaz-packages-fs/usr/share/glib-2.0/schemas ]; then
- echo "Compiling schemas..."
- glib-compile-schemas $curdir/slitaz-rootfs/usr/share/glib-2.0/schemas
- fi
- echo "Updating mime database..."
- update-mime-database $curdir/slitaz-rootfs/usr/share/mime
- #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..."
- 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/slitaz-rootfs/lib/
- fi
- if [ -d /mnt/wksfs/etc/modules ]; then
- cp -rf /mnt/wksfs/etc/modules $curdir/slitaz-rootfs/etc/
- fi
- umount /mnt/wksfs
- fi
- done
- umount /mnt/wktaz
- echo "Creating tazpup sfs..."
- if [ ! -f $curdir/slitaz-build-data/rootfs-skeleton-slitaz/etc/DISTRO_SPECS ]; then
- echo "DISTRO_SPECS file is missing"
- exit
- fi
- . $curdir/slitaz-build-data/rootfs-skeleton-slitaz/etc/DISTRO_SPECS
- mksquashfs "slitaz-rootfs" "$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