--- build-20160629.orig/Build.pm
+++ build-20160629/Build.pm
@@ -26,7 +26,7 @@
 use Data::Dumper;
 use POSIX qw(strftime);
 
-our $expand_dbg;
+our $expand_dbg = $ENV{BUILD_EXPAND_DEBUG} || undef;
 
 our $do_rpm;
 our $do_deb;
@@ -346,10 +346,10 @@
       } else {
 	push @{$config->{'constraint'}}, $l;
       }
-	} elsif ($l0 eq 'rpmbuildstage:') { # use the rpmbuild --stage option
-	  $config->{'rpmbuildstage'} = $l[0];
-	} elsif ($l0 eq 'rpmbuildstage:') { # use the rpmbuild --stage option
-	  $config->{'rpmbuildstage'} = $l[0];
+    } elsif ($l0 eq 'rpmbuildstage:') { # use the rpmbuild --stage option
+	$config->{'rpmbuildstage'} = $l[0];
+    } elsif ($l0 eq 'copylinkedpackages:') { # to enable the RPM compariton tool for prerelease projects
+      # Since it is not used in build package, do nothing.
     } elsif ($l0 eq 'singleexport:') {
       $config->{'singleexport'} = $l[0]; # avoid to export multiple package container in maintenance_release projects
     } elsif ($l0 !~ /^[#%]/) {
@@ -1004,7 +1004,7 @@
   my @directdepsend;
   if ($xignore{'-directdepsend--'}) {
     delete $xignore{'-directdepsend--'};
-    my @directdepsend = @p;
+    @directdepsend = @p;
     for my $p (splice @p) {
       last if $p eq '--directdepsend--';
       push @p, $p;
@@ -1019,7 +1019,8 @@
     @q = nevrmatch($config, $r, @q) if /^!!/;
     $aconflicts{$_} = "is in BuildConflicts" for @q;
   }
-
+   my %recommended;
+   my @rec_todo;
   @p = grep {!/^[-!]/} @p;
   my %p;		# expanded packages
 
@@ -1039,7 +1040,7 @@
     }
     next if $p{$q[0]};
     return (undef, "$q[0] $aconflicts{$q[0]}") if $aconflicts{$q[0]};
-    print "added $q[0] because of $p (direct dep)\n" if $expand_dbg;
+    print STDERR "added $q[0] because of $p (direct dep)\n" if $expand_dbg;
     push @p, $q[0];
     $p{$q[0]} = 1;
     $aconflicts{$_} = "conflict from project config with $q[0]" for @{$conflicts->{$q[0]} || []};
@@ -1096,7 +1097,7 @@
 	}
 	if (@q > 1 && !$doamb) {
 	  push @pamb, $p unless @pamb && $pamb[-1] eq $p;
-	  print "undecided about $p:$r: @q\n" if $expand_dbg;
+	  print STDERR "undecided about $p:$r: @q\n" if $expand_dbg;
 	  next;
 	}
 	if (@q > 1) {
@@ -1124,7 +1125,7 @@
 	if ($doamb == 2) {
 	  todo2recommended($config, \%recommended, \@rec_todo) if @rec_todo;
 	  my @pq = grep {$recommended{$_}} @q;
-	  print "recommended [@pq] among [@q]\n" if $expand_dbg;
+	  print STDERR "recommended [@pq] among [@q]\n" if $expand_dbg;
 	  @q = @pq if @pq;
 	  }
 	if (@q > 1) {
@@ -1137,7 +1138,7 @@
 	  next;
 	}
 	push @p, $q[0];
-	print "added $q[0] because of $p:$r\n" if $expand_dbg;
+	print STDERR "added $q[0] because of $p:$r\n" if $expand_dbg;
 	$p{$q[0]} = 1;
 	$aconflicts{$_} = "conflict from project config with $q[0]" for @{$conflicts->{$q[0]} || []};
 	if (!$ignoreconflicts) {
@@ -1162,7 +1163,7 @@
       @pamb = ();
 	  todo2recommended($config, \%recommended, \@rec_todo) if @rec_todo;
 	  $doamb = %recommended ? 2 : 3;
-	  print "now doing undecided dependencies, $doamb = $doamb\n" if $expand_dbg;
+	  print STDERR "now doing undecided dependencies, $doamb = $doamb\n" if $expand_dbg;
       next;
     }
     return undef, @error if @error;
@@ -1375,7 +1376,7 @@
   return Build::Rpm::query($handle, %opts) if $do_rpm && $binname =~ /\.d?rpm$/;
   return Build::Deb::query($handle, %opts) if $do_deb && $binname =~ /\.deb$/;
   return Build::Kiwi::queryiso($handle, %opts) if $do_kiwi && $binname =~ /\.iso$/;
-  return Build::Arch::query($handle, %opts) if $do_arch && $binname =~ /\.pkg\.tar(?:\.gz|\.xz)?$/;
+  return Build::Arch::query($handle, %opts) if $do_arch && $binname =~ /\.pkg\.tar(?:\.gz|\.xz|\.zst)?$/;
   return Build::Arch::query($handle, %opts) if $do_arch && $binname =~ /\.arch$/;
   return undef;
 }
@@ -1405,7 +1406,7 @@
   return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.iso$/;
   return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.raw$/;
   return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.raw.install$/;
-  return Build::Arch::queryhdrmd5(@_) if $do_arch && $binname =~ /\.pkg\.tar(?:\.gz|\.xz)?$/;
+  return Build::Arch::queryhdrmd5(@_) if $do_arch && $binname =~ /\.pkg\.tar(?:\.gz|\.xz|\.zst)?$/;
   return Build::Arch::queryhdrmd5(@_) if $do_arch && $binname =~ /\.arch$/;
   return undef;
 }
--- build-20160629.orig/Build/Arch.pm
+++ build-20160629/Build/Arch.pm
@@ -107,6 +107,16 @@
   return $h eq "\3757zXZ";
 }
 
+sub iszstd {
+  my ($fn) = @_;
+  local *F;
+  return 0 unless open(F, '<', $fn);
+  my $h;
+  return 0 unless read(F, $h, 4) == 4;
+  close F;
+  return $h eq "(\265\057\375";
+}
+
 sub lzmadec {
   my ($fn) = @_;
   my $nh;
@@ -120,13 +130,29 @@
   return $nh;
 }
 
+sub zstddec {
+  my ($fn) = @_;
+  my $nh;
+  my $pid = open($nh, '-|');
+  return undef unless defined $pid;
+  if (!$pid) {
+    $SIG{'PIPE'} = 'DEFAULT';
+    #zstd -dc is not accepting symlinks, but zstdcat does.
+    exec('zstdcat', $fn);
+    die("zstdcat $!\n");
+  }
+  return $nh;
+}
+
 sub queryvars {
   my ($handle) = @_;
 
   if (ref($handle)) {
     die("arch pkg query not implemented for file handles\n");
   }
-  if ($handle =~ /\.xz$/ || islzma($handle)) {
+  if ($handle =~ /\.zst$/ || iszstd($handle)) {
+    $handle = zstddec($handle);
+  } elsif ($handle =~ /\.xz$/ || islzma($handle)) {
     $handle = lzmadec($handle);
   }
   my $tar = Archive::Tar->new;
@@ -148,7 +174,9 @@
   if (ref($handle)) {
     die("arch pkg query not implemented for file handles\n");
   }
-  if ($handle =~ /\.xz$/ || islzma($handle)) {
+  if ($handle =~ /\.zst$/ || iszstd($handle)) {
+    $handle = zstddec($handle);
+  } elsif ($handle =~ /\.xz$/ || islzma($handle)) {
     $handle = lzmadec($handle);
   }
   my @files;
@@ -215,7 +243,9 @@
   if (ref($handle)) {
     die("arch pkg query not implemented for file handles\n");
   }
-  if ($handle =~ /\.xz$/ || islzma($handle)) {
+  if ($handle =~ /\.zst$/ || iszstd($handle)) {
+    $handle = zstddec($handle);
+  } elsif ($handle =~ /\.xz$/ || islzma($handle)) {
     $handle = lzmadec($handle);
   }
   my $tar = Archive::Tar->new;
--- build-20160629.orig/Build/Deb.pm
+++ build-20160629/Build/Deb.pm
@@ -178,8 +178,10 @@
   return $ret;
 }
 
-sub ungzip {
-  my $data = shift;
+sub uncompress {
+  my ($data, $tool) = @_;
+  return $data if $tool eq 'cat';
+  return Compress::Zlib::memGunzip($data) if $have_zlib && $tool eq 'gunzip';
   local (*TMP, *TMP2);
   open(TMP, "+>", undef) or die("could not open tmpfile\n");
   syswrite TMP, $data;
@@ -188,13 +190,16 @@
   die("fork: $!\n") unless defined $pid;
   if (!$pid) {
     open(STDIN, "<&TMP");
-    exec 'gunzip';
-    die("gunzip: $!\n");
+    exec($tool);
+    die("$tool: $!\n");
   }
   close(TMP);
   $data = '';
   1 while sysread(TMP2, $data, 1024, length($data)) > 0;
-  close(TMP2) || die("gunzip error");
+  if (!close(TMP2)) {
+    warn("$tool error: $?\n");
+    return undef;
+  }
   return $data;
 }
 
@@ -252,9 +257,18 @@
     }
   }
   $data = substr($data, 8 + 60 + $len);
-  if (substr($data, 0, 16) ne 'control.tar.gz  ' &&
-      substr($data, 0, 16) ne 'control.tar.gz/ ') {
-    warn("$fn: control.tar.gz is not second ar entry\n");
+  my $controlname = substr($data, 0, 16);
+  my $decompressor;
+  if ($controlname eq 'control.tar.gz  ' || $controlname eq 'control.tar.gz/ ') {
+    $decompressor = 'gunzip';
+  } elsif ($controlname eq 'control.tar.xz  ' || $controlname eq 'control.tar.xz/ ') {
+    $decompressor = 'unxz';
+  } elsif ($controlname eq 'control.tar.zst ' || $controlname eq 'control.tar.zst/') {
+    $decompressor = 'unzstd';
+  } elsif ($controlname eq 'control.tar     ' || $controlname eq 'control.tar/    ') {
+    $decompressor = 'cat';
+  } else {
+    warn("$fn: control.tar is not second ar entry\n");
     close DEBF unless ref $fn;
     return ();
   }
@@ -270,13 +284,9 @@
   close DEBF unless ref($fn);
   $data = substr($data, 60, $len);
   my $controlmd5 = Digest::MD5::md5_hex($data);	# our header signature
-  if ($have_zlib) {
-    $data = Compress::Zlib::memGunzip($data);
-  } else {
-    $data = ungzip($data);
-  }
+  $data = uncompress($data, $decompressor);
   if (!$data) {
-    warn("$fn: corrupt control.tar.gz file\n");
+    warn("$fn: corrupt control.tar file\n");
     return ();
   }
   my $control;
@@ -286,7 +296,7 @@
     my $len = oct('00'.substr($data, 124,12));
     my $blen = ($len + 1023) & ~511;
     if (length($data) < $blen) {
-      warn("$fn: corrupt control.tar.gz file\n");
+      warn("$fn: corrupt control.tar file\n");
       return ();
     }
     if ($n eq './control' || $n eq "control") {
@@ -387,9 +397,12 @@
     }
   }
   $data = substr($data, 8 + 60 + $len);
-  if (substr($data, 0, 16) ne 'control.tar.gz  ' &&
-      substr($data, 0, 16) ne 'control.tar.gz/ ') {
-    warn("$bin: control.tar.gz is not second ar entry\n");
+  my $controlname = substr($data, 0, 16);
+  if ($controlname ne 'control.tar.gz  ' && $controlname ne 'control.tar.gz/ ' &&
+      $controlname ne 'control.tar.xz  ' && $controlname ne 'control.tar.xz/ ' &&
+      $controlname ne 'control.tar.zst ' && $controlname ne 'control.tar.zst/' &&
+      $controlname ne 'control.tar     ' && $controlname ne 'control.tar/    ') {
+    warn("$bin: control.tar is not second ar entry\n");
     close F;
     return undef;
   }
--- build-20160629.orig/Build/Rpm.pm
+++ build-20160629/Build/Rpm.pm
@@ -608,6 +608,7 @@
   $ret->{'deps'} = \@packdeps;
   $ret->{'prereqs'} = \@prereqs if @prereqs;
   $ret->{'configdependent'} = 1 if $ifdeps;
+  $ret->{'skipsrcrpm'}  = $macros{'skipsrcrpm'} if defined $macros{'skipsrcrpm'};
   return $ret;
 }
 
@@ -1084,7 +1085,7 @@
 
   $root = '' if !defined($root) || $root eq '/';
   local *F;
-  my $dochroot = $root ne '' && !$opts{'nochroot'} && !$< && (-x "$root/usr/bin/rpm" || -x "$root/bin/rpm") ? 1 : 0;
+  my $dochroot = $root ne '' && !$opts{'nochroot'} && !$< ? 1 : 0;
   my $pid = open(F, '-|');
   die("fork: $!\n") unless defined $pid;
   if (!$pid) {
--- build-20160629.orig/build
+++ build-20160629/build
@@ -67,6 +67,7 @@
 SHORT_CIRCUIT=false
 NO_TOPDIR_CLEANUP=false
 CLEAN_BUILD=
+REMOVE_CCACHE=
 KEEP_PACKS=
 RECIPEFILES=()
 SRCDIR=
@@ -99,6 +100,11 @@
 DLNOSIGNATURE=
 CACHE_DIR=/var/cache/build
 USEHIGHERDEPS=
+PKG_CCACHE=
+CCACHE_SETUP_START_TIME=
+NOCUMULATE=
+FAILURES_TO_REBUILD=
+REBUILD_COUNT=1
 
 # This is for insserv
 export YAST_IS_RUNNING=instsys
@@ -232,6 +238,10 @@
   --ccache
               Use ccache to speed up rebuilds
 
+  --pkg-ccache /path/to/ccache.tar.gz
+              path to archive of ccache directory content.
+              Its contents will be extracted to /.ccache
+
   --icecream N
               Use N parallel build jobs with icecream
 
@@ -347,6 +357,14 @@
 	      (This options in kvm can not guarantee reproducible builds)
   --debug
               Enable creation of a debuginfo package
+  --nocumulate
+              Enable build without cumulative build.
+  --failures-to-rebuild failures
+              Specify the build failures which need to rebuild.
+  --rebuild-count N
+              Retry N times to rebuild if build fails.
+              This is needed to check the build failure whether in specified failures
+              via --failures-to-rebuild parameter.
 
 Remember to have fun!
 
@@ -369,15 +387,15 @@
 cleanup_and_exit () {
     trap EXIT
     test -z "$1" && set 0
-	rm -f $BUILD_ROOT/.repo.config
-    rm -f $BUILD_ROOT/exit
+	rm -f "$BUILD_ROOT"/.repo.config
+    rm -f "$BUILD_ROOT"/exit
     if test "$1" -eq 1 -a -x /bin/df ; then
         echo
         echo "$HOST failed \"build $RECIPEFILE\" at `date --utc`."
         echo
         # okay, it failed, but maybe because disk space?
-	if df $BUILD_ROOT 2>/dev/null | grep -q "100%"; then
-            df $BUILD_ROOT 2>/dev/null
+	if df "$BUILD_ROOT" 2>/dev/null | grep -q "100%"; then
+            df "$BUILD_ROOT" 2>/dev/null
             echo
             echo "$HOST ran out of disk space. Please try again."
             echo
@@ -386,21 +404,15 @@
     fi
     if test -n "$RUNNING_IN_VM" ; then
 	echo "$1" >  /.build/_exitcode
-	test -n "$browner" && chown "$browner" $BUILD_ROOT
+	test -n "$browner" && chown "$browner" "$BUILD_ROOT"
 	vm_shutdown "$1"
     else
-	umount -n $BUILD_ROOT/proc/sys/fs/binfmt_misc 2> /dev/null || true
-	umount -n $BUILD_ROOT/proc 2>/dev/null || true
-    while true
-    do
-            umount -n $BUILD_ROOT/dev/pts 2>/dev/null
-            if test $? -ne 0; then
-                    break
-            fi
-    done
-	umount -n $BUILD_ROOT/dev/shm 2>/dev/null || true
-	umount -n $BUILD_ROOT/sys 2>/dev/null || true
-	test -n "$VM_IMAGE" -a "$VM_IMAGE" != 1 && umount $BUILD_ROOT 2>/dev/null || true
+	buildroot_umount /proc/sys/fs/binfmt_misc
+	buildroot_umount /proc
+	buildroot_umount /sys
+	buildroot_umount /dev/pts
+	buildroot_umount /dev/shm
+	test -n "$VM_IMAGE" -a "$VM_IMAGE" != 1 && umount "$BUILD_ROOT" 2>/dev/null || true
 	test -n "$VM_TYPE" && vm_cleanup
     fi
     exit $1
@@ -431,25 +443,50 @@
 
 setupccache() {
     if test -n "$CCACHE" ; then
-	if mkdir -p $BUILD_ROOT/var/lib/build/ccache/bin; then
-	    for i in $(ls $BUILD_ROOT/usr/bin | grep -E '^(cc|gcc|[cg][+][+])([-]?[234][.]?[0-9])*$'); do
-#                ln -sf /usr/bin/ccache $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		rm -f $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		test -e $BUILD_ROOT/usr/bin/$i || continue
-		echo '#! /bin/sh' > $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		echo "test -e /usr/bin/$i || exit 1" >> $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		echo 'export PATH=/usr/lib/icecc/bin:/opt/icecream/bin:/usr/bin:$PATH' >> $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		echo "ccache $i \"\$@\"" >> $BUILD_ROOT/var/lib/build/ccache/bin/$i
-		chmod 755 $BUILD_ROOT/var/lib/build/ccache/bin/$i
+	CCACHE_SETUP_START_TIME=`date +%s`
+	if mkdir -p "$BUILD_ROOT"/var/lib/build/ccache/bin; then
+		for i in $(ls $BUILD_ROOT/usr/bin | grep -E '^(cc|gcc|[cg][+][+]|clang|clang[+][+])([-]?[.0-9])*$'); do
+		rm -f "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
+		test -e "$BUILD_ROOT"/usr/bin/$i || continue
+		echo '#! /bin/sh' > "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
+		echo "test -e /usr/bin/$i || exit 1" >> "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
+		echo 'export PATH=/usr/lib/icecc/bin:/opt/icecream/bin:/usr/bin:$PATH' >> "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
+		echo "ccache $i \"\$@\"" >> "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
+		chmod 755 "$BUILD_ROOT"/var/lib/build/ccache/bin/$i
 		echo "Installed ccache wrapper as $BUILD_ROOT/var/lib/build/ccache/bin/$i"
 	    done
 	fi
 	mkdir -p "$BUILD_ROOT/.ccache"
-	chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT/.ccache"
-	echo "export CCACHE_DIR=/.ccache" > "$BUILD_ROOT"/etc/profile.d/build_ccache.sh
+	# overwrite /etc/profile.d/build_ccache.sh
+	echo 'export CCACHE_DIR=/.ccache' > "$BUILD_ROOT"/etc/profile.d/build_ccache.sh
+        #Set proper ccache argument to ccache, or it will not work properly
+        echo 'export CCACHE_SLOPPINESS=time_macros' >> "$BUILD_ROOT"/etc/profile.d/build_ccache.sh
+        echo 'export CCACHE_COMPILERCHECK=content' >> "$BUILD_ROOT"/etc/profile.d/build_ccache.sh
 	echo 'export PATH=/var/lib/build/ccache/bin:$PATH' >> "$BUILD_ROOT"/etc/profile.d/build_ccache.sh
+
+	# Note
+	# Disable compression setting temporary
+	# Until ccache is applied to qemu-accel, it is very slow when using the function, so it will be applied later.
+	#
+	# https://ccache.dev/releasenotes.html#_ccache_4_0
+	# Changed compression algorithm from Deflate (zlib) to Zstandard, enabled by default.
+	enable_compression=false
+
+	local cconf="$BUILD_ROOT"/etc/ccache.conf
+	if test -e $cconf; then
+		grep -q "^compression*" $cconf && sed -i "s:compression.*:compression = $enable_compression:g" $cconf || echo "compression = $enable_compression"   >> $cconf
+		grep -q "^cache_dir*"   $cconf && sed -i "s:cache_dir.*:cache_dir = /.ccache:g" $cconf || echo "cache_dir = /.ccache" >> $cconf
     else
-	rm -f "$BUILD_ROOT"/var/lib/build/ccache/bin/{gcc,g++,cc,c++}
+		echo "compression = $enable_compression" >> $cconf
+		echo "cache_dir = /.ccache" >> $cconf
+	fi
+		local ccachetar="$BUILD_ROOT/.build.oldpackages/_ccache.tar"
+		test -e $ccachetar && tar -xf $ccachetar -C "$BUILD_ROOT/.ccache/"
+		rm -f $ccachetar
+		chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT/.ccache"
+	else
+		CCACHE_SETUP_START_TIME=
+		rm -f "$BUILD_ROOT"/var/lib/build/ccache/bin/{gcc,g++,cc,c++,clang,clang++}
     fi
 }
 
@@ -477,8 +514,8 @@
 	echo 'export CCACHE_PATH=/usr/lib/icecc/bin:/opt/icecream/bin' > "$BUILD_ROOT"/etc/profile.d/build_icecream.sh
     fi
 
-    local icecc_vers=(`shopt -s nullglob; echo $BUILD_ROOT$icecreamdir/*.tar.{bz2,gz}`)
-    icecc_vers=${icecc_vers//$BUILD_ROOT/}
+    local icecc_vers=(`shopt -s nullglob; echo "$BUILD_ROOT"$icecreamdir/*.tar.{bz2,gz}`)
+    icecc_vers=${icecc_vers//"$BUILD_ROOT"/}
 
     # XXX use changelog like autobuild does instead?
     # only run create-env if compiler or glibc changed
@@ -502,9 +539,9 @@
 	    return 1
 	fi
         echo "creating new env in '$icecreamdir'"
-	chroot $BUILD_ROOT bash -c "cd $icecreamdir; $createenv" || cleanup_and_exit 1
-	icecc_vers=(`shopt -s nullglob; echo $BUILD_ROOT/$icecreamdir/*.tar.{bz2,gz}`)
-	icecc_vers=${icecc_vers//$BUILD_ROOT/}
+	chroot "$BUILD_ROOT" bash -c "cd $icecreamdir; $createenv" || cleanup_and_exit 1
+	icecc_vers=(`shopt -s nullglob; echo "$BUILD_ROOT"/$icecreamdir/*.tar.{bz2,gz}`)
+	icecc_vers=${icecc_vers//"$BUILD_ROOT"/}
 	echo "created icecream environment $icecc_vers"
     else
 	echo "reusing existing icecream environment $icecc_vers"
@@ -516,24 +553,28 @@
 
 setmemorylimit() {
     if test -n "$VM_IMAGE" -o -n "$RUNNING_IN_VM" ; then
-	return
+		return
+    fi
+ 	arch=`uname -p`
+    if [ $arch == "x86_64" ];then
+        echo "on X86_64, no limit mem size"
+		return
     fi
     local mem
     local limit
     while read mem; do
-	case "$mem" in
-	    MemTotal:*)
-		set -- $mem
-		eval "limit=\$(($2/3*2))"
-	    ;;
-	    SwapTotal:*)
-		set -- $mem
-		eval "limit=\$(($2/3*2+$limit))"
-	    ;;
-	esac
+    case "$mem" in
+        MemTotal:*)
+    	set -- $mem
+    	eval "limit=\$(($2/3*4))"
+        ;;
+        SwapTotal:*)
+    	set -- $mem
+    	eval "limit=\$(($2/3*4+$limit))"
+        ;;
+    esac
     done < <(cat /proc/meminfo) # cat for proc stuff
-
-    ulimit -v $limit
+    ulimit -d $limit
     echo "Memory limit set to ${limit}KB"
 }
 
@@ -549,16 +590,16 @@
     if test "$BUILDTYPE" == dsc ; then
 	pkgs=($DEBS)
     else # spec and kiwi
-	if test -e $BUILD_ROOT$TOPDIR/SOURCES/baselibs.conf ; then
+	if test -e "$BUILD_ROOT"$TOPDIR/SOURCES/baselibs.conf ; then
 	    BASELIBS_CFG="-c $TOPDIR/SOURCES/baselibs.conf"
 	fi
-	if test -e $BUILD_ROOT/usr/lib/build/baselibs_global.conf; then
+	if test -e "$BUILD_ROOT"/usr/lib/build/baselibs_global.conf; then
 	    BASELIBS_GLOBAL="-c /usr/lib/build/baselibs_global.conf"
 	fi
 	pkgs=($RPMS)
     fi
 
-    mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null
+    mount -n -tproc none "$BUILD_ROOT"/proc 2> /dev/null
     # don't use -R as extracted sources, build root etc might be below $TOPDIR
     chown "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR"/* "$BUILD_ROOT$TOPDIR"/RPMS/* || true
 
@@ -567,8 +608,8 @@
     # $BUILD_DIR is set to /.build when using a vm. So we need to
     # hardcode /usr/lib/build instead of $BUILD_DIR to prefer
     # mkbaselibs from the distro.
-    if test -f $BUILD_ROOT$mkbaselibs; then
-	if test -z "$BASELIBS_CFG" -a -e $BUILD_ROOT/usr/lib/build/baselibs.conf ; then
+    if test -f "$BUILD_ROOT"$mkbaselibs; then
+	if test -z "$BASELIBS_CFG" -a -e "$BUILD_ROOT"/usr/lib/build/baselibs.conf ; then
 	    BASELIBS_CFG="-c /usr/lib/build/baselibs.conf"
 	fi
     else
@@ -581,27 +622,28 @@
 	mkbaselibs="/.mkbaselibs/mkbaselibs"
 	rm -rf "$BUILD_ROOT/.mkbaselibs"
 	mkdir -p "$BUILD_ROOT/.mkbaselibs"
-	cp -f $BUILD_DIR/mkbaselibs $BUILD_ROOT/.mkbaselibs/
+	cp -f $BUILD_DIR/mkbaselibs "$BUILD_ROOT"/.mkbaselibs/
 	if test "$BUILDTYPE" == "dsc" ; then
-	    cp -f $BUILD_DIR/baselibs_global-deb.conf $BUILD_ROOT/.mkbaselibs/baselibs_g.conf
-	    cp -f $BUILD_ROOT$TOPDIR/SOURCES/baselibs-deb.conf $BUILD_ROOT/.mkbaselibs/baselibs-deb.conf
+	    cp -f $BUILD_DIR/baselibs_global-deb.conf "$BUILD_ROOT"/.mkbaselibs/baselibs_g.conf
+	    cp -f "$BUILD_ROOT"$TOPDIR/SOURCES/baselibs-deb.conf "$BUILD_ROOT"/.mkbaselibs/baselibs-deb.conf
 	    BASELIBS_CFG="-c /.mkbaselibs/baselibs-deb.conf"
 	else
-	    cp -f $BUILD_DIR/baselibs_global.conf $BUILD_ROOT/.mkbaselibs/baselibs_g.conf
+	    cp -f $BUILD_DIR/baselibs_global.conf "$BUILD_ROOT"/.mkbaselibs/baselibs_g.conf
 	    if test -z "$BASELIBS_CFG" -a -e $BUILD_DIR/baselibs.conf; then
-		cp -f $BUILD_DIR/baselibs.conf $BUILD_ROOT/.mkbaselibs/baselibs.conf
+		cp -f $BUILD_DIR/baselibs.conf "$BUILD_ROOT"/.mkbaselibs/baselibs.conf
 		BASELIBS_CFG="-c /.mkbaselibs/baselibs.conf"
 	    fi
 	fi
-	if test -e $BUILD_ROOT/.mkbaselibs/baselibs_g.conf; then
+	if test -e "$BUILD_ROOT"/.mkbaselibs/baselibs_g.conf; then
 	    BASELIBS_GLOBAL="-c /.mkbaselibs/baselibs_g.conf"
 	fi
     fi
     echo "... creating baselibs$whichone"
+    pkgs_origin=(`echo ${pkgs[*]} | sed 's/\"//g'`)
     while read line
     do
-	chroot $BUILD_ROOT su -c "$mkbaselibs $BASELIBS_GLOBAL $BASELIBS_CFG $line" - $BUILD_USER || cleanup_and_exit 1
-    done < <(IFS=$'\n'; echo "${pkgs[*]#$BUILD_ROOT}" | xargs -n 1024)
+	chroot "$BUILD_ROOT" su -c "$mkbaselibs $BASELIBS_GLOBAL $BASELIBS_CFG $line" - $BUILD_USER || cleanup_and_exit 1
+    done < <(IFS=$'\n'; echo "${pkgs_origin[*]#$BUILD_ROOT}" | xargs -n 1024)
     rm -rf "$BUILD_ROOT/.mkbaselibs"
 }
 
@@ -639,13 +681,13 @@
     test "$BUILD_ROOT" != / && BUILD_ROOT="${BUILD_ROOT%/}"
     if test -d "$BUILD_ROOT" ; then
 	# check if it is owned by root
-	if test -z "$RUNNING_IN_VM" -a \! -O "$BUILD_ROOT" -a "`stat -c %u $BUILD_ROOT`" -ne 0 ; then
+	if test -z "$RUNNING_IN_VM" -a \! -O "$BUILD_ROOT" -a "`stat -c %u "$BUILD_ROOT"`" -ne 0 ; then
 	    echo "BUILD_ROOT=$BUILD_ROOT must be owned by root. Exit..."
 	    cleanup_and_exit 1
 	fi
     else
 	test "$BUILD_ROOT" != "${BUILD_ROOT%/*}" && mkdir -p "${BUILD_ROOT%/*}"
-	if ! mkdir $BUILD_ROOT ; then
+	if ! mkdir "$BUILD_ROOT" ; then
 	    echo "can not create BUILD_ROOT=$BUILD_ROOT. Exit..."
 	    cleanup_and_exit 1
 	fi
@@ -668,7 +710,7 @@
     if test -d "$OVERLAY"; then
 	pushd $OVERLAY
 	echo "Copying overlay to BUILD_ROOT"
-	tar -cpf - . | (cd $BUILD_ROOT ; tar -xvf -)
+	tar -cpf - . | (cd "$BUILD_ROOT" ; tar -xvf -)
 	popd
     else
 	echo "OVERLAY ($OVERLAY) is no directory - skipping"
@@ -679,11 +721,11 @@
     if test -n "$RSYNCDEST" ; then
 	if test -d "$RSYNCSRC" ; then
 	    if ! test -d "$BUILD_ROOT/$RSYNCDEST" ; then
-		echo "ATTENTION! Creating missing target directory ($BUILD_ROOT/$RSYNCDEST)."
-		mkdir -p $BUILD_ROOT/$RSYNCDEST
+		echo "ATTENTION! Creating missing target directory ("$BUILD_ROOT"/$RSYNCDEST)."
+		mkdir -p "$BUILD_ROOT"/$RSYNCDEST
 	    fi
 	    echo "Running rsync ..."
-	    rsync -av $RSYNCSRC/* $BUILD_ROOT/$RSYNCDEST/
+	    rsync -av $RSYNCSRC/* "$BUILD_ROOT"/$RSYNCDEST/
 	    chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT/$RSYNCDEST"
 	    RSYNCDONE=true
 	    echo "... done"
@@ -699,18 +741,36 @@
 {
     local i j
     r=()
-    rm -f $BUILD_ROOT/.repo.config
+    rm -f "$BUILD_ROOT"/.repo.config
     for i in "${repos[@]}"; do
         if [ "$i" == "--repo" -o "$i" == "--repository" ]; then
             r=("${r[@]}" "$i")
         else
-            echo $i |grep -E "^http[s]?:\/\/[^\/]*\/?" >/dev/null && echo $i >> $BUILD_ROOT/.repo.config
+            echo $i |grep -E "^http[s]?:\/\/[^\/]*\/?" >/dev/null && echo $i >> "$BUILD_ROOT"/.repo.config
             j=$(echo $i | sed -e "s#://[^@]*@#://#")
             r=("${r[@]}" "$j")
         fi
     done
     repos=("${r[@]}")
-    echo ${repos[@]}
+#    echo ${repos[@]}
+}
+
+try_rebuild() {
+    local build_log
+    if test -n "$LOGFILE"; then
+        build_log="$LOGFILE"
+    else
+        build_log="$BUILD_ROOT/.build.log"
+    fi
+    if test -f "$build_log"; then
+        if grep -E -q "$FAILURES_TO_REBUILD" "$build_log"; then
+            echo "Try to rebuild ..."
+            for ((num=0; num<$REBUILD_COUNT; num++)); do
+                recipe_build
+                test "$BUILD_SUCCEEDED" = true && break
+            done
+        fi
+    fi
 }
 
 #### main ####
@@ -766,6 +826,7 @@
       ;;
       -clean)
 	CLEAN_BUILD='--clean'
+        REMOVE_CCACHE="$CLEAN_BUILD"
       ;;
       -kill)
 	KILL=true
@@ -812,8 +873,8 @@
       -baselibs-internal)
 	CREATE_BASELIBS=internal
 	;;
-	--keep-packs)
-	 KEEP_PACKS="--keep-packs"
+      -keep-packs)
+    KEEP_PACKS="--keep-packs"
 	;;
       -root)
 	needarg
@@ -889,9 +950,18 @@
 	test "$icecream" -gt 0 && BUILD_JOBS="$ARG"
 	shift
       ;;
+      -nocumulate)
+	NOCUMULATE="--nocumulate"
+      ;;
       -ccache)
 	CCACHE=true
       ;;
+      -pkg-ccache)
+	needarg
+	PKG_CCACHE="$ARG"
+	shift
+	CCACHE=true
+      ;;
       -statistics)
 	DO_STATISTICS=1
       ;;
@@ -963,6 +1033,16 @@
 	  -use-higher-deps)
 	USEHIGHERDEPS="--use-higher-deps"
 	  ;;
+      -failures-to-rebuild)
+	needarg
+	FAILURES_TO_REBUILD=$ARG
+	shift
+      ;;
+      -rebuild-count)
+	needarg
+	REBUILD_COUNT=$ARG
+	shift
+      ;;
       -*)
 	if vm_parse_options "$@" ; then
 	    set -- "${nextargs[@]}"
@@ -996,7 +1076,7 @@
     if test -n "$VM_TYPE" ; then
         vm_kill
     else
-	if ! $BUILD_DIR/killchroot -s 9 $BUILD_ROOT ; then
+	if ! $BUILD_DIR/killchroot -s 9 "$BUILD_ROOT" ; then
 	    echo "could not kill build in $BUILD_ROOT"
 	    cleanup_and_exit 1
 	fi
@@ -1034,7 +1114,7 @@
 	recipe_unpack_srcrpm
 	RECIPEFILE="$MYSRCDIR/$RECIPEFILE"
     fi
-    init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" --list-state "${definesnstuff[@]}" "${repos[@]}" $DLNOSIGNATURE $KEEP_PACKS $USEHIGHERDEPS $USEUSEDFORBUILD $RECIPEFILE $BUILD_EXTRA_PACKS
+    init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" --list-state "${definesnstuff[@]}" "${repos[@]}" $DLNOSIGNATURE $KEEP_PACKS $NOCUMULATE $USEHIGHERDEPS $USEUSEDFORBUILD $RECIPEFILE $BUILD_EXTRA_PACKS
     ERR=$?
     rm -rf "$BUILD_ROOT"
     cleanup_and_exit $ERR
@@ -1051,14 +1131,14 @@
     browner="$(stat -c %u /)"
 fi
 
-rm -f $BUILD_ROOT/exit
+rm -f "$BUILD_ROOT"/exit
 
 if test -w /root ; then
-    mkdir -p $BUILD_ROOT/proc
-    mkdir -p $BUILD_ROOT/sys
-    mkdir -p $BUILD_ROOT/dev/pts
-    mount -n -tproc none $BUILD_ROOT/proc || true
-    mount -n -tdevpts -omode=0620,gid=5 none $BUILD_ROOT/dev/pts
+    mkdir -p "$BUILD_ROOT"/proc
+    mkdir -p "$BUILD_ROOT"/sys
+    mkdir -p "$BUILD_ROOT"/dev/pts
+    mount -n -tproc none "$BUILD_ROOT"/proc || true
+    mount -n -tdevpts -omode=0620,gid=5 none "$BUILD_ROOT"/dev/pts
 fi
 
 if test -z "$VM_IMAGE" -a -z "$LOGFILE" ; then
@@ -1155,14 +1235,14 @@
 
     # we need to do this before the vm is started
     if test -n "$CHANGELOG" -a -z "$RUNNING_IN_VM" ; then
-	rm -f $BUILD_ROOT/.build-changelog
+	rm -f "$BUILD_ROOT"/.build-changelog
 	case $RECIPEFILE in
 	    *.dsc) CFFORMAT=debian ;;
 	    *) CFFORMAT=rpm ;;
 	esac
 	echo "running changelog2spec --target $CFFORMAT --file $MYSRCDIR/$RECIPEFILE"
-	if ! $BUILD_DIR/changelog2spec --target $CFFORMAT --file "$MYSRCDIR/$RECIPEFILE" > $BUILD_ROOT/.build-changelog ; then
-	    rm -f $BUILD_ROOT/.build-changelog
+	if ! $BUILD_DIR/changelog2spec --target $CFFORMAT --file "$MYSRCDIR/$RECIPEFILE" > "$BUILD_ROOT"/.build-changelog ; then
+	    rm -f "$BUILD_ROOT"/.build-changelog
 	fi
     fi
 
@@ -1177,15 +1257,15 @@
 	# create legacy .buildenv file
 	#
 	test -z "$INCARNATION" && INCARNATION=0
-	echo "BUILD_INCARNATION=$INCARNATION" > $BUILD_ROOT/.buildenv
+	echo "BUILD_INCARNATION=$INCARNATION" > "$BUILD_ROOT"/.buildenv
 	CREATE_BUILD_BINARIES=
-	test "$BUILDTYPE" = preinstallimage && mkdir -p $BUILD_ROOT/.preinstall_image
+	test "$BUILDTYPE" = preinstallimage && mkdir -p "$BUILD_ROOT"/.preinstall_image
 	egrep '^#[       ]*needsbinariesforbuild[       ]*$' >/dev/null <$MYSRCDIR/$RECIPEFILE && CREATE_BUILD_BINARIES=--create-build-binaries
 	test "$BUILDTYPE" = mock && CREATE_BUILD_BINARIES=--create-build-binaries
 	test "$BUILDTYPE" = debootstrap && CREATE_BUILD_BINARIES=--create-build-binaries
 	test "$BUILDTYPE" = livebuild && CREATE_BUILD_BINARIES=--create-build-binaries
 	test "$BUILDTYPE" = snapcraft && CREATE_BUILD_BINARIES=--create-build-binaries
-	set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $DLNOSIGNATURE $KEEP_PACKS $USEHIGHERDEPS $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS
+	set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $DLNOSIGNATURE $KEEP_PACKS $NOCUMULATE $USEHIGHERDEPS $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS
 	echo "$* ..."
         start_time=`date +%s`
 	"$@" || cleanup_and_exit 1
@@ -1193,18 +1273,23 @@
         TIME_INSTALL=$(( `date +%s` - $start_time ))
         unset start_time
 	# arbitrary limit of 10MB
-	if test $((`stat -f -c "%a*%S/1024/1024" $BUILD_ROOT`)) -lt 10; then
+	if test $((`stat -f -c "%a*%S/1024/1024" "$BUILD_ROOT"`)) -lt 10; then
             # ensure that old stat is not failing (RHEL4)
-            if df $BUILD_ROOT 2>/dev/null | grep -q "100%"; then
-		df -h $BUILD_ROOT
+            if df "$BUILD_ROOT" 2>/dev/null | grep -q "100%"; then
+		df -h "$BUILD_ROOT"
 		echo "build does not work on a completely full filesystem"
 		cleanup_and_exit 1
 	    fi
 	fi
-	mount -n -tproc none $BUILD_ROOT/proc || true
-	mount -n -tdevpts -omode=0620,gid=5 none $BUILD_ROOT/dev/pts
+	mount -n -tproc none "$BUILD_ROOT"/proc || true
+	mount -n -tdevpts -omode=0620,gid=5 none "$BUILD_ROOT"/dev/pts
 
 	copy_oldpackages
+	# chroot based builds
+	# rsync as source and dest could be same
+	test -n "$PKG_CCACHE" -a -e "$PKG_CCACHE" && \
+		mkdir -p "$BUILD_ROOT/.build.oldpackages/" && \
+		rsync -v "$PKG_CCACHE" "$BUILD_ROOT/.build.oldpackages/_ccache.tar"
     fi
 
     # hack to process preinstallimages early
@@ -1214,25 +1299,25 @@
     fi
 
     if test -z "$BUILD_DIST" -a -e "$BUILD_ROOT/.guessed_dist" ; then
-	read BUILD_DIST < $BUILD_ROOT/.guessed_dist
+	read BUILD_DIST < "$BUILD_ROOT"/.guessed_dist
     fi
 
     #
     # install dummy sign program if needed
     #
-    test -f $BUILD_ROOT/usr/bin/sign_installed && mv $BUILD_ROOT/usr/bin/sign_installed $BUILD_ROOT/usr/bin/sign
+    test -f "$BUILD_ROOT"/usr/bin/sign_installed && mv "$BUILD_ROOT"/usr/bin/sign_installed "$BUILD_ROOT"/usr/bin/sign
     if test -n "$SIGNDUMMY" ; then
-	test -f $BUILD_ROOT/usr/bin/sign && mv $BUILD_ROOT/usr/bin/sign $BUILD_ROOT/usr/bin/sign_installed
-	cp $BUILD_DIR/signdummy $BUILD_ROOT/usr/bin/sign
-	chmod 755 $BUILD_ROOT/usr/bin/sign
+	test -f "$BUILD_ROOT"/usr/bin/sign && mv "$BUILD_ROOT"/usr/bin/sign "$BUILD_ROOT"/usr/bin/sign_installed
+	cp "$BUILD_DIR"/signdummy "$BUILD_ROOT"/usr/bin/sign
+	chmod 755 "$BUILD_ROOT"/usr/bin/sign
     fi
 
     #
     # check if we want to build with the abuild user
     #
     BUILD_USER=abuild
-    if test -x $BUILD_ROOT/bin/rpm ; then
-	SUSE_VERSION=`chroot $BUILD_ROOT /bin/rpm --eval '%{?suse_version}' 2>/dev/null`
+    if test -x "$BUILD_ROOT"/bin/rpm ; then
+	SUSE_VERSION=`chroot "$BUILD_ROOT" /bin/rpm --eval '%{?suse_version}' 2>/dev/null`
 	test -n "$SUSE_VERSION" -a "${SUSE_VERSION:-0}" -le 1020 && BUILD_USER=root
     fi
     if test "$BUILD_USER" = abuild ; then
@@ -1250,52 +1335,52 @@
 
     # fixup passwd/group
     if test $BUILD_USER = abuild ; then
-	if ! egrep '^abuild:' >/dev/null <$BUILD_ROOT/etc/passwd ; then
-	    echo "abuild:x:${ABUILD_UID}:${ABUILD_GID}:Autobuild:/home/abuild:/bin/bash" >>$BUILD_ROOT/etc/passwd
-	    echo 'abuild:*:::::::' >>$BUILD_ROOT/etc/shadow # This is needed on Mandriva 2009
-	    echo 'abuild:*::' >>$BUILD_ROOT/etc/gshadow # This is needed on Ubuntu
-	    echo "abuild:x:${ABUILD_GID}:" >>$BUILD_ROOT/etc/group
-	    mkdir -p $BUILD_ROOT/home/abuild
-	    chown "$ABUILD_UID:$ABUILD_GID" $BUILD_ROOT/home/abuild
+	if ! egrep '^abuild:' >/dev/null <"$BUILD_ROOT"/etc/passwd ; then
+	    echo "abuild:x:${ABUILD_UID}:${ABUILD_GID}:Autobuild:/home/abuild:/bin/bash" >>"$BUILD_ROOT"/etc/passwd
+	    echo 'abuild:*:::::::' >>"$BUILD_ROOT"/etc/shadow # This is needed on Mandriva 2009
+	    echo 'abuild:*::' >>"$BUILD_ROOT"/etc/gshadow # This is needed on Ubuntu
+	    echo "abuild:x:${ABUILD_GID}:" >>"$BUILD_ROOT"/etc/group
+	    mkdir -p "$BUILD_ROOT"/home/abuild
+	    chown "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT"/home/abuild
 	else
-	    if ! egrep "^abuild:x?:${ABUILD_UID}:${ABUILD_GID}" >/dev/null <$BUILD_ROOT/etc/passwd ; then
-		    sed -i '/^abuild:/d' $BUILD_ROOT/etc/passwd
-		    sed -i '/^abuild:/d' $BUILD_ROOT/etc/group
-		    echo "abuild:x:${ABUILD_UID}:${ABUILD_GID}:Autobuild:/home/abuild:/bin/bash" >>$BUILD_ROOT/etc/passwd
-		    echo "abuild:x:${ABUILD_GID}:" >>$BUILD_ROOT/etc/group
-		    chown "$ABUILD_UID:$ABUILD_GID" $BUILD_ROOT/home/abuild -R
+	    if ! egrep "^abuild:x?:${ABUILD_UID}:${ABUILD_GID}" >/dev/null <"$BUILD_ROOT"/etc/passwd ; then
+		    sed -i '/^abuild:/d' "$BUILD_ROOT"/etc/passwd
+		    sed -i '/^abuild:/d' "$BUILD_ROOT"/etc/group
+		    echo "abuild:x:${ABUILD_UID}:${ABUILD_GID}:Autobuild:/home/abuild:/bin/bash" >>"$BUILD_ROOT"/etc/passwd
+		    echo "abuild:x:${ABUILD_GID}:" >>"$BUILD_ROOT"/etc/group
+		    chown "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT"/home/abuild -R
 	    fi
 	fi
-	if test -f $BUILD_ROOT/etc/shadow ; then
-	    sed -i -e "s@^root::@root:*:@" $BUILD_ROOT/etc/shadow
+	if test -f "$BUILD_ROOT"/etc/shadow ; then
+	    sed -i -e "s@^root::@root:*:@" "$BUILD_ROOT"/etc/shadow
 	fi
-	if test -f $BUILD_ROOT/etc/gshadow ; then
-	    sed -i -e "s@^root::@root:*:@" $BUILD_ROOT/etc/gshadow
+	if test -f "$BUILD_ROOT"/etc/gshadow ; then
+	    sed -i -e "s@^root::@root:*:@" "$BUILD_ROOT"/etc/gshadow
 	fi
 	BUILD_USER_ABUILD_USED=true
     else
 	# building as root
 	ABUILD_UID=0
 	ABUILD_GID=0
-	if egrep '^abuild:' >/dev/null <$BUILD_ROOT/etc/passwd ; then
+	if egrep '^abuild:' >/dev/null <"$BUILD_ROOT"/etc/passwd ; then
 	    rm -rf "$BUILD_ROOT/home/abuild"
-	    sed -i -e '/^abuild:/d' $BUILD_ROOT/etc/passwd
-	    sed -i -e '/^abuild:/d' $BUILD_ROOT/etc/group
-	    if test -f $BUILD_ROOT/etc/shadow ; then
-		sed -i -e '/^abuild:/d' $BUILD_ROOT/etc/shadow
+	    sed -i -e '/^abuild:/d' "$BUILD_ROOT"/etc/passwd
+	    sed -i -e '/^abuild:/d' "$BUILD_ROOT"/etc/group
+	    if test -f "$BUILD_ROOT"/etc/shadow ; then
+		sed -i -e '/^abuild:/d' "$BUILD_ROOT"/etc/shadow
 	    fi
-	    if test -f $BUILD_ROOT/etc/gshadow ; then
-		sed -i -e '/^abuild:/d' $BUILD_ROOT/etc/gshadow
+	    if test -f "$BUILD_ROOT"/etc/gshadow ; then
+		sed -i -e '/^abuild:/d' "$BUILD_ROOT"/etc/gshadow
 	    fi
 	fi
     fi
 
-    mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null
-    mount -n -tdevpts -omode=0620,gid=5 none $BUILD_ROOT/dev/pts 2> /dev/null
+    mount -n -tproc none "$BUILD_ROOT"/proc 2> /dev/null
+    mount -n -tdevpts -omode=0620,gid=5 none "$BUILD_ROOT"/dev/pts 2> /dev/null
     # needed for POSIX semaphores
-    test -d $BUILD_ROOT/dev/shm || rm -f $BUILD_ROOT/dev/shm
-    mkdir -p $BUILD_ROOT/dev/shm
-    mount -n -ttmpfs none $BUILD_ROOT/dev/shm 2> /dev/null
+    test -d "$BUILD_ROOT"/dev/shm || rm -f "$BUILD_ROOT"/dev/shm
+    mkdir -p "$BUILD_ROOT"/dev/shm
+    mount -n -ttmpfs none "$BUILD_ROOT"/dev/shm 2> /dev/null
 
     if test -n "$RUNNING_IN_VM" ; then
         if test -x /sbin/ip ; then
@@ -1327,6 +1412,16 @@
                    ifconfig ${VM_TELNET_DEVICE} add ::1/24
             fi  
         fi
+        if test -n "$VM_NETDEVOPT"; then
+            let LASTIP="${VM_WORKER_NR:-0}"+10
+            if test -x /sbin/ip ; then
+                ip addr add 10.0.2.$LASTIP/24 dev eth0
+                ip link set eth0 up
+            else
+                ifconfig eth0 10.0.2.$LASTIP netmask 255.255.255.0 up
+            fi
+            route add default gw 10.0.2.2 eth0
+        fi
 	if test -n "$MYHOSTNAME" ; then
 	    hostname "$MYHOSTNAME"
 	fi
@@ -1346,16 +1441,16 @@
 
     # fill build directories with sources. Also sets TOPDIR
     recipe_setup
-    
+
     # strip prefix from autogenerated files of source services.
-    for i in $BUILD_ROOT$TOPDIR/SOURCES/_service\:* ; do
+    for i in "$BUILD_ROOT"$TOPDIR/SOURCES/_service\:* ; do
         mv "$i" "${i%/*}/${i##*:}"
     done
     RECIPEFILE="${RECIPEFILE##*:}"
 
     # create .build.packages link
-    rm -f $BUILD_ROOT/.build.packages
-    ln -s ${TOPDIR#/} $BUILD_ROOT/.build.packages
+    rm -f "$BUILD_ROOT"/.build.packages
+    ln -s ${TOPDIR#/} "$BUILD_ROOT"/.build.packages
 
     # nasty hack to prevent rpath on known paths
     # FIXME: do this only for suse
@@ -1363,21 +1458,21 @@
 	echo "export SUSE_IGNORED_RPATHS=/etc/ld.so.conf" > "$BUILD_ROOT/etc/profile.d/buildsystem.sh"
     fi
 
-    cd $BUILD_ROOT$TOPDIR/SOURCES || cleanup_and_exit 1
+    cd "$BUILD_ROOT"$TOPDIR/SOURCES || cleanup_and_exit 1
     for i in *.obscpio ; do
 	test -e "$i" || continue
 	echo "Unpacking $i ..."
-	echo "#!/bin/sh -e" > $BUILD_ROOT/.unpack.command
-	shellquote cd "$TOPDIR/SOURCES" >> $BUILD_ROOT/.unpack.command
-	echo >> $BUILD_ROOT/.unpack.command
-	echo -n 'cpio --extract --owner="'$BUILD_USER'" --unconditional --preserve-modification-time --make-directories <' >> $BUILD_ROOT/.unpack.command
-	shellquote "$i" >> $BUILD_ROOT/.unpack.command
-	echo >> $BUILD_ROOT/.unpack.command
-	shellquote rm -f "$i" >> $BUILD_ROOT/.unpack.command
-	echo >> $BUILD_ROOT/.unpack.command
-	chmod 0755 $BUILD_ROOT/.unpack.command
-	chroot $BUILD_ROOT su -c /.unpack.command - $BUILD_USER
-	rm -f $BUILD_ROOT/.unpack.command
+	echo "#!/bin/sh -e" > "$BUILD_ROOT"/.unpack.command
+	shellquote cd "$TOPDIR/SOURCES" >> "$BUILD_ROOT"/.unpack.command
+	echo >> "$BUILD_ROOT"/.unpack.command
+	echo -n 'cpio --extract --owner="'$BUILD_USER'" --unconditional --preserve-modification-time --make-directories <' >> "$BUILD_ROOT"/.unpack.command
+	shellquote "$i" >> "$BUILD_ROOT"/.unpack.command
+	echo >> "$BUILD_ROOT"/.unpack.command
+	shellquote rm -f "$i" >> "$BUILD_ROOT"/.unpack.command
+	echo >> "$BUILD_ROOT"/.unpack.command
+	chmod 0755 "$BUILD_ROOT"/.unpack.command
+	chroot "$BUILD_ROOT" su -c /.unpack.command - $BUILD_USER
+	rm -f "$BUILD_ROOT"/.unpack.command
     done
 
     if  test -e _service; then
@@ -1386,7 +1481,7 @@
     fi
 
     # get rid of old src dir, it is no longer needed and just wastes space
-    test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir && rm -rf "$MYSRCDIR"
+    test "$MYSRCDIR" = "$BUILD_ROOT"/.build-srcdir && rm -rf "$MYSRCDIR"
 
     # patch recipes
     recipe_prepare
@@ -1414,6 +1509,10 @@
 
     start_time=`date +%s`
     recipe_build
+    # if the build fails and failure is in specified list which be rebuilt, rebuild it
+    if [ "$BUILD_SUCCEEDED" = false -a -n "$FAILURES_TO_REBUILD" ]; then
+        try_rebuild
+    fi
     if test "$DO_STATISTICS" = 1; then
         mkdir -p $TOPDIR/OTHER
         echo "TIME_main_build: $(( `date +%s` - $start_time ))"  >> $TOPDIR/OTHER/_statistics
@@ -1428,36 +1527,45 @@
     touch /.build/_statistics.exit
 fi
 
-RPMS=`find $BUILD_ROOT/$TOPDIR/RPMS -type f -name "*.rpm" 2>/dev/null || true`
-DEBS=`find $BUILD_ROOT/$TOPDIR/DEBS -type f -name "*.deb" 2>/dev/null || true`
-
+RPMS=`find "$BUILD_ROOT"/$TOPDIR/RPMS -type f -name "*.rpm" 2>/dev/null | sed 's/.*/\"&\"/g' || true`
+DEBS=`find "$BUILD_ROOT"/$TOPDIR/DEBS -type f -name "*.deb" 2>/dev/null | sed 's/.*/\"&\"/g' || true`
 if test -n "$RPMS" -a -n "$BUILD_USER_ABUILD_USED" ; then
     recipe_check_file_owners
 fi
-
 if test -n "$RPMS" -a -d "$BUILD_ROOT/usr/lib/build/checks" ; then
     export DO_RPM_REMOVE=true
     # find package name
     export PNAME=
-    for SRPM in $BUILD_ROOT/$TOPDIR/SRPMS/*src.rpm ; do
+    for SRPM in "$BUILD_ROOT"/$TOPDIR/SRPMS/*src.rpm ; do
 	test -f "$SRPM" && PNAME=`rpm --nodigest --nosignature -qp --qf "%{NAME}" $SRPM`
     done
-    mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null
-    for CHECKSCRIPT in $BUILD_ROOT/usr/lib/build/checks/* ; do
+    mount -n -tproc none "$BUILD_ROOT"/proc 2> /dev/null
+    for CHECKSCRIPT in "$BUILD_ROOT"/usr/lib/build/checks/* ; do
 	echo "... running ${CHECKSCRIPT##*/}"
 	$CHECKSCRIPT || cleanup_and_exit 1
     done
-    umount -n $BUILD_ROOT/proc 2>/dev/null || true
+    umount -n "$BUILD_ROOT"/proc 2>/dev/null || true
 fi
 
 # checkscripts may have deleted some binaries
-RPMS=`find $BUILD_ROOT/$TOPDIR/RPMS -type f -name "*.rpm" 2>/dev/null || true`
-DEBS=`find $BUILD_ROOT/$TOPDIR/DEBS -type f -name "*.deb" 2>/dev/null || true`
+RPMS=`find "$BUILD_ROOT"/$TOPDIR/RPMS -type f -name "*.rpm" 2>/dev/null | sed 's/.*/\"&\"/g' || true`
+DEBS=`find "$BUILD_ROOT"/$TOPDIR/DEBS -type f -name "*.deb" 2>/dev/null | sed 's/.*/\"&\"/g' || true`
 
 if test -n "$RPMS" -a "$DO_CHECKS" != false ; then
     recipe_run_rpmlint
 fi
 
+if test -n "$CCACHE" ; then
+    if test -n "$REMOVE_CCACHE" ; then
+        echo "... cleaning ccache"
+        test_cmd="ccache -h | grep -c evict-older-than"
+        clean_cmd="ccache --evict-older-than $(($(date +%s) - $CCACHE_SETUP_START_TIME))s"
+        chroot $BUILD_ROOT su -c "$test_cmd && $clean_cmd" - $BUILD_USER
+    fi
+    echo "... saving ccache"
+    tar ${REMOVE_CCACHE:+--remove-files} -cf "$BUILD_ROOT/$TOPDIR/OTHER/_ccache.tar" -C "$BUILD_ROOT/.ccache/" .
+fi
+
 if test \( -n "$RPMS" -o -n "$DEBS" \) -a -n "$CREATE_BASELIBS"; then
     create_baselibs
 fi
@@ -1469,15 +1577,13 @@
 if test -n "$RPMS" -a -d "$BUILD_ROOT/.build.oldpackages" ; then
     recipe_compare_oldpackages
     # no need to create deltas if the build is the same
-    if test ! -e $BUILD_ROOT/.build/.same_result_marker ; then
-	recipe_create_deltarpms
+    if test ! -e "$BUILD_ROOT"/.build/.same_result_marker ; then
+    recipe_create_deltarpms
     fi
 fi
-
 if test -n "$RUNNING_IN_VM" ; then
     vm_wrapup_build $(recipe_resultdirs) OTHER
 fi
-
 echo
 echo "$HOST finished \"build $RECIPEFILE\" at `date --utc`."
 echo
--- build-20160629.orig/build-pkg-arch
+++ build-20160629/build-pkg-arch
@@ -22,10 +22,10 @@
 ################################################################
 
 pkg_initdb_arch() {
-    mkdir -p $BUILD_ROOT/var/lib/pacman/sync
-    touch $BUILD_ROOT/var/lib/pacman/sync/core.db
-    touch $BUILD_ROOT/var/lib/pacman/sync/extra.db
-    touch $BUILD_ROOT/var/lib/pacman/sync/community.db
+    mkdir -p "$BUILD_ROOT"/var/lib/pacman/sync
+    touch "$BUILD_ROOT"/var/lib/pacman/sync/core.db
+    touch "$BUILD_ROOT"/var/lib/pacman/sync/extra.db
+    touch "$BUILD_ROOT"/var/lib/pacman/sync/community.db
 }
 
 pkg_prepare_arch() {
@@ -33,7 +33,7 @@
 }
 
 pkg_erase_arch() {
-    ( cd $BUILD_ROOT && chroot $BUILD_ROOT pacman -R -n -d -d --noconfirm $PKG 2>&1 || touch $BUILD_ROOT/exit ) | \
+    ( cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" pacman -R -n -d -d --noconfirm $PKG 2>&1 || touch "$BUILD_ROOT"/exit ) | \
 	perl -ne '$|=1;/^(Total Removed Size: |Packages \(\d+\):|:: Do you want to remove these packages|deleting |removing |    )/||/^$/||print'
 }
 
@@ -48,9 +48,9 @@
 pkg_install_arch() {
     # Pacman can't handle chroot
     # https://bbs.archlinux.org/viewtopic.php?id=129661
-    (cd $BUILD_ROOT/etc && sed -i "s/^CheckSpace/#CheckSpace/g" pacman.conf)
+    (cd "$BUILD_ROOT"/etc && sed -i "s/^CheckSpace/#CheckSpace/g" pacman.conf)
     # -d -d disables deps checking
-    ( cd $BUILD_ROOT && chroot $BUILD_ROOT pacman -U --force -d -d --noconfirm .init_b_cache/$PKG.$PSUF 2>&1 || touch $BUILD_ROOT/exit ) | \
+    ( cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" pacman -U --force -d -d --noconfirm .init_b_cache/$PKG.$PSUF 2>&1 || touch "$BUILD_ROOT"/exit ) | \
 	perl -ne '$|=1;/^(warning: could not get filesystem information for |loading packages|looking for inter-conflicts|looking for conflicting packages|Targets |Total Installed Size: |Net Upgrade Size: |Proceed with installation|checking package integrity|loading package files|checking for file conflicts|checking keyring|Packages \(\d+\)|:: Proceed with installation|:: Processing package changes|checking available disk space|installing |upgrading |warning:.*is up to date -- reinstalling|Optional dependencies for|    )/||/^$/||print'
 }
 
@@ -70,7 +70,7 @@
 pkg_runscripts_arch() {
     if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" ; then
 	echo "running $PKG postinstall script"
-	( cd $BUILD_ROOT && chroot $BUILD_ROOT ".init_b_cache/scripts/$PKG.post" < /dev/null )
+	( cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" ".init_b_cache/scripts/$PKG.post" < /dev/null )
 	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post"
     fi
 }
--- build-20160629.orig/build-pkg-deb
+++ build-20160629/build-pkg-deb
@@ -21,6 +21,8 @@
 #
 ################################################################
 
+DEB_UNSAFE_IO=
+
 #
 # A wrapper around chroot to set the environment correctly for dpkg and
 # pre/postinst scripts.
@@ -41,32 +43,36 @@
 }
 
 deb_setup() {
-    mkdir -p $BUILD_ROOT/var/lib/dpkg
-    mkdir -p $BUILD_ROOT/var/log
-    mkdir -p $BUILD_ROOT/etc/default
-    :>> $BUILD_ROOT/var/lib/dpkg/status
-    :>> $BUILD_ROOT/var/lib/dpkg/available
-    :>> $BUILD_ROOT/var/log/dpkg.log
-    :>> $BUILD_ROOT/etc/ld.so.conf
-    :>> $BUILD_ROOT/etc/default/rcS
+    mkdir -p "$BUILD_ROOT"/var/lib/dpkg
+    mkdir -p "$BUILD_ROOT"/var/log
+    mkdir -p "$BUILD_ROOT"/etc/default
+    :>> "$BUILD_ROOT"/var/lib/dpkg/status
+    :>> "$BUILD_ROOT"/var/lib/dpkg/available
+    :>> "$BUILD_ROOT"/var/log/dpkg.log
+    :>> "$BUILD_ROOT"/etc/ld.so.conf
+    :>> "$BUILD_ROOT"/etc/default/rcS
 }
 
 pkg_initdb_deb() {
     deb_setup
     # force dpkg into database to make epoch test work
     if ! test "$BUILD_ROOT/.init_b_cache/rpms/dpkg.deb" -ef "$BUILD_ROOT/.init_b_cache/dpkg.deb" ; then
-	rm -f $BUILD_ROOT/.init_b_cache/dpkg.deb
-	cp $BUILD_ROOT/.init_b_cache/rpms/dpkg.deb $BUILD_ROOT/.init_b_cache/dpkg.deb || cleanup_and_exit 1
+	rm -f "$BUILD_ROOT"/.init_b_cache/dpkg.deb
+	cp "$BUILD_ROOT"/.init_b_cache/rpms/dpkg.deb "$BUILD_ROOT"/.init_b_cache/dpkg.deb || cleanup_and_exit 1
     fi
-    deb_chroot $BUILD_ROOT dpkg --install --force-depends .init_b_cache/dpkg.deb >/dev/null 2>&1
+    DEB_UNSAFE_IO=
+    chroot "$BUILD_ROOT" dpkg --force-unsafe-io --version >/dev/null 2>&1 && DEB_UNSAFE_IO="--force-unsafe-io"
+    deb_chroot "$BUILD_ROOT" dpkg --install $DEB_UNSAFE_IO --force-depends .init_b_cache/dpkg.deb >/dev/null 2>&1
 }
 
 pkg_prepare_deb() {
-    :
+    # test if dpkg knows --force-unsafe-io
+    DEB_UNSAFE_IO=
+    chroot $BUILD_ROOT dpkg --force-unsafe-io --version >/dev/null 2>&1 && DEB_UNSAFE_IO="--force-unsafe-io"
 }
 
 pkg_install_deb() {
-    ( deb_chroot $BUILD_ROOT dpkg --install --force-depends .init_b_cache/$PKG.deb 2>&1 || touch $BUILD_ROOT/exit ) | \
+    ( 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'
     # ugly workaround for upstart system. some packages (procps) try
     # to start a service in their configure phase. As we don't have
@@ -83,12 +89,12 @@
 }
 
 pkg_erase_deb() {
-    deb_chroot $BUILD_ROOT dpkg --purge --force-depends $PKG 2>&1 | {
+    deb_chroot "$BUILD_ROOT" dpkg --purge --force-depends $PKG 2>&1 | {
       local retry
       while read line; do
           case "$line" in
               subprocess\ installed\ *script\ returned\ error\ exit\ status*)
-                 chroot $BUILD_ROOT rm -f /var/lib/dpkg/info/$PKG.{pre,post}rm
+                 chroot "$BUILD_ROOT" rm -f /var/lib/dpkg/info/$PKG.{pre,post}rm
                  retry=1
               ;;
               *) echo "$line" ;;
@@ -96,7 +102,7 @@
       done
       if test -n "$retry"; then
           echo "re-try deleting $PKG without post/pre remove scripts"
-          deb_chroot $BUILD_ROOT dpkg --purge --force-depends $PKG 2>&1 || touch $BUILD_ROOT/exit
+          deb_chroot "$BUILD_ROOT" dpkg --purge --force-depends $PKG 2>&1 || touch "$BUILD_ROOT"/exit
       fi
     } | perl -ne '$|=1;/^(\(Reading database|Removing |Purging configuration files for )/||/^$/||print'
 }
@@ -114,41 +120,49 @@
     # configure all packages after complete installation, not for each package like rpm does
     # We need to run this twice, because of cyclic dependencies as it does not succeed on most
     # debian based distros in the first attempt.
-    if ! deb_chroot $BUILD_ROOT dpkg --configure --pending  2>&1; then
+    if ! deb_chroot "$BUILD_ROOT" dpkg --configure --pending  2>&1; then
          echo "first configure attempt failed, trying again..."
-         deb_chroot $BUILD_ROOT dpkg --configure --pending  2>&1 || cleanup_and_exit 1
+         deb_chroot "$BUILD_ROOT" dpkg --configure --pending  2>&1 || cleanup_and_exit 1
     fi
 }
 
 pkg_preinstall_deb() {
     ar x "$BUILD_ROOT/.init_b_cache/rpms/$PKG.deb"
     mkdir -p .init_b_cache/scripts/control
-    $TAR -C .init_b_cache/scripts/control -z -f control.tar.gz
+    if test -f "control.tar.gz" ; then
+    	$TAR -C .init_b_cache/scripts/control -z -f control.tar.gz
+    elif test -f "control.tar.xz" ; then
+	$TAR -C .init_b_cache/scripts/control -J -f control.tar.xz
+    elif test -f "control.tar.zst" ; then
+	$TAR -C .init_b_cache/scripts/control -J -f control.tar.zst
+    fi
     if test -f "data.tar.gz" ; then
 	$TAR -z -f data.tar.gz
     elif test -f "data.tar.xz" ; then
 	$TAR -J -f data.tar.xz
+    elif test -f "data.tar.zst" ; then
+        $TAR -J -f data.tar.zst
     fi
     if test -e ".init_b_cache/scripts/$PKG.run" ; then
 	test -e .init_b_cache/scripts/control/preinst && mv .init_b_cache/scripts/control/preinst ".init_b_cache/scripts/$PKG.pre"
 	test -e .init_b_cache/scripts/control/postinst && mv .init_b_cache/scripts/control/postinst ".init_b_cache/scripts/$PKG.post"
     fi
-    rm -rf .init_b_cache/scripts/control control.tar.gz data.tar.{g,x}z
+    rm -rf .init_b_cache/scripts/control control.tar.{g,x}z data.tar.{g,x}z control.tar.zst data.tar.zst
 }
 
 pkg_runscripts_deb() {
-    if ! test -e $BUILD_ROOT/var/lib/dpkg/status ; then
+    if ! test -e "$BUILD_ROOT"/var/lib/dpkg/status ; then
 	deb_setup
     fi
     if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" ; then
 	echo "running $PKG preinstall script"
-	deb_chroot $BUILD_ROOT ".init_b_cache/scripts/$PKG.pre" install \
+	deb_chroot "$BUILD_ROOT" ".init_b_cache/scripts/$PKG.pre" install \
 		   < /dev/null
 	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre"
     fi
     if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" ; then
 	echo "running $PKG postinstall script"
-	deb_chroot $BUILD_ROOT ".init_b_cache/scripts/$PKG.post" configure '' \
+	deb_chroot "$BUILD_ROOT" ".init_b_cache/scripts/$PKG.post" configure '' \
 		   < /dev/null
 	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post"
     fi
--- build-20160629.orig/build-pkg-rpm
+++ build-20160629/build-pkg-rpm
@@ -24,20 +24,20 @@
 
 pkg_initdb_rpm() {
     echo "initializing rpm db..."
-    mkdir -p $BUILD_ROOT/var/lib/rpm
+    mkdir -p "$BUILD_ROOT"/var/lib/rpm
     # rpm v5 does not have initdb
-    if ! test -e $BUILD_ROOT/usr/lib/rpm/cpuinfo.yaml ; then
-	if test -x $BUILD_ROOT/usr/bin/rpmdb ; then
-	    chroot $BUILD_ROOT /usr/bin/rpmdb --initdb || cleanup_and_exit 1
+    if ! test -e "$BUILD_ROOT"/usr/lib/rpm/cpuinfo.yaml ; then
+	if test -x "$BUILD_ROOT"/usr/bin/rpmdb ; then
+	    chroot "$BUILD_ROOT" /usr/bin/rpmdb --initdb || cleanup_and_exit 1
 	else
-	    chroot $BUILD_ROOT rpm --initdb || cleanup_and_exit 1
+	    chroot "$BUILD_ROOT" rpm --initdb || cleanup_and_exit 1
 	fi
     fi
     # hack: add nofsync to db config to speed up install
-    mkdir -p $BUILD_ROOT/root
-    DBI_OTHER=`chroot $BUILD_ROOT rpm --eval '%{?__dbi_other}'`
-    echo "%__dbi_other $DBI_OTHER nofsync" > $BUILD_ROOT/.rpmmacros
-    echo "%__dbi_other $DBI_OTHER nofsync" > $BUILD_ROOT/root/.rpmmacros
+    mkdir -p "$BUILD_ROOT"/root
+    DBI_OTHER=`chroot "$BUILD_ROOT" rpm --eval '%{?__dbi_other}'`
+    echo "%__dbi_other $DBI_OTHER nofsync" > "$BUILD_ROOT"/.rpmmacros
+    echo "%__dbi_other $DBI_OTHER nofsync" > "$BUILD_ROOT"/root/.rpmmacros
 }
 
 pkg_prepare_rpm() {
@@ -46,7 +46,7 @@
 }
 
 pkg_erase_rpm() {
-    chroot $BUILD_ROOT rpm --nodeps -e $PKG 2>&1 | {
+    chroot "$BUILD_ROOT" rpm --nodeps -e $PKG 2>&1 | {
 	local retry
 	while read line; do
 	    case "$line" in
@@ -61,7 +61,7 @@
 	done
 	if test -n "$retry" ; then
 	    echo "re-try deleting $PKG using --noscripts"
-	    chroot $BUILD_ROOT rpm --nodeps --noscripts -e $PKG || true
+	    chroot "$BUILD_ROOT" rpm --nodeps --noscripts -e $PKG || true
 	fi
     }
 }
@@ -70,7 +70,7 @@
     RPMCHECKOPTS=
     # on Fedora 10 rpmbuild is in a separate package so we need something else to
     # detect rpm4
-    test -x $BUILD_ROOT/usr/bin/rpmquery && RPMCHECKOPTS="--nodigest --nosignature"
+    test -x "$BUILD_ROOT"/usr/bin/rpmquery && RPMCHECKOPTS="--nodigest --nosignature"
 }
 
 rpm_init_cumulate() {
@@ -78,15 +78,28 @@
     CUMULATED_LIST=()
     CUMULATED_PIDS=()
     CUMULATED_HMD5=()
-    DO_CUMULATE=
-    typeset -ri suse_version=$(chroot $BUILD_ROOT rpm --eval '%{?suse_version}' 2>/dev/null)
-    if ((suse_version > 1220)) ; then 
-	DO_CUMULATE=true
+
+#    force enable DO_CUMULATE
+#
+#    We can't use cumulative install because we don't use %suse_version macro.
+#    However, our build system is based on openSUSE Build service and we use
+#    always newer suse version than 1220. Thus, we can always enable cumulative
+#    install instead of defining the suse_version.
+#
+#    ref: https://review.tizen.org/gerrit/#/c/platform/upstream/build/+/25635/
+
+    DO_CUMULATE=true
+
+    local nocumulaterpms=$(queryconfig --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" buildflags nocumulaterpms)
+    if test -n "$nocumulaterpms" ; then
+        test "$nocumulaterpms" != 0 && DO_CUMULATE=false
+    else
+        test "$NOCUMULATE" = true && DO_CUMULATE=false
     fi
 }
 
 pkg_verify_installed_rpm() {
-    chroot $BUILD_ROOT rpm --verify $PKG 2>&1 | tee $TMPFILE
+    chroot "$BUILD_ROOT" rpm --verify $PKG 2>&1 | tee $TMPFILE
     if grep ^missing $TMPFILE > /dev/null ; then
 	return 1
     fi
@@ -97,7 +110,7 @@
     test "$DO_CUMULATE" = true || return 1
     # work around for cross-build installs, we must not overwrite the running rpm
     if test "$PKG" = rpm ; then
-	for i in $BUILD_ROOT/.init_b_cache/preinstalls/rpm-x86-* ; do
+	for i in "$BUILD_ROOT"/.init_b_cache/preinstalls/rpm-x86-* ; do
 	    test -e "$i" && return 1
 	done
     fi
@@ -109,19 +122,9 @@
 }
 
 pkg_install_rpm() {
-    export ADDITIONAL_PARAMS=
-    if test "$USE_FORCE" = true ; then
-	export ADDITIONAL_PARAMS="$ADDITIONAL_PARAMS --force"
-    fi
-    # work around for cross-build installs, we must not overwrite the running rpm
-    if test "$PKG" = rpm ; then
-	for i in $BUILD_ROOT/.init_b_cache/preinstalls/rpm-x86-* ; do
-	    test -e "$i" && ADDITIONAL_PARAMS="$ADDITIONAL_PARAMS --justdb"
-	done
-    fi
-    ( cd $BUILD_ROOT && chroot $BUILD_ROOT rpm --ignorearch --nodeps -U --oldpackage --ignoresize $RPMCHECKOPTS \
+    ( cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" rpm --ignorearch --nodeps -U --oldpackage --ignoresize $RPMCHECKOPTS \
 		$ADDITIONAL_PARAMS .init_b_cache/$PKG.rpm 2>&1 || \
-	  touch $BUILD_ROOT/exit ) | \
+	  touch "$BUILD_ROOT"/exit ) | \
 	      grep -v "^warning:.*saved as.*rpmorig$"
 }
 
@@ -132,39 +135,48 @@
 	    echo ${CUMULATED_LIST[$num]}
 	    PKG=${CUMULATED_LIST[$num]##*/}
 	    test "$BUILD_ROOT/.init_b_cache/rpms/$PKG" -ef "$BUILD_ROOT/${CUMULATED_LIST[$num]}" && continue
-	    rm -f $BUILD_ROOT/${CUMULATED_LIST[$num]}
-	    cp $BUILD_ROOT/.init_b_cache/rpms/$PKG $BUILD_ROOT/${CUMULATED_LIST[$num]} || cleanup_and_exit 1
-	done > $BUILD_ROOT/.init_b_cache/manifest
-	( cd $BUILD_ROOT && chroot $BUILD_ROOT rpm --ignorearch --nodeps -Uh --oldpackage --ignoresize --verbose $RPMCHECKOPTS \
-		$ADDITIONAL_PARAMS .init_b_cache/manifest 2>&1 || touch $BUILD_ROOT/exit )
+	    rm -f "$BUILD_ROOT"/${CUMULATED_LIST[$num]}
+	    cp "$BUILD_ROOT"/.init_b_cache/rpms/$PKG "$BUILD_ROOT"/${CUMULATED_LIST[$num]} || cleanup_and_exit 1
+	done > "$BUILD_ROOT"/.init_b_cache/manifest
+	( cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" rpm --ignorearch --nodeps -Uh --oldpackage --ignoresize --verbose $RPMCHECKOPTS \
+		$ADDITIONAL_PARAMS .init_b_cache/manifest 2>&1 || touch "$BUILD_ROOT"/exit )
 	for ((num=0; num<=cumulate; num++)) ; do
-	    rm -f $BUILD_ROOT/${CUMULATED_LIST[$num]}
+	    rm -f "$BUILD_ROOT"/${CUMULATED_LIST[$num]}
 	done
-	rm -f $BUILD_ROOT/.init_b_cache/manifest
+	rm -f "$BUILD_ROOT"/.init_b_cache/manifest
 	check_exit
 	for ((num=0; num<=cumulate; num++)) ; do
 	    PKG=${CUMULATED_LIST[$num]##*/}
-	    echo "${CUMULATED_PIDS[$num]}" > $BUILD_ROOT/installed-pkg/${PKG%.rpm}
+	    echo "${CUMULATED_PIDS[$num]}" > "$BUILD_ROOT"/installed-pkg/${PKG%.rpm}
 	    test -n "${CUMULATED_HMD5[$num]}" || continue
-	    echo "${CUMULATED_HMD5[$num]} ${CUMULATED_PIDS[$num]}" > $BUILD_ROOT/.preinstall_image/${PKG%.rpm}
+	    echo "${CUMULATED_HMD5[$num]} ${CUMULATED_PIDS[$num]}" > "$BUILD_ROOT"/.preinstall_image/${PKG%.rpm}
 	done
     fi
 }
 
 pkg_preinstall_rpm() {
     PAYLOADDECOMPRESS=cat
-    case `rpm -qp --nodigest --nosignature --qf "%{PAYLOADCOMPRESSOR}\n" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm"` in
+    case `rpm -qp --nodigest --nosignature --qf "%{PAYLOADCOMPRESSOR}\n" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm"` in
 	lzma) rpm --showrc | egrep 'PayloadIsLzma|_lzma' > /dev/null || PAYLOADDECOMPRESS="lzma -d" ;;
 	xz) rpm --showrc | egrep 'PayloadIsXz|_xz' > /dev/null || PAYLOADDECOMPRESS="xz -d" ;;
+	zstd) rpm --showrc | egrep 'PayloadIsZstd' > /dev/null || PAYLOADDECOMPRESS="zstd -d" ;;
     esac
     if test "$PAYLOADDECOMPRESS" = "lzma -d" ; then
 	if ! lzma </dev/null >/dev/null 2>&1 ; then
-	    test -f "$BUILD_DIR/lzmadec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/lzmadec.sh"
+	    test -f "$BUILD_DIR/lzmadec.sh" || cleanup_and_exit 3 "no lzma decoder available in host system"
+	    PAYLOADDECOMPRESS="bash $BUILD_DIR/lzmadec.sh"
 	fi
     fi
     if test "$PAYLOADDECOMPRESS" = "xz -d" ; then
 	if ! xz </dev/null >/dev/null 2>&1 ; then
-	    test -f "$BUILD_DIR/xzdec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/xzdec.sh"
+	    test -f "$BUILD_DIR/xzdec.sh" || cleanup_and_exit 3 "no xz decoder available in host system"
+	    PAYLOADDECOMPRESS="bash $BUILD_DIR/xzdec.sh"
+	fi
+    fi
+    if test "$PAYLOADDECOMPRESS" = "zstd -d" ; then
+	if ! zstd </dev/null >/dev/null 2>&1 ; then
+	    test -f "$BUILD_DIR/zstddec.sh" || cleanup_and_exit 3 "no zstd decoder available in host system"
+	    PAYLOADDECOMPRESS="bash $BUILD_DIR/zstddec.sh"
 	fi
     fi
     if test "$PAYLOADDECOMPRESS" = cat ; then
@@ -173,8 +185,10 @@
 	rpm2cpio "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" | $PAYLOADDECOMPRESS | $CPIO
     fi
     if test -e ".init_b_cache/scripts/$PKG.run" ; then
-	rpm -qp --nodigest --nosignature --qf "%{PREIN}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.pre"
-	rpm -qp --nodigest --nosignature --qf "%{POSTIN}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.post"
+	rpm -qp --nodigest --nosignature --qf "%{PREIN}" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.pre"
+	rpm -qp --nodigest --nosignature --qf "%{PREINPROG}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.preprog"
+	rpm -qp --nodigest --nosignature --qf "%{POSTIN}" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.post"
+	rpm -qp --nodigest --nosignature --qf "%{POSTINPROG}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.postprog"
 	echo -n '(none)' > .init_b_cache/scripts/.none
 	cmp -s ".init_b_cache/scripts/$PKG.pre" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$PKG.pre"
 	cmp -s ".init_b_cache/scripts/$PKG.post" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$PKG.post"
@@ -183,21 +197,31 @@
     # hack for rpm erasures
     if test -d "$BUILD_ROOT/installed-pkg" ; then
 	# call for rpm-4.x and not rpm-devel
-        test -z "${PKG##rpm-[0-9]*}" && chroot $BUILD_ROOT rpm --rebuilddb
+        test -z "${PKG##rpm-[0-9]*}" && chroot "$BUILD_ROOT" rpm --rebuilddb
         # also exec for exchanged rpm !  naming is rpm-x86-<target>-<ver>
-        test -z "${PKG##rpm-x86-*[0-9]*}" && chroot $BUILD_ROOT rpm --rebuilddb
+        test -z "${PKG##rpm-x86-*[0-9]*}" && chroot "$BUILD_ROOT" rpm --rebuilddb
     fi
 }
 
 pkg_runscripts_rpm() {
     if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" ; then
 	echo "running $PKG preinstall script"
-	(cd $BUILD_ROOT && chroot $BUILD_ROOT sh ".init_b_cache/scripts/$PKG.pre" 0)
-	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre"
+	local prog
+	read prog < "$BUILD_ROOT/.init_b_cache/scripts/$PKG.preprog"
+        if test "$prog" = "<lua>" ; then
+            prog="/usr/bin/lua"
+        fi
+	(cd $BUILD_ROOT && chroot $BUILD_ROOT "${prog:-sh}" ".init_b_cache/scripts/$PKG.pre" 0)
+	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" "$BUILD_ROOT/.init_b_cache/scripts/$PKG.preprog"
     fi
     if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" ; then
 	echo "running $PKG postinstall script"
-	(cd $BUILD_ROOT && chroot $BUILD_ROOT sh ".init_b_cache/scripts/$PKG.post" 1)
-	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post"
+	local prog
+	read prog < "$BUILD_ROOT/.init_b_cache/scripts/$PKG.postprog"
+        if test "$prog" = "<lua>" ; then
+            prog="/usr/bin/lua"
+        fi
+	(cd $BUILD_ROOT && chroot $BUILD_ROOT "${prog:-sh}" ".init_b_cache/scripts/$PKG.post" 1)
+	rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" "$BUILD_ROOT/.init_b_cache/scripts/$PKG.postprog"
     fi
 }
--- build-20160629.orig/build-recipe-debootstrap
+++ build-20160629/build-recipe-debootstrap
@@ -45,6 +45,10 @@
     done
     FULL_PKG_LIST="${FULL_PKG_LIST#,}"
     rm -rf "$BUILD_ROOT/$myroot"
+    if chroot $BUILD_ROOT dpkg --force-unsafe-io --version >/dev/null 2>&1 ; then
+	mkdir -p "$BUILD_ROOT/$myroot/etc/dpkg/dpkg.cfg.d"
+	echo force-unsafe-io > "$BUILD_ROOT/$myroot/etc/dpkg/dpkg.cfg.d/force-unsafe-io"
+    fi
     set -- chroot $BUILD_ROOT debootstrap --keep-debootstrap-dir --no-check-gpg --variant=buildd --arch="${arch}" --include="$FULL_PKG_LIST" "$dist" "$myroot" file:///.build.binaries
     echo "running debootstrap..."
     if ! "$@" || ! chroot $BUILD_ROOT dpkg --configure -a; then
--- build-20160629.orig/build-recipe-spec
+++ build-20160629/build-recipe-spec
@@ -27,10 +27,13 @@
 	echo "Error: TOPDIR empty"
 	cleanup_and_exit 1
     fi
-    test "$DO_INIT_TOPDIR" = false || rm -rf "$BUILD_ROOT$TOPDIR"
-    for i in BUILD RPMS/`uname -m` RPMS/i386 RPMS/noarch SOURCES SPECS SRPMS BUILDROOT OTHER ; do
-	mkdir -p $BUILD_ROOT$TOPDIR/$i
-    done
+    if [ "$NO_TOPDIR_CLEANUP" = false ]; then
+	    rm -rf "$BUILD_ROOT$TOPDIR"
+	    for i in BUILD RPMS/`uname -m` RPMS/i386 RPMS/noarch SOURCES SPECS SRPMS BUILDROOT OTHER ; do
+	        mkdir -p $BUILD_ROOT$TOPDIR/$i
+	     done
+    fi
+
     chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR"
     mkdir -p $BUILD_ROOT$TOPDIR/SOURCES
     cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/
@@ -56,7 +59,9 @@
 	mv $BUILD_ROOT/usr/lib/rpm/rpmrc $BUILD_ROOT/usr/lib/rpm/rpmrc_i586
 	sed -e 's/^buildarchtranslate: athlon.*/buildarchtranslate: athlon: i686/' -e 's/^buildarchtranslate: i686.*/buildarchtranslate: i686: i686/' < $BUILD_ROOT/usr/lib/rpm/rpmrc_i586 > $BUILD_ROOT/usr/lib/rpm/rpmrc
     fi
-
+    if test "$DO_BUILD" = false ; then
+        cleanup_and_exit 0
+    fi
     # extract macros from configuration
     queryconfig rawmacros --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" > $BUILD_ROOT/root/$rawcfgmacros
     if test -n "$BUILD_DEBUG" && test "$BUILDTYPE" != debbuild ; then
@@ -112,7 +117,7 @@
     test "$BUILDTYPE" = debbuild && rpmbuild=debbuild
 
     # XXX: move _srcdefattr to macro file?
-    rpmbopts=("$BUILD_RPM_BUILD_STAGE" "--define" "_srcdefattr (-,root,root)")
+    rpmbopts=("--define" "_srcdefattr (-,root,root)")
     if test "$DO_CHECKS" != true ; then
 	if chroot "$BUILD_ROOT" "$rpmbuild" --nocheck --help >/dev/null 2>&1; then
 	    rpmbopts[${#rpmbopts[@]}]="--nocheck"
@@ -142,11 +147,31 @@
 
     # su involves a shell which would require even more
     # complicated quoting to bypass than this
-    toshellscript $rpmbuild \
-	    "${definesnstuff[@]}" \
-	    "${rpmbopts[@]}" \
-	    "$TOPDIR/SOURCES/$RECIPEFILE" \
-	    > $BUILD_ROOT/.build.command
+	if test "$SHORT_CIRCUIT" = false ; then
+	    rpmbopts[${#rpmbopts[@]}]="$BUILD_RPM_BUILD_STAGE"
+	    toshellscript $rpmbuild \
+	            "${definesnstuff[@]}" \
+	            "${rpmbopts[@]}" \
+	            "$TOPDIR/SOURCES/$RECIPEFILE" \
+	            > $BUILD_ROOT/.build.command
+	else
+	    rpmbopts[${#rpmbopts[@]}]='--short-circuit'
+	    buildopts="-bc -bi -bb -bs"
+	    cmds=""
+	    echo "#!/bin/sh -x" >$BUILD_ROOT/.build.command
+	    echo "set -e" >>$BUILD_ROOT/.build.command
+	    for opt in $buildopts
+	    do
+	        shellquote $rpmbuild  \
+	                "${definesnstuff[@]}" \
+	                "${rpmbopts[@]}" $opt \
+	                "$TOPDIR/SOURCES/$RECIPEFILE" \
+	                >> $BUILD_ROOT/.build.command
+	        echo >>$BUILD_ROOT/.build.command
+	        [ "$opt" == "$BUILD_RPM_BUILD_STAGE" ] && break
+	    done
+	fi
+	
     chmod 755 $BUILD_ROOT/.build.command
     check_exit
     if test -n "$RUN_SHELL"; then
--- build-20160629.orig/build-vm
+++ build-20160629/build-vm
@@ -744,6 +744,10 @@
     echo "DO_INIT_TOPDIR='${DO_INIT_TOPDIR//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
     echo "KIWI_PARAMETERS='${KIWI_PARAMETERS//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
     echo "VM_TELNET='${VM_TELNET//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
+    echo "VM_WORKER='${VM_WORKER}'" >> $BUILD_ROOT/.build/build.data
+    echo "VM_WORKER_NR='${VM_WORKER_NR}'" >> $BUILD_ROOT/.build/build.data
+    echo "VM_NETDEVOPT='${VM_NETDEVOPT}'" >> $BUILD_ROOT/.build/build.data
+    echo "VM_DEVICEOPT='${VM_DEVICEOPT}'" >> $BUILD_ROOT/.build/build.data
     echo "VM_CONSOLE_INPUT='${VM_CONSOLE_INPUT//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
     test -n "$VM_SWAP" && echo "VM_SWAP='${VM_SWAPDEV//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
     test -n "$VMDISK_MOUNT_OPTIONS" && echo "VMDISK_MOUNT_OPTIONS='${VMDISK_MOUNT_OPTIONS//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data
--- build-20160629.orig/build-vm-docker
+++ build-20160629/build-vm-docker
@@ -29,10 +29,14 @@
 
 vm_startup_docker() {
     local name="obsbuild.${BUILD_ROOT##*/}"
-    docker rm "$name" >/dev/null 2>&1 || true
-    docker run \
+    local vm_init_script_docker="/.build/build"
+    local docker_server=`cat /etc/hosts | grep docker | cut  -f 1`
+    local docker_port=`cat /etc/hosts | grep docker | cut  -f 2`
+    docker_port=${docker_port#docker}
+    docker -H $docker_server:$docker_port rm --privileged "$name" >/dev/null 2>&1 || true
+    docker -H $docker_server:$docker_port run --privileged\
         --rm --name "$name" --cap-add=sys_admin --net=none \
-        -v "$BUILD_ROOT:/mnt" busybox /bin/chroot /mnt "$vm_init_script"
+        -v "$BUILD_ROOT:/mnt" busybox /bin/chroot /mnt "$vm_init_script_docker"
     BUILDSTATUS="$?"
     test "$BUILDSTATUS" != 255 || BUILDSTATUS=3
     cleanup_and_exit "$BUILDSTATUS"
--- build-20160629.orig/build-vm-kvm
+++ build-20160629/build-vm-kvm
@@ -22,6 +22,7 @@
 ################################################################
 
 kvm_bin=/usr/bin/qemu-kvm
+test ! -x $kvm_bin  -a -x /usr/bin/kvm && kvm_bin=/usr/bin/kvm
 kvm_console=ttyS0
 
 # assume virtio support by default
@@ -214,7 +215,7 @@
 
 vm_startup_kvm() {
     qemu_bin="$kvm_bin"
-    qemu_args=(-drive file="$VM_IMAGE",format=raw,if=none,id=disk,serial=0,cache=unsafe -device "$kvm_device",drive=disk)
+    qemu_args=(-drive file="$VM_IMAGE",format=raw,if=none,id=disk,cache=unsafe -device "$kvm_device",drive=disk,serial=0)
     if [ -n "$VM_USER" ] ; then
 	getent passwd "$VM_USER" > /dev/null || complain 22 "cannot find KVM user '$VM_USER'"
     else
@@ -223,7 +224,7 @@
     fi
     [ -n "$VM_USER" ] && kvm_options="$kvm_options -runas $VM_USER"
     if test -n "$VM_SWAP" ; then
-	qemu_args=("${qemu_args[@]}" -drive file="$VM_SWAP",format=raw,if=none,id=swap,serial=1,cache=unsafe -device "$kvm_device",drive=swap)
+	qemu_args=("${qemu_args[@]}" -drive file="$VM_SWAP",format=raw,if=none,id=swap,cache=unsafe -device "$kvm_device",drive=swap,serial=1)
     fi
     # the serial console device needs to be compiled into the target kernel
     # which is why we can not use virtio-serial on other platforms
--- build-20160629.orig/common_functions
+++ build-20160629/common_functions
@@ -88,20 +88,27 @@
     fi
 }
 
-check_use_emulator() {
-    INITVM_NAME=
-    # check if the extended host arch contains the build arch
+check_native_arch() {
+    local arch="$1"
     local old_build_arch="$BUILD_ARCH"
-    local arch="${BUILD_ARCH%%:*}"
     BUILD_ARCH="$BUILD_HOST_ARCH"
     extend_build_arch
     BUILD_ARCH=":$BUILD_ARCH:"
     if test "$BUILD_ARCH" != "${BUILD_ARCH/:$arch:/}" ; then
-	# native supported arch, no emulator
 	BUILD_ARCH="$old_build_arch"
-	return 1
+	return 0
     fi
     BUILD_ARCH="$old_build_arch"
+    return 1
+}
+
+check_use_emulator() {
+    INITVM_NAME=
+    # check if the extended host arch contains the build arch
+    if check_native_arch "${BUILD_ARCH%%:*}" ; then
+	# native supported arch, no emulator needed
+	return 1
+    fi
 
     # to run the qemu initialization in the vm, we need to
     # register it with a static program or shell script
@@ -138,3 +145,52 @@
     local LEN=$1__LENGTH__
     printf "${2-[%d/%d] }" $(($IDX++)) ${!LEN}
 }
+
+# umount that does not follow symlinks
+buildroot_umount() {
+    local d="$1"
+    local d2="/$d"
+    while test -n "$d2" ; do
+        test -L "$BUILD_ROOT$d2" && return
+        test -d "$BUILD_ROOT$d2" || return
+        d2="${d2%/*}"
+    done
+    # XXX: use stat -f /dev/pts/ -c %T  to check whether it's mounted and not suppress errors?
+    local LOOP_CNT=1
+    while [ $LOOP_CNT -le 20 ] ; do
+        umount -n -l -f "$BUILD_ROOT/$d" 2>/dev/null
+        if test $? -ne 0; then
+            break
+        fi
+        LOOP_CNT=$((LOOP_CNT+1))
+    done
+}
+# rm that makes sure the file is gone
+buildroot_rm() {
+    rm -rf "$BUILD_ROOT/$1"
+    test -e "$BUILD_ROOT/$1" && cleanup_and_exit 1 "could not remove $BUILD_ROOT/$1"
+}
+
+assert_dirs() {
+    local d rl
+    if test -z "$1" ; then
+       set usr sbin usr/bin usr/sbin etc .build .build.oldpackages .init_b_cache .init_b_cache/scripts .init_b_cache/rpms .preinstall_image proc proc/sys proc/sys/fs proc/sys/fs/binfmt_misc sys dev dev/pts dev/shm mnt
+    fi
+    for d in "$@" ; do
+	if test -L "$BUILD_ROOT/$d" ; then
+	    rl="$(readlink "$BUILD_ROOT/$d")"
+	    test "$d" = sbin -a "x$rl" = "xusr/sbin" && continue
+	    test "$d" = sbin -a "x$rl" = "xusr/bin" && continue
+	    test "$d" = usr/sbin -a "x$rl" = "xbin" && continue
+	    cleanup_and_exit 1 "$d: illegal symlink to $rl"
+	else
+	    test -e "$BUILD_ROOT/$d" -a ! -d "$BUILD_ROOT/$d" && cleanup_and_exit 1 "$d: not a directory"
+	fi
+    done
+}
+
+assert_dir_path() {
+    test "$1" != "${1%/*}" && assert_dir_path "${1%/*}"
+    assert_dirs "$1"
+}
+
--- build-20160629.orig/configs/sl15.0.conf
+++ build-20160629/configs/sl15.0.conf
@@ -0,0 +1,857 @@
+
+Release: lp150.<CI_CNT>.<B_CNT>
+%define gcc_version 7
+
+# Help with the switch to the gcc7 provided libs
+Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
+Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+Prefer: installation-images-openSUSE installation-images-debuginfodeps-openSUSE
+
+# switch to kiwi v8
+Prefer: python3-kiwi
+Prefer: kiwi-boot-require
+
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat
+#FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /bin/csh tcsh
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/python python-base
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep liblua5_3-5
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+Prefer: cdrkit-cdrtools-compat genisoimage
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: net-tools-deprecated
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+%ifarch ia64
+Support: libunwind libunwind-devel
+Preinstall: libunwind
+%endif
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-openSUSE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+
+# curl
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+# curl: -full and -mini packages don't mingle well
+Prefer: -libcurl4-mini -libcurl-mini-devel
+Conflict: libcurl4-mini:curl
+Conflict: libcurl-mini-devel:libcurl4
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+Prefer: -suse-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: apache2:apache2-prefork
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslog-service syslogd
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+Prefer: yast2-packagemanager-devel:yast2-packagemanager
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: notification-daemon
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: yast2-theme-openSUSE enlightenment-theme-upstream
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: rhino:xmlbeans-mini
+Prefer: rpcbind  eclipse-source
+Prefer: mx4j:log4j-mini
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: dummy-release
+Prefer: libGLw1
+# Help GNOME:Factory over librest-0_7-0 vs librest0 choice
+Prefer: librest-0_7-0
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5 -ruby2.2-rubygem-listen-3_0 -ruby2.2-rubygem-fast_gettext-1_1 -ruby2.2-rubygem-nokogiri-1_6 -ruby2.3-rubygem-nokogiri-1_6
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils python2-pep8
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: pam-modules:resmgr
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: alsa:dialog,pciutils
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: gtk2:libpng,libtiff
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: gnome-pilot:gnome-panel
+Ignore: gnome-panel:control-center2
+Ignore: gnome-menus:kdebase3
+Ignore: gnome-main-menu:rug
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: polkit:ConsoleKit
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: gawk:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: m4:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: gettext-tools:info
+Ignore: gettext-runtime:info
+Ignore: libgcrypt-devel:info
+Ignore: binutils:info
+Ignore: gzip:info
+Ignore: make:info
+Ignore: bison:info
+Ignore: flex:info
+Ignore: help2man:info
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: gnome-libs:libgnomeui
+Ignore: nautilus:gnome-themes
+Ignore: gnome-panel:gnome-themes
+Ignore: gnome-panel:tomboy
+Ignore: NetworkManager:NetworkManager-client
+Ignore: libbeagle:beagle
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: hal:pm-utils
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: pulseaudio:kernel
+Ignore: transmission-common:transmission-ui
+Ignore: mutter-moblin:moblin-branding
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+
+%ifarch ppc64le
+#Constraint: hostlabel PPC64LE_HOST
+Constraint: hardware:cpu:flag power8
+%endif
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+# RUBY STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.2 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby22() rubygem(ruby:2.2.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby22() %{expand:%%{rubygemsx%*}}
+
+%rubyruby22() ruby2.2 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby22() %{expand:%%{rubyx%*}}
+
+%rubydevelruby22() ruby2.2-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby22() %{expand:%%{rubydevelx%*}}
+
+%_with_ruby22               1
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.3 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby23() rubygem(ruby:2.3.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby23() %{expand:%%{rubygemsx%*}}
+
+%rubyruby23() ruby2.3 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby23() %{expand:%%{rubyx%*}}
+
+%rubydevelruby23() ruby2.3-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby23() %{expand:%%{rubydevelx%*}}
+
+%_with_ruby23               1
+
+:Macros
+
+%define _with_ruby22         1
+%define _with_ruby23         1
+
+%define rb_default_ruby        ruby22
+%define rb_default_ruby_suffix ruby2.2
+%define rb_default_ruby_abi    ruby:2.2.0
+
+%define rb_build_ruby_abis     ruby:2.2.0 ruby:2.3.0
+%define rb_build_versions      ruby22 ruby23
+Macros:
+%rb_default_ruby        ruby22
+%rb_default_ruby_suffix ruby2.2
+%rb_default_ruby_abi    ruby:2.2.0
+
+%rb_build_ruby_abis     ruby:2.2.0 ruby:2.3.0
+%rb_build_versions      ruby22 ruby23
+:Macros
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+# defined in tpython-rpm-macros
+
+Macros:
+%have_python2 1
+%have_python3 1
+%python_module() %{expand: %{?have_python2:python2-%{**}} %{?have_python3:python3-%{**}} %{?have_pypy3:pypy3-%{**}}}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+# until the builds of the packages are fixed...
+Substitute: yast2-theme-SLED
+Substitute: yast2-theme-SLE
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
+
+%define suse_version 1500
+%define is_opensuse 1
+
+RepoURL: https://download.opensuse.org/distribution/leap/15.0/repo/oss
+RegistryURL: https://registry.opensuse.org
+
+Macros:
+%suse_version 1500
+%is_opensuse 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sl15.1.conf
+++ build-20160629/configs/sl15.1.conf
@@ -0,0 +1,948 @@
+
+Release: lp151.<CI_CNT>.<B_CNT>
+%define gcc_version 7
+
+# Help with the switch to the gcc7 provided libs
+Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
+Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
+
+Prefer: kiwi-filesystem-requires
+Prefer: kiwi-image-docker-requires
+Prefer: kiwi-image-iso-requires
+Prefer: kiwi-image-vmx-requires
+
+# Migration to product builder
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+Substitute: system-packages:kiwi-product product-builder
+
+Prefer: installation-images-openSUSE installation-images-debuginfodeps-openSUSE
+
+# switch to kiwi v8
+Prefer: python3-kiwi
+
+# LUA namespace migration - slowly moving to the new names (keep ports in mind!)
+# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
+Prefer: lua53 lua51 lua52 lua
+Prefer: liblua5_3-5 liblua5_1-5 liblua5_2-5
+Prefer: lua53-devel lua51-devel lua52-devel
+Prefer: libtolua++-5_3-devel libtolua++-5_1-devel libtolua++-5_2-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Preinstall: liblua5_3-5
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/python2 python2-base
+FileProvides: /usr/bin/python3 python3-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: net-tools-deprecated
+
+# we only have a 64bit kernel
+ExportFilter: ^kernel-obs-build.*\.x86_64\.rpm$ . i586
+
+ExportFilter: \.x86_64\.rpm$ x86_64
+ExportFilter: \.ia64\.rpm$ ia64
+ExportFilter: \.s390x\.rpm$ s390x
+ExportFilter: \.ppc64\.rpm$ ppc64
+ExportFilter: \.ppc64le\.rpm$ ppc64le
+ExportFilter: \.ppc\.rpm$ ppc
+ExportFilter: -ia32-.*\.rpm$
+ExportFilter: -32bit-.*\.sparc64\.rpm$
+ExportFilter: -64bit-.*\.sparcv9\.rpm$
+ExportFilter: -64bit-.*\.aarch64_ilp32\.rpm$
+ExportFilter: \.armv7l\.rpm$ armv7l
+ExportFilter: \.armv7hl\.rpm$ armv7l
+ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64
+ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9
+ExportFilter: ^acroread.*\.i586.rpm$ . x86_64
+ExportFilter: ^avmailgate.*\.i586.rpm$ . x86_64
+ExportFilter: ^avmailgate.*\.ppc.rpm$ . ppc64
+ExportFilter: ^avmailgate.*\.s390.rpm$ . s390x
+ExportFilter: ^flash-player.*\.i586.rpm$ . x86_64
+ExportFilter: ^novell-messenger-client.*\.i586.rpm$ . x86_64
+ExportFilter: ^openCryptoki-32bit.*\.s390.rpm$ . s390x
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+Support: brp-check-suse
+Support: post-build-checks rpmlint-Factory
+# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost)
+Support: hostname
+
+Support: build-compare
+
+%ifarch ia64
+Support: libunwind libunwind-devel
+Preinstall: libunwind
+%endif
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-openSUSE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# man uses cron to update the DB normally, but we don't care for that in the build system
+Ignore: man:cron
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+# And also for python3-kiwi
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -suse-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package' - current default is 1.9
+Prefer: go go1.9
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4 -nodejs6
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# Have choice for vtk-java/vtk-tcl needed by vtk-devel
+Prefer: vtk-java vtk-tcl
+
+# wine comes in various flavors by now, we pick the unflavored ones
+Prefer: wine-32bit wine-devel-32bit wine-devel
+
+# 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.5-rubygem-tilt
+Prefer: ruby2.5-rubygem-mail
+Prefer: ruby2.5-rubygem-addressable
+Prefer: ruby2.5-rubygem-thor
+
+# python-msgpack-python was renamed to python-msgpack with 0.5 as a single-spec package (provides/obsoletes in place)
+Prefer: python2-msgpack python3-msgpack
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: rhino:xmlbeans-mini
+Prefer: mx4j:log4j-mini
+
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4 
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+Prefer: geronimo-servlet-2_4-api
+Prefer: openmpi-config
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi -libhdf5_hl100-mvapich2 -libhdf5-101-mvapich2 -libhdf5-101-openmpi
+Prefer: -hdf5-1_8-devel
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+Prefer: -python-configparser2
+
+# ffmpeg-3 and ffmpeg-4 handling
+Prefer: libvpx-devel
+Prefer: ffmpeg-3-libavcodec-devel ffmpeg-3-libavdevice-devel ffmpeg-3-libavfilter-devel ffmpeg-3-libavformat-devel ffmpeg-3-libavresample-devel ffmpeg-3-libavutil-devel ffmpeg-3-libpostproc-devel ffmpeg-3-libswresample-devel ffmpeg-3-libswscale-devel ffmpeg-3-private-devel
+Prefer: -ffmpeg2-devel
+Substitute: ffmpeg2-devel ffmpeg-2-libavcodec-devel
+Prefer: -ffmpeg3-devel
+Substitute: ffmpeg3-devel ffmpeg-3-libavcodec-devel
+Prefer: -libavcodec-devel -libavdevice-devel -libavfilter-devel -libavformat-devel -libavresample-devel -libavutil-devel -libpostproc-devel -libswresample-devel -libswscale-devel -ffmpeg-private-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# explicitly prefer openssl version openssl package is used, for openssl(cli)
+Prefer: openssl-1_1
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -libnetcdf13-openmpi libnetcdf11 netcdf-devel netcdf-devel-data
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+Prefer: libmysqlclient-devel
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+
+%ifarch ppc64le
+#Constraint: hostlabel PPC64LE_HOST
+Constraint: hardware:cpu:flag power8
+%endif
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+ 
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+
+
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+%_with_ruby25               1
+
+### Things to define default ruby stuff for the distro
+
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+:Macros
+
+%define _with_ruby25         1
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+# END RUST STUFF
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+# Fall back to Java 10, if there was no java 11 option
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fall back to Java 9, if there was no java 10 option
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to java 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# And then fall back to java 7 bootstrap if needed
+Prefer: java-1_7_0-bootstrap java-1_7_0-bootstrap-devel java-1_7_0-bootstrap-javadoc java-1_7_0-bootstrap-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+
+#Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+# 13.3 does not exist !
+%define suse_version 1500
+%define is_opensuse 1
+%define sle_version 150100
+
+RepoURL: https://download.opensuse.org/distribution/leap/15.1/repo/oss
+RegistryURL: https://registry.opensuse.org
+
+Macros:
+%suse_version 1500
+%is_opensuse 1
+%sle_version 150100
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%ul_version 0
+%do_profiling 1
+%opensuse_bs 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sl15.2.conf
+++ build-20160629/configs/sl15.2.conf
@@ -0,0 +1,988 @@
+
+Release: <CI_CNT>.<B_CNT> spec:lp152.<CI_CNT>.<B_CNT>
+%define gcc_version 7
+
+# Help with the switch to the gcc7 provided libs
+Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
+Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
+
+# Help with the switch to the gcc9 provided libs:
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+Substitute: kiwi-setup:image python3-kiwi createrepo_c
+Substitute: kiwi-image:tbz   python3-kiwi
+Substitute: kiwi-image:docker python3-kiwi kiwi-image-docker-requires
+
+Prefer: kiwi-filesystem-requires
+Prefer: kiwi-image-docker-requires
+Prefer: kiwi-image-iso-requires
+Prefer: kiwi-image-vmx-requires
+
+# Migration to product builder
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+Substitute: system-packages:kiwi-product product-builder
+
+# allow builds using docker tool
+Substitute: build-packages:docker !systemd-mini !libsystemd0-mini !libudev-mini1 !udev-mini openSUSE-release-ftp containment-rpm-docker
+Substitute: build-packages:kiwi !systemd-mini !libsystemd0-mini !libudev-mini1 !udev-mini openSUSE-release-ftp
+
+# To build ISO images
+Substitute: build-packages:iso !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini
+Substitute: kiwi python3-kiwi
+
+Prefer: installation-images-openSUSE installation-images-debuginfodeps-openSUSE
+
+# switch to kiwi v8
+Prefer: python3-kiwi
+
+# LUA namespace migration - slowly moving to the new names (keep ports in mind!)
+# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
+Prefer: lua53 lua51 lua52 lua
+Prefer: liblua5_3-5 liblua5_1-5 liblua5_2-5
+Prefer: lua53-devel lua51-devel lua52-devel
+Prefer: libtolua++-5_3-devel libtolua++-5_1-devel libtolua++-5_2-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+# ghc-bootstrap should not provide it to start with - but it does. so let's kick it
+Prefer: libffi7
+
+Preinstall: liblua5_3-5
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 and Leap 15.2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/python2 python2-base
+FileProvides: /usr/bin/python3 python3-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/host bind-utils
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libncurses6 pam
+Preinstall: libgcc_s1
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: net-tools-deprecated
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+Support: brp-check-suse
+Support: post-build-checks rpmlint-Factory
+# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost)
+Support: hostname
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-openSUSE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+Ignore: ghc-bootstrap:this-is-only-for-build-envs
+Ignore: ghc-bootstrap-helpers:this-is-only-for-build-envs
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# man uses cron to update the DB normally, but we don't care for that in the build system
+Ignore: man:cron
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+# And also for python3-kiwi
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+# Prefer: -curl-mini -libcurl-mini-devel -libcurl4-mini
+
+Prefer: -suse-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package' - not true anymore
+# SP1 is prefer go1.12
+Prefer: go go1.12
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# There is python3-prompt_toolkit and also python3-prompt_toolkit1 for compat. Use the unversioned one by default
+Prefer: python3-prompt_toolkit
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+# SLE has no nodejs preference, let's use nodejs10
+Prefer: -nodejs4 -nodejs6 -nodejs9 nodejs10
+Prefer: npm10
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# Have choice for vtk-java/vtk-tcl/python3-vtk needed by vtk-devel
+Prefer: vtk-java vtk-tcl python3-vtk
+
+# wine comes in various flavors by now, we pick the unflavored ones
+Prefer: wine-32bit wine-devel-32bit wine-devel
+
+# 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.5-rubygem-tilt
+Prefer: ruby2.5-rubygem-mail
+Prefer: ruby2.5-rubygem-addressable
+Prefer: ruby2.5-rubygem-thor
+
+# python-msgpack-python was renamed to python-msgpack with 0.5 as a single-spec package (provides/obsoletes in place)
+Prefer: python2-msgpack python3-msgpack
+
+# There is python3-Django and python3-Django1 - as usual, we favor the unversioned one
+Prefer: python3-Django
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: rhino:xmlbeans-mini
+Prefer: mx4j:log4j-mini
+
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4 
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+Prefer: geronimo-servlet-2_4-api
+Prefer: openmpi-config
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-101-openmpi -libhdf5-101-mvapich2 -libhdf5_hl101-openmpi libhdf5_hl100 -libhdf5-103-openmpi -libhdf5-103-mvapich2 -libhdf5_hl103-openmpi -libhdf5_cpp103-openmpi -libhdf5_cpp103-mvapich2 -libhdf5-103-openmpi2 -libhdf5-103-openmpi3 -libhdf5_cpp103-openmpi2 -libhdf5_cpp103-openmpi3
+Prefer: -hdf5-1_8-devel
+Prefer: -libvtk1-openmpi libvtk1-openmpi2
+Prefer: fftw3-devel ImageMagick-config-7-SUSE
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+Prefer: -python-configparser2
+
+# ffmpeg-3 and ffmpeg-4 handling
+Prefer: libvpx-devel
+Prefer: ffmpeg-3-libavcodec-devel ffmpeg-3-libavdevice-devel ffmpeg-3-libavfilter-devel ffmpeg-3-libavformat-devel ffmpeg-3-libavresample-devel ffmpeg-3-libavutil-devel ffmpeg-3-libpostproc-devel ffmpeg-3-libswresample-devel ffmpeg-3-libswscale-devel ffmpeg-3-private-devel
+Prefer: -ffmpeg2-devel
+Substitute: ffmpeg2-devel ffmpeg-2-libavcodec-devel
+Prefer: -ffmpeg3-devel
+Substitute: ffmpeg3-devel ffmpeg-3-libavcodec-devel
+Prefer: -libavcodec-devel -libavdevice-devel -libavfilter-devel -libavformat-devel -libavresample-devel -libavutil-devel -libpostproc-devel -libswresample-devel -libswscale-devel -ffmpeg-private-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# explicitly prefer openssl version openssl package is used, for openssl(cli)
+Prefer: openssl-1_1
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -libnetcdf13-openmpi -libnetcdf13-openmpi2 libnetcdf11 netcdf-devel netcdf-devel-data
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+Prefer: libmysqlclient-devel
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+# Not true anymore peri-i
+#Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+ 
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+
+
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+%_with_ruby25               1
+
+### Things to define default ruby stuff for the distro
+
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+:Macros
+
+%define _with_ruby25         1
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+# END RUST STUFF
+
+# samba-libs requires samba-libs-python
+Prefer: samba-libs-python3
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+# Fall back to Java 10, if there was no java 11 option
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fall back to Java 9, if there was no java 10 option
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to java 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# And then fall back to java 7 bootstrap if needed
+Prefer: java-1_7_0-bootstrap java-1_7_0-bootstrap-devel java-1_7_0-bootstrap-javadoc java-1_7_0-bootstrap-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+# until the builds of the packages are fixed...
+Substitute: yast2-theme-SLED
+Substitute: yast2-theme-SLE
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+# 13.3 does not exist !
+%define suse_version 1500
+%define is_opensuse 1
+%define sle_version 150200
+
+RepoURL: https://download.opensuse.org/distribution/leap/15.2/repo/oss
+RegistryURL: https://registry.opensuse.org
+
+Macros:
+%suse_version 1500
+%is_opensuse 1
+%sle_version 150200
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%ul_version 0
+%do_profiling 1
+%opensuse_bs 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 9
+
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have latest versions built from GCC 7 sources
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libobjc4 7
+# The following shlibs have latest versions built from GCC 8 sources
+%product_libs_gcc_ver_libgo13 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+
+%product_libs_gcc_ver_libgfortran5 9
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libubsan1 9
+
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sl15.3.conf
+++ build-20160629/configs/sl15.3.conf
@@ -0,0 +1,2118 @@
+%define gcc_version 7
+
+# new cycle handling
+BuildFlags: genmetaalgo:1
+
+Constraint: linux:version:min 3.0.0
+%ifarch ppc ppc64 ppc64le
+Constraint: hardware:cpu:flag power8
+%endif
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: build-packages:docker python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: system-packages:docker docker kmod-compat sysvinit-tools kernel-default createrepo_c
+Substitute: kiwi python3-kiwi
+Substitute: system-packages:mock mock createrepo_c
+Substitute: system-packages:kiwi-image python3-kiwi createrepo_c tar
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+Prefer: -python2-kiwi
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/msgfmt gettext-runtime
+FileProvides: /usr/bin/python3 python3-base
+# Recommended by Adrian Schroeter:
+# causes a cycle :(
+# FileProvides: /sbin/mkinitrd dracut
+
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMinstall: iproute2 libmnl0
+
+ExportFilter: \.x86_64\.rpm$ x86_64
+ExportFilter: \.ia64\.rpm$ ia64
+ExportFilter: \.s390x\.rpm$ s390x
+ExportFilter: \.ppc64\.rpm$ ppc64
+ExportFilter: \.ppc64le\.rpm$ ppc64le
+ExportFilter: \.ppc\.rpm$ ppc
+ExportFilter: -ia32-.*\.rpm$
+ExportFilter: -32bit-.*\.sparc64\.rpm$
+ExportFilter: -64bit-.*\.sparcv9\.rpm$
+ExportFilter: \.armv7l\.rpm$ armv7l
+ExportFilter: \.armv7hl\.rpm$ armv7l
+ExportFilter: \.aarch64_ilp32\.rpm$ aarch64_ilp32
+ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64
+ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9
+ExportFilter: ^acroread.*\.i586.rpm$ . x86_64
+ExportFilter: ^avmailgate.*\.i586.rpm$ . x86_64
+ExportFilter: ^avmailgate.*\.ppc.rpm$ . ppc64
+ExportFilter: ^avmailgate.*\.s390.rpm$ . s390x
+ExportFilter: ^flash-player.*\.i586.rpm$ . x86_64
+ExportFilter: ^novell-messenger-client.*\.i586.rpm$ . x86_64
+ExportFilter: ^openCryptoki-32bit.*\.s390.rpm$ . s390x
+ExportFilter: ^kernel-obs-build.*\.s390.rpm$
+ExportFilter: ^kernel-obs-build.*\.ppc.rpm$
+ExportFilter: ^kernel-obs-build.*\.i586.rpm$
+ExportFilter: ^kernel-obs-build.*\.x86_64.rpm$ . i586
+ExportFilter: ^kernel-obs-build.*\.s390x.rpm$ . s390
+ExportFilter: ^kernel-obs-build.*\.ppc64.rpm$ . ppc
+%ifarch x86_64
+ExportFilter: ^qemu-seabios.*\.noarch\.rpm$ . aarch64 ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-vgabios.*\.noarch\.rpm$ . aarch64 ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-sgabios.*\.noarch\.rpm$ . aarch64 ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-ipxe.*\.noarch\.rpm$ . aarch64 ppc ppc64 ppc64le s390 s390x
+%endif
+
+Required: rpm-build
+Required: gcc-PIE
+
+# needed for su's default config - perhaps we should use a simplified form?
+Support: pam-modules
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Prefer: build-mkbaselibs
+Support: brp-check-suse post-build-checks rpmlint-Factory
+Support: hostname
+Support: brp-extract-appdata
+Support: brp-extract-translations
+Support: rpmlint-Factory-strict
+
+%ifarch ia64
+Support: libunwind libunwind-devel
+Preinstall: libunwind
+%endif
+Prefer: -openSUSE-build-key
+
+Prefer: -installation-images-CAASP -installation-images-SLED -installation-images-SLES_SAP
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+Conflict: python3-kiwi:krb5-mini
+Conflict: python3-kiwi:gettext-tools-mini
+
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -openSUSE-build-key
+Prefer: postfix
+
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+Prefer: go
+Prefer: python2-pep8 python3-pep8
+Prefer: perl
+Prefer: python3-pycups python-pycups
+Prefer: apache2:apache2-prefork
+Prefer: syslogd
+Prefer: star-rmt
+Prefer: notification-daemon
+Prefer: dummy-release
+Prefer: -nodejs4
+Prefer: libpulse0-32bit
+Prefer: netcdf-devel
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+Prefer: fftw3-devel
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+Prefer: kactivities5
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+Prefer: kernel-default-devel
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+Prefer: mozilla-nss-certs
+Prefer: phonon-backend-gstreamer
+Prefer: dracut
+Prefer: kmod-compat
+Prefer: oxygen5-cursors
+Prefer: -perl-App-cpanminus
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+Prefer: ghostscript-devel
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+# FATE#325522
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fallback, but we should try to not use this but java-8....
+# Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+%maintenance_vendor SUSE LLC <https://www.suse.com/>
+%maintenance_distribution SUSE Linux Enterprise 15
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+Macros:
+%_without_obs_scm_testsuite 0
+:Macros
+
+Prefer: SLES_SAP-installation-release-DVD
+Prefer: systemd-presets-branding-SLE
+Prefer: python3-msgpack
+
+%ifarch s390
+Ignore: python2-numpy-devel:openblas-devel
+Ignore: python3-numpy-devel:openblas-devel
+%endif
+
+Prefer: -openssl-1_0_0
+
+### from SUSE:SLE-15:Update
+Buildflags: useccache:ceph
+
+Prefer: ImageMagick-config-7-upstream
+
+# disabled in GA by mistake, enabling it here
+Support: build-compare
+
+Prefer: chrony-pool-suse
+
+Prefer: pciutils-ids
+
+Prefer: -libcurl4-mini
+
+Macros:
+%shim_enforce_ms_signature 1
+:Macros
+
+Macros:
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 10
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+# The following shlibs have the latest version  built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+# The following shlibs have the latest version built from GCC 9 sources
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libgo14 9
+
+%product_libs_gcc_ver_libobjc4 10
+
+# Override SUSE:SLE-15:Update
+%product_libs_gcc_ver_libgfortran5 10
+%product_libs_gcc_ver_libubsan1 10
+
+:Macros
+
+Prefer: -alsa-devel-32bit
+Prefer: -atk-devel-32bit
+Prefer: -atkmm1_6-devel-32bit
+Prefer: -at-spi2-core-devel-32bit
+Prefer: -at-spi-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -augeas-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -cairo-devel-32bit
+Prefer: -cairomm1_0-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -cppunit-devel-32bit
+Prefer: -cyrus-sasl-devel-32bit
+Prefer: -dbus-1-devel-32bit
+Prefer: -dbus-1-glib-devel-32bit
+Prefer: -device-mapper-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -flac-devel-32bit
+Prefer: -fontconfig-devel-32bit
+Prefer: -freetype2-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -glu-devel-32bit
+Prefer: -gstreamer-devel-32bit
+Prefer: -gstreamer-plugins-base-devel-32bit
+Prefer: -gtk2-devel-32bit
+Prefer: -gtk3-devel-32bit
+Prefer: -hunspell-devel-32bit
+Prefer: -ImageMagick-devel-32bit
+Prefer: -libart_lgpl-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -libbasicobjects-devel-32bit
+Prefer: -libblkid-devel-32bit
+Prefer: -libbz2-devel-32bit
+Prefer: -libcelt-devel-32bit
+Prefer: -libcollection-devel-32bit
+Prefer: -libcom_err-devel-32bit
+Prefer: -libdhash-devel-32bit
+Prefer: -libdmx-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -libelf-devel-32bit
+Prefer: -libexif-devel-32bit
+Prefer: -libexpat-devel-32bit
+Prefer: -libext2fs-devel-32bit
+Prefer: -libfontenc-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libgck-devel-32bit
+Prefer: -libgcr-devel-32bit
+Prefer: -libglvnd-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libgphoto2-devel-32bit
+Prefer: -libHX-devel-32bit
+Prefer: -libICE-devel-32bit
+Prefer: -libicu-devel-32bit
+Prefer: -libini_config-devel-32bit
+Prefer: -libjack-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -liblbxutil-devel-32bit
+Prefer: -liblcms2-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libmount-devel-32bit
+Prefer: -libnettle-devel-32bit
+Prefer: -libnl3-devel-32bit
+Prefer: -libnotify-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libqt5-qtconnectivity-devel-32bit
+Prefer: -libqt5-qtdeclarative-devel-32bit
+Prefer: -libqt5-qtlocation-devel-32bit
+Prefer: -libqt5-qtmultimedia-devel-32bit
+Prefer: -libqt5-qtserialport-devel-32bit
+Prefer: -libqt5-qtsvg-devel-32bit
+Prefer: -libqt5-qttools-devel-32bit
+Prefer: -libqt5-qtwayland-devel-32bit
+Prefer: -libqt5-qtwebchannel-devel-32bit
+Prefer: -libqt5-qtwebsockets-devel-32bit
+Prefer: -libqt5-qtx11extras-devel-32bit
+Prefer: -libqt5-qtxmlpatterns-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libraw1394-devel-32bit
+Prefer: -libref_array-devel-32bit
+Prefer: -libSDL2-devel-32bit
+Prefer: -libSDL-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSM-devel-32bit
+Prefer: -libsoup-devel-32bit
+Prefer: -libtasn1-devel-32bit
+Prefer: -libtiff-devel-32bit
+Prefer: -libusb-1_0-devel-32bit
+Prefer: -libuuid-devel-32bit
+Prefer: -libv4l-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libvdpau-devel-32bit
+Prefer: -libverto-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -libvorbis-devel-32bit
+Prefer: -libwayland-egl-devel-32bit
+Prefer: -libwebp-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libXau-devel-32bit
+Prefer: -libXaw3d-devel-32bit
+Prefer: -libXaw-devel-32bit
+Prefer: -libxcb-devel-32bit
+Prefer: -libXcomposite-devel-32bit
+Prefer: -libXcursor-devel-32bit
+Prefer: -libXdamage-devel-32bit
+Prefer: -libXdmcp-devel-32bit
+Prefer: -libXext-devel-32bit
+Prefer: -libXfixes-devel-32bit
+Prefer: -libXfont2-devel-32bit
+Prefer: -libXfontcache-devel-32bit
+Prefer: -libXfont-devel-32bit
+Prefer: -libXft-devel-32bit
+Prefer: -libXi-devel-32bit
+Prefer: -libXinerama-devel-32bit
+Prefer: -libxkbcommon-devel-32bit
+Prefer: -libxkbcommon-x11-devel-32bit
+Prefer: -libxkbfile-devel-32bit
+Prefer: -libxml2-devel-32bit
+Prefer: -libXmu-devel-32bit
+Prefer: -libXp-devel-32bit
+Prefer: -libXpm-devel-32bit
+Prefer: -libXprintUtil-devel-32bit
+Prefer: -libXrandr-devel-32bit
+Prefer: -libXrender-devel-32bit
+Prefer: -libXres-devel-32bit
+Prefer: -libxslt-devel-32bit
+Prefer: -libXss-devel-32bit
+Prefer: -libXt-devel-32bit
+Prefer: -libXtst-devel-32bit
+Prefer: -libXv-devel-32bit
+Prefer: -libXvMC-devel-32bit
+Prefer: -libXxf86dga-devel-32bit
+Prefer: -libXxf86misc-devel-32bit
+Prefer: -libXxf86vm-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGLESv2_CM-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -ncurses-devel-32bit
+Prefer: -NetworkManager-devel-32bit
+Prefer: -openal-soft-devel-32bit
+Prefer: -openjpeg-devel-32bit
+Prefer: -pango-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -tslib-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -wayland-devel-32bit
+Prefer: -xcb-util-devel-32bit
+Prefer: -xcb-util-image-devel-32bit
+Prefer: -xcb-util-keysyms-devel-32bit
+Prefer: -xcb-util-renderutil-devel-32bit
+Prefer: -xcb-util-wm-devel-32bit
+Prefer: -xz-devel-32bit
+Prefer: -zlib-devel-32bit
+Prefer: -zvbi-devel-32bit
+
+Prefer: libboost_thread1_66_0
+Prefer: libboost_system1_66_0
+Prefer: libboost_regex1_66_0
+Prefer: libboost_filesystem1_66_0
+Prefer: libboost_iostreams1_66_0
+Prefer: libboost_date_time1_66_0
+
+Prefer: -libsmartcols-devel-32bit
+Prefer: -krb5-devel-32bit
+
+### from SUSE:SLE-15-SP1:GA
+Patterntype: rpm-md ymp
+%define sle_version 150100
+
+Macros:
+%sle_version 150100
+:Macros
+
+FileProvides: /usr/bin/host bind-utils
+
+Substitute: system-packages:podman kmod kernel-default podman buildah createrepo_c
+
+Prefer: libyui-ncurses9 
+Prefer: libyui-ncurses-pkg9 libyui-qt9 libyui-qt-graph9 libyui-qt-pkg9
+Prefer: samba-libs-python3
+Ignore: !pciutils:pciutils-ids
+Prefer: kernel-default
+Ignore: multipath-tools:kmod(dm-multipath),kmod(dm-multipath),kmod(scsi_dh_emc),kmod(scsi_dh_rdac),kmod(scsi_dh_alua)
+Prefer: python2-configparser
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !gio-branding-upstream
+
+Prefer: -java-10-openjdk -java-10-openjdk-devel -java-10-openjdk-javadoc -java-10-openjdk-headless
+Prefer: -java-1_8_0-openjdk -java-1_8_0-openjdk-devel -java-1_8_0-openjdk-javadoc -java-1_8_0-openjdk-headless
+Prefer: -java-1_7_0-openjdk -java-1_7_0-openjdk-devel -java-1_7_0-openjdk-javadoc -java-1_7_0-openjdk-headless
+
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+
+%ifarch x86_64
+ExportFilter: ^qemu-seabios.*\.noarch\.rpm$ . ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-vgabios.*\.noarch\.rpm$ . ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-sgabios.*\.noarch\.rpm$ . ppc ppc64 ppc64le s390 s390x
+ExportFilter: ^qemu-ipxe.*\.noarch\.rpm$ . ppc ppc64 ppc64le s390 s390x
+%endif
+
+Prefer: go1.12
+
+### from SUSE:SLE-15-SP1:Update
+Prefer: slurm libpmi0 slurm-config slurm-node slurm-plugins
+Prefer: python-pytest4 python2-pytest4 python3-pytest4
+Prefer: python3-pycryptodome
+
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+
+### from SUSE:SLE-15-SP2:GA
+
+Patterntype: rpm-md ymp
+
+%define sle_version 150200
+
+Prefer: enchant-2-backend-hunspell
+
+Macros:
+%sle_version 150200
+%current_milestone GMC
+
+%product_libs_gcc_ver 9
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+:Macros
+
+Prefer: libyui11
+Prefer: libyui-ncurses11
+Prefer: libyui-ncurses-pkg11 libyui-qt11 libyui-qt-graph11 libyui-qt-pkg11
+Substitute: libyui libyui11
+Substitute: libyui-ncurses libyui-ncurses11
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg11
+Substitute: libyui-qt libyui-qt11
+Substitute: libyui-qt-graph libyui-qt-graph11
+Substitute: libyui-qt-pkg libyui-qt-pkg11
+
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+Substitute: infiniband-diags-devel rdma-core-devel
+Prefer: python3-pycryptodome
+Prefer: libvala-0_46-devel
+Preinstall: libgcrypt20 libgpg-error0
+
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+Prefer: rpm
+
+Preinstall: libzstd1
+
+Prefer: libudisks2-0-devel
+
+%ifarch aarch64 ppc64le s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP2-aarch64.*\.rpm$ . ppc64le s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP2-ppc64le.*\.rpm$ . aarch64 s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP2-s390x.*\.rpm$ . aarch64 ppc64le x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP2-x86_64.*\.rpm$ . aarch64 ppc64le s390x
+%endif
+
+Ignore: cmake-mini:this-is-only-for-build-envs
+Prefer: cmake-mini
+Prefer: ocaml-compiler-libs-devel
+Prefer: python2-contextlib2
+Prefer: chrony-pool-suse
+
+%ifarch i586
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+Substitute: azuremetadata python3-azuremetadata
+
+Prefer: python3-pytest
+Prefer: python2-pytest
+
+Prefer: PackageKit-backend-zypp
+Prefer: python2-subprocess32
+
+### from SUSE:SLE-15-SP2:Update
+Prefer: python2-pycrypto
+Prefer: libgnutls-devel
+Prefer: libQt5Test-devel libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel libQt5PrintSupport-devel libQt5Concurrent-devel
+Prefer: bluez-devel
+Prefer: libpq5
+Prefer: gdk-pixbuf-devel
+
+
+### from SUSE:SLE-15-SP3:GA
+Patterntype: rpm-md ymp
+
+Macros:
+%product_libs_gcc_ver 9
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+:Macros
+
+Prefer: enchant-2-backend-hunspell
+
+# COMMON BEGIN common part
+%define sle_version 150300
+Macros:
+%sle_version 150300
+:Macros
+
+# Prefer over libyui11* from SP2-GA
+Prefer: libyui15
+Prefer: libyui-ncurses15
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg15 libyui-qt15 libyui-qt-graph15 libyui-qt-pkg15 libyui-ncurses-rest-api15 libyui-qt-rest-api15
+Substitute: libyui libyui15
+Substitute: libyui-ncurses libyui-ncurses15
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg15
+Substitute: libyui-qt libyui-qt15
+Substitute: libyui-qt-graph libyui-qt-graph15
+Substitute: libyui-qt-pkg libyui-qt-pkg15
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api15
+Substitute: libyui-qt-rest-api libyui-qt-rest-api15
+
+# copy tftpboot-installation files across all archs
+%ifarch aarch64 ppc64le s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP3-aarch64.*\.rpm$ . ppc64le s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP3-ppc64le.*\.rpm$ . aarch64 s390x x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP3-s390x.*\.rpm$ . aarch64 ppc64le x86_64
+ExportFilter: ^tftpboot-installation-SLE-15-SP3-x86_64.*\.rpm$ . aarch64 ppc64le s390x
+%endif
+
+# required after SR#225674 / jsc#SLE-12712
+Prefer: gmmlib-devel
+
+# required after SR#225669
+Preinstall: libcrypt1
+
+# required for latest Mesa
+Prefer: libdrm-devel Mesa-libGL-devel libglvnd-devel libkms-devel Mesa-libEGL-devel libva-devel libdbusmenu-qt5-devel
+
+# required after SR#226419
+Prefer: typelib-1_0-Gst-1_0
+
+# required for latest Mesa
+Prefer: Mesa-libGLESv2-devel Mesa-libGLESv1_CM-devel
+
+# not sure why we need those
+Prefer: libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel
+
+# required after MU#16450 (gnutls)
+Prefer: libgnutls-devel
+
+# required after SR#228340
+Prefer: systemd-sysvinit
+
+# required after SR#227910 (alsa) and SR#228076 (pulseaudio)
+Prefer: alsa-devel libpulse-devel
+
+# required after SR#227917 (kernel-firmware)
+Prefer: kernel-firmware
+
+# required after SR#229310 
+Prefer: systemd-default-settings-branding-SLE
+
+Prefer: -libMagick++-devel-32bit -ImageMagick-devel-32bit -pciutils-devel-32bit
+Prefer: -libgbm-devel-32bit -device-mapper-devel-32bit
+
+# required after SR#230365 and SR#230366 
+Prefer: plymouth-branding-SLE
+
+# required after SR#228415
+Ignore: !pango-devel:cairo-devel
+
+# required after SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# needed after SR#236147
+Prefer: -mpg123-devel-32bit
+
+# Prefer coreutils over coreutils-single (SR#236655, bsc#1182550, jsc#SLE-13520, jsc#SLE-13756)
+Prefer: -coreutils-single
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires
+
+# COMMON END common part
+
+# KEEP BEGIN from older
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+Substitute: infiniband-diags-devel rdma-core-devel
+Prefer: python3-pycryptodome
+Prefer: libvala-0_46-devel
+Preinstall: libgcrypt20 libgpg-error0
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+Prefer: rpm
+Preinstall: libzstd1
+Prefer: libudisks2-0-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: cmake-mini:this-is-only-for-build-envs
+Prefer: cmake-mini
+Prefer: ocaml-compiler-libs-devel
+Prefer: python2-contextlib2
+Prefer: chrony-pool-suse
+
+%ifarch i586
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+Substitute: azuremetadata python3-azuremetadata
+Prefer: python3-pytest
+Prefer: python2-pytest
+Prefer: PackageKit-backend-zypp
+Prefer: python2-subprocess32
+# KEEP END from older
+
+### from openSUSE:Backports:SLE-15-SP3
+Release: bp153.<CI_CNT>.<B_CNT>
+
+Patterntype: rpm-md ymp
+RepoType: rpm-md:rsyncable splitdebug:_debug
+
+# whenever something (rpmlint-mini!) wants rpmlint we also install
+# our extra policy check
+#Substitute: rpmlint rpmlint rpmlint-backports rpmlint-backports-data
+
+# rpmlint-backports-data is only available for SLE architectures
+%ifarch x86_64 ppc64le s390x aarch64
+Support: rpmlint-backports
+%endif
+Support: brp-check-suse
+
+# Enable ccache for chromium tensorflow{2}
+BuildFlags: useccache:chromium
+
+BuildFlags: useccache:tensorflow:hpc
+BuildFlags: useccache:tensorflow:hpc-openmpi2
+BuildFlags: useccache:tensorflow:lite
+BuildFlags: useccache:tensorflow:standard
+
+BuildFlags: useccache:tensorflow2:hpc
+BuildFlags: useccache:tensorflow2:hpc-openmpi2
+BuildFlags: useccache:tensorflow2:lite
+BuildFlags: useccache:tensorflow2:standard
+
+FileProvides: /usr/bin/python2 python2-base
+FileProvides: /sbin/pidof sysvinit-tools
+
+Prefer: rpm -rpm-ndb
+# bsc#1182698
+Preinstall: rpm-config-SUSE
+
+# prefer coreutils over coreutils-single
+Prefer: coreutils
+
+# Help with the switch to the gcc7 provided libs
+Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
+Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
+
+# Help with the switch to the gcc9 provided libs:
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+# Imagemagick now has 2 configs
+Prefer: ImageMagick-config-7-SUSE
+
+# man uses cron to update the DB normally, but we don't care for that in the build system
+Ignore: man:cron
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+Ignore: ghc-bootstrap:this-is-only-for-build-envs
+Ignore: ghc-bootstrap-helpers:this-is-only-for-build-envs
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Cmake exists as a -mini flavor, which is not linked against curl.
+Prefer: cmake-mini
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+# SLE has no nodejs preference, let's use nodejs10
+Prefer: -nodejs4 -nodejs6 -nodejs9 nodejs10
+Prefer: npm10
+
+# Fix build of python-inspektor
+Prefer: python2-configparser
+
+# Fix build for packages depending on rust since old version rust-std (1.24.1)
+# instead of current version in SLE (rust-std-static 1.31.1) was used for builds
+Substitute: rust-std rust-std-static
+
+# For 32bit stuff
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+
+# Directly copied from Leap
+Prefer: openmpi-config
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 libnetcdf11 netcdf-devel netcdf-devel-data -libnetcdf13-openmpi -libnetcdf13-openmpi2
+Prefer: -libnetcdf15-openmpi -libnetcdf15-openmpi2
+Prefer: libnetcdf18
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-101-openmpi -libhdf5-101-mvapich2 -libhdf5_hl101-openmpi libhdf5_hl100 -libhdf5-103-openmpi1 -libhdf5-103-mvapich2 -libhdf5_hl103-openmpi -libhdf5_cpp103-openmpi -libhdf5_cpp103-openmpi1 -libhdf5_cpp103-mvapich2 -libhdf5-103-openmpi2 -libhdf5-103-openmpi3 -libhdf5-103-openmpi4 -libhdf5_cpp103-openmpi2 -libhdf5_cpp103-openmpi3 -libhdf5_cpp103-openmpi4
+Prefer: -hdf5-1_8-devel
+Prefer: -libvtk1-openmpi libvtk1-openmpi2
+
+
+# do not prefer php7-test
+Prefer: -php7-test
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package' - not true anymore
+# for go version greater than 1.13, let's not to prefer older ones
+# go1.15 is the default by patchinfo.18422
+Prefer: go -go1.12 -go1.13 -go1.14 -go1.16
+
+# Have choice for vtk-java/vtk-tcl/python3-vtk needed by vtk-devel
+Prefer: vtk-java vtk-tcl python3-vtk
+
+# have choice for mingw32-unistd-pthread-devel needed by mingw32-headers: mingw32-headers-dummy-pthread mingw32-winpthreads-devel
+Prefer: -mingw64-headers-dummy-pthread -mingw32-headers-dummy-pthread
+
+# 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.5-rubygem-tilt
+Prefer: ruby2.5-rubygem-mail
+Prefer: ruby2.5-rubygem-addressable
+Prefer: ruby2.5-rubygem-thor
+Prefer: ruby2.5-rubygem-tzinfo
+
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4 
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+
+# have choice for rubygem(ruby:2.5.0:fast_gettext) < 3.0 needed by yast2-ruby-bindings: ruby2.5-rubygem-fast_gettext ruby2.5-rubygem-fast_gettext-1.1
+Prefer: -ruby2.5-rubygem-fast_gettext-1.1
+# have choice for rubygem(ruby:2.5.0:sass-rails) >= 5.0.1: ruby2.5-rubygem-sass-rails ruby2.5-rubygem-sass-rails-5.1
+Prefer: -ruby2.5-rubygem-sass-rails-5.1
+
+# we have python3 and python39
+Prefer: -python39
+
+# have choice: python2-setuptools python2-setuptools-test python2-setuptools-wheel
+Prefer: python2-setuptools
+Prefer: python3-setuptools
+
+# python-msgpack-python was renamed to python-msgpack with 0.5 as a single-spec package (provides/obsoletes in place)
+Prefer: python2-msgpack python3-msgpack
+
+Prefer: python2-pycryptodome
+
+# There is python3-Django and python3-Django1 - as usual, we favor the unversioned one
+Prefer: python3-Django
+
+# multiple pytest version so prefers the unversioned one
+Prefer: python3-pytest python3-pytest4 python3-pytest5
+Prefer: python2-pytest python2-pytest4 python2-pytest5
+
+Prefer: python2-subprocess32
+
+# Enchant has multiple backends to chose from, make a decision for OBS
+Prefer: enchant-1-backends
+Prefer: enchant-2-backend-hunspell
+
+# OpenSceneGraph exists as 'latest' and a 3.4 compat package. If nothing is specified, we want latest
+Prefer: libOpenSceneGraph-devel libOpenThreads-devel
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+
+Prefer: rhino:xmlbeans-mini
+Prefer: k9s:go1.14
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+# hwdata vs pciutils-ids
+Prefer: -pciutils-ids
+Prefer: hwdata
+
+# have choice for tensorflow: tensorflow tensorflow2 tensorflow2_2_1_0-gnu-hpc tensorflow2_2_1_0-gnu-mvapich2-hpc tensorflow2_2_1_0-gnu-openmpi2-hpc
+Prefer: tensorflow2
+
+# have choice for systemd-default-settings-branding needed by systemd:
+# systemd-default-settings-branding-SLE systemd-default-settings-branding-openSUSE systemd-default-settings-branding-upstream
+Prefer: systemd-default-settings-branding-SLE
+
+# Do not prefer 32bit devel
+Prefer: -ImageMagick-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5OpenGLExtensions-devel-static-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -alsa-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -libSDL2_image-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libva-gl-devel-32bit
+Prefer: -libdbusmenu-qt5-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libpolkit-qt5-1-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -papi-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -libOSMesa-devel-32bit
+Prefer: -libSDL_ttf-devel-32bit
+Prefer: -libSDL2_ttf-devel-32bit
+Prefer: -libSDL_mixer-devel-32bit
+Prefer: -libSDL2_mixer-devel-32bit
+Prefer: -libSDL_image-devel-32bit
+Prefer: -libSDL_net-devel-32bit
+Prefer: -libSDL2_net-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSDL2_gfx-devel-32bit
+Prefer: -muparser-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+Prefer: -libbotan-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -zvbi-devel-32bit
+Prefer: -libcmocka-devel-32bit
+Prefer: -libstatgrab-devel-32bit
+Prefer: -libqt5-qtnetworkauth-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -libqt5-qtscxml-devel-32bit
+Prefer: -phonon4qt5-devel-32bit
+Prefer: -libQt5WebKit5-devel-32bit
+Prefer: -libQt5WebKitWidgets-devel-32bit
+Prefer: -libsmartcols-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libopenssl-1_0_0-devel-32bit
+
+# wine comes in various flavors by now, we pick the unflavored ones
+Prefer: wine-32bit wine-devel-32bit wine-devel
+
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -libnetcdf13-openmpi libnetcdf11 netcdf-devel netcdf-devel-data
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+Prefer: libmysqlclient-devel
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+# have choice for PackageKit-backend needed by PackageKit: PackageKit-backend-dnf PackageKit-backend-zypp
+Prefer: PackageKit-backend-zypp
+
+# We have multiple versions of ffmpeg available, the preferred one is ffmpeg4 from Backports instead of ffmpeg3 from SLE
+# Prefer: ffmpeg-4-libavcodec-devel ffmpeg-4-libavformat-devel ffmpeg-4-libavutil-devel ffmpeg-4-libswscale-devel ffmpeg-4-libavdevice-devel                
+# Prefer: -ffmpeg-private-devel -libavcodec-devel -libavformat-devel -libavutil-devel -libswscale-devel -libavdevice-devel -libavfilter-devel
+# ffmpeg-3 and ffmpeg-4 handling in 15.2
+Prefer: libvpx-devel
+Prefer: ffmpeg-3-libavcodec-devel ffmpeg-3-libavdevice-devel ffmpeg-3-libavfilter-devel ffmpeg-3-libavformat-devel ffmpeg-3-libavresample-devel ffmpeg-3-libavutil-devel ffmpeg-3-libpostproc-devel ffmpeg-3-libswresample-devel ffmpeg-3-libswscale-devel ffmpeg-3-private-devel
+Prefer: -ffmpeg3-devel
+Substitute: ffmpeg3-devel ffmpeg-3-libavcodec-devel
+Prefer: -libavcodec-devel -libavdevice-devel -libavfilter-devel -libavformat-devel -libavresample-devel -libavutil-devel -libpostproc-devel -libswresample-devel -libswscale-devel -ffmpeg-private-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+
+# have choice for libffi
+Prefer: libffi7
+
+# We have opencv and opencv3 - as usual, the unversioned one should win
+Prefer: opencv-devel
+
+# LUA namespace migration - slowly moving to the new names (keep ports in mind!)
+# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
+Prefer: lua53 lua51 lua52 lua
+Prefer: liblua5_3-5 liblua5_1-5 liblua5_2-5
+Prefer: lua53-devel lua51-devel lua52-devel
+Prefer: libtolua++-5_3-devel libtolua++-5_1-devel libtolua++-5_2-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Prefer: moonjit-devel
+
+# Prefer over libyui11* from SP2-GA
+Prefer: libyui15
+Prefer: libyui-ncurses15
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg15 libyui-qt15 libyui-qt-graph15 libyui-qt-pkg15 libyui-ncurses-rest-api15 libyui-qt-rest-api15
+Substitute: libyui libyui15
+Substitute: libyui-ncurses libyui-ncurses15
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg15
+Substitute: libyui-qt libyui-qt15
+Substitute: libyui-qt-graph libyui-qt-graph15
+Substitute: libyui-qt-pkg libyui-qt-pkg15
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api15
+Substitute: libyui-qt-rest-api libyui-qt-rest-api15
+
+# SLE product and SLE-Module-Development-Tools-OBS module providing different versions
+Prefer: libgnome-desktop-3-18
+Prefer: libgnomekbd8
+Prefer: typelib-1_0-Gspell-1
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+
+Preinstall: liblua5_3-5
+
+# http://bugzilla.opensuse.org/show_bug.cgi?id=1159191
+Substitute: lua51-luajit-devel moonjit-devel
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+# Prefer java 8 than java 9 or 10
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# Fall back to Java 10, if there was no java 11 option
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fall back to Java 9, if there was no java 10 option
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# And then fall back to java 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# And then fall back to java 7 bootstrap if needed
+# Prefer: java-1_7_0-bootstrap java-1_7_0-bootstrap-devel java-1_7_0-bootstrap-javadoc java-1_7_0-bootstrap-headless
+Substitute: java2-devel-packages java-devel
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+# FFMPEG conflict with FFMPEG-5, prefer ffmpeg version from SLE
+Prefer: ffmpeg
+
+# Conflict with postgresql13-devel-mini
+Prefer: libpq5
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# required after IBS SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# required to workaround libwayland-egl-devel/libwaylang-egl1 issue between Mesa(SUSE:SLE-15:Update) and wayland(SUSE:SLE-15-SP2:GA)
+Substitute: libwayland-egl-devel wayland-devel
+
+# xerces-j2-xml-apis/resolver has been obsoleted but in SP0
+Substitute: xerces-j2-xml-apis xml-commons-apis
+Substitute: xerces-j2-xml-resolver xml-commons-resolver
+
+# ECO-3147 added a new package which opened several installation choices
+Prefer: -libboost_atomic_legacy -libboost_container_legacy -libboost_context_legacy -libboost_coroutine_legacy -libboost_system_legacy -libboost_thread_legacy -libboost_date_time_legacy
+Prefer: -libboost_fiber_legacy -libboost_filesystem_legacy -libboost_graph_legacy -libboost_iostreams_legacy -libboost_locale_legacy -libboost_log_legacy -libboost_math_legacy
+Prefer: -libboost_program_options_legacy -libboost_random_legacy -libboost_regex_legacy -libboost_serialization_legacy -libboost_signals_legacy -libboost_stacktrace_legacy
+Prefer: -libboost_test_legacy -libboost_timer_legacy -libboost_type_erasure_legacy -libboost_wave_legacy
+
+# svrcore has been merged to 389-ds
+Substitute: svrcore-devel 389-ds-devel
+
+# SLE has no nodejs preference, let's use newer nodejs version
+# https://progress.opensuse.org/issues/63169
+Prefer: -nodejs8 -nodejs10 -nodejs12
+Prefer: -nodejs8-devel -nodejs10-devel -nodejs12-devel
+Prefer: -npm8 -npm10 -npm12
+
+# openSUSE -> SLE magic so many environments can work
+Substitute: desktop-data-openSUSE-extra desktop-data-SLE-extra
+Substitute: desktop-data-openSUSE desktop-data-SLE
+Substitute: openSUSE-release sles-release
+Substitute: wallpaper-branding-openSUSE wallpaper-branding-SLE
+
+
+%define is_opensuse  1
+%define is_backports 1
+# I doubt this should set to 1 - maxlin
+# %define _with_mono   1
+
+Macros:
+%is_opensuse  1
+%is_backports 1
+%opensuse_bs  1
+# I doubt this should set to 1 - maxlin
+# %_with_mono   1
+:Macros
+
+#BuildFlags
+### from openSUSE:Leap:15.3
+
+Release: <CI_CNT>.<B_CNT> spec:lp153.<CI_CNT>.<B_CNT>
+
+# uncomment before RC phase to get aaa_base-malloccheck etc.
+# make sure to rebuild patterns-base and skelcd-openSUSE
+# %define _with_betatest 1
+# Macros:
+# %_with_betatest 1
+# :Macros
+
+#
+# product building setup
+#
+#Substitute: kiwi-packagemanager:instsource product-builder-plugin-openSUSE
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+
+# debug tools for local osc debugging
+Substitute: obs:cli_debug_packages gdb vim strace less rzsz
+
+#
+# vendor related
+#
+
+# do not pull rpmlint-Factory-strict unless openSUSE:Leap:15.3
+# not sure this would work as my expectation - maxlin
+Support: !rpmlint-Factory-strict
+
+# temporary for bootstrap
+# Support: !rpmlint-mini !rpmlint-Factory !rpmlint-Factory-strict
+
+Support: !rpmlint-backports
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+Support: brp-check-suse
+Support: post-build-checks rpmlint-Factory
+
+# bsc#1182698
+Preinstall: rpm-config-SUSE
+
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini
+Substitute: build-packages:iso !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini
+Substitute: kiwi python3-kiwi
+
+### required change for opensuse-leap-dnf-image
+# Workaround obs-build substitution error by requesting both for either unsatisfied provides
+Substitute: kiwi-packagemanager:dnf dnf microdnf
+Substitute: kiwi-packagemanager:microdnf microdnf dnf
+# For microdnf glib2 stuff
+Prefer: libgio-2_0-0:dbus-1
+
+### Branding related preferences
+Prefer: distribution-logos-openSUSE-Leap
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: lxde-common:lxde-common-branding-openSUSE
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: wallpaper-branding-openSUSE
+# Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+# Prefer: xfce4-settings:xfce4-settings-branding-upstream
+# Prefer: xfdesktop:xfdesktop-branding-upstream
+# Prefer: libxfce4ui:libxfce4ui-branding-upstream
+# Prefer: libexo-1-0:libexo-1-0-branding-upstream
+# Prefer: libgarcon-1-0:libgarcon-branding-upstream
+# Prefer: libgarcon-data:libgarcon-branding-upstream
+# Prefer: exo-data:exo-branding-upstream
+Prefer: exo-data:exo-branding-openSUSE
+Prefer: libexo-1-0:libexo-1-0-branding-openSUSE
+Prefer: libgarcon-1-0:libgarcon-branding-openSUSE
+Prefer: libgarcon-data:libgarcon-branding-openSUSE
+Prefer: libxfce4ui:libxfce4ui-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-openSUSE
+Prefer: xfce4-settings:xfce4-settings-branding-openSUSE
+Prefer: xfdesktop:xfdesktop-branding-openSUSE
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+Prefer: gnome-menus:gnome-menus-branding-openSUSE
+
+Prefer: openSUSE-build-key
+Prefer: -suse-build-key
+Prefer: openSUSE-release:openSUSE-release-mini
+Prefer: -sles-release -gio-branding-SLE
+Prefer: openSUSE-EULAs
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# There are multiple PK backends available. Favor the openSUSE own zypp backend
+Prefer: PackageKit-backend-zypp
+
+# Revert SLE change
+Ignore: !pciutils:pciutils-ids
+
+# Prefer hwdata than pciutils-ids
+Prefer: -pciutils-ids
+Prefer: hwdata
+
+# Obsoleted by gnome-tweaks
+Prefer: -gnome-tweak-tool
+Prefer: -desktop-data-SLE
+
+# 32bit devel package
+Prefer: -libgnutls-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+
+# Prefer over libyui11* from SP2-GA
+Prefer: libyui15
+Prefer: libyui-ncurses15
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg15 libyui-qt15 libyui-qt-graph15 libyui-qt-pkg15 libyui-ncurses-rest-api15 libyui-qt-rest-api15
+Substitute: libyui libyui15
+Substitute: libyui-ncurses libyui-ncurses15
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg15
+Substitute: libyui-qt libyui-qt15
+Substitute: libyui-qt-graph libyui-qt-graph15
+Substitute: libyui-qt-pkg libyui-qt-pkg15
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api15
+Substitute: libyui-qt-rest-api libyui-qt-rest-api15
+
+# required after IBS SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# kubernetes1.18-kubeadm vs kubernetes1.17-kubeadm on kubernetes-kubeadm-provider
+Prefer: kubernetes1.18-kubeadm
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# Undo SLE specific preference
+Prefer: systemd-presets-branding-openSUSE -systemd-presets-branding-SLE -systemd-presets-branding-CAASP
+Prefer: systemd-default-settings-branding-openSUSE -systemd-default-settings-branding-SLE
+Prefer: plymouth-branding-openSUSE -plymouth-branding-SLE
+Prefer: PackageKit-branding-openSUSE -PackageKit-branding-SLE
+
+# Undo these Substitles from Backports
+Substitute: desktop-data-openSUSE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-openSUSE desktop-data-openSUSE
+Substitute: openSUSE-release openSUSE-release
+Substitute: wallpaper-branding-openSUSE wallpaper-branding-openSUSE
+
+# Reverse these Substitles from Backports
+Substitute: desktop-data-SLE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-SLE desktop-data-openSUSE
+Substitute: sles-release openSUSE-release
+Substitute: wallpaper-branding-SLE wallpaper-branding-openSUSE
+
+# Prefer coreutils over coreutils-single
+Prefer: -coreutils-single
+
+
+%define suse_version 1500
+%define sle_version 150300
+%define is_opensuse 1
+
+Macros:
+%suse_version 1500
+%sle_version 150300
+%is_opensuse 1
+%is_backports 0
+
+%sles_version 0
+%_vendor suse
+:Macros
+
+RepoURL: https://download.opensuse.org/distribution/leap/15.3/repo/oss
+RegistryURL: https://registry.opensuse.org
+
--- build-20160629.orig/configs/sl15.4.conf
+++ build-20160629/configs/sl15.4.conf
@@ -0,0 +1,1785 @@
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+
+# debug tools for local osc debugging
+Substitute: obs:cli_debug_packages gdb vim strace less rzsz
+
+# do not pull rpmlint-Factory-strict unless openSUSE:Leap:15.3
+# not sure this would work as my expectation - maxlin
+Support: !rpmlint-Factory-strict
+
+# temporary for bootstrap
+# Support: !rpmlint-mini !rpmlint-Factory !rpmlint-Factory-strict
+
+Support: !rpmlint-backports
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+Support: brp-check-suse
+Support: post-build-checks rpmlint-Factory
+
+# bsc#1182698
+Preinstall: rpm-config-SUSE
+
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini !postgresql13-devel-mini
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini !postgresql13-devel-mini
+Substitute: build-packages:iso !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !postgresql13-devel-mini
+Substitute: kiwi python3-kiwi
+
+### required change for opensuse-leap-dnf-image
+# Workaround obs-build substitution error by requesting both for either unsatisfied provides
+Substitute: kiwi-packagemanager:dnf dnf microdnf
+Substitute: kiwi-packagemanager:microdnf microdnf dnf
+# For microdnf glib2 stuff
+Prefer: libgio-2_0-0:dbus-1
+
+### Branding related preferences
+Prefer: distribution-logos-openSUSE-Leap
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: lxde-common:lxde-common-branding-openSUSE
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: wallpaper-branding-openSUSE
+# Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+# Prefer: xfce4-settings:xfce4-settings-branding-upstream
+# Prefer: xfdesktop:xfdesktop-branding-upstream
+# Prefer: libxfce4ui:libxfce4ui-branding-upstream
+# Prefer: libexo-1-0:libexo-1-0-branding-upstream
+# Prefer: libgarcon-1-0:libgarcon-branding-upstream
+# Prefer: libgarcon-data:libgarcon-branding-upstream
+# Prefer: exo-data:exo-branding-upstream
+Prefer: exo-data:exo-branding-openSUSE
+Prefer: libexo-1-0:libexo-1-0-branding-openSUSE
+Prefer: libgarcon-1-0:libgarcon-branding-openSUSE
+Prefer: libgarcon-data:libgarcon-branding-openSUSE
+Prefer: libxfce4ui:libxfce4ui-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-openSUSE
+Prefer: xfce4-settings:xfce4-settings-branding-openSUSE
+Prefer: xfdesktop:xfdesktop-branding-openSUSE
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+Prefer: gnome-menus:gnome-menus-branding-openSUSE
+
+Prefer: openSUSE-build-key
+Prefer: -suse-build-key
+Prefer: openSUSE-release:openSUSE-release-mini
+Prefer: -sles-release -gio-branding-SLE
+Prefer: openSUSE-EULAs
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# There are multiple PK backends available. Favor the openSUSE own zypp backend
+Prefer: PackageKit-backend-zypp
+
+# Revert SLE change
+Ignore: !pciutils:pciutils-ids
+
+# Prefer hwdata than pciutils-ids
+Prefer: -pciutils-ids
+Prefer: hwdata
+
+# Obsoleted by gnome-tweaks
+Prefer: -gnome-tweak-tool
+Prefer: -desktop-data-SLE
+
+# 32bit devel package
+Prefer: -libgnutls-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+
+# required after IBS SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# kubernetes1.18-kubeadm vs kubernetes1.17-kubeadm on kubernetes-kubeadm-provider
+Prefer: kubernetes1.18-kubeadm
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# Undo SLE specific preference
+Prefer: systemd-presets-branding-openSUSE -systemd-presets-branding-SLE -systemd-presets-branding-CAASP
+Prefer: systemd-default-settings-branding-openSUSE -systemd-default-settings-branding-SLE
+Prefer: plymouth-branding-openSUSE -plymouth-branding-SLE
+Prefer: PackageKit-branding-openSUSE -PackageKit-branding-SLE
+
+# Undo these Substitles from Backports
+Substitute: desktop-data-openSUSE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-openSUSE desktop-data-openSUSE
+Substitute: openSUSE-release openSUSE-release
+Substitute: wallpaper-branding-openSUSE wallpaper-branding-openSUSE
+
+# Reverse these Substitles from Backports
+Substitute: desktop-data-SLE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-SLE desktop-data-openSUSE
+Substitute: sles-release openSUSE-release
+Substitute: wallpaper-branding-SLE wallpaper-branding-openSUSE
+
+# Prefer coreutils over coreutils-single
+Prefer: -coreutils-single
+
+
+%define suse_version 1500
+%define sle_version 150400
+%define is_opensuse 1
+
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: build-packages:docker python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: system-packages:docker docker kmod-compat sysvinit-tools kernel-default createrepo_c
+Substitute: kiwi python3-kiwi
+Substitute: system-packages:mock mock createrepo_c
+Substitute: system-packages:kiwi-image python3-kiwi createrepo_c tar
+
+Prefer: -python2-kiwi
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/msgfmt gettext-runtime
+FileProvides: /usr/bin/python3 python3-base
+FileProvides: /sbin/mkinitrd dracut
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMinstall: iproute2 libmnl0
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: pam-modules
+Support: hostname
+Support: perl build-mkbaselibs
+Prefer: build-mkbaselibs
+
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+Conflict: python3-kiwi:krb5-mini
+Conflict: python3-kiwi:gettext-tools-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+# END RUST STUFF
+
+Prefer: systemd-presets-branding-SLE
+
+# the old python-msgpack-python should be dropped, but salt
+# is still requires the old name
+Prefer: python3-msgpack
+
+%ifarch s390
+Ignore: python2-numpy-devel:openblas-devel
+Ignore: python3-numpy-devel:openblas-devel
+%endif
+
+Prefer: -openssl-1_0_0
+
+Buildflags: useccache:ceph
+
+Support: python-rpm-macros
+
+Prefer: ImageMagick-config-7-upstream
+
+Prefer: chrony-pool-suse
+
+Prefer: pciutils-ids
+
+Prefer: -libcurl4-mini
+Prefer: cmake3-full
+
+Macros:
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 11
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+# The following shlibs have the latest version  built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+# The following shlibs have the latest version built from GCC 9 sources
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libgo14 9
+# The following shlibs have the latest version built from GCC 10 sources
+%product_libs_gcc_ver_libgphobos1 10
+%product_libs_gcc_ver_libgdruntime1 10
+%product_libs_gcc_ver_libgo16 10
+
+:Macros
+
+# After the build 20200723 update .pc files are also in 32bit packages causing have-choice
+Prefer: -alsa-devel-32bit
+Prefer: -atk-devel-32bit
+Prefer: -atkmm1_6-devel-32bit
+Prefer: -at-spi2-core-devel-32bit
+Prefer: -at-spi-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -augeas-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -cairo-devel-32bit
+Prefer: -cairomm1_0-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -cppunit-devel-32bit
+Prefer: -cyrus-sasl-devel-32bit
+Prefer: -dbus-1-devel-32bit
+Prefer: -dbus-1-glib-devel-32bit
+Prefer: -device-mapper-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -flac-devel-32bit
+Prefer: -fontconfig-devel-32bit
+Prefer: -freetype2-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -glu-devel-32bit
+Prefer: -gstreamer-devel-32bit
+Prefer: -gstreamer-plugins-base-devel-32bit
+Prefer: -gtk2-devel-32bit
+Prefer: -gtk3-devel-32bit
+Prefer: -hunspell-devel-32bit
+Prefer: -ImageMagick-devel-32bit
+Prefer: -libart_lgpl-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -libbasicobjects-devel-32bit
+Prefer: -libblkid-devel-32bit
+Prefer: -libbz2-devel-32bit
+Prefer: -libcelt-devel-32bit
+Prefer: -libcollection-devel-32bit
+Prefer: -libcom_err-devel-32bit
+Prefer: -libcurl-devel-32bit
+Prefer: -libdhash-devel-32bit
+Prefer: -libdmx-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -libelf-devel-32bit
+Prefer: -libexif-devel-32bit
+Prefer: -libexpat-devel-32bit
+Prefer: -libext2fs-devel-32bit
+Prefer: -libfontenc-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libgck-devel-32bit
+Prefer: -libgcr-devel-32bit
+Prefer: -libglvnd-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libgphoto2-devel-32bit
+Prefer: -libHX-devel-32bit
+Prefer: -libICE-devel-32bit
+Prefer: -libicu-devel-32bit
+Prefer: -libini_config-devel-32bit
+Prefer: -libjack-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -liblbxutil-devel-32bit
+Prefer: -liblcms2-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libmount-devel-32bit
+Prefer: -libnettle-devel-32bit
+Prefer: -libnl3-devel-32bit
+Prefer: -libnotify-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libqt5-qtconnectivity-devel-32bit
+Prefer: -libqt5-qtdeclarative-devel-32bit
+Prefer: -libqt5-qtlocation-devel-32bit
+Prefer: -libqt5-qtmultimedia-devel-32bit
+Prefer: -libqt5-qtserialport-devel-32bit
+Prefer: -libqt5-qtsvg-devel-32bit
+Prefer: -libqt5-qttools-devel-32bit
+Prefer: -libqt5-qtwayland-devel-32bit
+Prefer: -libqt5-qtwebchannel-devel-32bit
+Prefer: -libqt5-qtwebsockets-devel-32bit
+Prefer: -libqt5-qtx11extras-devel-32bit
+Prefer: -libqt5-qtxmlpatterns-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libraw1394-devel-32bit
+Prefer: -libref_array-devel-32bit
+Prefer: -libSDL2-devel-32bit
+Prefer: -libSDL-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSM-devel-32bit
+Prefer: -libsoup-devel-32bit
+Prefer: -libtasn1-devel-32bit
+Prefer: -libtiff-devel-32bit
+Prefer: -libusb-1_0-devel-32bit
+Prefer: -libuuid-devel-32bit
+Prefer: -libv4l-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libvdpau-devel-32bit
+Prefer: -libverto-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -libvorbis-devel-32bit
+Prefer: -libwayland-egl-devel-32bit
+Prefer: -libwebp-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libXau-devel-32bit
+Prefer: -libXaw3d-devel-32bit
+Prefer: -libXaw-devel-32bit
+Prefer: -libxcb-devel-32bit
+Prefer: -libXcomposite-devel-32bit
+Prefer: -libXcursor-devel-32bit
+Prefer: -libXdamage-devel-32bit
+Prefer: -libXdmcp-devel-32bit
+Prefer: -libXext-devel-32bit
+Prefer: -libXfixes-devel-32bit
+Prefer: -libXfont2-devel-32bit
+Prefer: -libXfontcache-devel-32bit
+Prefer: -libXfont-devel-32bit
+Prefer: -libXft-devel-32bit
+Prefer: -libXi-devel-32bit
+Prefer: -libXinerama-devel-32bit
+Prefer: -libxkbcommon-devel-32bit
+Prefer: -libxkbcommon-x11-devel-32bit
+Prefer: -libxkbfile-devel-32bit
+Prefer: -libxml2-devel-32bit
+Prefer: -libXmu-devel-32bit
+Prefer: -libXp-devel-32bit
+Prefer: -libXpm-devel-32bit
+Prefer: -libXprintUtil-devel-32bit
+Prefer: -libXrandr-devel-32bit
+Prefer: -libXrender-devel-32bit
+Prefer: -libXres-devel-32bit
+Prefer: -libxslt-devel-32bit
+Prefer: -libXss-devel-32bit
+Prefer: -libXt-devel-32bit
+Prefer: -libXtst-devel-32bit
+Prefer: -libXv-devel-32bit
+Prefer: -libXvMC-devel-32bit
+Prefer: -libXxf86dga-devel-32bit
+Prefer: -libXxf86misc-devel-32bit
+Prefer: -libXxf86vm-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGLESv2_CM-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -ncurses-devel-32bit
+Prefer: -NetworkManager-devel-32bit
+Prefer: -openal-soft-devel-32bit
+Prefer: -openjpeg-devel-32bit
+Prefer: -pango-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -tslib-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -wayland-devel-32bit
+Prefer: -xcb-util-devel-32bit
+Prefer: -xcb-util-image-devel-32bit
+Prefer: -xcb-util-keysyms-devel-32bit
+Prefer: -xcb-util-renderutil-devel-32bit
+Prefer: -xcb-util-wm-devel-32bit
+Prefer: -xz-devel-32bit
+Prefer: -zlib-devel-32bit
+Prefer: -zvbi-devel-32bit
+
+Prefer: libboost_thread1_66_0
+Prefer: libboost_system1_66_0
+Prefer: libboost_regex1_66_0
+Prefer: libboost_filesystem1_66_0
+Prefer: libboost_iostreams1_66_0
+Prefer: libboost_date_time1_66_0
+
+Prefer: -libsmartcols-devel-32bit
+Prefer: -krb5-devel-32bit
+Prefer: -lzo-devel-32bit
+Prefer: -liboping-devel-32bit
+Prefer: -unixODBC-devel-32bit
+Prefer: -libcmocka-devel-32bit
+
+# ro added 20220207 requested by dmueller
+Prefer: -samba-devel-32bit
+Prefer: -libqt5-qtscript-devel-32bit
+
+FileProvides: /usr/bin/host bind-utils
+
+Substitute: system-packages:podman kmod kernel-default podman buildah createrepo_c
+
+Prefer: libyui-ncurses9 
+Prefer: libyui-ncurses-pkg9 libyui-qt9 libyui-qt-graph9 libyui-qt-pkg9
+Prefer: samba-libs-python3
+Ignore: !pciutils:pciutils-ids
+Prefer: kernel-default
+Ignore: multipath-tools:kmod(dm-multipath),kmod(dm-multipath),kmod(scsi_dh_emc),kmod(scsi_dh_rdac),kmod(scsi_dh_alua)
+Prefer: python2-configparser
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !gio-branding-upstream
+
+######### JAVA
+# FATE#326347
+# First we need to de-prefer the java versions prefered in the SLE-15:GA prj Config:
+Prefer: -java-10-openjdk -java-10-openjdk-devel -java-10-openjdk-javadoc -java-10-openjdk-headless
+Prefer: -java-1_8_0-openjdk -java-1_8_0-openjdk-devel -java-1_8_0-openjdk-javadoc -java-1_8_0-openjdk-headless
+Prefer: -java-1_7_0-openjdk -java-1_7_0-openjdk-devel -java-1_7_0-openjdk-javadoc -java-1_7_0-openjdk-headless
+
+# Now we set the prefered Java version, but need fallbacks for some packages:
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+
+# It might be better to 'de-prefer' the "old" ones, and omit the line above
+# according to Adrian. This needs some testing.
+# Unfortuantely this will bite us when packages require an old java
+
+# 8 before 10 on advice of fstrba
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# don't use that - fstrba 
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# 15:GA has Prefer:go which will set the default to th eunverisoned go.
+# some packages stumble over "have choice for go >= 1.11: go1.11 go1.12", this will prevent this.
+# go1.12 is taken from 15:Update
+Prefer: go1.12
+
+
+# avoid the SP0 slurm 18.8 variants in SP1
+Prefer: slurm libpmi0 slurm-config slurm-node slurm-plugins
+
+# prefer one of the python-pytests. Marcus 20200512
+Prefer: python-pytest4 python2-pytest4 python3-pytest4
+
+# have conflict ebtween python3-pycrypto and python3-pycryptodome
+Prefer: python3-pycryptodome
+
+# prefer go1.14 (over go1.13). Gustavo 20200514
+# this breaks caasp Marcus 20200515
+#Prefer: go1.14
+
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+Prefer: enchant-2-backend-hunspell
+
+Macros:
+%sle_version 150200
+
+######### gcc9
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 9
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+# The following shlibs have the latest version built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+######### end of gcc9
+
+:Macros
+
+# Prefer over libyui9* from SP1-GA
+Prefer: libyui11
+Prefer: libyui-ncurses11
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg11 libyui-qt11 libyui-qt-graph11 libyui-qt-pkg11
+Substitute: libyui libyui11
+Substitute: libyui-ncurses libyui-ncurses11
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg11
+Substitute: libyui-qt libyui-qt11
+Substitute: libyui-qt-graph libyui-qt-graph11
+Substitute: libyui-qt-pkg libyui-qt-pkg11
+
+# Help with the switch to the gcc9 provided libs: (bsc#1154695)
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+# Needed after SR#203451 and SR#204957
+Substitute: infiniband-diags-devel rdma-core-devel
+
+# Needed after SR#205137
+Prefer: python3-pycryptodome
+# Needed after GNOME 3.34 rebase
+Prefer: libvala-0_46-devel
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+# required by u-boot (SR#205959) in order to build the full multiboot set plus eventual additional packages:
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+# use rpm by default to build, instead of rpm-ndb
+Prefer: rpm
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+# needed due to udisk devel package name changeinstallcheck: ignore rpm-ndb slurm-cray slurm-hdf5 slurm-slurmdbd slurm-webdoc setools-gui
+Prefer: libudisks2-0-devel
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Cmake exists as a -mini flavor, which is not linked against curl.
+Prefer: cmake-mini
+
+# needed due to SR#213548
+Prefer: ocaml-compiler-libs-devel
+
+# required after SR#214781
+Prefer: python2-contextlib2
+
+# Required after SR#215195
+Prefer: chrony-pool-suse
+
+%ifarch i586
+# required after MU#13672 / SR#208944 (slurm_18_08)
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+# required after MU#14605 / SR#215186 (python3-azuremetadata)
+Substitute: azuremetadata python3-azuremetadata
+
+# required after changes form the weekend of April 26
+Prefer: python3-pytest
+Prefer: python2-pytest
+
+# required after CTLG for PackageKit, which introduced dnf
+Prefer: PackageKit-backend-zypp
+
+# required after SR#214474
+Prefer: python2-subprocess32
+
+### from SUSE:SLE-15-SP2:Update
+%define _repository snapshot-SP4
+# define a prefix for all package builds in SLE 15 SP3 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220117
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+# have choice for python2-pycrypto needed by python2-oauth2client: python2-pycrypto python2-pycryptodome 20200916 - gboiko
+Prefer: python2-pycrypto
+
+# avoid have choice for pkgconfig(gnutls): libgnutls-devel libgnutls-devel-32bit
+Prefer: libgnutls-devel
+
+# qt5 prefers (32bit mess)
+Prefer: libQt5Test-devel libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel libQt5PrintSupport-devel libQt5Concurrent-devel
+
+# have choice for pkgconfig(bluez): bluez-devel bluez-devel-32bit (32bit mess)
+Prefer: bluez-devel
+
+# conflict with postgresql13-devel-mini ? 
+Prefer: libpq5
+
+Prefer: gdk-pixbuf-devel
+
+# copy grub2-arm64-efi to all archs (bsc#1186565)
+%ifarch aarch64 ppc64le s390x x86_64
+ExportFilter: ^grub2-arm64-efi-.*\.rpm$ . ppc64le s390x x86_64
+%endif
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+
+# for thunderbird (nodejs >= 10 ... has 3 options)
+
+Prefer: nodejs14
+
+# we now have a cmake-full at the version of cmake3 from SUSE:SLE-15:Update, to avoid it pulling the override by defualt,
+# use this prefer change Marcus 20220201
+Prefer: -cmake3-full
+Prefer: cmake-full
+
+### from SUSE:SLE-15-SP3:GA
+%define _repository standard
+
+Macros:
+
+### from SUSE:SLE-15-SP3:GA
+
+%_repository standard
+:Macros
+# COMMON BEGIN common part
+%define sle_version 150300
+Macros:
+%sle_version 150300
+:Macros
+
+# Prefer later so_version of libyui* over libyui*8 (SP0), libyui*9 (SP1) and libyui*11 (SP2)
+Prefer: -libyui8 -libyui-ncurses8 -libyui-ncurses-pkg8 -libyui-qt8 -libyui-qt-graph8 -libyui-qt-pkg8
+Prefer: -libyui9 -libyui-ncurses9 -libyui-ncurses-pkg9 -libyui-qt9 -libyui-qt-graph9 -libyui-qt-pkg9
+Prefer: -libyui11 -libyui-ncurses11 -libyui-ncurses-pkg11 -libyui-qt11 -libyui-qt-graph11 -libyui-qt-pkg11 -libyui-ncurses-rest-api11 -libyui-qt-rest-api11
+
+# Revert substitutions from SP2
+Substitute: libyui libyui
+Substitute: libyui-ncurses libyui-ncurses
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg
+Substitute: libyui-qt libyui-qt
+Substitute: libyui-qt-graph libyui-qt-graph
+Substitute: libyui-qt-pkg libyui-qt-pkg
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api
+Substitute: libyui-qt-rest-api libyui-qt-rest-api
+# required after SR#225674 / jsc#SLE-12712
+Prefer: gmmlib-devel
+
+# required after SR#225669
+Preinstall: libcrypt1
+
+# required for latest Mesa
+Prefer: libdrm-devel Mesa-libGL-devel libglvnd-devel libkms-devel Mesa-libEGL-devel libva-devel libdbusmenu-qt5-devel
+
+# required after SR#226419
+Prefer: typelib-1_0-Gst-1_0
+
+# required for latest Mesa
+Prefer: Mesa-libGLESv2-devel Mesa-libGLESv1_CM-devel
+
+# not sure why we need those
+Prefer: libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel
+
+# required after MU#16450 (gnutls)
+Prefer: libgnutls-devel
+
+# required after SR#228340
+Prefer: systemd-sysvinit
+
+# required after SR#227910 (alsa) and SR#228076 (pulseaudio)
+Prefer: alsa-devel libpulse-devel
+
+# required after SR#227917 (kernel-firmware)
+Prefer: kernel-firmware
+
+# required after SR#229310 
+Prefer: systemd-default-settings-branding-SLE
+
+Prefer: -libMagick++-devel-32bit -ImageMagick-devel-32bit -pciutils-devel-32bit
+Prefer: -libgbm-devel-32bit -device-mapper-devel-32bit
+
+# required after SR#230365 and SR#230366 
+Prefer: plymouth-branding-SLE
+
+# required after SR#228415
+Ignore: !pango-devel:cairo-devel
+
+# required after SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# needed after SR#236147
+Prefer: -mpg123-devel-32bit
+
+# Prefer coreutils over coreutils-single (SR#236655, bsc#1182550, jsc#SLE-13520, jsc#SLE-13756)
+Prefer: -coreutils-single
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+# COMMON END common part
+
+# due to libreoffice
+Prefer: -sane-backends-devel-32bit
+
+Prefer: -libX11-devel-32bit
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+# needed for MU#18655
+Prefer: -python3-vsts
+
+# due to MU#19157
+Prefer: -libboost_regex_legacy
+# From Fabian Vogt on 20210913 ... patterns-base-fips temporary
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+# after secondary icu version release Marcus 20211214
+
+Prefer: libicu-devel
+
+
+# gboiko, 20220202 fixing the following unresolvable:
+# have choice for libwbclient.so.0()(64bit) needed by cifs-utils: libwbclient0 samba-client-libs
+Prefer: samba-client-libs samba-devel
+
+# BEGIN RUST STUFF
+Prefer: cargo1.58 cargo1.57
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%define rust_tier1_arches x86_64 aarch64
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%rust_tier1_arches x86_64 aarch64
+:Macros
+
+# END RUST STUFF
+Prefer: -python3-cairo-devel -python2-cairo-devel -python3-gobject2-devel
+Prefer: -keyutils-devel-32bit -gtk4-devel-32bit
+
+# needed due to SR#249037
+Prefer: -libgcrypt-devel-32bit
+
+# from Factory: PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
+# needed due to SR#249799
+Prefer: php8:php8-cli
+
+# needed after php7 update (SR#255237)
+Prefer: php7:php7-cli
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# needed due to libxml2 (SR#255607)
+Prefer: -python3-libxml2-python
+Substitute: python3-libxml2-python python3-libxml2
+
+# required after SR#249636
+Prefer: -libavcodec-devel -libavfilter-devel -libavformat-devel -libavutil-devel
+
+# required after luajit SR#255872
+Prefer: -lua51-luajit-devel
+
+# required after zstd SR#256594
+Prefer: -libzstd-devel-32bit
+
+# required due to libsoup2 SR#256752
+Prefer: -libsoup2-devel-32bit
+
+Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
+
+# required due to systemd SR#258723
+Prefer: -libfdisk-devel-32bit
+
+# required after libpcap SR#249500
+# required due to umockdev SR#259947
+Prefer: -libpcap-devel-32bit
+
+# must be removed after fix for bsc#1193711 is merged
+# can also be removed in case bsc#1194749 is fully fixed
+Support: python-rpm-macros
+
+# required for suseconnect-ng replacing SUSEConnect and zypper-migration-plugin
+Prefer: -SUSEConnect
+Prefer: -zypper-migration-plugin
+
+# IBS is preferring literal matches over provides, therefore substituting with suseconnect-ng
+Substitute: SUSEConnect suseconnect-ng
+Substitute: zypper-migration-plugin suseconnect-ng
+
+# Fix fot Qt stack update
+Prefer: -libqt5-qtremoteobjects-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+# from Factory: 
+# pipewire has a jack compatible implementation - but for now we prefer the real jack
+Prefer: -pipewire-libjack-0_3-devel libjack0
+
+# required due to libyui SR#263810
+Prefer: -libyui-ncurses15 -libyui-ncurses-pkg15 -libyui-ncurses-rest-api15 -libyui-qt15 -libyui-qt-graph15 -libyui-qt-pkg15 -libyui-qt-rest-api15
+
+# required due to samba SR#262961
+Prefer: -libsmbclient0 -libwbclient0 -libsmbclient-devel -libwbclient-devel -samba-devel-32bit -libndr-krb5pac-devel -libndr-nbt-devel
+
+# required due to liburing2 SR#263841
+Prefer: -liburing2-devel
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# required for systemd SR#263844
+Substitute: libudev-devel systemd-devel
+Substitute: libudev-mini-devel systemd-mini-devel
+Prefer: -libudev-mini-devel
+Prefer: -libudev-devel
+Prefer: -libudev-devel-32bit
+
+# required for some Public Cloud and JeOS flavours to correctly resolve the zypper-lifecycle-plugin
+# dependency on /usr/bin/ruby, as ruby2.5 isn't pulled in by SUSEConnect anymore.
+FileProvides: /usr/bin/ruby ruby2.5
+
+%define skip_python2 1
+%define _without_python2 1
+
+Macros:
+## PYTHON MACROS BEGIN
+# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
+# making it the "default" in many cases --> keep the primary python3 provider at the end.
+%pythons %{?!skip_python3:python3}
+%add_python() %{expand:%%define pythons %1 %pythons}
+
+%_without_python2 1
+:Macros
+
+Prefer: -python -python-base
+
+# IBS is pulling in the outdated txt2tags instead of python3-txt2tags to build thunderbolt-user-space (bsc#1196688) 
+Substitute: txt2tags python3-txt2tags
+
+# required due to bash SR#265536
+FileProvides: /bin/bash bash
+FileProvides: /bin/sh bash-sh busybox-sh
+Prefer: bash-sh
+Preinstall: bash bash-sh
+Prefer: -busybox
+# required for openblas (SR#269449)
+Prefer: -openblas-devel
+Substitute: openblas-devel libopenblas_pthreads-devel
+
--- build-20160629.orig/configs/sl15.5.conf
+++ build-20160629/configs/sl15.5.conf
@@ -0,0 +1,2384 @@
+%define gcc_version 7
+
+RepoURL: https://download.opensuse.org/distribution/leap/15.5/repo/oss/
+RegistryURL: https://registry.opensuse.org
+
+# new cycle handling
+BuildFlags: genmetaalgo:1
+
+Constraint: linux:version:min 3.0.0
+%ifarch ppc ppc64 ppc64le
+Constraint: hardware:cpu:flag power8
+%endif
+%ifarch armv7l armv7hl
+%if "0%{?_obs_feature_exclude_cpu_constraints}" 
+Constraint: hardware:cpu:flag exclude=true EL0
+%endif
+%endif
+
+# play safe, introduced 2022/10/05
+BuildFlags: kvm-max-cpu-compat-power8
+
+Patterntype: rpm-md ymp
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: build-packages:docker python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: system-packages:docker docker kmod-compat sysvinit-tools kernel-default createrepo_c
+Substitute: kiwi python3-kiwi
+Substitute: system-packages:mock mock createrepo_c
+Substitute: system-packages:kiwi-image python3-kiwi createrepo_c tar
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+Prefer: -python2-kiwi
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/msgfmt gettext-runtime
+FileProvides: /usr/bin/python3 python3-base
+# Recommended by Adrian Schroeter:
+# causes a cycle :(
+# FileProvides: /sbin/mkinitrd dracut
+
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMinstall: iproute2 libmnl0
+
+Required: rpm-build
+Required: gcc-PIE
+
+# needed for su's default config - perhaps we should use a simplified form?
+Support: pam-modules
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Prefer: build-mkbaselibs
+Support: brp-check-suse post-build-checks rpmlint-Factory
+Support: hostname
+Support: brp-extract-appdata
+Support: brp-extract-translations
+Support: rpmlint-Factory-strict
+
+%ifarch ia64
+Support: libunwind libunwind-devel
+Preinstall: libunwind
+%endif
+Prefer: -openSUSE-build-key
+
+Prefer: -installation-images-CAASP -installation-images-SLED -installation-images-SLES_SAP
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+Conflict: python3-kiwi:krb5-mini
+Conflict: python3-kiwi:gettext-tools-mini
+
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -openSUSE-build-key
+Prefer: postfix
+
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+Prefer: go
+Prefer: python2-pep8 python3-pep8
+Prefer: perl
+Prefer: python3-pycups python-pycups
+Prefer: apache2:apache2-prefork
+Prefer: syslogd
+Prefer: star-rmt
+Prefer: notification-daemon
+Prefer: dummy-release
+Prefer: -nodejs4
+Prefer: libpulse0-32bit
+Prefer: netcdf-devel
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+Prefer: fftw3-devel
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+Prefer: kactivities5
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+Prefer: kernel-default-devel
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+Prefer: mozilla-nss-certs
+Prefer: phonon-backend-gstreamer
+Prefer: dracut
+Prefer: kmod-compat
+Prefer: oxygen5-cursors
+Prefer: -perl-App-cpanminus
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+Prefer: ghostscript-devel
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+# FATE#325522
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fallback, but we should try to not use this but java-8....
+# Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+%maintenance_vendor SUSE LLC <https://www.suse.com/>
+%maintenance_distribution SUSE Linux Enterprise 15
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+Macros:
+%_without_obs_scm_testsuite 0
+:Macros
+
+Prefer: SLES_SAP-installation-release-DVD
+Prefer: systemd-presets-branding-SLE
+Prefer: python3-msgpack
+
+%ifarch s390
+Ignore: python2-numpy-devel:openblas-devel
+Ignore: python3-numpy-devel:openblas-devel
+%endif
+
+Prefer: -openssl-1_0_0
+
+
+### from SUSE:SLE-15:Update
+%define _repository pool-leap-15.5
+
+Buildflags: useccache:ceph
+Support: python-rpm-macros
+Prefer: ImageMagick-config-7-upstream
+# disabled in GA by mistake, enabling it here
+Support: build-compare
+Prefer: chrony-pool-suse
+Prefer: pciutils-ids
+Prefer: -libcurl4-mini
+
+Macros:
+%shim_enforce_ms_signature 1
+:Macros
+
+Macros:
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 11
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+# The following shlibs have the latest version  built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+# The following shlibs have the latest version built from GCC 9 sources
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libgo14 9
+# The following shlibs have the latest version built from GCC 10 sources
+%product_libs_gcc_ver_libgphobos1 10
+%product_libs_gcc_ver_libgdruntime1 10
+%product_libs_gcc_ver_libgo16 10
+
+:Macros
+
+Prefer: -alsa-devel-32bit
+Prefer: -atk-devel-32bit
+Prefer: -atkmm1_6-devel-32bit
+Prefer: -at-spi2-core-devel-32bit
+Prefer: -at-spi-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -augeas-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -cairo-devel-32bit
+Prefer: -cairomm1_0-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -cppunit-devel-32bit
+Prefer: -cyrus-sasl-devel-32bit
+Prefer: -dbus-1-devel-32bit
+Prefer: -dbus-1-glib-devel-32bit
+Prefer: -device-mapper-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -flac-devel-32bit
+Prefer: -fontconfig-devel-32bit
+Prefer: -freetype2-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -glu-devel-32bit
+Prefer: -gstreamer-devel-32bit
+Prefer: -gstreamer-plugins-base-devel-32bit
+Prefer: -gtk2-devel-32bit
+Prefer: -gtk3-devel-32bit
+Prefer: -hunspell-devel-32bit
+Prefer: -ImageMagick-devel-32bit
+Prefer: -libart_lgpl-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -libbasicobjects-devel-32bit
+Prefer: -libblkid-devel-32bit
+Prefer: -libbz2-devel-32bit
+Prefer: -libcelt-devel-32bit
+Prefer: -libcollection-devel-32bit
+Prefer: -libcom_err-devel-32bit
+Prefer: -libcurl-devel-32bit
+Prefer: -libdhash-devel-32bit
+Prefer: -libdmx-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -libelf-devel-32bit
+Prefer: -libexif-devel-32bit
+Prefer: -libexpat-devel-32bit
+Prefer: -libext2fs-devel-32bit
+Prefer: -libfontenc-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libgck-devel-32bit
+Prefer: -libgcr-devel-32bit
+Prefer: -libglvnd-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libgphoto2-devel-32bit
+Prefer: -libHX-devel-32bit
+Prefer: -libICE-devel-32bit
+Prefer: -libicu-devel-32bit
+Prefer: -libini_config-devel-32bit
+Prefer: -libjack-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -liblbxutil-devel-32bit
+Prefer: -liblcms2-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libmount-devel-32bit
+Prefer: -libnettle-devel-32bit
+Prefer: -libnl3-devel-32bit
+Prefer: -libnotify-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libqt5-qtconnectivity-devel-32bit
+Prefer: -libqt5-qtdeclarative-devel-32bit
+Prefer: -libqt5-qtlocation-devel-32bit
+Prefer: -libqt5-qtmultimedia-devel-32bit
+Prefer: -libqt5-qtserialport-devel-32bit
+Prefer: -libqt5-qtsvg-devel-32bit
+Prefer: -libqt5-qttools-devel-32bit
+Prefer: -libqt5-qtwayland-devel-32bit
+Prefer: -libqt5-qtwebchannel-devel-32bit
+Prefer: -libqt5-qtwebsockets-devel-32bit
+Prefer: -libqt5-qtx11extras-devel-32bit
+Prefer: -libqt5-qtxmlpatterns-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libraw1394-devel-32bit
+Prefer: -libref_array-devel-32bit
+Prefer: -libSDL2-devel-32bit
+Prefer: -libSDL-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSM-devel-32bit
+Prefer: -libsoup-devel-32bit
+Prefer: -libtasn1-devel-32bit
+Prefer: -libtiff-devel-32bit
+Prefer: -libusb-1_0-devel-32bit
+Prefer: -libuuid-devel-32bit
+Prefer: -libv4l-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libvdpau-devel-32bit
+Prefer: -libverto-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -libvorbis-devel-32bit
+Prefer: -libwayland-egl-devel-32bit
+Prefer: -libwebp-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libXau-devel-32bit
+Prefer: -libXaw3d-devel-32bit
+Prefer: -libXaw-devel-32bit
+Prefer: -libxcb-devel-32bit
+Prefer: -libXcomposite-devel-32bit
+Prefer: -libXcursor-devel-32bit
+Prefer: -libXdamage-devel-32bit
+Prefer: -libXdmcp-devel-32bit
+Prefer: -libXext-devel-32bit
+Prefer: -libXfixes-devel-32bit
+Prefer: -libXfont2-devel-32bit
+Prefer: -libXfontcache-devel-32bit
+Prefer: -libXfont-devel-32bit
+Prefer: -libXft-devel-32bit
+Prefer: -libXi-devel-32bit
+Prefer: -libXinerama-devel-32bit
+Prefer: -libxkbcommon-devel-32bit
+Prefer: -libxkbcommon-x11-devel-32bit
+Prefer: -libxkbfile-devel-32bit
+Prefer: -libxml2-devel-32bit
+Prefer: -libXmu-devel-32bit
+Prefer: -libXp-devel-32bit
+Prefer: -libXpm-devel-32bit
+Prefer: -libXprintUtil-devel-32bit
+Prefer: -libXrandr-devel-32bit
+Prefer: -libXrender-devel-32bit
+Prefer: -libXres-devel-32bit
+Prefer: -libxslt-devel-32bit
+Prefer: -libXss-devel-32bit
+Prefer: -libXt-devel-32bit
+Prefer: -libXtst-devel-32bit
+Prefer: -libXv-devel-32bit
+Prefer: -libXvMC-devel-32bit
+Prefer: -libXxf86dga-devel-32bit
+Prefer: -libXxf86misc-devel-32bit
+Prefer: -libXxf86vm-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGLESv2_CM-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -ncurses-devel-32bit
+Prefer: -NetworkManager-devel-32bit
+Prefer: -openal-soft-devel-32bit
+Prefer: -openjpeg-devel-32bit
+Prefer: -pango-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -tslib-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -wayland-devel-32bit
+Prefer: -xcb-util-devel-32bit
+Prefer: -xcb-util-image-devel-32bit
+Prefer: -xcb-util-keysyms-devel-32bit
+Prefer: -xcb-util-renderutil-devel-32bit
+Prefer: -xcb-util-wm-devel-32bit
+Prefer: -xz-devel-32bit
+Prefer: -zlib-devel-32bit
+Prefer: -zvbi-devel-32bit
+
+Prefer: libboost_thread1_66_0
+Prefer: libboost_system1_66_0
+Prefer: libboost_regex1_66_0
+Prefer: libboost_filesystem1_66_0
+Prefer: libboost_iostreams1_66_0
+Prefer: libboost_date_time1_66_0
+
+Prefer: -libsmartcols-devel-32bit
+Prefer: -krb5-devel-32bit
+
+# ro added 20210708 requested by dmueller
+Prefer: -lzo-devel-32bit
+Prefer: -liboping-devel-32bit
+Prefer: -unixODBC-devel-32bit
+Prefer: -libcmocka-devel-32bit
+
+# ro added 20220207 requested by dmueller
+Prefer: -samba-devel-32bit
+Prefer: -libqt5-qtscript-devel-32bit
+
+# mstrigl added 20220726 requested by dmueller
+Prefer: -vulkan-devel-32bit
+
+# darix added 20220906 requested by favogt
+Prefer: libasan6
+
+# ro added 20220510 requested by jgonzalez
+Macros:
+%susemanager_container_images_path registry.suse.com/suse/manager/4.3
+:Macros
+
+# ro added 20220917 requested by meissner
+Prefer: libubsan1
+
+# mstrigl added 20220929 requested by meissner
+Prefer: go1.18
+
+Patterntype: rpm-md ymp
+
+%define sle_version 150100
+
+Macros:
+%sle_version 150100
+:Macros
+
+FileProvides: /usr/bin/host bind-utils
+
+Substitute: system-packages:podman kmod kernel-default podman buildah createrepo_c
+
+Prefer: libyui-ncurses9 
+Prefer: libyui-ncurses-pkg9 libyui-qt9 libyui-qt-graph9 libyui-qt-pkg9
+Prefer: samba-libs-python3
+Ignore: !pciutils:pciutils-ids
+Prefer: kernel-default
+Ignore: multipath-tools:kmod(dm-multipath),kmod(dm-multipath),kmod(scsi_dh_emc),kmod(scsi_dh_rdac),kmod(scsi_dh_alua)
+Prefer: python2-configparser
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !gio-branding-upstream
+
+Prefer: -java-10-openjdk -java-10-openjdk-devel -java-10-openjdk-javadoc -java-10-openjdk-headless
+Prefer: -java-1_8_0-openjdk -java-1_8_0-openjdk-devel -java-1_8_0-openjdk-javadoc -java-1_8_0-openjdk-headless
+Prefer: -java-1_7_0-openjdk -java-1_7_0-openjdk-devel -java-1_7_0-openjdk-javadoc -java-1_7_0-openjdk-headless
+
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+
+Prefer: go1.12
+
+
+### from SUSE:SLE-15-SP1:Update
+%define _repository pool-leap-15.5
+
+Prefer: slurm libpmi0 slurm-config slurm-node slurm-plugins
+Prefer: python-pytest4 python2-pytest4 python3-pytest4
+Prefer: python3-pycryptodome
+
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+%define sle_version 150200
+
+Prefer: enchant-2-backend-hunspell
+
+Macros:
+%sle_version 150200
+%current_milestone GMC
+
+%product_libs_gcc_ver 9
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+:Macros
+
+Prefer: libyui11
+Prefer: libyui-ncurses11
+Prefer: libyui-ncurses-pkg11 libyui-qt11 libyui-qt-graph11 libyui-qt-pkg11
+Substitute: libyui libyui11
+Substitute: libyui-ncurses libyui-ncurses11
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg11
+Substitute: libyui-qt libyui-qt11
+Substitute: libyui-qt-graph libyui-qt-graph11
+Substitute: libyui-qt-pkg libyui-qt-pkg11
+
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+Substitute: infiniband-diags-devel rdma-core-devel
+Prefer: python3-pycryptodome
+Prefer: libvala-0_46-devel
+Preinstall: libgcrypt20 libgpg-error0
+
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+Prefer: rpm
+
+Preinstall: libzstd1
+
+Prefer: libudisks2-0-devel
+
+Ignore: cmake-mini:this-is-only-for-build-envs
+Prefer: cmake-mini
+Prefer: ocaml-compiler-libs-devel
+Prefer: python2-contextlib2
+Prefer: chrony-pool-suse
+
+%ifarch i586
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+Substitute: azuremetadata python3-azuremetadata
+
+Prefer: python3-pytest
+Prefer: python2-pytest
+
+Prefer: PackageKit-backend-zypp
+Prefer: python2-subprocess32
+
+
+### from SUSE:SLE-15-SP2:Update
+%define _repository pool-leap-15.5
+# have choice for python2-pycrypto needed by python2-oauth2client: python2-pycrypto python2-pycryptodome 20200916 - gboiko
+Prefer: python2-pycrypto
+
+# avoid have choice for pkgconfig(gnutls): libgnutls-devel libgnutls-devel-32bit
+Prefer: libgnutls-devel
+
+# qt5 prefers (32bit mess)
+Prefer: libQt5Test-devel libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel libQt5PrintSupport-devel libQt5Concurrent-devel
+
+# have choice for pkgconfig(bluez): bluez-devel bluez-devel-32bit (32bit mess)
+Prefer: bluez-devel
+
+# conflict with postgresql13-devel-mini ? 
+Prefer: libpq5
+
+Prefer: gdk-pixbuf-devel
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+
+# for thunderbird (nodejs >= 10 ... has 3 options)
+
+Prefer: nodejs14
+
+
+Patterntype: rpm-md ymp
+# COMMON BEGIN common part
+%define sle_version 150300
+Macros:
+%sle_version 150300
+:Macros
+
+# Prefer later so_version of libyui* over libyui*8 (SP0), libyui*9 (SP1) and libyui*11 (SP2)
+Prefer: -libyui8 -libyui-ncurses8 -libyui-ncurses-pkg8 -libyui-qt8 -libyui-qt-graph8 -libyui-qt-pkg8
+Prefer: -libyui9 -libyui-ncurses9 -libyui-ncurses-pkg9 -libyui-qt9 -libyui-qt-graph9 -libyui-qt-pkg9
+Prefer: -libyui11 -libyui-ncurses11 -libyui-ncurses-pkg11 -libyui-qt11 -libyui-qt-graph11 -libyui-qt-pkg11 -libyui-ncurses-rest-api11 -libyui-qt-rest-api11
+
+# Revert substitutions from SP2
+Substitute: libyui libyui
+Substitute: libyui-ncurses libyui-ncurses
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg
+Substitute: libyui-qt libyui-qt
+Substitute: libyui-qt-graph libyui-qt-graph
+Substitute: libyui-qt-pkg libyui-qt-pkg
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api
+Substitute: libyui-qt-rest-api libyui-qt-rest-api
+
+# required after SR#225674 / jsc#SLE-12712
+Prefer: gmmlib-devel
+
+# required after SR#225669
+Preinstall: libcrypt1
+
+# required for latest Mesa
+Prefer: libdrm-devel Mesa-libGL-devel libglvnd-devel libkms-devel Mesa-libEGL-devel libva-devel libdbusmenu-qt5-devel
+
+# required after SR#226419
+Prefer: typelib-1_0-Gst-1_0
+
+# required for latest Mesa
+Prefer: Mesa-libGLESv2-devel Mesa-libGLESv1_CM-devel
+
+# not sure why we need those
+Prefer: libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel
+
+# required after MU#16450 (gnutls)
+Prefer: libgnutls-devel
+
+# required after SR#228340
+Prefer: systemd-sysvinit
+
+# required after SR#227910 (alsa) and SR#228076 (pulseaudio)
+Prefer: alsa-devel libpulse-devel
+
+# required after SR#227917 (kernel-firmware)
+Prefer: kernel-firmware
+
+# required after SR#229310 
+Prefer: systemd-default-settings-branding-SLE
+
+Prefer: -libMagick++-devel-32bit -ImageMagick-devel-32bit -pciutils-devel-32bit
+Prefer: -libgbm-devel-32bit -device-mapper-devel-32bit
+
+# required after SR#230365 and SR#230366 
+Prefer: plymouth-branding-SLE
+
+# required after SR#228415
+Ignore: !pango-devel:cairo-devel
+
+# required after SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# needed after SR#236147
+Prefer: -mpg123-devel-32bit
+
+# Prefer coreutils over coreutils-single (SR#236655, bsc#1182550, jsc#SLE-13520, jsc#SLE-13756)
+Prefer: -coreutils-single
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+# COMMON END common part
+
+# due to libreoffice
+Prefer: -sane-backends-devel-32bit
+
+Prefer: -libX11-devel-32bit
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+# needed for MU#18655
+Prefer: -python3-vsts
+
+# due to MU#19157
+Prefer: -libboost_regex_legacy
+
+# define a prefix for all package builds in SLE 15 SP3 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220117
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+
+# From Fabian Vogt on 20210913 ... patterns-base-fips temporary
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+# after secondary icu version release Marcus 20211214
+
+Prefer: libicu-devel
+
+
+# gboiko, 20220202 fixing the following unresolvable:
+# have choice for libwbclient.so.0()(64bit) needed by cifs-utils: libwbclient0 samba-client-libs
+Prefer: samba-client-libs samba-devel
+
+# BEGIN RUST STUFF
+Prefer: cargo1.58 cargo1.57
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%define rust_tier1_arches x86_64 aarch64
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%rust_tier1_arches x86_64 aarch64
+:Macros
+
+# END RUST STUFF
+
+# COMMON BEGIN common part
+%define sle_version 150400
+Macros:
+%sle_version 150400
+:Macros
+
+# define a prefix for all package builds in SLE 15 SP4 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+Prefer: -python3-cairo-devel -python2-cairo-devel -python3-gobject2-devel
+Prefer: -keyutils-devel-32bit -gtk4-devel-32bit
+
+# needed due to SR#249037
+Prefer: -libgcrypt-devel-32bit
+
+# from Factory: PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
+# needed due to SR#249799
+Prefer: php8:php8-cli
+
+# needed after php7 update (SR#255237)
+Prefer: php7:php7-cli
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# needed due to libxml2 (SR#255607)
+Prefer: -python3-libxml2-python
+Substitute: python3-libxml2-python python3-libxml2
+
+# required after SR#249636
+Prefer: -libavcodec-devel -libavfilter-devel -libavformat-devel -libavutil-devel
+
+# required after luajit SR#255872
+Prefer: -lua51-luajit-devel
+
+# required after zstd SR#256594
+Prefer: -libzstd-devel-32bit
+
+# required due to libsoup2 SR#256752
+Prefer: -libsoup2-devel-32bit
+
+Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
+
+# required due to systemd SR#258723
+Prefer: -libfdisk-devel-32bit
+
+# required after libpcap SR#249500
+# required due to umockdev SR#259947
+Prefer: -libpcap-devel-32bit
+
+# must be removed after fix for bsc#1193711 is merged
+# can also be removed in case bsc#1194749 is fully fixed
+Support: python-rpm-macros
+
+# required for suseconnect-ng replacing SUSEConnect and zypper-migration-plugin
+Prefer: -SUSEConnect
+Prefer: -zypper-migration-plugin
+
+# IBS is preferring literal matches over provides, therefore substituting with suseconnect-ng
+Substitute: SUSEConnect suseconnect-ng
+Substitute: zypper-migration-plugin suseconnect-ng
+
+# Fix fot Qt stack update
+Prefer: -libqt5-qtremoteobjects-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+
+# from Factory: 
+# pipewire has a jack compatible implementation - but for now we prefer the real jack
+Prefer: -pipewire-libjack-0_3-devel libjack0
+
+# required due to libyui SR#263810
+Prefer: -libyui-ncurses15 -libyui-ncurses-pkg15 -libyui-ncurses-rest-api15 -libyui-qt15 -libyui-qt-graph15 -libyui-qt-pkg15 -libyui-qt-rest-api15
+
+# required due to samba SR#262961
+Prefer: -libsmbclient0 -libwbclient0 -libsmbclient-devel -libwbclient-devel -samba-devel-32bit -libndr-krb5pac-devel -libndr-nbt-devel
+
+# required due to liburing2 SR#263841
+Prefer: -liburing2-devel
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# required for systemd SR#263844
+Substitute: libudev-devel systemd-devel
+Substitute: libudev-mini-devel systemd-mini-devel
+Prefer: -libudev-mini-devel
+Prefer: -libudev-devel
+Prefer: -libudev-devel-32bit
+
+# required for some Public Cloud and JeOS flavours to correctly resolve the zypper-lifecycle-plugin
+# dependency on /usr/bin/ruby, as ruby2.5 isn't pulled in by SUSEConnect anymore.
+FileProvides: /usr/bin/ruby ruby2.5
+
+%define skip_python2 1
+%define _without_python2 1
+
+Macros:
+## PYTHON MACROS BEGIN
+# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
+# making it the "default" in many cases --> keep the primary python3 provider at the end.
+%pythons %{?!skip_python3:python3}
+%add_python() %{expand:%%define pythons %1 %pythons}
+
+%_without_python2 1
+:Macros
+
+Prefer: -python -python-base
+
+# IBS is pulling in the outdated txt2tags instead of python3-txt2tags to build thunderbolt-user-space (bsc#1196688) 
+Substitute: txt2tags python3-txt2tags
+
+# required due to bash SR#265536
+FileProvides: /bin/bash bash
+FileProvides: /bin/sh bash-sh busybox-sh
+Prefer: bash-sh
+Preinstall: bash bash-sh
+Prefer: -busybox
+
+# required for openblas (SR#269449)
+Prefer: -openblas-devel
+Substitute: openblas-devel libopenblas_pthreads-devel
+
+### from SUSE:SLE-15-SP4:Update
+%define _repository pool-leap-15.5
+Prefer: -python3-cairo
+
+#request by meissner 2022-09-08
+Prefer: libdebuginfod1-dummy
+
+#request by dmueller 2022-10-11
+FileProvides: /usr/sbin/nologin util-linux
+FileProvides: /usr/bin/perl perl
+
+Patterntype: rpm-md ymp
+
+# COMMON BEGIN common part
+%define sle_version 150500
+Macros:
+%sle_version 150500
+:Macros
+
+# define a prefix for all package builds in SLE 15 SP4 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+Prefer: -libasan6-gcc10
+
+# required for libvirt 8.7 (bsc#1203512)
+FileProvides: /usr/bin/lzop lzop
+
+# Update of pacemaker and rename of libraries in SR#279289
+Prefer: -libpacemaker-devel
+Prefer: -libpacemaker3
+# Update of cluster-glue and rename of libraries in SR#279338
+Prefer: -libglue2
+
+# fix build dependency for resource-agents, as IBS prefers the literal match (bsc#1203744)
+Substitute: libglue-devel cluster-glue-devel
+
+# resolve choice for split in libpolkit0 (bsc#1191781)
+Prefer: -libpolkit0
+
+Release: bp155.<CI_CNT>.<B_CNT>
+
+Patterntype: rpm-md ymp
+
+# whenever something (rpmlint-mini!) wants rpmlint we also install
+# our extra policy check
+#Substitute: rpmlint rpmlint rpmlint-backports rpmlint-backports-data
+
+# rpmlint-backports-data is only available for SLE architectures
+%ifarch x86_64 ppc64le s390x aarch64
+Support: rpmlint-backports
+%endif
+Support: brp-check-suse
+
+# Enable ccache for chromium tensorflow{2}
+BuildFlags: useccache:chromium
+BuildFlags: useccache:nodejs-electron
+BuildFlags: useccache:ghc
+
+BuildFlags: useccache:tensorflow:hpc
+BuildFlags: useccache:tensorflow:hpc-openmpi2
+BuildFlags: useccache:tensorflow:lite
+BuildFlags: useccache:tensorflow:standard
+
+BuildFlags: useccache:tensorflow2:hpc
+BuildFlags: useccache:tensorflow2:hpc-openmpi2
+BuildFlags: useccache:tensorflow2:lite
+BuildFlags: useccache:tensorflow2:standard
+
+# FileProvides: /usr/bin/python2 python2-base
+FileProvides: /sbin/pidof sysvinit-tools
+
+Prefer: rpm -rpm-ndb
+# bsc#1182698
+Preinstall: rpm-config-SUSE
+
+# need this until snpashot resync, maxlin 2022-03-18
+# Preinstall: !bash-sh
+
+# prefer coreutils over coreutils-single
+Prefer: coreutils
+
+# Help with the switch to the gcc7 provided libs
+# Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
+# Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
+
+Prefer: yast2-schema-default
+
+FileProvides: /usr/bin/pkexec pkexec
+
+# Help with the switch to the gcc9 provided libs:
+# Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+# Imagemagick now has 2 configs
+Prefer: ImageMagick-config-7-SUSE
+
+# man uses cron to update the DB normally, but we don't care for that in the build system
+Ignore: man:cron
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+Ignore: ghc-bootstrap:this-is-only-for-build-envs
+Ignore: ghc-bootstrap-helpers:this-is-only-for-build-envs
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Cmake exists as a -mini flavor, which is not linked against curl.
+Prefer: cmake-mini
+
+# We have multiple nodejs versions in the repo - prefer version -default (from meta package)
+Prefer: nodejs-default nodejs-devel-default npm-default
+
+# Fix build of python-inspektor
+Prefer: python2-configparser
+
+# Fix build for packages depending on rust since old version rust-std (1.24.1)
+# instead of current version in SLE (rust-std-static 1.31.1) was used for builds
+Substitute: rust-std rust
+Substitute: rust-std-static rust
+
+# multiple rust and cargo does exist
+Prefer: -cargo1.53 -cargo1.54 -cargo1.55 -cargo1.56
+
+# libmariadb naming obosletes libmysqld naming but libmysqld binaries has still appeared
+Substitute: libmysqld-devel libmariadbd-devel
+
+# requested by Stefan Weiberg on 2022/09/28 - copy from IBS
+# fix build dependency for resource-agents, as IBS prefers the literal match (bsc#1203744)
+Substitute: libglue-devel cluster-glue-devel
+
+Prefer: libasan6
+
+# have choice for golang(API) = 1.18: go1.18 go1.18-openssl
+Prefer: -go1.18-openssl
+
+# have choice for perl(Term::ReadLine::Gnu): perl-Term-ReadLine-Gnu perl-TermReadLine-Gnu
+Prefer: perl-Term-ReadLine-Gnu
+
+# required for openblas (SR#269449)
+Prefer: -openblas-devel
+Substitute: openblas-devel libopenblas_pthreads-devel
+
+# For 32bit stuff
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+
+# until this can be fixed in rpm - maxlin
+Support: python-rpm-macros
+
+# Directly copied from Leap
+Prefer: openmpi-config
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 libnetcdf11 netcdf-devel netcdf-devel-data -libnetcdf13-openmpi -libnetcdf13-openmpi2
+Prefer: -libnetcdf15-openmpi -libnetcdf15-openmpi2
+Prefer: libnetcdf18
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-101-openmpi -libhdf5-101-mvapich2 -libhdf5_hl101-openmpi libhdf5_hl100 -libhdf5-103-openmpi1 -libhdf5-103-mvapich2 -libhdf5_hl103-openmpi -libhdf5_cpp103-openmpi -libhdf5_cpp103-openmpi1 -libhdf5_cpp103-mvapich2 -libhdf5-103-openmpi2 -libhdf5-103-openmpi3 -libhdf5-103-openmpi4 -libhdf5_cpp103-openmpi2 -libhdf5_cpp103-openmpi3 -libhdf5_cpp103-openmpi4
+Prefer: -hdf5-1_8-devel
+Prefer: -libvtk1-openmpi libvtk1-openmpi2
+
+# PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
+%define php_pref php7
+Prefer: %{php_pref}
+Prefer: %{php_pref}-cli
+Prefer: %{php_pref}-devel
+Prefer: %{php_pref}-pear
+Prefer: %{php_pref}-tokenizer
+Prefer: apache2-mod_%{php_pref}
+Prefer: php7:php7-cli
+Prefer: php8:php8-cli
+
+# do not prefer php7-test
+Prefer: -php7-test
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package' - not true anymore
+# for go version greater than 1.13, let's not to prefer older ones
+# go1.15 is the default by patchinfo.18422
+Prefer: go -go1.12 -go1.13 -go1.14 -go1.15 -go1.16
+
+# Have choice for vtk-java/vtk-tcl/python3-vtk needed by vtk-devel
+Prefer: vtk-java vtk-tcl python3-vtk
+
+# have choice for mingw32-unistd-pthread-devel needed by mingw32-headers: mingw32-headers-dummy-pthread mingw32-winpthreads-devel
+Prefer: -mingw64-headers-dummy-pthread -mingw32-headers-dummy-pthread
+
+# 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.5-rubygem-tilt
+Prefer: ruby2.5-rubygem-mail
+Prefer: ruby2.5-rubygem-addressable
+Prefer: ruby2.5-rubygem-thor
+Prefer: ruby2.5-rubygem-tzinfo
+
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4 
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rb-fsevent
+Prefer: -ruby2.5-rubygem-bcrypt_pbkdf
+
+# have choice for rubygem(ruby:2.5.0:fast_gettext) < 3.0 needed by yast2-ruby-bindings: ruby2.5-rubygem-fast_gettext ruby2.5-rubygem-fast_gettext-1.1
+Prefer: -ruby2.5-rubygem-fast_gettext-1.1
+# have choice for rubygem(ruby:2.5.0:sass-rails) >= 5.0.1: ruby2.5-rubygem-sass-rails ruby2.5-rubygem-sass-rails-5.1
+Prefer: -ruby2.5-rubygem-sass-rails-5.1
+
+# we have python3 and python39
+Prefer: python3 -python39 -python -python-base
+
+# have choice: python2-setuptools python2-setuptools-test python2-setuptools-wheel
+Prefer: python2-setuptools
+Prefer: python3-setuptools
+
+# python-msgpack-python was renamed to python-msgpack with 0.5 as a single-spec package (provides/obsoletes in place)
+Prefer: python2-msgpack python3-msgpack
+
+Prefer: python2-pycryptodome
+
+# There is python3-Django and python3-Django1 - as usual, we favor the unversioned one
+Prefer: python3-Django
+
+# python3-prompt_toolkit vs python3-prompt_toolkit1
+Prefer: python3-prompt_toolkit
+
+# multiple pytest version so prefers the unversioned one
+Prefer: python3-pytest python3-pytest4 python3-pytest5
+Prefer: python2-pytest python2-pytest4 python2-pytest5
+
+Prefer: python2-subprocess32
+
+Prefer: python2-libxml2
+Prefer: python3-libxml2
+ 
+# Enchant has multiple backends to chose from, make a decision for OBS
+Prefer: enchant-1-backends
+Prefer: enchant-2-backend-hunspell
+
+# pipewire has a jack compatible implementation - but for now we prefer the real jack otherwise some apps fails to build eg. octave
+Prefer: -pipewire-libjack-0_3-devel libjack0
+
+# have choice for html2text
+Prefer: -python3-html2text
+
+# have choice for python-wxWidgets >= 2.8 needed by grass: python-wxWidgets-3_0 python3-wxPython
+Prefer: python3-wxPython
+
+# OpenSceneGraph exists as 'latest' and a 3.4 compat package. If nothing is specified, we want latest
+Prefer: libOpenSceneGraph-devel libOpenThreads-devel
+
+# once libmusicbrainz updated to ver. 5 then switch it to libmusicbrainz-devel
+Prefer: libmusicbrainz5-devel
+
+
+# have choice for pkgconfig(msgpack): msgpack-c-devel msgpack-devel
+Prefer: -msgpack-devel
+
+# have chouce for python3-sip python3-sip4
+Prefer: python3-sip
+Prefer: -python3-sip4
+
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+
+Prefer: rhino:xmlbeans-mini
+Prefer: k9s:go1.14
+
+Prefer: libuna-mini-devel libuna1-mini
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+# hwdata vs pciutils-ids
+Prefer: -pciutils-ids
+Prefer: hwdata
+
+# have choice for tensorflow: tensorflow tensorflow2 tensorflow2_2_1_0-gnu-hpc tensorflow2_2_1_0-gnu-mvapich2-hpc tensorflow2_2_1_0-gnu-openmpi2-hpc
+Prefer: tensorflow2
+
+# have choice for pkgconfig(libhs): hyperscan-devel vectorscan-devel. hyperscan is for x86 only, prefer that where possible (for now).
+Prefer: hyperscan-devel
+
+# have choice for (gnome-session or budgie-desktop) needed by gnome-shell: budgie-desktop gnome-session
+Prefer: -budgie-desktop
+
+# have choice for systemd-default-settings-branding needed by systemd:
+# systemd-default-settings-branding-SLE systemd-default-settings-branding-openSUSE systemd-default-settings-branding-upstream
+Prefer: systemd-default-settings-branding-SLE
+
+# have choice for typelib(GWeather) needed by gnome-shell: typelib-1_0-GWeather-3_0 typelib-1_0-GWeather-4_0
+Prefer: typelib-1_0-GWeather-3_0
+
+# Do not prefer 32bit devel
+Prefer: -ImageMagick-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5OpenGLExtensions-devel-static-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -alsa-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -libSDL2_image-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libva-gl-devel-32bit
+Prefer: -libdbusmenu-qt5-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libpolkit-qt5-1-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -papi-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -libOSMesa-devel-32bit
+Prefer: -libSDL_ttf-devel-32bit
+Prefer: -libSDL2_ttf-devel-32bit
+Prefer: -libSDL_mixer-devel-32bit
+Prefer: -libSDL2_mixer-devel-32bit
+Prefer: -libSDL_image-devel-32bit
+Prefer: -libSDL_net-devel-32bit
+Prefer: -libSDL2_net-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSDL2_gfx-devel-32bit
+Prefer: -muparser-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+Prefer: -libbotan-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -zvbi-devel-32bit
+Prefer: -libcmocka-devel-32bit
+Prefer: -libstatgrab-devel-32bit
+Prefer: -libqt5-qtnetworkauth-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -libqt5-qtscxml-devel-32bit
+Prefer: -phonon4qt5-devel-32bit
+Prefer: -libQt5WebKit5-devel-32bit
+Prefer: -libQt5WebKitWidgets-devel-32bit
+Prefer: -libsmartcols-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libopenssl-1_0_0-devel-32bit
+Prefer: -libgcrypt-devel-32bit
+Prefer: -keyutils-devel-32bit
+Prefer: -gtk4-devel-32bit
+Prefer: -ocl-icd-devel-32bit
+Prefer: -libGLw-devel-32bit
+Prefer: -libzstd-devel-32bit
+Prefer: -libsoup2-devel-32bit
+Prefer: -libpcap-devel-32bit
+Prefer: -libqt5-qtremoteobjects-devel-32bit
+Prefer: -libqt5-qtsensors-devel-32bit
+Prefer: -libudev-devel-32bit
+#have choice for librpm.so.8 needed by libsnmp30-32bit: rpm-32bit rpm-ndb-32bit, have choice for librpmio.so.8 needed by libsnmp30-32bit: rpm-32bit rpm-ndb-32bit, have choice for libnssckbi.so needed by mozilla-nss-32bit: mozilla-nss-certs-32bit p11-kit-nss-trust-32bit
+Prefer: -rpm-ndb-32bit
+Prefer: -p11-kit-nss-trust-32bit
+
+# wine comes in various flavors by now, we pick the unflavored ones
+Prefer: wine-32bit wine-devel-32bit wine-devel
+
+Prefer: -ruby2.4-rubygem-fast_gettext-1_1 -ruby2.4-rubygem-listen-3_0 -ruby2.4-rubygem-nokogiri-1_6 -ruby2.4-rubygem-i18n-0_6 -ruby2.4-rubygem-ruby_dep-1_3 -ruby2.4-rubygem-childprocess-0_6
+Prefer: -ruby2.4-rubygem-mime-types-1
+Prefer: -ruby2.5-rubygem-rspec-2_14
+Prefer: -ruby2.5-rubygem-mime-types-1
+
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -libnetcdf13-openmpi libnetcdf11 netcdf-devel netcdf-devel-data
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+Prefer: libmysqlclient-devel
+
+# have choice for perl(Math::BigInt) >= 1.999808: amanda perl-Math-BigInt
+Prefer: perl-Math-BigInt
+
+# have choice for pkgconfig(catch2): Catch2-2-devel Catch2-devel
+Prefer: -Catch2-2-devel
+
+Prefer: subunit-filters -python2-python-subunit
+
+# have choice for PackageKit-backend needed by PackageKit: PackageKit-backend-dnf PackageKit-backend-zypp
+Prefer: PackageKit-backend-zypp
+
+# We have multiple versions of ffmpeg available, the preferred one is ffmpeg4 from Backports instead of ffmpeg3 from SLE
+# Prefer: ffmpeg-4-libavcodec-devel ffmpeg-4-libavformat-devel ffmpeg-4-libavutil-devel ffmpeg-4-libswscale-devel ffmpeg-4-libavdevice-devel                
+# Prefer: -ffmpeg-private-devel -libavcodec-devel -libavformat-devel -libavutil-devel -libswscale-devel -libavdevice-devel -libavfilter-devel
+# ffmpeg-3 and ffmpeg-4 handling in 15.2
+Prefer: libvpx-devel
+Prefer: ffmpeg-3-libavcodec-devel ffmpeg-3-libavdevice-devel ffmpeg-3-libavfilter-devel ffmpeg-3-libavformat-devel ffmpeg-3-libavresample-devel ffmpeg-3-libavutil-devel ffmpeg-3-libpostproc-devel ffmpeg-3-libswresample-devel ffmpeg-3-libswscale-devel ffmpeg-3-private-devel
+Prefer: -ffmpeg3-devel
+Substitute: ffmpeg3-devel ffmpeg-3-libavcodec-devel
+Prefer: -libavcodec-devel -libavdevice-devel -libavfilter-devel -libavformat-devel -libavresample-devel -libavutil-devel -libpostproc-devel -libswresample-devel -libswscale-devel -ffmpeg-private-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+
+# have choice for libffi
+Prefer: libffi7
+
+# We have opencv and opencv3 - as usual, the unversioned one should win
+Prefer: opencv-devel
+
+# llvm exists in multiple versions
+Prefer: libclang13 libc++1 libc++abi1 libc++-devel libc++abi-devel
+
+# have choice for pkgconfig(smbclient): libsmbclient-devel samba-devel
+Prefer: samba-devel
+# it doesn't work well enough
+Substitute: libsmbclient-devel samba-devel
+Substitute: libwbclient-devel samba-devel
+
+# LUA namespace migration - slowly moving to the new names (keep ports in mind!)
+# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
+Prefer: lua53 lua51 lua52 lua
+Prefer: liblua5_3-5 liblua5_1-5 liblua5_2-5
+Prefer: lua53-devel lua51-devel lua52-devel
+Prefer: libtolua++-5_3-devel libtolua++-5_1-devel libtolua++-5_2-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+# required for systemd SR#263844
+Substitute: libudev-devel systemd-devel
+Substitute: libudev-mini-devel systemd-mini-devel
+Prefer: -libudev-mini-devel
+
+# SLE product and SLE-Module-Development-Tools-OBS module providing different versions
+Prefer: libgnome-desktop-3-18
+Prefer: libgnomekbd8
+Prefer: typelib-1_0-Gspell-1
+
+# python-cairo vs python-pycairo
+Prefer: python3-pycairo python2-pycairo
+Prefer: python3-pycairo-devel python2-pycairo-devel
+Prefer: python-pycairo-common-devel
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+
+Preinstall: liblua5_3-5
+
+# required after luajit SR#255872
+Prefer: luajit-devel
+#Prefer: -lua51-luajit-devel
+Substitute: lua51-luajit-devel luajit-devel
+
+# needed due to libxml2 (SR#255607)
+Prefer: -python3-libxml2-python -python2-libxml-python
+Substitute: python2-libxml2-python python2-libxml2
+Substitute: python3-libxml2-python python3-libxml2
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+# Prefer java 8 than java 9 or 10
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
+# Fall back to Java 10, if there was no java 11 option
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fall back to Java 9, if there was no java 10 option
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# And then fall back to java 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# And then fall back to java 7 bootstrap if needed
+# Prefer: java-1_7_0-bootstrap java-1_7_0-bootstrap-devel java-1_7_0-bootstrap-javadoc java-1_7_0-bootstrap-headless
+Substitute: java2-devel-packages java-devel
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+# have choice for perl(Perl::Critic::Freenode): perl-Perl-Critic-Community perl-Perl-Critic-Freenode
+Prefer: -perl-Perl-Critic-Freenode
+
+# FFMPEG conflict with FFMPEG-5, prefer ffmpeg version from SLE
+Prefer: ffmpeg
+
+# libglfw3 over libglfw3-wayland
+Prefer: libglfw3
+
+# have choice for texlive-genmisc texlive-random
+# have choice for texlive-genmisc texlive-nth
+Prefer: -texlive-genmisc
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# required after IBS SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# Conflict with postgresql13-devel-mini
+# Prefer: libpq5
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql14-devel-mini:this-is-only-for-build-envs
+Prefer: -postgresql13-devel-mini -postgresql12-devel-mini
+Prefer: postgresql14-devel-mini
+
+# required due to liburing2 SR#263841
+Prefer: liburing2-devel -liburing-devel
+
+# unversioned postgresql
+Prefer: postgresql postgresql-server postgresql-devel postgresql-server-devel
+
+# required to workaround libwayland-egl-devel/libwaylang-egl1 issue between Mesa(SUSE:SLE-15:Update) and wayland(SUSE:SLE-15-SP2:GA)
+Substitute: libwayland-egl-devel wayland-devel
+
+# xerces-j2-xml-apis/resolver has been obsoleted but in SP0
+Substitute: xerces-j2-xml-apis xml-commons-apis
+Substitute: xerces-j2-xml-resolver xml-commons-resolver
+
+# have choice for python3-Sphinx >= 1.0.1: python3-Sphinx python3-Sphinx_4_2_0
+Prefer: python3-Sphinx
+
+# have choice for systemd-container needed by libvirt-daemon-driver-qemu: systemd-container systemd-mini-container
+Prefer: systemd-mini-container
+
+# ECO-3147 added a new package which opened several installation choices
+Prefer: -libboost_atomic_legacy -libboost_container_legacy -libboost_context_legacy -libboost_coroutine_legacy -libboost_system_legacy -libboost_thread_legacy -libboost_date_time_legacy
+Prefer: -libboost_fiber_legacy -libboost_filesystem_legacy -libboost_graph_legacy -libboost_iostreams_legacy -libboost_locale_legacy -libboost_log_legacy -libboost_math_legacy
+Prefer: -libboost_program_options_legacy -libboost_random_legacy -libboost_regex_legacy -libboost_serialization_legacy -libboost_signals_legacy -libboost_stacktrace_legacy
+Prefer: -libboost_test_legacy -libboost_timer_legacy -libboost_type_erasure_legacy -libboost_wave_legacy
+
+# IBS is pulling in the outdated txt2tags instead of python3-txt2tags to build thunderbolt-user-space (bsc#1196688) 
+Substitute: txt2tags python3-txt2tags
+
+# svrcore has been merged to 389-ds
+Substitute: svrcore-devel 389-ds-devel
+
+# qhull-devel (SLE) and qhull_r-devel
+Substitute: qhull-devel qhull_r-devel
+
+# openSUSE -> SLE magic so many environments can work
+Substitute: desktop-data-openSUSE-extra desktop-data-SLE-extra
+Substitute: desktop-data-openSUSE desktop-data-SLE
+Substitute: openSUSE-release sles-release
+Substitute: wallpaper-branding-openSUSE wallpaper-branding-SLE
+
+
+%ifarch s390x
+Substitute: glibc-devel-32bit
+Substitute: glibc-32bit
+Substitute: glibc-devel-static-32bit
+Substitute: gcc-32bit
+Substitute: gcc-ada-32bit
+Substitute: gcc-c++-32bit
+%endif
+
+
+%define skip_python2 1
+%define _without_python2 1
+
+Macros:
+## PYTHON MACROS BEGIN
+# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
+# making it the "default" in many cases --> keep the primary python3 provider at the end.
+%pythons %{?!skip_python3:python3}
+%add_python() %{expand:%%define pythons %1 %pythons}
+
+# requested by Scott
+%python_module_iter(a:) %{expand:%%define python %{-a*}} ( %python-%args ) %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}%%{?python_module_iter_%1}}
+# pseudo-undefine for obs: reset for the next expansion within the next call of python_module
+%python_module_iter_STOP %global python %%%%python
+%python_module() %{?!python_module_lua:%{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}}%{?python_module_lua:%python_module_lua %{**}}
+
+%skip_python2 1
+%_without_python2 1
+:Macros
+
+
+# END PYTHON STUFF
+
+%define is_opensuse  1
+%define is_backports 1
+# I doubt this should set to 1 - maxlin
+# %define _with_mono   1
+
+Macros:
+%is_opensuse  1
+%is_backports 1
+%opensuse_bs  1
+# define which llvm package builds the system libraries
+%product_libs_llvm_ver 15
+:Macros
+
+### from openSUSE:Leap:15.5
+%define _repository standard
+
+Macros:
+%distribution openSUSE:Leap:15.5
+:Macros
+
+
+Release: <CI_CNT>.<B_CNT> spec:lp155.<CI_CNT>.<B_CNT>
+
+# uncomment before RC phase to get aaa_base-malloccheck etc.
+# make sure to rebuild patterns-base and skelcd-openSUSE
+%define _with_betatest 1
+Macros:
+%_with_betatest 1
+:Macros
+
+#
+# product building setup
+#
+#Substitute: kiwi-packagemanager:instsource product-builder-plugin-openSUSE
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
+
+# debug tools for local osc debugging
+Substitute: obs:cli_debug_packages gdb vim strace less rzsz
+
+# do not pull rpmlint-Factory-strict unless openSUSE:Leap:15.3
+# not sure this would work as my expectation - maxlin
+Support: !rpmlint-Factory-strict
+
+# temporary for bootstrap
+# Support: !rpmlint-mini !rpmlint-Factory !rpmlint-Factory-strict
+
+Support: !rpmlint-backports
+Support: perl build-mkbaselibs
+Prefer:  build-mkbaselibs
+Support: brp-check-suse
+Support: post-build-checks rpmlint-Factory
+
+# bsc#1182698
+Preinstall: rpm-config-SUSE
+
+FileProvides: /usr/bin/pkexec pkexec
+
+# comment out lines below for docker images
+# Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini !postgresql13-devel-mini
+# Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gettext-runtime-mini !postgresql13-devel-mini
+# Substitute: kiwi python3-kiwi
+
+Substitute: build-packages:iso !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !postgresql13-devel-mini
+
+### required change for opensuse-leap-dnf-image
+# Workaround obs-build substitution error by requesting both for either unsatisfied provides
+Substitute: kiwi-packagemanager:dnf dnf microdnf
+Substitute: kiwi-packagemanager:microdnf microdnf dnf
+# For microdnf glib2 stuff
+Prefer: libgio-2_0-0:dbus-1
+
+Prefer: libasan6
+
+Prefer: -SLES_BCL-release -SLES_SAP-release -SLE_HPC-release -SLE_RT-release -SUSE-Manager-Proxy-release -SUSE-Manager-Retail-Branch-Server-release -SUSE-Manager-Server-release -sled-release -unified-installer-release
+
+### Branding related preferences
+Prefer: distribution-logos-openSUSE-Leap
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: lxde-common:lxde-common-branding-openSUSE
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager:NetworkManager-branding-openSUSE
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: wallpaper-branding-openSUSE
+# Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+# Prefer: xfce4-settings:xfce4-settings-branding-upstream
+# Prefer: xfdesktop:xfdesktop-branding-upstream
+# Prefer: libxfce4ui:libxfce4ui-branding-upstream
+# Prefer: libexo-1-0:libexo-1-0-branding-upstream
+# Prefer: libgarcon-1-0:libgarcon-branding-upstream
+# Prefer: libgarcon-data:libgarcon-branding-upstream
+# Prefer: exo-data:exo-branding-upstream
+Prefer: exo-data:exo-branding-openSUSE
+Prefer: libexo-1-0:libexo-1-0-branding-openSUSE
+Prefer: libgarcon-1-0:libgarcon-branding-openSUSE
+Prefer: libgarcon-data:libgarcon-branding-openSUSE
+Prefer: libxfce4ui:libxfce4ui-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-openSUSE
+Prefer: xfce4-settings:xfce4-settings-branding-openSUSE
+Prefer: xfdesktop:xfdesktop-branding-openSUSE
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+Prefer: gnome-menus:gnome-menus-branding-openSUSE
+
+Prefer: openSUSE-build-key
+Prefer: -suse-build-key
+Prefer: openSUSE-release:openSUSE-release-mini
+Prefer: -sles-release -gio-branding-SLE
+Prefer: openSUSE-EULAs
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# There are multiple PK backends available. Favor the openSUSE own zypp backend
+Prefer: PackageKit-backend-zypp
+
+# Revert SLE change
+Ignore: !pciutils:pciutils-ids
+
+# Prefer hwdata than pciutils-ids
+Prefer: -pciutils-ids
+Prefer: hwdata
+
+# Obsoleted by gnome-tweaks
+Prefer: -gnome-tweak-tool
+Prefer: -desktop-data-SLE
+
+# 32bit devel package
+Prefer: -libgnutls-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+
+# required after IBS SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# kubernetes1.18-kubeadm vs kubernetes1.17-kubeadm on kubernetes-kubeadm-provider
+Prefer: kubernetes1.18-kubeadm
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# Undo SLE specific preference
+Prefer: systemd-presets-branding-openSUSE -systemd-presets-branding-SLE -systemd-presets-branding-CAASP
+Prefer: systemd-default-settings-branding-openSUSE -systemd-default-settings-branding-SLE
+Prefer: plymouth-branding-openSUSE -plymouth-branding-SLE
+Prefer: PackageKit-branding-openSUSE -PackageKit-branding-SLE
+
+# bsc#1204657
+Prefer: distribution-logos-openSUSE-icons -systemd-icon-branding-openSUSE
+Substitute: systemd-icon-branding-openSUSE distribution-logos-openSUSE-icons
+
+# Undo these Substitles from Backports
+Substitute: desktop-data-openSUSE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-openSUSE desktop-data-openSUSE
+Substitute: openSUSE-release openSUSE-release
+Substitute: wallpaper-branding-openSUSE wallpaper-branding-openSUSE
+
+# Reverse these Substitles from Backports
+Substitute: desktop-data-SLE-extra desktop-data-openSUSE-extra
+Substitute: desktop-data-SLE desktop-data-openSUSE
+Substitute: sles-release openSUSE-release
+Substitute: wallpaper-branding-SLE wallpaper-branding-openSUSE
+
+# Prefer coreutils over coreutils-single
+Prefer: -coreutils-single
+
+
+%define suse_version 1500
+%define sle_version 150500
+%define is_opensuse 1
+
+Macros:
+%suse_version 1500
+%sle_version 150500
+%is_opensuse 1
+%is_backports 0
+
+# define which llvm package builds the system libraries
+%product_libs_llvm_ver 15
+
+%sles_version 0
+%_vendor suse
+:Macros
+
+
+Macros:
+%_obs_cpu_flag_exclude yes
+
--- build-20160629.orig/configs/sle15.0.conf
+++ build-20160629/configs/sle15.0.conf
@@ -0,0 +1,884 @@
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+Prefer: cdrkit-cdrtools-compat genisoimage
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: iproute2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: -curl-mini -libcurl-mini-devel -libcurl4-mini
+
+#Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+%define is_susecaasp 1
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+%is_susecaasp 1 
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sle15.1.conf
+++ build-20160629/configs/sle15.1.conf
@@ -0,0 +1,884 @@
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+Prefer: cdrkit-cdrtools-compat genisoimage
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: iproute2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: -curl-mini -libcurl-mini-devel -libcurl4-mini
+
+#Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+%define is_susecaasp 1
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+%is_susecaasp 1 
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sle15.2.conf
+++ build-20160629/configs/sle15.2.conf
@@ -0,0 +1,890 @@
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+Prefer: cdrkit-cdrtools-compat genisoimage
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: iproute2
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: -curl-mini -libcurl-mini-devel -libcurl4-mini
+
+#Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150200
+
+%define is_susecaasp 1
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150200
+%is_susecaasp 1 
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sle15.3.conf
+++ build-20160629/configs/sle15.3.conf
@@ -0,0 +1,890 @@
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+Prefer: cdrkit-cdrtools-compat genisoimage
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMInstall: iproute2
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: perl
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: kiwi:curl-mini
+Conflict: kiwi:libudev-mini1
+Conflict: kiwi:systemd-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: -curl-mini -libcurl-mini-devel -libcurl4-mini
+
+#Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150300
+
+%define is_susecaasp 1
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150300
+%is_susecaasp 1 
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
--- build-20160629.orig/configs/sle15.4.conf
+++ build-20160629/configs/sle15.4.conf
@@ -0,0 +1,1633 @@
+
+%define gcc_version 7
+
+Substitute: kiwi python3-kiwi
+
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: build-packages:docker python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: system-packages:docker docker kmod-compat sysvinit-tools kernel-default createrepo_c
+Substitute: kiwi python3-kiwi
+Substitute: system-packages:mock mock createrepo_c
+Substitute: system-packages:kiwi-image python3-kiwi createrepo_c tar
+
+Prefer: -python2-kiwi
+
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+Prefer: rpm
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/msgfmt gettext-runtime
+FileProvides: /usr/bin/python3 python3-base
+FileProvides: /sbin/mkinitrd dracut
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMinstall: iproute2 libmnl0
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# the basic stuff
+Support: pam-modules
+Support: hostname
+Support: perl build-mkbaselibs
+Prefer: build-mkbaselibs
+
+Support: brp-check-suse post-build-checks rpmlint-Factory
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+Conflict: python3-kiwi:krb5-mini
+Conflict: python3-kiwi:gettext-tools-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+# END RUST STUFF
+
+Prefer: systemd-presets-branding-SLE
+
+# the old python-msgpack-python should be dropped, but salt
+# is still requires the old name
+Prefer: python3-msgpack
+
+%ifarch s390
+Ignore: python2-numpy-devel:openblas-devel
+Ignore: python3-numpy-devel:openblas-devel
+%endif
+
+Prefer: -openssl-1_0_0
+
+Buildflags: useccache:ceph
+
+Support: python-rpm-macros
+
+Prefer: ImageMagick-config-7-upstream
+
+Prefer: chrony-pool-suse
+
+Prefer: pciutils-ids
+
+Prefer: -libcurl4-mini
+Prefer: cmake3-full
+
+Macros:
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 11
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+# The following shlibs have the latest version  built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+# The following shlibs have the latest version built from GCC 9 sources
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libgo14 9
+# The following shlibs have the latest version built from GCC 10 sources
+%product_libs_gcc_ver_libgphobos1 10
+%product_libs_gcc_ver_libgdruntime1 10
+%product_libs_gcc_ver_libgo16 10
+
+:Macros
+
+# After the build 20200723 update .pc files are also in 32bit packages causing have-choice
+Prefer: -alsa-devel-32bit
+Prefer: -atk-devel-32bit
+Prefer: -atkmm1_6-devel-32bit
+Prefer: -at-spi2-core-devel-32bit
+Prefer: -at-spi-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -augeas-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -cairo-devel-32bit
+Prefer: -cairomm1_0-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -cppunit-devel-32bit
+Prefer: -cyrus-sasl-devel-32bit
+Prefer: -dbus-1-devel-32bit
+Prefer: -dbus-1-glib-devel-32bit
+Prefer: -device-mapper-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -flac-devel-32bit
+Prefer: -fontconfig-devel-32bit
+Prefer: -freetype2-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -glu-devel-32bit
+Prefer: -gstreamer-devel-32bit
+Prefer: -gstreamer-plugins-base-devel-32bit
+Prefer: -gtk2-devel-32bit
+Prefer: -gtk3-devel-32bit
+Prefer: -hunspell-devel-32bit
+Prefer: -ImageMagick-devel-32bit
+Prefer: -libart_lgpl-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -libbasicobjects-devel-32bit
+Prefer: -libblkid-devel-32bit
+Prefer: -libbz2-devel-32bit
+Prefer: -libcelt-devel-32bit
+Prefer: -libcollection-devel-32bit
+Prefer: -libcom_err-devel-32bit
+Prefer: -libcurl-devel-32bit
+Prefer: -libdhash-devel-32bit
+Prefer: -libdmx-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -libelf-devel-32bit
+Prefer: -libexif-devel-32bit
+Prefer: -libexpat-devel-32bit
+Prefer: -libext2fs-devel-32bit
+Prefer: -libfontenc-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libgck-devel-32bit
+Prefer: -libgcr-devel-32bit
+Prefer: -libglvnd-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libgphoto2-devel-32bit
+Prefer: -libHX-devel-32bit
+Prefer: -libICE-devel-32bit
+Prefer: -libicu-devel-32bit
+Prefer: -libini_config-devel-32bit
+Prefer: -libjack-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -liblbxutil-devel-32bit
+Prefer: -liblcms2-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libmount-devel-32bit
+Prefer: -libnettle-devel-32bit
+Prefer: -libnl3-devel-32bit
+Prefer: -libnotify-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libqt5-qtconnectivity-devel-32bit
+Prefer: -libqt5-qtdeclarative-devel-32bit
+Prefer: -libqt5-qtlocation-devel-32bit
+Prefer: -libqt5-qtmultimedia-devel-32bit
+Prefer: -libqt5-qtserialport-devel-32bit
+Prefer: -libqt5-qtsvg-devel-32bit
+Prefer: -libqt5-qttools-devel-32bit
+Prefer: -libqt5-qtwayland-devel-32bit
+Prefer: -libqt5-qtwebchannel-devel-32bit
+Prefer: -libqt5-qtwebsockets-devel-32bit
+Prefer: -libqt5-qtx11extras-devel-32bit
+Prefer: -libqt5-qtxmlpatterns-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libraw1394-devel-32bit
+Prefer: -libref_array-devel-32bit
+Prefer: -libSDL2-devel-32bit
+Prefer: -libSDL-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSM-devel-32bit
+Prefer: -libsoup-devel-32bit
+Prefer: -libtasn1-devel-32bit
+Prefer: -libtiff-devel-32bit
+Prefer: -libusb-1_0-devel-32bit
+Prefer: -libuuid-devel-32bit
+Prefer: -libv4l-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libvdpau-devel-32bit
+Prefer: -libverto-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -libvorbis-devel-32bit
+Prefer: -libwayland-egl-devel-32bit
+Prefer: -libwebp-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libXau-devel-32bit
+Prefer: -libXaw3d-devel-32bit
+Prefer: -libXaw-devel-32bit
+Prefer: -libxcb-devel-32bit
+Prefer: -libXcomposite-devel-32bit
+Prefer: -libXcursor-devel-32bit
+Prefer: -libXdamage-devel-32bit
+Prefer: -libXdmcp-devel-32bit
+Prefer: -libXext-devel-32bit
+Prefer: -libXfixes-devel-32bit
+Prefer: -libXfont2-devel-32bit
+Prefer: -libXfontcache-devel-32bit
+Prefer: -libXfont-devel-32bit
+Prefer: -libXft-devel-32bit
+Prefer: -libXi-devel-32bit
+Prefer: -libXinerama-devel-32bit
+Prefer: -libxkbcommon-devel-32bit
+Prefer: -libxkbcommon-x11-devel-32bit
+Prefer: -libxkbfile-devel-32bit
+Prefer: -libxml2-devel-32bit
+Prefer: -libXmu-devel-32bit
+Prefer: -libXp-devel-32bit
+Prefer: -libXpm-devel-32bit
+Prefer: -libXprintUtil-devel-32bit
+Prefer: -libXrandr-devel-32bit
+Prefer: -libXrender-devel-32bit
+Prefer: -libXres-devel-32bit
+Prefer: -libxslt-devel-32bit
+Prefer: -libXss-devel-32bit
+Prefer: -libXt-devel-32bit
+Prefer: -libXtst-devel-32bit
+Prefer: -libXv-devel-32bit
+Prefer: -libXvMC-devel-32bit
+Prefer: -libXxf86dga-devel-32bit
+Prefer: -libXxf86misc-devel-32bit
+Prefer: -libXxf86vm-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGLESv2_CM-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -ncurses-devel-32bit
+Prefer: -NetworkManager-devel-32bit
+Prefer: -openal-soft-devel-32bit
+Prefer: -openjpeg-devel-32bit
+Prefer: -pango-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -tslib-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -wayland-devel-32bit
+Prefer: -xcb-util-devel-32bit
+Prefer: -xcb-util-image-devel-32bit
+Prefer: -xcb-util-keysyms-devel-32bit
+Prefer: -xcb-util-renderutil-devel-32bit
+Prefer: -xcb-util-wm-devel-32bit
+Prefer: -xz-devel-32bit
+Prefer: -zlib-devel-32bit
+Prefer: -zvbi-devel-32bit
+
+Prefer: libboost_thread1_66_0
+Prefer: libboost_system1_66_0
+Prefer: libboost_regex1_66_0
+Prefer: libboost_filesystem1_66_0
+Prefer: libboost_iostreams1_66_0
+Prefer: libboost_date_time1_66_0
+
+Prefer: -libsmartcols-devel-32bit
+Prefer: -krb5-devel-32bit
+Prefer: -lzo-devel-32bit
+Prefer: -liboping-devel-32bit
+Prefer: -unixODBC-devel-32bit
+Prefer: -libcmocka-devel-32bit
+
+# ro added 20220207 requested by dmueller
+Prefer: -samba-devel-32bit
+Prefer: -libqt5-qtscript-devel-32bit
+
+FileProvides: /usr/bin/host bind-utils
+
+Substitute: system-packages:podman kmod kernel-default podman buildah createrepo_c
+
+Prefer: libyui-ncurses9 
+Prefer: libyui-ncurses-pkg9 libyui-qt9 libyui-qt-graph9 libyui-qt-pkg9
+Prefer: samba-libs-python3
+Ignore: !pciutils:pciutils-ids
+Prefer: kernel-default
+Ignore: multipath-tools:kmod(dm-multipath),kmod(dm-multipath),kmod(scsi_dh_emc),kmod(scsi_dh_rdac),kmod(scsi_dh_alua)
+Prefer: python2-configparser
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !gio-branding-upstream
+
+######### JAVA
+# FATE#326347
+# First we need to de-prefer the java versions prefered in the SLE-15:GA prj Config:
+Prefer: -java-10-openjdk -java-10-openjdk-devel -java-10-openjdk-javadoc -java-10-openjdk-headless
+Prefer: -java-1_8_0-openjdk -java-1_8_0-openjdk-devel -java-1_8_0-openjdk-javadoc -java-1_8_0-openjdk-headless
+Prefer: -java-1_7_0-openjdk -java-1_7_0-openjdk-devel -java-1_7_0-openjdk-javadoc -java-1_7_0-openjdk-headless
+
+# Now we set the prefered Java version, but need fallbacks for some packages:
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+
+# It might be better to 'de-prefer' the "old" ones, and omit the line above
+# according to Adrian. This needs some testing.
+# Unfortuantely this will bite us when packages require an old java
+
+# 8 before 10 on advice of fstrba
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# don't use that - fstrba 
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+# 15:GA has Prefer:go which will set the default to th eunverisoned go.
+# some packages stumble over "have choice for go >= 1.11: go1.11 go1.12", this will prevent this.
+# go1.12 is taken from 15:Update
+Prefer: go1.12
+
+
+# avoid the SP0 slurm 18.8 variants in SP1
+Prefer: slurm libpmi0 slurm-config slurm-node slurm-plugins
+
+# prefer one of the python-pytests. Marcus 20200512
+Prefer: python-pytest4 python2-pytest4 python3-pytest4
+
+# have conflict ebtween python3-pycrypto and python3-pycryptodome
+Prefer: python3-pycryptodome
+
+# prefer go1.14 (over go1.13). Gustavo 20200514
+# this breaks caasp Marcus 20200515
+#Prefer: go1.14
+
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+Prefer: enchant-2-backend-hunspell
+
+Macros:
+%sle_version 150200
+
+######### gcc9
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 9
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+# The following shlibs have the latest version built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+######### end of gcc9
+
+:Macros
+
+# Prefer over libyui9* from SP1-GA
+Prefer: libyui11
+Prefer: libyui-ncurses11
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg11 libyui-qt11 libyui-qt-graph11 libyui-qt-pkg11
+Substitute: libyui libyui11
+Substitute: libyui-ncurses libyui-ncurses11
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg11
+Substitute: libyui-qt libyui-qt11
+Substitute: libyui-qt-graph libyui-qt-graph11
+Substitute: libyui-qt-pkg libyui-qt-pkg11
+
+# Help with the switch to the gcc9 provided libs: (bsc#1154695)
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+# Needed after SR#203451 and SR#204957
+Substitute: infiniband-diags-devel rdma-core-devel
+
+# Needed after SR#205137
+Prefer: python3-pycryptodome
+# Needed after GNOME 3.34 rebase
+Prefer: libvala-0_46-devel
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+# required by u-boot (SR#205959) in order to build the full multiboot set plus eventual additional packages:
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+# use rpm by default to build, instead of rpm-ndb
+Prefer: rpm
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+# needed due to udisk devel package name changeinstallcheck: ignore rpm-ndb slurm-cray slurm-hdf5 slurm-slurmdbd slurm-webdoc setools-gui
+Prefer: libudisks2-0-devel
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Cmake exists as a -mini flavor, which is not linked against curl.
+Prefer: cmake-mini
+
+# needed due to SR#213548
+Prefer: ocaml-compiler-libs-devel
+
+# required after SR#214781
+Prefer: python2-contextlib2
+
+# Required after SR#215195
+Prefer: chrony-pool-suse
+
+%ifarch i586
+# required after MU#13672 / SR#208944 (slurm_18_08)
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+# required after MU#14605 / SR#215186 (python3-azuremetadata)
+Substitute: azuremetadata python3-azuremetadata
+
+# required after changes form the weekend of April 26
+Prefer: python3-pytest
+Prefer: python2-pytest
+
+# required after CTLG for PackageKit, which introduced dnf
+Prefer: PackageKit-backend-zypp
+
+# required after SR#214474
+Prefer: python2-subprocess32
+
+### from SUSE:SLE-15-SP2:Update
+%define _repository snapshot-SP4
+# define a prefix for all package builds in SLE 15 SP3 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220117
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+# have choice for python2-pycrypto needed by python2-oauth2client: python2-pycrypto python2-pycryptodome 20200916 - gboiko
+Prefer: python2-pycrypto
+
+# avoid have choice for pkgconfig(gnutls): libgnutls-devel libgnutls-devel-32bit
+Prefer: libgnutls-devel
+
+# qt5 prefers (32bit mess)
+Prefer: libQt5Test-devel libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel libQt5PrintSupport-devel libQt5Concurrent-devel
+
+# have choice for pkgconfig(bluez): bluez-devel bluez-devel-32bit (32bit mess)
+Prefer: bluez-devel
+
+# conflict with postgresql13-devel-mini ? 
+Prefer: libpq5
+
+Prefer: gdk-pixbuf-devel
+
+# copy grub2-arm64-efi to all archs (bsc#1186565)
+%ifarch aarch64 ppc64le s390x x86_64
+ExportFilter: ^grub2-arm64-efi-.*\.rpm$ . ppc64le s390x x86_64
+%endif
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+
+# for thunderbird (nodejs >= 10 ... has 3 options)
+
+Prefer: nodejs14
+
+# we now have a cmake-full at the version of cmake3 from SUSE:SLE-15:Update, to avoid it pulling the override by defualt,
+# use this prefer change Marcus 20220201
+Prefer: -cmake3-full
+Prefer: cmake-full
+
+### from SUSE:SLE-15-SP3:GA
+%define _repository standard
+
+Macros:
+
+### from SUSE:SLE-15-SP3:GA
+
+%_repository standard
+:Macros
+# COMMON BEGIN common part
+%define sle_version 150300
+Macros:
+%sle_version 150300
+:Macros
+
+# Prefer later so_version of libyui* over libyui*8 (SP0), libyui*9 (SP1) and libyui*11 (SP2)
+Prefer: -libyui8 -libyui-ncurses8 -libyui-ncurses-pkg8 -libyui-qt8 -libyui-qt-graph8 -libyui-qt-pkg8
+Prefer: -libyui9 -libyui-ncurses9 -libyui-ncurses-pkg9 -libyui-qt9 -libyui-qt-graph9 -libyui-qt-pkg9
+Prefer: -libyui11 -libyui-ncurses11 -libyui-ncurses-pkg11 -libyui-qt11 -libyui-qt-graph11 -libyui-qt-pkg11 -libyui-ncurses-rest-api11 -libyui-qt-rest-api11
+
+# Revert substitutions from SP2
+Substitute: libyui libyui
+Substitute: libyui-ncurses libyui-ncurses
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg
+Substitute: libyui-qt libyui-qt
+Substitute: libyui-qt-graph libyui-qt-graph
+Substitute: libyui-qt-pkg libyui-qt-pkg
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api
+Substitute: libyui-qt-rest-api libyui-qt-rest-api
+# required after SR#225674 / jsc#SLE-12712
+Prefer: gmmlib-devel
+
+# required after SR#225669
+Preinstall: libcrypt1
+
+# required for latest Mesa
+Prefer: libdrm-devel Mesa-libGL-devel libglvnd-devel libkms-devel Mesa-libEGL-devel libva-devel libdbusmenu-qt5-devel
+
+# required after SR#226419
+Prefer: typelib-1_0-Gst-1_0
+
+# required for latest Mesa
+Prefer: Mesa-libGLESv2-devel Mesa-libGLESv1_CM-devel
+
+# not sure why we need those
+Prefer: libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel
+
+# required after MU#16450 (gnutls)
+Prefer: libgnutls-devel
+
+# required after SR#228340
+Prefer: systemd-sysvinit
+
+# required after SR#227910 (alsa) and SR#228076 (pulseaudio)
+Prefer: alsa-devel libpulse-devel
+
+# required after SR#227917 (kernel-firmware)
+Prefer: kernel-firmware
+
+# required after SR#229310 
+Prefer: systemd-default-settings-branding-SLE
+
+Prefer: -libMagick++-devel-32bit -ImageMagick-devel-32bit -pciutils-devel-32bit
+Prefer: -libgbm-devel-32bit -device-mapper-devel-32bit
+
+# required after SR#230365 and SR#230366 
+Prefer: plymouth-branding-SLE
+
+# required after SR#228415
+Ignore: !pango-devel:cairo-devel
+
+# required after SR#228071
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+# needed after SR#236147
+Prefer: -mpg123-devel-32bit
+
+# Prefer coreutils over coreutils-single (SR#236655, bsc#1182550, jsc#SLE-13520, jsc#SLE-13756)
+Prefer: -coreutils-single
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+# COMMON END common part
+
+# due to libreoffice
+Prefer: -sane-backends-devel-32bit
+
+Prefer: -libX11-devel-32bit
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+# needed for MU#18655
+Prefer: -python3-vsts
+
+# due to MU#19157
+Prefer: -libboost_regex_legacy
+# From Fabian Vogt on 20210913 ... patterns-base-fips temporary
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+# after secondary icu version release Marcus 20211214
+
+Prefer: libicu-devel
+
+
+# gboiko, 20220202 fixing the following unresolvable:
+# have choice for libwbclient.so.0()(64bit) needed by cifs-utils: libwbclient0 samba-client-libs
+Prefer: samba-client-libs samba-devel
+
+# BEGIN RUST STUFF
+Prefer: cargo1.58 cargo1.57
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%define rust_tier1_arches x86_64 aarch64
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%rust_tier1_arches x86_64 aarch64
+:Macros
+
+# END RUST STUFF
+Prefer: -python3-cairo-devel -python2-cairo-devel -python3-gobject2-devel
+Prefer: -keyutils-devel-32bit -gtk4-devel-32bit
+
+# needed due to SR#249037
+Prefer: -libgcrypt-devel-32bit
+
+# from Factory: PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
+# needed due to SR#249799
+Prefer: php8:php8-cli
+
+# needed after php7 update (SR#255237)
+Prefer: php7:php7-cli
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# needed due to libxml2 (SR#255607)
+Prefer: -python3-libxml2-python
+Substitute: python3-libxml2-python python3-libxml2
+
+# required after SR#249636
+Prefer: -libavcodec-devel -libavfilter-devel -libavformat-devel -libavutil-devel
+
+# required after luajit SR#255872
+Prefer: -lua51-luajit-devel
+
+# required after zstd SR#256594
+Prefer: -libzstd-devel-32bit
+
+# required due to libsoup2 SR#256752
+Prefer: -libsoup2-devel-32bit
+
+Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
+
+# required due to systemd SR#258723
+Prefer: -libfdisk-devel-32bit
+
+# required after libpcap SR#249500
+# required due to umockdev SR#259947
+Prefer: -libpcap-devel-32bit
+
+# must be removed after fix for bsc#1193711 is merged
+# can also be removed in case bsc#1194749 is fully fixed
+Support: python-rpm-macros
+
+# required for suseconnect-ng replacing SUSEConnect and zypper-migration-plugin
+Prefer: -SUSEConnect
+Prefer: -zypper-migration-plugin
+
+# IBS is preferring literal matches over provides, therefore substituting with suseconnect-ng
+Substitute: SUSEConnect suseconnect-ng
+Substitute: zypper-migration-plugin suseconnect-ng
+
+# Fix fot Qt stack update
+Prefer: -libqt5-qtremoteobjects-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+# from Factory: 
+# pipewire has a jack compatible implementation - but for now we prefer the real jack
+Prefer: -pipewire-libjack-0_3-devel libjack0
+
+# required due to libyui SR#263810
+Prefer: -libyui-ncurses15 -libyui-ncurses-pkg15 -libyui-ncurses-rest-api15 -libyui-qt15 -libyui-qt-graph15 -libyui-qt-pkg15 -libyui-qt-rest-api15
+
+# required due to samba SR#262961
+Prefer: -libsmbclient0 -libwbclient0 -libsmbclient-devel -libwbclient-devel -samba-devel-32bit -libndr-krb5pac-devel -libndr-nbt-devel
+
+# required due to liburing2 SR#263841
+Prefer: -liburing2-devel
+
+# required due to php-composer2 SR#263267
+Prefer: -php7
+
+# required for systemd SR#263844
+Substitute: libudev-devel systemd-devel
+Substitute: libudev-mini-devel systemd-mini-devel
+Prefer: -libudev-mini-devel
+Prefer: -libudev-devel
+Prefer: -libudev-devel-32bit
+
+# required for some Public Cloud and JeOS flavours to correctly resolve the zypper-lifecycle-plugin
+# dependency on /usr/bin/ruby, as ruby2.5 isn't pulled in by SUSEConnect anymore.
+FileProvides: /usr/bin/ruby ruby2.5
+
+%define skip_python2 1
+%define _without_python2 1
+
+Macros:
+## PYTHON MACROS BEGIN
+# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
+# making it the "default" in many cases --> keep the primary python3 provider at the end.
+%pythons %{?!skip_python3:python3}
+%add_python() %{expand:%%define pythons %1 %pythons}
+
+%_without_python2 1
+:Macros
+
+Prefer: -python -python-base
+
+# IBS is pulling in the outdated txt2tags instead of python3-txt2tags to build thunderbolt-user-space (bsc#1196688) 
+Substitute: txt2tags python3-txt2tags
+
+# required due to bash SR#265536
+FileProvides: /bin/bash bash
+FileProvides: /bin/sh bash-sh busybox-sh
+Prefer: bash-sh
+Preinstall: bash bash-sh
+Prefer: -busybox
+# required for openblas (SR#269449)
+Prefer: -openblas-devel
+Substitute: openblas-devel libopenblas_pthreads-devel
+
--- build-20160629.orig/configs/sle15.5.conf
+++ build-20160629/configs/sle15.5.conf
@@ -0,0 +1,1811 @@
+### from SUSE:SLE-15:GA
+
+%define gcc_version 7
+
+# new cycle handling
+BuildFlags: genmetaalgo:1
+
+Constraint: linux:version:min 3.0.0
+%ifarch aarch64 ppc64le %ix86 x86_64 s390 s390x ppc64le
+Constraint: sandbox secure
+%endif
+%ifarch ppc ppc64 ppc64le
+Constraint: hardware:cpu:flag power8
+%endif
+
+# play safe, introduced 2022/10/05
+BuildFlags: kvm-max-cpu-compat-power8
+
+# create conflicts for packages installed into the target image
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: build-packages:docker python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini
+Substitute: system-packages:docker docker kmod-compat sysvinit-tools kernel-default createrepo_c
+Substitute: kiwi python3-kiwi
+Substitute: system-packages:mock mock createrepo_c
+Substitute: system-packages:kiwi-image python3-kiwi createrepo_c tar
+Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15
+Substitute: system-packages:kiwi-product product-builder
+Substitute: kiwi-packagemanager: kiwi-packagemanager:zypper
+Prefer: -python2-kiwi
+
+# s390 hacks
+%ifarch s390
+Substitute: valgrind
+Substitute: valgrind-devel
+Substitute: pkgconfig(valgrind)
+%endif
+%ifarch s390 s390x
+Substitute: libunwind-devel
+Substitute: pkgconfig(libunwind)
+%endif
+
+%ifarch s390 s390x
+Ignore: libsensors4-devel
+%endif
+
+%define _without_mono          1
+Macros:
+%_without_mono          1
+:Macros
+
+# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
+Prefer: lua53 liblua5_3-5 lua53-devel libtolua++-5_3-devel
+Prefer: -liblua5_3 -liblua5_1 -liblua5_2
+
+FileProvides: /bin/csh tcsh
+FileProvides: /bin/logger util-linux-systemd
+FileProvides: /sbin/netconfig sysconfig-netconfig
+FileProvides: /sbin/setcap libcap-progs
+FileProvides: /usr/bin/csh tcsh
+FileProvides: /usr/bin/docbook2man docbook-utils
+FileProvides: /usr/bin/eu-nm elfutils
+FileProvides: /usr/bin/fipscheck fipscheck
+FileProvides: /usr/bin/killall psmisc
+FileProvides: /usr/bin/mimencode metamail
+FileProvides: /usr/bin/mkisofs mkisofs
+FileProvides: /usr/bin/pkg-config pkg-config
+FileProvides: /usr/bin/python python-base
+FileProvides: /usr/bin/setfacl acl
+FileProvides: /usr/bin/sg_inq sg3_utils
+FileProvides: /usr/bin/tput ncurses-utils
+FileProvides: /usr/bin/xmllint libxml2-tools
+FileProvides: /usr/bin/Xvfb xorg-x11-server
+FileProvides: /usr/sbin/groupadd shadow
+FileProvides: /usr/sbin/lockdev lockdev
+FileProvides: /usr/sbin/useradd shadow
+FileProvides: /usr/sbin/usermod shadow
+FileProvides: /usr/bin/msgfmt gettext-runtime
+FileProvides: /usr/bin/python3 python3-base
+# Recommended by Adrian Schroeter:
+# causes a cycle :(
+# FileProvides: /sbin/mkinitrd dracut
+
+
+Preinstall: aaa_base attr bash coreutils diffutils
+Preinstall: filesystem fillup glibc grep
+Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
+Preinstall: permissions libreadline7 rpm sed tar libz1 libselinux1
+Preinstall: liblzma5 libcap2 libacl1 libattr1
+Preinstall: libpopt0 libelf1 liblua5_3-5
+Preinstall: libpcre1
+
+Runscripts: aaa_base
+
+Prefer: libdb-4_8-devel
+VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 libsmartcols1
+VMinstall: kernel-obs-build
+VMinstall: iproute2 libmnl0
+
+Required: rpm-build
+# Build all packages with -pie enabled
+Required: gcc-PIE
+
+# needed for su's default config - perhaps we should use a simplified form?
+Support: pam-modules
+
+# the basic stuff
+Support: perl build-mkbaselibs
+Prefer: build-mkbaselibs
+Support: brp-check-suse post-build-checks rpmlint-Factory
+# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost)
+Support: hostname
+# remove build-compare support to disable "same result" package dropping
+# (coolo) removed to get fresh build times Support: build-compare
+# Extracting appdata.xml from desktop files
+Support: brp-extract-appdata
+# Translations
+Support: brp-extract-translations
+# enforce valid license
+Support: rpmlint-Factory-strict
+
+# testing deltas (only for O:F for now!)
+#Support: build-mkdrpms deltarpm
+
+%ifarch ia64
+Support: libunwind libunwind-devel
+Preinstall: libunwind
+%endif
+Prefer: -openSUSE-build-key
+
+# SLES_SAP-installation-release is a strange package, which provides
+# sles-release, and this solves a 'have choice' from SLES_SAP-release
+# investigation if the package can be handled differently is ongoing
+Prefer: -SLES_SAP-installation-release 
+
+# rescue-server should use the SLES installation-images for now
+Prefer: -installation-images-CAASP -installation-images-SLED -installation-images-SLES_SAP
+
+### Branding related preferences
+Prefer: awesome:awesome-branding-upstream
+Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE
+Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
+Prefer: enlightenment-theme-upstream
+Prefer: exo-data:exo-branding-upstream
+Prefer: fcitx:fcitx-branding-openSUSE
+Prefer: gdm:gdm-branding-upstream
+Prefer: gfxboot-branding-openSUSE -gfxboot-branding-basedonopensuse
+Prefer: glib2:glib2-branding-upstream
+Prefer: gnome-panel:gnome-panel-branding-upstream
+Prefer: gnome-session:gconf2-branding-openSUSE
+Prefer: gnome-session:gnome-session-branding-openSUSE
+Prefer: icewm-theme-branding
+Prefer: kde4-kdm:kde4-kdm-branding-upstream
+Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream
+Prefer: kdelibs4-branding:kdelibs4-branding-upstream
+Prefer: kdelibs4:kdelibs4-branding-upstream
+Prefer: kdm:kdm-branding-upstream
+Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
+Prefer: libexo-1-0:libexo-1-0-branding-upstream
+Prefer: libgarcon-1-0:libgarcon-branding-upstream
+Prefer: libgarcon-data:libgarcon-branding-upstream
+Prefer: libgio-2_0-0:gio-branding-upstream
+Prefer: libglib-2_0-0:glib2-branding-upstream
+Prefer: libpurple-branding-upstream
+Prefer: libreoffice:libreoffice-branding-upstream
+Prefer: libsocialweb:libsocialweb-branding-upstream
+Prefer: libxfce4ui:libxfce4ui-branding-upstream
+Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
+Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
+Prefer: NetworkManager-branding-upstream
+Prefer: PackageKit:PackageKit-branding-upstream
+Prefer: plasma5-desktop:plasma5-desktop-branding-upstream
+Prefer: plasma5-workspace:plasma5-workspace-branding-upstream
+Prefer: sddm:sddm-branding-upstream
+Prefer: systemd-presets-branding-SLE
+Prefer: wallpaper-branding-openSUSE
+Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
+Prefer: xfce4-settings:xfce4-settings-branding-upstream
+Prefer: xfdesktop:xfdesktop-branding-upstream
+Prefer: yast2-branding-openSUSE
+Prefer: yast2-qt:yast2-qt-branding-openSUSE
+Prefer: yast2-theme-openSUSE
+
+# Build cycle handling - prefer -mini packages were possible, break deps as needed
+
+Conflict: krb5-devel:krb5-mini
+Conflict: krb5:krb5-mini-devel
+
+# for images repo we rely purely on substitute: build-packages:kiwi
+%if "%_repository" != "images"
+Prefer: gettext-tools-mini gettext-runtime-mini
+Prefer: ghostscript-mini
+Prefer: krb5-mini-devel:krb5-mini
+Prefer: krb5-mini krb5-mini-devel
+Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
+Prefer: libunbound-devel-mini
+Prefer: log4j-mini
+Prefer: systemd-mini-devel:systemd-mini
+Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
+Prefer: udev-mini libcom_err2-mini libext2fs2-mini
+Prefer: -harfbuzz-bootstrap -harfbuzz-bootstrap-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: erlang-rebar-obs:this-is-only-for-build-envs
+Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
+Ignore: jdk-bootstrap:this-is-only-for-build-envs
+Ignore: libsystemd0-mini:this-is-only-for-build-envs
+Ignore: libudev-mini1:this-is-only-for-build-envs
+Ignore: libunbound-devel-mini:this-is-only-for-build-envs
+Ignore: systemd-mini:this-is-only-for-build-envs
+Ignore: udev-mini:this-is-only-for-build-envs
+Ignore: curl-mini:this-is-only-for-build-envs
+Ignore: libcurl-mini-devel:this-is-only-for-build-envs
+Ignore: libcurl4-mini:this-is-only-for-build-envs
+%endif
+
+# Ring0 packages should not pull in 'info' - making the base VM smaller
+Ignore: binutils:info
+Ignore: bison:info
+Ignore: coreutils:info
+Ignore: cpio:info
+Ignore: diffutils:info
+Ignore: findutils:info
+Ignore: flex:info
+Ignore: gawk:info
+Ignore: gettext-runtime:info
+Ignore: gettext-tools:info
+Ignore: grep:info
+Ignore: groff:info
+Ignore: gzip:info
+Ignore: help2man:info
+Ignore: libgcrypt-devel:info
+Ignore: m4:info
+Ignore: make:info
+Ignore: sed:info
+Ignore: tar:info
+Ignore: util-linux:info
+Ignore: which:info
+
+# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
+Ignore: Mesa:Mesa-dri
+Ignore: Mesa:Mesa-gallium
+
+# When kiwi comes into play, we do not want the -mini packages; -mini does not target end user systems
+Conflict: python3-kiwi:curl-mini
+Conflict: python3-kiwi:libudev-mini1
+Conflict: python3-kiwi:systemd-mini
+Conflict: python3-kiwi:krb5-mini
+Conflict: python3-kiwi:gettext-tools-mini
+
+# udev: -full and -mini packages don't mingle well
+Prefer: libudev1:udev
+Conflict: libudev1:udev-mini
+Conflict: udev:libudev-mini1
+
+# systemd: -full and -mini packages don't mingle well
+Conflict: systemd:libsystemd0-mini
+Conflict: systemd-mini-devel:systemd
+
+# curl: there is a -mini package to bootstrap and a full; some programs decide on what they want to build in based on what curl can do, so let's prefer full curl
+Prefer: cmake:libcurl4-mini
+Prefer: curl libcurl-devel libcurl4
+
+Prefer: -openSUSE-build-key
+# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
+Prefer: postfix
+# Give the worker any default apache2-MPM for apache2- chosing 'prefork' (alternatives are -event and -worker, dep-wise they are equal)
+
+# prefer the PHP5 variants over PHP7
+Prefer: php5-ctype
+Prefer: php5-devel
+Prefer: php5-dom
+Prefer: php5-ftp
+Prefer: php5-gd
+Prefer: php5-gettext
+Prefer: php5-mbstring
+Prefer: php5-pear
+Prefer: php5-pear-Archive_Tar
+Prefer: php5-pear-Horde
+Prefer: php5 php5-json
+Prefer: php5-tokenizer
+Prefer: php5-zip
+
+# go exists in mutliple versions by now - we prefer the 'unversioned package'
+Prefer: go
+
+# python([23])-pep8 is provided by python\1-pep8 and python\1-pycodestyle - favoring 'the real one'
+Prefer: python2-pep8 python3-pep8
+
+# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl
+Prefer: perl
+
+# Assist migration to python-pycups (python3-cups is going to be removed)
+Prefer: python3-pycups python-pycups
+
+# Apache requires a MPM - we pick prefork
+Prefer: apache2:apache2-prefork
+
+# for symbol syslog (syslogd is best as it has the least dependencies)
+Prefer: syslogd
+
+# rmt is provided by tar-rmt and star-rmt - we prefer star-rmt, which was the one in the past providing rmt
+Prefer: star-rmt
+
+# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
+Prefer: notification-daemon
+
+# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
+Prefer: dummy-release
+
+# Tumbleweed ships nodejs4 for compatibility reasons - but it's not the preferred version
+Prefer: -nodejs4
+
+# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
+Prefer: libpulse0-32bit
+
+# do not used openmpi variant to build against netcdf
+Prefer: netcdf-devel
+
+# Below list still needs to be reviewed
+
+Prefer: xorg-x11-Xvnc:icewm
+Prefer: cracklib-dict-small
+Prefer: libstdc++6 libgcc_s1 libquadmath0
+Prefer: libstdc++6-32bit libstdc++6-64bit
+Prefer: libstdc++6-x86
+Prefer: libmpx2 libmpxwrappers2 libmpx2-32bit libmpxwrappers2-32bit
+%ifarch s390x
+Prefer: -libstdc++41
+%endif
+Prefer: syslog-service
+Prefer: poppler-tools
+Prefer: libjpeg8-devel libjpeg-turbo
+Prefer: microcode_ctl:kernel-default
+Prefer: gnu-jaf yast2-control-center-qt
+Prefer: vim-normal myspell-american wine
+Prefer: amarok:amarok-xine
+Prefer: kdenetwork3-vnc:tightvnc
+Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_2-api tomcat-jsp-2_3-api tomcat-servlet-2_5-api
+Prefer: -dbus-1-nox11
+Prefer: -servletapi3 -servletapi4 -servletapi5
+Prefer: icewm-lite
+Prefer: yast2-ncurses-pkg
+Prefer: monodevelop: mono-addins
+Prefer: texlive-xmltex texlive-tools texlive-jadetex
+Prefer: libesd-devel:esound
+Prefer: libesd0:esound-daemon
+Prefer: package-lists-openSUSE-KDE-cd: esound-daemon
+Prefer: librest-0_7-0
+
+Prefer: rhino:xmlbeans-mini
+Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -java-1_5_0-gcj-compat -geronimo-jta-1_1-api classpathx-mail
+Prefer: mx4j:log4j-mini
+
+Prefer: rpcbind  eclipse-source
+Prefer: libcdio_cdda0 libcdio_paranoia0
+Prefer: boo tog-pegasus
+Prefer: sysvinit(network) wicked-service
+Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd
+Prefer: kdebase4-openSUSE:kdebase4-workspace
+Prefer: ant:xerces-j2
+Prefer: dhcp-client:dhcp
+Prefer: libGLw1
+# provides typelib(St)
+Prefer: -cinnamon
+Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es
+Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt -bundle-lang-kde-el
+Prefer: -bundle-lang-kde-zh -bundle-lang-kde-ja -bundle-lang-kde-ru -bundle-lang-kde-pl
+Prefer: -bundle-lang-kde-sv -bundle-lang-kde-ko -bundle-lang-kde-fi -bundle-lang-kde-da
+Prefer: -bundle-lang-kde-cs -bundle-lang-kde-nl -bundle-lang-kde-hu -bundle-lang-kde-nb
+Prefer: -bundle-lang-kde-it -bundle-lang-kde-ca -bundle-lang-kde-ar
+Prefer: -bundle-lang-gnome-es -bundle-lang-gnome-de -bundle-lang-gnome-fr
+Prefer: -bundle-lang-gnome-pt -bundle-lang-gnome-en -bundle-lang-gnome-el
+Prefer: -bundle-lang-gnome-zh -bundle-lang-gnome-ja -bundle-lang-gnome-ru -bundle-lang-gnome-cs
+Prefer: -bundle-lang-gnome-ko -bundle-lang-gnome-da -bundle-lang-gnome-nl -bundle-lang-gnome-hu
+Prefer: -bundle-lang-gnome-pl -bundle-lang-gnome-fi -bundle-lang-gnome-nb -bundle-lang-gnome-sv
+Prefer: -bundle-lang-gnome-it -bundle-lang-gnome-ca -bundle-lang-gnome-ar
+Prefer: -bundle-lang-gnome-extras-es -bundle-lang-gnome-extras-de -bundle-lang-gnome-extras-fr
+Prefer: -bundle-lang-gnome-extras-pt -bundle-lang-gnome-extras-en -bundle-lang-gnome-extras-el
+Prefer: -bundle-lang-gnome-extras-zh -bundle-lang-gnome-extras-ja -bundle-lang-gnome-extras-ru -bundle-lang-gnome-extras-cs
+Prefer: -bundle-lang-gnome-extras-ko -bundle-lang-gnome-extras-da -bundle-lang-gnome-extras-nl -bundle-lang-gnome-extras-hu
+Prefer: -bundle-lang-gnome-extras-pl -bundle-lang-gnome-extras-fi -bundle-lang-gnome-extras-nb -bundle-lang-gnome-extras-sv
+Prefer: -bundle-lang-gnome-extras-it -bundle-lang-gnome-extras-ca -bundle-lang-gnome-extras-ar
+Prefer: -bundle-lang-common-es -bundle-lang-common-de -bundle-lang-common-fr
+Prefer: -bundle-lang-common-pt -bundle-lang-common-en -bundle-lang-common-el
+Prefer: -bundle-lang-common-ja -bundle-lang-common-zh -bundle-lang-common-cs -bundle-lang-common-ru
+Prefer: -bundle-lang-common-nl -bundle-lang-common-hu -bundle-lang-common-pl -bundle-lang-common-da
+Prefer: -bundle-lang-common-ko -bundle-lang-common-nb -bundle-lang-common-fi -bundle-lang-common-sv
+Prefer: -bundle-lang-common-it -bundle-lang-common-ca -bundle-lang-common-ar
+Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
+Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
+Prefer: -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links
+Prefer: -python-setuptools
+Prefer: -kdenetwork3-InstantMessenger
+Prefer: -icc-profiles
+Prefer: vala
+# in doubt, take xerces
+Prefer: -crimson
+# in doubt, take higher versions
+Prefer: -rubygem-rack-1_1 -rubygem-rack-1_2 -rubygem-rack-1_3 -rubygem-tilt-1_1 -rubygem-rack-1_4
+Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3
+Prefer: -rubygem-json_pure-1_5
+Prefer: geronimo-servlet-2_4-api
+Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi -libhdf5_hl8-openmpi -libhdf5-8-openmpi -libhdf5_hl9-openmpi -libhdf5-9-openmpi -libhdf5-10-openmpi -libhdf5_hl10-openmpi -libhdf5-11-openmpi -libhdf5_hl11-openmpi -libhdf5-100-openmpi -libhdf5_hl100-openmpi
+# python-scimpy: have choice for fftw-devel: fftw3-devel fftw3_3_3_6-gnu-hpc-devel fftw3_3_...
+Prefer: fftw3-devel
+# prefer the small systemd for building
+Prefer: star
+Prefer: xmlgraphics-commons:apache-commons-io
+# the -32bit stuff provides things it shouldn't (hopefully temporary)
+Prefer: -typelib-1_0-GdkPixbuf-2_0-32bit -typelib-1_0-Pango-1_0-32bit -glib2-devel-32bit
+Prefer: -typelib-1_0-GdkPixbuf-2_0-64bit -typelib-1_0-Pango-1_0-64bit -glib2-devel-64bit
+Prefer: postgresql postgresql-server postgresql-devel
+Prefer: -unzip-rcc
+Prefer: -primus -primus-32bit
+Prefer: -staging-build-key
+Prefer: -sssd-wbclient
+Prefer: -clutter-gst-devel
+Prefer: -opencv-qt5-devel
+# ffmpeg and its fork libav both provide libswscale; prefer the 'original' ffmpeg
+Prefer: -libswscale-libav-devel -libavformat-libav-devel -libavresample-libav-devel -libavcodec-libav-devel -libavdevice-libav-devel -libavfilter-libav-devel -libpostproc-libav-devel -libavutil-libav-devel
+Prefer: -ffmpeg2-devel -python-configparser2
+# as long as kactivities4 exists and is provided
+Prefer: kactivities5
+# oxygen5-icon-theme osboletes oxygen-icon-theme
+Prefer: oxygen5-icon-theme
+Prefer: npm6
+
+# kernel bug (coolo)
+Prefer: kernel-default-devel
+
+# have choice for mysql-devel: libmariadb-devel libmysqlclient-devel
+#    Prefer: libmariadb-devel 
+Prefer: libmysqlclient-devel 
+
+Prefer: wxWidgets-3_0-devel
+Prefer: libopenssl-devel
+
+Prefer: -NX -xaw3dd -db43
+Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis
+Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
+Prefer: libffi-devel
+Prefer: libatomic1 libcilkrts5 libitm1 liblsan0 libtsan0 libubsan0
+Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
+Prefer: libatomic1-64bit libcilkrts5-64bit libitm1-64bit libubsan0-64bit
+Prefer: libgcc_s1-x86 libgcj_bc1
+Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
+Prefer: libmudflap4 libmudflap4-32bit libmudflap4-64bit
+Prefer: libobjc4 libgfortran3 libquadmath0
+Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini
+Prefer: -libcdio-mini -faac-mini -libcdio-mini-devel
+Prefer: -seamonkey
+Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2
+Prefer: libopenal0-soft openal-soft -lsb-buildenv
+Prefer: -libevent
+Prefer: gnu-crypto libusb-compat-devel
+Prefer: libusb-0_1-4
+Prefer: libreoffice:xerces-j2
+Prefer: k3b:libdvdread4
+Prefer: glibc-devel
+Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4
+Prefer: NetworkManager:dhcp-client
+Prefer: kdebase3-SuSE:kdebase3
+Prefer: pcre-tools
+Prefer: libpopt0 makeinfo
+Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2
+Prefer: libgnome-keyring-devel
+Prefer: gnome-keyring-32bit
+Prefer: linux-glibc-devel
+Prefer: squid sysvinit
+Prefer: libpng16-compat-devel
+Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0
+Prefer: python3-docutils
+Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client
+#needed because new xml-commons package
+Prefer: xml-commons-resolver12 xml-commons-jaxp-1.3-apis
+Prefer: xmlgraphics-fop:xerces-j2
+Prefer: cogl-devel
+Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
+Prefer: libpsm2-compat
+# choice p11-kit-nss-trust
+Prefer: mozilla-nss-certs
+# amarok dependency resolution
+Prefer: phonon-backend-gstreamer
+# replacing mkinitrd
+Prefer: dracut
+# replacing module-init-tools
+Prefer: kmod-compat
+# Temporary
+Prefer: oxygen5-cursors
+# Temporary
+Prefer: -perl-App-cpanminus
+# libmediaart is prepared for a larger update; for now favor mediaart-1.0
+Prefer: -typelib-1_0-MediaArt-2_0
+Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0
+Prefer: -python-atspi
+Prefer: gettext-its-gtk3 gtk3-schema
+# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
+Prefer: ghostscript-devel
+# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
+Prefer: libotf-devel
+
+Ignore: installation-images-openSUSE:cracklib-dict-full
+Ignore: systemd-sysvinit:systemd
+Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
+Ignore: cracklib:cracklib-dict
+Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
+Ignore: sysvinit:mingetty
+Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
+Ignore: libgcj43,libstdc++43-devel
+Ignore: libgcj44,libstdc++44-devel
+Ignore: libgcj45,libstdc++45-devel
+Ignore: libgcj46,libstdc++46-devel
+Ignore: libgcj47,libstdc++47-devel
+Ignore: librtas:util-linux
+Ignore: pwdutils:openslp
+Ignore: rpm:suse-build-key,build-key
+Ignore: cloud-init:cloud-init-config
+# python-pyudev requires libudev1 in normal situations
+Ignore: python-pyudev:libudev1
+Ignore: python-SPARQLWrapper:python-rdflib
+Ignore: python3-SPARQLWrapper:python3-rdflib
+Ignore: bind-utils:bind-libs
+Ignore: portmap:syslogd
+Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
+Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
+Ignore: apache2:logrotate
+Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
+Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
+Ignore: kdelibs3-devel:libvorbis-devel
+Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
+Ignore: kdebase3-SuSE:release-notes
+Ignore: jack:alsa,libsndfile
+Ignore: libxml2-devel:readline-devel
+Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
+Ignore: libgda:file_alteration
+Ignore: gnutls:lzo,libopencdk
+Ignore: gnutls-devel:lzo-devel,libopencdk-devel
+Ignore: pango:cairo,glitz,libpixman,libpng
+Ignore: pango-devel:cairo-devel
+Ignore: cairo-devel:libpixman-devel
+Ignore: libgnomeprint:libgnomecups
+Ignore: libgnomeprintui:libgnomecups
+Ignore: orbit2-devel:indent
+Ignore: qt3:libmng
+Ignore: qt-sql:qt_database_plugin
+Ignore: libgnomecanvas-devel:glib-devel
+Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
+Ignore: scrollkeeper:docbook_4
+Ignore: gnome-desktop:libgnomesu,startup-notification
+Ignore: python-devel:python-tk
+Ignore: libgtk-3-0:adwaita-icon-theme
+Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
+Ignore: samba-libs:krb5
+Ignore: libbonoboui:gnome-desktop
+Ignore: libxfce4ui-1-0:exo-tools
+Ignore: docbook_4:iso_ent,xmlcharent
+Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
+Ignore: docbook-xsl-stylesheets:xmlcharent
+Ignore: liby2util-devel:libstdc++-devel,openssl-devel
+Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
+Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
+Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
+Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
+Ignore: yast2-devtools:libxslt
+Ignore: yast2-iscsi-lio-server:lio-utils
+Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
+Ignore: yast2-bootloader:bootloader-theme
+Ignore: yast2-packager:yast2-x11,libyui_pkg
+Ignore: autoyast2:yast2-schema
+# not during build
+Ignore: yui_backend
+Ignore: yast2-x11:sax2-libsax-perl
+Ignore: yast2-network:yast2-inetd
+Ignore: openslp-devel:openssl-devel
+Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
+Ignore: texlive-bin:ghostscript-x11
+Ignore: texlive-bin-omega:ghostscript-x11
+Ignore: yast2-country:yast2-trans-stats
+Ignore: tpb:tpctl-kmp
+Ignore: tpctl:tpctl-kmp
+Ignore: zaptel:zaptel-kmp
+Ignore: mkinitrd:pciutils
+Ignore: pciutils:pciutils-ids
+Ignore: postfix:iproute2
+Ignore: aaa_base:systemd
+Ignore: gpm:systemd
+Ignore: openssh:systemd
+Ignore: cronie:systemd
+Ignore: systemd:kbd
+Ignore: systemd:kmod
+Ignore: systemd:systemd-presets-branding
+Ignore: systemd:dbus-1
+Ignore: systemd:pam-config
+Ignore: systemd:udev
+Ignore: pesign:systemd
+Ignore: logrotate:cron
+Ignore: texlive-filesystem:cron
+Ignore: xinit:xterm
+Ignore: xdm:xterm
+Ignore: gnome-control-center:gnome-themes-accessibility
+
+
+Ignore: man:groff-full
+Ignore: git-core:rsync
+Ignore: apache2:systemd
+Ignore: icewm-lite:icewm
+Ignore: cluster-glue:sudo
+Ignore: libgcc:glibc-32bit
+Ignore: libgcc41:glibc-32bit
+Ignore: libgcc42:glibc-32bit
+Ignore: libgcc43:glibc-32bit
+Ignore: libgcc44:glibc-32bit
+Ignore: libgcc45:glibc-32bit
+Ignore: libgcc46:glibc-32bit
+Ignore: libgcc47:glibc-32bit
+Ignore: libstdc++:glibc-32bit
+Ignore: libstdc41++:glibc-32bit
+Ignore: libstdc42++:glibc-32bit
+Ignore: libstdc43++:glibc-32bit
+Ignore: libstdc44++:glibc-32bit
+Ignore: libstdc45++:glibc-32bit
+Ignore: libstdc46++:glibc-32bit
+Ignore: libstdc47++:glibc-32bit
+Ignore: ncurses-32bit
+
+Ignore: susehelp:susehelp_lang,suse_help_viewer
+Ignore: mailx:smtp_daemon
+Ignore: cron:smtp_daemon
+Ignore: hotplug:syslog
+Ignore: pcmcia:syslog
+Ignore: openct:syslog
+Ignore: postfix:sysvinit(syslog)
+Ignore: cups:sysvinit(syslog)
+Ignore: jython:servlet
+Ignore: ispell:ispell_dictionary,ispell_english_dictionary
+Ignore: aspell:aspel_dictionary,aspell_dictionary
+Ignore: smartlink-softmodem:kernel,kernel-nongpl
+Ignore: libreoffice-de:myspell-german-dictionary
+Ignore: libreoffice:libreoffice-i18n
+Ignore: libreoffice:libreoffice-icon-themes
+Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
+Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
+Ignore: perl-Log-Log4perl:rrdtool
+
+Ignore: simias:mono(log4net)
+Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
+
+Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
+Ignore: xdg-menu:desktop-data
+Ignore: nessus-libraries:nessus-core
+Ignore: evolution:yelp
+Ignore: e17:e17-branding e17:e17-theme
+
+Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
+Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
+
+Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
+Ignore: libcdio:libcddb.so.2
+
+Ignore: coreutils:coreutils-lang
+Ignore: cpio:cpio-lang
+Ignore: glib2:glib2-lang
+Ignore: gtk2:gtk2-lang
+Ignore: gtk:gtk-lang
+Ignore: atk:atk-lang
+Ignore: MozillaThunderbird:pinentry-dialog
+Ignore: seamonkey:pinentry-dialog
+Ignore: pinentry:pinentry-dialog
+Ignore: gpg2:gpg2-lang
+Ignore: util-linux:util-linux-lang
+Ignore: suseRegister:distribution-release
+Ignore: compiz:compiz-decorator
+Ignore: icecream:gcc-c++
+Ignore: no
+Ignore: package
+Ignore: provides
+Ignore: j9vm/libjvm.so()(64bit)
+Ignore: kdepim3:suse_help_viewer
+Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
+Ignore: kio_sysinfo:kdebase3-SuSE-branding
+Ignore: gnome-menus:gnome-menus-branding
+Ignore: epiphany:epiphany-branding
+Ignore: gnome-control-center:gnome-control-center-branding
+Ignore: phonon:phonon-backend
+Ignore: openwbem-devel
+Ignore: MozillaFirefox:MozillaFirefox-branding
+Ignore: yast2:yast2-branding
+Ignore: plymouth:plymouth-branding 
+Ignore: plymouth:suspend
+Ignore: yast2-qt:yast2-branding
+Ignore: yast2-theme-SLE:yast2-branding
+Ignore: yast2-registration:yast2-registration-branding
+Ignore: compiz:compiz-branding
+Ignore: texlive:perl-Tk texlive-bin:perl-Tk
+Ignore: xfce4-desktop:xfce4-desktop-branding
+Ignore: xfce4-panel:xfce4-panel-branding
+Ignore: xfce4-session:xfce4-session-branding
+Ignore: kdebase4-runtime:kdebase4-runtime-branding
+Ignore: kwin:kdebase4-workspace-branding
+Ignore: transmission-common:transmission-ui
+Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
+Ignore: mkinitrd:sbin_init samba-client:cifs-utils
+Ignore: opensc:pinentry
+Ignore: gpg2:pinentry
+Ignore: NetworkManager:dhcp
+Ignore: NetworkManager:iproute2
+# sysconfig requires it at runtime, not buildtime
+Ignore: sysconfig:dbus-1
+Ignore: sysconfig:procps
+Ignore: sysconfig:iproute2
+Ignore: sysconfig-network:iproute2
+Ignore: sysconfig:tunctl
+Ignore: sysconfig:sysvinit(network)
+# no build dependencies
+Ignore: libksuseinstall1:yast2-packager
+Ignore: libksuseinstall1:zypper
+Ignore: syslog-service:logrotate
+Ignore: libglue-devel:cluster-glue
+Ignore: libqca2:gpg2
+Ignore: NetworkManager:wpa_supplicant
+Ignore: NetworkManager:dhcp-client
+Ignore: openSUSE-release:product_flavor(openSUSE)
+Ignore: libgio-2_0-0:dbus-1-x11
+Ignore: weather-wallpaper:inkscape
+Ignore: libgamin-1-0:gamin-server
+Ignore: libfam0-gamin:gamin-server
+Ignore: python3:python3-pip
+Ignore: avahi:sysvinit(network)
+Ignore: cluster-glue:sysvinit(network)
+Ignore: dracut:systemd-sysvinit
+# actually a workaround for installation-images requiring 
+# gettext-runtime-mini and getting conflict because systat
+# requires gettext (which is only provided by !-mini)
+Ignore: saptune:sysstat
+
+Macros:
+# RUBY - UNVERSIONED STUFF
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in the
+#  prjconf aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
+%rubygemsSTOP() %nil
+%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
+%rubygemsxxSTOP(a:) %{-a*}) %*
+
+%rubySTOP() %nil
+%rubyxSTOP() %*
+
+%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}
+
+%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}
+
+%rubydevelSTOP() %nil
+%rubydevelxSTOP() %*
+#
+
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+#  if you change any macros here you have to update the copy in
+#  ruby2.5 aswell.
+#
+# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
+#
+%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
+%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
+
+%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
+%rubyxruby25() %{expand:%%{rubyx%*}}
+
+%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
+%rubydevelxruby25() %{expand:%%{rubydevelx%*}}
+
+
+### Things to define default ruby stuff for the distro
+%rb_default_ruby        ruby25
+%rb_default_ruby_suffix ruby2.5
+%rb_default_ruby_abi    ruby:2.5.0
+:Macros
+
+Macros:
+%rb_build_ruby_abis     ruby:2.5.0
+%rb_build_versions      ruby25
+
+%_with_ruby25               1
+:Macros
+
+%define rb_default_ruby        ruby25
+%define rb_default_ruby_suffix ruby2.5
+%define rb_default_ruby_abi    ruby:2.5.0
+
+%define rb_build_ruby_abis     ruby:2.5.0
+%define rb_build_versions      ruby25
+
+%define _with_ruby25         1
+
+Prefer: -ruby-stdlib
+Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
+Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
+Prefer: %{rb_default_ruby_suffix}-rubygem-yard
+Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
+Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake
+Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
+Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
+Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
+Prefer: %{rb_default_ruby_suffix}-rubygem-sass
+Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
+Prefer: %{rb_default_ruby_suffix}-rubygem-mime-types
+
+# END RUBY STUFF
+
+# PYTHON STUFF
+
+Macros:
+%pythons  %{?!skip_python2:python2} %{?!skip_python3:python3}
+
+# This method for generating python_modules gets too deep to expand at about 5 python flavors.
+# It is replaced by a Lua macro in macros.lua
+# However, OBS has a much higher expansion depth, so this works fine.
+%python_module_iter(a:) %{-a*}-%{args} %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}}
+%python_module_iter_STOP stop
+%python_module() %{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}
+
+%add_python() %{expand:%%define pythons %pythons %1}
+:Macros
+
+# END PYTHON STUFF
+
+# FATE#325522
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+# Fallback, but we should try to not use this but java-8....
+# Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# Prefer java 8 if java 9 was no option
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+# And then fall back to jaba 7 if needed
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+Substitute: java2-devel-packages java-devel
+
+%ifarch x86_64 ppc64 s390x sparc64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+ %ifarch ppc sparc sparcv9
+Substitute: glibc-devel-32bit glibc-devel-64bit
+ %else
+Substitute: glibc-devel-32bit
+ %endif
+%endif
+
+%ifarch %ix86
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
+%endif
+%ifarch ia64
+Substitute: kernel-binary-packages kernel-default kernel-debug
+%endif
+%ifarch x86_64
+Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
+%endif
+%ifarch ppc
+Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
+%endif
+%ifarch ppc64
+Substitute: kernel-binary-packages kernel-default kernel-ppc64
+%endif
+%ifarch s390
+Substitute: kernel-binary-packages kernel-s390
+%endif
+%ifarch s390x
+Substitute: kernel-binary-packages kernel-default
+%endif
+
+Optflags: i586 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches
+# no longer needed according to Richard Biener
+#  Optflags: i686 -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector
+Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390 -fmessage-length=0 -grecord-gcc-switches
+Optflags: s390x -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches
+Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches
+Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches
+Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches
+# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
+Optflags: sparcv9 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc
+
+%ifarch sparcv9
+Target: sparcv9
+%endif
+%ifarch armv6l armv6hl
+Target: armv6hl-suse-linux
+%endif
+%ifarch armv7l armv7hl
+Target: armv7hl-suse-linux
+%endif
+
+
+#Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+#Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
+# added on request of Security team:
+Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
+
+%define suse_version 1500
+%define sle_version 150000
+
+%define is_susesap 1
+
+Macros:
+%suse_version 1500
+%sle_version 150000
+%is_susesap 1
+
+%insserv_prereq insserv sed
+%fillup_prereq fillup coreutils grep diffutils
+%suseconfig_fonts_prereq perl aaa_base
+%install_info_prereq info
+%kernel_module_package_buildreq kmod-compat kernel-syms
+%kernel_module_package_buildreqs kmod-compat kernel-syms
+%maintenance_vendor SUSE LLC <https://www.suse.com/>
+%maintenance_distribution SUSE Linux Enterprise 15
+
+%sles_version 0
+%do_profiling 1
+%_vendor suse
+
+# Reproducible builds
+%source_date_epoch_from_changelog Y
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 7
+# The following shlibs have latest versions built from GCC 6 sources
+%product_libs_gcc_ver_libasan3 6
+%product_libs_gcc_ver_libgo9 6
+%product_libs_gcc_ver_libgfortran3 6
+# reminded by richi 2017 4/3
+%product_libs_gcc_ver_libgcj_bc1 6
+# The following shlibs have been introduced with GCC 7
+%product_libs_gcc_ver_libmpxwrappers2 7
+%product_libs_gcc_ver_libmpx2 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libgfortran4 7
+%gcc_version 7
+
+%ext_info .gz
+%ext_man .gz
+
+%info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+:Macros
+
+# BEGIN RUST STUFF 
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
+:Macros
+
+# END RUST STUFF
+
+# SLE-15 HACK BEGIN
+# KEEP SUBVERSION AND JAVA OUT OF RING 1
+Macros:
+%_without_obs_scm_testsuite 0
+:Macros
+
+# LOCAL SLES SETTINGS
+Prefer: SLES_SAP-installation-release-DVD
+Prefer: systemd-presets-branding-SLE
+
+# the old python-msgpack-python should be dropped, but salt
+# is still requires the old name
+Prefer: python3-msgpack
+
+%ifarch s390
+Ignore: python2-numpy-devel:openblas-devel
+Ignore: python3-numpy-devel:openblas-devel
+%endif
+# SLE-15 HACK END
+
+# added 20191023 ro
+Prefer: -openssl-1_0_0
+# end   20191023 ro
+
+Buildflags: useccache:ceph
+
+# define a prefix for all package builds in SLE 15 GA to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220316
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+# Marcus 20211214 
+# Matej dropped requires python-rpm-macris from python3-base
+#Substitute: python3-base python3-base python-rpm-macros
+#Substitute: python3-devel python3-devel python-rpm-macros
+#Substitute: python-devel python-devel python-rpm-macros
+# this should pull it in all builds (it has no dependencies, so should be fine):
+Support: python-rpm-macros
+
+# Rudi 20190425
+# needed for last ImageMagick update
+Prefer: ImageMagick-config-7-upstream
+
+# disabled in GA by mistake, enabling it here
+Support: build-compare
+
+# Marcus 20200510
+# needed for chrony ECO which has multiple choices
+Prefer: chrony-pool-suse
+
+# also provided by hwdata, so prefer the actual package. Marcus 20200513
+Prefer: pciutils-ids
+
+# we released clamav with libcurl4 requires, which is pulled in everywhere.
+# this avoids a cmake -> libcurl4-mini <-> libcurl4 conflict.
+# Marcus 20201216
+Prefer: -libcurl4-mini
+# prefer one cmake
+Prefer: cmake3-full
+
+# to avoid secure boot failures, referenced in "shim" build -Marcus 20191021
+Macros:
+%shim_enforce_ms_signature 1
+:Macros
+
+Macros:
+
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 11
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+# The following shlibs have the latest version  built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+# The following shlibs have the latest version built from GCC 9 sources
+%product_libs_gcc_ver_libasan5 9
+%product_libs_gcc_ver_libgo14 9
+# The following shlibs have the latest version built from GCC 10 sources
+%product_libs_gcc_ver_libgphobos1 10
+%product_libs_gcc_ver_libgdruntime1 10
+%product_libs_gcc_ver_libgo16 10
+
+:Macros
+
+# RUDI amend for python3 package changed to multbuild 20210201
+%if "%_project" != "SUSE:SLE-15:Update"
+BuildFlags: excludebuild:python3-base
+BuildFlags: excludebuild:python3-doc
+%endif
+
+# After the build 20200723 update .pc files are also in 32bit packages causing have-choice
+Prefer: -alsa-devel-32bit
+Prefer: -atk-devel-32bit
+Prefer: -atkmm1_6-devel-32bit
+Prefer: -at-spi2-core-devel-32bit
+Prefer: -at-spi-devel-32bit
+Prefer: -audit-devel-32bit
+Prefer: -augeas-devel-32bit
+Prefer: -bluez-devel-32bit
+Prefer: -cairo-devel-32bit
+Prefer: -cairomm1_0-devel-32bit
+Prefer: -cairomm-devel-32bit
+Prefer: -cppunit-devel-32bit
+Prefer: -cyrus-sasl-devel-32bit
+Prefer: -dbus-1-devel-32bit
+Prefer: -dbus-1-glib-devel-32bit
+Prefer: -device-mapper-devel-32bit
+Prefer: -dirac-devel-32bit
+Prefer: -flac-devel-32bit
+Prefer: -fontconfig-devel-32bit
+Prefer: -freetype2-devel-32bit
+Prefer: -gdk-pixbuf-devel-32bit
+Prefer: -glu-devel-32bit
+Prefer: -gstreamer-devel-32bit
+Prefer: -gstreamer-plugins-base-devel-32bit
+Prefer: -gtk2-devel-32bit
+Prefer: -gtk3-devel-32bit
+Prefer: -hunspell-devel-32bit
+Prefer: -ImageMagick-devel-32bit
+Prefer: -libart_lgpl-devel-32bit
+Prefer: -libavc1394-devel-32bit
+Prefer: -libbasicobjects-devel-32bit
+Prefer: -libblkid-devel-32bit
+Prefer: -libbz2-devel-32bit
+Prefer: -libcelt-devel-32bit
+Prefer: -libcollection-devel-32bit
+Prefer: -libcom_err-devel-32bit
+Prefer: -libcurl-devel-32bit
+Prefer: -libdhash-devel-32bit
+Prefer: -libdmx-devel-32bit
+Prefer: -libdrm-devel-32bit
+Prefer: -libelf-devel-32bit
+Prefer: -libexif-devel-32bit
+Prefer: -libexpat-devel-32bit
+Prefer: -libext2fs-devel-32bit
+Prefer: -libfontenc-devel-32bit
+Prefer: -libgbm-devel-32bit
+Prefer: -libgck-devel-32bit
+Prefer: -libgcr-devel-32bit
+Prefer: -libglvnd-devel-32bit
+Prefer: -libgnutls-devel-32bit
+Prefer: -libgphoto2-devel-32bit
+Prefer: -libHX-devel-32bit
+Prefer: -libICE-devel-32bit
+Prefer: -libicu-devel-32bit
+Prefer: -libini_config-devel-32bit
+Prefer: -libjack-devel-32bit
+Prefer: -libkms-devel-32bit
+Prefer: -liblbxutil-devel-32bit
+Prefer: -liblcms2-devel-32bit
+Prefer: -libMagick++-devel-32bit
+Prefer: -libmount-devel-32bit
+Prefer: -libnettle-devel-32bit
+Prefer: -libnl3-devel-32bit
+Prefer: -libnotify-devel-32bit
+Prefer: -libpackagekit-glib2-devel-32bit
+Prefer: -libpulse-devel-32bit
+Prefer: -libQt5Concurrent-devel-32bit
+Prefer: -libQt5Core-devel-32bit
+Prefer: -libQt5DBus-devel-32bit
+Prefer: -libQt5Gui-devel-32bit
+Prefer: -libQt5Network-devel-32bit
+Prefer: -libQt5OpenGL-devel-32bit
+Prefer: -libQt5PrintSupport-devel-32bit
+Prefer: -libqt5-qtconnectivity-devel-32bit
+Prefer: -libqt5-qtdeclarative-devel-32bit
+Prefer: -libqt5-qtlocation-devel-32bit
+Prefer: -libqt5-qtmultimedia-devel-32bit
+Prefer: -libqt5-qtserialport-devel-32bit
+Prefer: -libqt5-qtsvg-devel-32bit
+Prefer: -libqt5-qttools-devel-32bit
+Prefer: -libqt5-qtwayland-devel-32bit
+Prefer: -libqt5-qtwebchannel-devel-32bit
+Prefer: -libqt5-qtwebsockets-devel-32bit
+Prefer: -libqt5-qtx11extras-devel-32bit
+Prefer: -libqt5-qtxmlpatterns-devel-32bit
+Prefer: -libQt5Sql-devel-32bit
+Prefer: -libQt5Test-devel-32bit
+Prefer: -libQt5Widgets-devel-32bit
+Prefer: -libQt5Xml-devel-32bit
+Prefer: -libraw1394-devel-32bit
+Prefer: -libref_array-devel-32bit
+Prefer: -libSDL2-devel-32bit
+Prefer: -libSDL-devel-32bit
+Prefer: -libSDL_gfx-devel-32bit
+Prefer: -libSM-devel-32bit
+Prefer: -libsoup-devel-32bit
+Prefer: -libtasn1-devel-32bit
+Prefer: -libtiff-devel-32bit
+Prefer: -libusb-1_0-devel-32bit
+Prefer: -libuuid-devel-32bit
+Prefer: -libv4l-devel-32bit
+Prefer: -libva-devel-32bit
+Prefer: -libvdpau-devel-32bit
+Prefer: -libverto-devel-32bit
+Prefer: -libvirt-devel-32bit
+Prefer: -libvorbis-devel-32bit
+Prefer: -libwayland-egl-devel-32bit
+Prefer: -libwebp-devel-32bit
+Prefer: -libX11-devel-32bit
+Prefer: -libXau-devel-32bit
+Prefer: -libXaw3d-devel-32bit
+Prefer: -libXaw-devel-32bit
+Prefer: -libxcb-devel-32bit
+Prefer: -libXcomposite-devel-32bit
+Prefer: -libXcursor-devel-32bit
+Prefer: -libXdamage-devel-32bit
+Prefer: -libXdmcp-devel-32bit
+Prefer: -libXext-devel-32bit
+Prefer: -libXfixes-devel-32bit
+Prefer: -libXfont2-devel-32bit
+Prefer: -libXfontcache-devel-32bit
+Prefer: -libXfont-devel-32bit
+Prefer: -libXft-devel-32bit
+Prefer: -libXi-devel-32bit
+Prefer: -libXinerama-devel-32bit
+Prefer: -libxkbcommon-devel-32bit
+Prefer: -libxkbcommon-x11-devel-32bit
+Prefer: -libxkbfile-devel-32bit
+Prefer: -libxml2-devel-32bit
+Prefer: -libXmu-devel-32bit
+Prefer: -libXp-devel-32bit
+Prefer: -libXpm-devel-32bit
+Prefer: -libXprintUtil-devel-32bit
+Prefer: -libXrandr-devel-32bit
+Prefer: -libXrender-devel-32bit
+Prefer: -libXres-devel-32bit
+Prefer: -libxslt-devel-32bit
+Prefer: -libXss-devel-32bit
+Prefer: -libXt-devel-32bit
+Prefer: -libXtst-devel-32bit
+Prefer: -libXv-devel-32bit
+Prefer: -libXvMC-devel-32bit
+Prefer: -libXxf86dga-devel-32bit
+Prefer: -libXxf86misc-devel-32bit
+Prefer: -libXxf86vm-devel-32bit
+Prefer: -Mesa-libEGL-devel-32bit
+Prefer: -Mesa-libGL-devel-32bit
+Prefer: -Mesa-libGLESv1_CM-devel-32bit
+Prefer: -Mesa-libGLESv2_CM-devel-32bit
+Prefer: -Mesa-libGLESv2-devel-32bit
+Prefer: -mpg123-devel-32bit
+Prefer: -ncurses-devel-32bit
+Prefer: -NetworkManager-devel-32bit
+Prefer: -openal-soft-devel-32bit
+Prefer: -openjpeg-devel-32bit
+Prefer: -pango-devel-32bit
+Prefer: -pciutils-devel-32bit
+Prefer: -sane-backends-devel-32bit
+Prefer: -tslib-devel-32bit
+Prefer: -typelib-1_0-Gst-1_0-32bit
+Prefer: -wayland-devel-32bit
+Prefer: -xcb-util-devel-32bit
+Prefer: -xcb-util-image-devel-32bit
+Prefer: -xcb-util-keysyms-devel-32bit
+Prefer: -xcb-util-renderutil-devel-32bit
+Prefer: -xcb-util-wm-devel-32bit
+Prefer: -xz-devel-32bit
+Prefer: -zlib-devel-32bit
+Prefer: -zvbi-devel-32bit
+
+# ECO-3147 added a new package which opened several installation choices
+# gboiko 20210503 added more regarding the ECO above
+Prefer: libboost_thread1_66_0
+Prefer: libboost_system1_66_0
+Prefer: libboost_regex1_66_0
+Prefer: libboost_filesystem1_66_0
+Prefer: libboost_iostreams1_66_0
+Prefer: libboost_date_time1_66_0
+
+# gboiko 20210503 workaround for build issues on x86_64
+Prefer: -libsmartcols-devel-32bit
+Prefer: -krb5-devel-32bit
+
+# ro added 20210708 requested by dmueller
+Prefer: -lzo-devel-32bit
+Prefer: -liboping-devel-32bit
+Prefer: -unixODBC-devel-32bit
+Prefer: -libcmocka-devel-32bit
+
+# ro added 20220207 requested by dmueller
+Prefer: -samba-devel-32bit
+Prefer: -libqt5-qtscript-devel-32bit
+# darix added 20220708 requested by meissner
+Prefer: -vulkan-devel-32bit
+
+# darix added 20220906 requested by favogt
+Prefer: libasan6
+
+# ro added 20220510 requested by jgonzalez
+Macros:
+%susemanager_container_images_path registry.suse.com/suse/manager/4.3
+:Macros
+
+# ro added 20220917 requested by meissner
+Prefer: libubsan1
+
+# mstrigl added 20220929 requested by meissner
+Prefer: go1.18
+
+### from SUSE:SLE-15-SP1:GA
+%define sle_version 150100
+
+Macros:
+%sle_version 150100
+:Macros
+
+# needed by kiwi-templates-SLES15-JeOS:OpenStack-Cloud
+FileProvides: /usr/bin/host bind-utils
+
+Substitute: system-packages:podman kmod kernel-default podman buildah createrepo_c
+
+# (coolo) Prefer over libyui-ncurses8 from GA (both providing yast2-ncurses) 
+Prefer: libyui-ncurses9 
+
+# (coolo) Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg9 libyui-qt9 libyui-qt-graph9 libyui-qt-pkg9
+
+# (coolo) samba-libs requires 'samba-libs-python'
+Prefer: samba-libs-python3
+
+# (fcrozat) needed to undo this change from SLE15 SP0 to allow latest installation-images to build
+Ignore: !pciutils:pciutils-ids
+
+# (fcrozat) needed to build properly multipath-tools and its dependencies
+Prefer: kernel-default
+Ignore: multipath-tools:kmod(dm-multipath),kmod(dm-multipath),kmod(scsi_dh_emc),kmod(scsi_dh_rdac),kmod(scsi_dh_alua)
+
+# (fcrozat) prevent choice on python-configparser
+Prefer: python2-configparser
+
+# (fcrozat) ensure gio-branding-upstream isn't used (bsc#1132329)
+Substitute: build-packages:kiwi python3-kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !gio-branding-upstream
+
+######### JAVA
+# FATE#326347
+# First we need to de-prefer the java versions prefered in the SLE-15:GA prj Config:
+Prefer: -java-10-openjdk -java-10-openjdk-devel -java-10-openjdk-javadoc -java-10-openjdk-headless
+Prefer: -java-1_8_0-openjdk -java-1_8_0-openjdk-devel -java-1_8_0-openjdk-javadoc -java-1_8_0-openjdk-headless
+Prefer: -java-1_7_0-openjdk -java-1_7_0-openjdk-devel -java-1_7_0-openjdk-javadoc -java-1_7_0-openjdk-headless
+
+# Now we set the prefered Java version, but need fallbacks for some packages:
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-javadoc java-11-openjdk-headless
+
+# It might be better to 'de-prefer' the "old" ones, and omit the line above
+# according to Adrian. This needs some testing.
+# Unfortuantely this will bite us when packages require an old java
+
+# 8 before 10 on advice of fstrba
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-javadoc java-1_8_0-openjdk-headless
+Prefer: java-10-openjdk java-10-openjdk-devel java-10-openjdk-javadoc java-10-openjdk-headless
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-javadoc java-9-openjdk-headless
+# don't use that - fstrba 
+Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel java-1_7_0-openjdk-javadoc java-1_7_0-openjdk-headless
+
+######### end of JAVA
+
+# 15:GA has Prefer:go which will set the default to th eunverisoned go.
+# some packages stumble over "have choice for go >= 1.11: go1.11 go1.12", this will prevent this.
+# go1.12 is taken from 15:Update
+Prefer: go1.12
+
+
+### from SUSE:SLE-15-SP1:Update
+%define _repository snapshot-SP5
+# define a prefix for all package builds in SLE 15 SP1 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220316
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+
+# avoid the SP0 slurm 18.8 variants in SP1
+Prefer: slurm libpmi0 slurm-config slurm-node slurm-plugins
+
+# prefer one of the python-pytests. Marcus 20200512
+Prefer: python-pytest4 python2-pytest4 python3-pytest4
+
+# have conflict ebtween python3-pycrypto and python3-pycryptodome
+Prefer: python3-pycryptodome
+
+# prefer go1.14 (over go1.13). Gustavo 20200514
+# this breaks caasp Marcus 20200515
+#Prefer: go1.14
+
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+### from SUSE:SLE-15-SP2:GA
+%define sle_version 150200
+%define current_milestone GMC
+
+#needed for latest gspell
+Prefer: enchant-2-backend-hunspell
+
+Macros:
+%sle_version 150200
+%current_milestone GMC
+
+######### gcc9
+# define which gcc package builds the system libraries
+%product_libs_gcc_ver 9
+# The following shlibs have the latest version built from GCC 7 sources
+%product_libs_gcc_ver_libgfortran4 7
+%product_libs_gcc_ver_libasan4 7
+%product_libs_gcc_ver_libubsan0 7
+%product_libs_gcc_ver_libcilkrts5 7
+%product_libs_gcc_ver_libgo11 7
+%product_libs_gcc_ver_libobjc4 7
+# The following shlibs have the latest version built from GCC 8
+%product_libs_gcc_ver_libmpx2 8
+%product_libs_gcc_ver_libmpxwrappers2 8
+%product_libs_gcc_ver_libgo13 8
+######### end of gcc9
+
+:Macros
+
+# Prefer over libyui9* from SP1-GA
+Prefer: libyui11
+Prefer: libyui-ncurses11
+# Additional prefers for installation-images
+Prefer: libyui-ncurses-pkg11 libyui-qt11 libyui-qt-graph11 libyui-qt-pkg11
+Substitute: libyui libyui11
+Substitute: libyui-ncurses libyui-ncurses11
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg11
+Substitute: libyui-qt libyui-qt11
+Substitute: libyui-qt-graph libyui-qt-graph11
+Substitute: libyui-qt-pkg libyui-qt-pkg11
+
+# Help with the switch to the gcc9 provided libs: (bsc#1154695)
+Prefer: libasan5 libasan5-32bit libubsan1 libubsan1-32bit libgfortran5
+
+Substitute: infiniband-diags-devel rdma-core-devel
+
+Prefer: python3-pycryptodome
+
+# Needed after GNOME 3.34 rebase
+Prefer: libvala-0_46-devel
+
+# Needed with latest rpm (Use libgcrypt as crypto library for SP2 [jsc#SLE-9552])
+Preinstall: libgcrypt20 libgpg-error0
+
+# Needed for maven (jsc#SLE-8786)
+Prefer: -java-1_7_0-bootstrap -java-1_8_0-ibm
+Prefer: -java-1_7_0-bootstrap-devel -java-1_8_0-ibm-devel
+Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
+Prefer: xml-commons-apis xml-commons-resolver
+Prefer: log4j12-mini
+Prefer: -scala-bootstrap -scala-bootstrap-swing -ant-scala-bootstrap
+Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
+Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
+Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap
+Prefer: bsh2
+Prefer: -stringtemplate4-bootstrap -antlr3-bootstrap-tool -sbt-bootstrap
+Prefer: apache-commons-net
+Prefer: gradle groovy-lib eclipse-swt gpars
+
+%ifarch %arm ppc riscv64 aarch64
+Macros:
+%prjconf_multibuild_selection patch
+:Macros
+%endif
+
+# Default to Java 11
+Prefer: java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless java-11-openjdk-javadoc
+%ifarch s390x
+Prefer: java-1_8_0-openj9 java-1_8_0-openj9-devel java-1_8_0-openj9-headless
+%endif
+Prefer: java-1_8_0-openjdk java-1_8_0-openjdk-devel java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
+Prefer: java-10-openjdk-devel java-10-openjdk java-10-openjdk-devel java-10-openjdk-headless java-10-openjdk-javadoc
+Prefer: java-9-openjdk java-9-openjdk-devel java-9-openjdk-headless java-9-openjdk-javadoc
+Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless
+
+# use rpm by default to build, instead of rpm-ndb
+Prefer: rpm
+
+# Needed with latest rpm (Added zstd support in SLE-15-SP2 [bsc#1162668])
+Preinstall: libzstd1
+
+# needed due to udisk devel package name changeinstallcheck: ignore rpm-ndb slurm-cray slurm-hdf5 slurm-slurmdbd slurm-webdoc setools-gui
+Prefer: libudisks2-0-devel
+
+# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
+Ignore: cmake-mini:this-is-only-for-build-envs
+
+# Cmake exists as a -mini flavor, which is not linked against curl.
+Prefer: cmake-mini
+
+Prefer: ocaml-compiler-libs-devel
+
+Prefer: python2-contextlib2
+
+Prefer: chrony-pool-suse
+
+%ifarch i586
+Prefer: slurm libpmi0 slurm-config slurm-plugins slurm-node
+%endif
+
+Substitute: azuremetadata python3-azuremetadata
+
+# required after changes form the weekend of April 26
+Prefer: python3-pytest
+Prefer: python2-pytest
+
+# required after CTLG for PackageKit, which introduced dnf
+Prefer: PackageKit-backend-zypp
+
+Prefer: python2-subprocess32
+
+### from SUSE:SLE-15-SP2:Update
+%define _repository snapshot-SP5
+# define a prefix for all package builds in SLE 15 SP3 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220117
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+# have choice for python2-pycrypto needed by python2-oauth2client: python2-pycrypto python2-pycryptodome 20200916 - gboiko
+Prefer: python2-pycrypto
+
+# avoid have choice for pkgconfig(gnutls): libgnutls-devel libgnutls-devel-32bit
+Prefer: libgnutls-devel
+
+# qt5 prefers (32bit mess)
+Prefer: libQt5Test-devel libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel libQt5PrintSupport-devel libQt5Concurrent-devel
+
+# have choice for pkgconfig(bluez): bluez-devel bluez-devel-32bit (32bit mess)
+Prefer: bluez-devel
+
+# conflict with postgresql13-devel-mini ? 
+Prefer: libpq5
+
+Prefer: gdk-pixbuf-devel
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips
+
+
+# for thunderbird (nodejs >= 10 ... has 3 options)
+
+Prefer: nodejs14
+
+# we now have a cmake-full at the version of cmake3 from SUSE:SLE-15:Update, to avoid it pulling the override by defualt,
+# use this prefer change Marcus 20220201
+Prefer: -cmake3-full
+Prefer: cmake-full
+
+### from SUSE:SLE-15-SP3:GA
+
+# COMMON BEGIN common part
+%define sle_version 150300
+Macros:
+%sle_version 150300
+:Macros
+
+# Prefer later so_version of libyui* over libyui*8 (SP0), libyui*9 (SP1) and libyui*11 (SP2)
+Prefer: -libyui8 -libyui-ncurses8 -libyui-ncurses-pkg8 -libyui-qt8 -libyui-qt-graph8 -libyui-qt-pkg8
+Prefer: -libyui9 -libyui-ncurses9 -libyui-ncurses-pkg9 -libyui-qt9 -libyui-qt-graph9 -libyui-qt-pkg9
+Prefer: -libyui11 -libyui-ncurses11 -libyui-ncurses-pkg11 -libyui-qt11 -libyui-qt-graph11 -libyui-qt-pkg11 -libyui-ncurses-rest-api11 -libyui-qt-rest-api11
+
+# Revert substitutions from SP2
+Substitute: libyui libyui
+Substitute: libyui-ncurses libyui-ncurses
+Substitute: libyui-ncurses-pkg libyui-ncurses-pkg
+Substitute: libyui-qt libyui-qt
+Substitute: libyui-qt-graph libyui-qt-graph
+Substitute: libyui-qt-pkg libyui-qt-pkg
+Substitute: libyui-ncurses-rest-api libyui-ncurses-rest-api
+Substitute: libyui-qt-rest-api libyui-qt-rest-api
+
+Prefer: gmmlib-devel
+
+Preinstall: libcrypt1
+
+# required for latest Mesa
+Prefer: libdrm-devel Mesa-libGL-devel libglvnd-devel libkms-devel Mesa-libEGL-devel libva-devel libdbusmenu-qt5-devel
+
+Prefer: typelib-1_0-Gst-1_0
+
+# required for latest Mesa
+Prefer: Mesa-libGLESv2-devel Mesa-libGLESv1_CM-devel
+
+# not sure why we need those
+Prefer: libQt5Sql-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel libQt5Xml-devel libQt5Xml-devel libQt5DBus-devel libQt5Core-devel audit-devel
+
+# required after MU#16450 (gnutls)
+Prefer: libgnutls-devel
+
+Prefer: systemd-sysvinit
+
+Prefer: alsa-devel libpulse-devel
+
+Prefer: kernel-firmware
+
+Prefer: systemd-default-settings-branding-SLE
+
+Prefer: -libMagick++-devel-32bit -ImageMagick-devel-32bit -pciutils-devel-32bit
+Prefer: -libgbm-devel-32bit -device-mapper-devel-32bit
+
+Prefer: plymouth-branding-SLE
+
+Ignore: !pango-devel:cairo-devel
+
+Substitute: kmod-compat kmod
+# replacing module-init-tools
+Prefer: -kmod-compat
+
+# choose non berkeleydb version of cyrus-sasl (jsc#SLE-12190)
+Prefer: -cyrus-sasl-bdb-devel -cyrus-sasl-devel-32bit
+Substitute: postfix-lmdb postfix
+
+# jsc#SLE-17030
+Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
+Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
+Prefer: postgresql13-devel-mini postgresql12-devel-mini
+
+Prefer: -mpg123-devel-32bit
+
+Prefer: -coreutils-single
+
+# From Fabian Vogt on 2021023
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini
+# COMMON END common part
+
+# due to libreoffice
+Prefer: -sane-backends-devel-32bit
+
+Prefer: -libX11-devel-32bit
+
+# needed for latest Kiwi (sr#238860)
+Prefer: -kiwi-image-docker-requires -kiwi-filesystem-requires -kiwi-image-vmx-requires -kiwi-image-oem-requires -kiwi-image-iso-requires
+Conflict: python3-kiwi:libsystemd0-mini
+
+# needed for MU#18655
+Prefer: -python3-vsts
+
+# due to MU#19157
+Prefer: -libboost_regex_legacy
+### from SUSE:SLE-15-SP3:Update
+%define _repository snapshot-SP5
+
+Macros:
+
+### from SUSE:SLE-15-SP3:Update
+
+%_repository snapshot-SP5
+:Macros
+
+# define a prefix for all package builds in SLE 15 SP3 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+# Marcus Meissner 20220117
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+
+# From Fabian Vogt on 20210913 ... patterns-base-fips temporary
+Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini patterns-base-fips !systemd-mini-container
+
+# after secondary icu version release Marcus 20211214
+
+Prefer: libicu-devel
+
+
+# gboiko, 20220202 fixing the following unresolvable:
+# have choice for libwbclient.so.0()(64bit) needed by cifs-utils: libwbclient0 samba-client-libs
+Prefer: samba-client-libs samba-devel
+
+# BEGIN RUST STUFF
+Prefer: cargo1.58 cargo1.57
+
+# Define the architectures in which Rust (and Rust crates) are available
+# NOTE: Keep this in sync with rust-srpm-macros!
+%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%define rust_tier1_arches x86_64 aarch64
+
+Macros:
+%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le riscv64 s390x
+%rust_tier1_arches x86_64 aarch64
+:Macros
+
+# END RUST STUFF
+
+### from SUSE:SLE-15-SP4:GA
+
+# COMMON BEGIN common part
+%define sle_version 150400
+Macros:
+%sle_version 150400
+:Macros
+
+# define a prefix for all package builds in SLE 15 SP4 to handle migration of packages
+# with identical version but lower release version than in a preceding codestream
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+Prefer: -python3-cairo-devel -python2-cairo-devel -python3-gobject2-devel
+Prefer: -keyutils-devel-32bit -gtk4-devel-32bit
+
+Prefer: -libgcrypt-devel-32bit
+
+# from Factory: PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
+Prefer: php8:php8-cli
+
+Prefer: php7:php7-cli
+
+Prefer: -php7
+
+Prefer: -python3-libxml2-python
+Substitute: python3-libxml2-python python3-libxml2
+
+Prefer: -libavcodec-devel -libavfilter-devel -libavformat-devel -libavutil-devel
+
+Prefer: -lua51-luajit-devel
+
+Prefer: -libzstd-devel-32bit
+
+Prefer: -libsoup2-devel-32bit
+
+Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
+
+Prefer: -libfdisk-devel-32bit
+
+Prefer: -libpcap-devel-32bit
+
+# must be removed after fix for bsc#1193711 is merged
+# can also be removed in case bsc#1194749 is fully fixed
+Support: python-rpm-macros
+
+# required for suseconnect-ng replacing SUSEConnect and zypper-migration-plugin
+Prefer: -SUSEConnect
+Prefer: -zypper-migration-plugin
+
+# OBS is preferring literal matches over provides, therefore substituting with suseconnect-ng
+Substitute: SUSEConnect suseconnect-ng
+Substitute: zypper-migration-plugin suseconnect-ng
+
+# Fix fot Qt stack update
+Prefer: -libqt5-qtremoteobjects-devel-32bit
+Prefer: -libqt5-qtspeech-devel-32bit
+Prefer: -xcb-util-cursor-devel-32bit
+
+# from Factory: 
+# pipewire has a jack compatible implementation - but for now we prefer the real jack
+Prefer: -pipewire-libjack-0_3-devel libjack0
+
+Prefer: -libyui-ncurses15 -libyui-ncurses-pkg15 -libyui-ncurses-rest-api15 -libyui-qt15 -libyui-qt-graph15 -libyui-qt-pkg15 -libyui-qt-rest-api15
+
+Prefer: -libsmbclient0 -libwbclient0 -libsmbclient-devel -libwbclient-devel -samba-devel-32bit -libndr-krb5pac-devel -libndr-nbt-devel
+
+Prefer: -liburing-devel
+
+Prefer: -php7
+
+Substitute: libudev-devel systemd-devel
+Substitute: libudev-mini-devel systemd-mini-devel
+Prefer: -libudev-mini-devel
+Prefer: -libudev-devel
+Prefer: -libudev-devel-32bit
+
+# required for some Public Cloud and JeOS flavours to correctly resolve the zypper-lifecycle-plugin
+# dependency on /usr/bin/ruby, as ruby2.5 isn't pulled in by SUSEConnect anymore.
+FileProvides: /usr/bin/ruby ruby2.5
+
+%define skip_python2 1
+%define _without_python2 1
+
+Macros:
+## PYTHON MACROS BEGIN
+# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
+# making it the "default" in many cases --> keep the primary python3 provider at the end.
+%pythons %{?!skip_python3:python3}
+%add_python() %{expand:%%define pythons %1 %pythons}
+
+%_without_python2 1
+:Macros
+
+Prefer: -python -python-base
+
+Substitute: txt2tags python3-txt2tags
+
+FileProvides: /bin/bash bash
+FileProvides: /bin/sh bash-sh busybox-sh
+Prefer: bash-sh
+Preinstall: bash bash-sh
+Prefer: -busybox
+
+Prefer: -openblas-devel
+Substitute: openblas-devel libopenblas_pthreads-devel
+### from SUSE:SLE-15-SP4:Update
+%define _repository snapshot-SP5
+Prefer: -python3-cairo
+
+Prefer: libdebuginfod1-dummy
+
+FileProvides: /usr/sbin/nologin util-linux
+FileProvides: /usr/bin/perl perl
+
+
+### from SUSE:SLE-15-SP5:GA
+Macros:
+%product_libs_llvm_ver 15
+:Macros
+
+# COMMON BEGIN common part
+%define sle_version 150500
+Macros:
+%sle_version 150500
+:Macros
+
+Release: <CI_CNT>.<B_CNT> spec:%sle_version.<CI_CNT>.<B_CNT>
+
+Prefer: -libasan6-gcc10
+
+FileProvides: /usr/bin/lzop lzop
+
+Prefer: -libpacemaker-devel
+Prefer: -libpacemaker3
+Prefer: -libglue2
+Substitute: libglue-devel cluster-glue-devel
+
+Prefer: -libpolkit0
+Prefer: -rdma-core-devel-32bit
+
--- build-20160629.orig/createdirdeps
+++ build-20160629/createdirdeps
@@ -59,7 +59,7 @@
 my %seen;
 
 for my $dir (@ARGV) {
-  my $cmd = "find $dir -follow -type f \\( -name \"*.rpm\" -o -name \"*.deb\" -o -name \"*.pkg.tar.gz\" -o -name \"*.pkg.tar.xz\" \\) -a ! -name \"*src.rpm\" -printf '\%T@/\%s/\%i \%p\\n'";
+  my $cmd = "find '$dir' -follow -type f \\( -name \"*.rpm\" -o -name \"*.deb\" -o -name \"*.pkg.tar.gz\" -o -name \"*.pkg.tar.xz\" \\) -a ! -name \"*src.rpm\" -printf '\%T@/\%s/\%i \%p\\n'";
   open(F, '-|', $cmd) or next;
   while (<F>) {
     chomp;
--- build-20160629.orig/createrepomddeps
+++ build-20160629/createrepomddeps
@@ -33,6 +33,7 @@
 use Digest::MD5 ();
 use File::Path qw(mkpath rmtree);
 use File::Basename;
+use File::Copy qw(move);
 use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT IPC_EXCL SEM_UNDO);
 use IPC::Semaphore;
 
@@ -45,6 +46,12 @@
 my $opt_zypp;
 my $cachedir = "/var/cache/build";
 
+sub hide_passwd {
+    my $url = shift;
+    $url =~ s|://[^@]*@|://|;
+    return $url
+}
+
 sub printold {
   my ($pkg, $baseurl, $old_seen) = @_;
 
@@ -89,20 +96,20 @@
     $dir = "$cachedir/$repoid/";
     $baseurl .= '/' unless $baseurl =~ /\/$/;
     mkpath("${dir}repodata");
-	my $sem;
-	my $key = IPC::SysV::ftok($dir, '1');
-	if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
-	  $sem->setval(0, 1);
-	} else {
-	  $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
-	}
-	
-	$sem->op(0, -1, SEM_UNDO);
-	if (!-f "${dir}repodata/repomd.xml") {
+    #my $sem;
+	#my $key = IPC::SysV::ftok($dir, '1');
+	#if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
+	#  $sem->setval(0, 1);
+	#} else {
+	#  $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
+	#}
+	#
+	#$sem->op(0, -1, SEM_UNDO);
+	#if (!-f "${dir}repodata/repomd.xml") {
 	  system($INC[0].'/download', "${dir}repodata", "${baseurl}repodata/repomd.xml");
-	}
-	$sem->op(0, 1, SEM_UNDO);
-	$sem->remove();
+      #}
+      #$sem->op(0, 1, SEM_UNDO);
+	  #$sem->remove();
   } else {
     $dir = $url;
   }
@@ -110,8 +117,8 @@
   $baseurl .= '/' unless $baseurl =~ /\/$/;
 
   if (! -s "${dir}repodata/repomd.xml") {
-    die("zypp repo $url is not up to date, please refresh first\n") if $opt_zypp;
-    die("repo $url does not contain a repomd.xml file\n");
+    die("zypp repo " . hide_passwd($url) . " is not up to date, please refresh first\n") if $opt_zypp;
+    die("repo " .  hide_passwd($url) . " does not contain a repomd.xml file\n");
   }
 
   my @primaryfiles;
@@ -126,14 +133,14 @@
       utf8::downgrade($u);
     }
     my $cached;
-	my $sem;
-	my $key = IPC::SysV::ftok("${dir}repodata/", '1');
-	if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
-	  $sem->setval(0, 1);
-	} else {
-	  $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
-	}
-	$sem->op(0, -1, SEM_UNDO);
+	#my $sem;
+	#my $key = IPC::SysV::ftok("${dir}repodata/", '1');
+	#if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
+	#  $sem->setval(0, 1);
+	#} else {
+	#  $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
+	#}
+	#$sem->op(0, -1, SEM_UNDO);
     if (-e $u) {
       $cached = 1;
       $cached = 0 if exists($f->{'size'}) && $f->{'size'} != (-s _);
@@ -146,11 +153,11 @@
 	  die("download failed\n");
 	}
       } else {
-	die("inconsistent repodata in $url\n");
+       die("inconsistent repodata in $url\n");
       }
     }
-	$sem->op(0, 1, SEM_UNDO);
-	$sem->remove();
+	#$sem->op(0, 1, SEM_UNDO);
+	#$sem->remove();
 
     my $fh;
     open($fh, '<', $u) or die "Error opening $u: $!\n";
--- build-20160629.orig/debian/changelog
+++ build-20160629/debian/changelog
@@ -1,3 +1,220 @@
+build (20160629-tizen20260423) unstable; urgency=high
+
+  * Update tizen version to tizen20260423
+  * fix ccache option not work properly
+
+ -- Saulin Tuhin <s.tuhin@samsung.com>  Thu, 23 Apr 2026 13:00:00 +0600
+
+build (20160629-tizen20260224) unstable; urgency=high
+
+  * Update tizen version to tizen20260224
+  * Update tizen version to tizen20250722
+  * Support to skip to create src.rpm for certain packages during gbs full build
+
+ -- Jakir Hossain <jakir.h@samsung.com>  Tue, 24 Feb 2026 11:00:00 +0600
+
+build (20160629-tizen20250722) unstable; urgency=high
+
+  * Update tizen version to tizen20240722
+  * Add arguments '--failures-to-rebuild' and '--rebuild-count' to support rebuild when build fails
+  * Rebuild the package if build failed because of qemu crash.
+  * Cleanup the build root as default action if build system is broken.
+  * build: use ulimit -d instead of ulimit -v
+  * umount with -f option
+
+ -- Jakir Hossain <jakir.h@samsung.com>  Tue, 22 Jul 2025 10:25:00 +0600
+
+build (20160629-tizen20240722) unstable; urgency=high
+
+  * Remove dpatch dependency.
+
+ -- Xu Huayong <huayong.xu@samsung.com>  Mon, 22 Jul 2024 14:27:00 +0800
+
+build (20160629-tizen20231130) unstable; urgency=high
+
+  * Update tizen version to tizen20231129.
+  * Use the correct lua to excutxe scripts
+  * Update qemu-arm-static depend to support risc
+
+ -- Xu Huayong <huayong.xu@samsung.com>  Thu, 30 Nov 2023 14:27:00 +0800
+
+build (20160629-tizen20231101) unstable; urgency=high
+
+  * Update tizen version to tizen20231101.
+  * Fix build error for https://bugs.tizen.org/browse/DEVT-440.
+  * download: enable proxy support for HTTPS.
+  * Support different interpreters in prein/postin scriptlets.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Wed, 01 Nov 2023 09:30:00 +0800
+
+build (20160629-tizen20230510) unstable; urgency=high
+
+  * Update tizen version to tizen20230510.
+  * hide credentials information in logs.
+  * ignore non-existance of qemu binfmt file.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Wed, 10 May 2023 09:30:00 +0800
+
+build (20160629-tizen20230301) unstable; urgency=high
+
+  * Update tizen version to tizen20230301
+  * Fix issue: chromium-efl package build failure on Tizen 5.5.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Wed, 01 Mar 2023 09:30:00 +0800
+
+build (20160629-tizen20230112) unstable; urgency=high
+
+  * Update tizen version to tizen20230112
+  * add new build option: --nocumulate which can allow build without cumulatve build.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Thu, 12 Jan 2023 09:30:00 +0800
+
+build (20160629-tizen20221207) unstable; urgency=high
+
+  * Update tizen version to tizen20221207
+  * Ignore reorder packages list during cumulative build.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Wed, 07 Dec 2022 09:30:00 +0800
+
+build (20160629-tizen20220803) unstable; urgency=high
+
+  * Update tizen version to tizen20220803
+  * Always retry 3 times to download if download fail.
+  * Add logic to re-downloading packages in reorder step if some packages is missed!
+
+ -- Wang Biao <biao716.wang@samsung.com>  Wed, 03 Aug 2022 09:30:00 +0800
+
+build (20160629-tizen20220705) unstable; urgency=high
+
+  * Update tizen version to tizen20220705
+  * Fix defect Build error dlog aarch64.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tue, 05 Jul 2022 09:30:00 +0800
+
+build (20160629-tizen20220421) unstable; urgency=high
+
+  * update tizen version to tizen20220421
+  * Fix multiple mount issue in Ubuntu 20.04.
+  * Support zstd compression.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Thu, 21 Apr 2022 09:30:00 +0800
+
+build (20160629-tizen20210823) unstable; urgency=high
+
+  * update tizen version to tizen20210823
+  * Fix VMInstall package is not installed.
+  * Fix kvm support in Ubuntu.
+
+ -- Wang Biao <biao716.wang@samsung.com>  Mon, 23 Aug 2021 09:30:00 +0800
+
+build (20160629-tizen20210713) unstable; urgency=high
+
+  * update tizen version to tizen20210713
+  * Allow BuildFlags: Buildflags: flag:key to pass an arg
+  * Use ccache.tar file with --pkg-ccache option
+  * Force enable DO_CUMULATE
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tue, 13 Jul 2021 09:30:00 +0800
+
+build (20160629-tizen20210514) unstable; urgency=high
+
+  * update tizen version to tizen20210514
+  * fix build dependency parse when Require(post)
+  * fix umount error when build is done
+
+ -- Wang Biao <biao716.wang@samsung.com>  Fri, 14 May 2021 09:30:00 +0800
+
+build (20160629-tizen20210323) unstable; urgency=high
+
+  * update tizen version to tizen20210323
+  * fix gbs full build error: binary not found
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tue, 23 Mar 2020 09:30:00 +0800
+
+build (20160629-tizen20201203) unstable; urgency=high
+
+  * update tizen version to tizen20201203
+  * Support zstd decompression for old rpm version
+  * Support zstd arch for tar
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tur, 3 Dec 2020 09:30:00 +0800
+
+build (20160629-tizen20200721) unstable; urgency=high
+
+  * update tizen version to tizen20200721
+  * Remove unused directory at the end of build step
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tue, 19 May 2020 09:30:00 +0800
+
+build (20160629-tizen20200519) unstable; urgency=high
+
+  * update tizen version to tizen20200519
+  * Remove --replacefile option in build-pkg-rpm
+
+ -- Wang Biao <biao716.wang@samsung.com>  Tue, 19 May 2020 09:30:00 +0800
+
+build (20160629-tizen20190830) unstable; urgency=high
+
+  * update tizen version to tizen20190830
+  * Support control.tar.xz format packages
+
+ -- Wang Biao <biao716.wang@samsung.com>  Fri, 30 Aug 2019 09:30:00 +0800
+
+build (20160629-tizen20181031) unstable; urgency=high
+
+  * update tizen version to tizen20181031
+  * Speed up the download packages when use https
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Wed, 31 Oct 2018 09:30:00 +0800
+
+build (20160629-tizen20180927) unstable; urgency=high
+
+  * update tizen version to tizen20180927
+  * Fix file conflicts when package install
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Thu, 27 Sep 2018 09:30:00 +0800
+
+build (20160629-tizen20180831) unstable; urgency=high
+
+  * update tizen version to tizen20180831
+  * Fix build error on x86_64 with expand error
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Fri, 31 Aug 2018 09:30:00 +0800
+
+build (20160629-tizen20180803) unstable; urgency=high
+
+  * update tizen version to tizen20180803
+  * Fix deb package build error
+  * Remove chroot memory limit on x86_64
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Fri, 3 Aug 2018 09:30:00 +0800
+
+build (20160629-tizen20180323) unstable; urgency=high
+
+  * update tizen version to tizen20180323
+  * Enable networking inside VM
+  * Fix bugs when username including backslash
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Fri, 23 Mar 2018 09:30:00 +0800
+
+build (20160629-tizen20171013) unstable; urgency=high
+
+  * update tizen version to tizen20171013
+
+ -- Ren Jingui <jingui.ren@samsung.com>  Fri, 13 Oct 2017 09:30:00 +0800
+
+build (20160629-tizen20170630) unstable; urgency=high
+
+  * update tizen version to tizen20170630
+
+ -- Zhang Yang <y0169.zhang@samsung.com>  Fri, 30 Jun 2017 10:30:00 +0800
+
+build (20160629-tizen20170428) unstable; urgency=high
+
+  * update to version 20160629
+
+ -- Fu Shuai <shuai01.fu@samsung.com>  Fri, 5 May 2017 10:30:00 +0800
+
 build (20150115-tizen20170428) unstable; urgency=high
 
   * update tizen version to tizen20170428
@@ -36,6 +253,7 @@
 
  -- Fan Jiankang <jiankang.fan@samsung.com>  Wed, 2 Mar 2016 19:30:22 +0200
 
+
 build (2013.11.12-tizen20140815) unstable; urgency=high
 
   * update to version 2013.11.12
--- build-20160629.orig/debian/control
+++ build-20160629/debian/control
@@ -2,7 +2,7 @@
 Section: devel
 Priority: optional
 Maintainer: Adrian Schroeter <adrian@suse.de>
-Build-Depends: debhelper (>= 4), dpatch, cdbs,libc6,
+Build-Depends: debhelper (>= 4), cdbs, libc6
 Standards-Version: 3.7.2
 
 Package: build
@@ -12,8 +12,8 @@
   libxml-parser-perl,
   libcrypt-ssleay-perl (>= 0.64-tizen20130308),
   binfmt-support,
-  tizen-qemu-arm-static-2016.12.31
-Recommends: rpm2cpio
+  tizen-qemu-arm-static-2024.07.22
+Recommends: rpm2cpio, zstd
 Description: A script to build SUSE Linux RPMs
  This package provides a script for building RPMs for SUSE Linux
  in a chroot environment.
--- build-20160629.orig/download
+++ build-20160629/download
@@ -20,9 +20,7 @@
 #
 ################################################################
 
-use Net::SSL ();
 BEGIN {
-  $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0,
   unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build');
 }
 
@@ -45,7 +43,10 @@
 
 my $ua = LWP::UserAgent->new(
   agent => "openSUSE build script",
-  timeout => 42);
+  timeout => 42,
+  ssl_opts => {
+  verify_hostname => 1
+});
 
 for my $url (@ARGV) {
   my $original = $url;
@@ -87,17 +88,18 @@
        $url = URI->new($url);
    }
   }
-  $ua->env_proxy  if $url->scheme ne 'https';
-  my $dest = "$dir/".basename($url->path);
+  $ua->env_proxy;
+  my $dest = "$dir/".basename($url->path).".tmp";
   unlink($dest);	# just in case
   my $retry = 3;
   while ($retry--) {
     my $res = $ua->mirror($url, $dest);
     last if $res->is_success;
     # if it's a redirect we probably got a bad mirror and should just retry
-	die "reqesting " . hide_passwd($original) . " failed: ".$res->status_line."\n" unless $retry && $res->previous;
+	die "reqesting " . hide_passwd($original) . " failed: ".$res->status_line."\n" unless $retry;
 	warn "retrying " . hide_passwd($original) . "\n";
   }
+  rename($dest, "$dir/".basename($url->path));
 }
 
 # vim:sw=2
--- build-20160629.orig/expanddeps
+++ build-20160629/expanddeps
@@ -122,7 +122,7 @@
 # read dist if we can
 my $cf;
 if (defined($dist) && $dist ne '') {
-  $cf = Build::read_config_dist($dist, $archs[0], $configdir);
+  $cf = Build::read_config_dist($dist, $archs[0] || 'noarch', $configdir);
   $binarytype = $cf->{'binarytype'} if $cf->{'binarytype'} && $cf->{'binarytype'} ne 'UNDEFINED';
 }
 
@@ -162,7 +162,7 @@
   print STDERR "Warning: distribution not specified, assuming '$dist' (see $configdir).\n";
 }
 
-my $cf = Build::read_config_dist($dist, $archs[0], $configdir);
+$cf ||= Build::read_config_dist($dist, $archs[0] || 'noarch', $configdir);
 $cf->{'warnings'} = 1;
 
 my $dofileprovides = %{$cf->{'fileprovides'}};
@@ -205,20 +205,20 @@
     }
   } elsif (/^P:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
     $pkgP = $2;
-	next if $prov{$1};
-	$prov{$1} = $2
+    next if $prov{$1};
+    $prov{$1} = $2;
   } elsif (/^R:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
     $pkgR = $2;
-	next if $req{$1};
-	$req{$1} = $2;
+    next if $req{$1};
+    $req{$1} = $2;
   } elsif (/^C:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
     $pkgC = $2;
-	next if $con{$1};
-	$con{$1} = $2;
+    next if $con{$1};
+    $con{$1} = $2;
   } elsif (/^O:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
     $pkgO = $2;
-	next if $obs{$1};
-	$obs{$1} = $2;
+    next if $obs{$1};
+    $obs{$1} = $2;
   } elsif (/^r:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
     $pkgr = $2;
   } elsif (/^s:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
@@ -230,6 +230,13 @@
      $r = 1;
    } else {
      if ($packs_done{$1}) {
+       undef $pkgF;
+       undef $pkgP;
+       undef $pkgR;
+       undef $pkgC;
+       undef $pkgO;
+       undef $pkgr;
+       undef $pkgs;
        $r = 0;
      } else {
        $r = 1;
@@ -239,7 +246,7 @@
    next unless ($r);
     my ($i, $newid) = ($1, $2);
     undef $i unless !$ids{$i} || $verscmp->($ids{$i}, $newid) < 0;
-    undef $i unless defined($pkgF) && defined($pkgP) && defined($pkgR);
+    undef $i unless defined($pkgF) && defined($pkgP);
     if (defined $i) {
       $i =~ /^(.*)\.([^\.]+)$/ or die;
       push @{$packs_arch{$2}}, $1;
@@ -250,24 +257,32 @@
       delete $rec{$i};
       delete $con{$i};
       delete $obs{$i};
-	  delete $rec{$i};
-	  delete $sup{$i};
-      $req{$i}  = $pkgR;
+      delete $rec{$i};
+      delete $sup{$i};
+      $req{$i}  = $pkgR if defined $pkgR;
       $con{$i}  = $pkgC if defined $pkgC;
       $obs{$i}  = $pkgO if defined $pkgO;
-	  $rec{$i}  = $pkgr if defined $pkgr;
-	  $sup{$i}  = $pkgs if defined $pkgs
+      $rec{$i}  = $pkgr if defined $pkgr;
+      $sup{$i}  = $pkgs if defined $pkgs;
     } else {
-	  next if $ids{$1};
-	  $ids{$1} = $2;
+       #also need to clean the below values.
+       undef $pkgF;
+       undef $pkgP;
+       undef $pkgR;
+       undef $pkgC;
+       undef $pkgO;
+       undef $pkgr;
+       undef $pkgs;
+       next if $ids{$1};
+       $ids{$1} = $2;
 	}
     undef $pkgF;
     undef $pkgP;
     undef $pkgR;
     undef $pkgC;
     undef $pkgO;
-	undef $pkgr;
-	undef $pkgs;
+    undef $pkgr;
+    undef $pkgs;
   } elsif ($_ eq 'D:') {
     %packs_done = %ids;
   }
@@ -427,7 +442,7 @@
 }
 
 #######################################################################
-
+my @packdeps;
 my $subpacks = [];
 
 my $buildtype = '';
@@ -446,7 +461,7 @@
   unshift @extradeps, @{$d->{'deps'} || []};
   if ($d->{'prereqs'}) {
     my %deps = map {$_ => 1} (@extradeps, @{$d->{'subpacks'} || []});
-	push @packdeps, grep {!$deps{$_} && !/^%/} @{$d->{'prereqs'}};
+    push @packdeps, grep {!$deps{$_} && !/^%/} @{$d->{'prereqs'}};
   }
 }
 
--- build-20160629.orig/init_buildsystem
+++ build-20160629/init_buildsystem
@@ -46,9 +46,16 @@
 
 . $BUILD_DIR/common_functions || exit 1
 
+BUILD_IS_RUNNING="$BUILD_ROOT"/not-ready
+TMPFILE="$BUILD_ROOT"/tmpfile
+RPMIDFMT="%{NAME}-%{VERSION}-%{RELEASE} %{BUILDTIME}-%{ARCH}\n"
+RPMCHECKOPTS_HOST=
+test -x /usr/bin/rpmquery && RPMCHECKOPTS_HOST="--nodigest --nosignature"
+
 # should RPMs be installed with --force ?
 USE_FORCE=false
 PREPARE_VM=
+NOCUMULATE=false
 KEEP_PACKS=
 USEUSEDFORBUILD=
 LIST_STATE=
@@ -70,6 +77,10 @@
         shift
         KEEP_PACKS=true
         ;;
+        --nocumulate)
+        shift
+        NOCUMULATE=true
+        ;;
 	--create-build-binaries)
 	    shift
 	    CREATE_BUILD_BINARIES=true
@@ -140,48 +151,66 @@
     exit 1
 fi
 
-BUILD_IS_RUNNING=$BUILD_ROOT/not-ready
-TMPFILE=$BUILD_ROOT/tmpfile
+BUILD_IS_RUNNING="$BUILD_ROOT"/not-ready
+TMPFILE="$BUILD_ROOT"/tmpfile
 
 #
 # needed functions
 #
+mount_stuff() {
+    if test "$UID" = 0 -a -n "$BUILD_ROOT" -a "$BUILD_ROOT" != / ; then
+	mount -n -tproc none "$BUILD_ROOT/proc"
+	test -e "$BUILD_ROOT/proc/self" || cleanup_and_exit 1 "Could not mount /proc, is this a container with missing capabilities?"
+	mount -n -tdevpts -omode=0620,gid=5 none "$BUILD_ROOT/dev/pts"
+    fi
+}
+
+umount_stuff() {
+    if test -n "$BUILD_ROOT" -a "$BUILD_ROOT" != / ; then
+	buildroot_umount "/proc/sys/fs/binfmt_misc"
+	buildroot_umount "/proc"
+	buildroot_umount "/sys"
+	buildroot_umount "/dev/pts"
+	buildroot_umount "/dev/shm"
+	buildroot_umount "/mnt"
+    fi
+}
 
 cleanup_and_exit() {
     trap EXIT
+    test -z "$1" && set 0
+    if test -n "$2" ; then
+	if test "$1" -ne 0 ; then
+	    echo "$2" >&2
+	else
+	    echo "$2"
+	fi
+    fi
     test "$BUILD_ROOT" = / -a -n "$browner" && chown "$browner" "$BUILD_ROOT"
     # umount so init_buildsystem can be used standalone
-# XXX: use stat -f /dev/pts/ -c %T  to check whether it's mounted and not suppress errors then?
-    umount -n "$BUILD_ROOT/proc/sys/fs/binfmt_misc" 2> /dev/null || true
-    umount -n "$BUILD_ROOT/proc" 2> /dev/null || true
-    umount -n "$BUILD_ROOT/dev/pts" 2> /dev/null || true
-    umount -n "$BUILD_ROOT/mnt" 2> /dev/null || true
-    exit ${1:-0}
+    umount_stuff
+    # never report a fatal error when the job got killed from outside
+    test "$1" = 4 -a -e "$BUILD_ROOT/exit" && exit 1
+    exit $1
 }
 
 clean_build_root() {
-    if test -n "$BUILD_ROOT" ; then
-	umount -n "$BUILD_ROOT/proc/sys/fs/binfmt_misc" 2> /dev/null || true
-	umount -n "$BUILD_ROOT/proc" 2> /dev/null || true
-	umount -n "$BUILD_ROOT/dev/pts" 2> /dev/null || true
-	umount -n "$BUILD_ROOT/dev/shm" 2> /dev/null || true
-	umount -n "$BUILD_ROOT/mnt" 2> /dev/null || true
+    if test -n "$BUILD_ROOT" -a "$BUILD_ROOT" != / ; then
+	umount_stuff
 	rm -rf -- "$BUILD_ROOT"/* 2> /dev/null || true
-	chattr -a -A -i -R -- "$BUILD_ROOT" 2> /dev/null || true
+	chattr -a -A -i -R -- "$BUILD_ROOT" 2> /dev/null || true    # does not follow symlinks
 	rm -rf -- "$BUILD_ROOT"/*
 	rm -rf -- "$BUILD_ROOT/.build"
+	rm -rf -- "$BUILD_ROOT"/.build.console.*
+	rm -rf -- "$BUILD_ROOT"/.build.hostarch.*
 	rm -rf -- "$BUILD_ROOT"/.build.kernel.*
 	rm -rf -- "$BUILD_ROOT"/.build.initrd.*
+	rm -rf -- "$BUILD_ROOT"/.build.sysroot
 	rm -rf -- "$BUILD_ROOT/.root"
 	rm -rf -- "$BUILD_ROOT/.init_b_cache"
+	test -L "$BUILD_ROOT/.preinstall_image" && rm -f -- "$BUILD_ROOT/.preinstall_image"
 	rm -rf -- "$BUILD_ROOT"/.preinstall_image/*
 	rm -rf -- "$BUILD_ROOT"/.preinstallimage*
-	mkdir -p "$BUILD_ROOT/proc"
-	mkdir -p "$BUILD_ROOT/dev/pts"
-	if test "$UID" = 0 ; then
-	    mount -n -tproc none "$BUILD_ROOT/proc"
-	    mount -n -tdevpts -omode=0620,gid=5 none "$BUILD_ROOT/dev/pts"
-	fi
     fi
 }
 
@@ -205,7 +234,7 @@
 preinstall_image() {
     check_exit
     echo "unpacking preinstall image${2:+ $2}"
-    cd $BUILD_ROOT || cleanup_and_exit 1
+    cd "$BUILD_ROOT" || cleanup_and_exit 1
     if test -x /usr/bin/bsdtar ; then
 	TAR="/usr/bin/bsdtar -P --chroot --numeric-owner -x"
     else
@@ -225,7 +254,7 @@
     local PKG="$1"
     check_exit
     echo "preinstalling $PKG..."
-    cd $BUILD_ROOT || cleanup_and_exit 1
+    cd "$BUILD_ROOT" || cleanup_and_exit 1
     if test -x /usr/bin/bsdtar ; then
 	CPIO="/usr/bin/bsdtar -P --chroot -o --numeric-owner -x -f-"
 	TAR="/usr/bin/bsdtar -P --chroot -o --numeric-owner -x"
@@ -239,40 +268,31 @@
 }
 
 run_pkg_scripts() {
-    chroot $BUILD_ROOT /sbin/ldconfig 2>/dev/null
+    chroot "$BUILD_ROOT" /sbin/ldconfig 2>/dev/null
     for PKG in $PACKAGES_TO_RUNSCRIPTS ; do
 	pkg_runscripts
 	check_exit
     done
 }
 
-reorder() {
-    test -z "$*" && return
-    rm -f $BUILD_ROOT/.init_b_cache/order.manifest
-    for PKG in "$@" ; do
-	echo "$PKG" >> $BUILD_ROOT/.init_b_cache/order.manifest
-    done
-    $BUILD_DIR/order --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir $CONFIG_DIR --manifest $BUILD_ROOT/.init_b_cache/order.manifest $BUILD_ROOT/.init_b_cache/rpms || touch $BUILD_ROOT/exit
-    rm -f $BUILD_ROOT/.init_b_cache/order.manifest
-}
 
 create_devs() {
     local com file mode arg
 
-    mkdir -m 755 -p $BUILD_ROOT/dev/pts
-    test -d $BUILD_ROOT/dev/shm || rm -f $BUILD_ROOT/dev/shm
-    mkdir -m 755 -p $BUILD_ROOT/dev/shm
+    mkdir -m 755 -p "$BUILD_ROOT"/dev/pts
+    test -d "$BUILD_ROOT"/dev/shm || rm -f "$BUILD_ROOT"/dev/shm
+    mkdir -m 755 -p "$BUILD_ROOT"/dev/shm
     while read com file mode arg ; do
-	rm -f $BUILD_ROOT/dev/$file
+	rm -f "$BUILD_ROOT"/dev/$file
 	if test $com = ln ; then
-	    ln -s $arg $BUILD_ROOT/dev/$file
+	    ln -s $arg "$BUILD_ROOT"/dev/$file
 	    continue
 	fi
-	$com -m $mode $BUILD_ROOT/dev/$file $arg
+	$com -m $mode "$BUILD_ROOT"/dev/$file $arg
     done << DEVLIST
 	mknod null    666 c 1 3
 	mknod zero    666 c 1 5
-	mknod full    622 c 1 7
+	mknod full    666 c 1 7
 	mknod random  666 c 1 8
 	mknod urandom 644 c 1 9
 	mknod tty     666 c 5 0
@@ -411,6 +431,7 @@
     if test "${url:0:7}" == "zypp://" -o "${url:0:7}" == "http://" -o "${url:0:8}" == "https://" -o "${url:0:6}" == "ftp://" -o "${url:0:7}" == "ftps://" ; then
 	cachedir="$(getcachedir "$url")"
 	local name="$(basename "$url")"
+	name=${name/%.pkg.tar.zst/.arch}
 	name=${name/%.pkg.tar.?z/.arch}
 	SRC="$cachedir/$name"
     else
@@ -420,7 +441,9 @@
 
     local destdir="$cachedir/tmp_$$"
     mkdir -p "$destdir"
-    echo "downloading $url ... ";
+    if [ ! -f "$BUILD_ROOT"/exit ] ; then
+        echo "downloading $url ... ";
+    fi
     $BUILD_DIR/download "$destdir" "$url" || cleanup_and_exit 1
     local destfile="$destdir/${url##*/}"
     if test ! -e "$destfile" ; then
@@ -438,8 +461,68 @@
 	rm -f "$destfile.v"
 	;;
     esac
-    mv "$destfile" "$SRC" || cleanup_and_exit 1
-	rm -rf $destdir
+    # if there is such package, didn't mv.
+    if [ ! -f "$SRC" ]; then
+        # avoid race condition in multi-thread cases,
+	# and skip errors if $SRC exists, because nothing is moved in this case.
+        ln -PT "$destfile" "$SRC" && rm "$destfile" || true || cleanup_and_exit 1
+    fi
+    rm -rf $destdir
+}
+
+reorder() {
+    test -z "$*" && return
+    rm -f "$BUILD_ROOT"/.init_b_cache/order.manifest
+    for PKG in "$@" ; do
+	echo "$PKG" >> "$BUILD_ROOT"/.init_b_cache/order.manifest
+    done
+
+    #NOTICE: in reorder, you can't print any logs, or it will treate the logs as pacakges outside
+    #Change: If reorder failed because of missing packages, add logic to re-download the missed packages.
+    touch "$BUILD_ROOT"/missedPKG
+    echo "" > "$BUILD_ROOT"/missedPKG
+    while true
+    do
+	#remove exit file, it will create exit file if reorder fail.
+	rm -f "$BUILD_ROOT"/exit
+	#call order operation
+        $BUILD_DIR/order --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir $CONFIG_DIR --manifest "$BUILD_ROOT"/.init_b_cache/order.manifest "$BUILD_ROOT"/.init_b_cache/rpms "$BUILD_ROOT"/missedPKG || touch "$BUILD_ROOT"/exit
+
+	#order operation OK, exit reorder funciton
+	if [ ! -f "$BUILD_ROOT"/exit ]; then
+	    #after reorder again, if reorder is normal, should delete tmp file.
+	    rm -f "$BUILD_ROOT"/missedPKG
+	    rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist_reorder_check.download
+	    break
+	fi
+        #order operation failed!
+	if [ -f "$BUILD_ROOT"/exit ]; then
+	    #fail reason: binary not found. To try to download packages again.
+	    if test -s "$BUILD_ROOT"/missedPKG; then
+                for line in `cat "$BUILD_ROOT"/missedPKG`; do
+		    while read PKG SRC; do
+		        if [ "$PKG" = "$line" ]; then
+	                    downloadpkg "$SRC"
+                            # downloadpkg missed packages
+                            SRCSUF=${SRC/%.pkg.tar.?z/.arch}
+			    #remove the soft link that already existed.
+			    rm -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
+                            ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
+			    break
+		        fi
+		    done < "$BUILD_ROOT"/.init_b_cache/rpmlist_reorder_check.download
+	        done
+	        #clear file. use it next loop if needed.
+	        echo "" > "$BUILD_ROOT"/missedPKG
+	    #Other fail reason. Exit!
+	    else
+		rm -f "$BUILD_ROOT"/missedPKG
+                rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist_reorder_check.download
+	        break
+	    fi
+	fi
+    done
+    rm -f "$BUILD_ROOT"/.init_b_cache/order.manifest
 }
 
 getcachedir() {
@@ -457,8 +540,14 @@
     local cachepkgid pkgid xpkgid
     test -s "$1" || return 1
     if test -s "$BUILD_ROOT/.init_b_cache/rpms/$PKG.id" ; then
-	    pkgid=$(rpm -qp --qf "${RPMIDFMT}" $RPMCHECKOPTS_HOST "${1}")
-	read cachepkgid < $BUILD_ROOT/.init_b_cache/rpms/$PKG.id
+	local ep=$(rpm -qp --qf "%{EPOCH}" "'${1}'")
+	if test "$ep" != "(none)"; then
+	        RPMIDFMT_EP="%{NAME}-%{EPOCH}:%{VERSION}-%{RELEASE} %{BUILDTIME}-%{ARCH}\n"
+	        pkgid=`rpm -qp --qf "${RPMIDFMT_EP}" $RPMCHECKOPTS_HOST "'${1}'"`
+	else
+	        pkgid=`rpm -qp --qf "${RPMIDFMT}" $RPMCHECKOPTS_HOST "'${1}'"`
+	fi
+	read cachepkgid < "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.id
 	# check if the build time is zero
 	case $cachepkgid in
 	    *" 0-"*) xpkgid="${pkgid##* }"; pkgid="${pkgid% *} 0-${xpkgid#*-}" ;;
@@ -486,7 +575,7 @@
 
     echo "copying qemu"
 
-    mkdir -p $BUILD_ROOT/usr/bin
+    mkdir -p "$BUILD_ROOT"/usr/bin
 
     if check_copy_qemu; then
 
@@ -515,10 +604,10 @@
        done
 
        if [ -e /usr/sbin/qemu-binfmt-conf.sh \
-           -a ! -e $BUILD_ROOT/usr/sbin/qemu-binfmt-conf.sh ]; then
+           -a ! -e "$BUILD_ROOT"/usr/sbin/qemu-binfmt-conf.sh ]; then
            echo " /usr/sbin/qemu-binfmt-conf.sh"               # report copy
-           mkdir -p $BUILD_ROOT/usr/sbin
-           install -m755 /usr/sbin/qemu-binfmt-conf.sh $BUILD_ROOT/usr/sbin
+           mkdir -p "$BUILD_ROOT"/usr/sbin
+           install -m755 /usr/sbin/qemu-binfmt-conf.sh "$BUILD_ROOT"/usr/sbin
        fi
 
     fi
@@ -529,9 +618,9 @@
     if [ -n "$PREPARE_VM" ]; then
        if [ -x /bin/bash-static -a -x /bin/mount-static ]; then
            echo " /bin/bash-static /bin/mount-static"  # report copy
-           mkdir -p $BUILD_ROOT/bin
-           install -m755 /bin/bash-static $BUILD_ROOT/bin
-           install -m755 /bin/mount-static $BUILD_ROOT/bin
+           mkdir -p "$BUILD_ROOT"/bin
+           install -m755 /bin/bash-static "$BUILD_ROOT"/bin
+           install -m755 /bin/mount-static "$BUILD_ROOT"/bin
        fi
     fi
 }
@@ -555,10 +644,7 @@
 if test -e "$BUILD_IS_RUNNING" ; then
     echo "It seems that there was an incomplete setup of $BUILD_ROOT."
     echo "To be sure, we will build it again completely..."
-    umount -n $BUILD_ROOT/proc/sys/fs/binfmt_misc 2> /dev/null || true
-    umount -n $BUILD_ROOT/proc 2> /dev/null
-    umount -n $BUILD_ROOT/dev/pts 2> /dev/null
-    umount -n $BUILD_ROOT/mnt 2> /dev/null
+    umount_stuff
     echo "Your build system is broken!! Shall I execute"
     echo
     echo "    rm -rf -- $BUILD_ROOT/*"
@@ -567,37 +653,46 @@
     echo "N - No, abort build (default on enter)"
     echo "c - Continue anyway with this build root"
     echo -n "[y/N/c] "
-    read ANSWER
-    case "$ANSWER" in
-	c|C)
-	    rm -f $BUILD_IS_RUNNING $BUILD_ROOT/exit ;;
-	y|Y)
-	    clean_build_root ;;
-	*)
-	    cleanup_and_exit 1 ;;
-    esac
+    read -t 10 ANSWER
+    if test "$?" -ne 0 ; then
+	    echo "cleanup the build root as default action"
+	    clean_build_root
+    else
+	    case "$ANSWER" in
+		c|C)
+		    rm -f $BUILD_IS_RUNNING "$BUILD_ROOT"/exit ;;
+		y|Y)
+		    clean_build_root ;;
+		*)
+		    cleanup_and_exit 1 ;;
+	    esac
+    fi
+fi
+
+# check for surprises
+if test -z "$CLEAN_BUILD" -a -n "$BUILD_ROOT" -a "$BUILD_ROOT" != / ; then
+    assert_dirs
+fi
+
+# umount stuff if mounted
+if test -n "$BUILD_ROOT" -a "$BUILD_ROOT" != / -a -e "$BUILD_ROOT/proc/self" ; then
+    umount_stuff
 fi
 
 #
-# store that we start to build system
+# store that we start to build the system
 #
-mkdir -p $BUILD_ROOT
-mkdir -p $BUILD_ROOT/.build
+mkdir -p -- "$BUILD_ROOT" "$BUILD_ROOT/.build" "$BUILD_ROOT/proc" "$BUILD_ROOT/sys" "$BUILD_ROOT/dev/pts" || cleanup_and_exit 4
+
 touch $BUILD_IS_RUNNING
 
 if test -n "$PREPARE_VM" ; then
-    rm -f $BUILD_ROOT/.build/init_buildsystem.data
+    rm -f "$BUILD_ROOT"/.build/init_buildsystem.data
 fi
 
-if test -e $BUILD_ROOT/.build/init_buildsystem.data ; then
-    # vm continuation
-    . $BUILD_ROOT/.build/init_buildsystem.data
-    if ! test -e $BUILD_ROOT/.init_b_cache/preinstall_finished ; then
-	# finish preinstall
-	run_pkg_scripts
-	pkg_initdb
-	touch $BUILD_ROOT/.init_b_cache/preinstall_finished
-    fi
+if test -e "$BUILD_ROOT"/.build/init_buildsystem.data ; then
+    # vm continuation, read old config
+    . "$BUILD_ROOT"/.build/init_buildsystem.data
 else
     #
     # now make sure that all the packages are installed.
@@ -609,17 +704,17 @@
 	#
 	# create rpmdeps file
 	#
-	CACHE_FILE=$BUILD_ROOT/.srcfiles.cache
+	CACHE_FILE="$BUILD_ROOT"/.srcfiles.cache
 	create_cache_file
 
 	#
 	# select and expand packages
 	#
-	RPMLIST=$BUILD_ROOT/.init_b_cache/rpmlist
+	RPMLIST="$BUILD_ROOT"/.init_b_cache/rpmlist
 	test -z "$LIST_STATE" && echo "expanding package dependencies..."
 	VMOPT=
 	test -z "$PREPARE_VM" || VMOPT=--vm
-	if ! $BUILD_DIR/expanddeps $USEUSEDFORBUILD $USEHIGHERDEPS "${definesnstuff[@]}" --dist "$BUILD_DIST" --depfile "$CACHE_FILE" --archpath "$BUILD_ARCH" --configdir $CONFIG_DIR "${PKGS[@]}" > $RPMLIST ; then
+	if ! $BUILD_DIR/expanddeps $USEUSEDFORBUILD $VMOPT $USEHIGHERDEPS "${definesnstuff[@]}" --dist "$BUILD_DIST" --depfile "$CACHE_FILE" --archpath "$BUILD_ARCH" --configdir $CONFIG_DIR "${PKGS[@]}" > $RPMLIST ; then
 	    rm -f $BUILD_IS_RUNNING
 	    cleanup_and_exit 1
 	fi
@@ -635,7 +730,7 @@
 	   test "$PKG" = "dist:" && continue
 	   test "$PKG" = "rpmid:" && continue
 	   echo "${SRC##*/}"
-	done < $BUILD_ROOT/.init_b_cache/rpmlist
+	done < "$BUILD_ROOT"/.init_b_cache/rpmlist
 	rm -rf "$BUILD_ROOT/.init_b_cache"
 	cleanup_and_exit 0
     fi
@@ -644,7 +739,7 @@
     # register the QEMU emulator if needed
     # (we do not need this for the prepare step, as we do not run scripts in this case)
     #
-	copy_qemu
+    copy_qemu
     if test -z "$PREPARE_VM" ; then
 	if check_use_emulator ; then
 	    echo "registering binfmt handlers for cross build"
@@ -671,8 +766,8 @@
     RUNSCRIPTS_SEEN=
     PACKAGES_FROM_PREINSTALLIMAGE=
     GUESSED_DIST=unknown
-    mkdir -p $BUILD_ROOT/.init_b_cache/rpms
-    rm -f $BUILD_ROOT/.init_b_cache/rpmlist.download
+    mkdir -p "$BUILD_ROOT"/.init_b_cache/rpms
+    rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist.download
     while read PKG SRC ; do
 	if test "$PKG" = "preinstall:" ; then
 	    PACKAGES_TO_PREINSTALL=$SRC
@@ -709,7 +804,7 @@
 	    continue
 	fi
 	if test "$PKG" = "rpmid:" ; then
-	    echo "${SRC#*:}" > $BUILD_ROOT/.init_b_cache/rpms/${SRC%%:*}.id
+	    echo "${SRC#*:}" > "$BUILD_ROOT"/.init_b_cache/rpms/${SRC%%:*}.id
 	    continue
 	fi
 	if test "$PKG" != "${PKG%:}"; then
@@ -725,7 +820,7 @@
 	if test "${SRC#/}" = "$SRC" ; then
 	    case "$SRC" in
 		zypp://* | http://* | https://* | ftp://* | ftps://*)
-		    echo "$PKG $SRC" >>$BUILD_ROOT/.init_b_cache/rpmlist.download
+		    echo "$PKG $SRC" >>"$BUILD_ROOT"/.init_b_cache/rpmlist.download
 		    continue
 		    ;;
 		*)
@@ -734,7 +829,8 @@
 		    ;;
 	    esac
 	fi
-	SRCSUF=${SRC/%.pkg.tar.?z/.arch}
+	SRCSUF=${SRC/%.pkg.tar.zst/.arch}
+	SRCSUF=${SRCSUF/%.pkg.tar.?z/.arch}
 	ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
     done < $RPMLIST
 
@@ -759,55 +855,60 @@
     fi
 
     # check if we really can use cached versions for packages on the download list
-    if test -s $BUILD_ROOT/.init_b_cache/rpmlist.download ; then
+    if test -s "$BUILD_ROOT"/.init_b_cache/rpmlist.download ; then
 	echo "calculating packages to download..."
-	rm -f $BUILD_ROOT/.init_b_cache/rpmlist.download2
+	rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist.download2
         while read PKG SRC ; do
 	    cachepkg="${SRC##*/}"
+	    cachepkg="${cachepkg/%.pkg.tar.zst/.arch}"
 	    cachepkg="${cachepkg/%.pkg.tar.?z/.arch}"
 	    if test "$SRC" != "${SRC#zypp://}" ; then
 		# for zypp packages also look in the zypp cache
 		cachedir="/var/cache/zypp/packages/${SRC#zypp://}"
 		cachedir="${cachedir%/*}"
 		if can_reuse_cached_package "$cachedir/$cachepkg" ; then
-		    SRCSUF=${SRC/%.pkg.tar.?z/.arch}
+	            SRCSUF=${SRC/%.pkg.tar.zst/.arch}
+	            SRCSUF=${SRCSUF/%.pkg.tar.?z/.arch}
 		    ln -s "$cachedir/$cachepkg" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
 		    continue
 		fi
 	    fi
 	    cachedir="$(getcachedir "$SRC")"
 	    if can_reuse_cached_package "$cachedir/$cachepkg" ; then
-		SRCSUF=${SRC/%.pkg.tar.?z/.arch}
-		ln -s "$cachedir/$cachepkg" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
+	        SRCSUF=${SRC/%.pkg.tar.zst/.arch}
+	        SRCSUF=${SRCSUF/%.pkg.tar.?z/.arch}
+        ln -s "$cachedir/$cachepkg" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
 		continue
 	    fi
 	    # not found in cache or cache has different package
 	    rm -f "$cachedir/$cachepkg"
-	    echo "$PKG $SRC" >>$BUILD_ROOT/.init_b_cache/rpmlist.download2
-	done < $BUILD_ROOT/.init_b_cache/rpmlist.download
-	rm -f $BUILD_ROOT/.init_b_cache/rpmlist.download
-	test -s $BUILD_ROOT/.init_b_cache/rpmlist.download2 && mv $BUILD_ROOT/.init_b_cache/rpmlist.download2 $BUILD_ROOT/.init_b_cache/rpmlist.download
+	    echo "$PKG $SRC" >>"$BUILD_ROOT"/.init_b_cache/rpmlist.download2
+	done < "$BUILD_ROOT"/.init_b_cache/rpmlist.download
+	rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist.download
+	test -s "$BUILD_ROOT"/.init_b_cache/rpmlist.download2 && mv "$BUILD_ROOT"/.init_b_cache/rpmlist.download2 "$BUILD_ROOT"/.init_b_cache/rpmlist.download
     fi
 
     # now do the download of missing packages
-    if test -s $BUILD_ROOT/.init_b_cache/rpmlist.download ; then
+    if test -s "$BUILD_ROOT"/.init_b_cache/rpmlist.download ; then
         PACKAGES_TO_DOWNLOAD=`cat ${RPMLIST}.download|awk '{print $2}'`
         progress_setup PACKAGES_TO_DOWNLOAD
         while read PKG SRC ; do
             progress_step PACKAGES_TO_DOWNLOAD
             downloadpkg "$SRC"
 	    # downloadpkg modified $SRC, so it has a right name for use
-	    SRCSUF=${SRC/%.pkg.tar.?z/.arch}
+	    SRCSUF=${SRC/%.pkg.tar.zst/.arch}
+	    SRCSUF=${SRCSUF/%.pkg.tar.?z/.arch}
 	    ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
-        done < $BUILD_ROOT/.init_b_cache/rpmlist.download
-        rm -f $BUILD_ROOT/.init_b_cache/rpmlist.download
+        done < "$BUILD_ROOT"/.init_b_cache/rpmlist.download
+	cp "$BUILD_ROOT"/.init_b_cache/rpmlist.download "$BUILD_ROOT"/.init_b_cache/rpmlist_reorder_check.download
+        rm -f "$BUILD_ROOT"/.init_b_cache/rpmlist.download
         echo
     fi
 
     # compatibility...
     test -z "$RUNSCRIPTS_SEEN" && PACKAGES_TO_RUNSCRIPTS="$PACKAGES_TO_PREINSTALL"
 
-    echo "$GUESSED_DIST" > $BUILD_ROOT/.guessed_dist
+    echo "$GUESSED_DIST" > "$BUILD_ROOT"/.guessed_dist
     test -n "$BUILD_DIST" || BUILD_DIST="$GUESSED_DIST"
 
     pkg_set_type
@@ -815,7 +916,7 @@
     if test -n "$PREINSTALL_IMAGE" ; then
 	for PKG in $PACKAGES_FROM_PREINSTALLIMAGE ; do
 	    # touch the file so that the copying works
-	    touch $BUILD_ROOT/.init_b_cache/rpms/"$PKG.$PSUF"
+	    touch "$BUILD_ROOT"/.init_b_cache/rpms/"$PKG.$PSUF"
 	done
     fi
 
@@ -824,12 +925,12 @@
 #
 # test if we need to preinstall
 #
-if test ! -e $BUILD_ROOT/installed-pkg -a ! -e $BUILD_ROOT/.build/init_buildsystem.data ; then
-    mkdir -p $BUILD_ROOT/etc || cleanup_and_exit 1
-    mkdir -p $BUILD_ROOT/proc || cleanup_and_exit 1
-    test -f $BUILD_ROOT/etc/HOSTNAME || hostname -f > $BUILD_ROOT/etc/HOSTNAME
+if test ! -e "$BUILD_ROOT"/installed-pkg -a ! -e "$BUILD_ROOT"/.build/init_buildsystem.data ; then
+    mkdir -p "$BUILD_ROOT"/etc || cleanup_and_exit 1
+    mkdir -p "$BUILD_ROOT"/proc || cleanup_and_exit 1
+    test -f "$BUILD_ROOT"/etc/HOSTNAME || hostname -f > "$BUILD_ROOT"/etc/HOSTNAME
     for PKG in $PACKAGES_TO_RUNSCRIPTS ; do
-	: > $BUILD_ROOT/.init_b_cache/scripts/$PKG.run
+	: > "$BUILD_ROOT"/.init_b_cache/scripts/$PKG.run
     done
     PACKAGES_TO_PREINSTALL_FILTERED="$PACKAGES_TO_PREINSTALL"
     PACKAGES_TO_VMINSTALL_FILTERED="$PACKAGES_TO_VMINSTALL"
@@ -857,26 +958,32 @@
     # for reorder
     check_exit
     if test -w /root ; then
-	test -c $BUILD_ROOT/dev/null || create_devs
+	test -c "$BUILD_ROOT"/dev/null || create_devs
     fi
-    test -e $BUILD_ROOT/etc/fstab || touch $BUILD_ROOT/etc/fstab
-    test ! -e $BUILD_ROOT/etc/ld.so.conf -a -e $BUILD_ROOT/etc/ld.so.conf.in && cp $BUILD_ROOT/etc/ld.so.conf.in $BUILD_ROOT/etc/ld.so.conf
+    test -e "$BUILD_ROOT"/etc/fstab || touch "$BUILD_ROOT"/etc/fstab
+    test ! -e "$BUILD_ROOT"/etc/ld.so.conf -a -e "$BUILD_ROOT"/etc/ld.so.conf.in && cp "$BUILD_ROOT"/etc/ld.so.conf.in "$BUILD_ROOT"/etc/ld.so.conf
     if test -z "$PREPARE_VM" ; then
+	mount_stuff
 	run_pkg_scripts
 	pkg_initdb
-	touch $BUILD_ROOT/.init_b_cache/preinstall_finished
+	touch "$BUILD_ROOT"/.init_b_cache/preinstall_finished
     fi
     # mark as preinstalled no longer needed
     rm -rf "$BUILD_ROOT/installed-pkg"
     mkdir -p "$BUILD_ROOT/installed-pkg"
+else
+    # preinstall was already done
+    if test -z "$PREPARE_VM" ; then
+	mount_stuff
+    fi
 fi
 
 if test -n "$PREPARE_VM" ; then
     echo "copying packages..."
     for PKG in $PACKAGES_TO_ALL ; do
-	rm -f $BUILD_ROOT/.init_b_cache/$PKG.$PSUF
-	cp $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF $BUILD_ROOT/.init_b_cache/$PKG.$PSUF || cleanup_and_exit 1
-	ln -s -f ../$PKG.$PSUF $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF
+	rm -f "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF
+	cp "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.$PSUF "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF || cleanup_and_exit 1
+	ln -s -f ../$PKG.$PSUF "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.$PSUF
 	check_exit
     done
     # alreadyinstalled check will not work, but we have to live with that...
@@ -885,21 +992,25 @@
     check_exit
     echo 'done'
     Q="'\''"
-    echo "PACKAGES_TO_INSTALL='${PACKAGES_TO_INSTALL//"'"/$Q}'" > $BUILD_ROOT/.build/init_buildsystem.data
-    echo "PACKAGES_TO_RUNSCRIPTS='${PACKAGES_TO_RUNSCRIPTS//"'"/$Q}'" >> $BUILD_ROOT/.build/init_buildsystem.data
+    echo "PACKAGES_TO_INSTALL='${PACKAGES_TO_INSTALL//"'"/$Q}'" > "$BUILD_ROOT"/.build/init_buildsystem.data
+    echo "PACKAGES_TO_RUNSCRIPTS='${PACKAGES_TO_RUNSCRIPTS//"'"/$Q}'" >> "$BUILD_ROOT"/.build/init_buildsystem.data
     # needed for continuation in xen/kvm with rpm-x86
-    echo "PACKAGES_TO_PREINSTALL='${PACKAGES_TO_PREINSTALL//"'"/$Q}'" >> $BUILD_ROOT/.build/init_buildsystem.data
-    echo "PACKAGES_TO_AVAILABLE='${PACKAGES_TO_AVAILABLE//"'"/$Q}'" >> $BUILD_ROOT/.build/init_buildsystem.data
-    echo "PSUF='$PSUF'" >> $BUILD_ROOT/.build/init_buildsystem.data
+    echo "PACKAGES_TO_PREINSTALL='${PACKAGES_TO_PREINSTALL//"'"/$Q}'" >> "$BUILD_ROOT"/.build/init_buildsystem.data
+    echo "PACKAGES_TO_AVAILABLE='${PACKAGES_TO_AVAILABLE//"'"/$Q}'" >> "$BUILD_ROOT"/.build/init_buildsystem.data
+    echo "PSUF='$PSUF'" >> "$BUILD_ROOT"/.build/init_buildsystem.data
     rm -f $BUILD_IS_RUNNING
     cleanup_and_exit 0
 fi
 
+#
+# finish preinstall if this is a vm continuation
+#
+if test -e "$BUILD_ROOT/.build/init_buildsystem.data" -a ! -e "$BUILD_ROOT/.init_b_cache/preinstall_finished" ; then
+    run_pkg_scripts
+    pkg_initdb
+    touch "$BUILD_ROOT/.init_b_cache/preinstall_finished"
+fi
 
-mkdir -p $BUILD_ROOT/proc
-mkdir -p $BUILD_ROOT/dev/pts
-mount -n -tproc none $BUILD_ROOT/proc 2>/dev/null || true
-mount -n -tdevpts -omode=0620,gid=5 none $BUILD_ROOT/dev/pts 2>/dev/null || true
 
 #
 # create .build.binaries directory if requested
@@ -921,17 +1032,17 @@
 #
 # reorder packages (already done in vm continuation)
 #
-if ! test -e $BUILD_ROOT/.build/init_buildsystem.data ; then
+if ! test -e "$BUILD_ROOT"/.build/init_buildsystem.data ; then
     echo -n 'reordering...'
     PACKAGES_TO_INSTALL=`reorder $PACKAGES_TO_INSTALL`
     check_exit
-    echo 'done'
+    echo 'reordering done'
 fi
 
 #
 # get list and ids of already installed packages
 #
-mkdir -p $BUILD_ROOT/.init_b_cache/alreadyinstalled
+mkdir -p "$BUILD_ROOT"/.init_b_cache/alreadyinstalled
 listinstalled --root "$BUILD_ROOT" --type "$PSUF" --extraname | (
     while read id name buildid; do
 	echo "$buildid" > "$BUILD_ROOT/.init_b_cache/alreadyinstalled/$name"
@@ -945,20 +1056,20 @@
 # delete all packages we don't want
 #
 if [ -z "$KEEP_PACKS" ]; then
-    mkdir -p $BUILD_ROOT/.init_b_cache/todelete
-    for PKG in $BUILD_ROOT/.init_b_cache/alreadyinstalled/* ; do
+    mkdir -p "$BUILD_ROOT"/.init_b_cache/todelete
+    for PKG in "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/* ; do
         PKG=${PKG##*/}
         test "$PKG" = "*" && continue
-        ln $BUILD_ROOT/.init_b_cache/alreadyinstalled/$PKG $BUILD_ROOT/.init_b_cache/todelete/$PKG
+        ln "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/$PKG "$BUILD_ROOT"/.init_b_cache/todelete/$PKG
     done
     for PKG in $PACKAGES_TO_INSTALL; do
-        rm -f $BUILD_ROOT/.init_b_cache/todelete/$PKG
+        rm -f "$BUILD_ROOT"/.init_b_cache/todelete/$PKG
     done
-    for PKG in $BUILD_ROOT/.init_b_cache/todelete/* ; do
+    for PKG in "$BUILD_ROOT"/.init_b_cache/todelete/* ; do
         PKG=${PKG##*/}
         test "$PKG" = "*" && continue
         echo "deleting $PKG"
-        rpm_e "$PKG"
+		pkg_erase
         check_exit
     done
     rm -rf "$BUILD_ROOT/.init_b_cache/todelete"
@@ -972,65 +1083,71 @@
 rm -rf "$BUILD_ROOT/installed-pkg"
 mkdir -p "$BUILD_ROOT/installed-pkg"
 
-test -x $BUILD_ROOT/sbin/ldconfig && chroot $BUILD_ROOT /sbin/ldconfig 2>&1
+test -x "$BUILD_ROOT"/sbin/ldconfig && chroot "$BUILD_ROOT" /sbin/ldconfig 2>&1
 
 MAIN_LIST="$PACKAGES_TO_INSTALL"
 progress_setup MAIN_LIST
 for PKG in $MAIN_LIST ; do
-    test -f $BUILD_ROOT/installed-pkg/$PKG && continue
+    test -f "$BUILD_ROOT"/installed-pkg/$PKG && continue
     progress_step MAIN_LIST
 
     if test -e "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" -a ! -s "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" ; then
 	# preinstallimage package, make sure it's in the image
-	if ! test -e $BUILD_ROOT/.preinstall_image/$PKG ; then
+	if ! test -e "$BUILD_ROOT"/.preinstall_image/$PKG ; then
 	    echo "Package $PKG is missing from the preinstall image"
 	    cleanup_and_exit 1
 	fi
-	read PKG_HDRMD5 PKGID < $BUILD_ROOT/.preinstall_image/$PKG
+	read PKG_HDRMD5 PKGID < "$BUILD_ROOT"/.preinstall_image/$PKG
 	echo "preinstalled ${PKGID%% *}"
-	echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG
+	echo "$PKGID" > "$BUILD_ROOT"/installed-pkg/$PKG
 	continue
     fi
 
     # get the hdrmd5 if we want to create a preinstall image
     PKG_HDRMD5=
-    if test -d $BUILD_ROOT/.preinstall_image -a ! -e $BUILD_ROOT/.preinstall_image/$PKG ; then
-	PKG_HDRMD5=`perl -I$BUILD_DIR -MBuild -e 'print Build::queryhdrmd5($ARGV[0])' $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF`
+    if test -d "$BUILD_ROOT"/.preinstall_image -a ! -e "$BUILD_ROOT"/.preinstall_image/$PKG ; then
+	PKG_HDRMD5=`perl -I$BUILD_DIR -MBuild -e 'print Build::queryhdrmd5($ARGV[0])' "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.$PSUF`
 	test -n "$PKG_HDRMD5" || cleanup_and_exit 1
     fi
 
-    test -L $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF || continue
+    test -L "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.$PSUF || continue
 
     # check if we can keep an already installed package
-    if test "$VERIFY_BUILD_SYSTEM" != true -a -f $BUILD_ROOT/.init_b_cache/rpms/$PKG.id -a -f $BUILD_ROOT/.init_b_cache/alreadyinstalled/$PKG ; then
-	read PKGID < $BUILD_ROOT/.init_b_cache/rpms/$PKG.id
-	read OLDPKGID < $BUILD_ROOT/.init_b_cache/alreadyinstalled/$PKG
+    if test "$VERIFY_BUILD_SYSTEM" != true -a -f "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.id -a -f "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/$PKG ; then
+	read PKGID < "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.id
+	read OLDPKGID < "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/$PKG
 	if test "$PKGID" = "$OLDPKGID" ; then
 	    echo "keeping ${PKGID%% *}"
-	    rm -f $BUILD_ROOT/.init_b_cache/$PKG.$PSUF
-	    echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG
-	    test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > $BUILD_ROOT/.preinstall_image/$PKG
+	    rm -f "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF
+	    echo "$PKGID" > "$BUILD_ROOT"/installed-pkg/$PKG
+	    test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > "$BUILD_ROOT"/.preinstall_image/$PKG
 	    continue
 	fi
     fi
-   
-   # revert use rpm to query pkgid if building rpm package 
+
+   # revert use rpm to query pkgid if building rpm package
    if test "$PSUF" != "rpm" ; then
        PKGID=$(perl -I$BUILD_DIR -MBuild -e Build::showquery "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" buildid)
    else
-       PKGID=`rpm -qp --qf "$RPMIDFMT" $RPMCHECKOPTS_HOST $BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm`
+       ep=$(rpm -qp --qf "%{EPOCH}" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.$PSUF")
+       if test "$ep" != "(none)"; then
+           RPMIDFMT_EP="%{NAME}-%{EPOCH}:%{VERSION}-%{RELEASE} %{BUILDTIME}-%{ARCH}\n"
+           PKGID=`rpm -qp --qf "${RPMIDFMT_EP}" $RPMCHECKOPTS_HOST "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.$PSUF"`
+       else
+           PKGID=`rpm -qp --qf "${RPMIDFMT}" $RPMCHECKOPTS_HOST "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.$PSUF"`
+       fi
    fi
 
-    if test -f $BUILD_ROOT/.init_b_cache/alreadyinstalled/$PKG ; then
-	read OLDPKGID < $BUILD_ROOT/.init_b_cache/alreadyinstalled/$PKG
+    if test -f "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/$PKG ; then
+	read OLDPKGID < "$BUILD_ROOT"/.init_b_cache/alreadyinstalled/$PKG
 	if test "$PKGID" != "$OLDPKGID" ; then
 	    echo "deleting unwanted ${OLDPKGID%% *}"
 	    pkg_erase
 	else
 	    if test "$VERIFY_BUILD_SYSTEM" != true || pkg_verify_installed ; then
 		echo "keeping ${PKGID%% *}"
-		echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG
-		test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > $BUILD_ROOT/.preinstall_image/$PKG
+		echo "$PKGID" > "$BUILD_ROOT"/installed-pkg/$PKG
+		test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > "$BUILD_ROOT"/.preinstall_image/$PKG
 		continue
 	    fi
 	    echo "deleting incomplete ${OLDPKGID%% *}"
@@ -1041,23 +1158,34 @@
 	fi
 	check_exit
     fi
-    
+
+    export ADDITIONAL_PARAMS=
+    if test "$USE_FORCE" = true ; then
+       export ADDITIONAL_PARAMS="$ADDITIONAL_PARAMS --force"
+    fi
+    # work around for cross-build installs, we must not overwrite the running rpm
+    if test "$PKG" = rpm ; then
+       for i in "$BUILD_ROOT"/.init_b_cache/preinstalls/rpm-x86-* ; do
+           test -e "$i" && ADDITIONAL_PARAMS="$ADDITIONAL_PARAMS --justdb"
+       done
+    fi
+
     if pkg_cumulate ; then
 	echo "cumulate ${PKGID%% *}"
 	continue
     fi
-    
+
     # install the package
     echo "installing ${PKGID%% *}"
     if ! test "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" -ef "$BUILD_ROOT/.init_b_cache/$PKG.$PSUF" ; then
-	rm -f $BUILD_ROOT/.init_b_cache/$PKG.$PSUF
-	cp $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF $BUILD_ROOT/.init_b_cache/$PKG.$PSUF || cleanup_and_exit 1
+	rm -f "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF
+	cp "$BUILD_ROOT"/.init_b_cache/rpms/$PKG.$PSUF "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF || cleanup_and_exit 1
     fi
     pkg_install
     check_exit
-    rm -f $BUILD_ROOT/.init_b_cache/$PKG.$PSUF
-    echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG
-    test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > $BUILD_ROOT/.preinstall_image/$PKG
+    rm -f "$BUILD_ROOT"/.init_b_cache/$PKG.$PSUF
+    echo "$PKGID" > "$BUILD_ROOT"/installed-pkg/$PKG
+    test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > "$BUILD_ROOT"/.preinstall_image/$PKG
 
 done
 
@@ -1065,24 +1193,24 @@
 pkg_finalize
 
 # devices can vanish if devs got uninstalled
-test -c $BUILD_ROOT/dev/null || create_devs
+test -c "$BUILD_ROOT"/dev/null || create_devs
 
-cd $BUILD_ROOT || cleanup_and_exit 1
+cd "$BUILD_ROOT" || cleanup_and_exit 1
 
 #
 # setup /etc/mtab
 #
-rm -f $BUILD_ROOT/etc/mtab
-cp /proc/mounts $BUILD_ROOT/etc/mtab
-chmod 644 $BUILD_ROOT/etc/mtab
+#init_buildsystem: make /etc/mtab a symlink
+#from patch:https://github.com/openSUSE/obs-build/commit/f0e7d37c811dbde49fcd5b9c8779063f4e87cb74
+ln -sf ../proc/self/mounts $BUILD_ROOT/etc/mtab
 
 #
 # make sure, that our nis is not present in the chroot system
 #
-test -e $BUILD_ROOT/etc/nsswitch.conf && {
+test -e "$BUILD_ROOT"/etc/nsswitch.conf && {
     echo "removing nis flags from $BUILD_ROOT/etc/nsswitch.conf..."
-    cat $BUILD_ROOT/etc/nsswitch.conf | sed -e"s:nis::g" > $BUILD_ROOT/etc/nsswitch.conf.tmp
-    mv $BUILD_ROOT/etc/nsswitch.conf.tmp $BUILD_ROOT/etc/nsswitch.conf
+    cat "$BUILD_ROOT"/etc/nsswitch.conf | sed -e"s:nis::g" > "$BUILD_ROOT"/etc/nsswitch.conf.tmp
+    mv "$BUILD_ROOT"/etc/nsswitch.conf.tmp "$BUILD_ROOT"/etc/nsswitch.conf
 }
 
 #
@@ -1091,21 +1219,21 @@
 for DIR in /usr/share/doc/packages \
 	   /usr/X11R6/include/X11/pixmaps \
 	   /usr/X11R6/include/X11/bitmaps ; do
-    mkdir -p $BUILD_ROOT/$DIR
+    mkdir -p "$BUILD_ROOT"/$DIR
 done
 for FILE in /var/run/utmp /var/log/wtmp /etc/fstab ; do
-    mkdir -p $BUILD_ROOT/${FILE%/*}
-    touch $BUILD_ROOT/$FILE
+    mkdir -p "$BUILD_ROOT"/${FILE%/*}
+    touch "$BUILD_ROOT"/$FILE
 done
 
 echo now finalizing build dir...
-if test -x $BUILD_ROOT/sbin/ldconfig ; then
-	CHROOT_RETURN="`chroot $BUILD_ROOT /sbin/ldconfig 2>&1`"
+if test -x "$BUILD_ROOT"/sbin/ldconfig ; then
+	CHROOT_RETURN="`chroot "$BUILD_ROOT" /sbin/ldconfig 2>&1`"
 	case "$CHROOT_RETURN" in
 	    *warning:*)
-		chroot $BUILD_ROOT /sbin/ldconfig
+		chroot "$BUILD_ROOT" /sbin/ldconfig
 		echo
-		echo chroot $BUILD_ROOT /sbin/ldconfig
+		echo chroot "$BUILD_ROOT" /sbin/ldconfig
 		echo
 		echo "$CHROOT_RETURN"
 		echo
@@ -1116,52 +1244,52 @@
 	esac
 fi
 
-if test -x $BUILD_ROOT/usr/sbin/Check && ! grep -q "/usr/sbin/Check is obsolete" $BUILD_ROOT/usr/sbin/Check ; then
-    chroot $BUILD_ROOT /usr/sbin/Check
+if test -x "$BUILD_ROOT"/usr/sbin/Check && ! grep -q "/usr/sbin/Check is obsolete" "$BUILD_ROOT"/usr/sbin/Check ; then
+    chroot "$BUILD_ROOT" /usr/sbin/Check
 fi
 
-mkdir -p $BUILD_ROOT/var/adm/packages
-touch $BUILD_ROOT/var/adm/packages
+mkdir -p "$BUILD_ROOT"/var/adm/packages
+touch "$BUILD_ROOT"/var/adm/packages
 
-if test -x $BUILD_ROOT/sbin/SuSEconfig ; then
-    if grep norestarts $BUILD_ROOT/sbin/SuSEconfig > /dev/null ; then
-	chroot $BUILD_ROOT /sbin/SuSEconfig --norestarts --force
+if test -x "$BUILD_ROOT"/sbin/SuSEconfig ; then
+    if grep norestarts "$BUILD_ROOT"/sbin/SuSEconfig > /dev/null ; then
+	chroot "$BUILD_ROOT" /sbin/SuSEconfig --norestarts --force
     else
-	chroot $BUILD_ROOT /sbin/SuSEconfig --force
+	chroot "$BUILD_ROOT" /sbin/SuSEconfig --force
     fi
 fi
 
-if test -x $BUILD_ROOT/usr/X11R6/bin/switch2mesasoft ; then
-    chroot $BUILD_ROOT /usr/X11R6/bin/switch2mesasoft
+if test -x "$BUILD_ROOT"/usr/X11R6/bin/switch2mesasoft ; then
+    chroot "$BUILD_ROOT" /usr/X11R6/bin/switch2mesasoft
 fi
 
 for PROG in /usr/bin/TeX/texhash /usr/bin/texhash ; do
-    test -x $BUILD_ROOT/$PROG && \
-	chroot $BUILD_ROOT bash -c ". /etc/profile ; $PROG"
+    test -x "$BUILD_ROOT"/$PROG && \
+	chroot "$BUILD_ROOT" bash -c ". /etc/profile ; $PROG"
 done
 
-if test -e $BUILD_ROOT/usr/share/zoneinfo/UTC ; then
+if test -e "$BUILD_ROOT"/usr/share/zoneinfo/UTC ; then
     for PROG in /usr/sbin/zic /usr/bin/zic /bin/zic /sbin/zic ; do
-        test -x $BUILD_ROOT/$PROG  && chroot $BUILD_ROOT bash -c "$PROG -l \$(readlink -f /usr/share/zoneinfo/UTC)"
+        test -x "$BUILD_ROOT"/$PROG  && chroot "$BUILD_ROOT" bash -c "$PROG -l \$(readlink -f /usr/share/zoneinfo/UTC)"
     done
 fi
 
-test -e $BUILD_ROOT/.build/init_buildsystem.data || HOST=`hostname`
-test -e $BUILD_ROOT/etc/hosts || echo "127.0.0.1 localhost" > $BUILD_ROOT/etc/hosts
-if ! grep -F "127.0.0.1 $HOST" $BUILD_ROOT/etc/hosts > /dev/null ; then
+test -e "$BUILD_ROOT"/.build/init_buildsystem.data || HOST=`hostname`
+test -e "$BUILD_ROOT"/etc/hosts || echo "127.0.0.1 localhost" > "$BUILD_ROOT"/etc/hosts
+if ! grep -F "127.0.0.1 $HOST" "$BUILD_ROOT"/etc/hosts > /dev/null ; then
     # this makes a reverse lookup on 127.0.0.1 return the host name,
     # which is bad, but 127.0.0.2 does not work on all unix systems
-    echo "127.0.0.1 $HOST" > $BUILD_ROOT/etc/hosts.new
-    test -f $BUILD_ROOT/etc/hosts && cat $BUILD_ROOT/etc/hosts >> $BUILD_ROOT/etc/hosts.new
-    mv $BUILD_ROOT/etc/hosts.new $BUILD_ROOT/etc/hosts
+    echo "127.0.0.1 $HOST" > "$BUILD_ROOT"/etc/hosts.new
+    test -f "$BUILD_ROOT"/etc/hosts && cat "$BUILD_ROOT"/etc/hosts >> "$BUILD_ROOT"/etc/hosts.new
+    mv "$BUILD_ROOT"/etc/hosts.new "$BUILD_ROOT"/etc/hosts
 fi
 
 # XXX: still needed?
-if test -x $BUILD_ROOT/bin/rpm -a ! -f $BUILD_ROOT/var/lib/rpm/packages.rpm -a ! -f $BUILD_ROOT/var/lib/rpm/Packages ; then
+if test -x "$BUILD_ROOT"/bin/rpm -a ! -f "$BUILD_ROOT"/var/lib/rpm/packages.rpm -a ! -f "$BUILD_ROOT"/var/lib/rpm/Packages ; then
     pkg_initdb_rpm
-    chroot $BUILD_ROOT rpm -q --whatprovides rpm >/dev/null 2>&1	# create provides index
+    chroot "$BUILD_ROOT" rpm -q --whatprovides rpm >/dev/null 2>&1	# create provides index
 fi
-rm -f $BUILD_ROOT/.rpmmacros $BUILD_ROOT/root/.rpmmacros
+rm -f "$BUILD_ROOT"/.rpmmacros "$BUILD_ROOT"/root/.rpmmacros
 rm -rf "$BUILD_ROOT/.init_b_cache"
 rm -f $BUILD_IS_RUNNING
 rm -f $TMPFILE
--- build-20160629.orig/initvm.c
+++ build-20160629/initvm.c
@@ -20,7 +20,7 @@
  *
  * AUTHOR
  *      Copyright (c) 2012 James Perkins <james.perkins@linuxfoundation.org>
- * 	i                  Adrian Schroeter <adrian@suse.de>
+ * 	                   Adrian Schroeter <adrian@suse.de>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 or 3 as
@@ -45,6 +45,7 @@
 #include <string.h>
 #include <errno.h>
 #include <stdio.h>
+#include <unistd.h>
 
 /* to enable debugging, compile with -DDEBUG */
 #ifdef DEBUG
@@ -258,7 +259,7 @@
 		int ret;
                 /* Is an interpreter for this arch already registered? */
 		snprintf(path, sizeof(path), SYSFS_BINFMT_MISC "/%s", f[name]);
-		ret=access(path, X_OK);
+		ret=access(path, F_OK);
 		if (ret == 0) {
 #ifdef DEBUG
 			fprintf(stderr, 
@@ -273,15 +274,13 @@
 			f[name]);
 #endif /* DEBUG */
 
-                /* Does the interpreter exists? */
+        /* Does the interpreter exists? */
 		ret=access(f[interpreter], X_OK);
 		if (ret != 0) {
-#ifdef DEBUG
 			fprintf(stderr, 
 				"%s: line %d: interpreter '%s' not found,"
 				" ignoring, return %d\n", datafile, line, f[interpreter], ret);
-#endif /* DEBUG */
-			continue;
+			// continue;
 		}
 
 		if (!write_file_string(regfile, buf)) {
@@ -316,29 +315,34 @@
 int main(int argc, char* argv[], char* env[])
 {
 	int retval;
-	char buf[BUFSIZ];
+	char buf[BUFSIZ], *build_dir;
 
-	/* mount proc filesystem if it isn't already */
-	if (mount("proc", "/proc", "proc", MS_MGC_VAL, NULL) == -1) {
-		if (errno != EBUSY) {
-			perror("mount: /proc");
-			exit(1);
+        if (system("mount | grep 'proc on /proc type proc' >/dev/null") != 0) {
+	        /* mount proc filesystem if it isn't already. */
+		if (mount("proc", "/proc", "proc", MS_MGC_VAL, NULL) == -1) {
+			if (errno != EBUSY) {
+				perror("mount: /proc");
+				exit(1);
+			}
 		}
-	}
+        }
 
-	/* try to load binfmt module if present, no big deal if it fails */
-	if ((retval = system("/sbin/modprobe binfmt_misc")) != 0) {
-		DBG(fprintf(stderr, "modprobe binfmt_misc exit code %d\n",
-			retval));
-	}
+        /* need to have binfmt_misc loaded already */
+        if (system("mount | grep 'binfmt_misc on /proc/sys/fs/binfmt_misc' >/dev/null") != 0) {
+		/* try to load binfmt module if present, no big deal if it fails */
+		if ((retval = system("/sbin/modprobe binfmt_misc")) != 0) {
+			DBG(fprintf(stderr, "modprobe binfmt_misc exit code %d\n",
+				retval));
+		}
 
-	/* mount binfmt filesystem */
-	if (mount("binfmt_misc", SYSFS_BINFMT_MISC, "binfmt_misc", MS_MGC_VAL,
-		NULL) == -1) {
-		if (errno != EBUSY) {
-			perror("mount: binfmt_misc, " SYSFS_BINFMT_MISC);
+		/* mount binfmt filesystem */
+		if (mount("binfmt_misc", SYSFS_BINFMT_MISC, "binfmt_misc", MS_MGC_VAL,
+			NULL) == -1) {
+			if (errno != EBUSY) {
+				perror("mount: binfmt_misc, " SYSFS_BINFMT_MISC);
+			}
 		}
-	}
+        }
 
 	/* verify all paths resulting from this are OK */
 	if (!test_access_files(rx_files, R_OK|X_OK, "read/search")) {
@@ -361,10 +365,12 @@
 		exit(1);
 	}
 
-	if (getenv("BUILD_DIR"))
-	    sprintf(buf, "%s/qemu-reg", getenv("BUILD_DIR"));
+	*buf = 0;
+	build_dir = getenv("BUILD_DIR");
+	if (build_dir && strlen(build_dir) < sizeof(buf) - 10)
+		sprintf(buf, "%s/qemu-reg", build_dir);
 
-        if (!buf || !binfmt_register(buf, SYSFS_BINFMT_MISC_REG)) {
+        if (!*buf || !binfmt_register(buf, SYSFS_BINFMT_MISC_REG)) {
 		/* setup all done, do the registration */
 		if (!binfmt_register(BINFMT_REGF_0, SYSFS_BINFMT_MISC_REG)) {
 			fprintf(stderr, "%s: failed. Trying alternate binfmt file\n",
--- build-20160629.orig/order
+++ build-20160629/order
@@ -57,7 +57,7 @@
 
 die("usage: order [--manifest manifest] cachedir [packages...]\n") unless @ARGV;
 my $cachedir = shift @ARGV;
-
+my $missedpkgfile = shift @ARGV;
 my @p;
 if ($manifest) {
   if ($manifest eq '-') {
@@ -92,7 +92,12 @@
     delete $q->{'filelist'};
     last;
   }
-  die("binary not found: $p\n") unless $q;
+  unless ($q)  {
+    open(MISS, ">$missedpkgfile");
+    print MISS "$p";
+    close(MISS);
+    die("binary not found: $p, try to download it again!\n");
+  }
   $deps{$p} = $q;
 }
 
--- build-20160629.orig/packaging/build.changes
+++ build-20160629/packaging/build.changes
@@ -1,3 +1,192 @@
+--------------------------------------------------------------------
+Thu Apr 23 13:00:00 BST 2026 - s.tuhin@samsung.com
+
+- Update tizen version to tizen20260423
+- fix ccache option not work properly
+
+--------------------------------------------------------------------
+Tue Feb 24 11:00:00 BST 2026 - jakir.h@samsung.com
+
+- Update tizen version to tizen20260224
+- Update tizen version to tizen20250722
+- Support to skip to create src.rpm for certain packages during gbs full build
+
+--------------------------------------------------------------------
+Mon Jul 22 10:25:00 BST 2025 - jakir.h@samsung.com
+
+- Update tizen version to tizen20240722
+- Add arguments '--failures-to-rebuild' and '--rebuild-count' to support rebuild when build fails
+- Rebuild the package if build failed because of qemu crash.
+- Cleanup the build root as default action if build system is broken.
+- build: use ulimit -d instead of ulimit -v
+- umount with -f option
+
+--------------------------------------------------------------------
+Mon Jul 22 14:27:00 CST 2024 - huayong.xu@samsung.com
+
+- Remove dpatch dependency.
+
+--------------------------------------------------------------------
+Thu Nov 30 14:27:00 CST 2023 - huayong.xu@samsung.com
+
+- Update tizen version to tizen20231129
+- Use the correct lua to excutxe scripts
+- Update qemu-arm-static depend to support risc
+
+--------------------------------------------------------------------
+Wed Nov 01 09:30:00 CST 2023 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20231101
+- Fix build error for https://bugs.tizen.org/browse/DEVT-440.
+- download: enable proxy support for HTTPS
+- Support different interpreters in prein/postin scriptlets
+- Support build with openSUSE15.x distro
+
+--------------------------------------------------------------------
+Wed May 10 09:30:00 CST 2023 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20230510
+- hide credentials information in logs.
+- ignore non-existance of qemu binfmt file
+
+--------------------------------------------------------------------
+Wed Mar 01 09:30:00 CST 2023 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20230301
+- Fix issue: chromium-efl package build failure on Tizen 5.5.
+
+--------------------------------------------------------------------
+Thu Jan 12 09:30:00 CST 2023 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20230112
+- add new build option: --nocumulate which can allow build without cumulatve build.
+
+--------------------------------------------------------------------
+Wed Dec 07 09:30:00 CST 2022 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20221207
+- Ignore reorder packages list during cumulative build.
+
+--------------------------------------------------------------------
+Wed Aug 03 09:30:00 CST 2022 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20220803
+- Always retry 3 times to download if download fail.
+- Add logic to re-downloading packages in reorder step if some packages is missed!
+
+--------------------------------------------------------------------
+Thu Jul 05 09:30:00 CST 2022 - biao716.wang@samsung.com
+
+- update tizen version to tizen20220705
+- Fix defect Build error dlog aarch64.
+
+--------------------------------------------------------------------
+Thu Apr 21 09:30:00 CST 2022 - biao716.wang@samsung.com
+
+- update tizen version to tizen20220421
+- Fix multiple mount issue in Ubuntu 20.04.
+- Support zstd compression.
+
+--------------------------------------------------------------------
+Mon Aug 23 09:30:00 CST 2021 - biao716.wang@samsung.com
+
+- update tizen version to tizen20210823
+- Fix kvm support in Ubuntu
+- Fix VMInstall package is not installed
+
+--------------------------------------------------------------------
+Tue Jul 13 09:30:00 CST 2021 - biao716.wang@samsung.com
+
+- update tizen version to tizen20210713
+- Allow BuildFlags: Buildflags: flag:key to pass an arg
+- Use ccache.tar file with --pkg-ccache option
+- Force enable DO_CUMULATE
+
+--------------------------------------------------------------------
+Fri May 14 09:30:00 CST 2021 - biao716.wang@samsung.com
+
+- update tizen version to tizen20210514
+- fix build dependency parse when Require(post)
+- fix umount error when build is done
+
+--------------------------------------------------------------------
+Tue Mar 23 09:30:00 CST 2021 - biao716.wang@samsung.com
+
+- update tizen version to tizen20210323
+- fix gbs full build error: binary not found
+
+--------------------------------------------------------------------
+Thu Dec 3 09:30:00 CST 2020 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20201203
+- Support zstd decompression for old rpm version
+- Support zstd arch for tar
+
+--------------------------------------------------------------------
+Tue Jul 21 09:30:00 CST 2020 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20200721
+- Remove unused directory at the end of build step
+
+--------------------------------------------------------------------
+Tue May 19 09:30:00 CST 2020 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20200519
+- Remove --replacefile option in build-pkg-rpm
+
+--------------------------------------------------------------------
+Fri Aug 30 09:30:00 CST 2019 - biao716.wang@samsung.com
+
+- Update tizen version to tizen20190830
+- Support control.tar.xz format packages
+
+--------------------------------------------------------------------
+Thu Oct 31 09:30:00 CST 2018 - jingui.ren@samsung.com
+
+- Update tizen version to tizen20181031
+- Speed up the download packages when use https
+
+--------------------------------------------------------------------
+Thu Sep 27 09:30:00 CST 2018 - jingui.ren@samsung.com
+
+- Update tizen version to tizen20180927
+- Fix file conflicts when package install
+
+--------------------------------------------------------------------
+Fri Aug 31 09:30:00 CST 2018 - jingui.ren@samsung.com
+
+- Update tizen version to tizen20180831
+- Fix build error on x86_64 with expand error
+
+--------------------------------------------------------------------
+Fri Aug 3 09:30:00 CST 2018 - jingui.ren@samsung.com
+
+- update tizen version to tizen20180323
+- Fix deb package build error
+- Remove chroot memory limit on x86_64
+
+--------------------------------------------------------------------
+Fri Mar 23 09:30:00 CST 2018 - jingui.ren@samsung.com
+
+- update tizen version to tizen20180323
+- Enable networking inside VM
+- Fix bugs when username including backslash
+
+--------------------------------------------------------------------
+Fri Oct 13 09:30:00 CST 2017 - jingui.ren@samsung.com
+
+- update tizen version to tizen20171013
+
+-------------------------------------------------------------------
+Fri Jun 30 10:30:00 CST 2017 - y0169.zhang@samsung.com
+
+- update tizen version to tizen20170630
+
+-------------------------------------------------------------------
+Fri May 5 10:30:00 CST 2017 - shuai01.fu@samsung.com
+
+- update to version 20160629
+
 -------------------------------------------------------------------
 Wed Apr 5 19:00:00 KST 2017 - sk7.park@samsung.com
 
--- build-20160629.orig/packaging/build.spec
+++ build-20160629/packaging/build.spec
@@ -42,11 +42,10 @@
 Requires:       tar
 Requires:       perl(LWP::Protocol::https)
 Requires:       perl(LWP::UserAgent)
-Requires:       perl(Crypt::SSLeay)
+Requires:       perl(IO::Socket::SSL)
 Requires:       perl(XML::Parser)
 Requires:       perl(Archive::Tar)
-Requires:       tizen-qemu-arm-static >= 2016.12.31
-Requires:       perl-Crypt-SSLeay >= 0.64-tizen20130308
+Requires:       tizen-qemu-arm-static >= 2024.07.22
 
 %if 0%{?fedora_version} || 0%{?suse_version} == 1220 || 0%{?centos_version}
 Requires:       rpm-build
@@ -63,6 +62,7 @@
 Recommends:     perl(Time::Zone)
 Recommends:     perl(URI)
 Recommends:     bsdtar
+Recommends:     zstd
 %endif
 
 %if 0%{?suse_version} > 1120 || ! 0%{?suse_version}
@@ -72,7 +72,7 @@
 %if 0%{?suse_version} > 1120 || 0%{?mdkversion}
 Recommends:     build-mkdrpms
 %endif
-Provides:   tizen-build = 20170428
+Provides:       tizen-build = 20260423
 %description
 This package provides a script for building RPMs for SUSE Linux in a
 chroot environment.
@@ -116,7 +116,7 @@
 Requires:       build
 BuildRequires:  gcc
 BuildRequires:  glibc-devel
-Provides:       tizen-build-initvm-%{initvm_arch} = 20170428
+Provides:       tizen-build-initvm-%{initvm_arch} = 20260423
 Obsoletes:      build-initvm
 %if 0%{?suse_version}
 BuildRequires:  glibc-devel-static
@@ -194,6 +194,28 @@
 /usr/lib/build/initvm.*
 
 %changelog
+* Thu Dec 3 2020 biao716.wangn@samsung.com
+- update tizen version to tizen20201203
+* Tue Jul 21 2020 biao716.wangn@samsung.com
+- update tizen version to tizen20200721
+* Tue May 19 2020 biao716.wangn@samsung.com
+- update tizen version to tizen20200519
+* Fri Aug 30 2019 biao716.wangn@samsung.com
+- update tizen version to tizen20190830
+* Wed Oct 31 2018 jingui.ren@samsung.com
+- update tizen version to tizen20181031
+* Thu Sep 27 2018 jingui.ren@samsung.com
+- update tizen version to tizen20180927
+* Fri Aug 31 2018 jingui.ren@samsung.com
+- update tizen version to tizen20180831
+* Fri Aug 3 2018 jingui.ren@samsung.com
+- update tizen version to tizen20180803
+* Fri Mar 23 2018 jingui.ren@samsung.com
+- update tizen version to tizen20180323
+* Fri Oct 13 2017 jingui.ren@samsung.com
+- update tizen version to tizen20171013
+* Fri Jun 30 2017 y0169.zhang@samsung.com
+- update tizen version to tizen20170630
 * Mon Apr 10 2017 shuai01.fu@samsung.com
 - update tizen version to tizen20170410
 * Wed Apr 5 2017 sk7.park@samsung.com
--- build-20160629.orig/qemu-reg
+++ build-20160629/qemu-reg
@@ -4,29 +4,7 @@
 
 # NOTE: this requires a qemu with the binfmt misc handler binary
 
-# NOTE: blacklisted host machine types are added via space separated elements
-
-:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P aarch64
-:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-arm64-binfmt:P aarch64
-
-:alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha-binfmt:P alpha
-
-:arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:P armv6l armv7l armv8l
-:armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb-binfmt:P armv6b armv7b armv8b
-
-:ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc-binfmt:P ppc ppc64
-:ppc64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc64-binfmt:P ppc64
-:ppc64le:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-ppc64le-binfmt:P ppc64le
-
-:m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-binfmt:P m68k
-
-:mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips-binfmt:P mips
-:mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-binfmt:P mipsel
-
-:s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x-binfmt:P s390x
-
-:sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4-binfmt:P sh4
-:sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb-binfmt:P sh4eb
-
-:sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc-binfmt:P sparc
-
+#:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
+:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-arm64-binfmt:P
+:arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfa\xff\xff\xff:/usr/bin/qemu-arm-static:
+:riscv64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-riscv64-binfmt:P
--- build-20160629.orig/queryconfig
+++ build-20160629/queryconfig
@@ -61,6 +61,11 @@
   die("Specify which buildflag to query\n") unless $argument;
   my $result = $cf->{"buildflags:$argument"};
   print "$result\n" if defined $result;
+} elsif ($type eq 'buildflags+') {
+  die("Specify which buildflag to query\n") unless $argument;
+  for (@{$cf->{'buildflags'} || []}) {
+    print "$1\n" if /\Q$argument\E:(.*)/;
+  }
 } elsif ($type eq 'hostarch') {
   my $result = $cf->{"hostarch"};
   print "$result\n" if defined $result;
