Hello community, here is the log from the commit of package linuxrc checked in at Thu Oct 16 01:44:30 CEST 2008. -------- --- linuxrc/linuxrc.changes 2008-10-13 14:33:28.000000000 +0200 +++ /d/STABLE/linuxrc/linuxrc.changes 2008-10-15 16:57:31.000000000 +0200 @@ -1,0 +2,6 @@ +Wed Oct 15 16:57:27 CEST 2008 - snwint@suse.de + +- initrd can have parts in fs images (bnc #430140) +- fix signature check (bnc #435170) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- linuxrc-3.3.10.tar.bz2 New: ---- linuxrc-3.3.11.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linuxrc.spec ++++++ --- /var/tmp/diff_new_pack.mG4081/_old 2008-10-16 01:43:41.000000000 +0200 +++ /var/tmp/diff_new_pack.mG4081/_new 2008-10-16 01:43:41.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package linuxrc (Version 3.3.10) +# spec file for package linuxrc (Version 3.3.11) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,9 +24,9 @@ Group: System/Boot AutoReqProv: on Summary: SUSE Installation Program -Version: 3.3.10 +Version: 3.3.11 Release: 1 -Source: linuxrc-3.3.10.tar.bz2 +Source: linuxrc-3.3.11.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -61,6 +61,9 @@ %doc linuxrc.html %changelog +* Wed Oct 15 2008 snwint@suse.de +- initrd can have parts in fs images (bnc #430140) +- fix signature check (bnc #435170) * Mon Oct 13 2008 snwint@suse.de - get hostname via dhcp (bnc #432560) - keymap: rename de-lat1-nd -> de-latin1-nodeadkeys ++++++ linuxrc-3.3.10.tar.bz2 -> linuxrc-3.3.11.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/Changelog new/linuxrc-3.3.11/Changelog --- old/linuxrc-3.3.10/Changelog 2008-10-13 14:30:39.000000000 +0200 +++ new/linuxrc-3.3.11/Changelog 2008-10-15 16:57:10.000000000 +0200 @@ -1,3 +1,7 @@ +14/10/2008: v3.3.11 + - initrd can have parts in fs images (bnc #430140) + - fix signature check (bnc #435170) + 9/10/2008: v3.3.10 - get hostname via dhcp (bnc #432560) - keymap: rename de-lat1-nd -> de-latin1-nodeadkeys diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/file.c new/linuxrc-3.3.11/file.c --- old/linuxrc-3.3.10/file.c 2008-09-23 15:28:19.000000000 +0200 +++ new/linuxrc-3.3.11/file.c 2008-10-15 13:06:03.000000000 +0200 @@ -1032,6 +1032,7 @@ s++; } if(!strcmp(s, "wait")) config.debugwait = i; + else if(!strcmp(s, "tmpfs")) config.tmpfs = i; else if(!strcmp(s, "udev")) config.staticdevices = i ^ 1; else if(!strcmp(s, "udev.mods")) config.udev_mods = i; } @@ -2066,15 +2067,23 @@ */ file_t *file_get_cmdline(file_key_t key) { - static file_t *cmdline = NULL; + static file_t *cmdline = NULL, ft_buf; file_t *ft, *ft_ok = NULL; + memset(&ft_buf, 0, sizeof ft_buf); + if(!cmdline) cmdline = file_read_cmdline(kf_cmd + kf_cmd_early); for(ft = cmdline; ft; ft = ft->next) { if(ft->key == key) ft_ok = ft; } + if(ft_ok) { + memcpy(&ft_buf, ft_ok, sizeof ft_buf); + ft_ok = &ft_buf; + ft_ok->next = NULL; + } + return ft_ok; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/global.h new/linuxrc-3.3.11/global.h --- old/linuxrc-3.3.10/global.h 2008-09-23 15:28:50.000000000 +0200 +++ new/linuxrc-3.3.11/global.h 2008-10-14 17:43:48.000000000 +0200 @@ -481,6 +481,7 @@ struct { /* mountpoints */ unsigned cnt; /* mp counter */ + unsigned initrd_parts; /* initrd parts counter */ char *instdata; char *instsys; char *update; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/install.c new/linuxrc-3.3.11/install.c --- old/linuxrc-3.3.10/install.c 2008-10-08 15:58:09.000000000 +0200 +++ new/linuxrc-3.3.11/install.c 2008-10-14 17:47:35.000000000 +0200 @@ -1214,6 +1214,8 @@ kbd_init(0); util_notty(); + lxrc_readd_parts(); + str_copy(&setupcmd, NULL); if(config.splash && config.textmode) system("echo 1 >/proc/splash"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/linuxrc.c new/linuxrc-3.3.11/linuxrc.c --- old/linuxrc-3.3.10/linuxrc.c 2008-10-07 12:10:51.000000000 +0200 +++ new/linuxrc-3.3.11/linuxrc.c 2008-10-15 13:04:51.000000000 +0200 @@ -79,6 +79,9 @@ extern char **environ; static void lxrc_movetotmpfs(void); +static int cmp_entry(slist_t *sl0, slist_t *sl1); +static int cmp_entry_s(const void *p0, const void *p1); +static void lxrc_add_parts(void); #if SWISS_ARMY_KNIFE static void lxrc_makelinks(char *name); #endif @@ -134,8 +137,6 @@ { char *prog; int err, i, j; - file_t *ft; - int tmpfs_opt = 0; prog = (prog = strrchr(*argv, '/')) ? prog + 1 : *argv; @@ -192,21 +193,17 @@ if(!util_check_exist("/oldroot")) { find_shell(); mount("proc", "/proc", "proc", 0, 0); - ft = file_get_cmdline(key_tmpfs); - if(ft && ft->is.numeric) { - config.tmpfs = ft->nvalue; - tmpfs_opt = 1; - } - ft = file_get_cmdline(key_debugwait); - if(ft && ft->is.numeric) config.debugwait = ft->nvalue; + file_do_info(file_get_cmdline(key_tmpfs), kf_cmd + kf_cmd_early); + file_do_info(file_get_cmdline(key_lxrcdebug), kf_cmd + kf_cmd_early); util_free_mem(); umount("/proc"); - // fprintf(stderr, "free: %d, %d, %d\n", config.memory.free, config.tmpfs, tmpfs_opt); + // fprintf(stderr, "free: %d, %d\n", config.memory.free, config.tmpfs); - if(config.tmpfs && (config.memory.free > 24 * 1024 || tmpfs_opt)) { + if(config.tmpfs && config.memory.free > 24 * 1024) { lxrc_movetotmpfs(); /* does not return if successful */ } + config.tmpfs = 0; if(!config.serial && config.debugwait) { @@ -770,6 +767,14 @@ config.swap_file_size = 1024; /* 1024 MB */ + file_do_info(file_get_cmdline(key_lxrcdebug), kf_cmd + kf_cmd_early); + + LXRC_WAIT + + if(!config.had_segv) lxrc_add_parts(); + + LXRC_WAIT + if(util_check_exist("/sbin/mount.smbfs")) { str_copy(&config.net.cifs.binary, "/sbin/mount.smbfs"); str_copy(&config.net.cifs.module, "smbfs"); @@ -1396,3 +1401,80 @@ } +int cmp_entry(slist_t *sl0, slist_t *sl1) +{ + return strcmp(sl0->key, sl1->key); +} + + +/* wrapper for qsort */ +int cmp_entry_s(const void *p0, const void *p1) +{ + slist_t **sl0, **sl1; + + sl0 = (slist_t **) p0; + sl1 = (slist_t **) p1; + + return cmp_entry(*sl0, *sl1); +} + + +void lxrc_add_parts() +{ + struct dirent *de; + DIR *d; + slist_t *sl0 = NULL, *sl; + char *mp = NULL, *argv[3] = { }; + int insmod_done = 0; + + if((d = opendir("/parts"))) { + while((de = readdir(d))) { + if(util_check_exist2("/parts", de->d_name) == 'r') { + sl = slist_append(&sl0, slist_new()); + strprintf(&sl->key, "/parts/%s", de->d_name); + } + } + closedir(d); + } + + sl0 = slist_sort(sl0, cmp_entry_s); + + for(sl = sl0; sl; sl = sl->next) { + fprintf(stderr, "Integrating %s\n", sl->key); + if(!config.test) { + if(!insmod_done) { + insmod_done = 1; + system("/sbin/insmod /modules/loop.ko max_loop=64"); + } + strprintf(&mp, "/parts/mp_%04u", config.mountpoint.initrd_parts++); + mkdir(mp, 0755); + util_mount_ro(sl->key, mp, NULL); + argv[1] = mp; + argv[2] = "/"; + util_lndir_main(3, argv); + } + } + + slist_free(sl0); + free(mp); +} + + +void lxrc_readd_parts() +{ + char *mp = NULL, *argv[3] = { }; + unsigned u; + + if(config.test) return; + + for(u = 0; u < config.mountpoint.initrd_parts; u++) { + strprintf(&mp, "/parts/mp_%04u", u); + argv[1] = mp; + argv[2] = "/"; + util_lndir_main(3, argv); + } + + free(mp); +} + + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/linuxrc.h new/linuxrc-3.3.11/linuxrc.h --- old/linuxrc-3.3.10/linuxrc.h 2008-07-03 18:59:43.000000000 +0200 +++ new/linuxrc-3.3.11/linuxrc.h 2008-10-14 17:46:02.000000000 +0200 @@ -11,3 +11,4 @@ extern void lxrc_set_modprobe(char *prog); extern const char *lxrc_new_root; void find_shell(void); +void lxrc_readd_parts(void); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/url.c new/linuxrc-3.3.11/url.c --- old/linuxrc-3.3.10/url.c 2008-10-01 12:40:35.000000000 +0200 +++ new/linuxrc-3.3.11/url.c 2008-10-14 18:43:57.000000000 +0200 @@ -1690,7 +1690,7 @@ if(config.secure) { if(url_read_file(url, NULL, "/content.asc", "/content.asc", NULL, URL_FLAG_NOSHA1)) return 0; str_copy(&buf, "gpg --homedir /root/.gnupg --batch --no-default-keyring --keyring /installkey.gpg --verify /content.asc >/dev/null"); - if(config.debug < 2) strprintf(&buf, " 2>&1"); + if(config.debug < 2) strprintf(&buf, "%s 2>&1", buf); i = system(buf); if(i) { fprintf(stderr, "signature check failed\n"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.3.10/VERSION new/linuxrc-3.3.11/VERSION --- old/linuxrc-3.3.10/VERSION 2008-10-07 12:47:12.000000000 +0200 +++ new/linuxrc-3.3.11/VERSION 2008-10-14 13:01:16.000000000 +0200 @@ -1 +1 @@ -3.3.10 +3.3.11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org