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; }
