Hello community,

here is the log from the commit of package linuxrc for openSUSE:Factory checked 
in at 2020-05-02 22:15:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linuxrc (Old)
 and      /work/SRC/openSUSE:Factory/.linuxrc.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "linuxrc"

Sat May  2 22:15:45 2020 rev:283 rq:799290 version:7.0.15

Changes:
--------
--- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes  2020-04-11 
23:45:51.331057584 +0200
+++ /work/SRC/openSUSE:Factory/.linuxrc.new.2738/linuxrc.changes        
2020-05-02 22:16:01.284370632 +0200
@@ -1,0 +2,8 @@
+Thu Apr 30 15:24:12 UTC 2020 - [email protected]
+
+- merge gh#openSUSE/linuxrc#222
+- take care of url query parameters (bsc#1169492)
+- add autoyast.passurl option to linuxrc
+- 7.0.15
+
+--------------------------------------------------------------------

Old:
----
  linuxrc-7.0.14.tar.xz

New:
----
  linuxrc-7.0.15.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.vqwNDW/_old  2020-05-02 22:16:02.664373523 +0200
+++ /var/tmp/diff_new_pack.vqwNDW/_new  2020-05-02 22:16:02.668373531 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           linuxrc
-Version:        7.0.14
+Version:        7.0.15
 Release:        0
 Summary:        SUSE Installation Program
 License:        GPL-3.0+

++++++ linuxrc-7.0.14.tar.xz -> linuxrc-7.0.15.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/VERSION new/linuxrc-7.0.15/VERSION
--- old/linuxrc-7.0.14/VERSION  2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/VERSION  2020-04-30 17:24:12.000000000 +0200
@@ -1 +1 @@
-7.0.14
+7.0.15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/changelog new/linuxrc-7.0.15/changelog
--- old/linuxrc-7.0.14/changelog        2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/changelog        2020-04-30 17:24:12.000000000 +0200
@@ -1,3 +1,8 @@
+2020-04-30:    7.0.15
+       - merge gh#openSUSE/linuxrc#222
+       - take care of url query parameters (bsc#1169492)
+       - add autoyast.passurl option to linuxrc
+
 2020-04-09:    7.0.14
        - merge gh#openSUSE/linuxrc#218
        - Update doc for hostname in different SLE versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/file.c new/linuxrc-7.0.15/file.c
--- old/linuxrc-7.0.14/file.c   2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/file.c   2020-04-30 17:24:12.000000000 +0200
@@ -120,6 +120,7 @@
   { key_autoyast,       "AY",             kf_cfg + kf_cmd_early          },
   { key_autoyast_parse, "AutoYaSTParse",  kf_cfg + kf_cmd_early          },
   { key_autoyast_parse, "AYParse",        kf_cfg + kf_cmd_early          },
+  { key_autoyast_passurl, "AutoYaSTPassURL",  kf_cfg + kf_cmd_early      },
   { key_autoyast2,      "AutoYaST2",      kf_cfg + kf_cmd_early          },
   { key_linuxrc,        "linuxrc",        kf_cfg + kf_cmd_early          },
   { key_forceinsmod,    "ForceInsmod",    kf_cfg + kf_cmd                },
@@ -855,6 +856,10 @@
         if(f->is.numeric) config.autoyast_parse = f->nvalue;
         break;
 
+      case key_autoyast_passurl:
+        if(f->is.numeric) config.autoyast_passurl = f->nvalue;
+        break;
+
       case key_info:
         if(*f->value) slist_append_str(&config.info.file, f->value);
         break;
@@ -1950,7 +1955,7 @@
   if(config.url.autoyast) {
     log_info("final autoyast url: %s\n", url_print(config.url.autoyast, 0));
     file_write_str(f, key_autoyast,
-      config.autoyast_parse ? url_print(config.url.autoyast, 5) : 
config.url.autoyast->str
+      config.autoyast_parse && !config.autoyast_passurl ? 
url_print(config.url.autoyast, 5) : config.url.autoyast->str
     );
   }
   /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/file.h new/linuxrc-7.0.15/file.h
--- old/linuxrc-7.0.14/file.h   2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/file.h   2020-04-30 17:24:12.000000000 +0200
@@ -57,7 +57,7 @@
   key_nanny, key_vlanid,
   key_sshkey, key_systemboot, key_sethostname, key_debugshell, key_self_update,
   key_ibft_devices, key_linuxrc_core, key_norepo, key_auto_assembly, 
key_autoyast_parse,
-  key_device_auto_config
+  key_device_auto_config, key_autoyast_passurl
 } file_key_t;
 
 typedef enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/global.h new/linuxrc-7.0.15/global.h
--- old/linuxrc-7.0.14/global.h 2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/global.h 2020-04-30 17:24:12.000000000 +0200
@@ -450,6 +450,7 @@
   unsigned norepo:1;            /**< disable repo location check, expect YaST 
*/
   unsigned auto_assembly:1;    /**< enable MD/RAID auto-assembly */
   unsigned autoyast_parse:1;   /**< analyse autoyast parameter */
+  unsigned autoyast_passurl:1; /**< pass autoyast url unmodified on to yast */
   unsigned device_auto_config:2;       /**< run s390 device auto-config (cf. 
bsc#1168036) */
   unsigned device_auto_config_done:1;  /**< set after s390 device auto-config 
has been run */
   struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-7.0.14/url.c new/linuxrc-7.0.15/url.c
--- old/linuxrc-7.0.14/url.c    2020-04-09 17:20:00.000000000 +0200
+++ new/linuxrc-7.0.15/url.c    2020-04-30 17:24:12.000000000 +0200
@@ -1,4 +1,4 @@
-#define _GNU_SOURCE    /* strnlen, getline, strcasestr, strverscmp */
+#define _GNU_SOURCE    /* strnlen, getline, strcasestr, strverscmp, fnmatch */
 
 /*
 
@@ -17,6 +17,7 @@
 #include <fcntl.h>
 #include <signal.h>
 #include <dirent.h>
+#include <fnmatch.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/mount.h>
@@ -91,6 +92,7 @@
 static int is_rpm_signed(char *file);
 static int is_signed(char *file, int check);
 static unsigned url_scheme_attr(instmode_t scheme, char *attr_name);
+static void url_add_query_string(char **buf, int n, url_t *url);
 
 // mapping of URL schemes to internal constants
 static struct {
@@ -837,6 +839,33 @@
 
 
 /*
+ * (Re-)append arbitrary query parameters to url.
+ *
+ *  buf: buffer pointer, will be updated as needed
+ *    n: parameter position (starting at 0)
+ *  url: url to process
+ */
+void url_add_query_string(char **buf, int n, url_t *url)
+{
+  slist_t *sl;
+
+  if(
+    url->scheme != inst_ftp &&
+    url->scheme != inst_tftp &&
+    url->scheme != inst_http &&
+    url->scheme != inst_https
+  ) return;
+
+  for(sl = url->query; sl; sl = sl->next) {
+    // skip parameters handled by linuxrc
+    
if(fnmatch("@(device|instsys|list|type|all|quiet|label|service|descr|proxy*)", 
sl->key, FNM_EXTMATCH)) {
+      strprintf(buf, "%s%c%s=%s", *buf, n++ ? '&' : '?', sl->key, sl->value);
+    }
+  }
+}
+
+
+/*
  * Print url to string.
  *
  * scheme://domain;user:password@server:port/path?query
@@ -914,6 +943,8 @@
       strprintf(&buf, "%s%clist=%s", buf, q++ ? '&' : '?', s = slist_join(",", 
url->file_list));
       free(s);
     }
+
+    url_add_query_string(&buf, q, url);
   }
 
   if(format == 0) {
@@ -1053,6 +1084,8 @@
     if(config.url.proxy->password) strprintf(&buf, "%s%cproxypass=%s", buf, 
q++ ? '&' : '?', config.url.proxy->password);
   }
 
+  url_add_query_string(&buf, q, url);
+
   if(url->is.file && file) {
     strprintf(&buf, "iso:/?iso=%s&url=%s", file, buf);
   }
@@ -1163,6 +1196,8 @@
 
   str_copy(&path, NULL);
 
+  url_add_query_string(&buf, 0, url);
+
   return buf;
 }
 


Reply via email to