Hello community, here is the log from the commit of package linuxrc for openSUSE:Factory checked in at Sat Jun 20 03:46:01 CEST 2009. -------- --- linuxrc/linuxrc.changes 2009-06-09 14:03:39.000000000 +0200 +++ linuxrc/linuxrc.changes 2009-06-19 11:35:49.000000000 +0200 @@ -1,0 +2,5 @@ +Fri Jun 19 11:35:39 CEST 2009 - snwint@suse.de + +- added udev.rule option to write udev rules (fate #305867) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- linuxrc-3.4.1.tar.bz2 New: ---- linuxrc-3.4.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linuxrc.spec ++++++ --- /var/tmp/diff_new_pack.i14693/_old 2009-06-20 03:45:33.000000000 +0200 +++ /var/tmp/diff_new_pack.i14693/_new 2009-06-20 03:45:33.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package linuxrc (Version 3.4.1) +# spec file for package linuxrc (Version 3.4.2) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,9 +24,9 @@ Group: System/Boot AutoReqProv: on Summary: SUSE Installation Program -Version: 3.4.1 +Version: 3.4.2 Release: 1 -Source: linuxrc-3.4.1.tar.bz2 +Source: linuxrc-3.4.2.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -59,6 +59,8 @@ %doc linuxrc.html %changelog +* Fri Jun 19 2009 snwint@suse.de +- added udev.rule option to write udev rules (fate #305867) * Tue Jun 09 2009 snwint@suse.de - added 'netsetup=now' to force immediate network configuration - ext4dev -> ext4 ++++++ linuxrc-3.4.1.tar.bz2 -> linuxrc-3.4.2.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/Changelog new/linuxrc-3.4.2/Changelog --- old/linuxrc-3.4.1/Changelog 2009-06-09 14:00:58.000000000 +0200 +++ new/linuxrc-3.4.2/Changelog 2009-06-19 11:33:52.000000000 +0200 @@ -1,3 +1,6 @@ +19/6/2009: v3.4.2 + - added udev.rule option to write udev rules (fate #305867) + 9/6/2009: v3.4.1 - added 'netsetup=now' to force immediate network configuration - ext4dev -> ext4 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/file.c new/linuxrc-3.4.2/file.c --- old/linuxrc-3.4.1/file.c 2009-05-20 16:02:12.000000000 +0200 +++ new/linuxrc-3.4.2/file.c 2009-06-19 11:22:52.000000000 +0200 @@ -302,6 +302,7 @@ { key_usesax2, "Sax2", kf_cfg + kf_cmd }, { key_efi, "EFI", kf_cfg + kf_cmd }, { key_supporturl, "supporturl", kf_cfg + kf_cmd }, + { key_udevrule, "udev.rule", kf_cfg + kf_cmd_early }, }; static struct { @@ -1565,6 +1566,12 @@ str_copy(&config.supporturl, f->value); break; + case key_udevrule: + if(*f->value && !slist_getentry(config.udevrules, f->value)) { + slist_append_str(&config.udevrules, f->value); + } + break; + default: break; } @@ -2026,16 +2033,18 @@ file_t *file_parse_buffer(char *buf, file_key_flag_t flags) { file_t *ft0 = NULL, **ft = &ft0; - char *current, *s, *s1, *t, *t1; + char *current, *s, *s1, *t, *t1, sep = ' '; int i, quote; if(!buf) return NULL; + if((flags & kf_comma)) sep = ','; + current = buf; do { - while(isspace(*current)) current++; - for(quote = 0, s = current; *s && (quote || !isspace(*s)); s++) { + while(isspace(*current) || *current == sep) current++; + for(quote = 0, s = current; *s && (quote || !(isspace(*s) || *s == sep)); s++) { if(quote) { if(*s == quote) quote = 0; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/file.h new/linuxrc-3.4.2/file.h --- old/linuxrc-3.4.1/file.h 2009-05-20 15:54:28.000000000 +0200 +++ new/linuxrc-3.4.2/file.h 2009-06-19 11:12:22.000000000 +0200 @@ -50,7 +50,7 @@ key_nomdns, key_yepurl, key_yepcert, key_mediacheck, key_y2gdb, key_squash, key_kexec_reboot, key_devbyid, key_braille, key_nfsopts, key_ipv4, key_ipv4only, key_ipv6, key_ipv6only, key_usesax2, key_efi, key_supporturl, key_portno, - key_osahwaddr, key_zen, key_zenconfig + key_osahwaddr, key_zen, key_zenconfig, key_udevrule } file_key_t; typedef enum { @@ -64,7 +64,8 @@ kf_boot = 1 << 6, /* things the boot loader used */ kf_cmd1 = 1 << 7, /* between cmd_early and start of hw detection */ kf_ibft = 1 << 8, /* ibft values (iSCSI BIOS) */ - kf_cont = 1 << 9 /* 'content' file */ + kf_cont = 1 << 9, /* 'content' file */ + kf_comma = 1 << 10 /* accept commas as option separator (in command line syntax) */ } file_key_flag_t; typedef struct file_s { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/global.h new/linuxrc-3.4.2/global.h --- old/linuxrc-3.4.1/global.h 2009-05-20 15:58:37.000000000 +0200 +++ new/linuxrc-3.4.2/global.h 2009-06-19 10:53:29.000000000 +0200 @@ -407,6 +407,7 @@ char *vga; /* vga option */ int vga_mode; /* vga mode number */ slist_t *extend_list; /* list of loaded instsys extensions */ + slist_t *udevrules; /* udev rules */ struct { char *instsys_default; /* default instsys url */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/linuxrc.c new/linuxrc-3.4.2/linuxrc.c --- old/linuxrc-3.4.1/linuxrc.c 2009-05-20 15:54:28.000000000 +0200 +++ new/linuxrc-3.4.2/linuxrc.c 2009-06-19 10:52:12.000000000 +0200 @@ -834,6 +834,8 @@ util_redirect_kmsg(); + util_setup_udevrules(); + if(!config.udev_mods) { system("cp /lib/udev/80-drivers.rules.no_modprobe /lib/udev/rules.d/80-drivers.rules"); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/util.c new/linuxrc-3.4.2/util.c --- old/linuxrc-3.4.1/util.c 2009-05-20 15:54:28.000000000 +0200 +++ new/linuxrc-3.4.2/util.c 2009-06-19 11:32:13.000000000 +0200 @@ -4768,3 +4768,30 @@ } } + +void util_setup_udevrules() +{ + slist_t *rule; + file_t *f, *f_mac, *f_name; + FILE *ff; + + for(rule = config.udevrules; rule; rule = rule->next) { + f = file_parse_buffer(rule->key, kf_comma + kf_none); + if( + (f_mac = file_getentry(f, "mac")) && + (f_name = file_getentry(f, "name")) + ) { + fprintf(stderr, "udev net rule: mac = \"%s\", name = \"%s\"\n", f_mac->value, f_name->value); + if((ff = fopen("/etc/udev/rules.d/70-persistent-net.rules", "a"))) { + fprintf(ff, + "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"%s\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"%s\"\n", + f_mac->value, + f_name->value + ); + fclose(ff); + } + } + file_free_file(f); + } +} + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/util.h new/linuxrc-3.4.2/util.h --- old/linuxrc-3.4.1/util.h 2009-05-20 15:54:28.000000000 +0200 +++ new/linuxrc-3.4.2/util.h 2009-06-19 10:53:04.000000000 +0200 @@ -158,4 +158,5 @@ void util_clear_downloads(void); void util_wait(const char *file, int line); void run_braille(void); +void util_setup_udevrules(void); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.4.1/VERSION new/linuxrc-3.4.2/VERSION --- old/linuxrc-3.4.1/VERSION 2009-05-20 16:04:30.000000000 +0200 +++ new/linuxrc-3.4.2/VERSION 2009-06-19 11:32:17.000000000 +0200 @@ -1 +1 @@ -3.4.1 +3.4.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org