Hello community,

here is the log from the commit of package util-linux for openSUSE:Factory 
checked in at 2017-03-01 23:39:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/util-linux (Old)
 and      /work/SRC/openSUSE:Factory/.util-linux.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "util-linux"

Wed Mar  1 23:39:12 2017 rev:216 rq:457450 version:2.29.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/util-linux/python-libmount.changes       
2017-01-15 10:56:25.434424155 +0100
+++ /work/SRC/openSUSE:Factory/.util-linux.new/python-libmount.changes  
2017-03-01 23:39:13.706580054 +0100
@@ -1,0 +2,44 @@
+Fri Feb 10 10:40:23 UTC 2017 - [email protected]
+
+- presets are managed by the branding presets package (bsc#1012850)
+
+  The default activation state is defined by the branding preset
+  package.
+
+  This also get rid of the only use of the rpm preset macros so we can
+  kill them.
+
+-------------------------------------------------------------------
+Wed Feb  8 18:16:22 CET 2017 - [email protected]
+
+- Merge SLE12 SP3 changes to make the package compatible with
+  Tumbleweed, SLE12 SP3 and Leap 42.3.
+- Drop patch tests-script-race-on-force-only.patch from SLE12 SP3
+  and Leap 42.3. Upstream has a different workaround.
+  https://github.com/karelzak/util-linux/issues/296
+- INCOMPATIBLE CHANGE for SLE12 SP3 and Leap 42.3:
+  losetup -L changes its meaning from SLE12 SP1&SP2 specific
+  --logical-blocksize to the upstream --nooverlap).
+  --logical-blocksize can be used only with long option.
+- Include SLE12 + Leap 42 exclusive feature, implemented by
+  [email protected]:
+  * losetup: Add support for setting logical blocksizes
+    (bsc#931634, FATE#319010)
+    + util-linux-losetup-Add-support-for-setting-logical-blocksize.patch
+
+-------------------------------------------------------------------
+Tue Feb  7 20:07:55 CET 2017 - [email protected]
+
+- Update to version 2.29.1:
+  * lscpu: add aarch64 specific names
+  * lubmount: Disable disable ro/rw mtab checks (bsc#1012632)
+  * More details at:
+    
https://www.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29.1-ReleaseNotes
+
+-------------------------------------------------------------------
+Tue Feb  7 18:31:04 CET 2017 - [email protected]
+
+- Replace raw initscript by a systemd service doing the same thing.
+  Based on previous work of [email protected] (FATE#321122).
+
+-------------------------------------------------------------------
util-linux-systemd.changes: same change
util-linux.changes: same change

Old:
----
  raw.init
  util-linux-2.29.tar.sign
  util-linux-2.29.tar.xz

New:
----
  raw.service
  util-linux-2.29.1.tar.sign
  util-linux-2.29.1.tar.xz
  util-linux-losetup-Add-support-for-setting-logical-blocksize.patch

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

Other differences:
------------------
++++++ python-libmount.spec ++++++
--- /var/tmp/diff_new_pack.6w7rsQ/_old  2017-03-01 23:39:15.182371932 +0100
+++ /var/tmp/diff_new_pack.6w7rsQ/_new  2017-03-01 23:39:15.186371368 +0100
@@ -16,7 +16,11 @@
 #
 
 
+%if 0%{?suse_version} >= 1330
 %bcond_without  enable_last
+%else
+%bcond_with     enable_last
+%endif
 
 Name:           python-libmount
 %define _name   util-linux
@@ -112,7 +116,7 @@
 %endif
 %endif
 #END SECOND STAGE DEPENDENCIES
-Version:        2.29
+Version:        2.29.1
 Release:        0
 # util-linux is a base package and uuidd pre-requiring pwdutils pulls
 # that into the core build cycle.  pwdutils also pulls in the whole
@@ -123,7 +127,7 @@
 Url:            https://www.kernel.org/pub/linux/utils/util-linux/
 Source:         
ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/%{_name}-%{version}.tar.xz
 Source1:        util-linux-rpmlintrc
-Source4:        raw.init
+Source4:        raw.service
 Source5:        etc.raw
 Source6:        etc_filesystems
 Source7:        baselibs.conf
@@ -150,7 +154,9 @@
 ## util-linux patches
 ##
 # PATCH-EXTEND-UPSTREAM: Let `su' handle /sbin and /usr/sbin in path
-Patch4:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+Patch0:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+# PATCH-FEATURE-SLE 
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch bsc931634 
FATE319010 [email protected] -- Add support for setting logical blocksizes.
+Patch1:         
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #
 %if %build_util_linux
@@ -159,7 +165,6 @@
 # bnc#651598:
 Provides:       util-linux(fake+no-canonicalize)
 PreReq:         %install_info_prereq permissions
-PreReq:         %insserv_prereq %fillup_prereq /bin/sed
 Recommends:     %{name}-lang = %{version}
 Provides:       eject = 2.1.0-166.8
 Provides:       login = 4.0-33.7
@@ -174,6 +179,8 @@
 Conflicts:      sysvinit-tools < 2.88+-87
 # File conflicts of completion files with <= Leap 42.1 and <= SLE12 SP1 (fixed 
by SLE12 Update, boo#977259#c3).
 Conflicts:      bash-completion <= 2.1-13.1
+# The preset is provided by the presets branding package since 0.4 
(bsc#1012850)
+Conflicts:      systemd-presets-branding < 0.4
 # bnc#805684:
 %ifarch s390x
 Obsoletes:      s390-32
@@ -189,6 +196,13 @@
 Recommends:     adjtimex
 Recommends:     time
 Recommends:     which
+#
+%if 0%{?suse_version} < 1330
+# Using Conflicts as 
util-linux-losetup-Add-support-for-setting-logical-blocksize
+# now uses bit 5 of lo_flags with meaning LO_FLAGS_BLOCKSIZE bsc#966891
+#
+Conflicts:      kernel < 4.4
+%endif
 %else
 %if %build_python_libmount
 %else
@@ -383,7 +397,11 @@
 %endif
 %prep
 %setup -q -n %{_name}-%{version} -b 40
-%patch4 -p1
+%patch0 -p1
+%if 0%{?suse_version} < 1330
+# logical block size support in loop does not exist in Tumbleweed and upstream 
kernel yet
+%patch1 -p1
+%endif
 #
 # setctsid
 cp -p %{S:22} %{S:23} .
@@ -599,7 +617,7 @@
 
 %install
 %if %build_util_linux
-mkdir -p 
%{buildroot}{%{_sysconfdir}/{init.d,pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
+mkdir -p 
%{buildroot}{%{_sysconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
 install -m 644 %{SOURCE51} %{buildroot}%{_sysconfdir}/blkid.conf
 install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/login
 install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pam.d/remote
@@ -608,7 +626,6 @@
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su-l
 install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/default/su
-mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
 pushd ../klogconsole
 # klogconsole install
 make install DEST=%{buildroot}
@@ -672,8 +689,8 @@
 chmod 755 %{buildroot}%{_sbindir}/flushb
 # Install scripts to configure raw devices at boot time
 install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw   
%{buildroot}%{_sysconfdir}/raw
-install -m 755 $RPM_SOURCE_DIR/raw.init %{buildroot}%{_initddir}/raw
-ln -sf ../..%{_sysconfdir}/init.d/raw %{buildroot}%{_sbindir}/rcraw
+install -m 644 $RPM_SOURCE_DIR/raw.service %{buildroot}%{_unitdir}
+ln -sf service %{buildroot}%{_sbindir}/rcraw
 # upstream moved getopt examples from datadir to docdir but we keep
 # the old location because we would need to fix the manpage first
 mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/
@@ -732,14 +749,11 @@
 mkdir -p %{buildroot}%{_sbindir}
 mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid
 mkdir -p %{buildroot}/run/uuidd
-mkdir -p %{buildroot}/usr/lib/systemd/system-preset
 ln -s %{_bindir}/logger %{buildroot}/bin
 # clock.txt from uuidd is a ghost file
 touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcfstrim
-# Use socket activated uuidd by default.
-echo -e 'enable uuidd.socket\nenable uuidd.service' 
>%{buildroot}/usr/lib/systemd/system-preset/50-uuidd.preset
 %if !%build_util_linux
 %make_install
 %endif
@@ -748,8 +762,11 @@
 %fdupes -s %{buildroot}%{_prefix}
 
 %if %build_util_linux
+%pre
+%{service_add_pre raw.service}
+
 %post
-%{fillup_and_insserv raw}
+%{service_add_post raw.service}
 %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount 
%{_bindir}/umount
 %set_permissions %{_bindir}/su
 # Safely migrate PAM files from coreutils to util-linux
@@ -775,8 +792,11 @@
        sed -i 's:code=:codepage=:' etc/fstab
 fi
 
+%preun
+%{service_del_preun raw.service}
+
 %postun
-%{insserv_cleanup}
+%{service_del_postun raw.service}
 
 %verifyscript
 %verify_permissions -e %{_bindir}/wall -e %{_bindir}/write -e %{_bindir}/mount 
-e %{_bindir}/umount
@@ -825,7 +845,6 @@
 /usr/sbin/useradd -r -g uuidd -c "User for uuidd" \
   -d /var/run/uuidd uuidd 2>/dev/null || :
 %{service_add_pre uuidd.socket uuidd.service}
-%{?systemd_preset_pre}
 
 %post -n uuidd
 %{service_add_post uuidd.socket uuidd.service}
@@ -836,8 +855,6 @@
 %postun -n uuidd
 %{service_del_postun uuidd.socket uuidd.service}
 
-%posttrans -p /bin/bash -n uuidd
-%{?systemd_preset_posttrans}
 %endif
 
 %if %build_util_linux
@@ -860,7 +877,7 @@
 %doc Documentation/modems-with-agetty.txt
 %doc Documentation/mount.txt
 %doc Documentation/pg.txt
-%config %attr(744,root,root) %{_sysconfdir}/init.d/raw
+%{_unitdir}/raw.service
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/raw
 %config(noreplace) %{_sysconfdir}/filesystems
 %config(noreplace) %{_sysconfdir}/blkid.conf
@@ -1115,6 +1132,8 @@
 %dir %{_datadir}/getopt
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.bash
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.tcsh
+# These directories should be owned by bash-completion. But we don't want to
+# install them on build, so own these two directories:
 %dir %{_datadir}/bash-completion
 %dir %{_datadir}/bash-completion/completions
 %{_datadir}/bash-completion/completions/*
@@ -1251,6 +1270,15 @@
 /bin/logger
 %{_bindir}/logger
 %{_bindir}/lslogins
+#BEGIN bootstrap_hack
+%if 0%{?suse_version} < 1330
+# Build images of some products use util-linux that does not come from this
+# spec and does not own bash-completion dir. So we have to own own these two
+# directories in util-linux-systemd as well:
+%dir %{_datadir}/bash-completion
+%dir %{_datadir}/bash-completion/completions
+%endif
+#END bootstrap_hack
 %{_datadir}/bash-completion/completions/logger
 %{_datadir}/bash-completion/completions/lslogins
 %{_mandir}/man1/logger.1.gz
@@ -1270,7 +1298,6 @@
 %{_sbindir}/rcuuidd
 %{_unitdir}/uuidd.service
 %{_unitdir}/uuidd.socket
-/usr/lib/systemd/system-preset/50-uuidd.preset
 %endif
 
 %if %build_python_libmount

++++++ util-linux-systemd.spec ++++++
--- /var/tmp/diff_new_pack.6w7rsQ/_old  2017-03-01 23:39:15.238364036 +0100
+++ /var/tmp/diff_new_pack.6w7rsQ/_new  2017-03-01 23:39:15.242363472 +0100
@@ -16,7 +16,11 @@
 #
 
 
+%if 0%{?suse_version} >= 1330
 %bcond_without  enable_last
+%else
+%bcond_with     enable_last
+%endif
 
 Name:           util-linux-systemd
 %define _name   util-linux
@@ -112,7 +116,7 @@
 %endif
 %endif
 #END SECOND STAGE DEPENDENCIES
-Version:        2.29
+Version:        2.29.1
 Release:        0
 # util-linux is a base package and uuidd pre-requiring pwdutils pulls
 # that into the core build cycle.  pwdutils also pulls in the whole
@@ -123,7 +127,7 @@
 Url:            https://www.kernel.org/pub/linux/utils/util-linux/
 Source:         
ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/%{_name}-%{version}.tar.xz
 Source1:        util-linux-rpmlintrc
-Source4:        raw.init
+Source4:        raw.service
 Source5:        etc.raw
 Source6:        etc_filesystems
 Source7:        baselibs.conf
@@ -150,7 +154,9 @@
 ## util-linux patches
 ##
 # PATCH-EXTEND-UPSTREAM: Let `su' handle /sbin and /usr/sbin in path
-Patch4:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+Patch0:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+# PATCH-FEATURE-SLE 
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch bsc931634 
FATE319010 [email protected] -- Add support for setting logical blocksizes.
+Patch1:         
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #
 %if %build_util_linux
@@ -159,7 +165,6 @@
 # bnc#651598:
 Provides:       util-linux(fake+no-canonicalize)
 PreReq:         %install_info_prereq permissions
-PreReq:         %insserv_prereq %fillup_prereq /bin/sed
 Recommends:     %{name}-lang = %{version}
 Provides:       eject = 2.1.0-166.8
 Provides:       login = 4.0-33.7
@@ -174,6 +179,8 @@
 Conflicts:      sysvinit-tools < 2.88+-87
 # File conflicts of completion files with <= Leap 42.1 and <= SLE12 SP1 (fixed 
by SLE12 Update, boo#977259#c3).
 Conflicts:      bash-completion <= 2.1-13.1
+# The preset is provided by the presets branding package since 0.4 
(bsc#1012850)
+Conflicts:      systemd-presets-branding < 0.4
 # bnc#805684:
 %ifarch s390x
 Obsoletes:      s390-32
@@ -189,6 +196,13 @@
 Recommends:     adjtimex
 Recommends:     time
 Recommends:     which
+#
+%if 0%{?suse_version} < 1330
+# Using Conflicts as 
util-linux-losetup-Add-support-for-setting-logical-blocksize
+# now uses bit 5 of lo_flags with meaning LO_FLAGS_BLOCKSIZE bsc#966891
+#
+Conflicts:      kernel < 4.4
+%endif
 %else
 %if %build_python_libmount
 %else
@@ -383,7 +397,11 @@
 %endif
 %prep
 %setup -q -n %{_name}-%{version} -b 40
-%patch4 -p1
+%patch0 -p1
+%if 0%{?suse_version} < 1330
+# logical block size support in loop does not exist in Tumbleweed and upstream 
kernel yet
+%patch1 -p1
+%endif
 #
 # setctsid
 cp -p %{S:22} %{S:23} .
@@ -599,7 +617,7 @@
 
 %install
 %if %build_util_linux
-mkdir -p 
%{buildroot}{%{_sysconfdir}/{init.d,pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
+mkdir -p 
%{buildroot}{%{_sysconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
 install -m 644 %{SOURCE51} %{buildroot}%{_sysconfdir}/blkid.conf
 install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/login
 install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pam.d/remote
@@ -608,7 +626,6 @@
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su-l
 install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/default/su
-mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
 pushd ../klogconsole
 # klogconsole install
 make install DEST=%{buildroot}
@@ -672,8 +689,8 @@
 chmod 755 %{buildroot}%{_sbindir}/flushb
 # Install scripts to configure raw devices at boot time
 install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw   
%{buildroot}%{_sysconfdir}/raw
-install -m 755 $RPM_SOURCE_DIR/raw.init %{buildroot}%{_initddir}/raw
-ln -sf ../..%{_sysconfdir}/init.d/raw %{buildroot}%{_sbindir}/rcraw
+install -m 644 $RPM_SOURCE_DIR/raw.service %{buildroot}%{_unitdir}
+ln -sf service %{buildroot}%{_sbindir}/rcraw
 # upstream moved getopt examples from datadir to docdir but we keep
 # the old location because we would need to fix the manpage first
 mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/
@@ -732,14 +749,11 @@
 mkdir -p %{buildroot}%{_sbindir}
 mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid
 mkdir -p %{buildroot}/run/uuidd
-mkdir -p %{buildroot}/usr/lib/systemd/system-preset
 ln -s %{_bindir}/logger %{buildroot}/bin
 # clock.txt from uuidd is a ghost file
 touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcfstrim
-# Use socket activated uuidd by default.
-echo -e 'enable uuidd.socket\nenable uuidd.service' 
>%{buildroot}/usr/lib/systemd/system-preset/50-uuidd.preset
 %if !%build_util_linux
 %make_install
 %endif
@@ -748,8 +762,11 @@
 %fdupes -s %{buildroot}%{_prefix}
 
 %if %build_util_linux
+%pre
+%{service_add_pre raw.service}
+
 %post
-%{fillup_and_insserv raw}
+%{service_add_post raw.service}
 %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount 
%{_bindir}/umount
 %set_permissions %{_bindir}/su
 # Safely migrate PAM files from coreutils to util-linux
@@ -775,8 +792,11 @@
        sed -i 's:code=:codepage=:' etc/fstab
 fi
 
+%preun
+%{service_del_preun raw.service}
+
 %postun
-%{insserv_cleanup}
+%{service_del_postun raw.service}
 
 %verifyscript
 %verify_permissions -e %{_bindir}/wall -e %{_bindir}/write -e %{_bindir}/mount 
-e %{_bindir}/umount
@@ -825,7 +845,6 @@
 /usr/sbin/useradd -r -g uuidd -c "User for uuidd" \
   -d /var/run/uuidd uuidd 2>/dev/null || :
 %{service_add_pre uuidd.socket uuidd.service}
-%{?systemd_preset_pre}
 
 %post -n uuidd
 %{service_add_post uuidd.socket uuidd.service}
@@ -836,8 +855,6 @@
 %postun -n uuidd
 %{service_del_postun uuidd.socket uuidd.service}
 
-%posttrans -p /bin/bash -n uuidd
-%{?systemd_preset_posttrans}
 %endif
 
 %if %build_util_linux
@@ -860,7 +877,7 @@
 %doc Documentation/modems-with-agetty.txt
 %doc Documentation/mount.txt
 %doc Documentation/pg.txt
-%config %attr(744,root,root) %{_sysconfdir}/init.d/raw
+%{_unitdir}/raw.service
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/raw
 %config(noreplace) %{_sysconfdir}/filesystems
 %config(noreplace) %{_sysconfdir}/blkid.conf
@@ -1115,6 +1132,8 @@
 %dir %{_datadir}/getopt
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.bash
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.tcsh
+# These directories should be owned by bash-completion. But we don't want to
+# install them on build, so own these two directories:
 %dir %{_datadir}/bash-completion
 %dir %{_datadir}/bash-completion/completions
 %{_datadir}/bash-completion/completions/*
@@ -1251,6 +1270,15 @@
 /bin/logger
 %{_bindir}/logger
 %{_bindir}/lslogins
+#BEGIN bootstrap_hack
+%if 0%{?suse_version} < 1330
+# Build images of some products use util-linux that does not come from this
+# spec and does not own bash-completion dir. So we have to own own these two
+# directories in util-linux-systemd as well:
+%dir %{_datadir}/bash-completion
+%dir %{_datadir}/bash-completion/completions
+%endif
+#END bootstrap_hack
 %{_datadir}/bash-completion/completions/logger
 %{_datadir}/bash-completion/completions/lslogins
 %{_mandir}/man1/logger.1.gz
@@ -1270,7 +1298,6 @@
 %{_sbindir}/rcuuidd
 %{_unitdir}/uuidd.service
 %{_unitdir}/uuidd.socket
-/usr/lib/systemd/system-preset/50-uuidd.preset
 %endif
 
 %if %build_python_libmount

++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.6w7rsQ/_old  2017-03-01 23:39:15.274358960 +0100
+++ /var/tmp/diff_new_pack.6w7rsQ/_new  2017-03-01 23:39:15.278358395 +0100
@@ -16,7 +16,11 @@
 #
 
 
+%if 0%{?suse_version} >= 1330
 %bcond_without  enable_last
+%else
+%bcond_with     enable_last
+%endif
 
 Name:           util-linux
 %define _name   util-linux
@@ -112,7 +116,7 @@
 %endif
 %endif
 #END SECOND STAGE DEPENDENCIES
-Version:        2.29
+Version:        2.29.1
 Release:        0
 # util-linux is a base package and uuidd pre-requiring pwdutils pulls
 # that into the core build cycle.  pwdutils also pulls in the whole
@@ -123,7 +127,7 @@
 Url:            https://www.kernel.org/pub/linux/utils/util-linux/
 Source:         
ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/%{_name}-%{version}.tar.xz
 Source1:        util-linux-rpmlintrc
-Source4:        raw.init
+Source4:        raw.service
 Source5:        etc.raw
 Source6:        etc_filesystems
 Source7:        baselibs.conf
@@ -150,7 +154,9 @@
 ## util-linux patches
 ##
 # PATCH-EXTEND-UPSTREAM: Let `su' handle /sbin and /usr/sbin in path
-Patch4:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+Patch0:         make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
+# PATCH-FEATURE-SLE 
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch bsc931634 
FATE319010 [email protected] -- Add support for setting logical blocksizes.
+Patch1:         
util-linux-losetup-Add-support-for-setting-logical-blocksize.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #
 %if %build_util_linux
@@ -159,7 +165,6 @@
 # bnc#651598:
 Provides:       util-linux(fake+no-canonicalize)
 PreReq:         %install_info_prereq permissions
-PreReq:         %insserv_prereq %fillup_prereq /bin/sed
 Recommends:     %{name}-lang = %{version}
 Provides:       eject = 2.1.0-166.8
 Provides:       login = 4.0-33.7
@@ -174,6 +179,8 @@
 Conflicts:      sysvinit-tools < 2.88+-87
 # File conflicts of completion files with <= Leap 42.1 and <= SLE12 SP1 (fixed 
by SLE12 Update, boo#977259#c3).
 Conflicts:      bash-completion <= 2.1-13.1
+# The preset is provided by the presets branding package since 0.4 
(bsc#1012850)
+Conflicts:      systemd-presets-branding < 0.4
 # bnc#805684:
 %ifarch s390x
 Obsoletes:      s390-32
@@ -189,6 +196,13 @@
 Recommends:     adjtimex
 Recommends:     time
 Recommends:     which
+#
+%if 0%{?suse_version} < 1330
+# Using Conflicts as 
util-linux-losetup-Add-support-for-setting-logical-blocksize
+# now uses bit 5 of lo_flags with meaning LO_FLAGS_BLOCKSIZE bsc#966891
+#
+Conflicts:      kernel < 4.4
+%endif
 %else
 %if %build_python_libmount
 %else
@@ -383,7 +397,11 @@
 %endif
 %prep
 %setup -q -n %{_name}-%{version} -b 40
-%patch4 -p1
+%patch0 -p1
+%if 0%{?suse_version} < 1330
+# logical block size support in loop does not exist in Tumbleweed and upstream 
kernel yet
+%patch1 -p1
+%endif
 #
 # setctsid
 cp -p %{S:22} %{S:23} .
@@ -599,7 +617,7 @@
 
 %install
 %if %build_util_linux
-mkdir -p 
%{buildroot}{%{_sysconfdir}/{init.d,pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
+mkdir -p 
%{buildroot}{%{_sysconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir}}
 install -m 644 %{SOURCE51} %{buildroot}%{_sysconfdir}/blkid.conf
 install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/login
 install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pam.d/remote
@@ -608,7 +626,6 @@
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su
 install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su-l
 install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/default/su
-mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
 pushd ../klogconsole
 # klogconsole install
 make install DEST=%{buildroot}
@@ -672,8 +689,8 @@
 chmod 755 %{buildroot}%{_sbindir}/flushb
 # Install scripts to configure raw devices at boot time
 install -m 644 $RPM_SOURCE_DIR%{_sysconfdir}.raw   
%{buildroot}%{_sysconfdir}/raw
-install -m 755 $RPM_SOURCE_DIR/raw.init %{buildroot}%{_initddir}/raw
-ln -sf ../..%{_sysconfdir}/init.d/raw %{buildroot}%{_sbindir}/rcraw
+install -m 644 $RPM_SOURCE_DIR/raw.service %{buildroot}%{_unitdir}
+ln -sf service %{buildroot}%{_sbindir}/rcraw
 # upstream moved getopt examples from datadir to docdir but we keep
 # the old location because we would need to fix the manpage first
 mv %{buildroot}%{_docdir}/%{_name}/getopt %{buildroot}%{_datadir}/
@@ -732,14 +749,11 @@
 mkdir -p %{buildroot}%{_sbindir}
 mkdir -p %{buildroot}%{_localstatedir}/lib/libuuid
 mkdir -p %{buildroot}/run/uuidd
-mkdir -p %{buildroot}/usr/lib/systemd/system-preset
 ln -s %{_bindir}/logger %{buildroot}/bin
 # clock.txt from uuidd is a ghost file
 touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcuuidd
 ln -sf /sbin/service %{buildroot}/usr/sbin/rcfstrim
-# Use socket activated uuidd by default.
-echo -e 'enable uuidd.socket\nenable uuidd.service' 
>%{buildroot}/usr/lib/systemd/system-preset/50-uuidd.preset
 %if !%build_util_linux
 %make_install
 %endif
@@ -748,8 +762,11 @@
 %fdupes -s %{buildroot}%{_prefix}
 
 %if %build_util_linux
+%pre
+%{service_add_pre raw.service}
+
 %post
-%{fillup_and_insserv raw}
+%{service_add_post raw.service}
 %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount 
%{_bindir}/umount
 %set_permissions %{_bindir}/su
 # Safely migrate PAM files from coreutils to util-linux
@@ -775,8 +792,11 @@
        sed -i 's:code=:codepage=:' etc/fstab
 fi
 
+%preun
+%{service_del_preun raw.service}
+
 %postun
-%{insserv_cleanup}
+%{service_del_postun raw.service}
 
 %verifyscript
 %verify_permissions -e %{_bindir}/wall -e %{_bindir}/write -e %{_bindir}/mount 
-e %{_bindir}/umount
@@ -825,7 +845,6 @@
 /usr/sbin/useradd -r -g uuidd -c "User for uuidd" \
   -d /var/run/uuidd uuidd 2>/dev/null || :
 %{service_add_pre uuidd.socket uuidd.service}
-%{?systemd_preset_pre}
 
 %post -n uuidd
 %{service_add_post uuidd.socket uuidd.service}
@@ -836,8 +855,6 @@
 %postun -n uuidd
 %{service_del_postun uuidd.socket uuidd.service}
 
-%posttrans -p /bin/bash -n uuidd
-%{?systemd_preset_posttrans}
 %endif
 
 %if %build_util_linux
@@ -860,7 +877,7 @@
 %doc Documentation/modems-with-agetty.txt
 %doc Documentation/mount.txt
 %doc Documentation/pg.txt
-%config %attr(744,root,root) %{_sysconfdir}/init.d/raw
+%{_unitdir}/raw.service
 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/raw
 %config(noreplace) %{_sysconfdir}/filesystems
 %config(noreplace) %{_sysconfdir}/blkid.conf
@@ -1115,6 +1132,8 @@
 %dir %{_datadir}/getopt
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.bash
 %attr (755,root,root) %{_datadir}/getopt/getopt-parse.tcsh
+# These directories should be owned by bash-completion. But we don't want to
+# install them on build, so own these two directories:
 %dir %{_datadir}/bash-completion
 %dir %{_datadir}/bash-completion/completions
 %{_datadir}/bash-completion/completions/*
@@ -1251,6 +1270,15 @@
 /bin/logger
 %{_bindir}/logger
 %{_bindir}/lslogins
+#BEGIN bootstrap_hack
+%if 0%{?suse_version} < 1330
+# Build images of some products use util-linux that does not come from this
+# spec and does not own bash-completion dir. So we have to own own these two
+# directories in util-linux-systemd as well:
+%dir %{_datadir}/bash-completion
+%dir %{_datadir}/bash-completion/completions
+%endif
+#END bootstrap_hack
 %{_datadir}/bash-completion/completions/logger
 %{_datadir}/bash-completion/completions/lslogins
 %{_mandir}/man1/logger.1.gz
@@ -1270,7 +1298,6 @@
 %{_sbindir}/rcuuidd
 %{_unitdir}/uuidd.service
 %{_unitdir}/uuidd.socket
-/usr/lib/systemd/system-preset/50-uuidd.preset
 %endif
 
 %if %build_python_libmount

++++++ etc.raw ++++++
--- /var/tmp/diff_new_pack.6w7rsQ/_old  2017-03-01 23:39:15.450334143 +0100
+++ /var/tmp/diff_new_pack.6w7rsQ/_new  2017-03-01 23:39:15.450334143 +0100
@@ -4,12 +4,12 @@
 # to block devices
 #
 # The format of this file is:
-# raw<N>:<blockdev> 
+# raw<N>:<blockdev>
 #
 # example:
 # ---------
-# raw1:hdb1
+# raw1:sdb1
 #
-# this means: bind /dev/raw/raw1 to /dev/hdb1
+# this means: bind /dev/raw/raw1 to /dev/sdb1
 #
 # ...

++++++ raw.service ++++++
[Unit]
Description=raw devices
After=local-fs.target remote-fs.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c "\
        /sbin/modprobe raw;\
        /sbin/udevadm settle;\
        for i in `grep -v ^# /etc/raw`; do\
                rawdev=`echo $i | cut -f1 -d:`;\
                rawbind=`echo $i | cut -f2- -d:`;\
                /usr/sbin/raw /dev/raw/$rawdev /dev/$rawbind;\
        done"

[Install]
WantedBy=multi-user.target
++++++ util-linux-2.29.tar.xz -> util-linux-2.29.1.tar.xz ++++++
++++ 73427 lines of diff (skipped)

++++++ util-linux-losetup-Add-support-for-setting-logical-blocksize.patch ++++++
Index: util-linux-2.29/include/loopdev.h
===================================================================
--- util-linux-2.29.orig/include/loopdev.h
+++ util-linux-2.29/include/loopdev.h
@@ -41,6 +41,7 @@ enum {
        LO_FLAGS_AUTOCLEAR  = 4,        /* kernel >= 2.6.25 */
        LO_FLAGS_PARTSCAN   = 8,        /* kernel >= 3.2 */
        LO_FLAGS_DIRECT_IO  = 16,       /* kernel >= 4.2 */
+       LO_FLAGS_BLOCKSIZE  = 32,       /* Tentative */
 };
 
 #define LO_NAME_SIZE   64
@@ -120,7 +121,8 @@ enum {
        LOOPDEV_FL_NOIOCTL      = (1 << 6),
        LOOPDEV_FL_DEVSUBDIR    = (1 << 7),
        LOOPDEV_FL_CONTROL      = (1 << 8),     /* system with 
/dev/loop-control */
-       LOOPDEV_FL_SIZELIMIT    = (1 << 9)
+       LOOPDEV_FL_SIZELIMIT    = (1 << 9),
+       LOOPDEV_FL_BLOCKSIZE    = (1 << 10)
 };
 
 /*
@@ -173,6 +175,7 @@ int loopcxt_set_offset(struct loopdev_cx
 int loopcxt_set_sizelimit(struct loopdev_cxt *lc, uint64_t sizelimit);
 int loopcxt_set_flags(struct loopdev_cxt *lc, uint32_t flags);
 int loopcxt_set_backing_file(struct loopdev_cxt *lc, const char *filename);
+int loopcxt_set_blocksize(struct loopdev_cxt *lc, uint64_t blocksize);
 
 extern char *loopcxt_get_backing_file(struct loopdev_cxt *lc);
 extern int loopcxt_get_backing_devno(struct loopdev_cxt *lc, dev_t *devno);
Index: util-linux-2.29/lib/loopdev.c
===================================================================
--- util-linux-2.29.orig/lib/loopdev.c
+++ util-linux-2.29/lib/loopdev.c
@@ -1115,6 +1115,26 @@ int loopcxt_set_backing_file(struct loop
 }
 
 /*
+ * @lc: context
+ * @blocksize: logical blocksize for the device
+ *
+ * The setting is removed by loopcxt_set_device() loopcxt_next()!
+ *
+ * Returns: 0 on success, <0 on error.
+ */
+int loopcxt_set_blocksize(struct loopdev_cxt *lc, uint64_t blocksize)
+{
+       if (!lc)
+               return -EINVAL;
+
+       lc->info.lo_init[0] = blocksize;
+       lc->info.lo_flags |= LO_FLAGS_BLOCKSIZE;
+
+       DBG(CXT, ul_debugobj(lc, "set blocksize=%llu", (long long unsigned 
int)lc->info.lo_init[0]));
+       return 0;
+}
+
+/*
  * In kernels prior to v3.9, if the offset or sizelimit options
  * are used, the block device's size won't be synced automatically.
  * blockdev --getsize64 and filesystems will use the backing
Index: util-linux-2.29/sys-utils/losetup.c
===================================================================
--- util-linux-2.29.orig/sys-utils/losetup.c
+++ util-linux-2.29/sys-utils/losetup.c
@@ -398,6 +398,7 @@ static void usage(FILE *out)
 
        fputs(_(" -o, --offset <num>            start at offset <num> into 
file\n"), out);
        fputs(_("     --sizelimit <num>         device is limited to <num> 
bytes of the file\n"), out);
+       fputs(_(" -L, --logical-blocksize <size> set the logical block size to 
<size>\n"), out);
        fputs(_(" -P, --partscan                create a partitioned loop 
device\n"), out);
        fputs(_(" -r, --read-only               set up a read-only loop 
device\n"), out);
        fputs(_("     --direct-io[=<on|off>]    open backing file with 
O_DIRECT\n"), out);
@@ -447,7 +448,8 @@ static void warn_size(const char *filena
 
 static int create_loop(struct loopdev_cxt *lc,
                       int nooverlap, int lo_flags, int flags,
-                      const char *file, uint64_t offset, uint64_t sizelimit)
+                      const char *file, uint64_t offset, uint64_t sizelimit,
+                      uint64_t blocksize)
 {
        int hasdev = loopcxt_has_device(lc);
        int rc = 0;
@@ -533,6 +535,8 @@ static int create_loop(struct loopdev_cx
                        loopcxt_set_offset(lc, offset);
                if (flags & LOOPDEV_FL_SIZELIMIT)
                        loopcxt_set_sizelimit(lc, sizelimit);
+               if (flags & LOOPDEV_FL_BLOCKSIZE)
+                       loopcxt_set_blocksize(lc, blocksize);
                if (lo_flags)
                        loopcxt_set_flags(lc, lo_flags);
                if ((rc = loopcxt_set_backing_file(lc, file))) {
@@ -561,7 +565,7 @@ int main(int argc, char **argv)
        struct loopdev_cxt lc;
        int act = 0, flags = 0, no_overlap = 0, c;
        char *file = NULL;
-       uint64_t offset = 0, sizelimit = 0;
+       uint64_t offset = 0, sizelimit = 0, blocksize = 0;
        int res = 0, showdev = 0, lo_flags = 0;
        char *outarg = NULL;
        int list = 0;
@@ -571,7 +575,8 @@ int main(int argc, char **argv)
                OPT_SIZELIMIT = CHAR_MAX + 1,
                OPT_SHOW,
                OPT_RAW,
-               OPT_DIO
+               OPT_DIO,
+               OPT_BLOCKSIZE
        };
        static const struct option longopts[] = {
                { "all", 0, 0, 'a' },
@@ -584,6 +589,7 @@ int main(int argc, char **argv)
                { "associated", 1, 0, 'j' },
                { "json", 0, 0, 'J' },
                { "list", 0, 0, 'l' },
+               { "logical-blocksize", 1, 0, 'L' },
                { "noheadings", 0, 0, 'n' },
                { "offset", 1, 0, 'o' },
                { "output", 1, 0, 'O' },
@@ -657,6 +663,10 @@ int main(int argc, char **argv)
                        act = A_SHOW;
                        file = optarg;
                        break;
+               case OPT_BLOCKSIZE:
+                       blocksize = strtosize_or_err(optarg, _("failed to parse 
logical block size"));
+                       flags |= LOOPDEV_FL_BLOCKSIZE;
+                       break;
                case 'l':
                        list = 1;
                        break;
@@ -789,7 +799,8 @@ int main(int argc, char **argv)
 
        switch (act) {
        case A_CREATE:
-               res = create_loop(&lc, no_overlap, lo_flags, flags, file, 
offset, sizelimit);
+               res = create_loop(&lc, no_overlap, lo_flags, flags, file, 
offset,
+                                 sizelimit, blocksize);
                if (res == 0) {
                        if (showdev)
                                printf("%s\n", loopcxt_get_device(&lc));

Reply via email to