Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package linuxrc for openSUSE:Factory checked in at 2022-03-18 16:41:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/linuxrc (Old) and /work/SRC/openSUSE:Factory/.linuxrc.new.25692 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linuxrc" Fri Mar 18 16:41:34 2022 rev:305 rq:962186 version:8.9 Changes: -------- --- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes 2022-01-22 08:18:26.838797359 +0100 +++ /work/SRC/openSUSE:Factory/.linuxrc.new.25692/linuxrc.changes 2022-03-18 16:41:42.065162636 +0100 @@ -1,0 +2,15 @@ +Wed Mar 16 13:08:21 UTC 2022 - wfe...@opensuse.org + +- merge gh#openSUSE/linuxrc#286 +- do not leave repository mounted when starting yast (bsc#1196061) +- improve url logging function +- handle umount errors better +- 8.9 + +-------------------------------------------------------------------- +Wed Mar 16 13:08:10 UTC 2022 - wfe...@opensuse.org + +- merge gh#openSUSE/linuxrc#285 +- check also raid devices for install repo (bsc#1196061) + +-------------------------------------------------------------------- Old: ---- linuxrc-8.8.tar.xz New: ---- linuxrc-8.9.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linuxrc.spec ++++++ --- /var/tmp/diff_new_pack.mtyTRz/_old 2022-03-18 16:41:42.573163000 +0100 +++ /var/tmp/diff_new_pack.mtyTRz/_new 2022-03-18 16:41:42.577163003 +0100 @@ -17,7 +17,7 @@ Name: linuxrc -Version: 8.8 +Version: 8.9 Release: 0 Summary: SUSE Installation Program License: GPL-3.0+ ++++++ linuxrc-8.8.tar.xz -> linuxrc-8.9.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/VERSION new/linuxrc-8.9/VERSION --- old/linuxrc-8.8/VERSION 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/VERSION 2022-03-16 14:08:21.000000000 +0100 @@ -1 +1 @@ -8.8 +8.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/auto2.c new/linuxrc-8.9/auto2.c --- old/linuxrc-8.8/auto2.c 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/auto2.c 2022-03-16 14:08:21.000000000 +0100 @@ -1116,10 +1116,22 @@ err = url_find_instsys(config.url.instsys, config.mountpoint.instsys); } - sync(); - - url_umount(config.url.install); - if(err) url_umount(config.url.instsys); + /* retry a few times to umount in case the mountpoint is still busy */ + int umount_err = 0; + int umount_try_count = 0; + do { + sync(); + umount_err = url_umount(config.url.install); + if(err) umount_err |= url_umount(config.url.instsys); + if(umount_err && umount_try_count++ < 5) { + log_info("url_umount failed; going to re-try #%d\n", ++umount_try_count); + sleep(1); + } + else { + break; + } + } + while(1); if(config.mountpoint.instdata) rmdir(config.mountpoint.instdata); if(config.mountpoint.instsys) rmdir(config.mountpoint.instsys); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/changelog new/linuxrc-8.9/changelog --- old/linuxrc-8.8/changelog 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/changelog 2022-03-16 14:08:21.000000000 +0100 @@ -1,3 +1,11 @@ +2022-03-16: 8.9 + - merge gh#openSUSE/linuxrc#285 + - check also raid devices for install repo (bsc#1196061) + - merge gh#openSUSE/linuxrc#286 + - do not leave repository mounted when starting yast (bsc#1196061) + - improve url logging function + - handle umount errors better + 2022-01-21: 8.8 - merge gh#openSUSE/linuxrc#282 - enable display dialog for all architectures diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/file.c new/linuxrc-8.9/file.c --- old/linuxrc-8.8/file.c 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/file.c 2022-03-16 14:08:21.000000000 +0100 @@ -2014,7 +2014,9 @@ file_write_str(f, key_console, config.serial); - file_write_num(f, key_sourcemounted, url->mount ? 1 : 0); + // don't leave anything mounted unless we're low in memory and run yast + // directly from the install medium + file_write_num(f, key_sourcemounted, url->mount && !config.download.instsys ? 1 : 0); fprintf(f, "RepoURL: %s\n", url_print(url, 3)); if(!config.norepo) fprintf(f, "ZyppRepoURL: %s\n", url_print(url, 4)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/install.c new/linuxrc-8.9/install.c --- old/linuxrc-8.8/install.c 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/install.c 2022-03-16 14:08:21.000000000 +0100 @@ -1342,6 +1342,21 @@ return err; } + log_debug("= config.url.install ="); + url_log(config.url.install); + log_debug("= config.url.instsys ="); + url_log(config.url.instsys); + + // we can't unmount if yast runs directly from the install medium + if(config.download.instsys) { + log_debug("unmounting installation medium"); + url_umount(config.url.instsys); + url_umount(config.url.install); + } + else { + log_debug("insufficient memory - unmounting installation medium not possible"); + } + if(!config.test) { if(util_check_exist("/sbin/update")) lxrc_run("/sbin/update"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/url.c new/linuxrc-8.9/url.c --- old/linuxrc-8.8/url.c 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/url.c 2022-03-16 14:08:21.000000000 +0100 @@ -661,14 +661,17 @@ } } - log_debug("url = %s\n", url->str); - url_replace_vars_with_backup(&url->server, &url->orig.server); url_replace_vars_with_backup(&url->share, &url->orig.share); url_replace_vars_with_backup(&url->path, &url->orig.path); url_replace_vars_with_backup(&url->instsys, &url->orig.instsys); - if(config.debug >= 2) url_log(url); + if(config.debug >= 2) { + url_log(url); + } + else { + log_debug("url = %s\n", url->str); + } return url; } @@ -682,17 +685,20 @@ int i; slist_t *sl; + if(!url) return; + + log_debug("url = %s\n", url->str); + log_debug( " scheme = %s (%d), orig scheme = %s (%d)", url_scheme2name(url->scheme), url->scheme, url_scheme2name(url->orig.scheme), url->orig.scheme ); - if(url->server) log_debug(", server = \"%s\"", url->server); - if(url->orig.server) log_debug(", server (orig) = \"%s\"", url->orig.server); - if(url->port) log_debug(", port = %u", url->port); - if(url->path) log_debug(", path = \"%s\"", url->path); - if(url->orig.path) log_debug(", path (orig) = \"%s\"", url->orig.path); - log_debug("\n"); + if(url->server) log_debug(" server = \"%s\"", url->server); + if(url->orig.server) log_debug(" server (orig) = \"%s\"", url->orig.server); + if(url->port) log_debug(" port = %u", url->port); + if(url->path) log_debug(" path = \"%s\"", url->path); + if(url->orig.path) log_debug(" path (orig) = \"%s\"", url->orig.path); if(url->user || url->password) { i = 0; @@ -702,12 +708,10 @@ } if(url->share || url->domain || url->device) { - i = 0; - if(url->share) log_debug("%c share = \"%s\"", i++ ? ',' : ' ', url->share); - if(url->orig.share) log_debug("%c share (orig) = \"%s\"", i++ ? ',' : ' ', url->orig.share); - if(url->domain) log_debug("%c domain = \"%s\"", i++ ? ',' : ' ', url->domain); - if(url->device) log_debug("%c device = \"%s\"", i++ ? ',' : ' ', url->device); - log_debug("\n"); + if(url->share) log_debug(" share = \"%s\"", url->share); + if(url->orig.share) log_debug(" share (orig) = \"%s\"", url->orig.share); + if(url->domain) log_debug(" domain = \"%s\"", url->domain); + if(url->device) log_debug(" device = \"%s\"", url->device); } log_debug( @@ -726,8 +730,10 @@ } } - log_debug("url (zypp format) = %s\n", url_print(url, 4)); - log_debug("url (ay format) = %s\n", url_print(url, 5)); + log_debug(" mount = %s, tmp_mount = %s\n", url->mount, url->tmp_mount); + + log_debug(" url (zypp format) = %s\n", url_print(url, 4)); + log_debug(" url (ay format) = %s\n", url_print(url, 5)); } @@ -1487,22 +1493,31 @@ /* * Unmounts volumes used by 'url'. + * + * Return error code (0 if ok). */ -void url_umount(url_t *url) +int url_umount(url_t *url) { - if(!url) return; - - // FIXME: this is wrong! + int err = 0; + if(!url) return 0; if(url->mount && util_umount(url->mount)) { log_debug("%s: url umount failed\n", url->mount); + err = 1; + } + else { + str_copy(&url->mount, NULL); } - str_copy(&url->mount, NULL); if(url->tmp_mount && util_umount(url->tmp_mount)) { log_debug("%s: url umount failed\n", url->tmp_mount); + err = 1; } - str_copy(&url->tmp_mount, NULL); + else { + str_copy(&url->tmp_mount, NULL); + } + + return err; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/url.h new/linuxrc-8.9/url.h --- old/linuxrc-8.8/url.h 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/url.h 2022-03-16 14:08:21.000000000 +0100 @@ -56,7 +56,7 @@ void url_cleanup(void); url_data_t *url_data_new(void); void url_data_free(url_data_t *url_data); -void url_umount(url_t *url); +int 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); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-8.8/util.c new/linuxrc-8.9/util.c --- old/linuxrc-8.8/util.c 2022-01-21 13:48:08.000000000 +0100 +++ new/linuxrc-8.9/util.c 2022-03-16 14:08:21.000000000 +0100 @@ -4045,6 +4045,9 @@ config.hd_data = calloc(1, sizeof *config.hd_data); + // consider also raid devices + config.hd_data->flags.list_md = 1; + fix_device_names(hd_list2(config.hd_data, hw_items, 1)); // update wlan interface list