Hello community, here is the log from the commit of package linuxrc checked in at Tue May 27 16:11:00 CEST 2008. -------- --- linuxrc/linuxrc.changes 2008-05-26 18:48:45.000000000 +0200 +++ /mounts/work_src_done/STABLE/linuxrc/linuxrc.changes 2008-05-27 15:56:33.000000000 +0200 @@ -1,0 +2,8 @@ +Tue May 27 15:56:29 CEST 2008 - snwint@suse.de + +- try connected network cards first (bnc #394618) +- use dhcpcd --noipv4ll to avoid local link addresses (bnc #394618) +- fix driverupdate loading (bnc #393082) +- load usb modules before starting braille detection + +------------------------------------------------------------------- Old: ---- linuxrc-3.1.30.tar.bz2 New: ---- linuxrc-3.1.31.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linuxrc.spec ++++++ --- /var/tmp/diff_new_pack.R20303/_old 2008-05-27 16:09:45.000000000 +0200 +++ /var/tmp/diff_new_pack.R20303/_new 2008-05-27 16:09:45.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package linuxrc (Version 3.1.30) +# spec file for package linuxrc (Version 3.1.31) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -17,9 +17,9 @@ Group: System/Boot AutoReqProv: on Summary: SUSE Installation Program -Version: 3.1.30 +Version: 3.1.31 Release: 1 -Source: linuxrc-3.1.30.tar.bz2 +Source: linuxrc-3.1.31.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -54,6 +54,11 @@ %doc linuxrc.html %changelog +* Tue May 27 2008 snwint@suse.de +- try connected network cards first (bnc #394618) +- use dhcpcd --noipv4ll to avoid local link addresses (bnc #394618) +- fix driverupdate loading (bnc #393082) +- load usb modules before starting braille detection * Mon May 26 2008 snwint@suse.de - fix driverupdate loading (part 1) - s390: switch from hwcfg to udev ++++++ linuxrc-3.1.30.tar.bz2 -> linuxrc-3.1.31.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/auto2.c new/linuxrc-3.1.31/auto2.c --- old/linuxrc-3.1.30/auto2.c 2008-05-20 17:13:51.000000000 +0200 +++ new/linuxrc-3.1.31/auto2.c 2008-05-27 15:15:57.000000000 +0200 @@ -35,7 +35,6 @@ static void auto2_user_netconfig(void); static int driver_is_active(hd_t *hd); -static void load_drivers(hd_data_t *hd_data, hd_hw_item_t hw_item); static void auto2_progress(char *pos, char *msg); static void auto2_read_repo_files(url_t *url); static char *auto2_splash_name(void); @@ -300,7 +299,7 @@ printf("Reading info file: %s\n", sl->key); fflush(stdout); url = url_set(sl->key); - err = url_read_file(url, NULL, NULL, "/download/info", NULL, URL_FLAG_PROGRESS); + err = url_read_file_anywhere(url, NULL, NULL, "/download/info", NULL, URL_FLAG_PROGRESS); url_umount(url); url_free(url); if(!err) { @@ -330,10 +329,10 @@ strprintf(&path2, "%s%sdriverupdate", path1, path1[0] == 0 || path1[strlen(path1) - 1] == '/' ? "" : "/"); - err = url_read_file(url, NULL, NULL, file_name, NULL, URL_FLAG_UNZIP + URL_FLAG_NOSHA1 + URL_FLAG_PROGRESS); + err = url_read_file_anywhere(url, NULL, NULL, file_name, NULL, URL_FLAG_UNZIP + URL_FLAG_NOSHA1 + URL_FLAG_PROGRESS); if(err) { str_copy(&url->path, path2); - err = url_read_file(url, NULL, NULL, file_name, NULL, URL_FLAG_UNZIP + URL_FLAG_NOSHA1 + URL_FLAG_PROGRESS); + err = url_read_file_anywhere(url, NULL, NULL, file_name, NULL, URL_FLAG_UNZIP + URL_FLAG_NOSHA1 + URL_FLAG_PROGRESS); } fprintf(stderr, "err2 = %d\n", err); LXRC_WAIT diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/auto2.h new/linuxrc-3.1.31/auto2.h --- old/linuxrc-3.1.30/auto2.h 2008-04-02 12:37:37.000000000 +0200 +++ new/linuxrc-3.1.31/auto2.h 2008-05-27 15:15:52.000000000 +0200 @@ -7,3 +7,4 @@ void pcmcia_socket_startup(void); void auto2_driverupdate(url_t *url); int auto2_extend_root(char *file); +void load_drivers(hd_data_t *hd_data, hd_hw_item_t hw_item); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/Changelog new/linuxrc-3.1.31/Changelog --- old/linuxrc-3.1.30/Changelog 2008-05-26 18:47:14.000000000 +0200 +++ new/linuxrc-3.1.31/Changelog 2008-05-27 15:17:46.000000000 +0200 @@ -1,3 +1,9 @@ +27/5/2008: v3.1.31 + - try connected network cards first (bnc #394618) + - use dhcpcd --noipv4ll to avoid local link addresses (bnc #394618) + - fix driverupdate loading (bnc #393082) + - load usb modules before starting braille detection + 20/5/2008: v3.1.30 - fix driverupdate loading - s390: switch from hwcfg to udev diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/net.c new/linuxrc-3.1.31/net.c --- old/linuxrc-3.1.30/net.c 2008-05-20 17:36:59.000000000 +0200 +++ new/linuxrc-3.1.31/net.c 2008-05-27 11:40:45.000000000 +0200 @@ -1678,7 +1678,7 @@ net_apply_ethtool(config.net.device, config.net.hwaddr); - strcpy(cmd, "dhcpcd"); + strcpy(cmd, "dhcpcd --noipv4ll"); if(config.net.dhcpcd) { sprintf(cmd + strlen(cmd), " %s", config.net.dhcpcd); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/url.c new/linuxrc-3.1.31/url.c --- old/linuxrc-3.1.30/url.c 2008-05-20 17:10:14.000000000 +0200 +++ new/linuxrc-3.1.31/url.c 2008-05-27 15:00:10.000000000 +0200 @@ -62,6 +62,7 @@ static char *url_config_get_path(char *entry); static slist_t *url_config_get_file_list(char *entry); static hd_t *sort_a_bit(hd_t *hd_list); +static int link_detected(hd_t *hd); void url_read(url_data_t *url_data) @@ -1351,12 +1352,6 @@ if((flags & URL_FLAG_PROGRESS)) url_data->progress = url_progress; str_copy(&url_data->label, label); -#if 0 - if(url_data->url->is.network) { - url_setup_device(url_data->url); - } -#endif - fprintf(stderr, "loading %s -> %s\n", url_print(url_data->url, 0), url_data->file_name); url_read(url_data); @@ -1458,6 +1453,99 @@ /* + * Like url_read_file() but setup network if necessary. + * + * return: + * 0: ok + * 1: failed + */ +int url_read_file_anywhere(url_t *url, char *dir, char *src, char *dst, char *label, unsigned flags) +{ + int err, found, matched; + hd_t *hd; + hd_res_t *res; + char *hwaddr; + str_list_t *sl; + char *url_device; + + if(!url || !url->is.network || url->used.device) return url_read_file(url, dir, src, dst, label, flags); + + LXRC_WAIT + + if(config.net.configured) { + str_copy(&url->used.device, config.net.device); + str_copy(&url->used.hwaddr, config.net.hwaddr); + str_copy(&url->used.model, config.net.cardname); + str_copy(&url->used.unique_id, config.net.unique_id); + + LXRC_WAIT + + } + else { + update_device_list(0); + + LXRC_WAIT + + if(config.hd_data) { + url_device = url->device ?: config.netdevice; + + for(found = 0, hd = sort_a_bit(hd_list(config.hd_data, hw_network_ctrl, 0, NULL)); hd; hd = hd->next) { + for(hwaddr = NULL, res = hd->res; res; res = res->next) { + if(res->any.type == res_hwaddr) { + hwaddr = res->hwaddr.addr; + break; + } + } + + if(!hd->unix_dev_name) continue; + + matched = url_device ? match_netdevice(short_dev(hd->unix_dev_name), hwaddr, url_device) : 1; + + for(sl = hd->unix_dev_names; !matched && sl; sl = sl->next) { + matched = match_netdevice(short_dev(sl->str), NULL, url_device); + } + + if(!matched) continue; + + str_copy(&url->used.unique_id, hd->unique_id); + str_copy(&url->used.device, hd->unix_dev_name); + str_copy(&url->used.hwaddr, hwaddr); + str_copy(&url->used.model, hd->model); + + url->is.wlan = hd->is.wlan; + + url_setup_device(url); + + if(!url_read_file(url, dir, src, dst, label, flags)) { + found++; + break; + } + } + + if(!found) { + str_copy(&url->used.device, NULL); + str_copy(&url->used.model, NULL); + str_copy(&url->used.hwaddr, NULL); + str_copy(&url->used.unique_id, NULL); + } + + LXRC_WAIT + + return found ? 0 : 1; + } + } + + if(url->used.device) url_setup_device(url); + + err = url_read_file(url, dir, src, dst, label, flags); + + LXRC_WAIT + + return err; +} + + +/* * Find repository (and mount at 'dir' if possbile). * Mount instsys, too, if it is a relative url. * @@ -2252,7 +2340,19 @@ hd_t *hd_array[hds + 1]; unsigned u = 0; - // put wlan cards last + /* cards with link first */ + + for(hd = hd_list; hd; hd = hd->next) { + if(link_detected(hd)) hd_array[u++] = hd; + } + for(hd = hd_list; hd; hd = hd->next) { + if(!link_detected(hd)) hd_array[u++] = hd; + } + hd_array[hds] = NULL; + for(u = 0; u < hds; u++) hd_array[u]->next = hd_array[u + 1]; + hd_list = hd_array[0]; + + /* wlan cards last */ for(hd = hd_list; hd; hd = hd->next) { if(!hd->is.wlan) hd_array[u++] = hd; @@ -2260,11 +2360,8 @@ for(hd = hd_list; hd; hd = hd->next) { if(hd->is.wlan) hd_array[u++] = hd; } - hd_array[hds] = NULL; - for(u = 0; u < hds; u++) hd_array[u]->next = hd_array[u + 1]; - hd_list = hd_array[0]; } @@ -2272,3 +2369,15 @@ } +int link_detected(hd_t *hd) +{ + hd_res_t *res; + + for(res = hd->res; res; res = res->next) { + if(res->any.type == res_link && res->link.state) return 1; + } + + return 0; +} + + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/url.h new/linuxrc-3.1.31/url.h --- old/linuxrc-3.1.30/url.h 2008-04-02 14:51:06.000000000 +0200 +++ new/linuxrc-3.1.31/url.h 2008-05-27 14:44:42.000000000 +0200 @@ -49,6 +49,7 @@ void url_umount(url_t *url); int url_mount(url_t *url, char *dir, int (*test_func)(url_t *)); int url_read_file(url_t *url, char *dir, char *src, char *dst, char *label, unsigned flags); +int url_read_file_anywhere(url_t *url, char *dir, char *src, char *dst, char *label, unsigned flags); int url_find_repo(url_t *url, char *dir); int url_find_instsys(url_t *url, char *dir); char *url_print(url_t *url, int format); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/util.c new/linuxrc-3.1.31/util.c --- old/linuxrc-3.1.30/util.c 2008-05-09 14:41:00.000000000 +0200 +++ new/linuxrc-3.1.31/util.c 2008-05-27 15:39:06.000000000 +0200 @@ -4594,11 +4594,24 @@ char *cmd = NULL; FILE *f; + hd_data->debug = -1; + + printf("Activating usb devices...\n"); + fprintf(stderr, "Activating usb devices...\n"); + + /* braille dev might need usb modules */ + util_load_usb(); + + sleep(config.usbwait + 1); + + hd_list(hd_data, hw_usb, 1, NULL); + load_drivers(hd_data, hw_usb); + + sleep(config.usbwait + 1); + printf("detecting braille devices...\n"); fprintf(stderr, "detecting braille devices...\n"); - hd_data->debug = -1; - hd = hd_list(hd_data, hw_braille, 1, NULL); if(config.debug) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/linuxrc-3.1.30/VERSION new/linuxrc-3.1.31/VERSION --- old/linuxrc-3.1.30/VERSION 2008-05-20 16:35:53.000000000 +0200 +++ new/linuxrc-3.1.31/VERSION 2008-05-27 11:32:18.000000000 +0200 @@ -1 +1 @@ -3.1.30 +3.1.31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org