Hello community, here is the log from the commit of package mksusecd for openSUSE:Factory checked in at 2019-04-12 09:15:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mksusecd (Old) and /work/SRC/openSUSE:Factory/.mksusecd.new.27019 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mksusecd" Fri Apr 12 09:15:49 2019 rev:56 rq:693265 version:1.68 Changes: -------- --- /work/SRC/openSUSE:Factory/mksusecd/mksusecd.changes 2018-11-30 16:32:25.721359796 +0100 +++ /work/SRC/openSUSE:Factory/.mksusecd.new.27019/mksusecd.changes 2019-04-12 09:15:53.477731773 +0200 @@ -0,0 +1,8 @@ +-------------------------------------------------------------------- +Thu Apr 11 13:53:46 UTC 2019 - snw...@suse.de + +- merge gh#openSUSE/mksusecd#41 +- add --enable-repos option +- update documentation +- 1.68 + Old: ---- mksusecd-1.67.tar.xz New: ---- mksusecd-1.68.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mksusecd.spec ++++++ --- /var/tmp/diff_new_pack.CFAdJs/_old 2019-04-12 09:15:54.153732182 +0200 +++ /var/tmp/diff_new_pack.CFAdJs/_new 2019-04-12 09:15:54.157732184 +0200 @@ -18,7 +18,7 @@ Name: mksusecd -Version: 1.67 +Version: 1.68 Release: 0 Summary: Tool to create SUSE Linux installation ISOs License: GPL-3.0+ ++++++ mksusecd-1.67.tar.xz -> mksusecd-1.68.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-1.67/HOWTO.md new/mksusecd-1.68/HOWTO.md --- old/mksusecd-1.67/HOWTO.md 2018-11-27 16:07:05.000000000 +0100 +++ new/mksusecd-1.68/HOWTO.md 2019-04-11 15:53:46.000000000 +0200 @@ -99,18 +99,45 @@ -## SLES 15 and later: modules and repositories +## SLES 15 and later: modules (extensions) and repositories -SLES 15 supports so-called 'modules' (not to be confused with kernel modules) which are basically repositories for different product components. +SLES 15 supports so-called 'modules' or 'extensions' (not to be confused with kernel modules) +for different product components. + +Technically they look like software repositories and are treated similar to add-ons. `mksusecd` lets you create a single medium containing the parts you need. ```sh -mksusecd --list-repos suse.iso extra.iso +mksusecd --list-repos sle-installer.iso sle-packages.iso ``` -shows the modules that are on the medium. Pick the modules you need and do, for example: +shows the modules that are on the media. Pick the modules you need and do, for example: ```sh -mksusecd --create foo.iso --include-repos SLES15,Basesystem-Module,HPC-Module suse.iso extra.iso +mksusecd --create foo.iso \ + --include-repos Basesystem-Module,Desktop-Applications-Module \ + sle-installer.iso sle-packages.iso ``` + +The created image then has to be added as add-on during the installation workflow. + +You can skip that extra step using the `--enable-repos` option. Like: + +```sh +mksusecd --create foo.iso \ + --enable-repos auto --include-repos Basesystem-Module,Desktop-Applications-Module \ + sle-installer.iso sle-packages.iso +``` + +In that case a file `add_on_products.xml` is added to the medium that activates all +modules automatically. + +Alternatively, use `--enable-repos ask` to have the installer present a dialog that lets you manually pick +the modules you need. + +> Note +> +> If you are doing an installation with +> [AutoYaST](https://doc.opensuse.org/projects/autoyast) you do not have to mention these modules +> separately in the AutoYaST control file when `--enable-repos` is used. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-1.67/VERSION new/mksusecd-1.68/VERSION --- old/mksusecd-1.67/VERSION 2018-11-27 16:07:05.000000000 +0100 +++ new/mksusecd-1.68/VERSION 2019-04-11 15:53:46.000000000 +0200 @@ -1 +1 @@ -1.67 +1.68 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-1.67/changelog new/mksusecd-1.68/changelog --- old/mksusecd-1.67/changelog 2018-11-27 16:07:05.000000000 +0100 +++ new/mksusecd-1.68/changelog 2019-04-11 15:53:46.000000000 +0200 @@ -1,3 +1,8 @@ +2019-04-11: 1.68 + - merge gh#openSUSE/mksusecd#41 + - add --enable-repos option + - update documentation + 2018-11-27: 1.67 - merge gh#openSUSE/mksusecd#40 - support aarch64 media diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-1.67/mksusecd new/mksusecd-1.68/mksusecd --- old/mksusecd-1.67/mksusecd 2018-11-27 16:07:05.000000000 +0100 +++ new/mksusecd-1.68/mksusecd 2019-04-11 15:53:46.000000000 +0200 @@ -255,6 +255,7 @@ my $opt_merge_repos = 1; my $opt_list_repos; my $opt_include_repos; +my $opt_enable_repos; my $opt_crypto; my $opt_crypto_fs = 'ext4'; my $opt_crypto_password; @@ -329,6 +330,7 @@ 'merge-repos' => \$opt_merge_repos, 'list-repos' => \$opt_list_repos, 'include-repos=s' => \$opt_include_repos, + 'enable-repos=s' => \$opt_enable_repos, 'save-temp' => \$opt_save_temp, 'verbose|v' => sub { $opt_verbose++ }, 'version' => sub { print "$VERSION\n"; exit 0 }, @@ -338,6 +340,7 @@ usage 1 unless $opt_create || $opt_list_repos; usage 1 if $opt_hybrid_fs !~ '^(|iso|fat)$'; usage 1 if defined($opt_digest) && $opt_digest !~ '^(md5|sha1|sha224|sha256|sha384|sha512)$'; +usage 1 if defined($opt_enable_repos) && $opt_enable_repos !~ /^(0|1|no|yes|auto|ask)$/i; die "no password\n" if $opt_crypto && $opt_crypto_password eq ""; @@ -711,6 +714,10 @@ --no-merge-repos Skip the special treatment of repositories and just merge all SOURCES. --include-repos LIST Comma-separated list of repository names to include in the final image. Use --list-repos to see valid values. (Default: include all repos.) + --enable-repos WHEN If WHEN is set to 'auto' or 'yes' the included repositories are + automatically added. If set to 'ask' the user may interactively deselect + repositories. The default is not to add any repository. Instead, the user + is expected to add the medium as 'add-on' during the installation. --list-repos Just list all repositories and exit. --grub2 Use grub2 for El-Torito legacy setup (for debugging). --isolinux Use isolinux for El-Torito legacy setup (for debugging). @@ -4031,7 +4038,7 @@ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# new_products_xml(old_xml, dir, name, alias, prio) +# new_products_xml(old_xml, dir, name, alias, prio, ask_user) # # Add a product to an existing add_on_products.xml or create a new one. # @@ -4040,10 +4047,12 @@ # sub new_products_xml { - my ($old_xml, $dir, $name, $alias, $prio) = @_; + my ($old_xml, $dir, $name, $alias, $prio, $ask_user) = @_; my $new_xml; my @x; + $ask_user = $ask_user ? 'true' : 'false'; + @x = split /^/m, $old_xml || <<'# template'; <?xml version="1.0"?> <add_on_products xmlns="http://www.suse.com/1.0/yast2ns" @@ -4058,7 +4067,7 @@ <name>$name</name> <url>relurl://$dir?alias=$alias</url> <priority config:type="integer">$prio</priority> - <ask_user config:type="boolean">false</ask_user> + <ask_user config:type="boolean">$ask_user</ask_user> <selected config:type="boolean">true</selected> <check_name config:type="boolean">false</check_name> </product_item> @@ -4359,6 +4368,17 @@ chmod 0644, "$tmp_new/media.1/products"; } + # create/update add_on_products.xml + my $products_xml; + my $products_xml_updated; + + my $f = fname "add_on_products.xml"; + if($f && open my $fh, "<", $f) { + local $/; + $products_xml = <$fh>; + close $fh; + } + open my $prod_fd, ">>$tmp_new/media.1/products" or die "media.1/products: $!\n"; # ... and append any products we found above @@ -4371,6 +4391,20 @@ for my $d (@{$_->{dirs}}) { push @{$mkisofs->{grafts}}, "$_->{repo_dir}/$d=$_->{base_dir}/$d"; } + + if($opt_enable_repos =~ /^(1|yes|auto|ask)$/i) { + my $ask_user = $opt_enable_repos =~ /^ask$/i; + $products_xml = new_products_xml( + $products_xml, "$_->{repo_dir}", $_->{repo_dir}, $_->{repo_dir}, + $opt_addon_prio, $ask_user + ); + $products_xml_updated = 1; + } + } + + if($products_xml_updated && open my $fh, ">", "$tmp_new/add_on_products.xml") { + print $fh $products_xml; + close $fh; } close $prod_fd;