Author: qwiat
Date: Sat Sep 18 23:55:38 2010
New Revision: 11807

Modified:
   livecd/mklive/mklive
Log:
- fixed adding libs to initrd and some cosmetics

Modified: livecd/mklive/mklive
==============================================================================
--- livecd/mklive/mklive        (original)
+++ livecd/mklive/mklive        Sat Sep 18 23:55:38 2010
@@ -18,7 +18,7 @@
                do
                        dstdir=$(dirname 
$tmp_initrd/lib/modules/$kernel_rel/$modpath)
                        [ ! -d $dstdir ] && mkdir -p $dstdir
-                       echo "copying module: lib/modules/$kernel_rel/$modpath"
+                       echo " - module: lib/modules/$kernel_rel/$modpath"
                        cp $sys_source/lib/modules/$kernel_rel/$modpath $dstdir
                done
        done
@@ -31,7 +31,7 @@
                [ ! -d $sys_source/lib/modules/$kernel_rel/$moddirname ] && die 
"Directory /lib/modules/$kernel_rel/$moddirname not found!"
                dstdir=$(dirname 
$tmp_initrd/lib/modules/$kernel_rel/$moddirname)
                [ ! -d $dstdir ] && mkdir -p $dstdir
-               echo "copying modules: lib/modules/$kernel_rel/$moddirname"
+               echo " - modules: lib/modules/$kernel_rel/$moddirname"
                cp -r $sys_source/lib/modules/$kernel_rel/$moddirname $dstdir
        done
 
@@ -59,7 +59,7 @@
                        # copy files to initrd skeleton
                        dstFirmDir=$(dirname 
$tmp_initrd/$firmwareDirFound/$firmwareFile)
                        [ ! -d $dstFirmDir ] && mkdir -p $dstFirmDir
-                       echo "copying $firmwareDirFound/$firmwareFile"
+                       echo " - $firmwareDirFound/$firmwareFile"
                        cp $sys_source/$firmwareDirFound/$firmwareFile 
$dstFirmDir
                done
        done
@@ -72,12 +72,28 @@
        mknod $1/console c 5 1
        mknod $1/null c 1 3
        mknod $1/zero c 1 5
+       mknod $1/sr0 b 11 0
+
+}
+# copy from sys ($1) dynamic linked libraries of application ($2) to initrd 
skeleton
+function copy_libs
+{
+       echo "Copying libraries for $2:"
+       for liblink in $(get_app_libs $2)
+       do
+               #[ -f $liblink ] && lib=$liblink || lib=$(stat -t -c %N 
$1/$liblink  | sed -e  s/.*\ // -e s/\'// -e s/\`//) # get dst file name if 
symlink
+               #echo " - copying $lib"
+               #[ ! -f $tmp_initrd/$lib ] && cp -d $1/$libDir/$(basename $lib) 
$tmp_initrd/lib
+               echo " - $liblink"
+               [ ! -f $tmp_initrd/$lib ] && cp -a $1/$liblink $tmp_initrd/lib
+               [ -h $tmp_initrd/$liblink  ] && lib=$(stat -t -c %N $1/$liblink 
 | sed -e  s/.*\ // -e s/\'// -e s/\`//)  && cp -d $1/$libDir/$(basename $lib) 
$tmp_initrd/lib
+       done
 }
 function create_initrd
 {
-       [ -d $1/lib64 ] && libDir=lib64 || libDir=lib # gues 'lib' dir name for 
x86_64 arch
+       [ -d $sys_source/lib64 ] && libDir=lib64 || libDir=lib # gues 'lib' dir 
name for x86_64 arch
        initrd_tools_dir=/usr/$libDir/initrd
-
+       
        echo "Creating initrd skeleton: $tmp_initrd"
        cp -r $mkroot/$templatesDir/initrd/* $tmp_initrd
        # creade devices
@@ -88,7 +104,7 @@
        echo "Copying kernel modules to initrd skeleton..."
        copy_module loop cdrom crc16 crc-t10dif usbhid hid ehci-hcd uhci-hcd 
ohci-hcd unionfs isofs squashfs
        copy_modules_dir kernel/drivers/ata kernel/drivers/scsi
-       [ -d $1/lib/modules/$kernel_rel/kernel/fs/aufs ] && echo "found aufs 
module" && aufs_module_found=1 && copy_module aufs
+       [ -d $sys_source/lib/modules/$kernel_rel/kernel/fs/aufs ] && echo 
"found aufs module" && aufs_module_found=1 && copy_module aufs
        echo "Copying firmware files to initrd skeleton..."
        findAndCopyFirmwareFiles || exit 1
 
@@ -97,17 +113,13 @@
        depmod -a -b $tmp_initrd $kernel_rel
 
        echo "Adding binaries..."
-       cp -d $1/$initrd_tools_dir/{udevadm,udevd,udevstart} $tmp_initrd/bin/ 
|| return 1
-       cp $1/bin/busybox $tmp_initrd/bin/ || return 1
+       cp -d $sys_source/$initrd_tools_dir/{udevadm,udevd,udevstart} 
$tmp_initrd/bin/ || return 1
+       cp $sys_source/bin/busybox $tmp_initrd/bin/ || return 1
        ln -s busybox $tmp_initrd/bin/sh || return 1
 
        echo "Adding libraries..."
-       for liblink in $(get_app_libs /bin/busybox)
-       do
-               lib=$(stat -t -c %N $1/$liblink  | sed -e  s/.*\ // -e s/\'// 
-e s/\`//)
-               [ ! -f $tmp_initrd/$lib ] && cp -d $1/$libDir/$(basename $lib) 
$tmp_initrd/lib
-       done
-       cp $1/etc/ld.so.conf $tmp_initrd/etc
+       copy_libs $sys_source /bin/busybox
+       cp $sys_source/etc/ld.so.conf $tmp_initrd/etc
        ldconfig -r $tmp_initrd
        chown -R root:root $tmp_initrd/*
        find $tmp_initrd -name \*~ -exec rm \{\} \; # cleanup
@@ -115,10 +127,10 @@
                echo "Creating bootsplash"
                /bin/splash.bin -s -f $bootsplash > $tmp_initrd/bootsplash
        fi
-       echo "Creating initramfs image: $2"
+       echo "Creating initramfs image: $1"
        cd $tmp_initrd
-       find . | cpio -H newc -o | $compr > $2
-       [ $? -eq 0 ] && echo "Image saved as $2 (size: $(stat -c %s $2))" || 
die "Creating image failed!"
+       find . | cpio -H newc -o | $compr > $1
+       [ $? -eq 0 ] && echo "Image saved as $1 (size: $(stat -c %s $1))" || 
die "Creating image failed!"
 }
 # return application related libraries
 function get_app_libs
@@ -229,7 +241,7 @@
 fi
 
 # create initrd
-create_initrd $sys_source $tmp_iso_root/boot/initrd.img || die "Creating 
initrd image failed."
+create_initrd $tmp_iso_root/boot/initrd.img || die "Creating initrd image 
failed."
 # ceate live
 echo "Creating squashfs filesystem: $tmp_iso_root/$live_rootfs_archive..."
 mksquashfs  $sys_source $tmp_iso_root/$live_rootfs_archive -comp $compr > 
/dev/null || die "Creating live rootfs failed"
_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to