Hello community, here is the log from the commit of package mkdud for openSUSE:Factory checked in at 2019-09-25 08:20:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mkdud (Old) and /work/SRC/openSUSE:Factory/.mkdud.new.7948 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mkdud" Wed Sep 25 08:20:48 2019 rev:29 rq:732741 version:1.47 Changes: -------- --- /work/SRC/openSUSE:Factory/mkdud/mkdud.changes 2019-04-05 12:06:36.362571790 +0200 +++ /work/SRC/openSUSE:Factory/.mkdud.new.7948/mkdud.changes 2019-09-25 08:20:50.630445985 +0200 @@ -1,0 +2,14 @@ +Mon Sep 23 13:12:48 UTC 2019 - [email protected] + +- merge gh#openSUSE/mkdud#31 +- adjust spec file to build on SLE-11 +- 1.47 + +-------------------------------------------------------------------- +Mon Sep 23 11:50:34 UTC 2019 - [email protected] + +- merge gh#openSUSE/mkdud#28 +- start moving doc to asciidoc; add proper man page +- 1.46 + +-------------------------------------------------------------------- Old: ---- mkdud-1.45.tar.xz New: ---- mkdud-1.47.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mkdud.spec ++++++ --- /var/tmp/diff_new_pack.BW0Ad5/_old 2019-09-25 08:20:51.046445927 +0200 +++ /var/tmp/diff_new_pack.BW0Ad5/_new 2019-09-25 08:20:51.046445927 +0200 @@ -18,11 +18,19 @@ Name: mkdud BuildRequires: xz +%if 0%?suse_version >= 1500 || 0%?sle_version >= 120400 +BuildRequires: rubygem(asciidoctor) +%else +BuildRequires: asciidoc +%if 0%?suse_version >= 1310 || 0%?sle_version >= 120000 +BuildRequires: libxslt-tools +%endif +%endif Requires: gpg2 Summary: Create driver update from rpms -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Hardware/Other -Version: 1.45 +Version: 1.47 Release: 0 Source: %{name}-%{version}.tar.xz Url: https://github.com/openSUSE/mkdud @@ -42,7 +50,8 @@ %build %install - make install DESTDIR=%{buildroot} + %make_install + install -D -m 644 mkdud.1 %{buildroot}%{_mandir}/man1/mkdud.1 %clean rm -rf %{buildroot} @@ -51,6 +60,12 @@ %defattr(-,root,root) /usr/bin/mkdud /usr/share/bash-completion -%doc README.md COPYING +%doc %{_mandir}/man1/mkdud.* +%doc *.md +%if %suse_version >= 1500 +%license COPYING +%else +%doc COPYING +%endif %changelog ++++++ mkdud-1.45.tar.xz -> mkdud-1.47.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/Makefile new/mkdud-1.47/Makefile --- old/mkdud-1.45/Makefile 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/Makefile 2019-09-23 15:12:48.000000000 +0200 @@ -18,13 +18,23 @@ changelog: $(GITDEPS) $(GIT2LOG) --changelog changelog -install: +install: doc @cp mkdud mkdud.tmp @perl -pi -e 's/0\.0/$(VERSION)/ if /VERSION = /' mkdud.tmp install -m 755 -D mkdud.tmp $(DESTDIR)$(BINDIR)/mkdud install -m 644 -D bash_completion/mkdud $(DESTDIR)$(COMPLDIR)/mkdud @rm -f mkdud.tmp +doc: + @if [ -x /usr/bin/asciidoctor ] ; then \ + asciidoctor -b manpage -a version=$(VERSION) mkdud_man.adoc ;\ + else \ + a2x -f manpage -a version=$(VERSION) mkdud_man.adoc ;\ + fi +# a2x -f docbook -a version=$(VERSION) mkdud_man.adoc +# dblatex mkdud_man.xml + clean: - @rm -rf *~ package changelog VERSION + @rm -rf *~ */*~ package changelog VERSION + @rm -f mkdud.1 mkdud_man.xml mkdud_man.pdf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/README.md new/mkdud-1.47/README.md --- old/mkdud-1.45/README.md 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/README.md 2019-09-23 15:12:48.000000000 +0200 @@ -2,15 +2,20 @@ ## About -This is about driver updates. If you're not familiar with them, please look at -http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html and -http://en.opensuse.org/SDB:Linuxrc#p_driverupdate first. +This is about driver updates for openSUSE/SLES. If you're not familiar with them, please look at +- http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html +- http://en.opensuse.org/SDB:Linuxrc#p_driverupdate `mkdud` is a tool that makes it easy to create driver updates for SUSE distributions. ## Downloads -Get the latest version from the [openSUSE Build Service](https://software.opensuse.org/package/mkdud). +Packages for openSUSE and SLES are built at the [openSUSE Build Service](https://build.opensuse.org). You can grab + +- [official releases](https://software.opensuse.org/package/mkdud) or + +- [latest stable versions](https://software.opensuse.org/download/package?project=home:snwint:ports&package=mkdud) + from my [ports](https://build.opensuse.org/package/show/home:snwint:ports/mkdud) project ## Blog @@ -214,3 +219,7 @@ You can find more information about the changes auto-generation and the tools used for jenkis submissions in the [linuxrc-devtools documentation](https://github.com/openSUSE/linuxrc-devtools#opensuse-development). + +## License + +The project is using [GPL-3.0](https://opensource.org/licenses/GPL-3.0). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/VERSION new/mkdud-1.47/VERSION --- old/mkdud-1.45/VERSION 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/VERSION 2019-09-23 15:12:48.000000000 +0200 @@ -1 +1 @@ -1.45 +1.47 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/changelog new/mkdud-1.47/changelog --- old/mkdud-1.45/changelog 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/changelog 2019-09-23 15:12:48.000000000 +0200 @@ -1,3 +1,11 @@ +2019-09-23: 1.47 + - merge gh#openSUSE/mkdud#31 + - adjust spec file to build on SLE-11 + +2019-09-23: 1.46 + - merge gh#openSUSE/mkdud#28 + - start moving doc to asciidoc; add proper man page + 2019-04-04: 1.45 - merge gh#openSUSE/mkdud#30 - map Kubic to Tumbleweed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/mkdud new/mkdud-1.47/mkdud --- old/mkdud-1.45/mkdud 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/mkdud 2019-09-23 15:12:48.000000000 +0200 @@ -387,268 +387,40 @@ Verify driver update: - -s, --show DUD Verify DUD and print short summary. DUD may be a file - or directory or an ISO image. + -s, --show DUD Verify DUD and print short summary. Create driver update: -c, --create DUD Create new driver update DUD from SOURCES. -a, --arch ARCH Build for target ARCH (default: auto detected from SOURCES). - Option can be repeated to specify several achitectures. - Note: if you don't set the architecture and mkdud can't - find a hint in SOURCES either, an update for all supported - architectures is created. - -d, --dist DIST Specify the product the DUD is for. Possible values include: - 13.2, sle12, leap42.3, caasp1.0, tw standing for - openSUSE 13.2, SLE12, Leap 42.3, CaaSP 1.0, Tumbleweed, - respectively. - Note that 'sle12' is a short hand for specifying both - 'sles12' and 'sled12'. - Note also that there are no separate names for service packs. - So 'sles12-sp1' is the same as 'sles12'. But see '--condition' - below for a way to target specific service packs. - See distribution name notes below for more details. - Option can be repeated to specify several distribution targets. + -d, --dist DIST Specify the product the DUD is for (e.g. sle12). --condition SCRIPT Run SCRIPT and apply DUD only if SCRIPT has exit status 0. - If SCRIPT has the special name ServicePackN (N = 0, 1, 2, ...), - a script that checks for service pack N is _generated_ and added. - N = 0 refers to the main product (without service pack). - Note that for Tumbleweed you can pass the snapshot version as N - to limit the DUD to a specific snapshot. - Option can be repeated to specify several conditions. - -p, --prio NUM Set repository priority to NUM; lower NUM means higher priority - (default: 50). - -n, --name NAME Set driver update name. If you update packages or modules - a default name is generated based on the package and module - versions. - Option can be repeated to specify a multi-line name. + -p, --prio NUM Set repository priority to NUM (default: 50). + -n, --name NAME Set driver update name. -x, --exec COMMAND Run command just after the driver update has been loaded. - Option can be repeated to specify several commands. - Note: the commands are run just before kernel modules - are updated. -i, --install METHODS Package install method. METHODS is a comma-separated list of: instsys, repo, rpm (default: 'instsys,repo,rpm'). - - instsys: unpack packages in installation system - - repo: create repo with all packages and register with - yast before starting installation; repo will be removed - after the installation - - rpm: install packages at the end of the installation - using rpm (that is, not via repo & zypper) - --config KEY=VALUE Set linuxrc config option KEY to VALUE. The options are changed - just after the driver update has been loaded. - Option can be repeated to set several options. - --no-docs Don't include package documentation in unpacked instsys tree - (to save space). This is the default setting. - --keep-docs Include package documentation in unpacked instsys tree. - --force Obsolete. Use one or more of --no-fix-XXX instead. - --no-fix-yast Allow driver update to replace /sbin/yast. See 'Consistency checks'. - --no-fix-dist Allow to specify an arbitrary distribution name with --dist. See - 'Consistency checks'. - --no-fix-usr-src Allow driver update to include /usr/src/packages. See 'Consistency - checks'. - --no-fix-adddir Do not include an updated adddir script. See 'Consistency checks'. - --format FORMAT Specify archive format for DUD. + --config KEY=VALUE Set linuxrc config option KEY to VALUE. + --no-docs Don't include package documentation (default). + --keep-docs Include package documentation. + --no-fix-yast Allow driver update to replace /sbin/yast. + --no-fix-dist Allow to specify an arbitrary distribution name with --dist. + --no-fix-usr-src Allow driver update to include /usr/src/packages. + --no-fix-adddir Do not include an updated adddir script. + --format FORMAT Specify archive format for DUD (default: cpio.gz). FORMAT=((cpio|tar|iso)[.(gz|xz)])|rpm. - Default FORMAT is cpio.gz (gzip compressed cpio archive). - Note: please check README before changing the default. - --prefix NUM First directory prefix of driver update. See README. + --prefix NUM First directory prefix of driver update. --sign Sign the driver update. - --detached-sign Sign the driver update. This creates a detached signature. - --sign-key KEY_FILE Use this key for signing. Alternatively, use the - 'sign-key' entry in ~/.mkdudrc. + --detached-sign Sign the driver update creating a detached signature. + --sign-key KEY_FILE Use this key for signing. --volume Set ISO volume id (if using format 'iso'). --vendor Set ISO publisher id (if using format 'iso'). --preparer Set ISO data preparer id (if using format 'iso'). --application Set ISO application id (if using format 'iso'). --obs-keys Retrieve and add project keys from the openSUSE build service as needed to verify the RPMs in SOURCES. - See 'Adding RPMs notes' below. - - -Configuration file: - - \$HOME/.mkdudrc - - sign-key=KEY_FILE - File name of the private signing key. The same as the 'sign-key' option. - -To create a driver update you need SOURCES. SOURCES can contain: - - - existing driver updates; either as archive, rpm, or unpacked directory. All driver - updates are joined. - - - RPMs. Packages not containing a driver update are used according to the value - of the --install option. - - - PGP pubic key files (ASCII). The files are added to the rpm key database for verifying - RPMs during the installation process. See 'Adding RPMs notes' below. - - - kernel modules. - - - 'module.order' and 'module.config' files. See driver update documentation. - - - 'update.pre', 'update.post', 'update.post2' scripts. - See driver update documentation. - Note that you can specify several 'update.post', etc. scripts. They are all run. - - - *.ycp, *.ybc, or *.rb files. Files are copied to the correct places automatically - if they contain a usable 'File' comment. - - - 'y2update' directories. - - - program files (binaries, libraries, executable scripts). They are put into the - 'install' dir. You can run them if needed using the --exec option. - - - plain text files. They are considered documentation. - - - directories that are neither DUDs nor YaST updates. Everything below the directory - is added to the installation system. - - - ISO images. The images are unpacked and scanned for driver updates. - -Adding RPMs notes: - - If you add RPMs to SOURCES, these RPMs can be used to update the installation system - and/or to be installed in the target system. See --install option on how to choose. - - The best way is to go for 'repo' to install them in the target system as then they - are handled by the package manager and package dependencies are automatically resolved. - - But there are two catches: - - (1) The package must be actually required by the selected pattern or it must be - manually selected in the package manager; else it won't be installed at all. - - This is normally no problem if you update a package (as it's likely required, else - you wouldn't want to update it) but if you try to install some uncommon package - it might not be selected. - - (2) If the package is signed, the signature will be checked by the package manager - and you'll end up with a warning if the necessary public key is not available. This - particularly happens with packages from the openSUSE build service which were built - in some user's project. - - For this, mkdud will package any pgp public key files you add to SOURCES in a way so - that they are used by the package manager during installation. They will *not* be - installed in the target system. - - To ease this even more, the --obs-keys option causes mkdud to retrieve the necessary - keys for each RPM in SOURCES from the build service using the 'osc' tool. Note that - you must configure the build service access via .oscrc in your HOME directory for this - to work. - -Distribution (product) name notes: - - The --dist option accepts these values (case-insensitive; X, Y: decimal numbers): - - - X.Y (e.g. 13.2) = openSUSE X.Y - - leapX.Y (e.g. leap42.3) = openSUSE Leap X.Y - - (obsolete) kubicX.Y (e.g. kubic1.0) = openSUSE Kubic X.Y - - tw = openSUSE Tumbleweed - - sleX (e.g. sle12) = SUSE Linux Enterprise (Server + Desktop) X - - slesX (e.g. sles12) = SUSE Linux Enterprise Server X - - sledX (e.g. sled12) = SUSE Linux Enterprise Desktop X - but see notes below - - caaspX.Y (e.g. caasp1.0) = SUSE Container as a Service Platform X.Y - see notes below - - Note that there aren't any products anymore that actually use 'sledX', - even SLED uses the 'sles' DUDs meanwhile. For this, please just use 'sleX' - when creating a DUD for a SUSE Linux Enterprise product. - - Note also that CaaSP releases are based on SLE releases. Since driver - updates are usually released for a specific SLE version mkdud provides a - mapping CaaSP release <-> SLE release when building with --dist caspX.Y. - Currently: - - - caasp1.0 = sles12 (-sp2) - - caasp2.0 = sles12 (-sp3) - - caasp3.0 = sles12 (-sp3) - - caasp4.0 = sles15 - - Kubic is based on Tumbleweed. For compatibility, '--dist kubic...' variants are still - supported but will be mapped to Tumbleweed. Please use '--dist tw' directly. - - Driver updates built only for SLE12 will implicitly also work with - CaaSP3.0; those built only for SLE15 will also work with CaaSP4.0. But - this is not true for CaaSP1.0 and CaaSP2.0. - - Normally, a DUD will apply to the main release as well as to all the service packs. - To target a specific service pack, use the --condition option. For example: - '--dist sle12 --condition ServicePack3' to get a DUD exclusively for sle12-sp3. - - This works also to target a specifc Tumbleweed release: - '--dist tw --condition 20161231'. - - You can specify several '--condition' options. They must all be fulfilled (logical AND). - -Consistency checks - - It is possible to create driver updates that will predictably not work - because they interfere with the setup of the installation environment. - - mkdud will warn you and try to work around these cases. But there still - may be valid use-cases so the --fix-XXX / --no-fix-XXX group of options - lets you enable (default) or disable these workarounds. - - --[no-]fix-yast - In older SUSE versions /sbin/yast was a different script in the - installation environment than the one from the yast package. Updating - the special variant with the regular script will make the installation - impossible. mkdud recognizes this and removes /sbin/yast from driver - updates. - - --[no-]fix-dist - The --dist option normally allows you to specify only distributions - mkdud knows about. With this option you may put anything there - in case - you know better. - - --[no-]fix-usr-src - The installation system must not contain a /usr/src/packages directory. - mkdud normally removes it (and its content) from driver updates. - - --[no-]fix-adddir - The /sbin/adddir script is used in the installation system to actually - apply that part of a driver update that replaces files in the - installation system. In older SUSE versions this script was not able to - update some programs from the 'coreutils' package. mkdud implicitly - includes an update for this script if it detects a need for it. - -References: - -Driver update documentation is available here: - - http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html - - http://en.opensuse.org/SDB:Linuxrc#p_driverupdate - -Examples: - - # show content of foo.dud - mkdud --show foo.dud - - # create update for hello.rpm - mkdud --create foo.dud --dist 13.2 hello.rpm - - # create kernel update - mkdud --create foo.dud --dist 13.2 kernel-*.rpm - - # create kernel update and replace tg3 module - mkdud --create foo.dud --dist 13.2 kernel-*.rpm tg3.ko - - # create kernel update, replace tg3 module, add some docs and give the dud a nice name - mkdud --create foo.dud --dist 13.2 --name 'for granny' kernel-*.rpm tg3.ko README - - # update some YaST stuff - mkdud --create foo.dud --dist 13.2 BootCommon.y* - - # add directory tree below 'newstuff/' to installation system - mkdud --create foo.dud --dist 13.2 newstuff - - # extract driver updates from ISO (you need root permissions for that) - mkdud --create foo.dud xxx.iso - - # create update for hello.rpm and join with foo1.dud and foo2.dud - mkdud --create foo.dud --dist sle12 foo1.dud foo2.dud hello.rpm +More information is available in the mkdud(1) manual page. = = = = = = = = exit shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/mkdud_man.adoc new/mkdud-1.47/mkdud_man.adoc --- old/mkdud-1.45/mkdud_man.adoc 1970-01-01 01:00:00.000000000 +0100 +++ new/mkdud-1.47/mkdud_man.adoc 2019-09-23 15:12:48.000000000 +0200 @@ -0,0 +1,360 @@ += mkdud(1) +:doctype: manpage +:manmanual: User Commands +:mansource: mkdud {version} + +== Name + +mkdud - create and manage SUSE Linux driver updates + + +== Synopsis + +*mkdud* [_OPTIONS_]... _SOURCES_... + + +== Description + +mkdud manages driver updates (DUD) for SUSE Linux. You can create them, view their contents, and +combine several driver updates into a single one. + + +=== General Options + +*--version*:: +Show mkdud version. + +*--save-temp*:: +Keep temporary files. + +*--help*:: +Show this help text. + + +=== Verify Driver Update + +*-s, --show*=_DUD_:: +Verify _DUD_ and print short summary. _DUD_ may be a file or directory or an ISO image. + + +=== Create Driver Update + +*-c, --create*=_DUD_:: +Create new driver update _DUD_ from _SOURCES_. + +*-a, --arch*=_ARCH_:: +Build for target _ARCH_ (default: auto detected from _SOURCES_). +Option can be repeated to specify several achitectures. + +*Note*: if you don't set the architecture and mkdud can't +find a hint in _SOURCES_ either an update for all supported +architectures is created. + +*-d, --dist*=_DIST_:: +Specify the product the DUD is for. Possible values for _DIST_ include: +`13.2`, `sle15`, `leap15.1`, `caasp1.0`, `tw` standing for +openSUSE 13.2, SLE15, Leap 15.1, CaaSP 1.0, Tumbleweed, respectively. + +*Note 1*: `sle15` is a short hand for specifying both `sles15` and `sled15`. + +*Note 2*: There are no separate names for service packs. +So `sles15-sp1` is the same as `sles15`. But see *--condition* +below for a way to target specific service packs. + +See *Distribution (Product) Names* below for more details. + +Option can be repeated to specify several distribution targets. + +*--condition*=_SCRIPT_:: +Run _SCRIPT_ and apply DUD only if _SCRIPT_ has exit status 0. +If _SCRIPT_ has the special name `ServicePackN` (_N_ = 0, 1, 2, ...), +a script that checks for service pack _N_ is generated and added. +_N_ = 0 refers to the main product (without service pack). + +*Note*: For Tumbleweed you can pass the snapshot version as _N_ +to limit the DUD to a specific snapshot. + +Option can be repeated to specify several conditions. + +*-p, --prio*=_NUM_:: +Set repository priority to _NUM_; lower _NUM_ means higher priority +(default: 50). + +*-n, --name*=_NAME_:: +Set driver update name. If you update packages or modules +a default name is generated based on the package and module +versions. + +Option can be repeated to specify a multi-line name. + +*-x, --exec*=_COMMAND_:: +Run _COMMAND_ right after the driver update has been loaded. +Option can be repeated to specify several commands. + +*Note*: The commands are run just before kernel modules +are updated. + +*-i, --install*=_METHODS_:: +Package install method. _METHODS_ is a comma-separated list +of: `instsys`, `repo`, `rpm` (default: `instsys,repo,rpm`). + +- `instsys`: unpack packages in installation system + +- `repo`: create repo with all packages and register with + yast before starting installation; repo will be removed + after the installation + +- `rpm`: install packages at the end of the installation + using rpm (that is, not via repo & zypper) + + +*--config*=_KEY_=_VALUE_:: +Set linuxrc config option _KEY_ to _VALUE_. The options are changed +just after the driver update has been loaded. + +Option can be repeated to set several options. + +*--no-docs*:: +Don't include package documentation in unpacked instsys tree +(to save space). + +This is the default setting. + +*--keep-docs*:: +Include package documentation in unpacked instsys tree. + +*--force*:: +Obsolete. Use one or more of *--no-fix-XXX* instead. + +*--no-fix-yast*:: +Allow driver update to replace `/sbin/yast`. + +See *Consistency checks*. + +*--no-fix-dist*:: +Allow to specify an arbitrary distribution name with *--dist*. + +See *Consistency checks*. + +*--no-fix-usr-src*:: +Allow driver update to include `/usr/src/packages`. + +See *Consistency checks*. + +*--no-fix-adddir*:: +Do not include an updated `adddir` script. + +See *Consistency checks*. + +*--format*=_FORMAT_:: +Specify archive format for DUD. _FORMAT_=`((cpio|tar|iso)[.(gz|xz)])|rpm`. + +Default _FORMAT_ is `cpio.gz` (gzip compressed cpio archive). + +*Note*: please check `README` before changing the default. + +*--prefix*=_NUM_:: +First directory prefix of driver update. + +See `README`. + +*--sign*:: +Sign the driver update. + +*--detached-sign*:: +Sign the driver update. This creates a detached signature. + +*--sign-key*=_KEY_FILE_:: +Use this key for signing. Alternatively, use the `sign-key` entry in `~/.mkdudrc`. + +*--volume*:: +Set ISO volume id (if using format `iso`). + +*--vendor*:: +Set ISO publisher id (if using format `iso`). + +*--preparer*:: +Set ISO data preparer id (if using format `iso`). + +*--application*:: +Set ISO application id (if using format `iso`). + +*--obs-keys*:: +Retrieve and add project keys from the openSUSE Build Service +as needed to verify the RPMs in _SOURCES_. + +See *Adding RPMs* below. + + +== Configuration file + +mkdud reads `$HOME/.mkdudrc` at startup. There's only one possible entry: + +*sign-key*=_KEY_FILE_:: +File name of the private signing key. The same as the *--sign-key* option. + + +== Driver Update SOURCES + +To create a driver update you need _SOURCES_. _SOURCES_ may be: + +- existing driver updates; either as archive, rpm, or unpacked directory; + all driver updates are joined + +- RPMs; Packages not containing a driver update are used according to the value + of the *--install* option + +- PGP pubic key files (ASCII); the files are added to the rpm key database for verifying + RPMs during the installation process; see *Adding RPMs* below + +- kernel modules + +- `module.order` and `module.config` files; see Update Media HOWTO. + +- `update.pre`, `update.post`, `update.post2` scripts; see Update Media HOWTO; + note that you can specify several `update.post`, etc. scripts; they are all run + +- `+*.ycp+`, `+*.ybc+`, or `+*.rb+` files; files are copied to the correct places automatically + if they contain a usable `File:` comment + +- `y2update` directories + +- program files (binaries, libraries, executable scripts); they are put into the + `install` dir; you can run them if needed using the *--exec* option + +- plain text files; they are considered documentation + +- directories that are neither DUDs nor YaST updates; everything below the directory +is added to the installation system + +- ISO images; the images are unpacked and scanned for driver updates + + +== Adding RPMs + +If you add RPMs to _SOURCES_, these RPMs can be used to update the installation system +and/or to be installed in the target system. See *--install* option on how to choose. + +The best way is to go for `repo` to install them in the target system as then they +are handled by the package manager and package dependencies are automatically resolved. + +But there are two catches: + +. The package must be actually required by the selected pattern or it must be +manually selected in the package manager; else it won't be installed at all. ++ +This is normally no problem if you update a package (as it's likely required, else +you wouldn't want to update it) but if you try to install some uncommon package +it might not be selected. + +. If the package is signed, the signature will be checked by the package manager +and you'll end up with a warning if the necessary public key is not available. This +particularly happens with packages from the openSUSE Build Service which were built +in some user's project. ++ +-- +For this, mkdud will package any pgp public key files you add to _SOURCES_ in a way so +that they are used by the package manager during installation. They will *not* be +installed in the target system. + +To ease this even more, the *--obs-keys* option causes mkdud to retrieve the necessary +keys for each RPM in _SOURCES_ from the build service using the `osc` tool. Note that +you must configure the build service access via `$HOME/.oscrc` for this to work. +-- + +== Distribution (Product) Names: + +The *--dist* option accepts these values (case-insensitive; X, Y: decimal numbers): + +- X.Y (e.g. `13.2`) = openSUSE X.Y +- leapX.Y (e.g. `leap15.1`) = openSUSE Leap X.Y +- (obsolete) kubicX.Y (e.g. kubic1.0) = openSUSE Kubic X.Y +- tw = openSUSE Tumbleweed +- sleX (e.g. sle15) = SUSE Linux Enterprise (Server + Desktop) X +- slesX (e.g. sles15) = SUSE Linux Enterprise Server X +- sledX (e.g. sled15) = SUSE Linux Enterprise Desktop X - but see notes below +- caaspX.Y (e.g. caasp1.0) = SUSE Container as a Service Platform X.Y - see notes below + +*Note 1*: there aren't any products anymore that actually use `sledX`, +even SLED uses the `sles` DUDs meanwhile. Because of this, please just use `sleX` +when creating a DUD for a SUSE Linux Enterprise product. + +*Note 2*: CaaSP releases are based on SLE releases. Since driver +updates are usually released for a specific SLE version mkdud provides a +mapping CaaSP release <-> SLE release when building with *--dist*=caspX.Y. +Currently: + +- caasp1.0 = sles12 (-sp2) +- caasp2.0 = sles12 (-sp3) +- caasp3.0 = sles12 (-sp3) +- caasp4.0 = sles15 + +Kubic is based on Tumbleweed. For compatibility, *--dist*=kubic... variants are still +supported but will be mapped to Tumbleweed. Please use *--dist*=tw directly. + +Driver updates built for SLE12 will implicitly also work with +CaaSP3.0; those built for SLE15 will implicitly also work with CaaSP4.0. But +this is not true for CaaSP1.0 and CaaSP2.0. + +Normally, a DUD will apply to the main release as well as to all the service packs. +To target a specific service pack, use the *--condition* option. +For example, to get a DUD exclusively for `sle15-sp1`: +*--dist*=sle15{nbsp}**--condition**=ServicePack1 + +This works also to target a specifc Tumbleweed release: +*--dist*=tw{nbsp}**--condition**=20191231. + +You can specify several *--condition* options. They must all be fulfilled (logical *and*). + + +== Consistency Checks + +It is possible to create driver updates that will predictably not work +because they interfere with the setup of the installation environment. + +mkdud will warn you and try to work around these cases. But there still +may be valid use-cases so the *--fix-XXX* / *--no-fix-XXX* group of options +lets you enable (default) or disable these workarounds. + +- *--[no-]fix-yast* + +In older SUSE versions `/sbin/yast` was a different script in the +installation environment than the one from the yast package. Updating +the special variant with the regular script would make the installation +impossible. mkdud recognizes this and removes `/sbin/yast` from driver +updates. + +- *--[no-]fix-dist* + +The *--dist* option normally allows you to specify only distributions +mkdud knows about. With this option you may put anything there - in case +you know better. + +- *--[no-]fix-usr-src* + +The installation system must not contain a `/usr/src/packages` directory. +mkdud normally removes it (and its content) from driver updates. + +- *--[no-]fix-adddir* + +The `/sbin/adddir` script is used in the installation system to actually +apply the part of a driver update that replaces files in the +installation system. In older SUSE versions this script was not able to +update some programs from the `coreutils` package. mkdud implicitly +includes an update for this script if it detects a need for it. + + +== Examples + +---- +# show content of foo.dud +mkdud --show foo.dud + +# create update for hello.rpm +mkdud --create foo.dud --dist leap15.1 hello.rpm + +# create kernel update +mkdud --create foo.dud --dist leap15.1 kernel-*.rpm + +# create kernel update and replace tg3 module +mkdud --create foo.dud --dist leap15.1 kernel-*.rpm tg3.ko + +# create kernel update, replace tg3 module, add some docs +# and give the driver update a nice name +mkdud --create foo.dud --dist leap15.1 --name 'for granny' kernel-*.rpm tg3.ko README + +# update some YaST stuff +mkdud --create foo.dud --dist leap15.1 BootCommon.y* + +# add directory tree below newstuff/ to installation system +mkdud --create foo.dud --dist leap15.1 newstuff + +# extract driver updates from ISO (you need root permissions for that) +mkdud --create foo.dud xxx.iso + +# create update for hello.rpm and join with foo1.dud and foo2.dud +mkdud --create foo.dud --dist sle15 foo1.dud foo2.dud hello.rpm +---- + +Find more usage examples here: https://github.com/openSUSE/mkdud/blob/master/HOWTO.md. + + +== See Also + +- more documentation: `/usr/share/doc/packages/mkdud` + +- mkdud web site: https://github.com/openSUSE/mkdud + +- Update Media HOWTO: http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html +- openSUSE Build Service: https://build.opensuse.org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mkdud-1.45/obs/mkdud.spec new/mkdud-1.47/obs/mkdud.spec --- old/mkdud-1.45/obs/mkdud.spec 2019-04-04 15:04:44.000000000 +0200 +++ new/mkdud-1.47/obs/mkdud.spec 2019-09-23 15:12:48.000000000 +0200 @@ -18,9 +18,17 @@ Name: mkdud BuildRequires: xz +%if 0%?suse_version >= 1500 || 0%?sle_version >= 120400 +BuildRequires: rubygem(asciidoctor) +%else +BuildRequires: asciidoc +%if 0%?suse_version >= 1310 || 0%?sle_version >= 120000 +BuildRequires: libxslt-tools +%endif +%endif Requires: gpg2 Summary: Create driver update from rpms -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Hardware/Other Version: 0.0 Release: 0 @@ -42,7 +50,8 @@ %build %install - make install DESTDIR=%{buildroot} + %make_install + install -D -m 644 mkdud.1 %{buildroot}%{_mandir}/man1/mkdud.1 %clean rm -rf %{buildroot} @@ -51,6 +60,12 @@ %defattr(-,root,root) /usr/bin/mkdud /usr/share/bash-completion -%doc README.md COPYING +%doc %{_mandir}/man1/mkdud.* +%doc *.md +%if %suse_version >= 1500 +%license COPYING +%else +%doc COPYING +%endif %changelog
