Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package build for openSUSE:Factory checked in at 2022-04-01 21:35:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/build (Old) and /work/SRC/openSUSE:Factory/.build.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "build" Fri Apr 1 21:35:28 2022 rev:141 rq:965580 version:20220329 Changes: -------- --- /work/SRC/openSUSE:Factory/build/build.changes 2022-03-17 17:01:26.677682890 +0100 +++ /work/SRC/openSUSE:Factory/.build.new.1900/build.changes 2022-04-01 21:36:16.765382917 +0200 @@ -1,0 +2,9 @@ +Tue Mar 29 08:46:07 UTC 2022 - Adrian Schr??ter <adr...@suse.de> + +- docker: Add support for --root and --installroot global zypper options +- debian cross build support via multi-arch (obsoleting cbinstall remnants) +- Tumbleweed config synced +- documentation updates +- smaller bugfixes + +------------------------------------------------------------------- Old: ---- obs-build-20220315.tar.gz New: ---- obs-build-20220329.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ build.spec ++++++ --- /var/tmp/diff_new_pack.M2AleM/_old 2022-04-01 21:36:17.577374011 +0200 +++ /var/tmp/diff_new_pack.M2AleM/_new 2022-04-01 21:36:17.581373967 +0200 @@ -28,7 +28,7 @@ Summary: A Script to Build SUSE Linux RPMs License: GPL-2.0-only OR GPL-3.0-only Group: Development/Tools/Building -Version: 20220315 +Version: 20220329 Release: 0 Source: obs-build-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ PKGBUILD ++++++ --- /var/tmp/diff_new_pack.M2AleM/_old 2022-04-01 21:36:17.621373528 +0200 +++ /var/tmp/diff_new_pack.M2AleM/_new 2022-04-01 21:36:17.625373484 +0200 @@ -1,5 +1,5 @@ pkgname=build -pkgver=20220315 +pkgver=20220329 pkgrel=0 pkgdesc="Build packages in sandbox" arch=('i686' 'x86_64') ++++++ _service ++++++ --- /var/tmp/diff_new_pack.M2AleM/_old 2022-04-01 21:36:17.645373265 +0200 +++ /var/tmp/diff_new_pack.M2AleM/_new 2022-04-01 21:36:17.649373221 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> - <param name="revision">20220315</param> - <param name="version">20220315</param> + <param name="revision">20220329</param> + <param name="version">20220329</param> <param name="url">https://github.com/openSUSE/obs-build.git</param> <param name="scm">git</param> <param name="extract">dist/build.changes</param> ++++++ build.dsc ++++++ --- /var/tmp/diff_new_pack.M2AleM/_old 2022-04-01 21:36:17.669373002 +0200 +++ /var/tmp/diff_new_pack.M2AleM/_new 2022-04-01 21:36:17.685372826 +0200 @@ -1,6 +1,6 @@ Format: 1.0 Source: build -Version: 20220315 +Version: 20220329 Binary: build Maintainer: Adrian Schroeter <adr...@suse.de> Architecture: all ++++++ debian.changelog ++++++ --- /var/tmp/diff_new_pack.M2AleM/_old 2022-04-01 21:36:17.733372300 +0200 +++ /var/tmp/diff_new_pack.M2AleM/_new 2022-04-01 21:36:17.737372256 +0200 @@ -1,4 +1,4 @@ -build (20220315) unstable; urgency=low +build (20220329) unstable; urgency=low * Update to current git trunk - add sles11sp2 build config and adapt autodetection ++++++ obs-build-20220315.tar.gz -> obs-build-20220329.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build/Deb.pm new/obs-build-20220329/Build/Deb.pm --- old/obs-build-20220315/Build/Deb.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build/Deb.pm 2022-03-29 10:52:43.000000000 +0200 @@ -366,6 +366,7 @@ $data->{'version'} = $2; $data->{'release'} = $3 if defined $3; $data->{'arch'} = $res{'ARCHITECTURE'}; + $data->{'multiarch'} = $res{'MULTI-ARCH'} if $res{'MULTI-ARCH'}; } if ($opts{'description'}) { $data->{'description'} = $res{'DESCRIPTION'}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build/Debrepo.pm new/obs-build-20220329/Build/Debrepo.pm --- old/obs-build-20220315/Build/Debrepo.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build/Debrepo.pm 2022-03-29 10:52:43.000000000 +0200 @@ -77,6 +77,7 @@ 'enhances' => 'enhances', 'filename' => 'location', 'source' => 'source', + 'multi-arch' => 'multiarch', ); my %tmap_checksums = ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build/Docker.pm new/obs-build-20220329/Build/Docker.pm --- old/obs-build-20220315/Build/Docker.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build/Docker.pm 2022-03-29 10:52:43.000000000 +0200 @@ -111,7 +111,10 @@ sub cmd_zypper { my ($ret, @args) = @_; # skip global options - shift @args while @args && $args[0] =~ /^-/; + while (@args && $args[0] =~ /^-/) { + shift @args if $args[0] eq '-R' || $args[0] eq '--root' || $args[0] eq '--installroot'; + shift @args; + } return unless @args; if ($args[0] eq 'in' || $args[0] eq 'install') { shift @args; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build/Expand.pm new/obs-build-20220329/Build/Expand.pm --- old/obs-build-20220315/Build/Expand.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build/Expand.pm 2022-03-29 10:52:43.000000000 +0200 @@ -308,6 +308,19 @@ return $ret; } +sub extractnative { + my ($config, $r, $p, $foreign) = @_; + my $ma = $config->{'multiarchh'}->{$p} || ''; + if ($ma eq 'foreign' || ($ma eq 'allowed' && $r =~ /:any/)) { + if ($expand_dbg && !grep {$r eq $_} @$foreign) { + print "added $r to foreign dependencies\n"; + } + push @$foreign, $r; + return 1; + } + return 0; +} + sub expand { my ($config, @p) = @_; @@ -341,6 +354,10 @@ @directdepsend = grep {!/^-/} splice(@directdepsend, @p + 1); } + my $extractnative; + (undef, $extractnative) = splice(@p, 0, 2) if @p > 1 && $p[0] eq '--extractnative--' && ref($p[1]); + undef $extractnative if $extractnative && !%{$config->{'multiarchh'} || {}}; + my %p; # expanded packages my @todo; # dependencies to install my @todo_inst; # packages we decided to install @@ -349,6 +366,7 @@ my @rec_todo; # installed todo my @error; my %aconflicts; # packages we are conflicting with + my @native; # handle direct conflicts for (grep {/^!/} @p) { @@ -383,6 +401,7 @@ next; } my $p = $q[0]; + next if $extractnative && extractnative($config, $r, $p, \@native); print "added $p because of $r (direct dep)\n" if $expand_dbg; push @todo_inst, $p; } @@ -404,6 +423,8 @@ } return (undef, @error) if @error; + push @native, '--directdepsend--' if $extractnative; + while (@todo || @todo_inst) { # install a set of chosen packages # ($aconficts must not be set for any of them) @@ -530,8 +551,9 @@ next; } if (@q == 1) { - push @todo_inst, $q[0]; + next if $extractnative && extractnative($config, $r, $q[0], \@native); print "added $q[0] because of $pp$r\n" if $expand_dbg; + push @todo_inst, $q[0]; next; } @@ -548,6 +570,7 @@ @q = @pq if @pq == 1; } if (@q == 1) { + next if $extractnative && extractnative($config, $r, $q[0], \@native); push @todo_inst, $q[0]; print "added $q[0] because of $pp$r\n" if $expand_dbg; next; @@ -579,6 +602,7 @@ } } if (@q == 1) { + next if $extractnative && extractnative($config, $r, $q[0], \@native); push @todo_inst, $q[0]; print "added $q[0] because of $pp$r\n" if $expand_dbg; next; @@ -594,6 +618,7 @@ print "recommended [@pq] among [@q]\n" if $expand_dbg; @q = @pq if @pq; if (@q == 1) { + next if $extractnative && extractnative($config, $r, $q[0], \@native); push @todo_inst, $q[0]; print "added $q[0] because of $pp$r\n" if $expand_dbg; next; @@ -617,6 +642,21 @@ return undef, @error if @error; } + if ($extractnative && @native) { + my %rdone; + for my $r (splice @native) { + next if $rdone{$r}++; + if ($r eq '--directdepsend--') { + push @native, $r; + next; + } + my @q = @{$whatprovides->{$r} || Build::addproviders($config, $r)}; + push @native, $r unless grep {$p{$_}} @q; + } + pop @native if @native && $native[-1] eq '--directdepsend--'; + push @$extractnative, @native; + } + return 1, (sort keys %p); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build/Intrepo.pm new/obs-build-20220329/Build/Intrepo.pm --- old/obs-build-20220315/Build/Intrepo.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build/Intrepo.pm 2022-03-29 10:52:43.000000000 +0200 @@ -111,6 +111,12 @@ $pkg->{'location'} = $loc if defined $loc; next; } + if ($tag eq 'M') { + chomp; + my $multiarch = (split(' ', $_, 2))[1]; + $pkg->{'multiarch'} = $multiarch if $multiarch; + next; + } my @ss; while (@s) { if ($nofiledeps && $s[0] =~ /^\//) { @@ -178,6 +184,7 @@ print $fh "O:$id".join(' ', @{$pkg->{'obsoletes'}})."\n" if $pkg->{'obsoletes'}; print $fh "r:$id".join(' ', @{$pkg->{'recommends'}})."\n" if $pkg->{'recommends'}; print $fh "s:$id".join(' ', @{$pkg->{'supplements'}})."\n" if $pkg->{'supplements'}; + print $fh "M:$id$pkg->{'multiarch'}\n" if $pkg->{'multiarch'}; print $fh "I:$id".getbuildid($pkg)."\n"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/Build.pm new/obs-build-20220329/Build.pm --- old/obs-build-20220315/Build.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/Build.pm 2022-03-29 10:52:43.000000000 +0200 @@ -369,8 +369,6 @@ delete $config->{'save_expanded'}; $config->{'preinstall'} = []; $config->{'vminstall'} = []; - $config->{'cbpreinstall'} = []; - $config->{'cbinstall'} = []; $config->{'runscripts'} = []; $config->{'required'} = []; $config->{'support'} = []; @@ -737,6 +735,8 @@ # Delivers all packages which get used for the cross building sysroot sub get_sysroot { my ($config, $subpacks, @deps) = @_; + my @extractnative; + (@extractnative) = splice(@deps, 0, 2) if @deps > 1 && $deps[0] eq '--extractnative--' && ref($deps[1]); my @ndeps = grep {/^-/} @deps; my %ndeps = map {$_ => 1} @ndeps; my @directdepsend; @@ -757,7 +757,7 @@ @directdepsend = grep {!$ndeps{"-$_"}} @directdepsend; unshift @directdepsend, '--directdepsend--' if @directdepsend; } - @deps = expand($config, @deps, @ndeps, @directdepsend); + @deps = expand($config, @extractnative, @deps, @ndeps, @directdepsend); return @deps; } @@ -880,10 +880,6 @@ return @{$config->{'runscripts'}}; } -### just for API compability -sub get_cbpreinstalls { return (); } -sub get_cbinstalls { return (); } - ########################################################################### sub parse_depfile { @@ -911,6 +907,7 @@ my %pkgobsoletes; my %recommends; my %supplements; + my %multiarch; for my $pkgid (sort keys %$pkginfo) { my $pkg = $pkginfo->{$pkgid}; $provides{$pkgid} = $pkg->{'provides'} if $pkg->{'provides'}; @@ -919,6 +916,7 @@ $pkgobsoletes{$pkgid} = $pkg->{'obsoletes'} if $pkg->{'obsoletes'}; $recommends{$pkgid} = $pkg->{'recommends'} if $pkg->{'recommends'}; $supplements{$pkgid} = $pkg->{'supplements'} if $pkg->{'supplements'}; + $multiarch{$pkgid} = $pkg->{'multiarch'} if $pkg->{'multiarch'}; } $config->{'providesh'} = \%provides; $config->{'requiresh'} = \%requires; @@ -926,6 +924,7 @@ $config->{'pkgobsoletesh'} = \%pkgobsoletes; $config->{'recommendsh'} = \%recommends; $config->{'supplementsh'} = \%supplements; + $config->{'multiarchh'} = \%multiarch; makewhatprovidesh($config); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/PBuild/Checker.pm new/obs-build-20220329/PBuild/Checker.pm --- old/obs-build-20220315/PBuild/Checker.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/PBuild/Checker.pm 2022-03-29 10:52:43.000000000 +0200 @@ -395,7 +395,7 @@ my $hdeps; if ($ctx->{'bconf_host'} && !$p->{'native'}) { my $subpacks = $ctx->{'subpacks'}; - $hdeps = [ @{$p->{'dep_host'} || $p->{'dep'} || []} ]; + $hdeps = [ @{$p->{'dep_host'} || $p->{'dep'} || []}, @{$p->{'dep_native'} || []} ]; @$hdeps = Build::get_deps($ctx->{'bconf_host'}, $subpacks->{$p->{'name'}}, @$hdeps); if (!shift @$hdeps) { return ('unresolvable', 'host: '.join(', ', @$hdeps)); @@ -626,6 +626,7 @@ my $genbuildreqs = $p->{'genbuildreqs'}; my @bdeps = grep {!/^\// || $bconf->{'fileprovides'}->{$_}} @{$p->{'prereq'} || []}; unshift @bdeps, '--directdepsend--' if @bdeps; + unshift @bdeps, @{$p->{'dep_native'} || []}; unshift @bdeps, @{$genbuildreqs->[1]} if $genbuildreqs; if (!$kiwimode && $ctx->{'bconf_host'}) { unshift @bdeps, @{$p->{'dep_host'} || $p->{'dep'} || []}, @btdeps; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/PBuild/Expand.pm new/obs-build-20220329/PBuild/Expand.pm --- old/obs-build-20220315/PBuild/Expand.pm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/PBuild/Expand.pm 2022-03-29 10:52:43.000000000 +0200 @@ -121,7 +121,9 @@ } my @edeps; if ($cross) { - @edeps = Build::get_sysroot($bconf, $subpacks->{$p->{'name'}}, @deps); + my @native; + @edeps = Build::get_sysroot($bconf, $subpacks->{$p->{'name'}}, '--extractnative--', \@native, @deps); + $p->{'dep_native'} = \@native; } else { @edeps = Build::get_deps($bconf, $subpacks->{$p->{'name'}}, @deps); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/build new/obs-build-20220329/build --- old/obs-build-20220315/build 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/build 2022-03-29 10:52:43.000000000 +0200 @@ -1424,7 +1424,7 @@ set_build_arch -if test "$DO_INIT" = false -a -n "$RUN_SHELL"; then +if test "$DO_INIT" = false -a -n "$RUN_SHELL" -a -z "$VM_TYPE"; then mount_stuff BUILD_USER=root test -n "$NOROOTFORBUILD" && BUILD_USER=abuild diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/build-pkg-deb new/obs-build-20220329/build-pkg-deb --- old/obs-build-20220315/build-pkg-deb 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/build-pkg-deb 2022-03-29 10:52:43.000000000 +0200 @@ -180,6 +180,29 @@ fi } +pkg_sysrootinstall_deb() { + if test "x$1" = "x--prepare" ; then + assert_dir_path "$BUILD_SYSROOT" + chroot $BUILD_ROOT mkdir -p "$BUILD_SYSROOT" + local target=$(queryconfig target --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH") + if test -n "$target" ; then + local debarch=$(deb_chroot $BUILD_ROOT dpkg-architecture -q DEB_HOST_ARCH --host-type "$target") + if test -n "$debarch" ; then + echo "Adding architecture $debarch" + deb_chroot $BUILD_ROOT dpkg --add-architecture "$debarch" + fi + fi + return + fi + if test "x$1" = "x--finalize" ; then + return + fi + + ( deb_chroot $BUILD_ROOT dpkg --install $DEB_UNSAFE_IO --force-depends .init_b_cache/$PKG.deb 2>&1 || touch $BUILD_ROOT/exit ) | \ + perl -ne '$|=1;/^(Configuration file|Installing new config file|Selecting previously deselected|Selecting previously unselected|\(Reading database|Unpacking |Setting up|Creating config file|Preparing to replace dpkg|Preparing to unpack )/||/^$/||print' +} + + # Local Variables: # mode: Shell-script # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/build-recipe-dsc new/obs-build-20220329/build-recipe-dsc --- old/obs-build-20220315/build-recipe-dsc 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/build-recipe-dsc 2022-03-29 10:52:43.000000000 +0200 @@ -158,8 +158,20 @@ DSC_BUILD_CMD="source $TOPDIR/SOURCES/build.script" chmod +x $buildroot/$TOPDIR/SOURCES/build.script fi + if test -z "$ABUILD_TARGET" ; then + ABUILD_TARGET=$(queryconfig target --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" ) + test -z "$ABUILD_TARGET" || echo "build target is $ABUILD_TARGET" + fi + if test -n "$ABUILD_TARGET" ; then + DSC_BUILD_CMD="$DSC_BUILD_CMD --host-type $ABUILD_TARGET" + fi + if test -n "$ABUILD_TARGET" -a -d "$BUILD_ROOT/.build.sysroot" ; then + DSC_BUILD_CMD="$DSC_BUILD_CMD -Pcross,nocheck" + DSC_BUILD_OPTIONS="$DSC_BUILD_OPTIONS nocheck" + DSC_BUILD_OPTIONS="${DSC_BUILD_OPTIONS# }" + fi - chroot $buildroot su -c "export DEB_BUILD_OPTIONS=${DSC_BUILD_OPTIONS} ; cd $TOPDIR/BUILD && $DSC_BUILD_CMD" - $BUILD_USER < /dev/null && BUILD_SUCCEEDED=true + chroot $buildroot su -c "export DEB_BUILD_OPTIONS='${DSC_BUILD_OPTIONS}' ; cd $TOPDIR/BUILD && $DSC_BUILD_CMD" - $BUILD_USER < /dev/null && BUILD_SUCCEEDED=true if test "$BUILD_SUCCEEDED" = true -a "$DO_CHECKS" != "false" && ( chroot $buildroot su -c "which lintian > /dev/null" - $BUILD_USER < /dev/null ); then DEB_CHANGESFILE=${DEB_DSCFILE%.dsc}$OBS_DCH_RELEASE"_"$(chroot $buildroot su -c 'dpkg-architecture -qDEB_BUILD_ARCH')".changes" chroot $buildroot su -c "cd $TOPDIR && echo Running lintian && (set -x && lintian -i $TOPDIR/$DEB_CHANGESFILE)" - $BUILD_USER < /dev/null || BUILD_SUCCEEDED=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/build-vm new/obs-build-20220329/build-vm --- old/obs-build-20220315/build-vm 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/build-vm 2022-03-29 10:52:43.000000000 +0200 @@ -1198,13 +1198,13 @@ } vm_setup_network() { - if test -x /sbin/ip ; then + if test -x /sbin/ip ; then ip addr add 127.0.0.1/8 dev lo ip addr add ::1/128 dev lo ip link set lo up - else - ifconfig lo 127.0.0.1 up - ifconfig lo add ::1/128 + elif test -x /sbin/ifconfig ; then + ifconfig lo 127.0.0.1 up + ifconfig lo add ::1/128 fi . /.build/build.data if test -n "$VM_NETWORK"; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/call-podman new/obs-build-20220329/call-podman --- old/obs-build-20220315/call-podman 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/call-podman 2022-03-29 10:52:43.000000000 +0200 @@ -45,13 +45,13 @@ mount --make-rprivate / # create loopback interface - if test -x /sbin/ip ; then + if test -x /sbin/ip ; then ip addr add 127.0.0.1/8 dev lo ip addr add ::1/128 dev lo ip link set lo up - else - ifconfig lo 127.0.0.1 up - ifconfig lo add ::1/128 + elif test -x /sbin/ifconfig ; then + ifconfig lo 127.0.0.1 up + ifconfig lo add ::1/128 fi fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/configs/tumbleweed.conf new/obs-build-20220329/configs/tumbleweed.conf --- old/obs-build-20220315/configs/tumbleweed.conf 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/configs/tumbleweed.conf 2022-03-29 10:52:43.000000000 +0200 @@ -131,9 +131,7 @@ BuildFlags: useccache:bitcoin BuildFlags: useccache:ceph BuildFlags: useccache:chromium - BuildFlags: useccache:glib2 BuildFlags: useccache:gtk3 - BuildFlags: useccache:gtk3:doc BuildFlags: useccache:llvm9 BuildFlags: useccache:nodejs-electron buildflags: useccache:tensorflow @@ -145,8 +143,9 @@ buildflags: useccache:tensorflow:hpc-openmpi2 buildflags: useccache:tensorflow:lite buildflags: useccache:tensorflow:standard -# ccache 4.x breaks webkit2gtk3 -#BuildFlags: useccache:webkit2gtk3 + BuildFlags: useccache:webkit2gtk3:gtk3 + BuildFlags: useccache:webkit2gtk3:gtk3-soup2 + BuildFlags: useccache:webkit2gtk3:gtk4 %endif # switch to kiwi v8 @@ -164,10 +163,13 @@ Preinstall: liblua5_4-5 FileProvides: /bin/bash bash +FileProvides: /usr/bin/bash bash FileProvides: /bin/sh bash-sh busybox-sh +FileProvides: /usr/bin/sh bash-sh busybox-sh Prefer: bash-sh FileProvides: /bin/csh tcsh FileProvides: /bin/hostname hostname busybox-hostname +Prefer: -busybox-hostname FileProvides: /usr/bin/hostname hostname busybox-hostname FileProvides: /bin/logger util-linux-systemd FileProvides: /sbin/netconfig sysconfig-netconfig @@ -227,7 +229,15 @@ Prefer: libdb-4_8-devel VMinstall: util-linux libmount1 perl-base libdb-4_8 libblkid1 libuuid1 libsmartcols1 libcrypt1 VMinstall: kernel-obs-build -VMInstall: iproute2 libmnl0 +# iproute seems not to be used anymore nowadays; the builders have working localnet without it +# and on OBS we don't support 'network' access anyway, so the rest of the config is never reached +# 2022-03-23 - dimstar +# VMInstall: iproute2 libmnl0 + +# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost) +# build has alternative ways to inject hostname nowadays - removed 2022-03-23 - dimstar +#Support: hostname +#Prefer: -busybox-hostname # Use the x86_64 kernel on i586 builds - boo#1178762 - Slow down in OBS since kernel 5.6.0 on 32bit ExportFilter: ^kernel-obs-build.*\.x86_64.rpm$ . i586 @@ -266,6 +276,34 @@ ExportFilter: ^novell-messenger-client.*\.i586.rpm$ . x86_64 ExportFilter: ^openCryptoki-32bit.*\.s390.rpm$ . s390x +############ +# For QEMU # +############ +# +# Firmwares are built (if possible) once per "port". This reduces build time, e.g., as compared +# to cross-compiling everything on everything, and improve consistency, while keeping things self +# contained, within ports, which is especially important for openSUSE:Factory +# +# ### x86 firmwares +# They are built on: x86_64 and aarch64. The x86_64 build can then be imported in i586, and the +# aarch64 one in armv7l. We're not yet able to build them on any PPC arch (but are working on it) +# so, for this devel project, we're exporting them there too (and for Factory, we have an aggregate). +# We're also not able to build them on zsystem and riscv, so export them there as well, here in the +# devel project (for Factory, we just miss them in s390, while riscv is special in its own way). +ExportFilter: ^qemu-ipxe.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64 +ExportFilter: ^qemu-seabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64 +ExportFilter: ^qemu-vgabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64 +ExportFilter: ^qemu-sgabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64 +# ### PPC firmwares +# They are built on: x86_64, aarch64 and ppc64le. The x86_build can then by imported in i586, the +# aarch64 one in armv7l and the ppc64le one in ppc and ppc64. As for the x86 firmwares, here in the +# devel project, we export them directly to all the arch-es that can't build them, just for convenience. +ExportFilter: ^qemu-skiboot.*\.noarch\.rpm$ . i586 armv7l ppc s390x riscv64 +ExportFilter: ^qemu-SLOF.*\.noarch\.rpm$ . i586 armv7l ppc s390x riscv64 +# TODO: does the 'qemu-edk2' package still exist? +ExportFilter: ^qemu-edk2.*\.noarch\.rpm$ . i586 armv7l aarch64 ppc ppc64 ppc64le s390x riscv64 +ExportFilter: ^qemu-microvm.*\.noarch\.rpm$ . i586 armv7l aarch64 ppc ppc64 ppc64le s390x riscv64 + Required: rpm-build # Build all packages with -pie enabled Required: gcc-PIE @@ -277,9 +315,6 @@ Support: brp-check-suse Support: post-build-checks -# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost) -Support: hostname -Prefer: -busybox-hostname # remove build-compare support to disable "same result" package dropping Support: build-compare @@ -343,7 +378,7 @@ Prefer: krb5-mini krb5-mini-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libdebuginfod1 debuginfod-client -Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo +Prefer: libudev-mini1 udev-debuginfo libudev1-debuginfo Prefer: libuna-mini-devel libuna1-mini Prefer: libunbound-devel-mini Prefer: tomcat:log4j12 @@ -368,6 +403,7 @@ Ignore: postgresql13-devel-mini:this-is-only-for-build-envs Ignore: postgresql14-devel-mini:this-is-only-for-build-envs Ignore: systemd-mini:this-is-only-for-build-envs +Ignore: systemd-mini-container:this-is-only-for-build-envs Ignore: udev-mini:this-is-only-for-build-envs # Ring0 packages should not pull in 'info' - making the base VM smaller @@ -427,10 +463,13 @@ Prefer: spamassassin:curl # Python3 exists in multiple versions - we currently favor 3.8 (our default): -Prefer: -python36 -python39 +Prefer: -python39 Prefer: -python39-hotdoc Prefer: -python39-txt2tags -python310-txt2tags +# have choice for python3-magic: python38-magic python38-python-magic +Prefer: -python38-magic -python39-magic -python310-magic + # have choice for (python36-qt5 or python36-PyQt6) needed by python36-pytest-qt Prefer: -python39-PyQt6 -python38-PyQt6 -python3-pyside2 # man and mandoc provide man; mandoc claims to be lightweight, but it was never discussed to be the new default @@ -439,6 +478,9 @@ # go exists in mutliple versions by now - we prefer the 'unversioned package' Prefer: go -go1.13 +# have choice for kernel >= 4.1.0 needed by libbcc0: kernel-debug kernel-default kernel-default-base kernel-kvmsmall kernel-vanilla +Prefer: kernel-default-base + # have choice for kubernetes-kubelet-common (de-prefer the old versions, ensuring to have a new unresolvable when a new version shows up) Prefer: -kubernetes1.18-kubelet-common -kubernetes1.19-kubelet-common -kubernetes1.20-kubelet-common -kubernetes1.21-kubelet-common -kubernetes1.22-kubelet-common @@ -449,9 +491,8 @@ Prefer: -budgie-desktop # python-tornado exists in multiple versions, the meta-package python-tornado defines the system default -Prefer: -python36-tornado5 -Prefer: python38-tornado -python38-tornado5 -Prefer: python39-tornado -python39-tornado5 +Prefer: python38-tornado +Prefer: python39-tornado Prefer: python310-tornado # There are multiple PK backends available. Favor the openSUSE own zypp backend @@ -496,7 +537,7 @@ # azure-cli reports: have choice for python3-vsts needed by python3-azure-functions-devops-build: python3-azure-devops python3-vsts # Use the real package name -Prefer: python36-vsts python38-vsts python39-vsts +Prefer: python38-vsts python39-vsts # have choice for (sysvinit(network) or service(network)) needed by sysconfig: NetworkManager wicked-service Prefer: -NetworkManager @@ -727,7 +768,6 @@ Prefer: -liblbxutil-devel-32bit Prefer: -liblcms2-devel-32bit Prefer: -libmount-devel-32bit -Prefer: -libnetapi-devel-32bit Prefer: -libnettle-devel-32bit Prefer: -libnl3-devel-32bit Prefer: -libnotify-devel-32bit @@ -780,7 +820,6 @@ Prefer: -libstdc++-devel-32bit Prefer: -libtasn1-devel-32bit Prefer: -libtiff-devel-32bit -Prefer: -libudev-devel-32bit Prefer: -libunistring-devel-32bit Prefer: -libusb-1_0-devel-32bit Prefer: -libuuid-devel-32bit @@ -802,7 +841,6 @@ Prefer: -libxml2-devel-32bit Prefer: -libxslt-devel-32bit Prefer: -libyajl-devel-32bit -Prefer: -libyaz-devel-32bit Prefer: -libzstd-devel-32bit Prefer: -llvm10-LTO-devel-32bit Prefer: -llvm10-devel-32bit @@ -862,14 +900,7 @@ Prefer: -zziplib-devel-32bit # Ruby stuff - quite a few packages exist in multiple versions in the distro; in each case, the Preference is on the 'unversioned' package -Prefer: ruby2.7-rubygem-fast_gettext ruby3.1-rubygem-fast_gettext -Prefer: ruby2.7-rubygem-i18n -Prefer: ruby2.7-rubygem-rack -Prefer: ruby2.7-rubygem-sass-rails -Prefer: ruby2.7-rubygem-sassc -Prefer: ruby2.7-rubygem-thor -Prefer: ruby2.7-rubygem-listen ruby2.7-rubygem-mime-types ruby2.7-rubygem-builder -Prefer: -ruby2.7-rubygem-puma-4 +Prefer: ruby3.1-rubygem-fast_gettext # We have opencv and opencv3 - as usual, the unversioned one should win Prefer: opencv-devel @@ -908,7 +939,7 @@ Prefer: poppler-tools Prefer: libjpeg8-devel libjpeg-turbo Prefer: microcode_ctl:kernel-default -Prefer: gnu-jaf yast2-control-center-qt +Prefer: yast2-control-center-qt Prefer: wine Prefer: ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_3-api Prefer: -servletapi4 -servletapi5 @@ -920,8 +951,6 @@ Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -geronimo-jta-1_1-api javamail Prefer: rhino:xmlbeans-mini -Prefer: mx4j:log4j12-mini -Prefer: maven-doxia-module-fo:log4j12-mini Prefer: rpcbind Prefer: wicked-service @@ -1359,7 +1388,7 @@ Prefer: %{rb_default_ruby_suffix}-rubygem-mini_portile2 Prefer: %{rb_default_ruby_suffix}-rubygem-ronn Prefer: %{rb_default_ruby_suffix}-rubygem-rspec -Prefer: -ruby3.0-rubygem-rspec-3_5 -ruby2.7-rubygem-rspec-3_5 -ruby3.1-rubygem-rspec-3_5 +Prefer: -ruby3.1-rubygem-rspec-3_5 Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus Prefer: %{rb_default_ruby_suffix}-rubygem-sass Prefer: %{rb_default_ruby_suffix}-rubygem-sass-rails diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/dist/build.changes new/obs-build-20220329/dist/build.changes --- old/obs-build-20220315/dist/build.changes 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/dist/build.changes 2022-03-29 10:52:43.000000000 +0200 @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Tue Mar 29 08:46:07 UTC 2022 - Adrian Schr??ter <adr...@suse.de> + +- docker: Add support for --root and --installroot global zypper options +- debian cross build support via multi-arch (obsoleting cbinstall remnants) +- Tumbleweed config synced +- documentation updates +- smaller bugfixes + +------------------------------------------------------------------- Tue Mar 15 15:55:55 UTC 2022 - Adrian Schr??ter <adr...@suse.de> - regression fix from last release, avoid calling shutdown handler diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/docs/build_config.adoc new/obs-build-20220329/docs/build_config.adoc --- old/obs-build-20220315/docs/build_config.adoc 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/docs/build_config.adoc 2022-03-29 10:52:43.000000000 +0200 @@ -66,40 +66,40 @@ following values for FLAG are usable. All flags with a leading colon (:) require an additional parameter directly following them. -* vmfstype: +* vmfstype:TYPE Defines a specific file system when building inside of a VM. Possible values are ext2, ext3, ext4, btrfs, xfs, reiserfs (v3). -* vmfsoptions: +* vmfsoptions:OPTIONS There is also an option to disable directory indexing for ext2, ext3, and ext4 file systems. This makes file ordering inside of directories reproducible but may have a negative performance impact. To apply this, specify vmfsoptions:nodirindex -* kiwiprofile: +* kiwiprofile:PROFILE builds the selected profile in &kiwi; appliance builds. -* logidlelimit: +* logidlelimit:SECONDS Build jobs which don???t create any output get aborted after some time. This flag can be used to modify the limit. Specify the seconds behind flag. -* excludebuild: +* excludebuild:PACKAGE Exclude a package from building. _multibuild flavors can be specified via package:flavor syntax. -* onlybuild: +* onlybuild:PACKAGE DANGER: this may remove many build results when introduced the first time! It can be used to maintain a whitelist of packages to be built. All other packages will turn to excluded state. -* useccache: +* useccache:PACKAGE Configure usage of ccache when building packages that match the value of this parameter. The ccache package will automatically be installed and @@ -117,7 +117,15 @@ order they are configured in the meta configuration, starting from the top. -* ccachetype: +An alternative way to enable caching based on build dependencies is to +add "--enable-cache" as dependency, for example via a Substitute rule: + + Substitute: gcc-c++ gcc-c++ --enable-ccache + +This will always enable ccache when a direct build depdency to gcc-c++ +is required. + +* ccachetype:TYPE Defines the ccache implementation, possible values are: ccache, sccache @@ -349,6 +357,11 @@ Defines the target architecture. This can be used to build for i686 on i586 schedulers for example. +==== Target: GNU_TRIPLET (DEB only) + +Defines the target architecture via a gnu triplet (not the debian +architecture!). For example arm-linux-gnueabihf for armv7hl builds. + ==== Type: TYPE Build recipe type. This is the format of the file which provides the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/docs/pbuild.adoc new/obs-build-20220329/docs/pbuild.adoc --- old/obs-build-20220315/docs/pbuild.adoc 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/docs/pbuild.adoc 2022-03-29 10:52:43.000000000 +0200 @@ -128,71 +128,8 @@ (eg. gdb, strace, valgrind or assumed missing dependencies for testing). -=== Remote Assets -Remote Assets can be defined inside of the build descriptions. They are resources from a remote -servers and will be downloaded and validated by pbuild before the corresponding build is started. - -Supported protocols for resources using an url are: - - * http - * https - * git+http - * git+https - -This depends on the build description format as described below. - -==== rpm spec files - -Source lines in spec files can declare remote assets. Rpm is already supporting to use -an URL as source definition. A comment before such a line marks it as remote asset for pbuild: - - #!RemoteAsset - Source: <URL> - -It is also possible to specify a checksum to make sure that the asset is correct. - - #!RemoteAsset: <CHECKSUM> - Source: <URL> - -An alternative is just to use the - - #!RemoteAssetUrl: <URL> - -marker without any Source: tag when the downloaded file should not become -part of the source rpm. - -==== kiwi build description - -The kiwi format is not supporting remote source specifications, but they can be -specified via XML comments. - - <!-- OBS-RemoteAsset: <URL> --> - -The resulting downloaded file can be copied into the image using - - <!-- OBS-CopyToImage: <source> <destination> --> - -The kiwi profile name is added to container names by default. This can be -disabled via - - <!-- OBS-DoNotAppendProfileToContainername --> - -==== Dockerfile description - -Has no support for assets yet. - -==== Arch Linux PKGBUILD - -PKGBuild files already contain the needed URLs and Checksums, so no extra -treatment is needed. - -==== FedPkg "sources" file - -The sources file contains a list of file names with checksums. PBuild will -automatically download the missing files from a FedPkg Server that needs -to be configured in the project config via the "AssetsURL:" directive or set -with the "--assets" option. +include::source_assets.adoc[] include::build_config.adoc[] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/docs/pbuild.html new/obs-build-20220329/docs/pbuild.html --- old/obs-build-20220315/docs/pbuild.html 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/docs/pbuild.html 2022-03-29 10:52:43.000000000 +0200 @@ -1112,7 +1112,7 @@ <div class="ulist"><ul> <li> <p> -vmfstype: +vmfstype:TYPE </p> </li> </ul></div> @@ -1121,7 +1121,7 @@ <div class="ulist"><ul> <li> <p> -vmfsoptions: +vmfsoptions:OPTIONS </p> </li> </ul></div> @@ -1132,7 +1132,7 @@ <div class="ulist"><ul> <li> <p> -kiwiprofile: +kiwiprofile:PROFILE </p> </li> </ul></div> @@ -1140,7 +1140,7 @@ <div class="ulist"><ul> <li> <p> -logidlelimit: +logidlelimit:SECONDS </p> </li> </ul></div> @@ -1150,7 +1150,7 @@ <div class="ulist"><ul> <li> <p> -excludebuild: +excludebuild:PACKAGE </p> </li> </ul></div> @@ -1159,7 +1159,7 @@ <div class="ulist"><ul> <li> <p> -onlybuild: +onlybuild:PACKAGE </p> </li> </ul></div> @@ -1169,7 +1169,7 @@ <div class="ulist"><ul> <li> <p> -useccache: +useccache:PACKAGE </p> </li> </ul></div> @@ -1187,10 +1187,18 @@ that package will be used. The repositories will be searched in the order they are configured in the meta configuration, starting from the top.</p></div> +<div class="paragraph"><p>An alternative way to enable caching based on build dependencies is to +add "--enable-cache" as dependency, for example via a Substitute rule:</p></div> +<div class="literalblock"> +<div class="content"> +<pre><code>Substitute: gcc-c++ gcc-c++ --enable-ccache</code></pre> +</div></div> +<div class="paragraph"><p>This will always enable ccache when a direct build depdency to gcc-c++ +is required.</p></div> <div class="ulist"><ul> <li> <p> -ccachetype: +ccachetype:TYPE </p> </li> </ul></div> @@ -1475,7 +1483,12 @@ i586 schedulers for example.</p></div> </div> <div class="sect3"> -<h4 id="_type_type">3.1.27. Type: TYPE</h4> +<h4 id="_target_gnu_triplet_deb_only">3.1.27. Target: GNU_TRIPLET (DEB only)</h4> +<div class="paragraph"><p>Defines the target architecture via a gnu triplet (not the debian +architecture!). For example arm-linux-gnueabihf for armv7hl builds.</p></div> +</div> +<div class="sect3"> +<h4 id="_type_type">3.1.28. Type: TYPE</h4> <div class="paragraph"><p>Build recipe type. This is the format of the file which provides the build description. This gets usually autodetected, but in some rare cases it can be set here to either one of these: spec, dsc, kiwi, @@ -1485,7 +1498,7 @@ type from the binary type.</p></div> </div> <div class="sect3"> -<h4 id="_vminstall_packages">3.1.28. VMInstall: PACKAGES</h4> +<h4 id="_vminstall_packages">3.1.29. VMInstall: PACKAGES</h4> <div class="paragraph"><p>Like Preinstall, but these packages get only installed when a virtual machine like Xen or KVM is used for building. Usually packages like mount are listed here.</p></div> @@ -1651,7 +1664,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2022-03-07 10:46:30 CET + 2022-03-24 09:17:43 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/docs/source_assets.adoc new/obs-build-20220329/docs/source_assets.adoc --- old/obs-build-20220315/docs/source_assets.adoc 1970-01-01 01:00:00.000000000 +0100 +++ new/obs-build-20220329/docs/source_assets.adoc 2022-03-29 10:52:43.000000000 +0200 @@ -0,0 +1,65 @@ +=== Remote Assets + +Remote Assets can be defined inside of the build descriptions. They are resources from a remote +servers and will be downloaded and validated by pbuild before the corresponding build is started. + +Supported protocols for resources using an url are: + + * http + * https + * git+http + * git+https + +This depends on the build description format as described below. + +==== rpm spec files + +Source lines in spec files can declare remote assets. Rpm is already supporting to use +an URL as source definition. A comment before such a line marks it as remote asset for pbuild: + + #!RemoteAsset + Source: <URL> + +It is also possible to specify a checksum to make sure that the asset is correct. + + #!RemoteAsset: <CHECKSUM> + Source: <URL> + +An alternative is just to use the + + #!RemoteAssetUrl: <URL> + +marker without any Source: tag when the downloaded file should not become +part of the source rpm. + +==== kiwi build description + +The kiwi format is not supporting remote source specifications, but they can be +specified via XML comments. + + <!-- OBS-RemoteAsset: <URL> --> + +The resulting downloaded file can be copied into the image using + + <!-- OBS-CopyToImage: <source> <destination> --> + +The kiwi profile name is added to container names by default. This can be +disabled via + + <!-- OBS-DoNotAppendProfileToContainername --> + +==== Dockerfile description + +Has no support for assets yet. + +==== Arch Linux PKGBUILD + +PKGBuild files already contain the needed URLs and Checksums, so no extra +treatment is needed. + +==== FedPkg "sources" file + +The sources file contains a list of file names with checksums. PBuild will +automatically download the missing files from a FedPkg Server that needs +to be configured in the project config via the "AssetsURL:" directive or set +with the "--assets" option. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/init_buildsystem new/obs-build-20220329/init_buildsystem --- old/obs-build-20220315/init_buildsystem 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/init_buildsystem 2022-03-29 10:52:43.000000000 +0200 @@ -671,7 +671,6 @@ while read PKG SRC ; do test "$PKG" = "preinstall:" && continue test "$PKG" = "runscripts:" && continue - test "$PKG" = "cbpreinstall:" && continue test "$PKG" = "vminstall:" && continue test "$PKG" = "dist:" && continue test "$PKG" = "rpmid:" && continue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/obs-docker-support new/obs-build-20220329/obs-docker-support --- old/obs-build-20220315/obs-docker-support 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/obs-docker-support 2022-03-29 10:52:43.000000000 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh ################################################################ # # Enable docker build support in container. @@ -30,11 +30,17 @@ DATA_DIR= zypper() { - cmd= + local cmd # try to find the command - globalopts=() + local globalopts + typeset -a globalopts while test -n "$1"; do case $1 in + -R|--root|--installroot) + globalopts[${#globalopts[@]}]="$1" + globalopts[${#globalopts[@]}]="$2" + shift 2 + ;; -*) globalopts[${#globalopts[@]}]="$1" shift @@ -87,9 +93,10 @@ } apt_get() { - cmd= + local cmd # try to find the command - globalopts=() + local globalopts + typeset -a globalopts while test -n "$1"; do case $1 in -*) @@ -121,7 +128,8 @@ dnf() { # try to find command - globalopts=() + local globalopts + typeset -a globalopts while test -n "$1"; do case $1 in -*) @@ -150,7 +158,8 @@ yum() { # try to find command - globalopts=() + global globalopts + typeset -a globalopts while test -n "$1"; do case $1 in -*) @@ -178,7 +187,8 @@ } curl() { - local cmd=() + local cmd + typeset -a cmd local oopt local oname while test -n "$1" ; do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20220315/startdockerd new/obs-build-20220329/startdockerd --- old/obs-build-20220315/startdockerd 2022-03-15 16:56:55.000000000 +0100 +++ new/obs-build-20220329/startdockerd 2022-03-29 10:52:43.000000000 +0200 @@ -118,11 +118,11 @@ mount --make-rprivate / # create loopback interface - if test -x /sbin/ip ; then + if test -x /sbin/ip ; then ip addr add 127.0.0.1/8 dev lo ip addr add ::1/128 dev lo ip link set lo up - else + elif test -x /sbin/ifconfig ; then ifconfig lo 127.0.0.1 up ifconfig lo add ::1/128 fi