[Erp5-report] r8799 - in /umigumi/trunk: README.txt umibuilder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jul 26 15:06:19 CEST 2006
Author: chris
Date: Wed Jul 26 15:05:57 2006
New Revision: 8799
URL: http://svn.erp5.org?rev=8799&view=rev
Log:
- Updated dependency list
- Check for missing dependencies at the beginning of the execution to avoid loosing time
- added cpio initrd support (Needed by latest mdk initrd)
Modified:
umigumi/trunk/README.txt
umigumi/trunk/umibuilder.py
Modified: umigumi/trunk/README.txt
URL: http://svn.erp5.org/umigumi/trunk/README.txt?rev=8799&r1=8798&r2=8799&view=diff
==============================================================================
--- umigumi/trunk/README.txt (original)
+++ umigumi/trunk/README.txt Wed Jul 26 15:05:57 2006
@@ -14,8 +14,15 @@
Installing Umigumi
- Umigumi requires python2.2 and PyQt 3.5
+ Umigumi requires python >= 2.2 and PyQt 3.5
It can run on Qt 2.x and Qt 3.x
+
+Dependencies
+
+ - udhcpc
+ - busybox
+ - mke2fs
+ - ash
Using Umigumi
Modified: umigumi/trunk/umibuilder.py
URL: http://svn.erp5.org/umigumi/trunk/umibuilder.py?rev=8799&r1=8798&r2=8799&view=diff
==============================================================================
--- umigumi/trunk/umibuilder.py (original)
+++ umigumi/trunk/umibuilder.py Wed Jul 26 15:05:57 2006
@@ -407,13 +407,25 @@
try:
if not os.access(mdk_initrd_mount_dir, os.F_OK):
if not dry_run: os.mkdir(mdk_initrd_mount_dir)
- executeCommand('mount -o loop %s %s' % (decompressed_mdk_initrd_path, mdk_initrd_mount_dir), dry_run)
+ try:
+ executeCommand('mount -o loop %s %s' % (decompressed_mdk_initrd_path, mdk_initrd_mount_dir), dry_run)
+ except:
+ current_dir = os.getcwd()
+ executeCommand('mkdir -p %s'%mdk_initrd_mount_dir, dry_run)
+ executeCommand('cp -a %s %s' % (decompressed_mdk_initrd_path, mdk_initrd_mount_dir), dry_run)
+ os.chdir(mdk_initrd_mount_dir)
+ executeCommand('cpio -id < initrd', dry_run)
+ executeCommand('rm -f initrd', dry_run)
+ os.chdir(current_dir)
createNewInitrd(config, mdk_initrd_mount_dir, dry_run)
finally:
if os.path.ismount(mdk_initrd_mount_dir):
- executeCommand('umount %s' % mdk_initrd_mount_dir, dry_run)
+ try:
+ executeCommand('umount %s' % mdk_initrd_mount_dir, dry_run)
+ except:
+ pass
if os.access(mdk_initrd_mount_dir, os.F_OK):
- if not dry_run: os.rmdir(mdk_initrd_mount_dir)
+ executeCommand('rm -rf %s'%mdk_initrd_mount_dir, dry_run)
finally:
if os.access(decompressed_mdk_initrd_path, os.F_OK):
if not dry_run: os.remove(decompressed_mdk_initrd_path)
@@ -522,10 +534,9 @@
bin_dir = os.path.join(new_initrd_mount_dir, 'bin')
lib_dir = os.path.join(new_initrd_mount_dir, 'lib')
tls_dir = os.path.join(lib_dir, 'tls')
- # Copy sda device to dev directory (because device is not created kernel
+ # Copy sda device to dev directory (because device is not created by kernel)
abs_build_dir = os.path.abspath(config.build_dir)
executeCommand('cp -ax %s/dev/sda* %s/dev/' % (abs_build_dir, new_initrd_mount_dir), dry_run)
- # Search each program in a list of paths and copy it.
for program in program_list:
for path in search_path_list:
src = os.path.join(path, program)
@@ -963,6 +974,21 @@
print "Unknown target %s." % target
print "Try ``umibuilder --help'' for more information."
sys.exit(2)
+
+ if target[:2] == "tc":
+ # Check for missing dependencies
+ program_list = [ 'busybox', 'mke2fs', 'sfdisk', 'udevstart', 'udev', 'mount', 'umount', 'insmod', 'ifconfig','udhcpc', 'ash', 'route', 'cp', ]
+ missing_dep = []
+ search_path_list = ['/usr/sbin', '/sbin', '/usr/bin', '/bin']
+ for program in program_list:
+ for path in search_path_list:
+ src = os.path.join(path, program)
+ if os.access(src, os.F_OK):
+ break
+ else:
+ missing_dep.append(program)
+ if len(missing_dep) != 0:
+ raise RuntimeError, 'Missing dependencies: %s' % repr(missing_dep)
if target[:3] == "dls" :
# generation of tc pxe image
if 'a' in stage_list or 'p' in stage_list:
More information about the Erp5-report
mailing list