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

Reply via email to