Hello community, here is the log from the commit of package linuxrc for openSUSE:Factory checked in at 2019-07-23 22:28:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/linuxrc (Old) and /work/SRC/openSUSE:Factory/.linuxrc.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linuxrc" Tue Jul 23 22:28:21 2019 rev:271 rq:716803 version:6.0.13 Changes: -------- --- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes 2019-06-12 13:04:41.685224031 +0200 +++ /work/SRC/openSUSE:Factory/.linuxrc.new.4126/linuxrc.changes 2019-07-23 22:28:22.599069761 +0200 @@ -1,0 +2,17 @@ +Fri Jul 19 08:47:42 UTC 2019 - [email protected] + +- merge gh#openSUSE/linuxrc#192 +- Added support for a multi-repository installation medium + (bsc#1141889) +- Travis CI: Use the Docker image from OBS +- Updated linuxrc_repo.md documentation +- 6.0.13 + +-------------------------------------------------------------------- +Wed Jul 17 13:56:13 UTC 2019 - [email protected] + +- merge gh#openSUSE/linuxrc#191 +- Disable MD/RAID auto-assembly by default (bsc#1132688) +- 6.0.12 + +-------------------------------------------------------------------- Old: ---- linuxrc-6.0.11.tar.xz New: ---- linuxrc-6.0.13.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ linuxrc.spec ++++++ --- /var/tmp/diff_new_pack.xObA9a/_old 2019-07-23 22:28:23.091069690 +0200 +++ /var/tmp/diff_new_pack.xObA9a/_new 2019-07-23 22:28:23.091069690 +0200 @@ -17,7 +17,7 @@ Name: linuxrc -Version: 6.0.11 +Version: 6.0.13 Release: 0 Summary: SUSE Installation Program License: GPL-3.0+ ++++++ linuxrc-6.0.11.tar.xz -> linuxrc-6.0.13.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/Dockerfile new/linuxrc-6.0.13/Dockerfile --- old/linuxrc-6.0.11/Dockerfile 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/Dockerfile 2019-07-19 10:47:42.000000000 +0200 @@ -1,4 +1,4 @@ -FROM yastdevel/cpp +FROM registry.opensuse.org/yast/head/containers/yast-cpp:latest RUN zypper --non-interactive in --no-recommends \ e2fsprogs-devel \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/VERSION new/linuxrc-6.0.13/VERSION --- old/linuxrc-6.0.11/VERSION 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/VERSION 2019-07-19 10:47:42.000000000 +0200 @@ -1 +1 @@ -6.0.11 +6.0.13 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/changelog new/linuxrc-6.0.13/changelog --- old/linuxrc-6.0.11/changelog 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/changelog 2019-07-19 10:47:42.000000000 +0200 @@ -1,3 +1,14 @@ +2019-07-19: 6.0.13 + - merge gh#openSUSE/linuxrc#192 + - Added support for a multi-repository installation medium + (bsc#1141889) + - Travis CI: Use the Docker image from OBS + - Updated linuxrc_repo.md documentation + +2019-07-17: 6.0.12 + - merge gh#openSUSE/linuxrc#191 + - Disable MD/RAID auto-assembly by default (bsc#1132688) + 2019-05-29: 6.0.11 - merge gh#openSUSE/linuxrc#189 - iterate through device list in sorted order (bsc#1058039) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/linuxrc.c new/linuxrc-6.0.13/linuxrc.c --- old/linuxrc-6.0.11/linuxrc.c 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/linuxrc.c 2019-07-19 10:47:42.000000000 +0200 @@ -800,7 +800,7 @@ config.udev_mods = 1; config.devtmpfs = 1; config.kexec = 2; /* kexec if necessary, with user dialog */ - config.auto_assembly = 1; /* default to allow MD/RAID auto-assembly for now (bsc#1132688) */ + config.auto_assembly = 0; /* default to disable MD/RAID auto-assembly (bsc#1132688) */ // defaults for self-update feature config.self_update_url = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/linuxrc_repo.md new/linuxrc-6.0.13/linuxrc_repo.md --- old/linuxrc-6.0.11/linuxrc_repo.md 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/linuxrc_repo.md 2019-07-19 10:47:42.000000000 +0200 @@ -1,9 +1,12 @@ # specifying installation repositories in linuxrc -## 1. regular install media +## 1. SUSE tags install media *(repo meta data are in /suse/setup/descr/)* +:warning: *Note: This is obsolete since SLE15/openSUSE Leap 15, the newer +products use the repomd repositories on the installation media, see below.* + linuxrc identifies this repo by checking for a file '/content' in the installation repository. The file must have a valid signature ('/content.asc'). linuxrc parses this file for sha* digests (the `HASH` lines). @@ -58,26 +61,6 @@ the installation repository. This file's signature is not checked (linuxrc does not parse this file). -As there's normally no installation system included in such a repository, -you'll have to pass its location using the `instsys` option. For example, -the openSUSE Tumbleweed repo has repomd data. - -Normally you would use: - -```sh -install=http://download.opensuse.org/tumbleweed/repo/oss -``` - -but you can also use repomd: - -```sh -install=http://download.opensuse.org/tumbleweed/repo/oss/suse instsys=../boot/x86_64/root -``` - -Note that unless you specify also `insecure=1` in the latter case, you'll -get warnings about linuxrc not being able to verify the downloaded images. - -Lets see how to avoid this. ### 2.1. getting file digests @@ -100,7 +83,28 @@ find . | cpio -o -H newc | xz --check=crc32 -c >>initrd_on_boot_medium ``` -## 3. components linuxrc reads +## 3. Multi-repository medium + +A multi-repository medium contains several repositories in subdirectories +indexed in the `/media.1/products` file. Each subdirectory contains +a separate repository with own metadata. + +In that case linuxrc saves the URL path to the root directory into +the `ZyppRepoURL` value in `/etc/install.inf` file. YaST will detect +multiple subdirectories and handle that in a special way. + + +## 4. No installation repository + +In some special cases (PXE boot) it is possible to start the installation without +any installation repository. In that case YaST uses an integrated installation +repository present in the inst-sys. + +Use the `no_repo=1` boot option to activate this mode. In this case linuxrc does +not save the `ZyppRepoURL` value into the `/etc/install.inf` file. + + +## 5. components linuxrc reads linuxrc reads files from two distinct locations: @@ -113,7 +117,7 @@ See the previous sections for examples. -### 3.1. files read from inst-sys location +### 5.1. files read from inst-sys location linuxrc replaces the last path component from the location url with `config` to get the url of a config file and tries to read it. @@ -171,7 +175,7 @@ For the Korean locale we'll need also a special font rpm (`un-fonts.rpm`) but only `UnDotum.ttf` from it. -### 3.2. files read from repo location +### 5.2. files read from repo location In addition to the files described in sections 1. and 2., linuxrc will try to read these files (and store them in `/`): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.11/url.c new/linuxrc-6.0.13/url.c --- old/linuxrc-6.0.11/url.c 2019-05-29 16:10:51.000000000 +0200 +++ new/linuxrc-6.0.13/url.c 2019-07-19 10:47:42.000000000 +0200 @@ -2176,8 +2176,8 @@ if(!config.keepinstsysconfig) { config.digests.failed = 0; - // Check for '/content' resp. '/repodata/repomd.xml' as indication we - // have a SUSE repo. + // Check for '/content' (SUSE tags repo), '/repodata/repomd.xml' (RPM-MD repo) + // or '/media.1/products' (multi-repository medium) as indication we have a SUSE repo. // The file must be validly signed (because we parse it). // zenworks has a different approach ('settings.txt') - they don't have a repo. @@ -2203,9 +2203,20 @@ URL_FLAG_NODIGEST + (config.secure ? URL_FLAG_CHECK_SIG : 0) ); - if(read_failed) return 0; - - file_parse_repomd("/repomd.xml"); + if(read_failed) { + // no repomd.xml, check if it is a multi-repository medium, + // do not check the signatures, that file is not signed + read_failed = url_read_file( + url, NULL, "/media.1/products", "/products", NULL, URL_FLAG_NODIGEST + ); + + if(read_failed) + return 0; + else + log_info("found a multi product medium\n"); + } + else + file_parse_repomd("/repomd.xml"); } // download CHECKSUMS ...
