obs-build-20141024/0000755000000000000000000000000012422424142013564 5ustar rootroot00000000000000obs-build-20141024/unrpm0000755000000000000000000000300112422424142014645 0ustar rootroot00000000000000#!/bin/bash ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ function Usage () { echo "Usage: $(basename $0) [-vq] rpm-files..."; echo "Unpack rpm files in current directory."; exit 1 } CPIO_OPTS="--extract --unconditional --preserve-modification-time --make-directories" FILES="" VERBOSE=false QUIET=false for i in $* ; do case "$i" in -v) VERBOSE=true ;; -q) QUIET=true ;; *) FILES="$FILES $i" ;; esac done test "$VERBOSE" = "true" && CPIO_OPTS="$CPIO_OPTS --verbose" test "$QUIET" = "true" && CPIO_OPTS="$CPIO_OPTS --quiet" test -z "$FILES" && Usage for f in $FILES; do if test "$QUIET" = "false" ; then echo -ne "$f:\t" fi rpm2cpio $f | cpio ${CPIO_OPTS} done obs-build-20141024/build.10000644000000000000000000001155012422424142014747 0ustar rootroot00000000000000.de TQ \"follow a TP item with several TQ items to define several . \"entities with one shared description. .br .ns .TP \\$1 .. .TH build 1 "(c) 1997-2008 SuSE Linux AG Nuernberg, Germany" .SH NAME build \- build SuSE Linux RPMs in a chroot environment .SH SYNOPSIS .B build .RB [ --clean | --no-init] .RB [ --rpms .IR path1 : path2 : ... ] .RB [ --arch .IR arch1 : arch2 : ... ] .RB [ --root .IR buildroot ] .RB [ specfile | srcrpm ] .br .B build .B --help .br .B build .B --verify .SH DESCRIPTION \fBbuild\fR is a tool to build SuSE Linux RPMs in a safe and clean way. .B build will install a minimal SuSE Linux as build system into some directory and will chroot to this system to compile the package. This way you don't risk to corrupt your working system (due to a broken spec file for example), even if the package does not use BuildRoot. .B build searches the spec file for a .I BuildRequires: line; if such a line is found, all the specified rpms are installed. Otherwise a selection of default packages are used. Note that .B build doesn't automatically resolve missing dependencies, so the specified rpms have to be sufficient for the build. .P If a spec file is specified on the command line, .B build will use this file and all other files in the directory for building the package. If a srcrpm is specified, .B build automatically unpacks it for the build. If neither is given, .B build will use all the specfiles in the current directory. .P .SH OPTIONS .TP .B --clean remove the build system and reinitialize it from scratch. .TP .B --no-init skip the build system initialization and start with build immediately. .TP .B --list-state list rpms that would be used to create a fresh build root. Does not create the build root or perform a build. .TP .BI "\-\-rpms " path1 : path2 : path3\fR...\fP Where build can find the SuSE Linux RPMs needed to create the build system. This option overrides the BUILD_RPMS environment variable. .TP .BI "\-\-arch " arch1 : arch2 : arch3\fR...\fP What architectures to select from the RPMs. .B build automatically sets this to a sensible value for your host if you don't specify this option. .TP .BI "\-\-repo " url_or_dir Also use the specified repository to create the build system. The repositories may be either of type rpmmd, yast2 (susetags), or a simple directory. Multiple --repo options may be given. As a special form, 'zypp://reponame' can be used to specify a system repository. 'zypp://' selects all enabled system repositories. This is also the default if BUILD_RPMS is not set and no --rpms or --repo option is used. .TP .BI "\-\-root " buildroot Specifies where the build system is set up. Overrides the BUILD_ROOT enviroment variable. .TP .B --useusedforbuild Tell build not to do dependency expansion, but to extract the list of packages to install from "# usedforbuild" lines or, if none are found, from all "BuildRequires" lines. This option is useful if you want to re-build a package from a srcrpm with exactly the same packages used for the srcrpm build. .TP .B --norootforbuild .TP .B --help Print a short help text. .TP .B --verify verify the files in an existing build system. .TP .BI "\-\--dist " distribution Set the distribution. If this option is not given, build tries to calculate the distribution by looking at the rpm package used in the build. The specified distribution can either be a string like "11.2" or "sles9", or the pathname of the build configuration to use. .SH .spec FILE OPTIONS The .B build command interprets some special control comments in the specfile: .TP .B # norootforbuild .TQ .B # needsrootforbuild .B build uses either user .I root or user .I abuild in the build system to do the build. For non-SUSE distros as well as since SUSE 10.2, the default build user is .I abuild. For 10.2 and before, the default build user is .I root. These two flags in the spec file allow to deviate from the defaults and force-set the build user to .I abuild and .I root .RI "(for " "#\ norootforbuild" " and " "#\ needsrootforbuild" " respectively." .TP .B # needsbinariesforbuild provide the binary rpms that have been used to set up the build root in .I /.build.binaries within the build root. .SH ENVIRONMENT .TP .B BUILD_ROOT The directory where build should install the chrooted build system. "/var/tmp/build-root" is used by default. .TP .B BUILD_RPMS Where build can find the SuSE Linux RPMs. build needs them to create the build system. .TP .B BUILD_RPM_BUILD_STAGE The rpm build stage (-ba, -bb, ...). This is just passed through to rpm, check the rpm manpage for a complete list and descriptions. "-ba" is the default. You can use this to add more options to RPM. .SH SEE ALSO .BR rpm (8), .TP .BR "Maximum RPM": .I http://www.rpm.org/max-rpm/ .TP .BR "cross distribution packaging": .I http://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto .TP .BR "openSUSE packaging standards and guidelines": .I http://en.opensuse.org/Portal:Packaging obs-build-20141024/killchroot0000755000000000000000000000513412422424142015667 0ustar rootroot00000000000000#!/usr/bin/perl ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ my $sig = 15; my $verbose = 0; my $msg = ''; my $doit = 1; while (@ARGV) { if ($ARGV[0] eq '-s' || $ARGV[0] eq '--signal') { die("$ARGV[0]: argument required") unless @ARGV > 1; $sig = $ARGV[1]; shift @ARGV; shift @ARGV; next; } if ($ARGV[0] eq '-v' || $ARGV[0] eq '--verbose') { $verbose = 1; shift @ARGV; next; } if ($ARGV[0] eq '-n') { $doit = 0; $verbose = 1; shift @ARGV; next; } if ($ARGV[0] eq '-m' || $ARGV[0] eq '--message') { die("$ARGV[0]: argument required") unless @ARGV > 1; $msg = $ARGV[1]; shift @ARGV; shift @ARGV; next; } last; } die("usage: killchroot [-s sig] ") unless @ARGV == 1 && $ARGV[0] ne ''; my $dir = $ARGV[0]; chdir($dir) || die("$dir: $!\n"); $dir = readlink('/proc/self/cwd'); die("readlink /proc/self/cwd: $!\n") unless defined $dir; my %pids; my $pid; my $path; opendir(D, "/proc") || die("/proc: $!\n"); for $pid (readdir(D)) { next unless $pid =~ /^\d+$/; $path = readlink("/proc/$pid/root"); next unless defined $path; if ($path =~ /^\Q$dir\E(\/.*)?$/) { $pids{$pid} = 1; } $path = readlink("/proc/$pid/exe"); if ($path =~ /^\Q$dir\E(\/.*)?$/) { $pids{$pid} = 1; } } closedir(D); my @pids = sort keys %pids; exit 0 unless @pids; print "$msg\n" if $msg ne ''; if ($verbose) { my @pidsv = (); for $pid (@pids) { open(F, " 1) { print "sending signal $sig to processes @pidsv\n"; } else { print "sending signal $sig to process @pidsv\n"; } } exit 0 unless $doit; kill $sig => @pids; kill CONT => @pids if $sig eq 9; exit 0; obs-build-20141024/build-vm-qemu0000644000000000000000000000247312422424142016201 0ustar rootroot00000000000000# # qemu specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # just forward everything to kvm... vm_verify_options_qemu() { vm_verify_options_kvm } vm_startup_qemu() { vm_startup_kvm } vm_kill_qemu() { vm_kill_kvm } vm_fixup_qemu() { vm_setup_kvm } vm_attach_root_qemu() { vm_attach_root_kvm } vm_attach_swap_qemu() { vm_attach_swap_kvm } vm_detach_root_qemu() { vm_detach_root_kvm } vm_detach_swap_qemu() { vm_detach_swap_kvm } vm_cleanup_qemu() { vm_cleanup_kvm } obs-build-20141024/build-vm-uml0000644000000000000000000000277212422424142016031 0ustar rootroot00000000000000# # UML specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ uml_kernel=/boot/vmlinux-um uml_initrd=/boot/initrd-um vm_verify_options_uml() { VM_SWAPDEV=/dev/sdb } vm_startup_uml() { set -- $uml_kernel initrd=$uml_initrd root=ubda init="$vm_init_script" panic=1 elevator=noop quiet ubda=$VM_IMAGE ubdb=$VM_SWAP ${VM_MEMSIZE:+mem=$VM_MEMSIZE} echo "$@" "$@" } vm_kill_uml() { if ! fuser -k -TERM "$VM_IMAGE"; then echo "could not kill build in $VM_IMAGE" cleanup_and_exit 1 fi } vm_fixup_uml() { : } vm_attach_root_uml() { : } vm_attach_swap_uml() { : } vm_detach_root_uml() { : } vm_detach_swap_uml() { : } vm_cleanup_uml() { : } obs-build-20141024/Build.pm0000644000000000000000000010337412422424142015171 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build; use strict; use Digest::MD5; use Build::Rpm; use Data::Dumper; our $expand_dbg; our $do_rpm; our $do_deb; our $do_kiwi; our $do_arch; our $do_livebuild; sub import { for (@_) { $do_rpm = 1 if $_ eq ':rpm'; $do_deb = 1 if $_ eq ':deb'; $do_kiwi = 1 if $_ eq ':kiwi'; $do_arch = 1 if $_ eq ':arch'; $do_livebuild = 1 if $_ eq ':livebuild'; } $do_rpm = $do_deb = $do_kiwi = $do_arch = $do_livebuild = 1 if !$do_rpm && !$do_deb && !$do_kiwi && !$do_arch && !$do_livebuild; if ($do_deb) { require Build::Deb; } if ($do_kiwi) { require Build::Kiwi; } if ($do_arch) { require Build::Arch; } if ($do_livebuild) { require Build::LiveBuild; } } package Build::Features; our $preinstallimage = 1; # on sale now package Build; my $std_macros = q{ %define nil %define ix86 i386 i486 i586 i686 athlon %define arm armv4l armv5l armv6l armv7l armv4b armv5l armv5b armv5el armv5eb armv5tel armv5teb armv6hl armv6el armv6eb armv7el armv7eb armv7hl armv7nhl armv8el %define arml armv4l armv5l armv6l armv7l armv5tel armv5el armv6el armv6hl armv7el armv7hl armv7nhl armv8el %define armb armv4b armv5b armv5teb armv5eb armv6eb armv7eb %define sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v }; my $extra_macros = ''; sub unify { my %h = map {$_ => 1} @_; return grep(delete($h{$_}), @_); } sub define($) { my $def = shift; $extra_macros .= '%define '.$def."\n"; } sub init_helper_hashes { my ($config) = @_; $config->{'preferh'} = { map {$_ => 1} @{$config->{'prefer'}} }; my %ignore; for (@{$config->{'ignore'}}) { if (!/:/) { $ignore{$_} = 1; next; } my @s = split(/[,:]/, $_); my $s = shift @s; $ignore{"$s:$_"} = 1 for @s; } $config->{'ignoreh'} = \%ignore; my %conflicts; for (@{$config->{'conflict'}}) { my @s = split(/[,:]/, $_); my $s = shift @s; push @{$conflicts{$s}}, @s; push @{$conflicts{$_}}, $s for @s; } for (keys %conflicts) { $conflicts{$_} = [ unify(@{$conflicts{$_}}) ] } $config->{'conflicth'} = \%conflicts; } # 'canonicalize' dist string as found in rpm dist tags sub dist_canon($$) { my ($rpmdist, $arch) = @_; $rpmdist = lc($rpmdist); $rpmdist =~ s/-/_/g; $rpmdist =~ s/opensuse/suse linux/; my $rpmdista; if ($rpmdist =~ /\(/) { $rpmdista = $rpmdist; $rpmdista =~ s/.*\(//; $rpmdista =~ s/\).*//; } else { $rpmdista = $arch; } $rpmdista =~ s/i[456]86/i386/; $rpmdist = '' unless $rpmdista =~ /^(i386|x86_64|ia64|ppc|ppc64|ppc64le|s390|s390x)$/; my $dist = 'default'; if ($rpmdist =~ /unitedlinux 1\.0.*/) { $dist = "ul1-$rpmdista"; } elsif ($rpmdist =~ /suse sles_(\d+)/) { $dist = "sles$1-$rpmdista"; } elsif ($rpmdist =~ /suse linux enterprise (\d+)/) { $dist = "sles$1-$rpmdista"; } elsif ($rpmdist =~ /suse linux (\d+)\.(\d+)\.[4-9]\d/) { # alpha version $dist = "$1.".($2 + 1)."-$rpmdista"; } elsif ($rpmdist =~ /suse linux (\d+\.\d+)/) { $dist = "$1-$rpmdista"; } return $dist; } sub read_config_dist { my ($dist, $archpath, $configdir) = @_; my $arch = $archpath; $arch = 'noarch' unless defined $arch; $arch =~ s/:.*//; $arch = 'noarch' if $arch eq ''; die("Please specify a distribution!\n") unless defined $dist; if ($dist !~ /\//) { my $saved = $dist; $configdir = '.' unless defined $configdir; $dist =~ s/-.*//; $dist = "sl$dist" if $dist =~ /^\d/; $dist = "$configdir/$dist.conf"; if (! -e $dist) { $dist =~ s/-.*//; $dist = "sl$dist" if $dist =~ /^\d/; $dist = "$configdir/$dist.conf"; } if (! -e $dist) { warn "$saved.conf not found, using default.conf\n" unless $saved eq 'default'; $dist = "$configdir/default.conf"; } } die("$dist: $!\n") unless -e $dist; my $cf = read_config($arch, $dist); die("$dist: parse error\n") unless $cf; return $cf; } sub read_config { my ($arch, $cfile) = @_; my @macros = split("\n", $std_macros.$extra_macros); push @macros, "%define _target_cpu $arch"; push @macros, "%define _target_os linux"; my $config = {'macros' => \@macros, 'arch' => $arch}; my @config; if (ref($cfile)) { @config = @$cfile; } elsif (defined($cfile)) { local *CONF; return undef unless open(CONF, '<', $cfile); @config = ; close CONF; chomp @config; } # create verbatim macro blobs my @newconfig; while (@config) { push @newconfig, shift @config; next unless $newconfig[-1] =~ /^\s*macros:\s*$/si; $newconfig[-1] = "macros:\n"; while (@config) { my $l = shift @config; last if $l =~ /^\s*:macros\s*$/si; $newconfig[-1] .= "$l\n"; } } my @spec; $config->{'save_expanded'} = 1; Build::Rpm::parse($config, \@newconfig, \@spec); delete $config->{'save_expanded'}; $config->{'preinstall'} = []; $config->{'vminstall'} = []; $config->{'cbpreinstall'} = []; $config->{'cbinstall'} = []; $config->{'runscripts'} = []; $config->{'required'} = []; $config->{'support'} = []; $config->{'keep'} = []; $config->{'prefer'} = []; $config->{'ignore'} = []; $config->{'conflict'} = []; $config->{'substitute'} = {}; $config->{'substitute_vers'} = {}; $config->{'optflags'} = {}; $config->{'order'} = {}; $config->{'exportfilter'} = {}; $config->{'publishfilter'} = []; $config->{'rawmacros'} = ''; $config->{'release'} = '.'; $config->{'repotype'} = []; $config->{'patterntype'} = []; $config->{'fileprovides'} = {}; $config->{'constraint'} = []; $config->{'expandflags'} = []; $config->{'buildflags'} = []; for my $l (@spec) { $l = $l->[1] if ref $l; next unless defined $l; my @l = split(' ', $l); next unless @l; my $ll = shift @l; my $l0 = lc($ll); if ($l0 eq 'macros:') { $l =~ s/.*?\n//s; if ($l =~ /^!\n/s) { $config->{'rawmacros'} = substr($l, 2); } else { $config->{'rawmacros'} .= $l; } next; } if ($l0 eq 'preinstall:' || $l0 eq 'vminstall:' || $l0 eq 'required:' || $l0 eq 'support:' || $l0 eq 'keep:' || $l0 eq 'prefer:' || $l0 eq 'ignore:' || $l0 eq 'conflict:' || $l0 eq 'runscripts:' || $l0 eq 'expandflags:' || $l0 eq 'buildflags:') { my $t = substr($l0, 0, -1); for my $l (@l) { if ($l eq '!*') { $config->{$t} = []; } elsif ($l =~ /^!/) { $config->{$t} = [ grep {"!$_" ne $l} @{$config->{$t}} ]; } else { push @{$config->{$t}}, $l; } } } elsif ($l0 eq 'substitute:') { next unless @l; $ll = shift @l; if ($ll eq '!*') { $config->{'substitute'} = {}; } elsif ($ll =~ /^!(.*)$/) { delete $config->{'substitute'}->{$1}; } else { $config->{'substitute'}->{$ll} = [ @l ]; } } elsif ($l0 eq 'fileprovides:') { next unless @l; $ll = shift @l; if ($ll eq '!*') { $config->{'fileprovides'} = {}; } elsif ($ll =~ /^!(.*)$/) { delete $config->{'fileprovides'}->{$1}; } else { $config->{'fileprovides'}->{$ll} = [ @l ]; } } elsif ($l0 eq 'exportfilter:') { next unless @l; $ll = shift @l; $config->{'exportfilter'}->{$ll} = [ @l ]; } elsif ($l0 eq 'publishfilter:') { $config->{'publishfilter'} = [ @l ]; } elsif ($l0 eq 'optflags:') { next unless @l; $ll = shift @l; $config->{'optflags'}->{$ll} = join(' ', @l); } elsif ($l0 eq 'order:') { for my $l (@l) { if ($l eq '!*') { $config->{'order'} = {}; } elsif ($l =~ /^!(.*)$/) { delete $config->{'order'}->{$1}; } else { $config->{'order'}->{$l} = 1; } } } elsif ($l0 eq 'repotype:') { # type of generated repository data $config->{'repotype'} = [ @l ]; } elsif ($l0 eq 'type:') { # kind of recipe system (spec,dsc,arch,kiwi,...) $config->{'type'} = $l[0]; } elsif ($l0 eq 'buildengine:') { # build engine (build,mock) $config->{'buildengine'} = $l[0]; } elsif ($l0 eq 'binarytype:') { # kind of binary packages (rpm,deb,arch,...) $config->{'binarytype'} = $l[0]; } elsif ($l0 eq 'patterntype:') { # kind of generated patterns in repository $config->{'patterntype'} = [ @l ]; } elsif ($l0 eq 'release:') { $config->{'release'} = $l[0]; } elsif ($l0 eq 'cicntstart:') { $config->{'cicntstart'} = $l[0]; } elsif ($l0 eq 'releaseprg:') { $config->{'releaseprg'} = $l[0]; } elsif ($l0 eq 'changetarget:' || $l0 eq 'target:') { $config->{'target'} = join(' ', @l); push @macros, "%define _target_cpu ".(split('-', $config->{'target'}))[0] if $config->{'target'}; } elsif ($l0 eq 'hostarch:') { $config->{'hostarch'} = join(' ', @l); } elsif ($l0 eq 'constraint:') { my $l = join(' ', @l); if ($l eq '!*') { $config->{'constraint'} = []; } else { push @{$config->{'constraint'}}, $l; } } elsif ($l0 !~ /^[#%]/) { warn("unknown keyword in config: $l0\n"); } } for my $l (qw{preinstall vminstall required support keep runscripts repotype patterntype}) { $config->{$l} = [ unify(@{$config->{$l}}) ]; } for my $l (keys %{$config->{'substitute'}}) { $config->{'substitute_vers'}->{$l} = [ map {/^(.*?)(=)?$/g} unify(@{$config->{'substitute'}->{$l}}) ]; $config->{'substitute'}->{$l} = [ unify(@{$config->{'substitute'}->{$l}}) ]; s/=$// for @{$config->{'substitute'}->{$l}}; } init_helper_hashes($config); if (!$config->{'type'}) { # Fallback to old guessing method if no type (spec, dsc or kiwi) is defined if (grep {$_ eq 'rpm'} @{$config->{'preinstall'} || []}) { $config->{'type'} = 'spec'; } elsif (grep {$_ eq 'debianutils'} @{$config->{'preinstall'} || []}) { $config->{'type'} = 'dsc'; } elsif (grep {$_ eq 'pacman'} @{$config->{'preinstall'} || []}) { $config->{'type'} = 'arch'; } else { $config->{'type'} = 'UNDEFINED'; } } if (!$config->{'binarytype'}) { $config->{'binarytype'} = 'rpm' if $config->{'type'} eq 'spec' || $config->{'type'} eq 'kiwi'; $config->{'binarytype'} = 'deb' if $config->{'type'} eq 'dsc' || $config->{'type'} eq 'livebuild'; $config->{'binarytype'} = 'arch' if $config->{'type'} eq 'arch'; $config->{'binarytype'} ||= 'UNDEFINED'; } # add rawmacros to our macro list if ($config->{'rawmacros'} ne '') { for my $rm (split("\n", $config->{'rawmacros'})) { if (@macros && $macros[-1] =~ /\\$/) { if ($rm =~ /\\$/) { push @macros, '...\\'; } else { push @macros, '...'; } } elsif ($rm !~ /^%/) { push @macros, $rm; } else { push @macros, "%define ".substr($rm, 1); } } } for (@{$config->{'expandflags'} || []}) { if (/^([^:]+):(.*)$/s) { $config->{"expandflags:$1"} = $2; } else { $config->{"expandflags:$_"} = 1; } } for (@{$config->{'buildflags'} || []}) { if (/^([^:]+):(.*)$/s) { $config->{"buildflags:$1"} = $2; } else { $config->{"buildflags:$_"} = 1; } } return $config; } sub do_subst { my ($config, @deps) = @_; my @res; my %done; my $subst = $config->{'substitute'}; while (@deps) { my $d = shift @deps; next if $done{$d}; my $ds = $d; $ds =~ s/\s*[<=>].*$//s; if ($subst->{$ds}) { unshift @deps, @{$subst->{$ds}}; push @res, $d if grep {$_ eq $ds} @{$subst->{$ds}}; } else { push @res, $d; } $done{$d} = 1; } return @res; } sub do_subst_vers { my ($config, @deps) = @_; my @res; my %done; my $subst = $config->{'substitute_vers'}; while (@deps) { my ($d, $dv) = splice(@deps, 0, 2); next if $done{$d}; if ($subst->{$d}) { unshift @deps, map {defined($_) && $_ eq '=' ? $dv : $_} @{$subst->{$d}}; push @res, $d, $dv if grep {defined($_) && $_ eq $d} @{$subst->{$d}}; } else { push @res, $d, $dv; } $done{$d} = 1; } return @res; } sub add_livebuild_packages { my ($config, @deps) = @_; if ($config->{'substitute'}->{'build-packages:livebuild'}) { push @deps, @{$config->{'substitute'}->{'build-packages:livebuild'}}; } else { # defaults live-build package dependencies base on 4.0~a26 gathered with: # grep Check_package -r /usr/lib/live/build push @deps, ( 'apt-utils', 'dctrl-tools', 'debconf', 'dosfstools', 'e2fsprogs', 'grub', 'librsvg2-bin', 'live-boot', 'live-config', 'mtd-tools', 'parted', 'squashfs-tools', 'syslinux', 'syslinux-common', 'wget', 'xorriso', 'zsync' ); } return @deps; } # Delivers all packages which get used for building sub get_build { my ($config, $subpacks, @deps) = @_; @deps = add_livebuild_packages($config, @deps) if $config->{'type'} eq 'livebuild'; my @ndeps = grep {/^-/} @deps; my %ndeps = map {$_ => 1} @ndeps; my @directdepsend; if ($ndeps{'--directdepsend--'}) { @directdepsend = @deps; for (splice @deps) { last if $_ eq '--directdepsend--'; push @deps, $_; } @directdepsend = grep {!/^-/} splice(@directdepsend, @deps + 1); } my @extra = (@{$config->{'required'}}, @{$config->{'support'}}); if (@{$config->{'keep'} || []}) { my %keep = map {$_ => 1} (@deps, @{$config->{'keep'} || []}, @{$config->{'preinstall'}}); for (@{$subpacks || []}) { next if $keep{$_}; push @ndeps, "-$_"; $ndeps{"-$_"} = 1; } } else { # new "empty keep" mode, filter subpacks from required/support my %subpacks = map {$_ => 1} @{$subpacks || []}; @extra = grep {!$subpacks{$_}} @extra; } @deps = grep {!$ndeps{$_}} @deps; push @deps, @{$config->{'preinstall'}}; push @deps, @extra; @deps = grep {!$ndeps{"-$_"}} @deps; @deps = do_subst($config, @deps); @deps = grep {!$ndeps{"-$_"}} @deps; if (@directdepsend) { @directdepsend = do_subst($config, @directdepsend); @directdepsend = grep {!$ndeps{"-$_"}} @directdepsend; unshift @directdepsend, '--directdepsend--' if @directdepsend; } @deps = expand($config, @deps, @ndeps, @directdepsend); return @deps; } # return the package needed for setting up the build environment. # an empty result means that the packages from get_build should # be used instead. sub get_sysbuild { my ($config, $buildtype) = @_; my $engine = $config->{'buildengine'} || ''; $buildtype ||= $config->{'type'} || ''; my @sysdeps; if ($engine eq 'mock' && $buildtype ne 'kiwi') { @sysdeps = @{$config->{'substitute'}->{'system-packages:mock'} || []}; @sysdeps = ('mock', 'createrepo') unless @sysdeps; } elsif ($buildtype eq 'livebuild') { # packages used for build environment setup (build-recipe-livebuild deps) @sysdeps = @{$config->{'substitute'}->{'system-packages:livebuild'} || []}; @sysdeps = ('apt-utils', 'cpio', 'dpkg-dev', 'live-build', 'lsb-release', 'tar') unless @sysdeps; } return () unless @sysdeps; @sysdeps = Build::get_build($config, [], @sysdeps); return @sysdeps unless $sysdeps[0]; shift @sysdeps; @sysdeps = unify(@sysdeps, get_preinstalls($config)); return (1, @sysdeps); } # Delivers all packages which shall have an influence to other package builds (get_build reduced by support packages) sub get_deps { my ($config, $subpacks, @deps) = @_; my @ndeps = grep {/^-/} @deps; my @extra = @{$config->{'required'}}; if (@{$config->{'keep'} || []}) { my %keep = map {$_ => 1} (@deps, @{$config->{'keep'} || []}, @{$config->{'preinstall'}}); for (@{$subpacks || []}) { push @ndeps, "-$_" unless $keep{$_}; } } else { # new "empty keep" mode, filter subpacks from required my %subpacks = map {$_ => 1} @{$subpacks || []}; @extra = grep {!$subpacks{$_}} @extra; } my %ndeps = map {$_ => 1} @ndeps; @deps = grep {!$ndeps{$_}} @deps; push @deps, @extra; @deps = grep {!$ndeps{"-$_"}} @deps; @deps = do_subst($config, @deps); @deps = grep {!$ndeps{"-$_"}} @deps; my %bdeps = map {$_ => 1} (@{$config->{'preinstall'}}, @{$config->{'support'}}); delete $bdeps{$_} for @deps; @deps = expand($config, @deps, @ndeps); if (@deps && $deps[0]) { my $r = shift @deps; @deps = grep {!$bdeps{$_}} @deps; unshift @deps, $r; } return @deps; } sub get_preinstalls { my ($config) = @_; return @{$config->{'preinstall'}}; } sub get_vminstalls { my ($config) = @_; return @{$config->{'vminstall'}}; } sub get_runscripts { my ($config) = @_; return @{$config->{'runscripts'}}; } ### just for API compability sub get_cbpreinstalls { return @{[]}; } sub get_cbinstalls { return @{[]}; } ########################################################################### sub readdeps { my ($config, $pkginfo, @depfiles) = @_; my %requires; local *F; my %provides; my %pkgconflicts; my %pkgobsoletes; my $dofileprovides = %{$config->{'fileprovides'}}; for my $depfile (@depfiles) { if (ref($depfile) eq 'HASH') { for my $rr (keys %$depfile) { $provides{$rr} = $depfile->{$rr}->{'provides'}; $requires{$rr} = $depfile->{$rr}->{'requires'}; $pkgconflicts{$rr} = $depfile->{$rr}->{'conflicts'}; $pkgobsoletes{$rr} = $depfile->{$rr}->{'obsoletes'}; } next; } # XXX: we don't support different architectures per file open(F, "<$depfile") || die("$depfile: $!\n"); while() { my @s = split(' ', $_); my $s = shift @s; my @ss; while (@s) { if (!$dofileprovides && $s[0] =~ /^\//) { shift @s; next; } if ($s[0] =~ /^rpmlib\(/) { splice(@s, 0, 3); next; } push @ss, shift @s; while (@s && $s[0] =~ /^[\(<=>|]/) { $ss[-1] .= " $s[0] $s[1]"; $ss[-1] =~ s/ \((.*)\)/ $1/; $ss[-1] =~ s/(<|>){2}/$1/; splice(@s, 0, 2); } } my %ss; @ss = grep {!$ss{$_}++} @ss; if ($s =~ /^(P|R|C|O):(.*)\.(.*)-\d+\/\d+\/\d+:$/) { my $pkgid = $2; my $arch = $3; if ($1 eq "R") { $requires{$pkgid} = \@ss; $pkginfo->{$pkgid}->{'requires'} = \@ss if $pkginfo; next; } if ($1 eq "C") { $pkgconflicts{$pkgid} = \@ss; $pkginfo->{$pkgid}->{'conflicts'} = \@ss if $pkginfo; next; } if ($1 eq "O") { $pkgobsoletes{$pkgid} = \@ss; $pkginfo->{$pkgid}->{'obsoletes'} = \@ss if $pkginfo; next; } # handle provides $provides{$pkgid} = \@ss; if ($pkginfo) { # extract ver and rel from self provides my ($v, $r) = map { /\Q$pkgid\E = ([^-]+)(?:-(.+))?$/ } @ss; die("$pkgid: no self provides\n") unless defined($v) && $v ne ''; $pkginfo->{$pkgid}->{'name'} = $pkgid; $pkginfo->{$pkgid}->{'version'} = $v; $pkginfo->{$pkgid}->{'release'} = $r if defined($r); $pkginfo->{$pkgid}->{'arch'} = $arch; $pkginfo->{$pkgid}->{'provides'} = \@ss; } } } close F; } $config->{'providesh'} = \%provides; $config->{'requiresh'} = \%requires; $config->{'pkgconflictsh'} = \%pkgconflicts; $config->{'pkgobsoletesh'} = \%pkgobsoletes; makewhatprovidesh($config); } sub makewhatprovidesh { my ($config) = @_; my %whatprovides; my $provides = $config->{'providesh'}; for my $p (keys %$provides) { my @pp = @{$provides->{$p}}; s/[ <=>].*// for @pp; push @{$whatprovides{$_}}, $p for unify(@pp); } for my $p (keys %{$config->{'fileprovides'}}) { my @pp = map {@{$whatprovides{$_} || []}} @{$config->{'fileprovides'}->{$p}}; @{$whatprovides{$p}} = unify(@{$whatprovides{$p} || []}, @pp) if @pp; } $config->{'whatprovidesh'} = \%whatprovides; } sub setdeps { my ($config, $provides, $whatprovides, $requires) = @_; $config->{'providesh'} = $provides; $config->{'whatprovidesh'} = $whatprovides; $config->{'requiresh'} = $requires; } sub forgetdeps { my ($config) = @_; delete $config->{'providesh'}; delete $config->{'whatprovidesh'}; delete $config->{'requiresh'}; delete $config->{'pkgconflictsh'}; delete $config->{'pkgobsoletesh'}; } my %addproviders_fm = ( '>' => 1, '=' => 2, '>=' => 3, '<' => 4, '<=' => 6, ); sub addproviders { my ($config, $r) = @_; my @p; my $whatprovides = $config->{'whatprovidesh'}; $whatprovides->{$r} = \@p; if ($r =~ /\|/) { for my $or (split(/\s*\|\s*/, $r)) { push @p, @{$whatprovides->{$or} || addproviders($config, $or)}; } @p = unify(@p) if @p > 1; return \@p; } return \@p if $r !~ /^(.*?)\s*([<=>]{1,2})\s*(.*?)$/; my $rn = $1; my $rv = $3; my $rf = $addproviders_fm{$2}; return \@p unless $rf; my $provides = $config->{'providesh'}; my @rp = @{$whatprovides->{$rn} || []}; for my $rp (@rp) { for my $pp (@{$provides->{$rp} || []}) { if ($pp eq $rn) { # debian: unversioned provides do not match # kiwi: supports only rpm, so we need to hand it like it next if $config->{'binarytype'} eq 'deb'; push @p, $rp; last; } next unless $pp =~ /^\Q$rn\E\s*([<=>]{1,2})\s*(.*?)$/; my $pv = $2; my $pf = $addproviders_fm{$1}; next unless $pf; if ($pf & $rf & 5) { push @p, $rp; last; } if ($pv eq $rv) { next unless $pf & $rf & 2; push @p, $rp; last; } my $rr = $rf == 2 ? $pf : ($rf ^ 5); $rr &= 5 unless $pf & 2; # verscmp for spec and kiwi types my $vv; if ($config->{'binarytype'} eq 'deb') { $vv = Build::Deb::verscmp($pv, $rv, 1); } else { $vv = Build::Rpm::verscmp($pv, $rv, 1); } if ($rr & (1 << ($vv + 1))) { push @p, $rp; last; } } } @p = unify(@p) if @p > 1; return \@p; } # XXX: should also check the package EVR sub nevrmatch { my ($config, $r, @p) = @_; my $rn = $r; $rn =~ s/\s*([<=>]{1,2}).*$//; return grep {$_ eq $rn} @p; } sub checkconflicts { my ($config, $ins, $q, $eq, @r) = @_; my $whatprovides = $config->{'whatprovidesh'}; for my $r (@r) { my @eq = grep {$ins->{$_}} @{$whatprovides->{$r} || addproviders($config, $r)}; next unless @eq; push @$eq, map {"provider $q conflicts with installed $_"} @eq; return 1; } return 0; } sub checkobsoletes { my ($config, $ins, $q, $eq, @r) = @_; my $whatprovides = $config->{'whatprovidesh'}; for my $r (@r) { my @eq = grep {$ins->{$_}} nevrmatch($config, $r, @{$whatprovides->{$r} || addproviders($config, $r)}); next unless @eq; push @$eq, map {"provider $q is obsoleted by installed $_"} @eq; return 1; } return 0; } sub expand { my ($config, @p) = @_; my $conflicts = $config->{'conflicth'}; my $pkgconflicts = $config->{'pkgconflictsh'} || {}; my $pkgobsoletes = $config->{'pkgobsoletesh'} || {}; my $prefer = $config->{'preferh'}; my $ignore = $config->{'ignoreh'}; my $ignoreconflicts = $config->{'expandflags:ignoreconflicts'}; my $whatprovides = $config->{'whatprovidesh'}; my $requires = $config->{'requiresh'}; my %xignore = map {substr($_, 1) => 1} grep {/^-/} @p; my @directdepsend; if ($xignore{'-directdepsend--'}) { delete $xignore{'-directdepsend--'}; my @directdepsend = @p; for my $p (splice @p) { last if $p eq '--directdepsend--'; push @p, $p; } @directdepsend = grep {!/^-/} splice(@directdepsend, @p + 1); } @p = grep {!/^-/} @p; my %p; # expanded packages my %aconflicts; # packages we are conflicting with # add direct dependency packages. this is different from below, # because we add packages even if the dep is already provided and # we break ambiguities if the name is an exact match. for my $p (splice @p) { my @q = @{$whatprovides->{$p} || addproviders($config, $p)}; if (@q > 1) { my $pn = $p; $pn =~ s/ .*//; @q = grep {$_ eq $pn} @q; } if (@q != 1) { push @p, $p; next; } return (undef, "$q[0] $aconflicts{$q[0]}") if $aconflicts{$q[0]}; print "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]} || []}; if (!$ignoreconflicts) { for my $r (@{$pkgconflicts->{$q[0]}}) { $aconflicts{$_} = "conflicts with installed $q[0]" for @{$whatprovides->{$r} || addproviders($config, $r)}; } for my $r (@{$pkgobsoletes->{$q[0]}}) { $aconflicts{$_} = "is obsoleted by installed $q[0]" for nevrmatch($config, $r, @{$whatprovides->{$r} || addproviders($config, $r)}); } } } push @p, @directdepsend; my @pamb = (); my $doamb = 0; while (@p) { my @error = (); my @rerror = (); for my $p (splice @p) { for my $r (@{$requires->{$p} || [$p]}) { my $ri = (split(/[ <=>]/, $r, 2))[0]; next if $ignore->{"$p:$ri"} || $xignore{"$p:$ri"}; next if $ignore->{$ri} || $xignore{$ri}; my @q = @{$whatprovides->{$r} || addproviders($config, $r)}; next if grep {$p{$_}} @q; next if grep {$xignore{$_}} @q; next if grep {$ignore->{"$p:$_"} || $xignore{"$p:$_"}} @q; my @eq = map {"provider $_ $aconflicts{$_}"} grep {$aconflicts{$_}} @q; @q = grep {!$aconflicts{$_}} @q; if (!$ignoreconflicts) { for my $q (splice @q) { push @q, $q unless @{$pkgconflicts->{$q} || []} && checkconflicts($config, \%p, $q, \@eq, @{$pkgconflicts->{$q}}); } for my $q (splice @q) { push @q, $q unless @{$pkgobsoletes->{$q} || []} && checkobsoletes($config, \%p, $q, \@eq, @{$pkgobsoletes->{$q}}); } } if (!@q) { my $eq = @eq ? " (".join(', ', @eq).")" : ''; my $msg = @eq ? 'conflict for providers of' : 'nothing provides'; if ($r eq $p) { push @rerror, "$msg $r$eq"; } else { next if $r =~ /^\// && !@eq; push @rerror, "$msg $r needed by $p$eq"; } next; } if (@q > 1 && !$doamb) { push @pamb, $p unless @pamb && $pamb[-1] eq $p; print "undecided about $p:$r: @q\n" if $expand_dbg; next; } if (@q > 1) { my @pq = grep {!$prefer->{"-$_"} && !$prefer->{"-$p:$_"}} @q; @q = @pq if @pq; @pq = grep {$prefer->{$_} || $prefer->{"$p:$_"}} @q; if (@pq > 1) { my %pq = map {$_ => 1} @pq; @q = (grep {$pq{$_}} @{$config->{'prefer'}})[0]; } elsif (@pq == 1) { @q = @pq; } } if (@q > 1 && $r =~ /\|/) { # choice op, implicit prefer of first match... my %pq = map {$_ => 1} @q; for my $rr (split(/\s*\|\s*/, $r)) { next unless $whatprovides->{$rr}; my @pq = grep {$pq{$_}} @{$whatprovides->{$rr}}; next unless @pq; @q = @pq; last; } } if (@q > 1) { if ($r ne $p) { push @error, "have choice for $r needed by $p: @q"; } else { push @error, "have choice for $r: @q"; } push @pamb, $p unless @pamb && $pamb[-1] eq $p; next; } push @p, $q[0]; print "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) { for my $r (@{$pkgconflicts->{$q[0]}}) { $aconflicts{$_} = "conflicts with installed $q[0]" for @{$whatprovides->{$r} || addproviders($config, $r)}; } for my $r (@{$pkgobsoletes->{$q[0]}}) { $aconflicts{$_} = "is obsoleted by installed $q[0]" for nevrmatch($config, $r, @{$whatprovides->{$r} || addproviders($config, $r)}); } } @error = (); $doamb = 0; } } return undef, @rerror if @rerror; next if @p; # still work to do # only ambig stuff left if (@pamb && !$doamb) { @p = @pamb; @pamb = (); $doamb = 1; print "now doing undecided dependencies\n" if $expand_dbg; next; } return undef, @error if @error; } return 1, (sort keys %p); } sub order { my ($config, @p) = @_; my $requires = $config->{'requiresh'}; my $whatprovides = $config->{'whatprovidesh'}; my %deps; my %rdeps; my %needed; my %p = map {$_ => 1} @p; for my $p (@p) { my @r; for my $r (@{$requires->{$p} || []}) { my @q = @{$whatprovides->{$r} || addproviders($config, $r)}; push @r, grep {$_ ne $p && $p{$_}} @q; } if (%{$config->{'order'} || {}}) { push @r, grep {$_ ne $p && $config->{'order'}->{"$_:$p"}} @p; } @r = unify(@r); $deps{$p} = \@r; $needed{$p} = @r; push @{$rdeps{$_}}, $p for @r; } @p = sort {$needed{$a} <=> $needed{$b} || $a cmp $b} @p; my @good; my @res; # the big sort loop while (@p) { @good = grep {$needed{$_} == 0} @p; if (@good) { @p = grep {$needed{$_}} @p; push @res, @good; for my $p (@good) { $needed{$_}-- for @{$rdeps{$p}}; } next; } # uh oh, cycle alert. find and remove all cycles. my %notdone = map {$_ => 1} @p; $notdone{$_} = 0 for @res; # already did those my @todo = @p; while (@todo) { my $v = shift @todo; if (ref($v)) { $notdone{$$v} = 0; # finished this one next; } my $s = $notdone{$v}; next unless $s; my @e = grep {$notdone{$_}} @{$deps{$v}}; if (!@e) { $notdone{$v} = 0; # all deps done, mark as finished next; } if ($s == 1) { $notdone{$v} = 2; # now under investigation unshift @todo, @e, \$v; next; } # reached visited package, found a cycle! my @cyc = (); my $cycv = $v; # go back till $v is reached again while(1) { die unless @todo; $v = shift @todo; next unless ref($v); $v = $$v; $notdone{$v} = 1 if $notdone{$v} == 2; unshift @cyc, $v; last if $v eq $cycv; } unshift @todo, $cycv; print STDERR "cycle: ".join(' -> ', @cyc)."\n"; my $breakv; my @breakv = (@cyc, $cyc[0]); while (@breakv > 1) { last if $config->{'order'}->{"$breakv[0]:$breakv[1]"}; shift @breakv; } if (@breakv > 1) { $breakv = $breakv[0]; } else { $breakv = (sort {$needed{$a} <=> $needed{$b} || $a cmp $b} @cyc)[-1]; } push @cyc, $cyc[0]; # make it loop shift @cyc while $cyc[0] ne $breakv; $v = $cyc[1]; print STDERR " breaking dependency $breakv -> $v\n"; $deps{$breakv} = [ grep {$_ ne $v} @{$deps{$breakv}} ]; $rdeps{$v} = [ grep {$_ ne $breakv} @{$rdeps{$v}} ]; $needed{$breakv}--; } } return @res; } sub add_all_providers { my ($config, @p) = @_; my $whatprovides = $config->{'whatprovidesh'}; my $requires = $config->{'requiresh'}; my %a; for my $p (@p) { for my $r (@{$requires->{$p} || [$p]}) { my $rn = (split(' ', $r, 2))[0]; $a{$_} = 1 for @{$whatprovides->{$rn} || []}; } } push @p, keys %a; return unify(@p); } ########################################################################### sub recipe2buildtype { my ($recipe) = @_; return $1 if $recipe =~ /\.(spec|dsc|kiwi|livebuild)$/; $recipe =~ s/.*\///; $recipe =~ s/^_service:.*://; return 'arch' if $recipe eq 'PKGBUILD'; return 'preinstallimage' if $recipe eq '_preinstallimage'; return undef; } sub show { my ($conffile, $fn, $field, $arch) = @ARGV; my $cf = read_config($arch, $conffile); die unless $cf; my $d = Build::parse($cf, $fn); die("$d->{'error'}\n") if $d->{'error'}; $d->{'sources'} = [ map {ref($d->{$_}) ? @{$d->{$_}} : $d->{$_}} grep {/^source/} sort keys %$d ]; my $x = $d->{$field}; $x = [ $x ] unless ref $x; print "$_\n" for @$x; } sub parse_preinstallimage { return undef unless $do_rpm; my $d = Build::Rpm::parse(@_); $d->{'name'} ||= 'preinstallimage'; return $d; } sub parse { my ($cf, $fn, @args) = @_; return Build::Rpm::parse($cf, $fn, @args) if $do_rpm && $fn =~ /\.spec$/; return Build::Deb::parse($cf, $fn, @args) if $do_deb && $fn =~ /\.dsc$/; return Build::Kiwi::parse($cf, $fn, @args) if $do_kiwi && $fn =~ /config\.xml$/; return Build::Kiwi::parse($cf, $fn, @args) if $do_kiwi && $fn =~ /\.kiwi$/; return Build::LiveBuild::parse($cf, $fn, @args) if $do_livebuild && $fn =~ /\.livebuild$/; my $fnx = $fn; $fnx =~ s/.*\///; $fnx =~ s/^[0-9a-f]{32,}-//; # hack for OBS srcrep implementation $fnx =~ s/^_service:.*://; return Build::Arch::parse($cf, $fn, @args) if $do_arch && $fnx eq 'PKGBUILD'; return parse_preinstallimage($cf, $fn, @args) if $fnx eq '_preinstallimage'; return undef; } sub parse_typed { my ($cf, $fn, $buildtype, @args) = @_; $buildtype ||= ''; return Build::Rpm::parse($cf, $fn, @args) if $do_rpm && $buildtype eq 'spec'; return Build::Deb::parse($cf, $fn, @args) if $do_deb && $buildtype eq 'dsc'; return Build::Kiwi::parse($cf, $fn, @args) if $do_kiwi && $buildtype eq 'kiwi'; return Build::LiveBuild::parse($cf, $fn, @args) if $do_livebuild && $buildtype eq 'livebuild'; return Build::Arch::parse($cf, $fn, @args) if $do_arch && $buildtype eq 'arch'; return parse_preinstallimage($cf, $fn, @args) if $buildtype eq 'preinstallimage'; return undef; } sub query { my ($binname, %opts) = @_; my $handle = $binname; if (ref($binname) eq 'ARRAY') { $handle = $binname->[1]; $binname = $binname->[0]; } return Build::Rpm::query($handle, %opts) if $do_rpm && $binname =~ /\.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 =~ /\.arch$/; return undef; } sub queryhdrmd5 { my ($binname) = @_; return Build::Rpm::queryhdrmd5(@_) if $do_rpm && $binname =~ /\.rpm$/; return Build::Deb::queryhdrmd5(@_) if $do_deb && $binname =~ /\.deb$/; 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 =~ /\.arch$/; return undef; } 1; obs-build-20141024/createdebdeps0000755000000000000000000000571012422424142016307 0ustar rootroot00000000000000#!/usr/bin/perl -w BEGIN { unshift @INC, ($::ENV{"BUILD_DIR"} || "/usr/lib/build"); } use strict; use Digest::MD5; use File::Path; use Getopt::Long; use Build::Deb; Getopt::Long::Configure("no_ignore_case"); my $cachedir = "/var/cache/build"; my $archpath; sub getreponame { my ($url) = @_; return $1 if "/$url/" =~ /.*\/([^\/]+)\/os\//; return undef; } my $pkgnum = 0; sub printpkginfo { my ($d, $repourl) = @_; for (qw{package version filename architecture}) { return unless defined $d->{$_}; } $pkgnum++; my $id = "$d->{'package'}.$d->{'architecture'}-$pkgnum/0/0"; print "F:$id: $repourl$d->{'filename'}\n"; if (defined $d->{'provides'}) { $d->{'provides'} =~ s/,\s+/ /g; print "P:$id: $d->{'provides'} $d->{'package'} (= $d->{'version'})\n"; } else { print "P:$id: $d->{'package'} (= $d->{'version'})\n"; } if (defined $d->{'depends'}) { $d->{'depends'} =~ s/,\s+/ /g; print "R:$id: $d->{'depends'}\n"; } print "I:$id: $d->{package}-$d->{'version'} 0\n"; } GetOptions('cachedir=s' => \$cachedir, 'archpath=s' => \$archpath) or exit(1); if (!$archpath) { $archpath = `uname -p` || 'unknown'; chomp $archpath; } my $basearch = $archpath; $basearch =~ s/:.*//; $basearch = Build::Deb::basearch($basearch); for my $url (@ARGV) { die("Not an remote debian repo") unless $url =~ /^(:?ftps?|https?):\/\/([^\/]*)\/?/; my $reponame = getreponame($url); my $repoid = Digest::MD5::md5_hex($url); my $dir = "$cachedir/$repoid"; my @components; my $baseurl = $url; if ($url =~ /^(.*\/)\.(\/.*)?$/) { # flat repo $baseurl = $1; @components = ('.'); $url = defined($2) ? "$1$2" : $1; $url .= '/' unless $url =~ /\/$/; } else { if ($url =~ /([^\/]+)$/) { @components = split(/[,+]/, $1); $url =~ s/([^\/]+)$//; } push @components, 'main' unless @components; $url .= '/' unless $url =~ /\/$/; $url =~ s/([^\/]+\/)$/dists\/$1/; } File::Path::mkpath($dir); for my $component (@components) { unlink("$dir/Packages.gz"); if ($component eq '.') { system($INC[0]."/download", $dir, "${url}Packages.gz"); die("Packages.gz missing\n") unless -s "$dir/Packages.gz"; } else { system($INC[0]."/download", $dir, "$url$component/binary-$basearch/Packages.gz"); die("Packages.gz missing for basearch $basearch, component $component\n") unless -s "$dir/Packages.gz"; } open(F, "-|", 'gunzip', '-dc', "$dir/Packages.gz") || die("$dir/Packages.gz: $!\n"); my $pkg = {}; my $tag; while () { chomp; if ($_ eq '') { printpkginfo($pkg, $baseurl); $pkg = {}; next; } if (/^\s/) { next unless $tag; $pkg->{$tag} .= "\n".substr($_, 1); next; } my $data; ($tag, $data) = split(':', $_, 2); next unless defined $data; $tag = lc($tag); $data =~ s/^\s*//; $pkg->{$tag} = $data; } close(F) || die("gunzip: $!\n"); printpkginfo($pkg, $baseurl); } } obs-build-20141024/order0000755000000000000000000000477612422424142014643 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Build; use strict; my ($dist, $archs, $configdir, $manifest); $configdir = ($::ENV{'BUILD_DIR'} || '/usr/lib/build') . '/configs'; while (@ARGV) { if ($ARGV[0] eq '--dist') { shift @ARGV; $dist = shift @ARGV; next; } if ($ARGV[0] eq '--archpath') { shift @ARGV; $archs = shift @ARGV; next; } if ($ARGV[0] eq '--configdir') { shift @ARGV; $configdir = shift @ARGV; next; } if (@ARGV && $ARGV[0] eq '--manifest') { shift @ARGV; $manifest = shift @ARGV; next; } last; } die("usage: order [--manifest manifest] cachedir [packages...]\n") unless @ARGV; my $cachedir = shift @ARGV; my @p; if ($manifest) { if ($manifest eq '-') { @p = ; } else { local *F; open(F, '<', $manifest) || die("$manifest: $!\n"); @p = ; close F; } chomp @p; } push @p, @ARGV; my $config = Build::read_config_dist($dist, $archs, $configdir); my %deps; my %bins; for my $p (@p) { my $q; for my $suf ('rpm', 'deb', 'arch') { next unless -f "$cachedir/$p.$suf"; if (! -s "$cachedir/$p.$suf") { $q = {'provides' => [], 'requires' => []}; # package from preinstallimage, no need to order last; } $q = Build::query("$cachedir/$p.$suf", 'filelist' => 1, 'alldeps' => 1); die("bad binary: $p.$suf\n") unless $q; push @{$q->{'provides'}}, @{$q->{'filelist'}} if $suf eq 'rpm' && $q->{'filelist'}; delete $q->{'filelist'}; last; } die("binary not found: $p\n") unless $q; $deps{$p} = $q; } Build::readdeps($config, undef, \%deps); @p = Build::order($config, @p); print "@p\n"; obs-build-20141024/build-recipe0000644000000000000000000000614612422424142016062 0ustar rootroot00000000000000# # recipe specific functions for the build script # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ KIWI_PARAMETERS= for i in spec dsc kiwi arch preinstallimage mock livebuild; do . "$BUILD_DIR/build-recipe-$i" done recipe_setup() { recipe_setup_$BUILDTYPE "$@" } recipe_prepare() { recipe_prepare_$BUILDTYPE "$@" } recipe_build() { recipe_build_$BUILDTYPE "$@" } recipe_resultdirs () { recipe_resultdirs_$BUILDTYPE "$@" } recipe_parse_options() { case ${PARAM/#--/-} in -stage) needarg BUILD_RPM_BUILD_STAGE="$ARG" shift ;; -kiwi-parameter) test -z "$ARG" && ARG="$1" needarg KIWI_PARAMETERS="$KIWI_PARAMETERS $ARG" shift ;; -*) return 1 ;; esac nextargs=("$@") return 0 } recipe_set_buildtype() { BUILDTYPE= case ${RECIPEFILE##_service:*:} in *.spec|*.src.rpm) BUILDTYPE=spec ;; *.dsc) BUILDTYPE=dsc ;; *.kiwi) BUILDTYPE=kiwi ;; PKGBUILD) BUILDTYPE=arch ;; _preinstallimage) BUILDTYPE=preinstallimage ;; *.livebuild) BUILDTYPE=livebuild ;; esac if test -z "$BUILDTYPE" ; then echo "I don't know how to build $RECIPEFILE" cleanup_and_exit 1 fi # we can't query right after vm startup, so we put the BUILDENGINE in the build.data if test -z "$RUNNING_IN_VM" ; then BUILDENGINE= if test -n "$BUILD_DIST" ; then BUILDENGINE=`queryconfig buildengine --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH"` test "$BUILDENGINE" = UNDEFINED && BUILDENGINE= fi fi if test "$BUILDENGINE" = mock -a "$BUILDTYPE" = spec ; then BUILDTYPE=mock fi } # expands all directories into files expand_recipe_directories() { local f t ff found if test -z "$RECIPEFILES" ; then set -- "`pwd`" else set -- "${RECIPEFILES[@]}" fi RECIPEFILES=() for f in "$@" ; do if test "$f" = "${f#/}" ; then f="`pwd`/$f" fi if test -d "$f" ; then for t in .spec .dsc PKGBUILD .kiwi .src.rpm .nosrc.rpm ; do found= for ff in "$f"/*$t ; do test -f "$ff" || continue RECIPEFILES=("${RECIPEFILES[@]}" "$ff") found=true done test -n "$found" && break done else RECIPEFILES[${#RECIPEFILES[@]}]="$f" fi done if test -z "$RECIPEFILES" ; then echo "no recipe files found in $@. exit..." cleanup_and_exit 1 fi } obs-build-20141024/createzyppdeps0000755000000000000000000000473112422424142016561 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use strict; use Build::Zypp; use Getopt::Long; use strict; Getopt::Long::Configure("no_ignore_case"); my $cachedir = "/var/cache/build"; my $opt_listrepos; GetOptions( "cachedir=s" => \$cachedir, "listrepos" => \$opt_listrepos, ) or exit(1); if ($opt_listrepos) { die("createzyppdeps --listrepos does not take an argument\n") if @ARGV; opendir(D, "/etc/zypp/repos.d") || exit(0); my @r = grep {!/^\./ && /.repo$/} readdir(D); closedir D; @r = sort @r; for my $r (@r) { open(F, '<', "/etc/zypp/repos.d/$r") || next; my $reponame; my $enabled; while() { chomp; next if /^\s*#/; s/\s+$//; if (/^\[(.*)\]$/) { print "$reponame\n" if defined($reponame) && $enabled; $reponame = $1; $enabled = undef; } elsif (/enabled=\s*(\S+)/) { $enabled = $1; } } print "$reponame\n" if defined($reponame) && $enabled; close F; } exit(0); } die("createzyppdeps needs exactly one argument\n") if @ARGV != 1; my $url = $ARGV[0]; die("createzyppdeps argument must start with 'zypp://'\n") unless $url =~ /^zypp:\/\/([^\/]*)/; my $repo = Build::Zypp::parserepo($1); die("can't parse $1\n") unless $repo; my $type = $repo->{'type'}; my $zyppcachedir = "/var/cache/zypp/raw/$repo->{'name'}"; if($type eq 'rpm-md') { exec ($INC[0].'/createrepomddeps', '--cachedir', $cachedir, '--zypp', $zyppcachedir, $url); } elsif ($type eq 'yast2') { exec ($INC[0].'/createyastdeps', '--cachedir', $cachedir, '--zypp', $zyppcachedir, $url); } else { die "unsupported repo type: $type\n"; } obs-build-20141024/emulator/0000755000000000000000000000000012422424142015414 5ustar rootroot00000000000000obs-build-20141024/emulator/emulator.sh0000755000000000000000000000264712422424142017614 0ustar rootroot00000000000000#!/bin/bash ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ echo "ERROR: the emulator.sh script needs to be changed to support your emulator!" exit 1 ### ### Example for the aarch64 emulator: ### LOG=$(mktemp) ./Foundation_v8 --image ./img-foundation.axf \ --block-device "$1" \ --network=none &> $LOG & while test 0$(grep -c terminal_0: $LOG ) -lt 1; do echo ".." sleep 1 done cat $LOG # terminal_0: Listening for serial connection on port 5012 PORT=$(grep terminal_0: $LOG | head -n 1 | cut -d " " -f 8) rm -f $LOG # telnet dies when emulator is quiting telnet 127.0.0.1 $PORT || exit 0 obs-build-20141024/build-recipe-arch0000644000000000000000000000345012422424142016770 0ustar rootroot00000000000000# # Arch specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ recipe_setup_arch() { TOPDIR=/usr/src/packages rm -rf "$BUILD_ROOT$TOPDIR" mkdir -p "$BUILD_ROOT$TOPDIR" mkdir -p "$BUILD_ROOT$TOPDIR/OTHER" mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES" mkdir -p "$BUILD_ROOT/$TOPDIR/ARCHPKGS" mkdir -p "$BUILD_ROOT/$TOPDIR/BUILD" chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ { echo 'source /etc/makepkg.conf' printf '%s=%s\n' \ BUILDDIR $TOPDIR/BUILD \ PKGDEST $TOPDIR/ARCHPKGS } > $BUILD_ROOT$TOPDIR/makepkg.conf } recipe_prepare_arch() { echo "Preparing sources..." _arch_recipe_makepkg -so "2>&1" ">/dev/null" } recipe_build_arch() { _arch_recipe_makepkg -ef < /dev/null && BUILD_SUCCEEDED=true } recipe_resultdirs_arch() { echo ARCHPKGS } _arch_recipe_makepkg() { $CHROOT su -lc "source /etc/profile; cd $TOPDIR/SOURCES && makepkg --config ../makepkg.conf $*" $BUILD_USER } obs-build-20141024/substitutedeps0000755000000000000000000001752512422424142016613 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use strict; use Build; sub expand { my ($config, $str) = @_; my @xspec; my %cf = %$config; $cf{'save_expanded'} = 1; Build::Rpm::parse(\%cf, [ "$str" ], \@xspec); return @xspec && ref($xspec[0]) ? $xspec[0]->[1] : ''; } my ($dist, $buildroot, $rpmdeps, $archs, $configdir, $release, $changelog); $configdir = ($::ENV{'BUILD_DIR'} || '/usr/lib/build') . '/configs'; while (@ARGV) { if ($ARGV[0] eq '--root') { shift @ARGV; $buildroot = shift @ARGV; next; } if ($ARGV[0] eq '--dist') { shift @ARGV; $dist = shift @ARGV; next; } if ($ARGV[0] eq '--archpath') { shift @ARGV; $archs = shift @ARGV; next; } if ($ARGV[0] eq '--configdir') { shift @ARGV; $configdir = shift @ARGV; next; } if ($ARGV[0] eq '--release') { shift @ARGV; $release = shift @ARGV; next; } if ($ARGV[0] eq '--changelog') { shift @ARGV; $changelog = shift @ARGV; next; } last; } die("Usage: substitutedeps --dist --archpath [--configdir ] \n") unless @ARGV == 2; my $spec = $ARGV[0]; my $specdir = $spec; $specdir =~ s/[^\/]*$//; $specdir = "./" if $specdir eq ''; my $newspec = $ARGV[1]; my $cf = Build::read_config_dist($dist, $archs, $configdir); $cf->{'warnings'} = 1; ####################################################################### my $xspec = []; my $d = Build::parse($cf, $spec, $xspec) || {}; my @sdeps = @{$d->{'deps'} || []}; my @neg = map {substr($_, 1)} grep {/^-/} @{$d->{'deps'} || []}; my %neg = map {$_ => 1} @neg; @sdeps = grep {!$neg{$_}} @sdeps; @sdeps = Build::do_subst($cf, @sdeps); @sdeps = grep {!$neg{$_}} @sdeps; my %sdeps = map {$_ => 1} @sdeps; open(F, '>', $newspec) || die("$newspec: $!\n"); my $used; my $inchangelog = 0; my $mainpkg = ''; my $pkg; for my $line (@$xspec) { $used = 1; if (ref($line)) { if (!defined($line->[1])) { $used = 0; $line = $line->[0]; } else { $line = $line->[1]; } } if ($inchangelog) { $inchangelog = 0 if $line =~ /^\s*%[^%]/; next if $inchangelog; } if ($changelog && ($line =~ /\s*\%changelog\b/)) { $inchangelog = 1; next; } if ($line =~ /^Name\s*:\s*(\S+)/i) { $pkg = $mainpkg = $1 unless $mainpkg; } if ($line =~ /^\s*%package\s+(-n\s+)?(\S+)/) { if ($1) { $pkg = $2; } else { $pkg = "$mainpkg-$2"; } } if ($line =~ /^Release\s*:\s*(.*?)\s*$/i) { my $spec_rel = $1; # User-provided value my $oldl = $line; if (defined $release) { if (!($line =~ s//$release/g)) { if ($line =~ /<(?:CI_CNT|B_CNT)>/) { # XXX: should pass ci_cnt/b_cnt instead if ($release =~ /(\d+)\.(\d+)$/) { my ($ci, $b) = ($1, $2); $line =~ s//$ci/; $line =~ s//$b/; } elsif ($release =~ /(\d+)$/) { my $b = $1; $b = '0' if $line =~ s//$b/; $line =~ s//$b/; } } else { # no special replacement rules in the line, simply replace $line =~ s/^(Release\s*:\s*).*/$1$release/i; $line =~ s//$spec_rel/g; } } $line =~ s///g; # no recursion please } else { # remove macros, as rpm doesn't like them $line =~ s//0/; $line =~ s//0/; $line =~ s//0/; } # this is to be compatible to legacy autobuild. # you can specify a releaseprg in the project configuration, # if your package contains this file it is executed and its # output is used as a release. # use only if you really must. if ($cf->{'releaseprg'} && -f "$specdir$cf->{'releaseprg'}") { my $newl = $line; $newl =~ s/^Release:\s*//; $oldl =~ s/^Release:\s*//; my $project = expand($cf, "%?_project") || 'BUILD_BASENAME'; my $arch = expand($cf, "%?_target_cpu") || 'noarch'; $::ENV{'BUILD_OLDRELEASE'} = $oldl; my @nl; my $interpreter = "/bin/bash"; if (open(RP, '<', "$specdir$cf->{'releaseprg'}")) { @nl = ; close RP; if (@nl && $nl[0] =~ /^#!\s*(\S*)/) { $interpreter = $1; } } if ($buildroot) { my $sd = $specdir; $sd =~ s/^\Q$buildroot\E//; open(RP, "-|", 'chroot', $buildroot, $interpreter, "$sd$cf->{'releaseprg'}", $project, $newl, $pkg, $arch) || die("$cf->{'releaseprg'}: $!\n"); } else { open(RP, "-|", $interpreter, "$specdir$cf->{'releaseprg'}", $project, $newl, $pkg, $arch) || die("$cf->{'releaseprg'}: $!\n"); } @nl = grep {$_ ne ''} ; if (!close(RP)) { warn("$cf->{'releaseprg'} failed: $?\n"); } # and another compatibility hack: if the prg returns pkg:, # the release of the package will be used. yuck... if (@nl && $nl[0] =~ s/^pkg://) { my $relpkg = $nl[0]; chomp $relpkg; if ($buildroot) { open(RP, "-|", 'chroot', $buildroot, 'rpm', '-q', '--qf', '%{RELEASE}', $relpkg) || die("rpm: $!\n"); } else { open(RP, "-|", 'rpm', '-q', '--qf', '%{RELEASE}', $relpkg) || die("rpm: $!\n"); } @nl = grep {$_ ne ''} ; if (!close(RP)) { warn("rpm package query of '$relpkg' failed: $?\n"); } } if ($nl[0]) { chomp $nl[0]; $line =~ s/^(Release:\s*).*/$1$nl[0]/i; if (defined $release) { if (!($line =~ s//$release/g)) { if ($line =~ /<(?:CI_CNT|B_CNT)>/) { # XXX: should pass ci_cnt/b_cnt instead if ($release =~ /(\d+)\.(\d+)$/) { my ($ci, $b) = ($1, $2); $line =~ s//$ci/; $line =~ s//$b/; } elsif ($release =~ /(\d+)$/) { my $b = $1; $line =~ s//$b/ unless $line =~ s//$b/; } } } } } } # all compat stuff done. we return to your scheduled program } if (!$used || ($line !~ /^(?:Build)?Requires:/i)) { print F "$line\n"; next; } if ($line =~ /%\(/) { # too hard for us print F "$line\n"; next; } my $isbuildrequires = 0; $isbuildrequires = 1 if $line =~ /^BuildRequires:/i; my $r = $line; $r =~ s/^[^:]*:\s*//; my @deps = $r =~ /([^\s\[,]+)(\s+[<=>]+\s+[^\s\[,]+)?[\s,]*/g; my @ndeps = (); my $replace = 0; my @f2 = Build::do_subst_vers($cf, @deps); my %f2 = @f2; if ($isbuildrequires) { delete $f2{$_} for @neg; delete $f2{$_} for grep {/^-/} keys %f2; } while (@deps) { my ($pack, $vers) = splice(@deps, 0, 2); $vers = '' unless defined $vers; if (($isbuildrequires && $sdeps{$pack}) || exists($f2{$pack})) { push @ndeps, "$pack$vers"; delete $f2{$pack}; } else { $replace = 1; } } if (%f2) { while (@f2) { my ($pack, $vers) = splice(@f2, 0, 2); next unless exists $f2{$pack}; $vers = '' unless defined $vers; push @ndeps, "$pack$vers"; } $replace = 1 } if ($replace) { $line =~ /^(.*?:\s*)/; print F $1.join(' ', @ndeps)."\n" if @ndeps; } else { print F "$line\n"; } } if ($changelog) { print F "%changelog\n"; if (open(CF, '<', $changelog)) { while() { print F $_; } close CF; } } close(F) || die("close: $!\n"); exit(0); obs-build-20141024/expanddeps0000755000000000000000000002504012422424142015646 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use strict; use Build; my ($dist, $rpmdeps, $archs, $configdir, $useusedforbuild, $installonly, $noinstall); $configdir = ($::ENV{'BUILD_DIR'} || '/usr/lib/build') . '/configs'; while (@ARGV) { if ($ARGV[0] eq '--dist') { shift @ARGV; $dist = shift @ARGV; next; } if ($ARGV[0] eq '--depfile') { shift @ARGV; $rpmdeps = shift @ARGV; next; } if ($ARGV[0] eq '--archpath') { shift @ARGV; $archs = shift @ARGV; next; } if ($ARGV[0] eq '--configdir') { shift @ARGV; $configdir = shift @ARGV; next; } if ($ARGV[0] eq '--useusedforbuild') { shift @ARGV; $useusedforbuild = 1; next; } if ($ARGV[0] eq '--define') { shift @ARGV; my $def = shift @ARGV; Build::define($def); next; } if ($ARGV[0] eq '--with') { shift @ARGV; my $def = shift @ARGV; Build::define("_with_$def --with-$def"); next; } if ($ARGV[0] eq '--without') { shift @ARGV; my $def = shift @ARGV; Build::define("_without_$def --without-$def"); next; } last; } $archs = '' unless defined $archs; die("you must specfiy a depfile!\n") unless defined $rpmdeps; # split args in recipe and pkgnames my $recipe; my @extradeps; for my $arg (@ARGV) { my $buildtype = Build::recipe2buildtype($arg); if ($buildtype) { die("can only work with at most one recipe file\n") if defined $recipe; $recipe = $arg; } else { push @extradeps, $arg; } } my $binarytype; my @archs = split(':', $archs); if ($recipe =~ /(^|\/)PKGBUILD$/) { push @archs, 'any' unless grep {$_ eq 'any'} @archs; $binarytype = 'arch'; } elsif ($recipe =~ /\.dsc$/) { push @archs, 'all' unless grep {$_ eq 'noarch'} @archs; $binarytype = 'deb'; } else { push @archs, 'noarch' unless grep {$_ eq 'noarch'} @archs; $binarytype = 'rpm'; } # read dist if we can my $cf; if (defined($dist) && $dist ne '') { $cf = Build::read_config_dist($dist, $archs[0], $configdir); $binarytype = $cf->{'binarytype'} if $cf->{'binarytype'} && $cf->{'binarytype'} ne 'UNDEFINED'; } my (%fn, %prov, %req, %con, %obs); my %packs; my %repo; my %ids; my %packs_arch; my %packs_done; open(F, '<', $rpmdeps) || die("$rpmdeps: $!\n"); # WARNING: the following code assumes that the 'I' tag comes last my ($pkgF, $pkgP, $pkgR, $pkgC, $pkgO); my $verscmp = \&Build::Rpm::verscmp; if ($binarytype && $binarytype eq 'deb') { $verscmp = \&Build::Deb::verscmp; for my $arch (@archs) { $arch = Build::Deb::basearch($arch) unless $arch =~ /^i[456]86$/; } } while() { chomp; if (/^F:(.*?)-\d+\/\d+\/\d+: (.*)$/) { $pkgF = $2; } elsif (/^P:(.*?)-\d+\/\d+\/\d+: (.*)$/) { $pkgP = $2; } elsif (/^R:(.*?)-\d+\/\d+\/\d+: (.*)$/) { $pkgR = $2; } elsif (/^C:(.*?)-\d+\/\d+\/\d+: (.*)$/) { $pkgC = $2; } elsif (/^O:(.*?)-\d+\/\d+\/\d+: (.*)$/) { $pkgO = $2; } elsif (/^I:(.*?)-\d+\/\d+\/\d+: (.*)$/) { next if $packs_done{$1}; my ($i, $newid) = ($1, $2); undef $i unless !$ids{$i} || $verscmp->($ids{$i}, $newid) < 0; undef $i unless defined($pkgF) && defined($pkgP); if (defined $i) { $i =~ /^(.*)\.([^\.]+)$/ or die; push @{$packs_arch{$2}}, $1; $ids{$i} = $newid; $fn{$i} = $pkgF; $prov{$i} = $pkgP; delete $req{$i}; delete $con{$i}; delete $obs{$i}; $req{$i} = $pkgR; $con{$i} = $pkgC if defined $pkgC; $obs{$i} = $pkgO if defined $pkgO; } undef $pkgF; undef $pkgP; undef $pkgR; undef $pkgC; undef $pkgO; } elsif ($_ eq 'D:') { %packs_done = %ids; } } close F; for my $arch (@archs) { $packs{$_} ||= "$_.$arch" for @{$packs_arch{$arch} || []}; } # XXX: move to separate tool if (!defined($dist) || $dist eq '') { my $rpmarch = (grep {$fn{"rpm.$_"}} @archs)[0]; if (!$rpmarch) { $dist = 'default'; } else { my $rpmfn = $fn{"rpm.$rpmarch"}; if ($rpmfn =~ /^[a-z]+:\/\//) { require File::Temp; my $tmpdir = File::Temp::tempdir('CLEANUP' => 1); $rpmfn =~ s/.*\//$tmpdir\// unless system("$INC[0]/download", $tmpdir, $rpmfn); } my $rpmdist = ''; if ($rpmfn =~ /^\// && -e $rpmfn) { my %res = Build::Rpm::rpmq($rpmfn, 1010); $rpmdist = $res{1010}->[0] || ''; } $dist = Build::dist_canon($rpmdist, $archs[0]); # need some extra work for sles11 :( if ($dist =~ /^sles11-/) { my %res = Build::Rpm::rpmq($rpmfn, 1049); $dist =~ s/^sles11-/sles11sp2-/ if grep {/^liblzma/} @{$res{1049} || []}; } } print STDERR "Warning: distribution not specified, assuming '$dist' (see $configdir).\n"; } $cf ||= Build::read_config_dist($dist, $archs[0], $configdir); $cf->{'warnings'} = 1; my $dofileprovides = %{$cf->{'fileprovides'}}; $dofileprovides = 1 if ($binarytype || 'rpm') ne 'rpm'; for my $pack (keys %packs) { my $r = {}; my (@s, $s, @pr, @re, @co, @ob); @s = split(' ', $prov{$packs{$pack}} || ''); while (@s) { $s = shift @s; next if !$dofileprovides && $s =~ /^\//; if ($s =~ /^rpmlib\(/) { splice(@s, 0, 2); next; } push @pr, $s; while (@s && $s[0] =~ /^[\(<=>|]/) { $pr[-1] .= " $s[0] $s[1]"; $pr[-1] =~ s/ \((.*)\)/ $1/; $pr[-1] =~ s/(<|>){2}/$1/; splice(@s, 0, 2); } } @s = split(' ', $req{$packs{$pack}} || ''); while (@s) { $s = shift @s; next if !$dofileprovides && $s =~ /^\//; if ($s =~ /^rpmlib\(/) { splice(@s, 0, 2); next; } push @re, $s; while (@s && $s[0] =~ /^[\(<=>|]/) { $re[-1] .= " $s[0] $s[1]"; $re[-1] =~ s/ \((.*)\)/ $1/; $re[-1] =~ s/(<|>){2}/$1/; splice(@s, 0, 2); } } @s = split(' ', $con{$packs{$pack}} || ''); while (@s) { $s = shift @s; next if !$dofileprovides && $s =~ /^\//; push @co, $s; while (@s && $s[0] =~ /^[\(<=>|]/) { $co[-1] .= " $s[0] $s[1]"; $co[-1] =~ s/ \((.*)\)/ $1/; $co[-1] =~ s/(<|>){2}/$1/; splice(@s, 0, 2); } } @s = split(' ', $obs{$packs{$pack}} || ''); while (@s) { $s = shift @s; next if !$dofileprovides && $s =~ /^\//; push @ob, $s; while (@s && $s[0] =~ /^[\(<=>|]/) { $ob[-1] .= " $s[0] $s[1]"; $ob[-1] =~ s/ \((.*)\)/ $1/; $ob[-1] =~ s/(<|>){2}/$1/; splice(@s, 0, 2); } } $r->{'provides'} = \@pr; $r->{'requires'} = \@re; $r->{'conflicts'} = \@co; $r->{'obsoletes'} = \@ob; $repo{$pack} = $r; } ####################################################################### sub print_rpmlist { for (@_) { print "$_ $fn{$packs{$_}}\n"; print "rpmid: $_:$ids{$packs{$_}}\n" if exists $ids{$packs{$_}}; } print "preinstall: @{$cf->{'preinstall'} || []}\n"; print "vminstall: @{$cf->{'vminstall'} || []}\n"; print "runscripts: @{$cf->{'runscripts'} || []}\n"; print "dist: $dist\n" if defined $dist; print "installonly: $installonly\n" if defined $installonly; print "noinstall: $noinstall\n" if defined $noinstall; } if ($useusedforbuild) { die("Need a recipe file for --usedforbuild\n") unless defined $recipe; local *F; open(F, '<', $recipe) || die("$recipe: $!\n"); my @usedforbuild; my @buildrequires; while() { chomp; if (/^#\s*usedforbuild\s*(.*)$/) { push @usedforbuild, split(' ', $1); } if (/^buildrequires:\s*(.*)$/i) { push @buildrequires, split(' ', $1); } } close F; @usedforbuild = @buildrequires unless @usedforbuild; @usedforbuild = Build::unify(@usedforbuild) if @usedforbuild; my @errors; for (@usedforbuild) { push @errors, "package $_ not found" unless $packs{$_} && $fn{$packs{$_}}; } if (@errors) { print STDERR "expansion error\n"; print STDERR " $_\n" for @errors; exit(1); } print_rpmlist(@usedforbuild); exit(0); } ####################################################################### my ($packname, $packvers, $subpacks, @packdeps); $subpacks = []; if ($recipe) { my $d = Build::parse($cf, $recipe) || {}; my $buildtype = Build::recipe2buildtype($recipe) || ''; $cf->{'type'} = $buildtype if $buildtype; if ($buildtype eq 'kiwi') { # lets see if this is a product or image build my $type = $d->{'imagetype'} && $d->{'imagetype'}->[0] eq 'product' ? 'product' : 'image'; my @kdeps; if ($type eq 'image') { @kdeps = @{$cf->{'substitute'}->{'kiwi-setup:image'} || []}; @kdeps = ('kiwi', 'createrepo', 'tar') unless @kdeps; } else { @kdeps = @{$cf->{'substitute'}->{'kiwi-setup:product'} || []}; @kdeps = ('kiwi') unless @kdeps; } push @kdeps, grep {/^kiwi-.*:/} @{$d->{'deps'} || []}; $d = { 'deps' => \@kdeps, 'subpacks' => [] }; } $packname = $d->{'name'}; $packvers = $d->{'version'}; $subpacks = $d->{'subpacks'}; @packdeps = @{$d->{'deps'} || []}; if ($d->{'prereqs'}) { my %deps = map {$_ => 1} (@packdeps, @{$d->{'subpacks'} || []}); push @packdeps, '--directdepsend--', grep {!$deps{$_} && !/^%/} @{$d->{'prereqs'}}; } } Build::readdeps($cf, undef, \%repo); ####################################################################### my @bdeps = Build::get_build($cf, $subpacks, @packdeps, @extradeps); if (!shift @bdeps) { print STDERR "expansion error\n"; print STDERR " $_\n" for @bdeps; exit(1); } my @sysdeps = Build::get_sysbuild($cf); if (@sysdeps) { if (!shift @sysdeps) { print STDERR "expansion error\n"; print STDERR " $_\n" for @sysdeps; exit(1); } my %sysdeps = map {$_ => 1} @sysdeps; my %bdeps = map {$_ => 1} @bdeps; $installonly = join(' ', grep {!$bdeps{$_}} @sysdeps); $noinstall = join(' ', grep {!$sysdeps{$_}} @bdeps); @bdeps = Build::unify(@sysdeps, @bdeps); } # make sure all preinstalls are in bdeps; # XXX: also add vmdeps? @bdeps = Build::unify(@bdeps, Build::get_preinstalls($cf)); print_rpmlist(@bdeps); obs-build-20141024/spec_add_patch0000755000000000000000000001002212422424142016426 0ustar rootroot00000000000000#!/usr/bin/perl -w # vim:sw=4:et # Author: Dirk Mueller ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; sub helpexit { print "$0: [file.spec]\n"; exit 1; } my $specname; my %diffs; for my $arg (@ARGV) { if ($arg =~ /\.spec$/) { helpexit() if $specname; $specname = $arg; next; } $diffs{$arg} = 1; } sub find_specfile() { opendir(D, "."); my @specs = grep { /\.spec$/ } readdir(D); closedir(D); # choose the one with the shortest name (heuristic) $specname = ( sort { length($a) - length($b) } @specs)[0]; } if (!defined($specname) || ! -f $specname) { &find_specfile(); } open(S, '<', $specname) or die; my $ifdef_level = 0; my $in_prep = 0; my $in_global = 1; my $last_patch_in_prep_index = 0; my $last_patch_in_global_index = 0; my @c = (); my $index = 0; # first read the specfile, parse useful information while() { if(/^\s*%\s*endif/) { $ifdef_level--; $last_patch_in_prep_index = $index if ($in_prep && $ifdef_level == 0); } die if ($ifdef_level < 0); $ifdef_level++ if(/^\s*%\s*if/); if ($ifdef_level == 0 && !$in_prep && $in_global && /^\%(?:prep|build|install|package|description|doc)/) { $in_global = 0; } if (!$in_prep && /^%prep/i) { $in_prep = 1; die if ($in_global); } if ($in_prep && /^%setup\b/) { $last_patch_in_prep_index = $index; } if ($in_prep && /^\%(?:build|install|package|description|doc)/) { $in_prep = 0; } die if (($in_prep + $in_global) > 1); if ($in_global && /^Patch(?:\d+)?:\s+(.+)/) { $last_patch_in_global_index = $index; if ($diffs{$1}) { print "$1 already in, skipped."; delete $diffs{$1}; } } if ($in_global && $ifdef_level == 0 && /^Source(?:\d+)?:/) { $last_patch_in_global_index = $index; } if ($in_prep && $ifdef_level == 0 && /^\%patch/) { $last_patch_in_prep_index = $index; } push(@c, $_); $index++; } close(S); die if ($ifdef_level > 0); die if ($in_global || $in_prep); die if ($last_patch_in_prep_index == 0); die if ($last_patch_in_global_index == 0); #print "adding Patch: $diffname to line $last_patch_in_global_index\n"; #print "adding %patch to line $last_patch_in_prep_index\n"; # determine patch number my $patchnum = 0; $patchnum = $1+1 if ($c[$last_patch_in_global_index] =~ /Patch(\d+):/); $patchnum = 1 if ($c[$last_patch_in_global_index] =~ /Patch:/); for my $diffname (keys %diffs) { # determine strip level my $striplevel = ""; open(P, '<', $diffname) or die "$diffname: $!\n"; while(

) { $striplevel = " -p1" if (m/^--- a/ or m/^--- [^\/]+-\d+\./); last if (/^--- /); } close(P); print "Adding patch$striplevel $diffname to $specname\n"; splice @c, $last_patch_in_prep_index+1, 0, ("\%patch$patchnum$striplevel\n"); splice @c, $last_patch_in_global_index+1, 0, (sprintf "Patch%s:%s%s\n", $patchnum, ' ' x (10-length($patchnum)), $diffname); ++$last_patch_in_global_index; $last_patch_in_prep_index+=2; # actually line number ++$patchnum; } open(O, '>', "$specname.new") or die; print O @c; close(O); system("diff", "-u", $specname, "$specname.new"); rename("$specname.new", $specname); obs-build-20141024/build-vm0000644000000000000000000006033112422424142015231 0ustar rootroot00000000000000# # VM specific functions for the build script # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # defaults for vm_img_mkfs vm_img_mkfs_ext4_options='-O ^has_journal,^huge_file,^resize_inode,sparse_super' vm_img_mkfs_ext4_extra='-E lazy_itable_init,discard' vm_img_mkfs_ext4="mkfs.ext4 -m 0 -q -F $vm_img_mkfs_ext4_options" vm_img_tunefs_ext4='tune2fs -c 0' vm_img_mkfs_ext3='mkfs.ext3 -m 0 -q -F' vm_img_tunefs_ext3='tune2fs -c 0 -o journal_data_writeback' vm_img_mkfs_ext2='mkfs.ext2 -m 0 -q -F' vm_img_tunefs_ext2='tune2fs -c 0' vm_img_mkfs_reiserfs='mkreiserfs -q -f' vm_img_mkfs_btrfs='mkfs.btrfs' vm_img_mkfs_xfs='mkfs.xfs -f' # guest visible swap device VM_SWAPDEV=/dev/hda2 VM_TYPE= VM_IMAGE= VM_SWAP= VM_KERNEL= VM_INITRD= VM_WORKER= VM_SERVER= VM_MEMSIZE= VMDISK_ROOTSIZE=4096 VMDISK_SWAPSIZE=1024 VMDISK_FILESYSTEM= VMDISK_MOUNT_OPTIONS=__default VMDISK_CLEAN= # zvm specific? VM_WORKER_NR= # kvm specific? HUGETLBFSPATH= # emulator specific? EMULATOR_SCRIPT= for i in ec2 emulator kvm lxc openstack qemu uml xen zvm ; do . "$BUILD_DIR/build-vm-$i" done VM_WATCHDOG= VM_WATCHDOG_PID= # the following functions just call the corresponding vm versions vm_kill() { vm_kill_$VM_TYPE "$@" } vm_verify_options() { vm_verify_options_$VM_TYPE "$@" } vm_attach_root() { vm_attach_root_$VM_TYPE "$@" } vm_attach_swap() { vm_attach_swap_$VM_TYPE "$@" } vm_detach_root() { vm_detach_root_$VM_TYPE "$@" } vm_detach_swap() { vm_detach_swap_$VM_TYPE "$@" } vm_fixup() { vm_fixup_$VM_TYPE "$@" } vm_startup() { vm_startup_$VM_TYPE "$@" } vm_kill() { vm_kill_$VM_TYPE "$@" } vm_cleanup() { kill_watchdog vm_cleanup_$VM_TYPE "$@" } vm_parse_options() { case ${PARAM/#--/-} in -emulator-script) needarg EMULATOR_SCRIPT="$ARG" shift ;; -xen|-kvm|-uml|-qemu|-emulator) VM_TYPE=${PARAM##*-} test -z "$VM_IMAGE" && VM_IMAGE=1 if test -n "$ARG" ; then VM_IMAGE="$ARG" shift fi ;; -zvm|-lxc) VM_TYPE=${PARAM##*-} shift ;; -vm-type) needarg VM_TYPE="$ARG" case "$VM_TYPE" in lxc) ;; ec2|xen|kvm|uml|qemu|emulator|openstack|zvm) test -z "$VM_IMAGE" && VM_IMAGE=1 ;; none|chroot) VM_TYPE= ;; *) echo "VM '$VM_TYPE' is not supported" cleanup_and_exit ;; esac shift ;; -vm-worker) needarg VM_WORKER="$ARG" shift ;; -vm-worker-nr|-vm-worker-no) needarg VM_WORKER_NR="$ARG" shift ;; -vm-server|-vm-region) needarg VM_SERVER="$ARG" shift ;; -vm-volumes) needarg VM_VOLUME_NAME="$ARG" shift ARG="$1" test "$ARG" = "${ARG#-}" || ARG= needarg VM_VOLUME_SWAP="$ARG" shift ;; -vm-disk) needarg VM_IMAGE="$ARG" shift ;; -xenswap|-vm-swap|-swap) needarg VM_SWAP="$ARG" shift ;; -xenmemory|-vm-memory|-memory) needarg VM_MEMSIZE="$ARG" shift ;; -vm-kernel) needarg VM_KERNEL="$ARG" shift ;; -vm-initrd) needarg VM_INITRD="$ARG" shift ;; -vmdisk-rootsize|-vm-disk-size) needarg VMDISK_ROOTSIZE="$ARG" shift ;; -vmdisk-swapsize|-vm-swap-size) needarg VMDISK_SWAPSIZE="$ARG" shift ;; -vmdisk-filesystem|-vm-disk-filesystem) needarg VMDISK_FILESYSTEM="$ARG" shift ;; -vmdisk-mount-options|-vm-disk-mount-options) needarg # options needs to be quoted to handle argument which might start with "-o ..." VMDISK_MOUNT_OPTIONS=$(echo $ARG | sed 's/^\"\(.*\)\"$/\1/g') shift ;; -vmdisk-clean) # delete old root/swap to get rid of the old blocks VMDISK_CLEAN=true ;; -rpmlist) needarg RPMLIST="--rpmlist $ARG" BUILD_RPMS= shift ;; -hugetlbfs) needarg HUGETLBFSPATH="$ARG" shift ;; -vm-watchdog) VM_WATCHDOG=true ;; -*) return 1 ;; esac nextargs=("$@") return 0 } # # shutdown the system from inside the VM # vm_shutdown() { test -n "$VM_WATCHDOG" && echo "### WATCHDOG MARKER START ###" cd / test -n "$1" || set 1 if test -n "$VM_SWAP" -a -e "$VM_SWAP" ; then swapoff "$VM_SWAP" 2>/dev/null echo -n "BUILDSTATUS$1" >"$VM_SWAP" fi exec >&0 2>&0 # so that the logging tee finishes sleep 1 # wait till tee terminates test "$VM_TYPE" = lxc && exit $1 kill -9 -1 # goodbye cruel world if ! test -x /sbin/halt ; then test -e /proc/sysrq-trigger || mount -n -tproc none /proc sync sleep 2 # like halt does if test -e /proc/sysrq-trigger; then echo o > /proc/sysrq-trigger sleep 5 # wait for sysrq to take effect else echo "Warning: VM doesn't support sysrq and /sbin/halt not installed" fi else sync # halt from systemd is not syncing anymore. halt -f -p fi echo "Warning: clean shut down of the VM didn't work" exit $1 # init died... } vm_img_create() { local img="$1" local size="$2" echo "Creating $img (${size}M)" mkdir -p "${img%/*}" || cleanup_and_exit 3 # prefer fallocate, which avoids fragmentation r=1 if type -p fallocate > /dev/null ; then fallocate -l "${size}M" "$img" r=$? fi # fall back to dd method if fallocate is not supported if test "$r" -gt 0 ; then dd if=/dev/zero of="$img" bs=1M count=0 seek="$size" || cleanup_and_exit 3 fi } vm_img_mkfs() { local fs="$1" local img="$2" local mkfs tunefs eval "mkfs=\"\$vm_img_mkfs_${fs}\"" eval "mkfs_exta_options=\"\$vm_img_mkfs_${fs}_extra\"" eval "tunefs=\"\$vm_img_tunefs_${fs}\"" if test -z "$mkfs"; then echo "filesystem \"$fs\" is not supported" cleanup_and_exit 3 fi echo "Creating $fs filesystem on $img" if ! $mkfs $mkfs_exta_options "$img"; then if test -z "$mkfs_exta_options"; then cleanup_and_exit 3 else echo "Format call failed, trying again without extra options..." $mkfs "$img" || cleanup_and_exit 3 fi fi if test -n "$tunefs" ; then $tunefs "$img" || cleanup_and_exit 3 fi } background_monitor_process() { max_disk=0 max_mem=0 while sleep 5; do test -e /.build/_statistics.exit && exit 0 # memory usage if test -e /proc/meminfo ; then memtotal=0 while read key value unit; do case $key in MemTotal:|SwapTotal:) memtotal=$(( $memtotal + $value )) ;; MemFree:|SwapFree:|SwapCached:|Cached:|Buffers:) memtotal=$(( $memtotal - $value )) ;; esac done < /proc/meminfo if test ${memtotal} -gt $max_mem ; then max_mem="${memtotal}" echo -n $(( $max_mem / 1024 )) > /.build/_statistics.memory.new && mv /.build/_statistics.memory.new /.build/_statistics.memory fi fi # disk storage usage if type -p df >& /dev/null; then c=(`df -m / 2>/dev/null | tail -n 1`) if test ${c[2]} -gt $max_disk ; then max_disk="${c[2]}" echo -n $max_disk > /.build/_statistics.df.new && mv /.build/_statistics.df.new /.build/_statistics.df fi fi done } background_watchdog() { WATCHDOG_START= WATCHDOG_TIMEOUT=300 while sleep 5 ; do WATCH=`grep -a "### WATCHDOG MARKER" "$LOGFILE" | tail -n 1` case $WATCH in *WATCHDOG\ MARKER\ START*) test -n "$WATCHDOG_START" || WATCHDOG_START=`date +%s` ;; *WATCHDOG\ MARKER\ END*) WATCHDOG_START= ;; esac if test -n "$WATCHDOG_START" ; then NOW=`date +%s` ELAPSED=$((NOW-WATCHDOG_START)) if test $ELAPSED -gt $WATCHDOG_TIMEOUT ; then # kill the VM echo "### WATCHDOG TRIGGERED, KILLING VM ###" fuser -k -TERM "$VM_IMAGE" exit 0 fi fi done } start_watchdog() { local wf=$(mktemp) ( background_watchdog & echo $! > "$wf" ) read VM_WATCHDOG_PID < "$wf" rm -f "$wf" } kill_watchdog() { test -n "$VM_WATCHDOG_PID" && kill "$VM_WATCHDOG_PID" VM_WATCHDOG_PID= } vm_set_personality_syscall() { local archname archname=`perl -V:archname 2>/dev/null` archname="${archname#archname=?}" case "$archname" in x86_64*) PERSONALITY_SYSCALL=135 ;; alpha*) PERSONALITY_SYSCALL=324 ;; sparc*) PERSONALITY_SYSCALL=191 ;; ia64*) PERSONALITY_SYSCALL=1140 ;; i?86*|ppc*|aarch64*|arm*|sh4|cris|m68k*|s390*|unicore32|microblaze) PERSONALITY_SYSCALL=136 ;; *) echo "Unknown architecture personality: '$archname'"; cleanup_and_exit 1 ;; esac } # used before calling kvm or xen linux64() { perl -e 'syscall('$PERSONALITY_SYSCALL', 0); exec(@ARGV) || die("$ARGV[0]: $!\n")' "$@" } vm_detect_2nd_stage() { if test ! -e /.build/build.data -o -n "$BUILD_IGNORE_2ND_STAGE" ; then return 1 fi . /.build/build.data if test -z "$VM_TYPE" ; then return 1 fi if test $$ -eq 1 || test $$ -eq 2 ; then # ignore special init signals if we're init # we're using ' ' instead of '' so that the signal handlers # are reset in the child processes trap ' ' HUP TERM $0 "$@" cleanup_and_exit $? fi test -n "$VM_WATCHDOG" -a -z "$PERSONALITY_SET" && echo "### WATCHDOG MARKER END ###" echo "2nd stage started in virtual machine" BUILD_ROOT=/ unset CHROOT BUILD_DIR=/.build echo "machine type: `uname -m`" if test "$PERSONALITY" != 0 -a -z "$PERSONALITY_SET" ; then export PERSONALITY_SET=true echo "switching personality to $PERSONALITY..." # this is 32bit perl/glibc, thus the 32bit syscall number exec perl -e 'syscall(136, '$PERSONALITY') == -1 && warn("personality: $!\n");exec "/.build/build" || die("/.build/build: $!\n")' fi RUNNING_IN_VM=true test -e /proc/version || mount -orw -n -tproc none /proc if test "$VM_TYPE" != lxc ; then mount -n ${VMDISK_MOUNT_OPTIONS},remount,rw / fi umount /run >/dev/null 2>&1 # mount /sys if ! test -e /sys/block; then mkdir -p /sys mount -orw -n -tsysfs sysfs /sys fi # qemu inside of xen does not work, check again with kvm later before enabling this # if test -e /dev/kqemu ; then # # allow abuild user to run qemu # chmod 0666 /dev/kqemu # fi if test -n "$VM_SWAP" ; then for i in 1 2 3 4 5 6 7 8 9 10 ; do test -e "$VM_SWAP" && break test $i = 1 && echo "waiting for $VM_SWAP to appear" echo -n . sleep 1 done test $i = 1 || echo # recreate the swap device manually if it didn't exist for some # reason, hardcoded to hda2 atm if ! test -b "$VM_SWAP" ; then rm -f "$VM_SWAP" umask 027 mknod "$VM_SWAP" b 3 2 umask 022 fi # Do not rely on external system writing the signature, it might differ... mkswap "$VM_SWAP" swapon -v "$VM_SWAP" || exit 1 fi HOST="$MYHOSTNAME" # fork a process monitoring max filesystem usage during build if test "$DO_STATISTICS" = 1 ; then rm -f /.build/_statistics.exit ( background_monitor_process & ) fi if test ! -e /dev/.udev ; then echo "WARNING: udev not running, creating extra device nodes" test -e /dev/fd || ln -sf /proc/self/fd /dev/fd test -e /etc/mtab || ln -sf /proc/mounts /etc/mtab fi # set date to build start on broken systems (now < build start) if test $(date '+%s') -lt $(date -r /.build/.date '+%s') ; then echo -n "WARNING: system has a broken clock, setting it to a newer time: " date -s `cat /.build/.date` fi return 0 } vm_set_mount_options() { if test "$VMDISK_MOUNT_OPTIONS" = __default; then if test "$VMDISK_FILESYSTEM" = reiserfs ; then VMDISK_MOUNT_OPTIONS='-o data=writeback,commit=150,noatime' elif test "$VMDISK_FILESYSTEM" = btrfs ; then VMDISK_MOUNT_OPTIONS='-o nobarrier,noatime' elif test "$VMDISK_FILESYSTEM" = "ext4" ; then VMDISK_MOUNT_OPTIONS='-o noatime' elif test "$VMDISK_FILESYSTEM" = "ext3" ; then VMDISK_MOUNT_OPTIONS='-o data=writeback,nobarrier,commit=150,noatime' elif test "$VMDISK_FILESYSTEM" = "ext2" ; then VMDISK_MOUNT_OPTIONS='-o noacl,noatime' elif test "$VMDISK_FILESYSTEM" = "xfs" ; then VMDISK_MOUNT_OPTIONS='-o noatime' else VMDISK_MOUNT_OPTIONS='-o noatime' fi fi } # # create file system and swap space, mount file system to $BUILD_ROOT # vm_setup() { vm_set_mount_options if test "$VM_IMAGE" = 1 ; then VM_IMAGE="$BUILD_ROOT.img" if test -z "$VM_SWAP" -a "$VM_TYPE" != emulator; then VM_SWAP="$BUILD_ROOT.swap" fi echo "VM_IMAGE: $VM_IMAGE, VM_SWAP: $VM_SWAP" else echo "VM_IMAGE: $VM_IMAGE, VM_SWAP: $VM_SWAP" vm_attach_root fi # this should not be needed, but sometimes a xen instance got lost test "$VM_TYPE" = xen && vm_purge_xen if test -n "$VMDISK_CLEAN" ; then # delete old root/swap to get rid of the old blocks if test -n "$VM_IMAGE" -a -f "$VM_IMAGE" ; then echo "Deleting old $VM_IMAGE" rm -rf "$VM_IMAGE" fi if test -n "$VM_SWAP" -a -f "$VM_SWAP" ; then echo "Deleting old $VM_SWAP" rm -rf "$VM_SWAP" fi fi if test ! -e "$VM_IMAGE" ; then vm_img_create "$VM_IMAGE" "$VMDISK_ROOTSIZE" if test -z "$CLEAN_BUILD" ; then vm_img_mkfs "$VMDISK_FILESYSTEM" "$VM_IMAGE" fi fi if test -n "$VM_SWAP" -a ! -e "$VM_SWAP" -a ! -b "$VM_SWAP" ; then vm_img_create "$VM_SWAP" "$VMDISK_SWAPSIZE" fi if test ! -e "$VM_IMAGE" ; then echo "you need to create $VM_IMAGE first" cleanup_and_exit 3 fi if test -n "$CLEAN_BUILD" ; then vm_img_mkfs "$VMDISK_FILESYSTEM" "$VM_IMAGE" || cleanup_and_exit 3 fi # now mount root/swap mkdir_build_root if test -w /root ; then if test -b $VM_IMAGE ; then # mount device directly mount $VMDISK_MOUNT_OPTIONS $VM_IMAGE $BUILD_ROOT || cleanup_and_exit 3 else mount ${VMDISK_MOUNT_OPTIONS},loop $VM_IMAGE $BUILD_ROOT || cleanup_and_exit 3 fi else if ! mount $BUILD_ROOT; then echo "mounting the build root failed. An fstab entry is probably missing or incorrect." echo "/etc/fstab should contain an entry like this:" echo "$VM_IMAGE $BUILD_ROOT auto noauto,user,loop 0 0" cleanup_and_exit 3 fi fi if test -n "$VM_SWAP" ; then vm_attach_swap dd if=/dev/zero of="$VM_SWAP" bs=1024 count=1 conv=notrunc 2>/dev/null vm_detach_swap # mkswap happens inside of the vm fi } # # prepare for vm startup # vm_first_stage() { vm_set_personality_syscall rm -rf "$BUILD_ROOT/.build" mkdir -p "$BUILD_ROOT/.build" TIME_PREINSTALL= if test "$DO_INIT" = true ; then # do first stage of init_buildsystem rm -f $BUILD_ROOT/.build.success set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" --prepare "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS echo "$* ..." start_time=`date +%s` "$@" || cleanup_and_exit 1 check_exit TIME_PREINSTALL=$(( `date +%s` - $start_time )) unset start_time if test ! -w /root ; then # remove setuid bit if files belong to user to make e.g. mount work find $BUILD_ROOT/{bin,sbin,usr/bin,usr/sbin} -type f -uid $UID -perm +4000 -print0 | xargs -0 --no-run-if-empty chmod -s fi copy_oldpackages fi # start up VM, rerun ourself cp -a $BUILD_DIR/. $BUILD_ROOT/.build if ! test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir ; then rm -rf "$BUILD_ROOT/.build-srcdir" mkdir "$BUILD_ROOT/.build-srcdir" if test "$BUILDTYPE" = kiwi ; then cp -pRL "$MYSRCDIR"/* $BUILD_ROOT/.build-srcdir else cp -p "$MYSRCDIR"/* $BUILD_ROOT/.build-srcdir fi MYSRCDIR=$BUILD_ROOT/.build-srcdir else # cwd is at $BUILD_ROOT/.build-srcdir which we want to # umount later so step aside cd "$SRCDIR" fi # do vm specific fixups vm_fixup # the watchdog needs a log file test -n "$LOGFILE" || VM_WATCHDOG= # put our config into .build/build.data Q="'\''" echo "RECIPEFILE='${RECIPEFILE//"'"/$Q}'" > $BUILD_ROOT/.build/build.data echo "BUILD_JOBS='${BUILD_JOBS//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "BUILD_ARCH='${BUILD_ARCH//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "BUILD_RPMS='${BUILD_RPMS//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data case $BUILD_DIST in */*) cp $BUILD_DIST $BUILD_ROOT/.build/build.dist BUILD_DIST=/.build/build.dist ;; esac echo "BUILD_DIST='${BUILD_DIST//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "RELEASE='${RELEASE//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "BUILD_DEBUG='${BUILD_DEBUG//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "SIGNDUMMY='${SIGNDUMMY//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "DO_LINT='${DO_LINT//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "DO_CHECKS='${DO_CHECKS//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "NOROOTFORBUILD='${NOROOTFORBUILD//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "CREATE_BASELIBS='$CREATE_BASELIBS'" >> $BUILD_ROOT/.build/build.data echo "REASON='${REASON//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "CHANGELOG='${CHANGELOG//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "INCARNATION='${INCARNATION//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "DISTURL='${DISTURL//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "DO_INIT='${DO_INIT//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "KIWI_PARAMETERS='${KIWI_PARAMETERS//"'"/$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 PERSONALITY=0 test -n "$PERSONALITY_SYSCALL" && PERSONALITY=`perl -e 'print syscall('$PERSONALITY_SYSCALL', 0)."\n"'` test "$PERSONALITY" = -1 && PERSONALITY=0 # syscall failed? case $(uname -m) in ppc|ppcle|s390) PERSONALITY=8 ;; # ppc/s390 kernel never tells us if a 32bit personality is active, assume we run on 64bit aarch64) test "$BUILD_ARCH" != "${BUILD_ARCH#armv}" && PERSONALITY=8 ;; # workaround, to be removed esac test "$VM_TYPE" = lxc && PERSONALITY=0 echo "PERSONALITY='$PERSONALITY'" >> $BUILD_ROOT/.build/build.data echo "MYHOSTNAME='`hostname`'" >> $BUILD_ROOT/.build/build.data echo -n "definesnstuff=(" >> $BUILD_ROOT/.build/build.data shellquote "${definesnstuff[@]}" >> $BUILD_ROOT/.build/build.data echo ")" >> $BUILD_ROOT/.build/build.data echo -n "repos=(" >> $BUILD_ROOT/.build/build.data shellquote "${repos[@]}" >> $BUILD_ROOT/.build/build.data echo ")" >> $BUILD_ROOT/.build/build.data echo "VM_TYPE='$VM_TYPE'" >> $BUILD_ROOT/.build/build.data echo "RUN_SHELL='$RUN_SHELL'" >> $BUILD_ROOT/.build/build.data echo "DO_STATISTICS='$DO_STATISTICS'" >> $BUILD_ROOT/.build/build.data echo "TIME_PREINSTALL='$TIME_PREINSTALL'" >> $BUILD_ROOT/.build/build.data echo "VM_WATCHDOG='$VM_WATCHDOG'" >> $BUILD_ROOT/.build/build.data echo "BUILDENGINE='$BUILDENGINE'" >> $BUILD_ROOT/.build/build.data echo "CCACHE='$CCACHE'" >> $BUILD_ROOT/.build/build.data echo "ABUILD_TARGET='$ABUILD_TARGET'" >> $BUILD_ROOT/.build/build.data # fallback time for broken hosts date '+@%s' > $BUILD_ROOT/.build/.date # we're done with the root file system, unmount 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 vm_init_script="/.build/build" if check_use_emulator ; then vm_init_script="/.build/$INITVM_NAME" fi if test -n "$VM_IMAGE" ; then # copy out kernel & initrd (if they exist) during unmounting VM image KERNEL_TEMP_DIR= if test -z "$VM_KERNEL" -a -e "$BUILD_ROOT/.build.kernel.$VM_TYPE" ; then KERNEL_TEMP_DIR=`mktemp -d` cp "$BUILD_ROOT/.build.kernel.$VM_TYPE" "$KERNEL_TEMP_DIR/kernel" if test -e "$BUILD_ROOT/.build.initrd.$VM_TYPE" ; then cp "$BUILD_ROOT/.build.initrd.$VM_TYPE" "$KERNEL_TEMP_DIR/initrd" fi fi check_exit # needs to work otherwise we have a corrupted file system if ! umount $BUILD_ROOT; then rm -rf "$KERNEL_TEMP_DIR" cleanup_and_exit 3 fi # copy back the kernel and set it for VM if test -n "$KERNEL_TEMP_DIR" ; then mkdir -p "$BUILD_ROOT/boot" mv "$KERNEL_TEMP_DIR/kernel" "$BUILD_ROOT/boot/kernel" vm_kernel="$BUILD_ROOT/boot/kernel" if test -e "$KERNEL_TEMP_DIR/initrd" ; then mv "$KERNEL_TEMP_DIR/initrd" "$BUILD_ROOT/boot/initrd" test -z "$VM_INITRD" && vm_initrd="$BUILD_ROOT/boot/initrd" fi rmdir "$KERNEL_TEMP_DIR" fi fi vm_detach_root # start watchdog if requested if test -n "$VM_WATCHDOG" ; then start_watchdog echo "### WATCHDOG MARKER START ###" fi echo "booting $VM_TYPE..." vm_startup # kill watchdog again if test -n "$VM_WATCHDOG" ; then echo "### WATCHDOG MARKER END ###" kill_watchdog fi vm_attach_root if test -n "$VM_SWAP" ; then vm_attach_swap BUILDSTATUS=`dd if="$VM_SWAP" bs=12 count=1 2>/dev/null` case $BUILDSTATUS in BUILDSTATUS[02]) mkdir -p $BUILD_ROOT/.build.packages cd $BUILD_ROOT/.build.packages || cleanup_and_exit 1 echo "build: extracting built packages..." extractbuild --disk "$VM_IMAGE" --input "$VM_SWAP" --skip 512 -v || cleanup_and_exit 3 if test "$DO_STATISTICS" = 1 ; then mkdir -p OTHER TIME_TOTAL=$(( `date +%s` - $TIME_START_TIME )) echo "TIME_total: $TIME_TOTAL" >> OTHER/_statistics fi cleanup_and_exit ${BUILDSTATUS#BUILDSTATUS} ;; BUILDSTATUS*) cleanup_and_exit ${BUILDSTATUS#BUILDSTATUS} ;; *) echo "No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl)" echo "or the build host has a kernel or hardware problem..." cleanup_and_exit 3 ;; esac cleanup_and_exit 1 fi } vm_save_statistics() { echo "... saving statistics" local sys_mounted otherdir otherdir="$BUILD_ROOT$TOPDIR/OTHER" test -n "$TIME_PREINSTALL" && echo "TIME_preinstall: $TIME_PREINSTALL" >> $otherdir/_statistics test -n "$TIME_INSTALL" && echo "TIME_install: $TIME_INSTALL" >> $otherdir/_statistics if test -e /.build/_statistics.df ; then echo -n "MAX_mb_used_on_disk: " >> $otherdir/_statistics cat /.build/_statistics.df >> $otherdir/_statistics echo "" >> $otherdir/_statistics rm /.build/_statistics.df fi if test -e /.build/_statistics.memory ; then echo -n "MAX_mb_used_memory: " >> $otherdir/_statistics cat /.build/_statistics.memory >> $otherdir/_statistics echo "" >> $otherdir/_statistics rm /.build/_statistics.memory fi if ! test -e /sys/block; then mkdir -p /sys mount -n sys /sys -t sysfs sys_mounted=1 fi device="hda1" test -e /dev/sda && device="sda" test -e /dev/vda && device="vda" test -e /dev/dasda && device="dasda" # in z/VM test -e /dev/nfhd0 && device="nfhd0" # in aranym if test -e /sys/block/${device}/stat ; then disk=(`cat /sys/block/${device}/stat`) test "0${disk[0]}" -gt 0 && echo "IO_requests_read: ${disk[0]}" >> $otherdir/_statistics test "0${disk[2]}" -gt 0 && echo "IO_sectors_read: ${disk[2]}" >> $otherdir/_statistics test "0${disk[4]}" -gt 0 && echo "IO_requests_write: ${disk[4]}" >> $otherdir/_statistics test "0${disk[6]}" -gt 0 && echo "IO_sectors_write: ${disk[6]}" >> $otherdir/_statistics else echo "ERROR: no root disk device found, yet another new device name?" ls -l /sys/block/ fi test -n "$sys_mounted" && umount /sys } # args: resultdirs vm_wrapup_build() { test "$DO_STATISTICS" = 1 && vm_save_statistics if test -n "$VM_SWAP"; then echo "... saving built packages" swapoff "$VM_SWAP" pushd "$BUILD_ROOT$TOPDIR" >/dev/null find "$@" -print0 | computeblocklists --padstart 512 --padend 512 -v --manifest - -0 > "$VM_SWAP" popd >/dev/null fi } obs-build-20141024/build-pkg-deb0000644000000000000000000001120712422424142016116 0ustar rootroot00000000000000# # Debian dpkg specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ 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 } 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 fi $CHROOT dpkg -i --force all .init_b_cache/dpkg.deb >/dev/null 2>&1 } pkg_get_installed_deb() { : } pkg_set_packageid_deb() { PKGID=`readlink $BUILD_ROOT/.init_b_cache/rpms/$PKG.deb` PKGID="${PKGID##*/}" PKGID="${PKGID%.deb} debian" } pkg_install_deb() { export DEBIAN_FRONTEND=noninteractive export DEBIAN_PRIORITY=critical ( $CHROOT dpkg --install --force all /.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)/||/^$/||print' check_exit # ugly workaround for upstart system. some packages (procps) try # to start a service in their configure phase. As we don't have # a running upstart, we just link the start binary to /bin/true if test -e "$BUILD_ROOT/sbin/start"; then if test "$BUILD_ROOT/sbin/start" -ef "$BUILD_ROOT/sbin/initctl" ; then echo "linking /sbin/start to /bin/true" mv "$BUILD_ROOT/sbin/start" "$BUILD_ROOT/sbin/start.disabled" ln -s "/bin/true" "$BUILD_ROOT/sbin/start" fi fi # another workaround, see bug bnc#733699 rm -f "$BUILD_ROOT/var/run/init.upgraded" } pkg_erase_deb() { cleanup_and_exit 1 } pkg_cumulate_deb() { return 1 } pkg_verify_installed_deb() { return 1 } pkg_finalize_deb() { echo "configuring all installed packages..." # 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 ! $CHROOT dpkg --configure --pending 2>&1; then echo "first configure attempt failed, trying again..." $CHROOT 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 "data.tar.gz" ; then $TAR -z -f data.tar.gz elif test -f "data.tar.xz" ; then $TAR -J -f data.tar.xz 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 } pkg_runscripts_deb() { 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" $CHROOT "/.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" $CHROOT "/.init_b_cache/scripts/$PKG.post" configure '' < /dev/null rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" fi } obs-build-20141024/signdummy0000755000000000000000000000377412422424142015541 0ustar rootroot00000000000000#!/usr/bin/perl ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # simple "sign" replacement that does nothing but # write a 2048 byte file with a fixed signature. # sign is used in kiwi builds to sign repositories my $mode; while (@ARGV) { if ($ARGV[0] =~ /^-([cdrp])$/) { $mode = $1; shift @ARGV; next; } if ($ARGV[0] eq '--') { shift @ARGV; last; } if ($ARGV[0] =~ /^-/) { die("unsupported option $ARGV[0]\n"); } last; } if ($mode eq 'p') { my $block = "sIGnMeP\n"; $block .= "\0" x (8192 - length($block)); (syswrite(STDOUT, $block) || 0) == 8192 || die("pubkey write: $!\n"); exit 0; } die("only detached mode possible\n") if !$mode || $mode ne 'd'; die("filter mode not supported\n") unless @ARGV; for my $file (@ARGV) { local *F; open(F, '<', $file) || die("$file: $!\n"); my $buf = ''; 1 while sysread(F, $buf, 16384, length($buf)); close(F) || die("$file: $!\n"); my $block = "sIGnMe!\n"; $block .= sprintf("%08x%08x\n", length($buf), unpack("%32C*", $buf)); $block .= "\0" x (2048 - length($block)); open(F, '>', "$file.asc") || die("$file.asc: $!\n"); (syswrite(F, $block) || 0) == 2048 || die("$file.asc: $!\n"); close(F) || die("$file.asc: $!\n"); } obs-build-20141024/test-debtransform/0000755000000000000000000000000012422424142017227 5ustar rootroot00000000000000obs-build-20141024/test-debtransform/1-out/0000755000000000000000000000000012422424142020174 5ustar rootroot00000000000000obs-build-20141024/test-debtransform/1-out/grandorgue_0.3.0.6.1026.orig.tar.gz0000644000000000000000000000121712422424142025671 0ustar rootroot00000000000000‹ÄMePí—mo›0Çyͧ¸iš´'ÀæQkÆ´,¡UÕ¥•Ö®š4M•µb 2Ð5ß~&lJ4)ͶF™Ôú÷ËÇqßýÈ%Y)ó–ZÈöld‡6Fnè;)¢ èFh}ü…]äa×à 4öBß5 ØåMl¢­"Œ¢­©¼Ãoy¾ÞÇí•|Cþ3:eDì¦ þ*ÿ‘²ã…HçlÉ¿l9½÷CoË¿aãH¥> Ô¨òâ@éíâ·ñÈóÿô‰ÓÖÒ™2ádNÁš™&)o3 Ë3õ5‘ÔI³iíྺڸ¦¼¢Ò.æw8§œÔµ“vaïv죶 ãuçhŽ“W£Éð$¹J¾\|^~ÃA ÖøóéñèlœÄØüß÷@Ø¢ÿôšˆœò2¿ÏÆCß߬ý®ÿÈ µþ÷Á*ÿðüg¼€V¨M™r:€VæT¤‹˜—ßMà% Ö0ÂáFm+…2ZLˆl˜€“’æœJx[,çö¼Ÿ¿OU·à¥Mšwç­x („Óò\„1à7¾€|x…0BZÖ{f“þ:ûYg·3ZÏ›²ú÷5¶éß[ÿ»ê;Gžú$Ôúß_Ç}v!\|3/{]ÇØFæ))h¼*sTÍš ,¸a²iUC¨XEAP“¢â*NTšÉ-M×/y63SµÂZà * &g„×jº¨h<¬*ÎRÒtMfDš—’Ñ:¶+Ëã%Ëh9˜´5KIÖö¾s ºŒ@Vœ[k­ÐËl6Цg“þWöÝè?Š¢?ûÿS/~äzêÐw—Mh\ÿF£Ñh4F£Ñh4F£y˜ür…3 (obs-build-20141024/test-debtransform/1-out/grandorgue_0.3.0.6.1026.diff.gz0000644000000000000000000000136412422424142025057 0ustar rootroot00000000000000‹h™nPgrandorgue_0.3.0.6.1026.diffÅ•ËnÛ8†÷zгl*‰%uµÔ6p;ƒí ÓE€n$u(«–Iƒ¤réÓ—VnNâÔÝ º%’çÿ(ý‡JÓzCŒú7ŠëÛqhtQÇaÂá±åRšPˆYÂ`¹ŒâiÛq©\qÝãhz²å^® ÝÒ(}.Ô[®;cû ÿ£$'”T¤sò‰â “ö¥‹YûÌØ ÷-0B£øÜLVb «£øã ¹½~û`åjð(ýdÃl®¯£øZ7Ý­\áƒöáBÛÂný áƒýˆÞmæ>Yßô—r…ãh÷§Án;—Þ§ÌICX ™†±KÿÆ-êεv–mCºW§ï¡>I@vÂ…vÃט@Þã•O`k žÀ8ˆï\®Ó]Óei‡sŒ;3é½þåUï×YÜ:#…1ëôÊ „Æo­‘ ü¶Qü× åÚM—ž¯8k!Š )”*Y©ê‚B,£hx¹¨%U*PUA¶`5­38ð•<·¤ÿñ$}VV³@7¼*UÅ:Ú”\yƒò2/”(r,ë.kª’S…µÊ(eU(”ª+%1˹¿#|6Œèf5†”f¹¬•`Š5|±ÈQîÖ£B¥òŠþF¶ö½wùÇ>Ä÷LšÓÙ¤ðêNѬ:I;Ïňoa²=jyý~4—Qèá5\Üô´Á&7eâzgR:Ì?O˜û1x'v^[š`579 èOÎì-á«ôQ–£mV¶á!¦á}ï2&=Âùõã9Ì‚w,ÏÊå®Pøä ñÓ倚p¹+€sLÎ*ø<é[ª¼¥‹¶dG¨ØŸ ÊËcï*=Æõ¯Ñéæþl _u4¼#ÿ3k³ºeÍ/™à~ÒƒøxgÆÁ^:Ö¤ƒíª°ñ‹Ö´EÑÒ"`1zða„Kï•ÙþȳÑÓC|.²è'¸•wQíobs-build-20141024/test-debtransform/1-out/grandorgue_0.3.0.6.1026.dsc0000644000000000000000000000073312422424142024300 0ustar rootroot00000000000000Format: 1.0 Source: grandorgue Binary: grandorgue Architecture: any Version: 0.3.0.6.1026 Maintainer: Martin Koegler Standards-Version: 3.9.1 Build-Depends: debhelper (>= 7), cdbs, cmake, gettext, po4a, libjack-jackd2-dev, libasound2-dev, libwxgtk2.8-dev, docbook-xsl, xsltproc, zip, devscripts Files: 7e72e6c31c2af52c227ce4c4c6ee3952 655 grandorgue_0.3.0.6.1026.orig.tar.gz 6d0b166ecd6f5863a5bba1fd576f57a8 756 grandorgue_0.3.0.6.1026.diff.gz obs-build-20141024/test-debtransform/run.sh0000755000000000000000000000073312422424142020375 0ustar rootroot00000000000000#!/bin/bash function fail { echo "$1: FAIL" exit 1 } function run { rm -rf out mkdir out ERROR=0 PATH=..:$PATH ../debtransform $1 $1/$2 out || ERROR=1 if [ "$ERROR" != "$3" ]; then fail $1 fi echo "$1: OK" if [ "$ERROR" = 0 ]; then for a in out/* do NAME="`basename "$a"`" case $NAME in *.dsc) debdiff $4/$NAME out/$NAME ;; esac done fi } run 1 grandorgue.dsc 0 1-out run 2 grandorgue.dsc 0 2-outobs-build-20141024/test-debtransform/2-out/0000755000000000000000000000000012422424142020175 5ustar rootroot00000000000000obs-build-20141024/test-debtransform/2-out/grandorgue_0.3.0.6.1026.orig.tar.gz0000644000000000000000000000121712422424142025672 0ustar rootroot00000000000000‹‹–nPí—mo›0Çyͧ¸iš´'ÀæQkÆ´,¡UÕ¥•Ö®š4M•µb 2Ð5ß~&lJ4)ͶF™Ôú÷ËÇqßýÈ%Y)ó–ZÈöld‡6Fnè;)¢ èFh}ü…]äa×à 4öBß5 ØåMl¢­"Œ¢­©¼Ãoy¾ÞÇí•|Cþ3:eDì¦ þ*ÿ‘²ã…HçlÉ¿l9½÷CoË¿aãH¥> Ô¨òâ@éíâ·ñÈóÿô‰ÓÖÒ™2ádNÁš™&)o3 Ë3õ5‘ÔI³iíྺڸ¦¼¢Ò.æw8§œÔµ“vaïv죶 ãuçhŽ“W£Éð$¹J¾\|^~ÃA ÖøóéñèlœÄØüß÷@Ø¢ÿôšˆœò2¿ÏÆCß߬ý®ÿÈ µþ÷Á*ÿðüg¼€V¨M™r:€VæT¤‹˜—ßMà% Ö0ÂáFm+…2ZLˆl˜€“’æœJx[,çö¼Ÿ¿OU·à¥Mšwç­x („Óò\„1à7¾€|x…0BZÖ{f“þ:ûYg·3ZÏ›²ú÷5¶éß[ÿ»ê;Gžú$Ôúß_Ç}v!\|3/{]ÇØFæ))h¼*sTÍš ,¸a²iUC¨XEAP“¢â*NTšÉ-M×/y63SµÂZà * &g„×jº¨h<¬*ÎRÒtMfDš—’Ñ:¶+Ëã%Ëh9˜´5KIÖö¾s ºŒ@Vœ[k­ÐËl6Цg“þWöÝè?Š¢?ûÿS/~äzêÐw—Mh\ÿF£Ñh4F£Ñh4F£y˜ür…3 (obs-build-20141024/test-debtransform/2-out/grandorgue_0.3.0.6.1026.diff.gz0000644000000000000000000000136412422424142025060 0ustar rootroot00000000000000‹‹–nPgrandorgue_0.3.0.6.1026.diffŕˎÜ(†÷~гLÇ6_ËNÒªdF-%£L-e;|p9å‚à¾äéC¹oÕÝÕ©lFY‹œÿÃü§i ½!Æý›ÅÀõí‹8´º(Žã0áðØr )M(Ä,a°\Fñ´í¸ÇT®¸îq4=Ùr/Wni”>ê-×±ý„ÿQ’J*Ò9ùDñ…IûÒŬ}fì†û¡Q|n&+±…‡ÕQüqÐÜ^?Ž}°r5x”~²a6××Qü ­ŒnáV.Š¿ðAûð má ·~ÐðÁ~D ï6sŸ¬oúK¹Âq4„ûÓÀàƒ·KïSæ¤!,LÃØ¥ãuçZ; ˶!Ý«Ó÷PŸ$ ;áB»ákL GïñÊ'°5O`Äw.×é®é²´Ã‹9Æ™ô^ÿòª÷ëŒ,n‘˜uzåÆBã·ÖÈ~ Û(þk…rí¦KÏWœµÅ@…J•¬TuA !ÈQŠN4¼\Ô’ªF(„ª [°šÖ8%Ï-é Standards-Version: 3.9.1 Build-Depends: debhelper (>= 7), cdbs, cmake, gettext, po4a, libjack-jackd2-dev, libasound2-dev, libwxgtk2.8-dev, docbook-xsl, xsltproc, zip, devscripts Files: 7ab43adb27b5ce885dccd5526745a5a1 655 grandorgue_0.3.0.6.1026.orig.tar.gz aee05a68c294747ab67965c8675f9821 756 grandorgue_0.3.0.6.1026.diff.gz obs-build-20141024/test-debtransform/1/0000755000000000000000000000000012422424142017367 5ustar rootroot00000000000000obs-build-20141024/test-debtransform/1/debian.empty0000644000000000000000000000000012422424142021657 0ustar rootroot00000000000000obs-build-20141024/test-debtransform/1/grandorgue.dsc0000644000000000000000000000070312422424142022217 0ustar rootroot00000000000000Format: 1.0 Source: grandorgue Binary: grandorgue Architecture: any Version: 0.3.0.6.1026 Maintainer: Martin Koegler Standards-Version: 3.9.1 Build-Depends: debhelper (>= 7), cdbs, cmake, gettext, po4a, libjack-jackd2-dev, libasound2-dev, libwxgtk2.8-dev, docbook-xsl, xsltproc, zip, devscripts DEBTRANSFORM-FILES-TAR: debian.tar.gz debian1.tar.gz Files: 1e0023c7fb1f19a883ec8170efeff360 2817072 grandorgue_0.3.0.6.tar.gz obs-build-20141024/test-debtransform/1/debian.tar.gz0000644000000000000000000000101212422424142021732 0ustar rootroot00000000000000‹%ÞOíÔÍoÓ0ðžóWøRù#¶› &h´Ó$®ÈÏihšTŽíþzœmL›„`Hc\ÞOŠ-;ö³e=»‰¦÷Cl&øBKQÒR•~t‹gE3UUsÍ´¤ëcœ-ÓJ ­¨ Ê**ä‚ÐçÝÆ¯Mc2‘Å~!þfÜÍÿñ%vô¢.†¸7iCXI‹«aŠ6¤¹Ï‰â¼íM<=êzݶMàÒóXÓŸŠÏù`Ú¡ß» *.MÛ§üAÜKSÛ“O4DòfÓ.w·íwn ]7”&W)¯a¢W÷EY—¬8ŸÚί>Âz?nˆ›'r°Wgo‰~½$ÎÛ1—{³ƒ%i %8¦%9 •Y’®µ_Û­æÂó•‡o7}f¦þAûû±I;^®o;üàì0ìVDZ[’\¤CÜ’\·‡âÃÜnœöãêjk؆„ZgCL]ÑÊÚ5pÖÛÚȵv4Ô¡kƒ"|Í4ÕüÁaÞß¹œƒesý88—j¯Em” ŠyZK*Q#El%@jÏk%  Ï—IåUZ\ëž°ìEÛÁ8¯Å€R.œ–V›õZ€›gC€„¢Oˆõ¿ý•|™ZÓ—°?¤Ó¿Zãïÿìçû/¸äùýçŠ)|ÿB!„B!„B!„B!„žâ<Á‡(obs-build-20141024/test-debtransform/1/go.tar.gz0000644000000000000000000000121712422424142021124 0ustar rootroot00000000000000‹ÄMePí—mo›0Çyͧ¸iš´'ÀæQkÆ´,¡UÕ¥•Ö®š4M•µb 2Ð5ß~&lJ4)ͶF™Ôú÷ËÇqßýÈ%Y)ó–ZÈöld‡6Fnè;)¢ èFh}ü…]äa×à 4öBß5 ØåMl¢­"Œ¢­©¼Ãoy¾ÞÇí•|Cþ3:eDì¦ þ*ÿ‘²ã…HçlÉ¿l9½÷CoË¿aãH¥> Ô¨òâ@éíâ·ñÈóÿô‰ÓÖÒ™2ádNÁš™&)o3 Ë3õ5‘ÔI³iíྺڸ¦¼¢Ò.æw8§œÔµ“vaïv죶 ãuçhŽ“W£Éð$¹J¾\|^~ÃA ÖøóéñèlœÄØüß÷@Ø¢ÿôšˆœò2¿ÏÆCß߬ý®ÿÈ µþ÷Á*ÿðüg¼€V¨M™r:€VæT¤‹˜—ßMà% Ö0ÂáFm+…2ZLˆl˜€“’æœJx[,çö¼Ÿ¿OU·à¥Mšwç­x („Óò\„1à7¾€|x…0BZÖ{f“þ:ûYg·3ZÏ›²ú÷5¶éß[ÿ»ê;Gžú$Ôúß_Ç}v!\|3/{]ÇØFæ))h¼*sTÍš ,¸a²iUC¨XEAP“¢â*NTšÉ-M×/y63SµÂZà * &g„×jº¨h<¬*ÎRÒtMfDš—’Ñ:¶+Ëã%Ëh9˜´5KIÖö¾s ºŒ@Vœ[k­ÐËl6Цg“þWöÝè?Š¢?ûÿS/~äzêÐw—Mh\ÿF£Ñh4F£Ñh4F£y˜ür…3 (obs-build-20141024/test-debtransform/1/debian.obs-version0000644000000000000000000000002612422424142022777 0ustar rootroot00000000000000Version: 0.3.0.6.1026 obs-build-20141024/test-debtransform/1/debian1.tar.gz0000644000000000000000000000112612422424142022021 0ustar rootroot00000000000000‹ÞOíÕOoÓ0ðžó)|© vlÇM ´ ÚiWä?ÏihšD‰Û>=îº ¶C×ö~jmÙql§ï9u`jݾ›='))·5S’Þ­oÌS…4~â8Ƥ(fD>ë®®McÐ!³Í4ÂðŸqW×ÇCìè Ü.þ»*‹XÃÞràBˆÇŸóÛøó"Žc"§bFè¾7òWÿ©w:@jWº­ éª¬×Á®HÚÓ䥷†àþù‡M.ö¾Æ£çÿÎûŸ+¶=ÿTP<ÿ‡pÿjЭë†j‚ï4ãÍŠÌvOk<Ærö×ÿ¿Ì%ÇøÂI7ltX–Ñ䬛 Kò'’ãºÕÃŽ®Oƒ]Õl˜†8V·É·øÃÔ]»$ש“œêº ñ Ã’œê!Ô-ùÚAÕÀ@Þo®ÚÙz×þhWÐ4]¦ÃQrâzpcz;!ÏÊŒ%ÇSݸô ôкqIbÊÆ›ú8Ù›£D½ëÌË^ÜTœ‡9é;¡ç¤©Ím×é¶pyêàçUŸ»©½Óþu^…už-v®³¦ëÖéùØÌI,B?tvN.ë>ù¼»§Í˜ž­4[’„Pc÷’I³W³ Ö8Sj¹P–úÒ 0Æ$_0EUN8l1³êòþä¹,¶Ó+^êBú‚9ZJí/!-¹ðFpÊåe!5õ |S/ïUá-ä\û„eOêÆíZ (͹UÞ0ÏJ½Xp°Û»Áƒ÷¼ O˜ë¥!„B!„B!„B¡Wì7zË8(obs-build-20141024/test-debtransform/1/debian.changelog0000644000000000000000000000113512422424142022462 0ustar rootroot00000000000000grandorgue (0.3.0.6.10) unstable; urgency=low * OBS build -- Martin Koegler Sat, 16 Jun 2012 13:08:51 +0200 grandorgue (0.3.0.6.11) unstable; urgency=low * OBS build -- Martin Koegler Sat, 16 Jun 2012 13:08:35 +0200 grandorgue (0.3.0.6.10-1) unstable; urgency=low * Non-maintainer upload. * OBS build -- Martin Koegler Sat, 16 Jun 2012 11:27:19 +0200 grandorgue (0.3.0.6) unstable; urgency=low * Initial version -- Martin Koegler Sun, 06 Nov 2011 19:44:04 +0100 obs-build-20141024/test-debtransform/2/0000755000000000000000000000000012422424142017370 5ustar rootroot00000000000000obs-build-20141024/test-debtransform/2/debian.empty0000644000000000000000000000000012422424142021660 0ustar rootroot00000000000000obs-build-20141024/test-debtransform/2/grandorgue.dsc0000644000000000000000000000070312422424142022220 0ustar rootroot00000000000000Format: 1.0 Source: grandorgue Binary: grandorgue Architecture: any Version: 0.3.0.6.1026 Maintainer: Martin Koegler Standards-Version: 3.9.1 Build-Depends: debhelper (>= 7), cdbs, cmake, gettext, po4a, libjack-jackd2-dev, libasound2-dev, libwxgtk2.8-dev, docbook-xsl, xsltproc, zip, devscripts DEBTRANSFORM-FILES-TAR: debian.tar.gz debian1.tar.gz Files: 1e0023c7fb1f19a883ec8170efeff360 2817072 grandorgue_0.3.0.6.tar.gz obs-build-20141024/test-debtransform/2/go.tar.bz20000644000000000000000000000130312422424142021176 0ustar rootroot00000000000000BZh91AY&SYŠp™¯…Ä€jÿÿïŸJÿïßà@| Š¨  )´5BmLM©é¦¦ dÚ†Ò ÔÂiˆ` €F™2ahp # ¦!€@2adÉ„`! Š@‚Ÿ´¦Ê0Ê›&§¡=56 20!‰¤zŸø×Ç]b›"•HÌÂ$°U qÝ9£Ç8Û"´™9ñÒ4·“P¬˜‡’²ëøûýÙ÷Ke0½¡Å›> ÐJaVP©ÐËÔ—“.É ±@þ³j[J_7ýy„ÖFû,ºáá®®º§;QŠQ¥õ*&UðfmY8]È/zˆøº2.š½ôãÕûþsÜ!`z´O Ë,²Nõ£¥Ã!‹ŽfStAyÃ9ôNŽÒOÑj²Âë¯+Gzæ˜bÓgseš±†e¸eœ¾ëL£Âz?nˆ›'r°Wgo‰~½$ÎÛ1—{³ƒ%i %8¦%9 •Y’®µ_Û­æÂó•‡o7}f¦þAûû±I;^®o;üàì0ìVDZ[’\¤CÜ’\·‡âÃÜnœöãêjk؆„ZgCL]ÑÊÚ5pÖÛÚȵv4Ô¡kƒ"|Í4ÕüÁaÞß¹œƒesý88—j¯Em” ŠyZK*Q#El%@jÏk%  Ï—IåUZ\ëž°ìEÛÁ8¯Å€R.œ–V›õZ€›gC€„¢Oˆõ¿ý•|™ZÓ—°?¤Ó¿Zãïÿìçû/¸äùýçŠ)|ÿB!„B!„B!„B!„žâ<Á‡(obs-build-20141024/test-debtransform/2/debian.obs-version0000644000000000000000000000002612422424142023000 0ustar rootroot00000000000000Version: 0.3.0.6.1026 obs-build-20141024/test-debtransform/2/debian1.tar.gz0000644000000000000000000000112612422424142022022 0ustar rootroot00000000000000‹ÞOíÕOoÓ0ðžó)|© vlÇM ´ ÚiWä?ÏihšD‰Û>=îº ¶C×ö~jmÙql§ï9u`jݾ›='))·5S’Þ­oÌS…4~â8Ƥ(fD>ë®®McÐ!³Í4ÂðŸqW×ÇCìè Ü.þ»*‹XÃÞràBˆÇŸóÛøó"Žc"§bFè¾7òWÿ©w:@jWº­ éª¬×Á®HÚÓ䥷†àþù‡M.ö¾Æ£çÿÎûŸ+¶=ÿTP<ÿ‡pÿjЭë†j‚ï4ãÍŠÌvOk<Ærö×ÿ¿Ì%ÇøÂI7ltX–Ñ䬛 Kò'’ãºÕÃŽ®Oƒ]Õl˜†8V·É·øÃÔ]»$ש“œêº ñ Ã’œê!Ô-ùÚAÕÀ@Þo®ÚÙz×þhWÐ4]¦ÃQrâzpcz;!ÏÊŒ%ÇSݸô ôкqIbÊÆ›ú8Ù›£D½ëÌË^ÜTœ‡9é;¡ç¤©Ím×é¶pyêàçUŸ»©½Óþu^…už-v®³¦ëÖéùØÌI,B?tvN.ë>ù¼»§Í˜ž­4[’„Pc÷’I³W³ Ö8Sj¹P–úÒ 0Æ$_0EUN8l1³êòþä¹,¶Ó+^êBú‚9ZJí/!-¹ðFpÊåe!5õ |S/ïUá-ä\û„eOêÆíZ (͹UÞ0ÏJ½Xp°Û»Áƒ÷¼ O˜ë¥!„B!„B!„B¡Wì7zË8(obs-build-20141024/test-debtransform/2/debian.changelog0000644000000000000000000000113512422424142022463 0ustar rootroot00000000000000grandorgue (0.3.0.6.10) unstable; urgency=low * OBS build -- Martin Koegler Sat, 16 Jun 2012 13:08:51 +0200 grandorgue (0.3.0.6.11) unstable; urgency=low * OBS build -- Martin Koegler Sat, 16 Jun 2012 13:08:35 +0200 grandorgue (0.3.0.6.10-1) unstable; urgency=low * Non-maintainer upload. * OBS build -- Martin Koegler Sat, 16 Jun 2012 11:27:19 +0200 grandorgue (0.3.0.6) unstable; urgency=low * Initial version -- Martin Koegler Sun, 06 Nov 2011 19:44:04 +0100 obs-build-20141024/download0000755000000000000000000000442712422424142015330 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use Net::SSL (); BEGIN { $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0, unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use LWP::UserAgent; use URI; use File::Path; use File::Basename; use strict; die "USAGE: $0 DIR URLS..." unless $#ARGV >= 1; my $dir = shift @ARGV; my $ua = LWP::UserAgent->new( agent => "openSUSE build script", timeout => 42); for my $url (@ARGV) { if ($url =~ /^zypp:\/\/([^\/]*)\/?/) { use Build::Zypp; my $repo = Build::Zypp::parserepo($1); die "can't parse $1\n" unless $repo; die "missing url in repo ".$repo->{'name'}."\n" unless exists $repo->{'baseurl'}; my $u = $repo->{'baseurl'}; $u .= '/' unless $u =~ /\/$/; $url =~ s/^zypp:\/\/[^\/]*\/*//; $url = URI->new($u.$url); if ($url->scheme eq 'dir') { my $dest = "$dir/".basename($url->path); unlink($dest); # just in case system('cp', $url->path, $dest) && die("cp $url->path $dest failed\n"); last; } } else { $url = URI->new($url); } $ua->env_proxy if $url->scheme ne 'https'; my $dest = "$dir/".basename($url->path); 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 "requesting $url failed: ".$res->status_line."\n" unless $retry && $res->previous; warn "retrying $url\n"; } } # vim:sw=2 obs-build-20141024/spec2changelog0000755000000000000000000000566012422424142016405 0ustar rootroot00000000000000#!/usr/bin/perl # # Tiny perl script that parses a .spec file (STDIN), extracts # its %changelog entries and prints (STDOUT) them in the # format of a .changes file, ordered. # # Usage: cat foo.spec | spec2changes.pl > foo.changes # ################################################################ # # Copyright 2009 by Pascal Bleser # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use warnings; use strict; use Date::Language; use POSIX qw(strftime setlocale LC_ALL); # make sure date printed in correct locale $ENV{'TZ'} = 'UTC'; setlocale(LC_ALL, 'C'); my $sep = "-" x 67; my @days = qw{Mon Tue Wed Thu Fri Sat Sun}; my @months = qw{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}; #---------------------------------------------------------------------- # my %dh = map { $_ => 1 } @days; my %mh = map { $_ => 1 } @months; my $date_parser = Date::Language->new('English'); my %items = (); my $current_block = undef; my $time = undef; while (<>) { if (/^%changelog/ .. eof()) { next if /^%/; next if /^\s*#/; chomp; s/\s+$//; if (/^\*\s+(([A-Z][a-z]{2})\s+([A-Z][a-z]{2})\s+\d{1,2}\s+\d{4})(\s+(.*)\s*)$/ and exists $dh{$2} and exists $mh{$3}) { $items{$time} = $current_block if defined $current_block and defined $time; $time = $date_parser->str2time($1); $current_block = []; $_ = $4; } elsif (/^\*/) { warn("not matching a headline: \"$_\"\n"); } push(@$current_block, $_); } } $items{$time} = $current_block if defined $current_block and defined $time; foreach my $time (sort { $b <=> $a } (keys(%items))) { print $sep, "\n"; my $item = $items{$time}; my $head = shift(@$item); $head =~ s/^\s+//; $head =~ s/^\-\s+//; if ($head =~ m/^(.+?)\s*<(.+?\@.+?\..+?)>(\s*.*)$/) { $head = $2; } elsif ($head =~ m/^<(.+?\@.+?\..+?)>(\s*.*)$/) { $head = $1; } if ($head =~ m/^\s*-\s*(.+)$/) { $head = $1; } print strftime("%a %b %e %H:%M:%S %Z %Y", localtime($time)), " - ", $head, "\n"; my $first = shift(@$item); print "\n" unless defined($first) && ($first eq ''); print $first, "\n"; print join("\n", @$item), "\n" if @$item; print "\n"; } obs-build-20141024/t/0000755000000000000000000000000012422424142014027 5ustar rootroot00000000000000obs-build-20141024/t/dist0000755000000000000000000000271112422424142014721 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; use Test::More tests => 9; use Build; sub d { Build::dist_canon($_[0], $_[1]||'i586'); } is(d("UnitedLinux 1.0 (x86-64)"), "ul1-x86_64"); is(d("SuSE SLES-8 (ia64)"), "sles8-ia64"); is(d("SuSE Linux 8.2 (x86-64)"), "8.2-x86_64"); is(d("SuSE SLES-9 (x86-64)"), "sles9-x86_64"); is(d("SUSE Linux 10.1 (PPC64)"), "10.1-ppc64"); is(d("SUSE Linux Enterprise 10 (PPC)"), "sles10-ppc"); is(d("openSUSE 10.3 (X86-64)"), "10.3-x86_64"); is(d("SUSE Linux Enterprise 11"), "sles11-i386"); is(d("openSUSE 11.3"), "11.3-i386"); obs-build-20141024/t/bad.livebuild0000644000000000000000000012000012422424142016447 0ustar rootroot00000000000000./PaxHeaders.6730/auto0000644000000000000000000000013212222266372013026 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 auto/0000755000175000001440000000000012222266372012701 5ustar00jblunckusers00000000000000auto/PaxHeaders.6730/clean0000644000000000000000000000013212222266372013753 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 auto/clean0000755000175000001440000000024012222266372013705 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb clean noauto "${@}" rm -f config/binary config/bootstrap config/chroot config/common config/source rm -f config/control rm -f build.log auto/PaxHeaders.6730/config0000644000000000000000000000013212222266372014136 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 auto/config0000755000175000001440000000062612222266372014100 0ustar00jblunckusers00000000000000#!/bin/sh set -e case "$(dpkg --print-architecture)" in amd64) _LINUX_FLAVOURS="amd64" _SOURCE="false" ;; i386) _LINUX_FLAVOURS="486 686-pae" _SOURCE="true" ;; esac lb config noauto \ --clean \ --ignore-system-defaults \ --mode debian \ --debian-installer live \ --linux-flavours "${_LINUX_FLAVOURS}" \ --linux-packages "linux-image linux-headers" \ --source "${_SOURCE}" \ "${@}" auto/PaxHeaders.6730/build0000644000000000000000000000013212222266372013770 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 auto/build0000755000175000001440000000011212222266372013720 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb build noauto "${@}" && echo $? 2>&1 | tee build.log ./PaxHeaders.6730/config0000644000000000000000000000013212222300375013313 xustar000000000000000030 mtime=1380548861.684530853 30 atime=1404933484.298323059 30 ctime=1404933481.152361217 config/0000755000175000001440000000000012222300375013166 5ustar00jblunckusers00000000000000config/PaxHeaders.6730/bootloaders0000644000000000000000000000013212222304630015471 xustar000000000000000030 mtime=1380551064.696527946 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/bootloaders/0000755000175000001440000000000012222304630015501 5ustar00jblunckusers00000000000000config/PaxHeaders.6730/package-lists0000644000000000000000000000013212357312571015717 xustar000000000000000030 mtime=1404933497.776159592 30 atime=1404933498.247153879 30 ctime=1404933497.776159592 config/package-lists/0000755000175000001440000000000012357312571015727 5ustar00jblunckusers00000000000000config/package-lists/PaxHeaders.6730/installer.list.chroot0000644000000000000000000000013212222266372022161 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/package-lists/installer.list.chroot0000644000175000001440000000003712222266372022114 0ustar00jblunckusers00000000000000debian-installer-launcher sudo config/package-lists/PaxHeaders.6730/live.list.chroot0000644000000000000000000000013212222266372021123 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/package-lists/live.list.chroot0000644000175000001440000000002712222266372021055 0ustar00jblunckusers00000000000000live-manual live-tools config/package-lists/PaxHeaders.6730/localization.list.chroot0000644000000000000000000000013212222266372022654 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/package-lists/localization.list.chroot0000644000175000001440000000003412222266372022604 0ustar00jblunckusers00000000000000task-english console-tools config/package-lists/PaxHeaders.6730/standard.list.chroot0000644000000000000000000000013212222266372021764 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933490.584246818 30 ctime=1404933481.152361217 config/package-lists/standard.list.chroot0000644000175000001440000000007212222266372021716 0ustar00jblunckusers00000000000000! Packages Priority standard task-laptop task-ssh-server config/package-lists/PaxHeaders.6730/memtest0000644000000000000000000000013212222266372017373 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933486.633294738 30 ctime=1404933497.776159592 config/package-lists/memtest0000644000175000001440000000001312222266372017320 0ustar00jblunckusers00000000000000memtest86+ config/PaxHeaders.6730/archives0000644000000000000000000000013212222302706014762 xustar000000000000000030 mtime=1380550086.359529237 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/archives/0000755000175000001440000000000012222302706014772 5ustar00jblunckusers00000000000000config/archives/PaxHeaders.6730/debian.list.chroot0000644000000000000000000000013212222302676020461 xustar000000000000000030 mtime=1380550078.121529248 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/archives/debian.list.chroot0000644000175000001440000000020212222302676020406 0ustar00jblunckusers00000000000000deb obs://openSUSE.org:Debian:7.0/standard wheezy main contrib deb-src obs://openSUSE.org:Debian:7.0/standard wheezy main contrib config/archives/PaxHeaders.6730/debian.key.chroot0000644000000000000000000000013212222300432020262 xustar000000000000000030 mtime=1380548890.449530815 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 config/archives/debian.key.chroot0000644000175000001440000000004512222300432020214 0ustar00jblunckusers00000000000000a73043cf-7b16-42dc-b0d9-3031ed4370be ./PaxHeaders.6730/README0000644000000000000000000000013212222266372013013 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404933481.152361217 30 ctime=1404933481.152361217 README0000644000175000001440000000077112222266372012616 0ustar00jblunckusers00000000000000This is the configuration tree for: Debian Standard A software called live-build can be used to automatically build images from this configuration tree. live-build can be obtained from . On Debian based systems, live-build can be installed with: # apt-get install live-build More information about live-build and the Live Systems project can be found on its homepage at and in the manual at . obs-build-20141024/t/directory.livebuild0000644000000000000000000007400012422424142017735 0ustar rootroot00000000000000./PaxHeaders.21794/directory0000644000000000000000000000013212361532117014146 xustar000000000000000030 mtime=1405531215.102319719 30 atime=1405531213.970331813 30 ctime=1405531215.102319719 directory/0000755000175000001440000000000012361532117013732 5ustar00jblunckusers00000000000000directory/PaxHeaders.21794/README0000644000000000000000000000013212222266372014751 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/README0000644000175000001440000000077112222266372014622 0ustar00jblunckusers00000000000000This is the configuration tree for: Debian Standard A software called live-build can be used to automatically build images from this configuration tree. live-build can be obtained from . On Debian based systems, live-build can be installed with: # apt-get install live-build More information about live-build and the Live Systems project can be found on its homepage at and in the manual at . directory/PaxHeaders.21794/auto0000644000000000000000000000013212222266372014764 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/auto/0000755000175000001440000000000012222266372014705 5ustar00jblunckusers00000000000000directory/auto/PaxHeaders.21794/clean0000644000000000000000000000013212222266372016046 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/auto/clean0000755000175000001440000000024012222266372015711 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb clean noauto "${@}" rm -f config/binary config/bootstrap config/chroot config/common config/source rm -f config/control rm -f build.log directory/auto/PaxHeaders.21794/config0000644000000000000000000000013212222266372016231 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/auto/config0000755000175000001440000000062612222266372016104 0ustar00jblunckusers00000000000000#!/bin/sh set -e case "$(dpkg --print-architecture)" in amd64) _LINUX_FLAVOURS="amd64" _SOURCE="false" ;; i386) _LINUX_FLAVOURS="486 686-pae" _SOURCE="true" ;; esac lb config noauto \ --clean \ --ignore-system-defaults \ --mode debian \ --debian-installer live \ --linux-flavours "${_LINUX_FLAVOURS}" \ --linux-packages "linux-image linux-headers" \ --source "${_SOURCE}" \ "${@}" directory/auto/PaxHeaders.21794/build0000644000000000000000000000013212222266372016063 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/auto/build0000755000175000001440000000011212222266372015724 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb build noauto "${@}" && echo $? 2>&1 | tee build.log directory/PaxHeaders.21794/config0000644000000000000000000000013212222300375015251 xustar000000000000000030 mtime=1380548861.684530853 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/0000755000175000001440000000000012222300375015172 5ustar00jblunckusers00000000000000directory/config/PaxHeaders.21794/bootloaders0000644000000000000000000000013212222304630017564 xustar000000000000000030 mtime=1380551064.696527946 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/bootloaders/0000755000175000001440000000000012222304630017505 5ustar00jblunckusers00000000000000directory/config/PaxHeaders.21794/package-lists0000644000000000000000000000013212357312571020012 xustar000000000000000030 mtime=1404933497.776159592 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/0000755000175000001440000000000012357312571017733 5ustar00jblunckusers00000000000000directory/config/package-lists/PaxHeaders.21794/installer.list.chroot0000644000000000000000000000013212222266372024254 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/installer.list.chroot0000644000175000001440000000003712222266372024120 0ustar00jblunckusers00000000000000debian-installer-launcher sudo directory/config/package-lists/PaxHeaders.21794/live.list.chroot0000644000000000000000000000013212222266372023216 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/live.list.chroot0000644000175000001440000000002712222266372023061 0ustar00jblunckusers00000000000000live-manual live-tools directory/config/package-lists/PaxHeaders.21794/localization.list.chroot0000644000000000000000000000013212222266372024747 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/localization.list.chroot0000644000175000001440000000003412222266372024610 0ustar00jblunckusers00000000000000task-english console-tools directory/config/package-lists/PaxHeaders.21794/standard.list.chroot0000644000000000000000000000013212222266372024057 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/standard.list.chroot0000644000175000001440000000007212222266372023722 0ustar00jblunckusers00000000000000! Packages Priority standard task-laptop task-ssh-server directory/config/package-lists/PaxHeaders.21794/memtest0000644000000000000000000000013212222266372021466 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/package-lists/memtest0000644000175000001440000000001312222266372021324 0ustar00jblunckusers00000000000000memtest86+ directory/config/PaxHeaders.21794/archives0000644000000000000000000000013212357513140017062 xustar000000000000000030 mtime=1404999264.309919538 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/archives/0000755000175000001440000000000012357513140017003 5ustar00jblunckusers00000000000000directory/config/archives/PaxHeaders.21794/debian.key.chroot0000644000000000000000000000013212222300432022355 xustar000000000000000030 mtime=1380548890.449530815 30 atime=1405531215.102319719 30 ctime=1405531215.102319719 directory/config/archives/debian.key.chroot0000644000175000001440000000004512222300432022220 0ustar00jblunckusers00000000000000a73043cf-7b16-42dc-b0d9-3031ed4370be obs-build-20141024/t/standard.livebuild0000644000000000000000000007400012422424142017531 0ustar rootroot00000000000000./PaxHeaders.10269/auto0000644000000000000000000000013212222266372013110 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404999252.606063979 30 ctime=1404999250.918084803 auto/0000755000175000001440000000000012222266372012701 5ustar00jblunckusers00000000000000auto/PaxHeaders.10269/clean0000644000000000000000000000013212222266372014035 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 auto/clean0000755000175000001440000000024012222266372013705 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb clean noauto "${@}" rm -f config/binary config/bootstrap config/chroot config/common config/source rm -f config/control rm -f build.log auto/PaxHeaders.10269/config0000644000000000000000000000013212222266372014220 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 auto/config0000755000175000001440000000062612222266372014100 0ustar00jblunckusers00000000000000#!/bin/sh set -e case "$(dpkg --print-architecture)" in amd64) _LINUX_FLAVOURS="amd64" _SOURCE="false" ;; i386) _LINUX_FLAVOURS="486 686-pae" _SOURCE="true" ;; esac lb config noauto \ --clean \ --ignore-system-defaults \ --mode debian \ --debian-installer live \ --linux-flavours "${_LINUX_FLAVOURS}" \ --linux-packages "linux-image linux-headers" \ --source "${_SOURCE}" \ "${@}" auto/PaxHeaders.10269/build0000644000000000000000000000013212222266372014052 xustar000000000000000030 mtime=1380543738.699537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 auto/build0000755000175000001440000000011212222266372013720 0ustar00jblunckusers00000000000000#!/bin/sh set -e lb build noauto "${@}" && echo $? 2>&1 | tee build.log ./PaxHeaders.10269/config0000644000000000000000000000013212222300375013375 xustar000000000000000030 mtime=1380548861.684530853 30 atime=1404999252.606063979 30 ctime=1404999250.918084803 config/0000755000175000001440000000000012222300375013166 5ustar00jblunckusers00000000000000config/PaxHeaders.10269/bootloaders0000644000000000000000000000013212222304630015553 xustar000000000000000030 mtime=1380551064.696527946 30 atime=1404999252.606063979 30 ctime=1404999250.918084803 config/bootloaders/0000755000175000001440000000000012222304630015501 5ustar00jblunckusers00000000000000config/PaxHeaders.10269/package-lists0000644000000000000000000000013212357312571016001 xustar000000000000000030 mtime=1404933497.776159592 30 atime=1404999252.606063979 30 ctime=1404999250.918084803 config/package-lists/0000755000175000001440000000000012357312571015727 5ustar00jblunckusers00000000000000config/package-lists/PaxHeaders.10269/installer.list.chroot0000644000000000000000000000013212222266372022243 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/package-lists/installer.list.chroot0000644000175000001440000000003712222266372022114 0ustar00jblunckusers00000000000000debian-installer-launcher sudo config/package-lists/PaxHeaders.10269/live.list.chroot0000644000000000000000000000013212222266372021205 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/package-lists/live.list.chroot0000644000175000001440000000002712222266372021055 0ustar00jblunckusers00000000000000live-manual live-tools config/package-lists/PaxHeaders.10269/localization.list.chroot0000644000000000000000000000013212222266372022736 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/package-lists/localization.list.chroot0000644000175000001440000000003412222266372022604 0ustar00jblunckusers00000000000000task-english console-tools config/package-lists/PaxHeaders.10269/standard.list.chroot0000644000000000000000000000013212222266372022046 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/package-lists/standard.list.chroot0000644000175000001440000000007212222266372021716 0ustar00jblunckusers00000000000000! Packages Priority standard task-laptop task-ssh-server config/package-lists/PaxHeaders.10269/memtest0000644000000000000000000000013212222266372017455 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/package-lists/memtest0000644000175000001440000000001312222266372017320 0ustar00jblunckusers00000000000000memtest86+ config/PaxHeaders.10269/archives0000644000000000000000000000013212357513140015051 xustar000000000000000030 mtime=1404999264.309919538 30 atime=1404999252.606063979 30 ctime=1404999264.309919538 config/archives/0000755000175000001440000000000012357513140014777 5ustar00jblunckusers00000000000000config/archives/PaxHeaders.10269/debian.key.chroot0000644000000000000000000000013212222300432020344 xustar000000000000000030 mtime=1380548890.449530815 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 config/archives/debian.key.chroot0000644000175000001440000000004512222300432020214 0ustar00jblunckusers00000000000000a73043cf-7b16-42dc-b0d9-3031ed4370be ./PaxHeaders.10269/README0000644000000000000000000000013212222266372013075 xustar000000000000000030 mtime=1380543738.739537615 30 atime=1404999250.918084803 30 ctime=1404999250.918084803 README0000644000175000001440000000077112222266372012616 0ustar00jblunckusers00000000000000This is the configuration tree for: Debian Standard A software called live-build can be used to automatically build images from this configuration tree. live-build can be obtained from . On Debian based systems, live-build can be installed with: # apt-get install live-build More information about live-build and the Live Systems project can be found on its homepage at and in the manual at . obs-build-20141024/t/live-build0000755000000000000000000000373612422424142016022 0ustar rootroot00000000000000#!/usr/bin/perl -w -I .. ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; use Test::More tests => 5; use Build::LiveBuild; use Data::Dumper; use Digest::MD5 qw(md5_hex); my $VAR = ' a b #comment ! whatever '; is(Build::LiveBuild::filter($VAR), 'a b '); my $DEB_ARCHIVE = ' # comment deb obs://openSUSE.org:Debian:7.0/standard wheezy main contrib deb-src obs://openSUSE.org:Debian:7.0/standard wheezy main contrib '; my $DEB_ARCHIVE_RESULT = "\$VAR1 = 'openSUSE.org:Debian:7.0/standard'; "; is(Dumper(Build::LiveBuild::parse_archive($DEB_ARCHIVE)), $DEB_ARCHIVE_RESULT); my $config = {}; $Data::Dumper::Sortkeys = 1; is(md5_hex(Dumper(Build::LiveBuild::parse( $config, 'standard.livebuild'))), '9cfb69e8f0581293f207342edacd19e7'); #print Dumper(Build::LiveBuild::parse( $config, 'standard.livebuild')); is(md5_hex(Dumper(Build::LiveBuild::parse( $config, 'directory.livebuild'))), 'bc803d2b4a375d9a02b3242117f6c93a'); #print Dumper(Build::LiveBuild::parse( $config, 'directory.livebuild')); is(md5_hex(Dumper(Build::LiveBuild::parse( $config, 'bad.livebuild'))), '1e596160978007d1014e9c5e38574700'); #print Dumper(Build::LiveBuild::parse( $config, 'bad.livebuild')); obs-build-20141024/lxc.conf0000644000000000000000000000051512422424142015222 0ustar rootroot00000000000000lxc.cgroup.devices.deny = a # null lxc.cgroup.devices.allow = c 1:3 rw # zero lxc.cgroup.devices.allow = c 1:5 rw # full lxc.cgroup.devices.allow = c 1:7 rw # random lxc.cgroup.devices.allow = c 1:8 rw # urandom lxc.cgroup.devices.allow = c 1:9 rw # tty lxc.cgroup.devices.allow = c 5:0 rw # ptmx lxc.cgroup.devices.allow = c 5:2 rw obs-build-20141024/queryconfig0000755000000000000000000000504112422424142016045 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use strict; use Build; my ($dist, $archs, $configdir, $debug, $type, $argument); $configdir = ($::ENV{'BUILD_DIR'} || '/usr/lib/build') . '/configs'; while (@ARGV) { if ($ARGV[0] eq '--dist') { shift @ARGV; $dist = shift @ARGV; next; } elsif ($ARGV[0] eq '--archpath') { shift @ARGV; $archs = shift @ARGV; next; } elsif ($ARGV[0] eq '--configdir') { shift @ARGV; $configdir = shift @ARGV; next; } elsif (defined($type)) { $argument = shift @ARGV; } else { $type = shift @ARGV; } } die("Please specify what to query\n") unless defined $type; my $cf = Build::read_config_dist($dist, $archs, $configdir); die("Unable to read config\n") unless $cf; if ($type eq 'buildflags') { die("Specify which buildflag to query\n") unless $argument; my $result = $cf->{"buildflags:$argument"}; print "$result\n" if defined $result; } elsif ($type eq 'target' || $type eq 'type' || $type eq 'binarytype' || $type eq 'buildengine' || $type eq 'rawmacros') { print "$cf->{$type}\n" if $cf->{$type}; } elsif ($type eq 'optflags') { exit(0) unless $cf->{'optflags'}; my $all = $cf->{'optflags'}->{'*'}; $all = defined($all) && $all ne '' ? " $all" : ''; $all .= " -g" if $argument && $argument eq 'debug'; for (sort keys %{$cf->{'optflags'}}) { next if $_ eq '*'; print "optflags: $_ $cf->{'optflags'}->{$_}$all\n"; } } elsif ($type eq 'substitute') { die("Specify which substitute to query\n") unless $argument; my @res = @{$cf->{'substitute'}->{$argument} || []}; print join(' ', @res)."\n" if @res; } else { die("unsupported query type: $type\n"); } exit(0); obs-build-20141024/debtransform0000755000000000000000000002607012422424142016205 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; use Digest::MD5; sub parsedsc { my ($fn) = @_; my @control; local *F; open(F, '<', $fn) || die("$fn: $!\n"); @control = ; close F; chomp @control; splice(@control, 0, 3) if @control > 3 && $control[0] =~ /^-----BEGIN/; my @seq = (); my %tag; while (@control) { my $c = shift @control; last if $c eq ''; # new paragraph my ($tag, $data) = split(':', $c, 2); next unless defined $data; push @seq, $tag; $tag = uc($tag); while (@control && $control[0] =~ /^\s/) { $data .= "\n".substr(shift @control, 1); } $data =~ s/^\s+//s; $data =~ s/\s+$//s; $tag{$tag} = $data; } $tag{'__seq'} = \@seq; return \%tag; } sub writedsc { my ($fn, $tags) = @_; open(F, '>', $fn) || die("$fn: $!\n"); my @seq = @{$tags->{'__seq'} || []}; my %seq = map {uc($_) => 1} @seq; for (sort keys %$tags) { push @seq, ucfirst(lc($_)) unless $seq{$_}; } for my $seq (@seq) { my $ucseq = uc($seq); my $d = $tags->{$ucseq}; next unless defined $d; $d =~ s/\n/\n /sg; print F "$seq: $d\n"; } print F "\n"; close F; } sub listtar { my ($tar, $skipdebiandir) = @_; local *F; my @c; unless(defined($skipdebiandir)) { $skipdebiandir = 1; } open(F, '-|', 'tar', '--numeric-owner', '-tvf', $tar) || die("tar: $!\n"); while() { next unless /^([-dlbcp])(.........)\s+\d+\/\d+\s+(\S+) \d\d\d\d-\d\d-\d\d \d\d:\d\d(?::\d\d)? (.*)$/; my ($type, $mode, $size, $name) = ($1, $2, $3, $4); next if $type eq 'd'; if ($type eq 'l') { next if $skipdebiandir eq 0; die("debian tar contains link: $name\n"); } if ($type ne '-') { next if $skipdebiandir eq 0; die("debian tar contains unexpected file type: $name\n"); } $name =~ s/^\.\///; $name =~ s/^debian\/// if $skipdebiandir eq 1; push @c, {'name' => $name, 'size' => $size}; } close(F) || die("tar: $!\n"); return @c; } sub extracttar { my ($tar, $filename, $s) = @_; local *F; open(F, '-|', 'tar', '-xOf', $tar, $filename) || die("tar: $!\n"); my $file = ''; while ($s > 0) { my $l = sysread(F, $file, $s, length($file)); die("tar read error\n") unless $l; $s -= $l; } my @file = split("\n", $file); close(F); return @file; } sub dodiff { my ($oldname, $newname, $origtarfile, @content) = @_; my @oldcontent; for my $c (@{$origtarfile->{'content'}}) { if ($c->{'name'} eq $newname) { @oldcontent = extracttar($origtarfile->{'name'}, $c->{'name'}, $c->{'size'}); } } if ($newname eq $origtarfile->{'tardir'}."/debian/changelog") { my $firstline = $content[0]; my $version = $firstline; $version =~ s/.*\((.*)\).*/$1/g; if ($version ne $origtarfile->{'version'}) { $firstline =~ s/\(.*\)/($origtarfile->{'version'})/g; my $date = `date -R`; chomp($date); my @newcontent = ($firstline, "", " * version number update by debtransform", "", " -- debtransform ".$date, ""); push(@newcontent, @content); @content = @newcontent; } } return unless @content; print DIFF "--- $oldname\n"; print DIFF "+++ $newname\n"; if (@oldcontent) { print DIFF "\@\@ -1,".scalar(@oldcontent)." +1,".scalar(@content)." \@\@\n"; print DIFF "-$_\n" for @oldcontent; } else { print DIFF "\@\@ -0,0 +1,".scalar(@content)." \@\@\n"; } print DIFF "+$_\n" for @content; } sub dotar { my ($tar, $tardir, $origin, $origtarfile, @c) = @_; local *F; open(F, '-|', 'tar', '-xOf', $tar) || die("tar: $!\n"); for my $c (@c) { my $s = $c->{'size'}; my $file = ''; while ($s > 0) { my $l = sysread(F, $file, $s, length($file)); die("tar read error\n") unless $l; $s -= $l; } next if $origin && $origin->{$c->{'name'}} ne $tar; my @file = split("\n", $file); dodiff("$tardir.orig/debian/$c->{'name'}", "$tardir/debian/$c->{'name'}", $origtarfile, @file); } close(F); } sub dofile { my ($file, $tardir, $dfile, $origtarfile) = @_; local *F; open(F, '<', $file) || die("$file: $!\n"); my @file = ; close F; chomp(@file); dodiff("$tardir.orig/$dfile", "$tardir/$dfile", $origtarfile, @file); } sub doseries { my ($series, $tardir) = @_; my $dir = $series; $dir =~ s/[^\/]+$//; $dir =~ s/\/+$//; $dir = '.' if $dir eq ''; local *F; open(F, '<', $series) || die("$series: $!\n"); my @series = ; close F; chomp(@series); for my $patch (@series) { $patch =~ s/(^|\s+)#.*//; next if $patch =~ /^\s*$/; my $level = 1; $level = $1 if $patch =~ /\s.*-p\s*(\d+)/; $patch =~ s/\s.*//; open(F, '<', "$dir/$patch") || die("$dir/$patch: $!\n"); while() { chomp; if ((/^--- ./ || /^\+\+\+ ./) && !/^... \/dev\/null/) { my $start = substr($_, 0, 4); $_ = substr($_, 4); my $l = $level; while ($l > 0) { last unless s/.*?\///; $l--; } if ($start eq '--- ') { print DIFF "$start$tardir.orig/$_\n"; } else { print DIFF "$start$tardir/$_\n"; } next; } print DIFF "$_\n"; } close F; } } sub addfile { my ($file) = @_; my $base = $file; $base =~ s/.*\///; local *F; open(F, '<', $file) || die("$file: $!\n"); my $size = -s F; my $ctx = Digest::MD5->new; $ctx->addfile(*F); close F; my $md5 = $ctx->hexdigest(); return "$md5 $size $base"; } my $changelog; if (@ARGV > 1 && $ARGV[0] eq '--changelog') { shift @ARGV; $changelog = shift @ARGV; } die("usage: debtransform [--changelog ] \n") unless @ARGV == 3; my $dir = $ARGV[0]; my $dsc = $ARGV[1]; my $out = $ARGV[2]; die("$out: $!\n") unless -d $out; my $tags = parsedsc($dsc); opendir(D, $dir) || die("$dir: $!\n"); my @dir = grep {$_ ne '.' && $_ ne '..'} readdir(D); closedir(D); my %dir = map {$_ => 1} @dir; my $tarfile = $tags->{'DEBTRANSFORM-TAR'}; my @debtarfiles; if ($tags->{'DEBTRANSFORM-FILES-TAR'}) { @debtarfiles = split(' ', $tags->{'DEBTRANSFORM-FILES-TAR'}); } if (!$tarfile || !@debtarfiles) { my @tars = grep {/\.tgz$|\.tar(?:\.gz|\.bz2)?$/} @dir; my @debtars = grep {/^debian\.tar(?:\.gz|\.bz2)?$/} @tars; if (!$tarfile) { @tars = grep {!/^debian\.tar(?:\.gz|\.bz2)?$/} @tars; if (@debtarfiles) { my %debtarfiles = map {$_ => 1} @debtarfiles; @tars = grep {!$debtarfiles{$_}} @tars; } die("package contains no tar file\n") unless @tars; die("package contains more than one tar file: @tars\n") if @tars > 1; $tarfile = $tars[0]; } if (@debtars && !exists($tags->{'DEBTRANSFORM-FILES-TAR'})) { die("package contains more than one debian tar file\n") if @debtars > 1; @debtarfiles = ($debtars[0]); } } my $name = $tags->{'SOURCE'}; die("dsc file contains no source\n") unless defined($name); my $version = $tags->{'VERSION'}; die("dsc file contains no version\n") unless defined($version); $version =~ s/^\d+://; # no epoch in version, please # transform my $tmptar; if ($tarfile =~ /\.tar\.bz2/) { my $old = $tarfile; $tarfile =~ s/\.tar\.bz2/\.tar\.gz/; $tmptar = "$out/$tarfile"; print "converting $dir/$old to $tarfile\n"; system( ( "debtransformbz2", "$dir/$old", "$tmptar" )) == 0 || die("cannot transform .tar.bz2 to .tar.gz"); } if ($tarfile =~ /\.zip/) { my $old = $tarfile; $tarfile =~ s/\.zip/\.tar\.gz/; $tmptar = "$out/$tarfile"; print "converting $dir/$old to $tarfile\n"; system( ( "debtransformzip", "$dir/$old", "$tmptar" )) == 0 || die("cannot transform .zip to .tar.gz"); } if ($tarfile =~ /\.tgz$/) { my $old = $tarfile; $tarfile =~ s/\.tgz/\.tar.gz/; $tmptar = "$out/$tarfile"; print "renaming $dir/$old to $tarfile\n"; system ( ("mv", "$dir/$old", "$tmptar" ) ) == 0 || die("cannot rename .tgz to .tar.gz"); } my @files; my $v = $version; $v =~ s/-[^-]*$//; $tarfile =~ /.*(\.tar.*?)$/; my $ntarfile = "${name}_$v.orig$1"; if( $tmptar ) { link("$tmptar", "$out/$ntarfile") || die("link $dir/$tarfile $out/$ntarfile: $!\n"); unlink("$tmptar"); } else { link("$dir/$tarfile", "$out/$ntarfile") || die("link $dir/$tarfile $out/$ntarfile: $!\n"); } push @files, addfile("$out/$ntarfile"); my $tarpath = "$out/$ntarfile"; my $tardir = $tarfile; $tardir =~ s/\.orig\.tar/\.tar/; $tardir =~ s/\.tar.*?$//; my @tarfilecontent = listtar($tarpath, 0); my $origtarfile = { 'name', $tarpath, 'content', \@tarfilecontent, 'version', $tags->{'VERSION'}, 'tardir', $tardir}; open(DIFF, '>', "$out/${name}_$version.diff") || die("$out/${name}_$version.diff: $!\n"); undef $changelog if $dir{'debian.changelog'}; my %debtarorigin; my %debtarcontent; for my $debtarfile (@debtarfiles) { my @c = listtar("$dir/$debtarfile"); $debtarcontent{$debtarfile} = \@c; for (@c) { die("debian tar and directory both contain '$_->{'name'}'\n") if $dir{"debian.$_->{'name'}"}; undef $changelog if $_->{'name'} eq 'changelog'; $debtarorigin{$_->{'name'}} = "$dir/$debtarfile"; } } dofile($changelog, $tardir, 'debian/changelog', $origtarfile) if defined $changelog; if ($tags->{'DEBTRANSFORM-FILES'}) { for my $file (split(' ', $tags->{'DEBTRANSFORM-FILES'})) { dofile("$dir/$file", $tardir, $file, $origtarfile); } } for my $debtarfile (@debtarfiles) { dotar("$dir/$debtarfile", $tardir, \%debtarorigin, $origtarfile, @{$debtarcontent{$debtarfile} }); } for my $file (grep {/^debian\./} @dir) { next if $file eq 'debian.series'; next if $file =~ /\.tar$/; next if $file =~ /\.tar\./; dofile("$dir/$file", $tardir, 'debian/'.substr($file, 7), $origtarfile); } if ($tags->{'DEBTRANSFORM-SERIES'}) { doseries("$dir/$tags->{'DEBTRANSFORM-SERIES'}", $tardir); } elsif ($dir{"debian.series"}) { doseries("$dir/debian.series", $tardir); } elsif ($dir{"patches.series"}) { doseries("$dir/patches.series", $tardir); } close(DIFF); if (! -s "$out/${name}_$version.diff") { unlink("$out/${name}_$version.diff"); } else { system('gzip', '-9', "$out/${name}_$version.diff"); if (-f "$out/${name}_$version.diff.gz") { push @files, addfile("$out/${name}_$version.diff.gz"); } else { push @files, addfile("$out/${name}_$version.diff"); } } $tags->{'FILES'} = "\n".join("\n", @files); delete $tags->{'DEBTRANSFORM-SERIES'}; delete $tags->{'DEBTRANSFORM-TAR'}; delete $tags->{'DEBTRANSFORM-FILES-TAR'}; delete $tags->{'DEBTRANSFORM-FILES'}; writedsc("$out/${name}_$version.dsc", $tags); exit(0); obs-build-20141024/build-recipe-dsc0000644000000000000000000001027112422424142016623 0ustar rootroot00000000000000# # dsc specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ recipe_setup_dsc() { TOPDIR=/usr/src/packages rm -rf "$BUILD_ROOT$TOPDIR" mkdir -p "$BUILD_ROOT$TOPDIR" mkdir -p "$BUILD_ROOT$TOPDIR/OTHER" mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES" mkdir -p "$BUILD_ROOT/$TOPDIR/DEBS" chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ # FIX to work with baselibs_$PROJ etc if test -e "$MYSRCDIR/baselibs-deb.conf" ; then echo "dsc build and baselibs-deb.conf present: forcing --baselibs to true" CREATE_BASELIBS=true fi } recipe_prepare_dsc() { rm -rf "$BUILD_ROOT$TOPDIR/BUILD" mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES.DEB" chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" DEB_TRANSFORM= DEB_SOURCEDIR="$TOPDIR/SOURCES" DEB_DSCFILE="$RECIPEFILE" for f in $BUILD_ROOT$TOPDIR/SOURCES/debian.* ; do test -f $f && DEB_TRANSFORM=true done if test -n "$DEB_TRANSFORM" ; then CHANGELOGARGS= test -n "$CHANGELOG" -a -f "$BUILD_ROOT/.build-changelog" && CHANGELOGARGS="--changelog $BUILD_ROOT/.build-changelog" echo "running debian transformer..." if ! debtransform $CHANGELOGARGS $BUILD_ROOT$TOPDIR/SOURCES $BUILD_ROOT$TOPDIR/SOURCES/$RECIPEFILE $BUILD_ROOT$TOPDIR/SOURCES.DEB ; then echo "debian transforming failed." cleanup_and_exit 1 fi DEB_SOURCEDIR=$TOPDIR/SOURCES.DEB for DEB_DSCFILE in $BUILD_ROOT/$DEB_SOURCEDIR/*.dsc ; do : ; done DEB_DSCFILE="${DEB_DSCFILE##*/}" fi $CHROOT su -c "dpkg-source -x $DEB_SOURCEDIR/$DEB_DSCFILE $TOPDIR/BUILD" - $BUILD_USER } recipe_build_dsc() { # Checks to see if a build script should be used # this allows the build environment to be manipulated # and alternate build commands can be used # Debian policy requires to build with single CPU by default # if test -n "$BUILD_JOBS" ; then # DSC_BUILD_JOBS="-j$BUILD_JOBS" # fi DSC_BUILD_CMD="$(queryconfig --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" substitute dsc:build_cmd)" test -z "$DSC_BUILD_CMD" && DSC_BUILD_CMD="dpkg-buildpackage -us -uc $DSC_BUILD_JOBS" if test -e $BUILD_ROOT/$TOPDIR/SOURCES/build.script ; then echo "Sourcing build.script to build - it should normally run 'dpkg-buildpackage -us -uc'" DSC_BUILD_CMD="source $TOPDIR/SOURCES/build.script" chmod +x $BUILD_ROOT/$TOPDIR/SOURCES/build.script fi if test -n "$RUN_SHELL"; then $CHROOT su - else $CHROOT su -c "cd $TOPDIR/BUILD && $DSC_BUILD_CMD" - $BUILD_USER < /dev/null && BUILD_SUCCEEDED=true if test "$BUILD_SUCCEEDED" = true -a "$DO_CHECKS" != "false"; then DEB_CHANGESFILE=${RECIPEFILE%.dsc}_"$($CHROOT su -c 'dpkg-architecture -qDEB_BUILD_ARCH')".changes $CHROOT su -c "which lintian > /dev/null && cd $TOPDIR && echo Running lintian && (set -x && lintian -i $DEB_SOURCEDIR/$DEB_DSCFILE)" - $BUILD_USER < /dev/null fi fi for DEB in $BUILD_ROOT/$TOPDIR/*.deb ; do test -e "$DEB" && mv "$DEB" "$BUILD_ROOT/$TOPDIR/DEBS" done # link used sources over to DEB directory ln $BUILD_ROOT/$DEB_SOURCEDIR/$DEB_DSCFILE $BUILD_ROOT/$TOPDIR/DEBS/ while read f ; do ln $BUILD_ROOT/$DEB_SOURCEDIR/$f $BUILD_ROOT/$TOPDIR/DEBS/ done < <(sed -ne '/^Files:/,$s/^ ................................ [0-9][0-9]* //p' < $BUILD_ROOT/$DEB_SOURCEDIR/$DEB_DSCFILE) } recipe_resultdirs_dsc() { echo DEBS } obs-build-20141024/qemu-reg0000644000000000000000000000602412422424142015233 0ustar rootroot00000000000000# register qemu binfmts # - used by initvm, build common_functions and init_buildsystem # derived from /usr/sbin/qemu-binfmt-conf.sh # NOTE: this requires a qemu with the binfmt misc handler binary :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\xfe\xff\xff\xff:/usr/bin/qemu-arm-binfmt:P :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 :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 :ppc64:M::i\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 :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 :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 :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 #:mipsn32: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-mipsn32-binfmt:P #:mipsn32el: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-mipsn32el-binfmt:P #:mips64:M::\x7fELF\x02\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-mips64-binfmt:P #:mips64el:M::\x7fELF\x02\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-mips64el-binfmt:P :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 :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 obs-build-20141024/build-recipe-mock0000644000000000000000000000664412422424142017014 0ustar rootroot00000000000000# # mock specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ recipe_setup_mock() { recipe_setup_spec "$@" } recipe_prepare_mock() { recipe_prepare_spec "$@" } recipe_build_mock() { test -d $BUILD_ROOT/.build.binaries || cleanup_and_exit 1 if test "$DO_INIT" = true -o ! -d "$BUILD_ROOT/.build.binaries/repodata" ; then echo "creating repository for mock..." $CHROOT createrepo --no-database --basedir /.build.binaries -o /.build.binaries /.build.binaries fi MOCK_CHROOT_SETUP_CMD="$(queryconfig --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" substitute mock:chroot_setup_cmd)" test -z "$MOCK_CHROOT_SETUP_CMD" && MOCK_CHROOT_SETUP_CMD="groupinstall buildsys-build" echo "config_opts['root'] = 'build'" > $BUILD_ROOT/etc/mock/build.cfg echo "config_opts['target_arch'] = '${BUILD_ARCH%%:*}'" >> $BUILD_ROOT/etc/mock/build.cfg echo "config_opts['plugin_conf']['ccache_enable'] = False" >> $BUILD_ROOT/etc/mock/build.cfg echo "config_opts['chroot_setup_cmd'] = '$MOCK_CHROOT_SETUP_CMD'" >> $BUILD_ROOT/etc/mock/build.cfg cat >> $BUILD_ROOT/etc/mock/build.cfg <<-'EOF' config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= [build] name=build baseurl=file:///.build.binaries """ EOF touch $BUILD_ROOT/etc/resolv.conf BUILD_SUCCEEDED=false echo "building src rpm..." MOCK_INIT_ARG= test "$DO_INIT" = true || MOCK_INIT_ARG=--no-clean if $CHROOT /usr/bin/mock -r build $MOCK_INIT_ARG --buildsrpm --spec "$TOPDIR/SOURCES/$RECIPEFILE" --sources "$TOPDIR/SOURCES" ; then BUILT_SRPM= for i in "$BUILD_ROOT/var/lib/mock/build/result/"*src.rpm ; do test -s "$i" && BUILT_SRPM="${i##*/}" done if test -n "$BUILT_SRPM" ; then mkdir -p "$BUILD_ROOT/$TOPDIR/SRPMS" mv "$BUILD_ROOT/var/lib/mock/build/result/$BUILT_SRPM" "$BUILD_ROOT/$TOPDIR/SRPMS/$BUILT_SRPM" echo "building binary rpms..." if $CHROOT /usr/bin/mock -v -r build --rebuild --no-clean "$TOPDIR/SRPMS/$BUILT_SRPM" ; then BUILD_SUCCEEDED=true # move result over to TOPDIR rm -f "$TOPDIR/SRPMS/$BUILT_SRPM" for i in "$BUILD_ROOT/var/lib/mock/build/result/"*.rpm ; do a="${i%.rpm}" a="${a##*/}" a="${a##*.}" if test "$a" = src -o "$a" = nosrc ; then mkdir -p "$BUILD_ROOT/$TOPDIR/SRPMS" mv $i "$BUILD_ROOT/$TOPDIR/SRPMS/." else mkdir -p "$BUILD_ROOT/$TOPDIR/RPMS/$a" mv $i "$BUILD_ROOT/$TOPDIR/RPMS/$a/." fi done fi fi fi } recipe_resultdirs_mock() { echo RPMS SRPMS } obs-build-20141024/build-pkg-rpm0000644000000000000000000001747212422424142016174 0ustar rootroot00000000000000# # RPM specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ #buildhost removed so that id can be generated from repo files #RPMIDFMT="%{NAME}-%{VERSION}-%{RELEASE} %{BUILDHOST}-%{BUILDTIME}\n" RPMIDFMT="%{NAME}-%{VERSION}-%{RELEASE} %{BUILDTIME}\n" pkg_initdb_rpm() { echo "initializing rpm db..." 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 /usr/bin/rpmdb --initdb || cleanup_and_exit 1 else $CHROOT 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 rpm --eval '%{?__dbi_other}'` echo "%__dbi_other $DBI_OTHER nofsync" > $BUILD_ROOT/.rpmmacros echo "%__dbi_other $DBI_OTHER nofsync" > $BUILD_ROOT/root/.rpmmacros } pkg_get_installed_rpm() { $CHROOT rpm -qa --qf "%{NAME} $RPMIDFMT" | ( while read pp ii; do echo "$ii" > "$BUILD_ROOT/.init_b_cache/alreadyinstalled/$pp" done ) # small hack: we misuse get_installed_rpm as initializer function rpm_set_checkopts rpm_init_cumulate } pkg_erase_rpm() { $CHROOT rpm --nodeps -e $PKG 2>&1 | { local retry while read line; do case "$line" in r*failed:\ No\ such\ file\ or\ directory) ;; error:\ failed\ to\ stat\ *:\ No\ such\ file\ or\ directory) ;; error:\ *scriptlet\ failed*) echo "$line" retry=1 ;; *) echo "$line" ;; esac done if test -n "$retry" ; then echo "re-try deleting $PKG using --noscripts" $CHROOT rpm --nodeps --noscripts -e $PKG || true fi } } rpm_set_checkopts() { RPMCHECKOPTS= RPMCHECKOPTS_HOST= # 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 /usr/bin/rpmquery && RPMCHECKOPTS_HOST="--nodigest --nosignature" } rpm_init_cumulate() { cumulate=-1 CUMULATED_LIST=() CUMULATED_PIDS=() CUMULATED_HMD5=() DO_CUMULATE= typeset -ri suse_version=$($CHROOT rpm --eval '%{?suse_version}' 2>/dev/null) if ((suse_version > 1220)) ; then DO_CUMULATE=true fi } pkg_set_packageid_rpm() { PKGID=`rpm -qp --qf "$RPMIDFMT" $RPMCHECKOPTS_HOST $BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm` } pkg_verify_installed_rpm() { $CHROOT rpm --verify $PKG 2>&1 | tee $TMPFILE if grep ^missing $TMPFILE > /dev/null ; then return 1 fi return 0 } pkg_cumulate_rpm() { 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 test -e "$i" && return 1 done fi let cumulate++ CUMULATED_LIST[$cumulate]="/.init_b_cache/$PKG.rpm" CUMULATED_PIDS[$cumulate]="$PKGID" CUMULATED_HMD5[$cumulate]="$PKG_HDRMD5" return 0 } 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 ( $CHROOT rpm --ignorearch --nodeps -U --oldpackage --ignoresize $RPMCHECKOPTS \ $ADDITIONAL_PARAMS /.init_b_cache/$PKG.rpm 2>&1 || \ touch $BUILD_ROOT/exit ) | \ grep -v "^warning:.*saved as.*rpmorig$" } pkg_finalize_rpm() { if test -n "${CUMULATED_LIST[*]}" ; then echo "now installing cumulated packages" for ((num=0; num<=cumulate; num++)) ; do 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 $CHROOT 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]} done 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} test -n "${CUMULATED_HMD5[$num]}" || continue 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 lzma) rpm --showrc | egrep 'PayloadIsLzma|_lzma' > /dev/null || PAYLOADDECOMPRESS="lzma -d" ;; xz) rpm --showrc | egrep 'PayloadIsXz|_xz' > /dev/null || PAYLOADDECOMPRESS="xz -d" ;; esac if test "$PAYLOADDECOMPRESS" = "lzma -d" ; then if ! lzma /dev/null 2>&1 ; then test -f "$BUILD_DIR/lzmadec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/lzmadec.sh" fi fi if test "$PAYLOADDECOMPRESS" = "xz -d" ; then if ! xz /dev/null 2>&1 ; then test -f "$BUILD_DIR/xzdec.sh" && PAYLOADDECOMPRESS="bash $BUILD_DIR/xzdec.sh" fi fi if test "$PAYLOADDECOMPRESS" = cat ; then rpm2cpio "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" | $CPIO else 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" 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" rm -f .init_b_cache/scripts/.none fi # 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 rpm --rebuilddb # also exec for exchanged rpm ! naming is rpm-x86-- test -z "${PKG##rpm-x86-*[0-9]*}" && $CHROOT rpm --rebuilddb fi } pkg_runscripts_rpm() { if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" ; then echo "running $PKG preinstall script" $CHROOT sh "/.init_b_cache/scripts/$PKG.pre" 0 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" $CHROOT sh "/.init_b_cache/scripts/$PKG.post" 1 rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" fi } obs-build-20141024/unrpm.10000644000000000000000000000065412422424142015014 0ustar rootroot00000000000000.TH unrpm 1 "(c) 1997-2014 SuSE Linux AG Nuernberg, Germany" .SH NAME unrpm \- unpack the contents of one or more rpm files .SH SYNOPSIS .B unrpm .RB [ -v ] .RB [ -q ] .I rpm .RB ... .SH DESCRIPTION The \fBunrpm\fP tool unpacks one or more rpm files into the current directory. The \fB-v\fP option makes it print the filenames while unpacking, whereas the \fB-q\fP option suppresses any output. .SH SEE ALSO .BR rpm2cpio (8), obs-build-20141024/build-recipe-livebuild0000644000000000000000000001635112422424142020036 0ustar rootroot00000000000000################################################################# # # Debian live-build specific functions. # # Author: Jan Blunck # # This file is part of build. # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################# recipe_setup_livebuild() { TOPDIR=/usr/src/packages rm -rf "$BUILD_ROOT$TOPDIR" for i in OTHER SOURCES LIVEBUILD_ROOT ; do mkdir -p "$BUILD_ROOT$TOPDIR/$i" done chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" if test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir ; then mv "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ else cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ fi } recipe_prepare_livebuild() { : } createrepo_debian() { local DIR=${1} local ARCH=${2} local DIST=${3} if [ -z "${DIR}" -o ! -d ${DIR} -o ${DIR} = ${DIR##${BUILD_ROOT}} ] ; then return fi pushd ${DIR} >/dev/null # cleanup existing repository files rm -f Packages Packages.gz Release rm -fr dists mkdir -p dists/${DIST} # Suite is symlinked to Codename ln -s ${DIST} dists/stable # create Packages and Sources files mkdir -p dists/${DIST}/main/binary-${ARCH} mkdir -p dists/${DIST}/main/source cat > ${BUILD_ROOT}/.createrepo_debian.tmp.sh <<-EOF cd /.build.binaries || exit 1 dpkg-scanpackages -m . > dists/${DIST}/main/binary-${ARCH}/Packages gzip -c9 < dists/${DIST}/main/binary-${ARCH}/Packages \ > dists/${DIST}/main/binary-${ARCH}/Packages.gz dpkg-scansources . > dists/${DIST}/main/source/Sources gzip -c9 dists/${DIST}/main/source/Sources \ > dists/${DIST}/main/source/Sources.gz EOF $CHROOT su -c "sh /.createrepo_debian.tmp.sh" - root local RESULT=$? rm -f $BUILD_ROOT/.createrepo_debian.tmp.sh [ "${RESULT}" != 0 ] && return # create Release file pushd dists/${DIST} >/dev/null cat > Release <<-EOF Origin: Debian Label: Debian Suite: stable Version: 7.1 Codename: ${DIST} Date: Sat, 15 Jun 2013 10:55:26 UTC Description: Debian repository created by build-recipe-livebuild Components: main EOF echo "SHA256:" >> Release for file in main/binary-${ARCH}/Packages* ; do local SUM=( $(sha256sum ${file}) ) local SIZE=$(stat -c '%s' ${file}) echo " ${SUM} ${SIZE} ${file}" >> Release done for file in main/source/Sources* ; do local SUM=( $(sha256sum ${file}) ) local SIZE=$(stat -c '%s' ${file}) echo " ${SUM} ${SIZE} ${file}" >> Release done popd >/dev/null # TODO: this is missing the signature with the private key popd >/dev/null } # This script expects that the $BUILD_ROOT is a Debian installation with # live-build already installed! # # Variables: # $BUILD_ROOT the Debian chroot # $TOPDIR/SOURCES includes the live-build config tarball # $TOPDIR/$LIVEBUILD_ROOT where live-build will be called # $RECIPEFILE the name of the live-build config tarball recipe_build_livebuild() { local ARCH=$($CHROOT su -c "dpkg-architecture -qDEB_BUILD_ARCH") local DIST=$($CHROOT su -c "lsb_release --codename" | awk '{ print $2 }') local LIVEBUILD_ROOT="LIVEBUILD_ROOT" [ -z "${ARCH}" -o -z "${DIST}" ] && cleanup_and_exit 1 test -d $BUILD_ROOT/.build.binaries || cleanup_and_exit 1 if test "$DO_INIT" = true -o ! -d "$BUILD_ROOT/.build.binaries/dists" ; then echo "creating repository metadata..." createrepo_debian $BUILD_ROOT/.build.binaries ${ARCH} ${DIST} fi # Write our default configuration variables mkdir -p $BUILD_ROOT/etc/live cat > $BUILD_ROOT/etc/live/build.conf <<-EOF LB_DEBIAN_INSTALLER_DISTRIBUTION="${DIST}" LB_DISTRIBUTION="${DIST}" LB_PARENT_DISTRIBUTION="${DIST}" LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${DIST}" LB_PARENT_MIRROR_BOOTSTRAP="file:/.build.binaries/" LB_PARENT_MIRROR_CHROOT="file:/.build.binaries/" LB_PARENT_MIRROR_CHROOT_SECURITY="file:/.build.binaries/" LB_PARENT_MIRROR_BINARY="file:/.build.binaries/" LB_PARENT_MIRROR_BINARY_SECURITY="file:/.build.binaries/" LB_PARENT_MIRROR_DEBIAN_INSTALLER="file:/.build.binaries/" LB_MIRROR_BOOTSTRAP="file:/.build.binaries/" LB_MIRROR_CHROOT="file:/.build.binaries/" LB_MIRROR_CHROOT_SECURITY="file:/.build.binaries/" LB_MIRROR_BINARY="file:/.build.binaries/" LB_MIRROR_BINARY_SECURITY="file:/.build.binaries/" LB_MIRROR_DEBIAN_INSTALLER="file:/.build.binaries/" LB_APT_SECURE="false" EOF # Expand live-build configuration to $TOPDIR/$LIVEBUILD_ROOT echo "Expanding live-build configuration" tar -xvf $BUILD_ROOT/$TOPDIR/SOURCES/$RECIPEFILE \ -C $BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT || cleanup_and_exit 1 # Skip top-level directory if it matches recipe name, ... local files=($BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT/*) # ... but ignore some well known names files=(${files[@]%%*/auto}) files=(${files[@]%%*/config}) files=(${files[@]%%*/local}) if [ ${#files[@]} -eq 1 ] && \ [ -d $BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT/${RECIPEFILE%.livebuild} ] then LIVEBUILD_ROOT="LIVEBUILD_ROOT/${RECIPEFILE%.livebuild}" fi # Sanity check to not configure archives inside configuration files=($BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT/config/archives/*) [ ${#files[@]} -gt 0 ] && cleanup_and_exit 1 # TODO: Add the repository public key # cp ... $BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT/config/archives/debian.key if [ -x $BUILD_ROOT/usr/lib/build/livebuild_pre_run ] ; then echo "Running OBS build livebuild_pre_run hook" $CHROOT su -c "/usr/lib/build/livebuild_pre_run" - root \ < /dev/null || cleanup_and_exit 1 fi # TODO: this might move to lb auto/config file if [ -f $BUILD_ROOT/$TOPDIR/SOURCES/livebuild_pre_run ] ; then cp $BUILD_ROOT/$TOPDIR/SOURCES/livebuild_pre_run \ $BUILD_ROOT/.build.livebuild_pre_run chmod +x $BUILD_ROOT/.build.livebuild_pre_run echo "Running package livebuild_pre_run hook" $CHROOT su -c "/.build.livebuild_pre_run" - root \ < /dev/null || cleanup_and_exit 1 fi $CHROOT su -c "cd $TOPDIR/$LIVEBUILD_ROOT && lb build" - root \ < /dev/null || cleanup_and_exit 1 # Move created product to destination for i in $BUILD_ROOT/$TOPDIR/$LIVEBUILD_ROOT/* ; do test -f "$i" || continue case "${i##*/}" in *.iso) # all created files share the same name without suffix mv ${i%%.iso}.* $BUILD_ROOT/$TOPDIR/OTHER/. BUILD_SUCCEEDED=true ;; *) ;; esac done # Fail the build if no ISO was created if [ -z "$(ls $BUILD_ROOT/$TOPDIR/OTHER/*.iso)" ] ; then echo "No ISO image found" cleanup_and_exit 1 fi } recipe_resultdirs_livebuild() { # our results are already in OTHER : } # Local Variables: # mode: Shell-script # End: obs-build-20141024/COPYING0000644000000000000000000004311312422424142014621 0ustar rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. obs-build-20141024/build0000755000000000000000000011205212422424142014612 0ustar rootroot00000000000000#!/bin/bash # Script to build a package. It uses init_buildsystem to setup a chroot # building tree. This script needs a directory as parameter. This directory # has to include sources and a recipe file. # # BUILD_ROOT here the packages will be built # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # some VMs do not allow to specify the init process... if test "$0" = /sbin/init ; then exec /.build/build "$@" fi test -z "$BUILD_DIR" -a -e /.build/build.data -a -z "$BUILD_IGNORE_2ND_STAGE" && BUILD_DIR=/.build test -z "$BUILD_DIR" && BUILD_DIR=/usr/lib/build test -z "$BUILD_ROOT" && BUILD_ROOT=/var/tmp/build-root test -z "$CONFIG_DIR" && CONFIG_DIR="$BUILD_DIR/configs" export CHROOT="chroot $BUILD_ROOT" export BUILD_ARCH BUILD_HOST_ARCH BUILD_ROOT BUILD_RPMS BUILD_DIR BUILD_DEBUG export BUILD_DIST icecream=0 definesnstuff=() repos=() old_packages=() # slurp in vm support . "$BUILD_DIR/build-vm" # slurp in recipe support . "$BUILD_DIR/build-recipe" # slurp in package binary support . "$BUILD_DIR/build-pkg" # need to restore build root owner for non-root builds browner= # Default uid:gid for the build user ABUILD_UID=399 ABUILD_GID=399 DO_INIT=true DO_LINT= DO_CHECKS=true CLEAN_BUILD= RECIPEFILES=() SRCDIR= BUILD_JOBS= ABUILD_TARGET= CREATE_BASELIBS= USEUSEDFORBUILD= LIST_STATE= RUNNING_IN_VM= RPMLIST= RELEASE= REASON= NOROOTFORBUILD= LOGFILE= KILL= CHANGELOG= BUILD_DEBUG= INCARNATION= DISTURL= LINKSOURCES= OVERLAY= RSYNCSRC= RSYNCDEST= RSYNCDONE= SIGNDUMMY= DO_STATISTICS= RUN_SHELL= CCACHE= DLNOSIGNATURE= CACHE_DIR=/var/cache/build # This is for insserv export YAST_IS_RUNNING=instsys unset LANGUAGE unset LANG export LC_ALL=POSIX umask 022 echo_help () { cat << EOT Some comments for build ----------------------- With build you can create binary packages. They will be built in a chroot system. This chroot system will be setup automatically. Normally you can simply call build with a spec file as parameter - nothing else has to be set. If you want to set the directory were the chroot system will be setup (at the moment it uses $BUILD_ROOT), simply set the the environment variable BUILD_ROOT. Example: export BUILD_ROOT=/var/tmp/mybuildroot Normally build builds the complete package including src.rpm (rpmbuild -ba). If you want let build only make the binary package, simply set export BUILD_RPM_BUILD_STAGE=-bb (or -bc, -bp, -bi, ... see "Maximum RPM" for more details [*]). When the build command succeeds, the rpm files can be found under $BUILD_ROOT/usr/src/packages/RPMS/ Known Parameters: --help You already got it :) --kill Instead of starting a build kill the one currently running. --shell Instead of starting a build start a root shell in the build root. --clean Delete old build root before initializing it --no-init Skip initialization of build root and start with build immediately. --no-checks Do not run checks (postbuild and %check) --lint Run rpmlint after build. --logfile logfile Capture build output to logfile. Defaults to .build.log in the build root for non-VM builds. --repository PATH Use package repository at PATH. Supported formats are rpm-md and yast2. Alternatively zypp://NAME specifies the zypp repository NAME. The repo must be refreshed with zypp so package meta data is available locally. With emtpy NAME all enabled repositories are used. a url can specify a remote repo. --rpms path1:path2:... Specify path where to find the RPMs for the build system --arch arch1:arch2:... Specify what architectures to select from the RPMs --verify Run verify when initializing the build root --extra-packs pack -X pack Also install package 'pack' --root rootdir Use 'rootdir' to setup chroot environment --cachedir cachedir Use 'cachedir' to cache remote repo's packages, the default cache dir is /var/cache/build, every repo given by --repository corresponds to a subdir named as md5sum of its repo url, for example: /var/cache/build/3e8ea9b47808629414a0cebc33ea285e --oldpackages oldpackagesdir Define a directory with a former build --baselibs Create -32bit/-64bit/-x86 rpms for other architectures --list-state List rpms that would be used to create a fresh build root. Does not create the build root or perform a build. --dist dist Distribution to use --with X Enable feature X for build --without X Disable feature X for build --define 'X Y' Define macro X with value Y --release release Override Release in spec file --stage -bSTAGE Set stage for rpmbuild. Defaults to -ba. --target platform Set target platform for rpmbuild --jobs N Use N parallel processes during build. Sets %jobs and %_smp_mflags macros and defines the number of CPUs to use for VMs. --threads N sets number of threads for VM --ccache Use ccache to speed up rebuilds --icecream N Use N parallel build jobs with icecream --overlay OVERLAY Copy overlay filesystem to buildroot after installing all RPMs. This must be a valid directory. --rsync-src RSYNCSRC Copy overlay folder (RSYNCSRC) to a folder (RSYNCDEST) inside the buildroot using rsync. It will "%define RSYNCDONE 1" for handling %setup in your specfile. E.g.: %prep %if 0%{?RSYNCDONE} %setup -n aaa_base -T -D -b 5 -b 7 %else %setup -n aaa_base -b 5 -b 7 %endif --rsync-dest RSYNCDEST Copy overlay folder (RSYNCSRC) to a folder (RSYNCDEST) inside the buildroot using rsync. --uid uid:gid Specify the uid and gid to use for the abuild user. This is useful if you are hacking in the buildroot. This must be set to the same value if the buildroot is re-used. --statistics monitor used resources during build inside VM --kvm Use KVM to secure build process. Your hardware needs to support virtualization --xen Use XEN to secure build process, you to run in a XEN Dom0 environment. --lxc Use Linux Containers to isolate the process. This may not be 100% safe. --openstack Cloud build --ec2 Cloud build --emulator Use any generic emulator to isolate the build process. You need to write an emulator/emulator.sh script and put it next to the build script sources. --emulator-script SCRIPT specify another emulator instead of emulator.sh --vm-type TYPE Use virtual machine instead of chroot TYPE is one of xen|kvm|uml|qemu|lxc|zvm|openstack|ec2 --vm-worker GUEST GUEST is a z/VM build worker controlled by the controlling z/VM build machine. --vm-worker-nr N Each worker in z/VM needs a uniq number. This is needed to calculate uniq device addresses for root and swap device. --vm-region NAME EC2 only: defines amazon control server --vm-server NAME openstack only: defines control server name --vm-disk FILE Use FILE as disk for virtual machine. Defaults to \$BUILD_ROOT.img if unset --vm-swap FILE Use FILE as swap space for virtual machine. The swap space is also used for retrieving packages from the VM so its size must be sufficiently large --vm-disk-size SIZEINMB --vm-swap-size SIZEINMB --vm-disk-filesystem TYPE Defaults for automatic setup of VM root/swap files --vm-memory SIZEINMB Set amount of RAM for VMs --hugetlbfs HUGETLBFSPATH Use hugetlb for memory management, path to mounted hugetlbfs. --vm-kernel FILE --vm-initrd FILE Kernel and initrd to use for VM (kvm and qemu only) --debug Enable creation of a debuginfo package Remember to have fun! [*] Maximum RPM: http://www.rpm.org/max-rpm/ EOT } usage () { echo "Usage: `basename $0` [--no-init|--clean|--rpms path|--verify|--help] [dir-to-build|recipe-to-build]" cleanup_and_exit 1 } # # cleanup_and_exit # return values: 0 -> success, new packages built # 1 -> error, build failed # 2 -> successfull build, but no changes to former built packages # 3 -> something wrong with build host # cleanup_and_exit () { trap EXIT test -z "$1" && set 0 rm -f $BUILD_ROOT/exit if test "$1" -eq 1 -a -x /bin/df ; then # okay, it failed, but maybe because disk space? if df $BUILD_ROOT 2>/dev/null | grep -q "100%"; then set 3 fi fi if test -n "$RUNNING_IN_VM" ; then echo "$1" > /.build/_exitcode 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 umount -n $BUILD_ROOT/dev/pts 2>/dev/null || true 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 test -n "$VM_TYPE" && vm_cleanup fi exit $1 } fail_exit() { cleanup_and_exit 1 } shellquote() { for arg ; do arg=${arg/\\/\\\\} arg=${arg/\$/\\\$} arg=${arg/\"/\\\"} arg=${arg/\`/\\\`} echo -n " \"$arg\"" done } # create a shell script from command line. Used for preserving arguments # through /bin/su -c toshellscript() { echo "#!/bin/sh -x" echo -n exec shellquote "$@" echo } 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 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 echo 'export PATH=/var/lib/build/ccache/bin:$PATH' >> "$BUILD_ROOT"/etc/profile.d/build_ccache.sh else rm -f "$BUILD_ROOT"/var/lib/build/ccache/bin/{gcc,g++,cc,c++} fi } setupicecream() { if test "$icecream" -eq 0 ; then rm -rf "$BUILD_ROOT/var/run/icecream" rm -f "$BUILD_ROOT/etc/profile.d/build_icecream.sh" return 0 fi if ! chroot "$BUILD_ROOT" rpm -q icecream >/dev/null 2>/dev/null; then echo "*** icecream package not installed ***" return 1 fi echo "using icecream with $icecream jobs" if test -z "$CCACHE" ; then echo 'export PATH=/usr/lib/icecc/bin:/opt/icecream/bin:$PATH' > "$BUILD_ROOT"/etc/profile.d/build_icecream.sh else 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/var/run/icecream/*.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 if test -z "$icecc_vers" \ -o ! -e "$BUILD_ROOT/$icecc_vers" \ -o "$BUILD_ROOT/usr/bin/gcc" -nt "$BUILD_ROOT/$icecc_vers" \ -o "$BUILD_ROOT/usr/bin/g++" -nt "$BUILD_ROOT/$icecc_vers" \ -o "$BUILD_ROOT/usr/bin/as" -nt "$BUILD_ROOT/$icecc_vers" \ -o "$BUILD_ROOT/lib/libc.so.6" -nt "$BUILD_ROOT/$icecc_vers" then rm -rf "$BUILD_ROOT/var/run/icecream" mkdir -p "$BUILD_ROOT/var/run/icecream" if test -e "$BUILD_ROOT"/usr/bin/create-env ; then createenv=/usr/bin/create-env elif test -e "$BUILD_ROOT"/usr/lib/icecc/icecc-create-env ; then createenv="/usr/lib/icecc/icecc-create-env /usr/bin/gcc /usr/bin/g++" # XXX elif test -e "$BUILD_ROOT"/usr/lib64/icecc/icecc-create-env ; then createenv="/usr/lib64/icecc/icecc-create-env /usr/bin/gcc /usr/bin/g++" # XXX else echo "create-env not found" return 1 fi $CHROOT bash -c "cd /var/run/icecream; $createenv" || cleanup_and_exit 1 icecc_vers=(`shopt -s nullglob; echo $BUILD_ROOT/var/run/icecream/*.tar.{bz2,gz}`) icecc_vers=${icecc_vers//$BUILD_ROOT/} else echo "reusing existing icecream environment $icecc_vers" fi if test -n "$icecc_vers" ; then echo "export ICECC_VERSION=$icecc_vers" >> "$BUILD_ROOT"/etc/profile.d/build_icecream.sh fi } setmemorylimit() { if test -n "$VM_IMAGE" -o -n "$RUNNING_IN_VM" ; then return fi local mem local limit while read mem; do 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 echo "Memory limit set to ${limit}KB" } create_baselibs() { local pkgs=() local line BASELIBS_CFG= if test "$BUILDTYPE" == arch ; then return fi if test "$BUILDTYPE" == dsc ; then pkgs=($DEBS) else # spec and kiwi 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 BASELIBS_GLOBAL="-c /usr/lib/build/baselibs_global.conf" fi pkgs=($RPMS) fi 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 local mkbaselibs="/usr/lib/build/mkbaselibs" local whichone='' # $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 BASELIBS_CFG="-c /usr/lib/build/baselibs.conf" fi else if test "$CREATE_BASELIBS" = 'internal'; then echo "Warning: mkbaselibs missing in build root, skipping baselibs" return fi # use external version whichone=" (external)" mkbaselibs="/.mkbaselibs/mkbaselibs" rm -rf "$BUILD_ROOT/.mkbaselibs" mkdir -p "$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 BASELIBS_CFG="-c /.mkbaselibs/baselibs-deb.conf" else 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 BASELIBS_CFG="-c /.mkbaselibs/baselibs.conf" fi fi if test -e $BUILD_ROOT/.mkbaselibs/baselibs_g.conf; then BASELIBS_GLOBAL="-c /.mkbaselibs/baselibs_g.conf" fi fi echo "... creating baselibs$whichone" while read line do $CHROOT su -c "$mkbaselibs $BASELIBS_GLOBAL $BASELIBS_CFG $line" - $BUILD_USER || cleanup_and_exit 1 done < <(IFS=$'\n'; echo "${pkgs[*]#$BUILD_ROOT}" | xargs -n 1024) rm -rf "$BUILD_ROOT/.mkbaselibs" } copy_oldpackages() { local i=0 local d local dest test -z "$RUNNING_IN_VM" || return 0 if test -z "$old_packages" ; then rm -rf "$BUILD_ROOT"/.build.oldpackages* return 0 fi for d in "${old_packages[@]}"; do dest="$BUILD_ROOT/.build.oldpackages" test "$i" = 0 || dest="$dest$i" if test -d "$d" -a "$d" != "$dest" ; then rm -rf "$dest" mkdir -p "$dest" cp -L $d/* "$dest" : $((++i)) fi done } become_root_or_fail() { if test ! -w /root ; then echo "You have to be root to use $0" >&2 exit 1 fi cleanup_and_exit 1 } mkdir_build_root() { # strip trailing slash if test "$BUILD_ROOT" != /; then BUILD_ROOT="${BUILD_ROOT%/}" export CHROOT="chroot $BUILD_ROOT" fi 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 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 echo "can not create BUILD_ROOT=$BUILD_ROOT. Exit..." cleanup_and_exit 1 fi fi if test ! -w "$BUILD_ROOT" ; then echo "Error: BUILD_ROOT=$BUILD_ROOT not writeable, try --clean." cleanup_and_exit 3 fi rm -rf "$BUILD_ROOT/.build.packages" if test -z "$VM_TYPE" -a -z "$RUNNING_IN_VM" ; then # don't touch this in VM rm -rf "$BUILD_ROOT/.build" mkdir -p "$BUILD_ROOT/.build" fi } copy_overlay() { if test -d "$OVERLAY"; then pushd $OVERLAY echo "Copying overlay to BUILD_ROOT" tar -cpf - . | (cd $BUILD_ROOT ; tar -xvf -) popd else echo "OVERLAY ($OVERLAY) is no directory - skipping" fi } run_rsync() { 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 fi echo "Running rsync ..." rsync -av $RSYNCSRC/* $BUILD_ROOT/$RSYNCDEST/ chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT/$RSYNCDEST" RSYNCDONE=true echo "... done" else echo "RSYNCSRC is not a directory - skipping" fi else echo "RSYNCSRC given, but not RSYNCDEST - skipping" fi } #### main #### trap fail_exit EXIT shopt -s nullglob export PATH=$BUILD_DIR:/sbin:/usr/sbin:/bin:/usr/bin:$PATH if vm_detect_2nd_stage ; then set "/.build-srcdir/$RECIPEFILE" export PATH=/.build:$PATH fi . $BUILD_DIR/common_functions || exit 1 export HOST needarg() { if test -z "$ARG" ; then echo "$PARAM needs an agrument" >&2 cleanup_and_exit 1 fi } while test -n "$1"; do PARAM="$1" ARG="$2" test "$ARG" = "${ARG#-}" || ARG= shift case $PARAM in *-*=*) ARG=${PARAM#*=} PARAM=${PARAM%%=*} set -- "----noarg=$PARAM" "$@" ;; esac case ${PARAM/#--/-} in -help|-h) echo_help cleanup_and_exit ;; -noinit|-no-init) DO_INIT=false ;; -nochecks|-no-checks) DO_CHECKS=false ;; -clean) CLEAN_BUILD='--clean' ;; -kill) KILL=true ;; -rpms) needarg BUILD_RPMS="$ARG" shift ;; -arch) needarg BUILD_ARCH="$ARG" shift ;; -verify) export VERIFY_BUILD_SYSTEM=true ;; -target) needarg ABUILD_TARGET="$ARG" shift ;; -jobs) needarg BUILD_JOBS="$ARG" shift ;; -threads) needarg BUILD_THREADS="$ARG" shift ;; -extrapacks|-extra-packs|-X) needarg BUILD_EXTRA_PACKS="$BUILD_EXTRA_PACKS $ARG" shift ;; -lint) DO_LINT=true ;; -baselibs) CREATE_BASELIBS=true ;; -baselibs-internal) CREATE_BASELIBS=internal ;; -root) needarg BUILD_ROOT="$ARG" export CHROOT="chroot $BUILD_ROOT" shift ;; -cachedir) needarg CACHE_DIR="$ARG" shift ;; -oldpackages) needarg old_packages=("${old_packages[@]}" "$ARG") shift ;; -dist) needarg BUILD_DIST="$ARG" shift ;; -release) needarg RELEASE="$ARG" shift ;; -logfile) needarg LOGFILE="$ARG" shift ;; -reason) needarg REASON="$ARG" shift ;; -norootforbuild) NOROOTFORBUILD=true ;; -useusedforbuild) USEUSEDFORBUILD="--useusedforbuild" ;; -configdir) needarg CONFIG_DIR="$ARG" shift ;; -list*state) LIST_STATE=true ;; -define|-with|-without) needarg PARAM="-${PARAM/#--/-}" definesnstuff[${#definesnstuff[@]}]="$PARAM" definesnstuff[${#definesnstuff[@]}]="$ARG" shift ;; -repository|-repo) needarg repos[${#repos[@]}]="--repository" repos[${#repos[@]}]="$ARG" shift ;; -icecream) needarg icecream="$ARG" test "$icecream" -gt 0 && BUILD_JOBS="$ARG" shift ;; -ccache) CCACHE=true ;; -statistics) DO_STATISTICS=1 ;; -debug) BUILD_DEBUG=1 ;; -incarnation) needarg INCARNATION=$ARG shift ;; -disturl) needarg DISTURL=$ARG shift ;; -linksources) LINKSOURCES=true ;; -changelog) CHANGELOG=true ;; -overlay) needarg OVERLAY=$ARG shift ;; -rsync-src) needarg RSYNCSRC=$ARG shift ;; -rsync-dest) needarg RSYNCDEST=$ARG shift ;; -uid) needarg ABUILD_ID="$ARG" if test -n "${ABUILD_ID//[0-9:]/}" ; then echo "--uid argument must be uid:gid" cleanup_and_exit fi ABUILD_UID=${ABUILD_ID%:*} ABUILD_GID=${ABUILD_ID#*:} shift ;; -rpmlist) needarg RPMLIST="--rpmlist $ARG" BUILD_RPMS= shift ;; -shell) RUN_SHELL=1 shift ;; -signdummy) SIGNDUMMY=1 ;; -nosignature) DLNOSIGNATURE="--nosignature" ;; ---noarg) echo "$ARG does not take an argument" cleanup_and_exit ;; -*) if vm_parse_options "$@" ; then set -- "${nextargs[@]}" elif recipe_parse_options "$@" ; then set -- "${nextargs[@]}" else echo "Unknown option '$PARAM'. Exit." cleanup_and_exit 1 fi ;; *) RECIPEFILES[${#RECIPEFILES[@]}]="$PARAM" ;; esac done if test -n "$KILL" ; then test -z "$SRCDIR" || usage if test -n "$VM_IMAGE" -a -n "$VM_SWAP" -a -n "$VM_TYPE"; then # mark job as failed so that we don't extract packages if test "$VM_TYPE" != zvm ; then echo -n "BUILDSTATUS1" >"$VM_SWAP" fi fi (set -C; > "$BUILD_ROOT/exit" 2>/dev/null || true) if test -n "$VM_TYPE" ; then vm_kill else if ! $BUILD_DIR/killchroot -s 9 $BUILD_ROOT ; then echo "could not kill build in $BUILD_ROOT" cleanup_and_exit 1 fi fi cleanup_and_exit 0 fi if test -n "$CLEAN_BUILD" ; then DO_INIT=true fi if test -n "$VM_TYPE" -a -z "$RUNNING_IN_VM" ; then if test -z "$VMDISK_FILESYSTEM" -a -n "$BUILD_DIST" ; then VMDISK_FILESYSTEM=`queryconfig --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" buildflags vmfstype` fi test -n "$VMDISK_FILESYSTEM" || VMDISK_FILESYSTEM=ext3 vm_verify_options fi if test -z "$RPMLIST" -a -z "$RUNNING_IN_VM" ; then if test -z "$repos" -a -z "$BUILD_RPMS" ; then repos=(--repository 'zypp://') fi else repos=() fi set_build_arch expand_recipe_directories if test -n "$LIST_STATE" ; then BUILD_ROOT=`mktemp -d /var/tmp/build-list-state-XXXXXX` export CHROOT="chroot $BUILD_ROOT" test -d "$BUILD_ROOT" || cleanup_and_exit 3 RECIPEFILE=$RECIPEFILES # only one specified anyways if test "$RECIPEFILE" != "${RECIPEFILE%.src.rpm}" ; then MYSRCDIR="$BUILD_ROOT/usr/src/packages/SOURCES" recipe_unpack_srcrpm RECIPEFILE="$MYSRCDIR/$RECIPEFILE" fi init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" --list-state "${definesnstuff[@]}" "${repos[@]}" $DLNOSIGNATURE $USEUSEDFORBUILD $RECIPEFILE $BUILD_EXTRA_PACKS ERR=$? rm -rf "$BUILD_ROOT" cleanup_and_exit $ERR fi # do vm setup if needed if test -z "$RUNNING_IN_VM" -a -n "$VM_TYPE" -a -n "$VM_IMAGE" ; then vm_setup fi mkdir_build_root if test "$BUILD_ROOT" = / ; then browner="$(stat -c %u /)" fi 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 fi if test -z "$VM_IMAGE" -a -z "$LOGFILE" ; then LOGFILE="$BUILD_ROOT/.build.log" fi if test -n "$LOGFILE" -a -z "$RUN_SHELL" ; then echo "logging output to $LOGFILE..." rm -f $LOGFILE touch $LOGFILE # set start time, to be substracted for build log timestamps STARTTIME=`perl -e 'print time()'` if test -n "$RUNNING_IN_VM" ; then # no additional timestamps in inner vm build system exec 1> >(exec -a 'build logging' tee -a $LOGFILE) 2>&1 elif test -n "$VM_IMAGE" ; then # external run of virtualization build exec 1> >(exec -a 'build logging' perl -e 'open(F,">>",$ARGV[0])||die("$ARGV[0]: $!\n");$|=1;select(F);$|=1;while(){my $p=sprintf("[%5ds] ", time()-'$STARTTIME');print STDOUT $p.$_;s/^\r//s;s/\r\n/\n/gs;print F $p.$_}' $LOGFILE) 2>&1 else # plain chroot exec 1> >(exec -a 'build logging' perl -e 'open(F,">>",$ARGV[0])||die("$ARGV[0]: $!\n");$|=1;select(F);$|=1;while(){my $p=sprintf("[%5ds] ", time()-'$STARTTIME');print STDOUT $p.$_;print F $p.$_}' $LOGFILE) 2>&1 fi fi setmemorylimit # # say hello # test -z "$HOST" && HOST=`hostname` if test -z "$RUNNING_IN_VM" ; then echo Using BUILD_ROOT=$BUILD_ROOT test -n "$BUILD_RPMS" && echo Using BUILD_RPMS=$BUILD_RPMS echo Using BUILD_ARCH=$BUILD_ARCH test -n "$VM_TYPE" && echo "Doing $VM_TYPE build${VM_IMAGE:+ in $VM_IMAGE}" echo fi test "$BUILD_ARCH" = all && BUILD_ARCH= BUILD_USER_ABUILD_USED= for RECIPEFILE in "${RECIPEFILES[@]}" ; do SRCDIR="${RECIPEFILE%/*}" RECIPEFILE="${RECIPEFILE##*/}" recipe_set_buildtype if test -z "$RUNNING_IN_VM" ; then echo echo "$HOST started \"build $RECIPEFILE\" at `date --utc`." echo test -n "$REASON" && echo "$REASON" echo TIME_START_TIME=`date +%s` # for statistics fi # # first setup building directory... # cd "$SRCDIR" if ! test -s "$RECIPEFILE" ; then echo "$RECIPEFILE is empty. This should not happen..." cleanup_and_exit 1 fi MYSRCDIR="$SRCDIR" # special hack to build from a .src.rpm test "$RECIPEFILE" != "${RECIPEFILE%.src.rpm}" && recipe_unpack_srcrpm echo "processing recipe $MYSRCDIR/$RECIPEFILE ..." ADDITIONAL_PACKS= test -z "$BUILD_EXTRA_PACKS" || ADDITIONAL_PACKS="$ADDITIONAL_PACKS $BUILD_EXTRA_PACKS" test -z "$CREATE_BASELIBS" || ADDITIONAL_PACKS="$ADDITIONAL_PACKS build" test -z "$CCACHE" || ADDITIONAL_PACKS="$ADDITIONAL_PACKS ccache" test "$icecream" = 0 || ADDITIONAL_PACKS="$ADDITIONAL_PACKS icecream gcc-c++" test -z "$DO_LINT" || ADDITIONAL_PACKS="$ADDITIONAL_PACKS rpmlint-Factory" test "$VMDISK_FILESYSTEM" = xfs && ADDITIONAL_PACKS="$ADDITIONAL_PACKS libblkid1" test "$VM_TYPE" = zvm && ADDITIONAL_PACKS="$ADDITIONAL_PACKS udev libcap2" # 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 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 fi fi if test -n "$VM_TYPE" -a -z "$RUNNING_IN_VM"; then vm_first_stage cleanup_and_exit 0 fi if test "$DO_INIT" = true ; then start_time=`date +%s` # # create legacy .buildenv file # test -z "$INCARNATION" && INCARNATION=0 echo "BUILD_INCARNATION=$INCARNATION" > $BUILD_ROOT/.buildenv CREATE_BUILD_BINARIES= 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" = livebuild && CREATE_BUILD_BINARIES=--create-build-binaries set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $DLNOSIGNATURE $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS echo "$* ..." start_time=`date +%s` "$@" || cleanup_and_exit 1 check_exit 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 # ensure that old stat is not failing (RHEL4) 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 copy_oldpackages fi # hack to process preinstallimages early if test "$BUILDTYPE" = preinstallimage ; then recipe_build continue fi if test -z "$BUILD_DIST" -a -e "$BUILD_ROOT/.guessed_dist" ; then 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 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 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 /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 egrep '^#[ ]*needsrootforbuild[ ]*$' >/dev/null <$RECIPEFILE && BUILD_USER=root else egrep '^#[ ]*norootforbuild[ ]*$' >/dev/null <$RECIPEFILE && BUILD_USER=abuild fi test -n "$NOROOTFORBUILD" && BUILD_USER=abuild # appliance builds must run as root if test "$BUILDTYPE" = kiwi ; then imagetype=$(perl -I$BUILD_DIR -MBuild::Kiwi -e Build::Kiwi::show $RECIPEFILE imagetype) test "$imagetype" = product || BUILD_USER=root fi # 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 else if ! egrep "^abuild:x?:${ABUILD_UID}:${ABUILD_GID}" >/dev/null <$BUILD_ROOT/etc/passwd ; then echo "abuild user present in the buildroot ($BUILD_ROOT) but uid:gid does not match" echo "buildroot currently using:" egrep "^abuild:" <$BUILD_ROOT/etc/passwd echo "build script attempting to use:" echo "abuild::${ABUILD_UID}:${ABUILD_GID}:..." echo "build aborting" cleanup_and_exit 1 fi fi 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 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 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 fi 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 # 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 if test -n "$RUNNING_IN_VM" ; then if test -x /sbin/ip ; then ip addr add 127.0.0.1/8 dev lo ip addr add ::1/128 dev lo ip link set lo up else ifconfig lo 127.0.0.1 up ifconfig lo add ::1/128 fi if test -n "$MYHOSTNAME" ; then hostname "$MYHOSTNAME" fi fi setupicecream setupccache # 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 mv "$i" "${i%/*}/${i##*:}" done RECIPEFILE="${RECIPEFILE##*:}" # create .build.packages link 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 if test -d "$BUILD_ROOT/etc/profile.d" ; then echo "export SUSE_IGNORED_RPATHS=/etc/ld.so.conf" > "$BUILD_ROOT/etc/profile.d/buildsystem.sh" 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" # patch recipes recipe_prepare # hmmm chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" cd $BUILD_ROOT$TOPDIR/SOURCES || cleanup_and_exit 1 echo ----------------------------------------------------------------- if test "$BUILD_USER" = root ; then echo ----- building $RECIPEFILE else echo ----- building $RECIPEFILE "(user $BUILD_USER)" fi echo ----------------------------------------------------------------- echo ----------------------------------------------------------------- BUILD_SUCCEEDED=false if test -n "$OVERLAY" ; then copy_overlay fi if test -n "$RSYNCSRC" ; then run_rsync fi start_time=`date +%s` recipe_build if test "$DO_STATISTICS" = 1; then mkdir -p $TOPDIR/OTHER echo "TIME_main_build: $(( `date +%s` - $start_time ))" >> $TOPDIR/OTHER/_statistics fi unset start_time test "$BUILD_SUCCEEDED" = true || cleanup_and_exit 1 test -d "$SRCDIR" && cd "$SRCDIR" done if test -n "$RUNNING_IN_VM" -a -n "$DO_STATISTICS" ; then 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` 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 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 echo "... running ${CHECKSCRIPT##*/}" $CHECKSCRIPT || cleanup_and_exit 1 done 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` if test -n "$RPMS" -a "$DO_CHECKS" != false ; then recipe_run_rpmlint fi if test \( -n "$RPMS" -o -n "$DEBS" \) -a -n "$CREATE_BASELIBS"; then create_baselibs fi exitcode=0 # post build work # TODO: don't hardcode. instead run scripts in a directory as it's done for the checks 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 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 cleanup_and_exit "$exitcode" obs-build-20141024/mkbaselibs0000755000000000000000000010125312422424142015630 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use POSIX; use strict; use File::Temp qw/tempfile tempdir/; # See: http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html#S3-RPM-FILE-FORMAT-HEADER-TAG-LISTING # cf http://search.cpan.org/~davecross/Parse-RPM-Spec-0.01/lib/Parse/RPM/Spec.pm my %STAG = ( "NAME" => 1000, "VERSION" => 1001, "RELEASE" => 1002, "EPOCH" => 1003, "SERIAL" => 1003, "SUMMARY" => 1004, "DESCRIPTION" => 1005, "BUILDTIME" => 1006, "BUILDHOST" => 1007, "INSTALLTIME" => 1008, "SIZE" => 1009, "DISTRIBUTION" => 1010, "VENDOR" => 1011, "GIF" => 1012, "XPM" => 1013, "LICENSE" => 1014, "COPYRIGHT" => 1014, "PACKAGER" => 1015, "GROUP" => 1016, "SOURCE" => 1018, "PATCH" => 1019, "URL" => 1020, "OS" => 1021, "ARCH" => 1022, "PREIN" => 1023, "POSTIN" => 1024, "PREUN" => 1025, "POSTUN" => 1026, "OLDFILENAMES" => 1027, "FILESIZES" => 1028, "FILESTATES" => 1029, "FILEMODES" => 1030, "FILERDEVS" => 1033, "FILEMTIMES" => 1034, "FILEMD5S" => 1035, "FILELINKTOS" => 1036, "FILEFLAGS" => 1037, "FILEUSERNAME" => 1039, "FILEGROUPNAME" => 1040, "ICON" => 1043, "SOURCERPM" => 1044, "FILEVERIFYFLAGS" => 1045, "ARCHIVESIZE" => 1046, "PROVIDENAME" => 1047, "PROVIDES" => 1047, "REQUIREFLAGS" => 1048, "REQUIRENAME" => 1049, "REQUIREVERSION" => 1050, "NOSOURCE" => 1051, "NOPATCH" => 1052, "CONFLICTFLAGS" => 1053, "CONFLICTNAME" => 1054, "CONFLICTVERSION" => 1055, "EXCLUDEARCH" => 1059, "EXCLUDEOS" => 1060, "EXCLUSIVEARCH" => 1061, "EXCLUSIVEOS" => 1062, "RPMVERSION" => 1064, "TRIGGERSCRIPTS" => 1065, "TRIGGERNAME" => 1066, "TRIGGERVERSION" => 1067, "TRIGGERFLAGS" => 1068, "TRIGGERINDEX" => 1069, "VERIFYSCRIPT" => 1079, "CHANGELOGTIME" => 1080, "CHANGELOGNAME" => 1081, "CHANGELOGTEXT" => 1082, "PREINPROG" => 1085, "POSTINPROG" => 1086, "PREUNPROG" => 1087, "POSTUNPROG" => 1088, "BUILDARCHS" => 1089, "OBSOLETENAME" => 1090, "OBSOLETES" => 1090, "VERIFYSCRIPTPROG" => 1091, "TRIGGERSCRIPTPROG" => 1092, "COOKIE" => 1094, "FILEDEVICES" => 1095, "FILEINODES" => 1096, "FILELANGS" => 1097, "PREFIXES" => 1098, "INSTPREFIXES" => 1099, "SOURCEPACKAGE" => 1106, "PROVIDEFLAGS" => 1112, "PROVIDEVERSION" => 1113, "OBSOLETEFLAGS" => 1114, "OBSOLETEVERSION" => 1115, "DIRINDEXES" => 1116, "BASENAMES" => 1117, "DIRNAMES" => 1118, "OPTFLAGS" => 1122, "DISTURL" => 1123, "PAYLOADFORMAT" => 1124, "PAYLOADCOMPRESSOR" => 1125, "PAYLOADFLAGS" => 1126, "INSTALLCOLOR" => 1127, "INSTALLTID" => 1128, "REMOVETID" => 1129, "RHNPLATFORM" => 1131, "PLATFORM" => 1132, "PATCHESNAME" => 1133, "PATCHESFLAGS" => 1134, "PATCHESVERSION" => 1135, "CACHECTIME" => 1136, "CACHEPKGPATH" => 1137, "CACHEPKGSIZE" => 1138, "CACHEPKGMTIME" => 1139, "FILECOLORS" => 1140, "FILECLASS" => 1141, "CLASSDICT" => 1142, "FILEDEPENDSX" => 1143, "FILEDEPENDSN" => 1144, "DEPENDSDICT" => 1145, "SOURCEPKGID" => 1146, "PRETRANS" => 1151, "POSTTRANS" => 1152, "PRETRANSPROG" => 1153, "POSTTRANSPROG" => 1154, "DISTTAG" => 1155, "SUGGESTSNAME" => 1156, "SUGGESTSVERSION" => 1157, "SUGGESTSFLAGS" => 1158, "ENHANCESNAME" => 1159, "ENHANCESVERSION" => 1160, "ENHANCESFLAGS" => 1161, "PRIORITY" => 1162, "CVSID" => 1163, ); # do not mix numeric tags with symbolic tags. # special symbolic tag 'FILENAME' exists. # This function seems to take a set of tags and populates a global # hash-table (%res) with data obtained by doing a binary unpack() on # the raw package # http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html sub rpmq_many { my $rpm = shift; my @stags = @_; my $need_filenames = grep { $_ eq 'FILENAMES' } @stags; push @stags, 'BASENAMES', 'DIRNAMES', 'DIRINDEXES', 'OLDFILENAMES' if $need_filenames; @stags = grep { $_ ne 'FILENAMES' } @stags if $need_filenames; my %stags = map {0+($STAG{$_} or $_) => $_} @stags; my ($magic, $sigtype, $headmagic, $cnt, $cntdata, $lead, $head, $index, $data, $tag, $type, $offset, $count); local *RPM; if (ref($rpm) eq 'ARRAY') { ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $rpm->[0]); if ($headmagic != 0x8eade801) { warn("Bad rpm\n"); return (); } if (length($rpm->[0]) < 16 + $cnt * 16 + $cntdata) { warn("Bad rpm\n"); return (); } $index = substr($rpm->[0], 16, $cnt * 16); $data = substr($rpm->[0], 16 + $cnt * 16, $cntdata); } else { return () unless open(RPM, "<$rpm"); if (read(RPM, $lead, 96) != 96) { warn("Bad rpm $rpm\n"); close RPM; return (); } ($magic, $sigtype) = unpack('N@78n', $lead); if ($magic != 0xedabeedb || $sigtype != 5) { warn("Bad rpm $rpm\n"); close RPM; return (); } if (read(RPM, $head, 16) != 16) { warn("Bad rpm $rpm\n"); close RPM; return (); } ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); if ($headmagic != 0x8eade801) { warn("Bad rpm $rpm\n"); close RPM; return (); } if (read(RPM, $index, $cnt * 16) != $cnt * 16) { warn("Bad rpm $rpm\n"); close RPM; return (); } $cntdata = ($cntdata + 7) & ~7; if (read(RPM, $data, $cntdata) != $cntdata) { warn("Bad rpm $rpm\n"); close RPM; return (); } } my %res = (); if (ref($rpm) eq 'ARRAY' && @stags && @$rpm > 1) { my %res2 = &rpmq_many([ $rpm->[1] ], @stags); %res = (%res, %res2); return %res; } if (ref($rpm) ne 'ARRAY' && @stags) { if (read(RPM, $head, 16) != 16) { warn("Bad rpm $rpm\n"); close RPM; return (); } ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); if ($headmagic != 0x8eade801) { warn("Bad rpm $rpm\n"); close RPM; return (); } if (read(RPM, $index, $cnt * 16) != $cnt * 16) { warn("Bad rpm $rpm\n"); close RPM; return (); } if (read(RPM, $data, $cntdata) != $cntdata) { warn("Bad rpm $rpm\n"); close RPM; return (); } } close RPM if ref($rpm) ne 'ARRAY'; return %res unless @stags; # nothing to do while($cnt-- > 0) { ($tag, $type, $offset, $count, $index) = unpack('N4a*', $index); $tag = 0+$tag; if ($stags{$tag}) { eval { my $otag = $stags{$tag}; if ($type == 0) { $res{$otag} = [ '' ]; } elsif ($type == 1) { $res{$otag} = [ unpack("\@${offset}c$count", $data) ]; } elsif ($type == 2) { $res{$otag} = [ unpack("\@${offset}c$count", $data) ]; } elsif ($type == 3) { $res{$otag} = [ unpack("\@${offset}n$count", $data) ]; } elsif ($type == 4) { $res{$otag} = [ unpack("\@${offset}N$count", $data) ]; } elsif ($type == 5) { $res{$otag} = [ undef ]; } elsif ($type == 6) { $res{$otag} = [ unpack("\@${offset}Z*", $data) ]; } elsif ($type == 7) { $res{$otag} = [ unpack("\@${offset}a$count", $data) ]; } elsif ($type == 8 || $type == 9) { my $d = unpack("\@${offset}a*", $data); my @res = split("\0", $d, $count + 1); $res{$otag} = [ splice @res, 0, $count ]; } else { $res{$otag} = [ undef ]; } }; if ($@) { warn("Bad rpm $rpm: $@\n"); return (); } } } if ($need_filenames) { if ($res{'OLDFILENAMES'}) { $res{'FILENAMES'} = [ @{$res{'OLDFILENAMES'}} ]; } else { my $i = 0; $res{'FILENAMES'} = [ map {"$res{'DIRNAMES'}->[$res{'DIRINDEXES'}->[$i++]]$_"} @{$res{'BASENAMES'}} ]; } } return %res; } sub rpmq_add_flagsvers { my $res = shift; my $name = shift; my $flags = shift; my $vers = shift; return unless $res; my @flags = @{$res->{$flags} || []}; my @vers = @{$res->{$vers} || []}; for (@{$res->{$name}}) { if (@flags && ($flags[0] & 0xe) && @vers) { $_ .= ' '; $_ .= '<' if $flags[0] & 2; $_ .= '>' if $flags[0] & 4; $_ .= '=' if $flags[0] & 8; $_ .= " $vers[0]"; } shift @flags; shift @vers; } } my @preamble = qw{ Name Version Release Epoch Summary Copyright License Distribution Disturl Vendor Group Packager Url Icon Prefixes }; my $rpm; my $arch; my $config = ''; my $targettype; my $targetarch; my $prefix; my $extension; my $configdir; my $targetname; my $legacyversion; my @baselib; my @config; my @provides; my @obsoletes; my @requires; my @prerequires; my @conflicts; my @recommends; my @supplements; my @suggests; my @prein; my @postin; my @preun; my @postun; my $autoreqprov; my $verbose; my %target_matched; my @filesystem; # Used for each package by sub parse_config { my $target = shift; my $pkgname = shift; my $pkgver = shift; my $pkghasmatched; my $pkgmatches = 1; $prefix = ''; $legacyversion = ''; $extension = ''; $configdir = ''; $targetname = ''; ($targetarch, $targettype) = split(':', $target, 2); @baselib = (); @config = (); @provides = (); @obsoletes = (); @requires = (); @recommends = (); @supplements = (); @suggests = (); @prerequires = (); @conflicts = (); @prein = (); @postin = (); @preun = (); @postun = (); $autoreqprov = 'on'; my $match1 = ''; for (split("\n", $config)) { s/^\s+//; s/\s+$//; next if $_ eq '' || $_ =~ /^#/; s/\/$targettype/g; s/\/$targetarch/g; s/\/$pkgname/g; s/\/$pkgver/g; s/\/$prefix/g; s/\/$extension/g; s/\/$configdir/g; s/\/$match1/g; if (/^arch\s+/) { next unless s/^arch\s+\Q$arch\E\s+//; } next if /^targets\s+/; if (/\s+package\s+[-+_a-zA-Z0-9]+$/) { $pkgmatches = 0; # XXX: hack } if (/\s+package\s+\/[-+_a-zA-Z0-9]+\/$/) { $pkgmatches = 0; # XXX: hack } if (/^targettype\s+/) { next unless s/^targettype\s+\Q$targettype\E\s+//; } if (/^targetarch\s+/) { next unless s/^targetarch\s+\Q$targetarch\E\s+//; } if (/^prefix\s+(.*?)$/) { $prefix = $1; next; } if (/^legacyversion\s+(.*?)$/) { $legacyversion = $1; next; } if (/^extension\s+(.*?)$/) { $extension = $1; next; } if (/^configdir\s+(.*?)$/) { $configdir= $1; next; } if (/^targetname\s+(.*?)$/) { $targetname = $1; next; } $_ = "baselib $_" if /^[\+\-\"]/; $_ = "package $_" if /^[-+_a-zA-Z0-9]+$/; if (/^package\s+\/(.*?)\/$/) { my $pm = $1; $pkgmatches = $pkgname =~ /$pm/; $match1 = $1 if defined $1; $pkghasmatched |= $pkgmatches if $pkgname =~ /-debuginfo$/ && $target_matched{$target}; next; } if (/^package\s+(.*?)$/) { $pkgmatches = $1 eq $pkgname; $pkghasmatched |= $pkgmatches; next; } next unless $pkgmatches; return 0 if $_ eq 'block!'; if (/^provides\s+(.*?)$/) { push @provides, $1; next; } if (/^requires\s+(.*?)$/) { push @requires, $1; next; } if (/^recommends\s+(.*?)$/) { push @recommends, $1; next; } if (/^supplements\s+(.*?)$/) { push @supplements, $1; next; } if (/^suggests\s+(.*?)$/) { push @suggests, $1; next; } if (/^prereq\s+(.*?)$/) { push @prerequires, $1; next; } if (/^obsoletes\s+(.*?)$/) { push @obsoletes, $1; next; } if (/^conflicts\s+(.*?)$/) { push @conflicts, $1; next; } if (/^baselib\s+(.*?)$/) { push @baselib, $1; next; } if (/^config\s+(.*?)$/) { push @config, $1; next; } if (/^pre(in)?\s+(.*?)$/) { push @prein, $2; next; } if (/^post(in)?\s+(.*?)$/) { push @postin, $2; next; } if (/^preun\s+(.*?)$/) { push @preun, $1; next; } if (/^postun\s+(.*?)$/) { push @preun, $1; next; } if (/^autoreqprov\s+(.*?)$/) {$autoreqprov = $1; next; } die("bad line: $_\n"); } return $pkghasmatched; } sub read_config { my $cfname = shift; local *F; open(F, "<$cfname") || die("$cfname: $!\n"); my @cf = ; close F; $config .= join('', @cf); $config .= "\npackage __does_not_match__\n"; } sub get_targets { my $architecture = shift; my $conf = shift; my %targets; for (split("\n", $conf)) { if (/^arch\s+/) { next unless s/^arch\s+\Q$architecture\E\s+//; } if (/^targets\s+(.*?)$/) { $targets{$_} = 1 for split(' ', $1); } } my @targets = sort keys %targets; return @targets; } # Packages listed in config file sub get_pkgnames { my %rpms; for (split("\n", $config)) { if (/^(.*\s+)?package\s+([-+_a-zA-Z0-9]+)\s*$/) { # eg : arch ppc package libnuma-devel $rpms{$2} = 1; } elsif (/^\s*([-+_a-zA-Z0-9]+)\s*$/) { # eg: readline-devel $rpms{$1} = 1; } } return sort keys %rpms; } # Packages listed in config file - debian variant (can have "." in package names) sub get_debpkgnames { my %debs; for (split("\n", $config)) { if (/^(.*\s+)?package\s+([-+_a-zA-Z0-9.]+)\s*$/) { # eg : arch ppc package libnuma-devel $debs{$2} = 1; } elsif (/^\s*([-+_a-zA-Z0-9.]+)\s*$/) { # eg: readline-devel $debs{$1} = 1; } } return sort keys %debs; } sub handle_rpms { for $rpm (@_) { my @stags = map {uc($_)} @preamble; push @stags, 'DESCRIPTION'; push @stags, 'FILENAMES', 'FILEMODES', 'FILEUSERNAME', 'FILEGROUPNAME', 'FILEFLAGS', 'FILEVERIFYFLAGS'; push @stags, 'CHANGELOGTIME', 'CHANGELOGNAME', 'CHANGELOGTEXT'; push @stags, 'ARCH', 'SOURCERPM', 'RPMVERSION'; push @stags, 'BUILDTIME'; my %res = rpmq_many($rpm, @stags); die("$rpm: bad rpm\n") unless $res{'NAME'}; my $rname = $res{'NAME'}->[0]; my $sname = $res{'SOURCERPM'}->[0]; die("$rpm is a sourcerpm\n") unless $sname; die("bad sourcerpm: $sname\n") unless $sname =~ /^(.*)-([^-]+)-([^-]+)\.(no)?src\.rpm$/; $sname = $1; my $sversion = $2; my $srelease = $3; $arch = $res{'ARCH'}->[0]; my @targets = get_targets($arch, $config); if (!@targets) { print "no targets for arch $arch, skipping $rname\n"; next; } for my $target (@targets) { next unless parse_config($target, $res{'NAME'}->[0], $res{'VERSION'}->[0]); die("targetname not set\n") unless $targetname; $target_matched{$target} = 1; my %ghosts; my @rpmfiles = @{$res{'FILENAMES'}}; my @ff = @{$res{'FILEFLAGS'}}; for (@rpmfiles) { $ghosts{$_} = 1 if $ff[0] & (1 << 6); shift @ff; } my %files; my %cfiles; my %moves; my %symlinks; for my $r (@baselib) { my $rr = substr($r, 1); if (substr($r, 0, 1) eq '+') { if ($rr =~ /^(.*?)\s*->\s*(.*?)$/) { if (grep {$_ eq $1} @rpmfiles) { $files{$1} = 1; $moves{$1} = $2; } } else { for (grep {/$rr/} @rpmfiles) { $files{$_} = 1; delete $moves{$_}; } } } elsif (substr($r, 0, 1) eq '-') { delete $files{$_} for grep {/$rr/} keys %files; } elsif (substr($r, 0, 1) eq '"') { $rr =~ s/\"$//; if ($rr =~ /^(.*?)\s*->\s*(.*?)$/) { $symlinks{$1} = $2; } else { die("bad baselib string rule: $r\n"); } } else { die("bad baselib rule: $r\n"); } } if ($configdir) { for my $r (@config) { my $rr = substr($r, 1); if (substr($r, 0, 1) eq '+') { $cfiles{$_} = 1 for grep {/$rr/} grep {!$ghosts{$_}} @rpmfiles; } elsif (substr($r, 0, 1) eq '-') { delete $cfiles{$_} for grep {/$rr/} keys %cfiles; } else { die("bad config rule: $r\n"); } } } $files{$_} = 1 for keys %cfiles; if (!%files) { print "$rname($target): empty filelist, skipping rpm\n"; next; } my $i = 0; for (@{$res{'FILENAMES'}}) { $files{$_} = $i if $files{$_}; $i++; } my %cpiodirs; for (keys %files) { next if $cfiles{$_} || $moves{$_}; my $fn = $_; next unless $fn =~ s/\/[^\/]+$//; $cpiodirs{$fn} = 1; } my %alldirs; for (keys %files) { next if $cfiles{$_}; my $fn = $_; if ($moves{$fn}) { $fn = $moves{$fn}; next unless $fn =~ s/\/[^\/]+$//; $alldirs{$fn} = 1; } else { next unless $fn =~ s/\/[^\/]+$//; $alldirs{"$prefix$fn"} = 1; } } $alldirs{$_} = 1 for keys %symlinks; $alldirs{$configdir} = 1 if %cfiles; my $ad; for $ad (keys %alldirs) { $alldirs{$ad} = 1 while $ad =~ s/\/[^\/]+$//; } for (keys %files) { next if $cfiles{$_}; my $fn = $_; if ($moves{$fn}) { delete $alldirs{$moves{$fn}}; } else { delete $alldirs{"$prefix$fn"}; } } delete $alldirs{$_} for keys %symlinks; $ad = $prefix; delete $alldirs{$ad}; delete $alldirs{$ad} while $ad =~ s/\/[^\/]+$//; delete $alldirs{$_} for @filesystem; print "$rname($target): writing specfile...\n"; my ($fh, $specfile) = tempfile(SUFFIX => ".spec"); open(SPEC, ">&=", $fh) || die("open: $!\n"); for my $p (@preamble) { my $pt = uc($p); next unless $res{$pt}; my $d = $res{$pt}->[0]; $d =~ s/%/%%/g; if ($p eq 'Name') { print SPEC "Name: $sname\n"; next; } if ($p eq 'Version') { print SPEC "Version: $sversion\n"; next; } if ($p eq 'Release') { print SPEC "Release: $srelease\n"; next; } if ($p eq 'Disturl') { print SPEC "%define disturl $d\n"; next; } print SPEC "$p: $d\n"; } print SPEC "Source: $rpm\n"; print SPEC "NoSource: 0\n" if $res{'SOURCERPM'}->[0] =~ /\.nosrc\.rpm$/; print SPEC "BuildRoot: %{_tmppath}/baselibs-%{name}-%{version}-build\n"; print SPEC "%define _target_cpu $targetarch\n"; print SPEC "%define __os_install_post %{nil}\n"; print SPEC "%description\nUnneeded main package. Ignore.\n\n"; print SPEC "%package -n $targetname\n"; for my $p (@preamble) { next if $p eq 'Name' || $p eq 'Disturl'; my $pt = uc($p); next unless $res{$pt}; my $d = $res{$pt}->[0]; $d =~ s/%/%%/g; if ($pt eq 'VERSION' && $legacyversion) { $d = $legacyversion; } elsif ($pt eq 'RELEASE' && $legacyversion) { my @bt = localtime($res{'BUILDTIME'}->[0]); $bt[5] += 1900; $bt[4] += 1; $d = sprintf("%04d%02d%02d%02d%02d\n", @bt[5,4,3,2,1]); } print SPEC "$p: $d\n"; } print SPEC "Autoreqprov: $autoreqprov\n"; for my $ar ([\@provides, 'provides'], [\@prerequires, 'prereq'], [\@requires, 'requires'], [\@recommends, 'recommends'], [\@supplements, 'supplements'], [\@obsoletes, 'obsoletes'], [\@conflicts, 'conflicts']) { my @a = @{$ar->[0]}; my @na = (); for (@a) { if (substr($_, 0, 1) eq '"') { die("bad $ar->[1] rule: $_\n") unless /^\"(.*)\"$/; push @na, $1; } elsif (substr($_, 0, 1) eq '-') { my $ra = substr($_, 1); @na = grep {!/$ra/} @na; } else { die("bad $ar->[1] rule: $_\n"); } } print SPEC ucfirst($ar->[1]).": $_\n" for @na; } my $cpiopre = ''; $cpiopre = './' if $res{'RPMVERSION'}->[0] !~ /^3/; my $d = $res{'DESCRIPTION'}->[0]; $d =~ s/%/%%/g; if ($legacyversion) { $d = "This rpm was re-packaged from $res{'NAME'}->[0]-$res{'VERSION'}->[0]-$res{'RELEASE'}->[0]\n\n$d"; } print SPEC "\n%description -n $targetname\n"; print SPEC "$d\n"; print SPEC "%prep\n"; print SPEC "%build\n"; print SPEC "%install\n"; print SPEC "rm -rf \$RPM_BUILD_ROOT\n"; print SPEC "mkdir \$RPM_BUILD_ROOT\n"; print SPEC "cd \$RPM_BUILD_ROOT\n"; my @cfl = grep {!$cfiles{$_} && !$moves{$_}} sort keys %files; if (@cfl) { if ($prefix ne '') { print SPEC "mkdir -p \$RPM_BUILD_ROOT$prefix\n"; print SPEC "pushd \$RPM_BUILD_ROOT$prefix\n"; } print SPEC "cat <.filelist\n"; print SPEC "$_\n" for map {$cpiopre.substr($_, 1)} @cfl; print SPEC "EOFL\n"; print SPEC "mkdir -p \$RPM_BUILD_ROOT$prefix$_\n" for sort keys %cpiodirs; print SPEC "rpm2cpio $rpm | cpio -i -d -v -E .filelist\n"; print SPEC "rm .filelist\n"; if (%ghosts) { for my $fn (grep {$ghosts{$_}} @cfl) { my $fnm = $fn; $fnm = '.' unless $fnm =~ s/\/[^\/]+$//; print SPEC "mkdir -p \$RPM_BUILD_ROOT$prefix$fnm\n"; print SPEC "touch \$RPM_BUILD_ROOT$prefix$fn\n"; } } if ($prefix ne '') { print SPEC "popd\n"; } } if (%cfiles || %moves) { print SPEC "mkdir -p .cfiles\n"; print SPEC "pushd .cfiles\n"; print SPEC "cat <.filelist\n"; print SPEC "$_\n" for map {$cpiopre.substr($_, 1)} grep {$cfiles{$_} || $moves{$_}} sort keys %files; print SPEC "EOFL\n"; print SPEC "rpm2cpio $rpm | cpio -i -d -v -E .filelist\n"; print SPEC "popd\n"; if (%cfiles) { print SPEC "mkdir -p \$RPM_BUILD_ROOT$configdir\n"; print SPEC "mv .cfiles$_ \$RPM_BUILD_ROOT$configdir\n" for sort keys %cfiles; } for my $fn (sort keys %moves) { my $fnm = $moves{$fn}; $fnm = '.' unless $fnm =~ s/\/[^\/]+$//; print SPEC "mkdir -p \$RPM_BUILD_ROOT$fnm\n"; print SPEC "mv .cfiles$fn \$RPM_BUILD_ROOT$moves{$fn}\n"; } print SPEC "rm -rf .cfiles\n"; } for my $fn (sort keys %symlinks) { my $fnm = $fn; $fnm = '.' unless $fnm =~ s/\/[^\/]+$//; print SPEC "mkdir -p \$RPM_BUILD_ROOT$fnm\n"; print SPEC "ln -s $symlinks{$fn} \$RPM_BUILD_ROOT$fn\n"; } if ($prefix ne '' && grep {/\.so.*$/} @cfl) { @postin = () if @postin == 1 && $postin[0] =~ /^\"-p.*ldconfig/; unshift @postin, "\"/sbin/ldconfig -r $prefix\""; } if (@prein) { print SPEC "%pre -n $targetname"; print SPEC $prein[0] =~ /^\"-p/ ? " " : "\n"; for (@prein) { die("bad prein rule: $_\n") unless /^\"(.*)\"$/; print SPEC "$1\n"; } } if (@postin) { print SPEC "%post -n $targetname"; print SPEC $postin[0] =~ /^\"-p/ ? " " : "\n"; for (@postin) { die("bad postin rule: $_\n") unless /^\"(.*)\"$/; print SPEC "$1\n"; } } if (@preun) { print SPEC "%preun -n $targetname"; print SPEC $preun[0] =~ /^\"-p/ ? " " : "\n"; for (@preun) { die("bad preun rule: $_\n") unless /^\"(.*)\"$/; print SPEC "$1\n"; } } if (@postun) { print SPEC "%postun -n $targetname"; print SPEC $postun[0] =~ /^\"-p/ ? " " : "\n"; for (@postun) { die("bad postun rule: $_\n") unless /^\"(.*)\"$/; print SPEC "$1\n"; } } print SPEC "\n%clean\n"; print SPEC "\nrm -rf \$RPM_BUILD_ROOT\n\n"; print SPEC "%files -n $targetname\n"; for my $file (sort keys %alldirs) { print SPEC "%dir %attr(0755,root,root) $file\n"; } for my $file (keys %files) { my $fi = $files{$file}; my $fm = $res{'FILEMODES'}->[$fi]; my $fv = $res{'FILEVERIFYFLAGS'}->[$fi]; my $ff = $res{'FILEFLAGS'}->[$fi]; if (POSIX::S_ISDIR($fm)) { print SPEC "%dir "; } if ($ff & ((1 << 3) | (1 << 4))) { print SPEC "%config(missingok noreplace) "; } elsif ($ff & (1 << 3)) { print SPEC "%config(missingok) "; } elsif ($ff & (1 << 4)) { print SPEC "%config(noreplace) "; } elsif ($ff & (1 << 0)) { print SPEC "%config "; } print SPEC "%doc " if $ff & (1 << 1); print SPEC "%ghost " if $ff & (1 << 6); print SPEC "%license " if $ff & (1 << 7); print SPEC "%readme " if $ff & (1 << 8); if ($fv != 4294967295) { print SPEC "%verify("; if ($fv & 2147483648) { print SPEC "not "; $fv ^= 4294967295; } print SPEC "md5 " if $fv & (1 << 0); print SPEC "size " if $fv & (1 << 1); print SPEC "link " if $fv & (1 << 2); print SPEC "user " if $fv & (1 << 3); print SPEC "group " if $fv & (1 << 4); print SPEC "mtime " if $fv & (1 << 5); print SPEC "mode " if $fv & (1 << 6); print SPEC "rdev " if $fv & (1 << 7); print SPEC ") "; } #sigh, no POSIX::S_ISLNK ... if (($fm & 0170000) == 0120000) { printf SPEC "%%attr(-,%s,%s) ", $res{'FILEUSERNAME'}->[$fi], $res{'FILEGROUPNAME'}->[$fi]; } else { printf SPEC "%%attr(%03o,%s,%s) ", $fm & 07777, $res{'FILEUSERNAME'}->[$fi], $res{'FILEGROUPNAME'}->[$fi]; } if ($cfiles{$file}) { my $fn = $file; $fn =~ s/.*\///; print SPEC "$configdir/$fn\n"; } else { if ($moves{$file}) { print SPEC "$moves{$file}\n"; } else { print SPEC "$prefix$file\n"; } } } for (keys %symlinks) { printf SPEC "%%attr(-,root,root) $_\n"; } if ($res{'CHANGELOGTEXT'}) { print SPEC "\n%changelog -n $targetname\n"; my @ct = @{$res{'CHANGELOGTIME'}}; my @cn = @{$res{'CHANGELOGNAME'}}; my @wdays = qw{Sun Mon Tue Wed Thu Fri Sat}; my @months = qw{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}; for my $cc (@{$res{'CHANGELOGTEXT'}}) { my @lt = localtime($ct[0]); my $cc2 = $cc; my $cn2 = $cn[0]; $cc2 =~ s/%/%%/g; $cn2 =~ s/%/%%/g; printf SPEC "* %s %s %02d %04d %s\n%s\n", $wdays[$lt[6]], $months[$lt[4]], $lt[3], 1900 + $lt[5], $cn2, $cc2; shift @ct; shift @cn; } } close(SPEC) || die("$specfile: $!\n"); print "$rname($target): running build...\n"; if (system("rpmbuild -bb $specfile".($verbose ? '' : '>/dev/null 2>&1'))) { print "rpmbuild failed: $?\n"; print "re-running in verbose mode:\n"; system("rpmbuild -bb $specfile 2>&1"); exit(1); } unlink($specfile); } } } ################################################################ sub handle_debs { eval { require Parse::DebControl; }; if ($@){ print "mkbaselibs needs the perl module Parse::DebControl\n". "Error. baselibs-deb.conf specified but mkbaselibs can't run\n". "Please ensure that 'osc meta prjconf' contains the following line:\n". " Support: libparse-debcontrol-perl\n"; return; }; # for each deb: # look in the config file to see if we should be doing anything # # Unpack the deb control data using dpkg-deb # for each target # Unpack the deb control data *and* file data using dpkg-deb # process the config file for this package modifying control and moving files # repackage the target deb for my $deb (@_) { # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles # unpack the outer loop control file - this gives us eg: the arch my $base = tempdir() || die("tempdir: $!\n"); system "dpkg -e $deb ${base}/DEBIAN" || die "dpkg -e failed on $deb"; my $controlParser = new Parse::DebControl; $controlParser->DEBUG(); my $keys = $controlParser->parse_file("${base}/DEBIAN/control"); # print Dumper($keys); # DebControl supports multiple paragraphs of control data but # debian/control in a .deb only has one (whereas a debian/control # in a build root contains many) # So extract the ref to the first one. my %control = %{@{$keys}[0]}; # Validate this is a binary deb and get the control data my $d_name = $control{'Package'}; my $d_version = $control{'Version'}; $arch = $control{'Architecture'}; # set global $arch # examine the # arch targets [:] [[:]...] # line and get a list of target_arch-es my @targets = get_targets($arch, $config); if (!@targets) { print "no targets for arch $arch, skipping $d_name\n"; next; # there may be more debs to handle } for my $target (@targets) { next unless parse_config($target, $d_name, $d_version); die("targetname not set\n") unless $targetname; # set in the global_conf $target_matched{$target} = 1; my $baseTarget = "${base}/$target"; # Unpack a .deb to work on. We have to do this each time as we # manipulate the unpacked files. system "mkdir ${base}/$target"; system "dpkg -e $deb ${baseTarget}/DEBIAN" || die "dpkg -e failed on $deb"; # Note that extracting to $prefix does the clever move to /lib-x86/ or whatever system "dpkg -x $deb ${baseTarget}/$prefix" || die "dpkg -x failed on $deb"; # Reset the control data $keys = $controlParser->parse_file("${baseTarget}/DEBIAN/control"); %control = %{@{$keys}[0]}; # Force the architecture $control{'Architecture'} = $targetarch; # Currently this script does not manipulate any files # If needed they are all unpacked in ${baseTarget} # we don't need a dsc/spec file.. all done by just moving files around # and running dpkg -b ${base} $NEW_DEB # # my $dscfile = "/usr/src/packages/DSCS/mkbaselibs$$.dsc"; print "$d_name($target): writing dscfile...\n"; # We can Use Parse::DebControl write_file to create the new control file # just modify tags in there # We'll use requires -> Depends: map s/^"(.*)"$/$1/, @requires; # remove leading/trailing "s $control{"Depends"} = @requires ? join(", ", @requires) : ""; # join array if exists or reset it to "" map s/^"(.*)"$/$1/, @prerequires; $control{"Pre-Depends"} = @prerequires ? join(", ", @prerequires) : ""; map s/^"(.*)"$/$1/, @provides; $control{"Provides"} = @provides ? join(", ", @provides) : ""; map s/^"(.*)"$/$1/, @recommends; $control{"Recommends"} = @recommends ? join(", ", @recommends) : ""; map s/^"(.*)"$/$1/, @suggests; $control{"Suggests"} = @suggests ? join(", ", @suggests) : ""; map s/^"(.*)"$/$1/, @obsoletes; $control{"Replaces"} = @obsoletes ? join(", ", @obsoletes) : ""; map s/^"(.*)"$/$1/, @conflicts; $control{"Conflicts"} = @conflicts ? join(", ", @conflicts) : ""; map s/^"(.*)"$/$1/, @supplements; $control{"Enhances"} = @supplements ? join(", ", @supplements) : ""; # Tidy up the various control files. # the md5sums are regenerated by dpkg-deb when building foreach my $c_file ( qw(conffiles postins postrm preinst prerm) ) { unlink "${baseTarget}/DEBIAN/$c_file"; } # Create them if needed if (@prein) { map s/^"(.*)"$/$1/, @prein; # remove leading/trailing "s open(my $SCRIPT, ">${baseTarget}/DEBIAN/preinst"); print $SCRIPT join("\n", @prein) ; chmod(0755, $SCRIPT); close($SCRIPT); } if (@postin) { map s/^"(.*)"$/$1/, @postin; open(my $SCRIPT, ">${baseTarget}/DEBIAN/postinst"); print $SCRIPT join("\n", @postin) ; chmod(0755, $SCRIPT); close($SCRIPT); } if (@preun) { map s/^"(.*)"$/$1/, @preun; open(my $SCRIPT, ">${baseTarget}/DEBIAN/prerm"); print $SCRIPT join("\n", @preun) ; chmod(0755, $SCRIPT); close($SCRIPT); } if (@postun) { map s/^"(.*)"$/$1/, @postun; open(my $SCRIPT, ">${baseTarget}/DEBIAN/postrm"); print $SCRIPT join("\n", @postun) ; chmod(0755, $SCRIPT); close($SCRIPT); } # Don't forget to rename the package - or it will replace/uninstall the /-based one $control{"Package"} = "${d_name}-${targettype}"; $controlParser->write_file("${baseTarget}/DEBIAN/control", \%control, {clobberFile => 1, addNewline=>1 } ); system "dpkg -b ${baseTarget} /usr/src/packages/DEBS/${d_name}-${targettype}_${d_version}_${targetarch}.deb" || die "dpkg -b failed on $deb"; system "rm -rf ${baseTarget}"; } system "rm -rf ${base}"; } } # args is a list of full pathnames to rpm/deb files die("Usage: mkbaselibs \n") unless @ARGV; if ($ARGV[0] eq '-v') { $verbose = 1; shift @ARGV; } while ($ARGV[0] eq '-c') { shift @ARGV; read_config($ARGV[0]); shift @ARGV; } my %goodpkgs = map {$_ => 1} get_pkgnames(); # These are packages named in the config file my @pkgs = @ARGV; my @rpms; my @debugrpms; for my $rpm (@pkgs) { my $rpmn = $rpm; unless (-f $rpm) { warn ("$rpm does not exist, skipping\n"); next; } next if $rpm =~ /\.(no)?src\.rpm$/; # ignore source rpms next if $rpm =~ /\.spm$/; $rpmn =~ s/.*\///; # Remove leading path info $rpmn =~ s/-[^-]+-[^-]+\.[^\.]+\.rpm$/\.rpm/; # remove all version info $rpmn =~ s/\.rpm$//; # remove extension push @rpms, $rpm if $goodpkgs{$rpmn}; if ($rpmn =~ s/-debuginfo$//) { push @debugrpms, $rpm if $goodpkgs{$rpmn}; } } for (@rpms) { die("$_: need absolute path to package\n") unless /^\//; } my %debs_to_process = map {$_ => 1} get_debpkgnames(); # These are packages named in the config file my @debs; for my $deb (@pkgs) { my $debn = $deb; next unless $debn =~ /\.deb$/; $debn =~ s/.*\///; # Remove leading path info $debn =~ s/_[^_]+_[^_]+\.deb$//; # remove all version info and extension push @debs, $deb if $debs_to_process{$debn}; print "ignoring $deb as $debn not in baselibs.conf\n" if !$debs_to_process{$debn}; } for (@debs) { die("$_: need absolute path to package\n") unless /^\//; } exit 0 unless @rpms or @debs; if (@rpms) { @filesystem = split("\n", `rpm -ql filesystem 2>/dev/null`); die("filesystem rpm is not installed\n") unless @filesystem; handle_rpms(@rpms); handle_rpms(@debugrpms); } if (@debs) { handle_debs(@debs); } obs-build-20141024/configs/0000755000000000000000000000000012422424142015214 5ustar rootroot00000000000000obs-build-20141024/configs/sles8.conf0000644000000000000000000001760312422424142017130 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash db devs diffutils filesystem Preinstall: fileutils fillup glibc grep libgcc libxcrypt m4 ncurses Preinstall: pam permissions readline rpm sed sh-utils shadow tar Preinstall: textutils Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 cracklib db gcc gdbm gettext Required: glibc libtool ncurses pam perl rpm zlib Support: bind9-utils bison cpio cpp cyrus-sasl e2fsprogs file Support: findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip kbd less libstdc++ make man mktemp modutils Support: ncurses-devel net-tools netcfg pam-devel pam-modules Support: patch ps rcs sendmail strace syslogd sysvinit texinfo Support: timezone unzip util-linux vim zlib-devel Keep: binutils bzip2 cpp cracklib file findutils fpk gawk gcc Keep: gcc-c++ gdbm glibc-devel glibc-locale gnat gnat-runtime Keep: gzip libstdc++ make mktemp pam-devel pam-modules patch perl Keep: popt rcs shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 s390 Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils glibc-32bit baselibs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit baselibs-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq aaa_base %fillup_prereq fillup fileutils %install_info_prereq texinfo %suse_version 810 %sles_version 8 %ul_version 0 %_vendor suse obs-build-20141024/configs/sl8.1.conf0000644000000000000000000001760312422424142016737 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash db devs diffutils filesystem Preinstall: fileutils fillup glibc grep libgcc libxcrypt m4 ncurses Preinstall: pam permissions readline rpm sed sh-utils shadow tar Preinstall: textutils Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 cracklib db gcc gdbm gettext Required: glibc libtool ncurses pam perl rpm zlib Support: bind9-utils bison cpio cpp cyrus-sasl e2fsprogs file Support: findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip kbd less libstdc++ make man mktemp modutils Support: ncurses-devel net-tools netcfg pam-devel pam-modules Support: patch ps rcs sendmail strace syslogd sysvinit texinfo Support: timezone unzip util-linux vim zlib-devel Keep: binutils bzip2 cpp cracklib file findutils fpk gawk gcc Keep: gcc-c++ gdbm glibc-devel glibc-locale gnat gnat-runtime Keep: gzip libstdc++ make mktemp pam-devel pam-modules patch perl Keep: popt rcs shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 s390 Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils glibc-32bit baselibs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit baselibs-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq aaa_base %fillup_prereq fillup fileutils %install_info_prereq texinfo %suse_version 810 %sles_version 0 %ul_version 0 %_vendor suse obs-build-20141024/configs/sl11.2.conf0000644000000000000000000004436312422424142017015 0ustar rootroot00000000000000%define gcc_version 44 Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux Substitute: kiwi-filesystem:ext3 e2fsprogs procps psmisc reiserfs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-boot:isoboot kiwi-desc-isoboot module-init-tools elfutils squashfs aufs aufs-kmp-default Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-xenboot ncurses-utils curl dhcpcd iputils nbd net-tools netcfg nfs-client parted grub mdadm Substitute: kiwi-boot:oemboot kiwi-desc-oemboot Substitute: kiwi-boot:usbboot kiwi-desc-usbboot Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot Substitute: kiwi-boot:xenboot kiwi-desc-xenboot Substitute: build:debug vim strace gdb Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar zlib libselinux1 Preinstall: liblzma0 libcap2 libpcre0 Preinstall: libpopt0 libelf1 liblua5_1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux perl-base libdb-4_5 libsepol1 libblkid1 libuuid1 Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext-runtime glibc libtool perl rpm zlib libmpfr1 Required: libncurses5 libgmp3 libgmpxx4 Support: audit-libs cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libstdc++%{gcc_version} Support: libxcrypt libzio Support: linux-kernel-headers make man netcfg Support: net-tools pam-modules patch perl-base sysvinit Support: texinfo timezone util-linux login Support: libgomp%{gcc_version} libuuid1 psmisc Support: terminfo-base # build tools packages Support: build brp-check-suse post-build-checks Support: rpmlint-Factory Keep: brp-check-suse # remove build-compare support to disable "same result" package dropping Support: build-compare %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: audit-libs binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libpcre0 Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone libmpfr1 libcap2 Keep: gmp libgmp3 libgmpxx4 Keep: cpp44 gcc44 gcc44-ada libstdc++44 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel libcloog0 libppl7 libppl_c2 Keep: libpopt0 Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_5 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default preload-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit Prefer: libstroke Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: OpenOffice_org:OpenOffice_org-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: beagle-index:preload-kmp-default Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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 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 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: libopenal0-soft openal-soft -lsb-buildenv Prefer: -libevent Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: OpenOffice_org:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 #Temporary hack to solve #442202 Ignore: yast2-all-packages:yast2-boot-server,yast2-heartbeat,yast2-issleconfig,yast2-linux-user-mgmt,yast2-trans-am,yast2-trans-be,yast2-trans-he,yast2-trans-ms,yast2-trans-my,yast2-trans-tk 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,mingetty,distribution-release,udev 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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: libbonoboui:gnome-desktop Ignore: postfix:pcre,libpcre0 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libgcc44:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: libstdc41++:glibc-32bit Ignore: libstdc42++:glibc-32bit Ignore: libstdc43++:glibc-32bit Ignore: libstdc44++: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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n Ignore: OpenOffice_org:OpenOffice_org-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: simias:mono(log4net) Ignore: zmd: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: 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: phonon:phonon-backend Ignore: openwbem-devel Ignore: MozillaFirefox:MozillaFirefox-branding Ignore: yast2: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: pulseaudio:kernel %ifarch s390 s390x Ignore: yast2-all-packages:yast2-x11 %endif %ifnarch ia64 s390 s390x Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif Substitute: java2-devel-packages java-1_6_0-openjdk-devel %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1120 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1120 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl12.2.conf0000644000000000000000000006060012422424142017006 0ustar rootroot00000000000000 %define gcc_version 47 %define opensuse_bs 1 %define _with_aaa_base_malloc_debug 1 Patterntype: rpm-md ymp %if "%_repository" == "images" Type: kiwi Repotype: none Patterntype: none Prefer: openSUSE-release %endif Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-12-1 Substitute: kiwi-filesystem:ext3 e2fsprogs Substitute: kiwi-filesystem:ext4 e2fsprogs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-filesystem:btrfs btrfsprogs Substitute: kiwi-boot:usbboot kiwi Substitute: kiwi-boot:isoboot kiwi-desc-isoboot kiwi-desc-isoboot-requires Substitute: kiwi-boot:oemboot kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:tbz kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-netboot-requires Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot kiwi-desc-vmxboot-requires Substitute: kiwi-boot:xenboot kiwi-desc-xenboot kiwi-desc-xenboot-requires Substitute: kiwi-setup:image kiwi createrepo tar -kiwi-desc-isoboot-requires -kiwi-desc-oemboot-requires -kiwi-desc-netboot-requires -kiwi-desc-vmxboot-requires -kiwi-desc-xenboot-requires Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv Preinstall: libbz2-1 libgcc%{gcc_version} m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar zlib libselinux1 Preinstall: liblzma5 libcap2 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Preinstall: libpcre1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 # it would be a great idea to have, but sometimes installation-images wants to build debuginfos in #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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: gcc gcc%{gcc_version} glibc rpm tar patch Support: perl rpm-build Support: cpio Support: file findutils gawk Support: glibc-locale groff info less Support: libbz2-devel # for boot.udev Support: udev Support: man netcfg Support: net-tools pam-modules sysvinit-tools Support: texinfo timezone util-linux login psmisc Support: terminfo-base update-alternatives pwdutils build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse # remove build-compare support to disable "same result" package dropping Support: build-compare # Extracting appdata.xml from desktop files Support: brp-extract-appdata # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif Keep: libaudit1 binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libpcre1 Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone libmpfr4 libcap2 Keep: gmp libgmp10 libgmpxx4 libmpc2 Keep: cpp47 gcc47 gcc47-ada libstdc++47 Keep: cpp46 gcc46 gcc46-ada libstdc++46 Keep: cpp45 gcc45 gcc45-ada libstdc++45 Keep: cpp44 gcc44 gcc44-ada libstdc++44 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_7_0-openjdk java-1_7_0-openjdk-devel libcloog0 libppl9 libppl_c4 Keep: libpopt0 pkg-config libmount1 Keep: libacl1 libattr1 rpm-build Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: libfam0 Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs lua-devel Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream Prefer: exo-data:exo-branding-upstream Prefer: xfce4-settings:xfce4-settings-branding-upstream Prefer: xfdesktop:xfdesktop-branding-upstream Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: plymouth:plymouth-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release # 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 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 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 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 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: wallpaper-branding-openSUSE # 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 Prefer: geronimo-servlet-2_4-api # just temporary Prefer: -rubygems # temporarly - already fix submitted Prefer: -kde3-kaffeine # kernel bug (coolo) Prefer: kernel-default-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libffi%{gcc_version}-devel libgcj_bc%{gcc_version} Prefer: libffi%{gcc_version}-32bit libffi%{gcc_version}-64bit Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} libquadmath%{gcc_version} 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: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -java-1_7_0-openjdk-javadoc Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel Prefer: linux-glibc-devel Prefer: squid sysvinit Prefer: libpng14-compat-devel Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: libgarcon-data:libgarcon-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel Prefer: -perl-XML-SAX 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: libbonoboui:gnome-desktop 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: systemd:systemd-presets-branding Ignore: polkit:ConsoleKit 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: avalon-logkit:servlet 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: simias:mono(log4net) Ignore: zmd: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: 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: 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 # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 Ignore: sysconfig:tunctl # no build dependencies Ignore: libksuseinstall1:yast2-packager Ignore: libksuseinstall1:zypper Ignore: libqca2:gpg2 Ignore: NetworkManager:wpa_supplicant Ignore: NetworkManager:dhcp-client Ignore: autoyast2:yast2-schema # to be removed after 12.2 release Substitute: xorg-x11 xorg-x11 appres bdftopcf beforelight bitmap editres fonttosfnt fslsfonts fstobdf iceauth ico lbxproxy listres luit mkcomposecache oclock proxymngr rendercheck rstart showfont smproxy viewres x11perf xbacklight xbiff xcalc xclipboard xclock xcmsdb xcompmgr xcursor-themes xcursorgen xdbedizzy xditview xdpyinfo xedit xev xeyes xf86dga xfd xfindproxy xfontsel xfs xfsinfo xfwp xgamma xgc xhost xinput xkbcomp xkbevd xkbprint xkbutils xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmore xorg-scripts xplsprinters xpr xprehashprinterlist xprop xrandr xrefresh xrestop xrx xscope xset xsetmode xsetpointer xsm xstdcmap xtrap xvidtune xvinfo xwd xwininfo xwud %ifnarch ia64 s390 s390x Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif # We use always openjdk on openSUSE ! #%ifnarch ia64 s390 s390x Substitute: java2-devel-packages java-1_7_0-openjdk-devel #%else # %ifarch s390 s390x #Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives # %endif # %ifarch ia64 #Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives # %endif #%endif %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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 # need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops) Optflags: sparcv9 -fmessage-length=0 -mcpu=ultrasparc Optflags: sparc64 -fmessage-length=0 -mcpu=ultrasparc %ifarch sparcv9 Target: sparcv9 %endif Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1220 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %_with_aaa_base_malloc_debug 1 %suse_version 1220 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse %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} obs-build-20141024/configs/sl10.3.conf0000644000000000000000000003117112422424142017006 0ustar rootroot00000000000000%define gcc_version 42 Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 ncurses pam Preinstall: permissions popt libreadline5 rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl-base libdb-4_5 libvolume_id Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext glibc libtool ncurses perl rpm zlib Support: audit-libs cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-devel Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libltdl-3 libmudflap%{gcc_version} libstdc++%{gcc_version} Support: libvolume_id libxcrypt libzio Support: linux-kernel-headers make man mktemp netcfg Support: net-tools pam-modules patch perl-base sysvinit Support: texinfo timezone util-linux %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: audit-libs binutils bzip2 cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada Keep: libunwind libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl-base perl rcs timezone Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version} Keep: cpp41 gcc41 gcc41-ada libstdc++41 Prefer: libreadline5 Prefer: libdb_java-4_5 libltdl-3 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: java-1_5_0-sun java-1_5_0-sun-jdbc java-1_5_0-sun-devel java-1_5_0-bea-devel Prefer: gnome-panel desktop-data-SuSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} libmudflap%{gcc_version} Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: saxon:java-1_4_2-cacao gjdoc:antlr Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm-devel Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf gnu-javamail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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-common-es -bundle-lang-common-de -bundle-lang-common-fr Prefer: -bundle-lang-common-pt -bundle-lang-common-en 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links %if ! 0%{?opensuse_bs} Prefer: -crossover-office -java-1_5_0-ibm -java-1_5_0-ibm-jdbc Prefer: -java-1_4_2-gcj-compat -java-1_4_2-gcj-compat-devel %endif Prefer: -java-1_4_2-cacao -java-1_4_2-cacao-devel -java-1_4_2-ibm -java-1_4_2-ibm-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: -libgcc41 -libgcc41-32bit -libgcc41-64bit Prefer: -libffi41 Prefer: -libgcc43 -libgcc43-32bit -libgcc43-64bit Prefer: -libffi43 -libgomp43 Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini Prefer: -libcdio-mini -faac-mini Conflict: ghostscript-library:ghostscript-mini Ignore: cracklib:cracklib-dict Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release,udev Ignore: gettext-devel:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel Ignore: libgcj43,libstdc++43-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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,pcre,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:libidl Ignore: orbit2-devel:libidl,libidl-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: libbonoboui:gnome-desktop Ignore: postfix:pcre 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: libstdc41++:glibc-32bit Ignore: libstdc42++:glibc-32bit Ignore: libstdc43++:glibc-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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n 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: simias:mono(log4net) Ignore: zmd: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: 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: 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: icecream:gcc-c++ Ignore: no Ignore: package Ignore: provides %if 0%{?opensuse_bs} Substitute: java2-devel-packages gcc-java java-1_4_2-gcj-compat-devel %else %ifnarch s390 s390x ppc ppc64 ia64 Substitute: java2-devel-packages java-1_5_0-sun-devel unzip update-alternatives %else %ifarch s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_5_0-ibm-devel unzip update-alternatives %endif %ifarch ia64 Substitute: java2-devel-packages java-1_5_0-bea-devel unzip update-alternatives %endif %endif %endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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 kernel-xenpae %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-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif %ifarch ppc64 Substitute: mono-devel mono-devel mono-biarchcompat Substitute: mono-basic mono-basic mono-biarchcompat Substitute: mono-tools mono-tools mono-biarchcompat %endif Optflags: i586 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: i686 -march=i686 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: x86_64 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: ppc -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: ppc64 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: * -O2 %define suse_version 1030 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq kernel-source kernel-syms %suse_version 1030 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/arch.conf0000644000000000000000000000135112422424142017000 0ustar rootroot00000000000000Repotype: arch Preinstall: glibc bash perl sed grep coreutils pacman pacman-mirrorlist Preinstall: gawk gzip filesystem curl acl gpgme libarchive Preinstall: openssl libssh2 zlib libassuan libgpg-error attr Preinstall: expat xz bzip2 readline lzo2 krb5 e2fsprogs keyutils Preinstall: ncurses VMinstall: util-linux libutil-linux binutils pcre libcap Required: binutils gcc glibc libtool Support: acl autoconf automake zlib bzip2 filesystem curl Support: libtool ncurses perl gpgme libarchive openssl libssh2 Support: libassuan libgpg-error attr expat xz pacman pacman-mirrorlist Support: fakeroot file sudo patch make net-tools pkg-config Prefer: zlib ttf-dejavu Prefer: libgl jdk7-openjdk libdrm Prefer: -nvidia-libgl -nvidia-304xx-utils obs-build-20141024/configs/sl11.1.conf0000644000000000000000000003730212422424142017007 0ustar rootroot00000000000000%define gcc_version 43 Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions popt libreadline5 rpm sed tar zlib libselinux1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux perl-base libdb-4_5 libvolume_id1 libsepol1 Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext-runtime glibc libtool perl rpm zlib libmpfr1 gmp Required: libncurses5 Support: audit-libs cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libstdc++%{gcc_version} Support: libvolume_id1 libxcrypt libzio Support: linux-kernel-headers make man netcfg Support: net-tools pam-modules patch perl-base sysvinit Support: texinfo timezone util-linux login Support: libgomp43 libuuid1 psmisc Support: terminfo-base Support: build brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: audit-libs binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone gmp libmpfr1 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel Keep: libvolume_id libvolume_id1 Prefer: -openSUSE-build-key Prefer: libreadline5 Prefer: libdb_java-4_5 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit Prefer: libstroke Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: xfce4-desktop:xfce4-desktop-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: OpenOffice_org:OpenOffice_org-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner190-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: ant:xerces-j2 Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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-common-es -bundle-lang-common-de -bundle-lang-common-fr Prefer: -bundle-lang-common-pt -bundle-lang-common-en 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: -libopenal0-soft -openal-soft -lsb-buildenv Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: OpenOffice_org:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-dvd9,openSUSE-release-livecdkde,openSUSE-release-livecdgnome Ignore: cracklib:cracklib-dict Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release,udev Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel Ignore: libgcj43,libstdc++43-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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,pcre,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:libidl Ignore: orbit2-devel:libidl,libidl-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: libbonoboui:gnome-desktop Ignore: postfix:pcre 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: libstdc41++:glibc-32bit Ignore: libstdc42++:glibc-32bit Ignore: libstdc43++: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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n 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: simias:mono(log4net) Ignore: zmd: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: 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: phonon:phonon-backend Ignore: openwbem-devel Ignore: MozillaFirefox:MozillaFirefox-branding Ignore: yast2:yast2-branding Ignore: yast2-theme-SLE:yast2-branding Ignore: yast2-registration:yast2-registration-branding %ifarch s390 s390x Ignore: yast2-all-packages:yast2-x11 %endif %ifnarch ia64 s390 s390x ppc ppc64 Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x ppc ppc64 Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifnarch ia64 s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_6_0-openjdk-devel %else %ifarch s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives %endif %ifarch ia64 Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives %endif %endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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 %ifarch ppc64 Substitute: mono-devel mono-devel mono-biarchcompat Substitute: mono-basic mono-basic mono-biarchcompat Substitute: mono-tools mono-tools mono-biarchcompat Substitute: mono-data-sqlite mono-data-sqlite libsqlite3-0-32bit %endif Optflags: i586 -march=i586 -mtune=i686 -fmessage-length=0 Optflags: i686 -march=i686 -mtune=i686 -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1110 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1110 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl9.3.conf0000644000000000000000000001774012422424142016744 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libnscd libselinux libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-utils bison cpio cpp cracklib cvs cyrus-sasl e2fsprogs Support: file findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info klogd less libstdc++ libzio make Support: man mktemp module-init-tools ncurses-devel net-tools Support: netcfg openldap2-client openssl pam-modules patch procinfo Support: procps psmisc rcs strace syslogd sysvinit tcpd texinfo Support: timezone unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-c++ gdbm Keep: glibc-devel glibc-locale gnat gnat-runtime gzip libstdc++ Keep: libunwind libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel jpackage-utils update-alternatives %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel jpackage-utils update-alternatives %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit jpackage-utils update-alternatives %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv sed devs %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 930 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl9.1.conf0000644000000000000000000002021112422424142016725 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libselinux libxcrypt m4 ncurses pam permissions Preinstall: popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-utils bison cpio cpp cracklib cvs cyrus-sasl e2fsprogs Support: file findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info kbd less libstdc++ make man mktemp Support: module-init-tools ncurses-devel net-tools netcfg Support: openldap2-client openssl pam-modules patch procinfo procps Support: psmisc rcs strace syslogd sysvinit tcpd texinfo timezone Support: unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-c++ gdbm Keep: glibc-devel glibc-locale gnat gnat-runtime gzip libstdc++ Keep: libunwind make mktemp pam-devel pam-modules patch perl rcs Keep: shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 Substitute: java2-devel-packages IBMJava2-JRE BEAJava2-JRE BEAJava2-SDK jpackage-utils %endif %ifarch s390 ppc Substitute: java2-devel-packages IBMJava2-JRE IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-JRE IBMJava2-SDK jpackage-utils XFree86-libs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv %fillup_prereq fillup fileutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 910 %sles_version 0 %ul_version 0 %jds_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/debian.conf0000644000000000000000000001654712422424142017322 0ustar rootroot00000000000000Repotype: debian Preinstall: bash perl-base sed grep coreutils debianutils Preinstall: libc6 libncurses5 libacl1 libattr1 Preinstall: libreadline4 tar gawk dpkg Preinstall: sysv-rc gzip base-files Runscripts: base-files VMinstall: util-linux binutils libblkid1 libuuid1 libdevmapper1.02 mount Required: autoconf automake binutils bzip2 gcc gettext libc6 Required: libtool libncurses5 perl zlib1g dpkg Support: build-essential fakeroot Support: bison cpio cracklib2 cvs login Support: file findutils flex diff Support: groff-base gzip info less Support: make man module-init-tools Support: net-tools util-linux Support: patch procps psmisc rcs strace Support: texinfo unzip vim ncurses-base sysvinit Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gzip libada libstdc++ libunwind Keep: libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: sysvinit:initscripts Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 Substitute: utempter %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite Substitute: glibc-devel-32bit %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %enidf %ifarch s390x Substitute: kernel-binary-packages kernel-default %enidf obs-build-20141024/configs/sles11.conf0000777000000000000000000000000012422424142020756 2sl11.1.confustar rootroot00000000000000obs-build-20141024/configs/sl13.2.conf0000644000000000000000000006412212422424142017012 0ustar rootroot00000000000000%define gcc_version 48 Patterntype: rpm-md ymp Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-12-1 Substitute: kiwi-filesystem:ext3 e2fsprogs Substitute: kiwi-filesystem:ext4 e2fsprogs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-filesystem:btrfs btrfsprogs Substitute: kiwi-boot:usbboot kiwi Substitute: kiwi-boot:isoboot kiwi-desc-isoboot kiwi-desc-isoboot-requires Substitute: kiwi-boot:oemboot kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:tbz kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-netboot-requires Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot kiwi-desc-vmxboot-requires Substitute: kiwi-boot:xenboot kiwi-desc-xenboot kiwi-desc-xenboot-requires Substitute: kiwi-setup:image kiwi createrepo tar -kiwi-desc-isoboot-requires -kiwi-desc-oemboot-requires -kiwi-desc-netboot-requires -kiwi-desc-vmxboot-requires -kiwi-desc-xenboot-requires Conflict: kiwi:libudev-mini1 Conflict: kiwi:systemd-mini Conflict: libudev1:udev-mini FileProvides: /usr/sbin/groupadd pwdutils FileProvides: /usr/sbin/useradd shadow FileProvides: /sbin/netconfig sysconfig-netconfig Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep Preinstall: libbz2-1 libgcc_s1 m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar libz1 libselinux1 Preinstall: liblzma5 libcap2 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Preinstall: libpcre1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs Prefer: libdb-4_8-devel VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 net-tools # kernel-obs-build - bnc#865554 ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: \.armv7l\.rpm$ armv7l ExportFilter: \.armv7hl\.rpm$ armv7l ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 # it would be a great idea to have, but sometimes installation-images wants to build debuginfos in #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ #ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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 # needed for su's default config - perhaps we should use a simplified form? Support: pam-modules # the basic stuff Support: perl build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory # remove build-compare support to disable "same result" package dropping Support: build-compare # Extracting appdata.xml from desktop files Support: brp-extract-appdata # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif Prefer: -suse-build-key Prefer: krb5-mini krb5-mini-devel Conflict: krb5-devel:krb5-mini Conflict: krb5:krb5-mini-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++6 libgcc_s1 libquadmath0 Prefer: libstdc++6-32bit libstdc++6-64bit Prefer: libstdc++6-x86 %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslog-service syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: libjpeg8-devel libjpeg-turbo Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: libfam0 Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs lua-devel Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE enlightenment-theme-upstream Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: fcitx:fcitx-branding-openSUSE Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream Prefer: exo-data:exo-branding-upstream Prefer: xfce4-settings:xfce4-settings-branding-upstream Prefer: xfdesktop:xfdesktop-branding-upstream Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release # 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: wallpaper-branding-openSUSE # 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 # for now gstream 0.10 is it Prefer: typelib-1_0-Gst-0_10 gstreamer-0_10-utils-unversioned gstreamer-0_10-utils typelib-1_0-GstInterfaces-0_10 # prefer the small systemd for building Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo Prefer: systemd-mini systemd-mini-devel Prefer: systemd-mini-devel:systemd-mini Prefer: udev-mini libcom_err2-mini libext2fs2-mini Prefer: libudev1:udev 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 Prefer: postgresql postgresql-server Prefer: -unzip-rcc -linuxconsoletools # kernel bug (coolo) Prefer: kernel-default-devel Prefer: wxWidgets-2_9-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit Prefer: libffi%{gcc_version} libffi%{gcc_version}-devel Prefer: -libatomic1-gcc49 -libitm1-gcc49 -libgcj_bc1-gcc49 -libtsan0-gcc49 -libatomic1-gcc49-32bit -libitm1-gcc49-32bit Prefer: libgcc_s1-x86 libffi4 libgcj_bc1 Prefer: libffi4-32bit libffi4-64bit 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: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -java-1_7_0-openjdk-javadoc -java-1_7_0-icedtea-javadoc %ifnarch %arm Prefer: -java-1_7_0-icedtea-devel %endif Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel 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: 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: libgarcon-data:libgarcon-branding-upstream Prefer: libexo-1-0:libexo-1-0-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel Prefer: -perl-XML-SAX # prefer module-init-tools Prefer: -kmod-compat Prefer: gettext-tools-mini gettext-runtime-mini # choice p11-kit-nss-trust Prefer: mozilla-nss-certs # amarok dependency resolution Prefer: phonon-backend-gstreamer-0_10 # replacing mkinitrd Prefer: dracut # Not sure if wicked is ready yet Prefer: sysconfig-network Ignore: java-1_7_0-openjdk:mozilla-nss Ignore: java-1_7_0-openjdk:java-ca-certificates 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: 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-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 # not during build Ignore: yui_backend Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: ConsoleKit:systemd Ignore: openssh:systemd Ignore: cronie:systemd Ignore: systemd:kbd Ignore: systemd:systemd-presets-branding Ignore: systemd:dbus-1 Ignore: systemd:pam-config Ignore: systemd:udev Ignore: systemd-mini:this-is-only-for-build-envs Ignore: udev-mini:this-is-only-for-build-envs Ignore: libudev-mini1:this-is-only-for-build-envs 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: avalon-logkit:servlet 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: zmd: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 # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 Ignore: sysconfig-network:iproute2 Ignore: sysconfig:tunctl # 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: autoyast2:yast2-schema Ignore: libgio-2_0-0:dbus-1-x11 Ignore: weather-wallpaper:inkscape Ignore: libgamin-1-0:gamin-server Ignore: libfam0-gamin:gamin-server %ifarch %arm Prefer: java-1_7_0-icedtea java-1_7_0-icedtea-devel %else Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif %ifarch %arm Substitute: java2-devel-packages java-1_7_0-icedtea-devel %else Substitute: java2-devel-packages java-1_7_0-openjdk-devel %endif %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: armv5el -fmessage-length=0 -grecord-gcc-switches Optflags: armv5tel -fmessage-length=0 -grecord-gcc-switches Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches Optflags: aarch64 -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 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1320 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1320 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse # define which gcc package builds the system libraries %product_libs_gcc_ver 48 %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} obs-build-20141024/configs/sl13.1.conf0000644000000000000000000006452312422424142017016 0ustar rootroot00000000000000%define gcc_version 48 Patterntype: rpm-md ymp Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-12-1 Substitute: kiwi-filesystem:ext3 e2fsprogs Substitute: kiwi-filesystem:ext4 e2fsprogs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-filesystem:btrfs btrfsprogs Substitute: kiwi-boot:usbboot kiwi Substitute: kiwi-boot:isoboot kiwi-desc-isoboot kiwi-desc-isoboot-requires Substitute: kiwi-boot:oemboot kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:tbz kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-netboot-requires Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot kiwi-desc-vmxboot-requires Substitute: kiwi-boot:xenboot kiwi-desc-xenboot kiwi-desc-xenboot-requires Substitute: kiwi-setup:image kiwi createrepo tar -kiwi-desc-isoboot-requires -kiwi-desc-oemboot-requires -kiwi-desc-netboot-requires -kiwi-desc-vmxboot-requires -kiwi-desc-xenboot-requires Conflict: kiwi:libudev-mini1 Conflict: kiwi:systemd-mini Conflict: libudev1:udev-mini FileProvides: /usr/sbin/groupadd pwdutils FileProvides: /sbin/netconfig sysconfig-netconfig Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep Preinstall: libbz2-1 libgcc_s1 m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar libz1 libselinux1 Preinstall: liblzma5 libcap2 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Preinstall: libpcre1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs Prefer: libdb-4_8-devel VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 net-tools ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: \.armv7l\.rpm$ armv7l ExportFilter: \.armv7hl\.rpm$ armv7l ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 # it would be a great idea to have, but sometimes installation-images wants to build debuginfos in #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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 # needed for su's default config - perhaps we should use a simplified form? Support: pam-modules # the basic stuff Support: perl build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory # remove build-compare support to disable "same result" package dropping Support: build-compare # Extracting appdata.xml from desktop files Support: brp-extract-appdata # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif Prefer: -suse-build-key Prefer: krb5-mini krb5-mini-devel Conflict: krb5-devel:krb5-mini Conflict: krb5:krb5-mini-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++6 libgcc_s1 libquadmath0 Prefer: libstdc++6-32bit libstdc++6-64bit Prefer: libstdc++6-x86 %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslog-service syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: libjpeg8-devel libjpeg-turbo Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: libfam0 Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs lua-devel Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: fcitx:fcitx-branding-openSUSE Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream Prefer: exo-data:exo-branding-upstream Prefer: xfce4-settings:xfce4-settings-branding-upstream Prefer: xfdesktop:xfdesktop-branding-upstream Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release # 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: wallpaper-branding-openSUSE # 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 # for now gstream 0.10 is it Prefer: typelib-1_0-Gst-0_10 gstreamer-0_10-utils-unversioned gstreamer-0_10-utils typelib-1_0-GstInterfaces-0_10 # prefer the small systemd for building Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo Prefer: systemd-mini systemd-mini-devel Prefer: systemd-mini-devel:systemd-mini Prefer: udev-mini Prefer: libudev1:udev 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 Prefer: postgresql postgresql-server Prefer: -unzip-rcc # kernel bug (coolo) Prefer: kernel-default-devel Prefer: wxWidgets-2_9-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit Prefer: libffi%{gcc_version} libffi%{gcc_version}-devel Prefer: libgcc_s1-x86 libffi4 libgcj_bc1 Prefer: libffi4-32bit libffi4-64bit 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: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -java-1_7_0-openjdk-javadoc -java-1_7_0-icedtea-javadoc %ifnarch %arm Prefer: -java-1_7_0-icedtea-devel %endif Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel 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: 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: libgarcon-data:libgarcon-branding-upstream Prefer: libexo-1-0:libexo-1-0-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel Prefer: -perl-XML-SAX # prefer module-init-tools Prefer: -kmod-compat Prefer: gettext-tools-mini gettext-runtime-mini # choice p11-kit-nss-trust Prefer: mozilla-nss-certs # amarok dependency Prefer: phonon-backend-gstreamer-0_10 Ignore: java-1_7_0-openjdk:mozilla-nss Ignore: java-1_7_0-openjdk:java-ca-certificates 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: 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-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 # not during build Ignore: yui_backend Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: ConsoleKit:systemd Ignore: openssh:systemd Ignore: cronie:systemd Ignore: systemd:kbd Ignore: systemd:systemd-presets-branding Ignore: systemd:dbus-1 Ignore: systemd:pam-config Ignore: systemd:udev Ignore: systemd-mini:this-is-only-for-build-envs 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: 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: avalon-logkit:servlet 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: simias:mono(log4net) Ignore: zmd: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 # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 Ignore: sysconfig:tunctl # 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: autoyast2:yast2-schema Ignore: libgio-2_0-0:dbus-1-x11 Ignore: weather-wallpaper:inkscape %ifarch %arm Prefer: java-1_7_0-icedtea java-1_7_0-icedtea-devel %else %ifnarch s390 s390x Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif %ifarch %arm Substitute: java2-devel-packages java-1_7_0-icedtea-devel %else Substitute: java2-devel-packages java-1_7_0-openjdk-devel %endif %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 -fstack-protector Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: ppc -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: ppc64 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: ia64 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: s390 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: s390x -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: armv6l -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: armv6hl -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: armv7l -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: armv7hl -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: aarch64 -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 -fstack-protector Optflags: sparc64 -fmessage-length=0 -grecord-gcc-switches -mcpu=ultrasparc -fstack-protector %ifarch sparcv9 Target: sparcv9 %endif # Workaround buildservice bug (scheduler arch not matching target arch) %ifarch armv7l armv7hl Target: armv7hl-suse-linux %endif %ifarch armv6l armv6hl Target: armv6hl-suse-linux %endif Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables %define suse_version 1310 %ifarch aarch64 armv6l armv6hl %define qemu_user_space_build 1 %endif %if "%qemu_user_space_build" == "1" Hostarch: x86_64 Constraint: hostlabel QEMU_ARM Macros: %qemu_user_space_build 1 %_without_mono 1 :Macros %ifarch armv6l armv6hl Preinstall: qemu-linux-user %endif %ifarch armv7l armv7hl Preinstall: qemu-linux-user %endif ExportFilter: ^qemu-linux-user.*\.x86_64\.rpm$ . armv7l armv6l %endif Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1310 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse # define which gcc package builds the system libraries %product_libs_gcc_ver 48 %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} obs-build-20141024/configs/sl10.0.conf0000644000000000000000000002024212422424142017000 0ustar rootroot00000000000000Repotype: rpm-md suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libnscd libselinux libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-libs bind-utils bison cpio cpp cracklib cvs cyrus-sasl Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel glibc-locale gpm groff gzip info klogd less Support: libcom_err libstdc++ libzio make man mktemp module-init-tools Support: ncurses-devel net-tools netcfg openldap2-client openssl Support: pam-modules patch procinfo procps psmisc rcs strace sysvinit Support: tcpd texinfo timezone unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libstdc++ libunwind Keep: libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel jpackage-utils update-alternatives %else %ifarch ppc Substitute: java2-devel-packages IBMJava2-JRE IBMJava2-SDK jpackage-utils update-alternatives %endif %ifarch s390 ia64 Substitute: java2-devel-packages java-1_4_2-ibm-devel jpackage-utils update-alternatives %endif %ifarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit jpackage-utils update-alternatives %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um 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-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 1000 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl11.0.conf0000644000000000000000000003554112422424142017011 0ustar rootroot00000000000000%define gcc_version 43 Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions popt libreadline5 rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl-base libdb-4_5 libvolume_id Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext-runtime glibc libtool perl rpm zlib libmpfr1 gmp Required: libncurses5 Support: audit-libs cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libltdl-3 libmudflap%{gcc_version} libstdc++%{gcc_version} Support: libvolume_id libxcrypt libzio Support: linux-kernel-headers make man netcfg Support: net-tools pam-modules patch perl-base sysvinit Support: texinfo timezone util-linux login Support: terminfo-base libgomp43 libuuid1 psmisc %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: audit-libs binutils bzip2 cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone gmp libmpfr1 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel Prefer: libreadline5 Prefer: libdb_java-4_5 libltdl-3 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: java-1_5_0-sun java-1_5_0-sun-jdbc java-1_5_0-sun-devel java-1_5_0-bea java-1_5_0-bea-devel Prefer: java-1_7_0-icedtea %ifarch ppc ppc64 Prefer: java-1_5_0-ibm %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm %endif Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit Prefer: libstroke Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: saxon:java-1_4_2-cacao gjdoc:antlr Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm-devel Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf gnu-javamail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: xfce4-desktop:xfce4-desktop-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: OpenOffice_org:OpenOffice_org-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: glib2:glib2-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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-common-es -bundle-lang-common-de -bundle-lang-common-fr Prefer: -bundle-lang-common-pt -bundle-lang-common-en 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links %if ! 0%{?opensuse_bs} Prefer: -crossover-office %ifnarch s390 s390x Prefer: -java-1_6_0-ibm %endif %ifnarch ppc Prefer: -java-1_5_0-ibm -java-1_5_0-ibm-jdbc %endif Prefer: -java-1_4_2-gcj-compat -java-1_4_2-gcj-compat-devel %endif Prefer: -java-1_4_2-cacao -java-1_4_2-cacao-devel -java-1_4_2-ibm -java-1_4_2-ibm-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Ignore: cracklib:cracklib-dict Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release,udev Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel Ignore: libgcj43,libstdc++43-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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,pcre,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:libidl Ignore: orbit2-devel:libidl,libidl-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: libbonoboui:gnome-desktop Ignore: postfix:pcre 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: libstdc41++:glibc-32bit Ignore: libstdc42++:glibc-32bit Ignore: libstdc43++: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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n 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: simias:mono(log4net) Ignore: zmd: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: 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: gpg2:gpg2-lang Ignore: util-linux:util-linux-lang 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: yast2-casa-ats:CASA_auth_token_svc %if 0%{?opensuse_bs} Substitute: java2-devel-packages gcc-java java-1_4_2-gcj-compat-devel %else %ifnarch s390 s390x ppc ppc64 ia64 Substitute: java2-devel-packages java-1_5_0-sun-devel unzip update-alternatives %else %ifarch s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_5_0-ibm-devel unzip update-alternatives %endif %ifarch ia64 Substitute: java2-devel-packages java-1_5_0-bea-devel unzip update-alternatives %endif %endif %endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif %ifarch ppc64 Substitute: mono-devel mono-devel mono-biarchcompat Substitute: mono-basic mono-basic mono-biarchcompat Substitute: mono-tools mono-tools mono-biarchcompat %endif Optflags: i586 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: i686 -march=i686 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: x86_64 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: ppc -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: ppc64 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector Optflags: * -O2 %define suse_version 1100 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq kernel-source kernel-syms %kernel_module_package_buildreqs kernel-source kernel-syms %suse_version 1100 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sles10.conf0000644000000000000000000002030012422424142017165 0ustar rootroot00000000000000Preinstall: aaa_base acl attr bash bzip2 coreutils db diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libnscd libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-libs bind-utils bison cpio cpp cracklib cvs cyrus-sasl Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel glibc-locale gpm groff gzip info klogd less Support: libcom_err libstdc++ libzio make man mktemp module-init-tools Support: ncurses-devel net-tools netcfg openldap2-client openssl Support: pam-modules patch procinfo procps psmisc rcs strace sysvinit Support: tcpd texinfo timezone unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libstdc++ libunwind Keep: libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: novell-NLDAPsdk zaptel-kmp-default Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel update-alternatives %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel update-alternatives %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit update-alternatives %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq kernel-source kernel-syms %kernel_module_package_buildreqs kernel-source kernel-syms %suse_version 1010 %sles_version 10 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/spectool.conf0000644000000000000000000000007012422424142017710 0ustar rootroot00000000000000%define spectool_version 1 Macros: %spectool_version 1 obs-build-20141024/configs/sl9.2.conf0000644000000000000000000001771212422424142016742 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libnscd libselinux libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-utils bison cpio cpp cracklib cvs cyrus-sasl e2fsprogs Support: file findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info less libstdc++ libzio make man mktemp Support: module-init-tools ncurses-devel net-tools netcfg Support: openldap2-client openssl pam-modules patch procinfo procps Support: psmisc rcs strace syslogd sysvinit tcpd texinfo timezone Support: unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-c++ gdbm Keep: glibc-devel glibc-locale gnat gnat-runtime gzip libstdc++ Keep: libunwind libzio make mktemp pam-devel pam-modules patch Keep: perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel jpackage-utils update-alternatives %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel jpackage-utils update-alternatives %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit jpackage-utils update-alternatives %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv sed devs %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 920 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/ul1.conf0000644000000000000000000001760312422424142016573 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash db devs diffutils filesystem Preinstall: fileutils fillup glibc grep libgcc libxcrypt m4 ncurses Preinstall: pam permissions readline rpm sed sh-utils shadow tar Preinstall: textutils Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 cracklib db gcc gdbm gettext Required: glibc libtool ncurses pam perl rpm zlib Support: bind9-utils bison cpio cpp cyrus-sasl e2fsprogs file Support: findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip kbd less libstdc++ make man mktemp modutils Support: ncurses-devel net-tools netcfg pam-devel pam-modules Support: patch ps rcs sendmail strace syslogd sysvinit texinfo Support: timezone unzip util-linux vim zlib-devel Keep: binutils bzip2 cpp cracklib file findutils fpk gawk gcc Keep: gcc-c++ gdbm glibc-devel glibc-locale gnat gnat-runtime Keep: gzip libstdc++ make mktemp pam-devel pam-modules patch perl Keep: popt rcs shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 s390 Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils glibc-32bit baselibs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit baselibs-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq aaa_base %fillup_prereq fillup fileutils %install_info_prereq texinfo %suse_version 810 %sles_version 0 %ul_version 1 %_vendor suse obs-build-20141024/configs/sles11sp2.conf0000644000000000000000000004472712422424142017636 0ustar rootroot00000000000000 %define gcc_version 43 Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions popt libreadline5 rpm sed tar zlib libselinux1 Preinstall: liblzma5 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux perl-base libdb-4_5 libblkid1 libuuid1 libsepol1 Keep: libvolume_id Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext-runtime glibc libtool perl rpm zlib libmpfr1 gmp Required: libncurses5 Support: audit-libs cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libstdc++%{gcc_version} Support: libxcrypt libzio Support: linux-kernel-headers make man netcfg Support: net-tools pam-modules patch perl-base sysvinit Support: texinfo timezone util-linux login Support: libgomp43 libuuid1 psmisc Support: terminfo-base Support: build brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse %ifarch ia64 Support: libunwind libunwind-devel %endif FileProvides: /usr/bin/docbook2man docbook-utils FileProvides: /usr/bin/msgfmt gettext FileProvides: /usr/sbin/useradd pwdutils FileProvides: /usr/sbin/groupadd pwdutils FileProvides: /usr/sbin/update-alternatives update-alternatives FileProvides: /usr/bin/host bind-utils Keep: audit-libs binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone gmp libmpfr1 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel Prefer: -openSUSE-build-key Prefer: libreadline5 Prefer: libdb_java-4_5 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit Prefer: libstroke Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: xfce4-desktop:xfce4-desktop-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: OpenOffice_org:OpenOffice_org-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner190-32bit Prefer: mozilla-xulrunner190-devel:mozilla-xulrunner190 Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: ant:xerces-j2 Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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-common-es -bundle-lang-common-de -bundle-lang-common-fr Prefer: -bundle-lang-common-pt -bundle-lang-common-en 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: libsepol1 Prefer: libexpat1 uuid-runtime Prefer: -x11-input-synaptics -kde4-marble Prefer: libdlm3 Prefer: squid Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: -libopenal0-soft -openal-soft -lsb-buildenv Prefer: -libevent Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: OpenOffice_org:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kdm:kdm-branding-upstream Prefer: libica-2_0_2 Prefer: libxklavier12:libxklavier Prefer: webyast-base-ui:webyast-base-ui-branding-default Prefer: libpacemaker-devel:libglue-devel Prefer: libpacemaker3:libglue2 Prefer: pacemaker:resource-agents # have choice for jaxen-bootstrap >= 1.1 needed by dom4j: jaxen-bootstrap jaxen Prefer: -jaxen-bootstrap # have choice for jaf >= 1.0.2 Prefer: geronimo-jaf-1_0_2-api # have choice for javamail_1.3.1_api Prefer: excalibur-avalon-logkit:geronimo-javamail-1_3_1-api # have choice for jms_1.1_api Prefer: excalibur-avalon-logkit:geronimo-jms-1_1-api # have choice for jacc: geronimo-j2ee-1_4-apis geronimo-jacc-1_0-api Prefer: geronimo-jacc-1_0-api # have choice for antlr >= 2.7.1 needed by checkstyle: antlr antlr-bootstrap Prefer: checkstyle:antlr #have choice for antlr >= 2.7.6 needed by hibernate3: antlr antlr-bootstrap Prefer: hibernate3:antlr #have choice for antlr needed by jpam: antlr antlr-bootstrap Prefer: jpam:antlr #have choice for spacewalk-java-jdbc needed by spacewalk-java: spacewalk-java-postgresql spacewalk-java-oracle Prefer: spacewalk-java:spacewalk-java-oracle #have choice for jsp: geronimo-j2ee-1_4-apis geronimo-jsp-2_1-api geronimo-jsp-2_0-api Prefer: geronimo-jsp-2_0-api #have choice for jta: geronimo-j2ee-1_4-apis geronimo-jta-1_1-api java-1_5_0-gcj-compat Prefer: geronimo-jta-1_1-api #have choice for cglib >= 2.1.3 needed by jmock: cglib-nohook cglib Prefer: jmock:cglib #have choice for cglib >= 2.1.3 needed by hibernate3: cglib-nohook cglib Prefer: hibernate3:cglib # not wanted Prefer: -gnu-jaf # openoffice -> libreoffice Prefer: libreoffice:libreoffice-branding-upstream Prefer: libreoffice:xerces-j2 Prefer: -libreoffice Prefer: libreoffice:libreoffice-calc Prefer: libreoffice:mono-core Prefer: libservicelog:libservicelog-1_1-1 Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-dvd9,openSUSE-release-livecdkde,openSUSE-release-livecdgnome Ignore: cracklib:cracklib-dict Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release,udev Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel Ignore: libgcj43,libstdc++43-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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,pcre,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:libidl Ignore: orbit2-devel:libidl,libidl-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: libbonoboui:gnome-desktop Ignore: postfix:pcre 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libgcc44:glibc-32bit Ignore: libgcc45: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: 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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n 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: simias:mono(log4net) Ignore: zmd: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: 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: phonon:phonon-backend Ignore: openwbem-devel Ignore: MozillaFirefox:MozillaFirefox-branding Ignore: yast2:yast2-branding Ignore: yast2-theme-SLE:yast2-branding Ignore: yast2-registration:yast2-registration-branding Ignore: compiz:compiz-branding Ignore: beagle-index:sled-release Ignore: kdebase4-runtime:kdebase4-runtime-branding Ignore: kdelibs4:kdelibs4-branding Ignore: spacewalk-check:zypp-plugin-spacewalk Ignore: libreoffice-de:myspell-german-dictionary Ignore: libreoffice:libreoffice-i18n Ignore: yast2-qt:yast2-branding %ifarch s390 s390x Ignore: yast2-all-packages:yast2-x11 %endif %ifnarch ia64 s390 s390x ppc ppc64 Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x ppc ppc64 Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %if 0 Substitute: java2-devel-packages java-1_6_0-openjdk-devel %else %ifnarch ia64 s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_6_0-openjdk-devel %else %ifarch s390 s390x ppc ppc64 Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives %endif %ifarch ia64 Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives %endif %endif %endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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 Substitute: kde4-kwin kwin Optflags: i586 -march=i586 -mtune=i686 -fmessage-length=0 Optflags: i686 -march=i686 -mtune=i686 -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1110 %define sles_version 11 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1110 %sles_version 11 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl10.1.conf0000644000000000000000000002000012422424142016771 0ustar rootroot00000000000000Preinstall: aaa_base acl attr bash bzip2 coreutils db diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libnscd libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-libs bind-utils bison cpio cpp cracklib cvs cyrus-sasl Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel glibc-locale gpm groff gzip info klogd less Support: libcom_err libstdc++ libzio make man mktemp module-init-tools Support: ncurses-devel net-tools netcfg openldap2-client openssl Support: pam-modules patch procinfo procps psmisc rcs strace sysvinit Support: tcpd texinfo timezone unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libstdc++ libunwind Keep: libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel update-alternatives %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel update-alternatives %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit update-alternatives %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 1010 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl10.2.conf0000644000000000000000000002055612422424142017012 0ustar rootroot00000000000000Preinstall: aaa_base acl attr bash bzip2 coreutils db diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc41 libnscd libxcrypt m4 ncurses pam Preinstall: permissions popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl libvolume_id Required: autoconf automake binutils bzip2 db gcc gcc41 Required: gdbm gettext glibc libtool ncurses perl rpm zlib Support: audit-libs bind-libs Support: bind-utils bison cpio cpp cpp41 cracklib cvs cyrus-sasl Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel glibc-locale gpm groff gzip info klogd less Support: libcom_err libltdl libmudflap41 libstdc++41 libzio Support: linux-kernel-headers make man mktemp module-init-tools Support: ncurses-devel net-tools netcfg openldap2-client openssl Support: pam-modules patch procinfo procps psmisc rcs strace sysvinit Support: tcpd texinfo timezone unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libstdc++ libunwind Keep: libunwind-devel libzio make mktemp pam-devel pam-modules Keep: patch perl rcs timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun java-1_4_2-sun-jdbc gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder-lib Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit libcdio-mini faac-min Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office -java-1_5_0-ibm -java-1_5_0-ibm-jdbc Prefer: -java-1_4_2-gcj-compat -NX Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 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,pcre,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:libidl Ignore: orbit2-devel:libidl,libidl-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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: tpb:tpctl-kmp Ignore: tpctl:tpctl-kmp Ignore: mkinitrd:pciutils Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel update-alternatives %else %ifnarch s390 ppc Substitute: java2-devel-packages java-1_4_2-ibm-devel update-alternatives %endif %ifarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit update-alternatives %endif %ifarch ia64 Substitute: java2-devel-packages java-1_5_0-bea-devel update-alternatives %endif %endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq kernel-source kernel-syms %suse_version 1020 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sles12.conf0000644000000000000000000006202412422424142017200 0ustar rootroot00000000000000%define gcc_version 48 Patterntype: rpm-md ymp Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux dosfstools kiwi-instsource-plugins-SLE-12 Conflict: kiwi:libudev-mini1 Conflict: kiwi:systemd-mini Conflict: libudev1:udev-mini Conflict: udev:udev-mini Conflict: sles-release:dummy-release FileProvides: /usr/sbin/groupadd pwdutils FileProvides: /usr/sbin/useradd shadow FileProvides: /sbin/netconfig sysconfig-netconfig FileProvides: /usr/bin/docbook2man docbook-utils FileProvides: /usr/bin/mkisofs cdrkit-cdrtools-compat FileProvides: /usr/sbin/lockdev lockdev FileProvides: /bin/logger util-linux-systemd Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep Preinstall: libbz2-1 libgcc_s1 m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar libz1 libselinux1 Preinstall: liblzma5 libcap2 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Preinstall: libpcre1 libsmartcols1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 net-tools VMInstall: kernel-obs-build %ifarch aarch64 Preinstall: qemu-linux-user Runscripts: qemu-linux-user Hostarch: x86_64 Macros: %qemu_user_space_build 1 :Macros %endif Required: rpm-build Support: pam-modules # the basic stuff Support: perl build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory Prefer: libblkid1-mini libuuid1-mini libmount1-mini libsmartcols1-mini libdb-4_8-devel Prefer: krb5-mini krb5-mini-devel Conflict: krb5-devel:krb5-mini Conflict: krb5:krb5-mini-devel Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-SLE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++6 libgcc_s1 libquadmath0 Prefer: libstdc++6-32bit libstdc++6-64bit Prefer: libstdc++6-x86 Prefer: libstdc++6-gcc%{gcc_version} libgcc_s1-gcc%{gcc_version} libgomp1-gcc%{gcc_version} %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke Prefer: syslog-service syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: libjpeg8-devel libjpeg-turbo Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: libfam0 Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs lua-devel Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-SLE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: fcitx:fcitx-branding-openSUSE Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream Prefer: exo-data:exo-branding-upstream Prefer: xfce4-settings:xfce4-settings-branding-upstream Prefer: xfdesktop:xfdesktop-branding-upstream Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release # 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: wallpaper-branding-SLE Prefer: -crimson 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 Prefer: typelib-1_0-Gst-0_10 gstreamer-0_10-utils-unversioned gstreamer-0_10-utils typelib-1_0-GstInterfaces-0_10 # prefer the small systemd for building Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo Prefer: systemd-mini systemd-mini-devel Prefer: systemd-mini-devel:systemd-mini Prefer: udev-mini libcom_err2-mini libext2fs2-mini Prefer: libudev1:udev 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 Prefer: postgresql postgresql-server Prefer: -unzip-rcc Prefer: kernel-default-devel Prefer: wxWidgets-2_9-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit Prefer: libffi%{gcc_version} libffi%{gcc_version}-devel Prefer: libgcc_s1-x86 libffi4 libgcj_bc1 Prefer: libffi4-32bit libffi4-64bit 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: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -java-1_7_0-openjdk-javadoc -java-1_7_0-icedtea-javadoc Prefer: -java-1_7_0-icedtea-devel Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel 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: 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: libgarcon-data:libgarcon-branding-upstream Prefer: libexo-1-0:libexo-1-0-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel Prefer: -perl-XML-SAX Prefer: gettext-tools-mini gettext-runtime-mini Prefer: mozilla-nss-certs Prefer: phonon-backend-gstreamer-0_10 Prefer: dracut Prefer: kmod-compat Prefer: typelib-1_0-Wnck-3_0 Prefer: -cups154-libs -cups154-client -cups154 Ignore: java-1_7_0-openjdk:mozilla-nss Ignore: java-1_7_0-openjdk:java-ca-certificates 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: 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: yui_backend Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: ConsoleKit: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: systemd-mini:this-is-only-for-build-envs Ignore: udev-mini:this-is-only-for-build-envs Ignore: libudev-mini1:this-is-only-for-build-envs 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: util-linux-mini: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: avalon-logkit:servlet 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: zmd: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: util-linux-mini:util-linux-mini-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 Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 Ignore: sysconfig-network:iproute2 Ignore: sysconfig:tunctl # 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: sles-release:product_flavor(SLES) Ignore: autoyast2:yast2-schema Ignore: libgio-2_0-0:dbus-1-x11 Ignore: weather-wallpaper:inkscape Ignore: libgamin-1-0:gamin-server Ignore: libfam0-gamin:gamin-server Ignore: avahi:sysvinit(network) Ignore: sysconfig:sysvinit(network) Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel Prefer: -java-1_5_0-gcj-compat-devel Prefer: -java-1_6_0-ibm-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif Substitute: java2-devel-packages java-1_7_0-openjdk-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 -fstack-protector Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: x86_64 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: ppc64le -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: s390 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: s390x -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: aarch64 -fmessage-length=0 -grecord-gcc-switches -fstack-protector Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables %define suse_version 1315 %define _without_mono 1 %define _without_vlc 1 %define _without_compat_libs 1 %define rb_default_ruby ruby21 %define rb_default_ruby_suffix ruby2.1 %define rb_default_ruby_abi ruby:2.1.0 %define rb_build_ruby_abis ruby:2.1.0 %define rb_build_versions ruby21 #Prefer: rubygem(%{rb_default_ruby_abi}:gem2rpm) Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm Macros: %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 %maintenance_distribution SUSE Linux Enterprise 12 %suse_version 1315 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_without_mono 1 %_without_vlc 1 %_without_compat_libs 1 %rb_default_ruby ruby21 %rb_default_ruby_suffix ruby2.1 %rb_default_ruby_abi ruby:2.1.0 %rb_build_ruby_abis ruby:2.1.0 %rb_build_versions ruby21 %rubygemsruby21() rubygem(ruby:2.1.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}} %rubygemsxruby21() %{expand:%%{rubygemsx%*}} # %rubygemsruby22() rubygem(ruby:2.2.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}} %rubygemsxruby22() %{expand:%%{rubygemsx%*}} # %rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}} %rubygemsSTOP() %nil %rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*} %rubygemsxxSTOP(a:) %{-a*}) %* # %rubyruby21() ruby2.1 %{expand:%%rubyx%*} %{expand:%%{ruby%*}} %rubyxruby21() %{expand:%%{rubyx%*}} # %rubyruby22() ruby2.2 %{expand:%%rubyx%*} %{expand:%%{ruby%*}} %rubyxruby22() %{expand:%%{rubyx%*}} # %rubySTOP() %nil %rubyxSTOP() %* # %ruby() %{expand:%%{ruby%rb_build_versions STOP %*}} # %rubydevelruby21() ruby2.1-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}} %rubydevelxruby21() %{expand:%%{rubydevelx%*}} # %rubydevelruby22() ruby2.2-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}} %rubydevelxruby22() %{expand:%%{rubydevelx%*}} # %rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}} # %rubydevelSTOP() %nil %rubydevelxSTOP() %* %_vendor suse # define which gcc package builds the system libraries %product_libs_gcc_ver 48 %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} obs-build-20141024/configs/sl12.3.conf0000644000000000000000000006044012422424142017011 0ustar rootroot00000000000000 %define gcc_version 47 %define opensuse_bs 1 %define _with_aaa_base_malloc_debug 1 Patterntype: rpm-md ymp Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-12-1 Substitute: kiwi-filesystem:ext3 e2fsprogs Substitute: kiwi-filesystem:ext4 e2fsprogs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-filesystem:btrfs btrfsprogs Substitute: kiwi-boot:usbboot kiwi Substitute: kiwi-boot:isoboot kiwi-desc-isoboot kiwi-desc-isoboot-requires Substitute: kiwi-boot:oemboot kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:tbz kiwi-desc-oemboot kiwi-desc-oemboot-requires Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-netboot-requires Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot kiwi-desc-vmxboot-requires Substitute: kiwi-boot:xenboot kiwi-desc-xenboot kiwi-desc-xenboot-requires Substitute: kiwi-setup:image kiwi createrepo tar -kiwi-desc-isoboot-requires -kiwi-desc-oemboot-requires -kiwi-desc-netboot-requires -kiwi-desc-vmxboot-requires -kiwi-desc-xenboot-requires Conflict: kiwi:libudev-mini1 Conflict: kiwi:systemd-mini FileProvides: /usr/sbin/groupadd pwdutils Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep Preinstall: libbz2-1 libgcc_s1 m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar libz1 libselinux1 Preinstall: liblzma5 libcap2 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Preinstall: libpcre1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 net-tools ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: \.armv7l\.rpm$ armv7l ExportFilter: \.armv7hl\.rpm$ armv7l ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 # it would be a great idea to have, but sometimes installation-images wants to build debuginfos in #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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 # needed for su's default config - perhaps we should use a simplified form? Support: pam-modules # the basic stuff Support: perl build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory # remove build-compare support to disable "same result" package dropping Support: build-compare # Extracting appdata.xml from desktop files Support: brp-extract-appdata # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++6 libgcc_s1 Prefer: libstdc++6-32bit libstdc++6-64bit %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslog-service syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: libfam0 Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs lua-devel Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream Prefer: exo-data:exo-branding-upstream Prefer: xfce4-settings:xfce4-settings-branding-upstream Prefer: xfdesktop:xfdesktop-branding-upstream Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release # 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 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 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 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 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: wallpaper-branding-openSUSE # 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 Prefer: -rubygem-method_source-0_7 -rubygem-rails-2_3 -rubygem-activerecord-2_3 Prefer: geronimo-servlet-2_4-api Prefer: -libhdf5-0-openmpi -libhdf5_hl0-openmpi # for now gstream 0.10 is it Prefer: typelib-1_0-Gst-0_10 gstreamer-0_10-utils-unversioned gstreamer-0_10-utils typelib-1_0-GstInterfaces-0_10 # prefer the small systemd for building Prefer: libudev-mini-devel libudev-mini1 Prefer: systemd-mini systemd-mini-devel Prefer: systemd-mini-devel:systemd-mini Prefer: udev-mini Prefer: libudev1:udev 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 Prefer: postgresql postgresql-server # kernel bug (coolo) Prefer: kernel-default-devel Prefer: -libffi43 Prefer: wxWidgets-2_9-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit Prefer: libgcc_s1-x86 libffi4 libffi4-devel libgcj_bc%{gcc_version} Prefer: libffi4-32bit libffi4-64bit Prefer: libgomp1 libgomp1-32bit libgomp1-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran3 libquadmath%{gcc_version} 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: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -libiniparser -loudmouth -libkonq4 -libnetcdf-4 -java-1_7_0-openjdk-javadoc -java-1_7_0-icedtea-javadoc %ifnarch %arm Prefer: -java-1_7_0-icedtea-devel %endif Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel Prefer: linux-glibc-devel Prefer: squid sysvinit Prefer: libpng15-compat-devel Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: libgarcon-data:libgarcon-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel Prefer: -perl-XML-SAX # prefer module-init-tools Prefer: -kmod-compat 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: libxfce4ui-1-0:exo-tools 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: libbonoboui:gnome-desktop 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-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: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: ConsoleKit:systemd Ignore: openssh:systemd Ignore: cronie:systemd Ignore: systemd:kbd Ignore: systemd:systemd-presets-branding Ignore: systemd:dbus-1 Ignore: systemd:pam-config Ignore: systemd:udev Ignore: systemd-mini:this-is-only-for-build-envs 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: 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: avalon-logkit:servlet 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: simias:mono(log4net) Ignore: zmd: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: 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: 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 # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 Ignore: sysconfig:tunctl # 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: autoyast2:yast2-schema Ignore: libgio-2_0-0:dbus-1-x11 %ifarch %arm Prefer: java-1_7_0-icedtea java-1_7_0-icedtea-devel %else %ifnarch ia64 s390 s390x Prefer: java-1_7_0-openjdk java-1_7_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif %ifarch %arm Substitute: java2-devel-packages java-1_7_0-icedtea-devel %else Substitute: java2-devel-packages java-1_7_0-openjdk-devel %endif %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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: armv5el -fmessage-length=0 Optflags: armv5tel -fmessage-length=0 Optflags: armv7l -fmessage-length=0 Optflags: armv7hl -fmessage-length=0 # need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops) Optflags: sparcv9 -fmessage-length=0 -mcpu=ultrasparc Optflags: sparc64 -fmessage-length=0 -mcpu=ultrasparc %ifarch sparcv9 Target: sparcv9 %endif Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1230 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %_with_aaa_base_malloc_debug 1 %suse_version 1230 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse %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} obs-build-20141024/configs/sl11.3.conf0000644000000000000000000004744012422424142017015 0ustar rootroot00000000000000%define gcc_version 45 Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-11-3 Substitute: kiwi-filesystem:ext3 e2fsprogs procps psmisc reiserfs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-boot:isoboot kiwi-desc-isoboot module-init-tools elfutils squashfs clicfs e2fsprogs fribidi gfxboot-devel gawk gfxboot gfxboot-devel grub hdparm hwinfo iproute2 kiwi-tools lvm2 make memtest86+ netcfg psmisc Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-xenboot ncurses-utils curl dhcpcd iputils nbd net-tools netcfg nfs-client parted grub mdadm Substitute: kiwi-boot:oemboot kiwi-desc-oemboot Substitute: kiwi-boot:usbboot kiwi-desc-usbboot Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot Substitute: kiwi-boot:xenboot kiwi-desc-xenboot Substitute: build:debug vim strace gdb Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar zlib libselinux1 Preinstall: liblzma0 libcap2 libpcre0 Preinstall: libpopt0 libelf1 liblua5_1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux perl-base libdb-4_5 libsepol1 libblkid1 libuuid1 Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Required: gettext-runtime glibc libtool perl rpm zlib libmpfr1 Required: libncurses5 libgmp3 libgmpxx4 Support: libaudit1 Support: cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_5 Support: libstdc++%{gcc_version} Support: libxcrypt libzio Support: make man netcfg Support: linux-glibc-devel Support: net-tools pam-modules patch perl-base sysvinit-tools Support: texinfo timezone util-linux login Support: libgomp%{gcc_version} libuuid1 psmisc Support: terminfo-base update-alternatives pwdutils build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse # remove build-compare support to disable "same result" package dropping Support: build-compare %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: libaudit1 binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libpcre0 Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone libmpfr1 libcap2 Keep: gmp libgmp3 libgmpxx4 libmpc2 Keep: cpp45 gcc45 gcc45-ada libstdc++45 Keep: cpp44 gcc44 gcc44-ada libstdc++44 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel libcloog0 libppl7 libppl_c2 Keep: libpopt0 pkg-config Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_5 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default preload-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: OpenOffice_org:OpenOffice_org-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: beagle-index:preload-kmp-default Prefer: dummy-release Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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 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 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: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libffi%{gcc_version}-devel libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: libopenal0-soft openal-soft -lsb-buildenv Prefer: -libevent Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: OpenOffice_org:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel Prefer: linux-glibc-devel Prefer: squid sysvinit Prefer: libpng14-compat-devel Prefer: -python3 -x11-video-fglrxG02 -libpng12-0 Prefer: perl-Mail-SPF:perl-Error libldb0 -audit-libs mysql-community-server mysql-community-server-client #Temporary hack to solve #442202 Ignore: yast2-all-packages:yast2-boot-server,yast2-heartbeat,yast2-issleconfig,yast2-linux-user-mgmt,yast2-trans-am,yast2-trans-be,yast2-trans-he,yast2-trans-ms,yast2-trans-my,yast2-trans-tk 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,mingetty,distribution-release,udev 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: libbonoboui:gnome-desktop Ignore: postfix:pcre,libpcre0 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libgcc44:glibc-32bit Ignore: libgcc45: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: 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: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary Ignore: OpenOffice_org:OpenOffice_org-i18n Ignore: OpenOffice_org:OpenOffice_org-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: simias:mono(log4net) Ignore: zmd: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: 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: phonon:phonon-backend Ignore: openwbem-devel Ignore: MozillaFirefox:MozillaFirefox-branding Ignore: yast2: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: pulseaudio:kernel Ignore: transmission-common:transmission-ui Ignore: mutter-moblin:moblin-branding Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd Ignore: opensc:pinentry Ignore: gpg2:pinentry Ignore: NetworkManager:dhcp # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 # no build dependencies Ignore: libksuseinstall1:yast2-packager Ignore: libksuseinstall1:zypper Ignore: libqca2:gpg2 Ignore: NetworkManager:wpa_supplicant Ignore: NetworkManager:dhcp-client %ifnarch ia64 s390 s390x Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif # We use always openjdk on openSUSE ! #%ifnarch ia64 s390 s390x Substitute: java2-devel-packages java-1_6_0-openjdk-devel #%else # %ifarch s390 s390x #Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives # %endif # %ifarch ia64 #Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives # %endif #%endif %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1130 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1130 %sles_version 0 %ul_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sles9.conf0000644000000000000000000002021112422424142017116 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libselinux libxcrypt m4 ncurses pam permissions Preinstall: popt pwdutils readline rpm sed tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 db gcc gdbm gettext glibc Required: libtool ncurses perl rpm zlib Support: bind-utils bison cpio cpp cracklib cvs cyrus-sasl e2fsprogs Support: file findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info kbd less libstdc++ make man mktemp Support: module-init-tools ncurses-devel net-tools netcfg Support: openldap2-client openssl pam-modules patch procinfo procps Support: psmisc rcs strace syslogd sysvinit tcpd texinfo timezone Support: unzip util-linux vim zlib-devel Keep: binutils cpp cracklib file findutils gawk gcc gcc-c++ gdbm Keep: glibc-devel glibc-locale gnat gnat-runtime gzip libstdc++ Keep: libunwind make mktemp pam-devel pam-modules patch perl rcs Keep: shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 Substitute: java2-devel-packages IBMJava2-JRE BEAJava2-JRE BEAJava2-SDK jpackage-utils %endif %ifarch s390 ppc Substitute: java2-devel-packages IBMJava2-JRE IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-JRE IBMJava2-SDK jpackage-utils XFree86-libs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv %fillup_prereq fillup fileutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 910 %sles_version 9 %ul_version 0 %jds_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl9.0.conf0000644000000000000000000001775712422424142016751 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash bzip2 coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libxcrypt m4 ncurses pam permissions popt readline Preinstall: rpm sed shadow tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 cracklib db gcc gdbm gettext Required: glibc libtool ncurses perl rpm zlib Support: bind-utils bison cpio cpp cvs cyrus-sasl e2fsprogs file Support: findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info kbd less libstdc++ make man mktemp Support: modutils ncurses-devel net-tools netcfg openldap2-client Support: openssl pam-devel pam-modules patch ps rcs sendmail strace Support: syslogd sysvinit texinfo timezone unzip util-linux vim Support: zlib-devel Keep: binutils cpp cracklib file findutils fpk gawk gcc gcc-c++ Keep: gdbm glibc-devel glibc-locale gnat gnat-runtime gzip libstdc++ Keep: libunwind make mktemp pam-devel pam-modules patch perl rcs Keep: shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 s390 Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils glibc-32bit baselibs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv %fillup_prereq fillup fileutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 900 %sles_version 0 %ul_version 0 %jds_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/configs/sl12.1.conf0000644000000000000000000006607612422424142017022 0ustar rootroot00000000000000%define gcc_version 46 %define opensuse_bs 1 %define _with_aaa_base_malloc_debug 0 Patterntype: rpm-md ymp %if "%_repository" == "images" Type: kiwi Repotype: none Patterntype: none Prefer: openSUSE-release %endif CiCntStart: 1.1 Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-12-1 kiwi-instsource-plugins-openSUSE-11-3 Substitute: kiwi-filesystem:ext3 e2fsprogs procps psmisc reiserfs Substitute: kiwi-filesystem:squashfs squashfs # cdrkit-cdrtools-compat should not be necessary - bnc#680148 (coolo) Substitute: kiwi-boot:isoboot kiwi-desc-isoboot module-init-tools elfutils squashfs fribidi gfxboot-devel gawk gfxboot gfxboot-devel grub hdparm hwinfo iproute2 kiwi-tools lvm2 make memtest86+ netcfg psmisc squashfs sysfsutils syslinux clicfs e2fsprogs cdrkit-cdrtools-compat Substitute: kiwi-boot:oemboot kiwi-desc-oemboot adaptec-firmware atftp bc bind-libs bind-utils bootsplash bootsplash-branding-openSUSE busybox bzip2 clicfs cryptsetup curl dhcpcd dialog e2fsprogs eject fbiterm file fribidi gettext-runtime gfxboot gfxboot-devel grub hwinfo kernel-default kernel-default-base kernel-desktop kexec-tools kiwi-tools lvm2 make module-init-tools netcfg net-tools parted pciutils psmisc squashfs sysconfig sysfsutils tar util-linux jing kernel-firmware Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-xenboot ncurses-utils curl dhcpcd iputils nbd net-tools netcfg nfs-client parted grub mdadm Substitute: kiwi-boot:usbboot kiwi Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot kernel-default kexec-tools Substitute: kiwi-boot:xenboot kiwi-desc-xenboot Preinstall: aaa_base attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar zlib libselinux1 Preinstall: liblzma5 libcap2 libpcre0 libacl1 libattr1 Preinstall: libpopt0 libelf1 liblua5_1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: \.i686\.rpm$ i686 ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 ExportFilter: ^blocxx-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^boost-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^bzip2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^curl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^dbus-1-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^dbus-1-glib-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^e2fsprogs-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^expat-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^fontconfig-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^freetype2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc46-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc45-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc44-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc43-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^glib2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^glibc-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^hal-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^hwinfo-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^icu-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^jpeg-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kdelibs3-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-default-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-desktop-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-pae-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libidn-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libpng12-0-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libqt4-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libxcrypt-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libxml2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libzypp-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^openssl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^pcre-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^perl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^perl-gettext-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^qt3-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^rpm-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^sysfsutils-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^wireless-tools-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libICE-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libSM-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libX11-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXau-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXdmcp-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXext-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXfixes-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXmu-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXrender-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libfontenc-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libs-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libxcb-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-server-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-core-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-hardware-detection-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-perl-bindings-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-pkg-bindings-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-qt-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-xml-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^zlib-(?:debuginfo|debugsource)-.*\.rpm$ . #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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: ^wine.*\.i586.rpm$ . x86_64 #Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} #Required: gettext-runtime glibc libtool perl rpm zlib libmpfr4 #Required: libncurses5 libgmp10 libgmpxx4 libppl9 libppl_c4 Required: gcc gcc%{gcc_version} glibc perl rpm tar patch Support: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Support: gettext-runtime glibc libtool perl rpm zlib Support: libncurses5 Support: libaudit1 cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_8 Support: libstdc++%{gcc_version} # for boot.udev Support: udev Support: libxcrypt libzio Support: linux-glibc-devel make man netcfg Support: net-tools pam-modules patch perl-base sysvinit-tools Support: texinfo timezone util-linux libmount1 login Support: libgomp%{gcc_version} libuuid1 psmisc Support: terminfo-base update-alternatives pwdutils build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse # remove build-compare support to disable "same result" package dropping Support: build-compare # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif Keep: libaudit1 binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libpcre0 Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone libmpfr4 libcap2 Keep: gmp libgmp10 libgmpxx4 libmpc2 Keep: cpp46 gcc46 gcc46-ada libstdc++46 Keep: cpp45 gcc45 gcc45-ada libstdc++45 Keep: cpp44 gcc44 gcc44-ada libstdc++44 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel libcloog0 libppl9 libppl_c4 Keep: libpopt0 pkg-config libmount1 Keep: libacl1 libattr1 Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: yast2-qt:yast2-qt-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: yast2-branding-openSUSE Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream Prefer: libgio-2_0-0:gio-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: dummy-release Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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 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 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -python-setuptools Prefer: -kdenetwork3-InstantMessenger Prefer: -icc-profiles Prefer: libsocialweb:libsocialweb-branding-upstream Prefer: gnome-panel:gnome-panel-branding-upstream Prefer: vala Prefer: rubygem-rack-1_1 Prefer: wallpaper-branding-openSUSE # temporarly - already fix submitted Prefer: -kde3-kaffeine # kernel bug (coolo) Prefer: kernel-default-devel Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libffi%{gcc_version}-devel libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: libopenal0-soft openal-soft -lsb-buildenv Prefer: -libevent Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel Prefer: linux-glibc-devel Prefer: squid sysvinit Prefer: libpng14-compat-devel Prefer: -python3 -python3-gobject-devel -python3-gobject2-devel -x11-video-fglrxG02 -libpng12-0 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream Prefer: gnome-shell:mozilla-js20 Prefer: cogl-devel 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,mingetty,distribution-release,udev 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: libbonoboui:gnome-desktop Ignore: postfix:pcre,libpcre0 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: systemd:systemd-presets-branding Ignore: polkit:ConsoleKit 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: 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: 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: avalon-logkit:servlet 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: simias:mono(log4net) Ignore: zmd: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: 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: 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 # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 # no build dependencies Ignore: libksuseinstall1:yast2-packager Ignore: libksuseinstall1:zypper Ignore: libqca2:gpg2 Ignore: NetworkManager:wpa_supplicant Ignore: NetworkManager:dhcp-client %ifnarch ia64 s390 s390x Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif # We use always openjdk on openSUSE ! #%ifnarch ia64 s390 s390x Substitute: java2-devel-packages java-1_6_0-openjdk-devel #%else # %ifarch s390 s390x #Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives # %endif # %ifarch ia64 #Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives # %endif #%endif %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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1210 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %_with_aaa_base_malloc_debug 0 %suse_version 1210 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse %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} obs-build-20141024/configs/sl11.4.conf0000644000000000000000000006341012422424142017011 0ustar rootroot00000000000000%define gcc_version 45 %define opensuse_bs 1 Patterntype: rpm-md ymp %if "%_repository" == "images" Type: kiwi Repotype: none Patterntype: none Prefer: openSUSE-release %endif Substitute: kiwi-packagemanager:zypper zypper Substitute: kiwi-packagemanager:smart smart Substitute: kiwi-packagemanager:instsource kiwi-instsource cdrkit-cdrtools-compat syslinux kiwi-instsource-plugins-openSUSE-11-3 Substitute: kiwi-filesystem:ext3 e2fsprogs procps psmisc reiserfs Substitute: kiwi-filesystem:squashfs squashfs Substitute: kiwi-boot:isoboot kiwi-desc-isoboot module-init-tools elfutils squashfs fribidi gfxboot-devel gawk gfxboot gfxboot-devel grub hdparm hwinfo iproute2 kiwi-tools lvm2 make memtest86+ netcfg psmisc squashfs sysfsutils syslinux clicfs e2fsprogs Substitute: kiwi-boot:oemboot kiwi-desc-oemboot adaptec-firmware atftp bc bind-libs bind-utils bootsplash bootsplash-branding-openSUSE busybox bzip2 clicfs cryptsetup curl dhcpcd dialog e2fsprogs eject fbiterm file fribidi gettext-runtime gfxboot gfxboot-devel grub hwinfo kernel-default kernel-default-base kernel-desktop kexec-tools kiwi-tools lvm2 make module-init-tools netcfg net-tools parted pciutils psmisc squashfs sysconfig sysfsutils tar util-linux jing Substitute: kiwi-boot:netboot kiwi-desc-netboot kiwi-desc-xenboot ncurses-utils curl dhcpcd iputils nbd net-tools netcfg nfs-client parted grub mdadm Substitute: kiwi-boot:usbboot kiwi-desc-usbboot Substitute: kiwi-boot:vmxboot kiwi-desc-vmxboot Substitute: kiwi-boot:xenboot kiwi-desc-xenboot Preinstall: aaa_base acl attr bash coreutils diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libbz2-1 libgcc%{gcc_version} libxcrypt m4 libncurses5 pam Preinstall: permissions libreadline6 rpm sed tar zlib libselinux1 Preinstall: liblzma5 libcap2 libpcre0 Preinstall: libpopt0 libelf1 liblua5_1 Runscripts: aaa_base Order: libopenssl0_9_8:openssl-certs VMinstall: util-linux libmount1 perl-base libdb-4_8 libsepol1 libblkid1 libuuid1 ExportFilter: \.x86_64\.rpm$ x86_64 ExportFilter: \.ia64\.rpm$ ia64 ExportFilter: \.s390x\.rpm$ s390x ExportFilter: \.ppc64\.rpm$ ppc64 ExportFilter: \.ppc\.rpm$ ppc ExportFilter: \.i686\.rpm$ i686 ExportFilter: -ia32-.*\.rpm$ ExportFilter: -32bit-.*\.sparc64\.rpm$ ExportFilter: -64bit-.*\.sparcv9\.rpm$ ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64 ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9 ExportFilter: ^blocxx-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^boost-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^bzip2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^curl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^dbus-1-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^dbus-1-glib-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^e2fsprogs-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^expat-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^fontconfig-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^freetype2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc45-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc44-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^gcc43-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^glib2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^glibc-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^hal-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^hwinfo-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^icu-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^jpeg-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kdelibs3-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-default-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-desktop-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^kernel-pae-.*(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libidn-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libpng12-0-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libqt4-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libxcrypt-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libxml2-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^libzypp-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^openssl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^pcre-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^perl-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^perl-gettext-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^qt3-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^rpm-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^sysfsutils-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^wireless-tools-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libICE-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libSM-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libX11-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXau-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXdmcp-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXext-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXfixes-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXmu-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libXrender-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libfontenc-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libs-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-libxcb-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^xorg-x11-server-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-core-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-hardware-detection-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-perl-bindings-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-pkg-bindings-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-qt-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^yast2-xml-(?:debuginfo|debugsource)-.*\.rpm$ . ExportFilter: ^zlib-(?:debuginfo|debugsource)-.*\.rpm$ . #ExportFilter: -debuginfo-.*\.rpm$ #ExportFilter: -debugsource-.*\.rpm$ ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64 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: ^wine.*\.i586.rpm$ . x86_64 #Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} #Required: gettext-runtime glibc libtool perl rpm zlib libmpfr4 #Required: libncurses5 libgmp10 libgmpxx4 libppl9 libppl_c4 Required: gcc gcc%{gcc_version} glibc perl rpm tar patch Support: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Support: gettext-runtime glibc libtool perl rpm zlib Support: libncurses5 Support: libaudit1 cpio cpp cpp%{gcc_version} cracklib cvs Support: file findutils gawk gdbm gettext-tools Support: glibc-devel glibc-locale groff gzip info less Support: libbz2-devel libdb-4_8 Support: libstdc++%{gcc_version} # for boot.udev Support: udev Support: libxcrypt libzio Support: linux-glibc-devel make man netcfg Support: net-tools pam-modules patch perl-base sysvinit-tools Support: texinfo timezone util-linux libmount1 login Support: libgomp%{gcc_version} libuuid1 psmisc Support: terminfo-base update-alternatives pwdutils build-mkbaselibs Support: brp-check-suse post-build-checks rpmlint-Factory Keep: brp-check-suse # remove build-compare support to disable "same result" package dropping Support: build-compare # testing deltas (only for O:F for now!) #Support: build-mkdrpms deltarpm %ifarch ia64 Support: libunwind libunwind-devel %endif Keep: libaudit1 binutils bzip2 cpio cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel glibc-locale gzip libada libpcre0 Keep: libunwind libunwind-devel libzio make pam-devel pam-modules Keep: patch perl-base perl rcs timezone libmpfr4 libcap2 Keep: gmp libgmp10 libgmpxx4 libmpc2 Keep: cpp45 gcc45 gcc45-ada libstdc++45 Keep: cpp44 gcc44 gcc44-ada libstdc++44 Keep: cpp43 gcc43 gcc43-ada libstdc++43 Keep: cpp42 gcc42 gcc42-ada libstdc++42 Keep: cpp41 gcc41 gcc41-ada libstdc++41 Keep: java-1_6_0-openjdk java-1_6_0-openjdk-devel libcloog0 libppl9 libppl_c4 Keep: libpopt0 pkg-config libmount1 Prefer: -suse-build-key Prefer: krb5 krb5-devel Prefer: krb5-mini-devel:krb5-mini Prefer: libreadline5 Prefer: libdb_java-4_8 libicu Prefer: cracklib-dict-small postfix Prefer: jta libpng fam mozilla mozilla-nss Prefer: unixODBC libsoup glitz Prefer: gnome-panel desktop-data-openSUSE gnome2-SuSE Prefer: mono-nunit gecko-sharp2 Prefer: apache2-prefork Mesa openmotif-libs ghostscript-mini ghostscript-library Prefer: gtk-sharp2 glib-sharp2 glade-sharp2 Prefer: libzypp-zmd-backend novell-NLDAPsdk zaptel-kmp-default Prefer: hbedv-dazuko-kmp-default dazuko-kmp-default vmware-wkstnmods-kmp-default Prefer: virtualbox-kmp-default virtualbox-host-kmp-default preload-kmp-default Prefer: libstdc++%{gcc_version} libgcc%{gcc_version} Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit %ifarch s390x Prefer: -libstdc++41 %endif Prefer: libstroke # for symbol syslog (syslogd is best as it has the least dependencies) Prefer: syslogd Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 inkscape:gtkmm24 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: gjdoc:antlr-bootstrap Prefer: tomboy:gconf-sharp2 tomboy:gnome-sharp2 Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: glitz-32bit:Mesa-32bit Prefer: poppler-tools Prefer: banshee:banshee-engine-gst helix-banshee:helix-banshee-engine-gst Prefer: banshee-1:banshee-1-client-classic Prefer: java-1_5_0-ibm:java-1_5_0-ibm-alsa Prefer: java-1_5_0-ibm:java-1_5_0-ibm-fonts Prefer: java-1_6_0-ibm:java-1_6_0-ibm-fonts Prefer: microcode_ctl:kernel-default Prefer: notification-daemon Prefer: pkg-config gtk-doc wlan-kmp-default lua-libs Prefer: gnu-jaf classpathx-mail avahi-compat-mDNSResponder yast2-control-center-qt Prefer: vim-normal myspell-american wine Prefer: eclipse-platform eclipse-scripts Prefer: yast2-theme-openSUSE Prefer: amarok:amarok-xine Prefer: kdenetwork3-vnc:tightvnc Prefer: libgweather0 jessie ndesk-dbus ndesk-dbus-glib tomcat6-jsp-2_1-api tomcat6-servlet-2_5-api Prefer: icewm-lite Prefer: patterns-openSUSE-GNOME-cd:banshee Prefer: yast2-ncurses-pkg Prefer: monodevelop: mono-addins Prefer: ant-trax:saxon Prefer: gnome-session:gnome-session-branding-openSUSE Prefer: gnome-session:gconf2-branding-openSUSE Prefer: bundle-lang-gnome:gnome-session-branding-openSUSE Prefer: texlive-xmltex texlive-tools texlive-jadetex Prefer: mono-web:mono-data-sqlite Prefer: gnome-games:gnuchess Prefer: glchess:gnuchess Prefer: libreoffice:libreoffice-branding-upstream Prefer: gimp:gimp-branding-upstream Prefer: libesd-devel:esound Prefer: libesd0:esound-daemon Prefer: package-lists-openSUSE-KDE-cd: esound-daemon Prefer: glib2:glib2-branding-upstream Prefer: libglib-2_0-0:glib2-branding-upstream Prefer: kdelibs4:kdelibs4-branding-upstream Prefer: kdebase4-workspace:kdebase4-workspace-branding-upstream Prefer: kdelibs4-branding:kdelibs4-branding-upstream Prefer: PackageKit:PackageKit-branding-upstream Prefer: mysql-connector-java:java-1_5_0-gcj-compat Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api Prefer: rhino:xmlbeans-mini Prefer: ghostscript-devel:ghostscript-library Prefer: gdm:gdm-branding-upstream Prefer: rpcbind log4j-mini eclipse-source Prefer: mx4j:log4j-mini Prefer: podsleuth:sg3_utils Prefer: libcdio_cdda0 libcdio_paranoia0 Prefer: mozilla-xulrunner191 Prefer: mozilla-xulrunner191-32bit Prefer: boo tog-pegasus Prefer: kde4-kupdateapplet:kde4-kupdateapplet-zypp Prefer: kdebase4-workspace:kdebase4-workspace-ksysguardd Prefer: ant:xerces-j2 Prefer: dhcp-client:dhcp Prefer: beagle-index:preload-kmp-default Prefer: dummy-release Prefer: -bundle-lang-kde-de -bundle-lang-kde-en -bundle-lang-kde-es Prefer: -bundle-lang-kde-fr -bundle-lang-kde-pt 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 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 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 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: -zmd -libreoffice -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -NX -xaw3dd -db43 Prefer: -xerces-j2-xml-resolver -xerces-j2-xml-apis Prefer: -vmware-player Prefer: libgcc%{gcc_version} libgcc%{gcc_version}-32bit libgcc%{gcc_version}-64bit Prefer: libgcc%{gcc_version}-x86 libffi%{gcc_version} libffi%{gcc_version}-devel libgcj_bc%{gcc_version} Prefer: libgomp%{gcc_version} libgomp%{gcc_version}-32bit libgomp%{gcc_version}-64bit Prefer: libmudflap%{gcc_version} libmudflap%{gcc_version}-32bit libmudflap%{gcc_version}-64bit Prefer: libobjc%{gcc_version} libgfortran%{gcc_version} Prefer: -libnetpbm -libcdio7-mini -libiso9660-5-mini -libiso9660-7-mini -libcdio10-mini -libcdio12-mini Prefer: -libcdio-mini -faac-mini Prefer: -seamonkey Prefer: -libdb-4_4-devel -libdb-4_5-devel -libevoldap-2_4-2 Conflict: ghostscript-library:ghostscript-mini Conflict: ghostscript-fonts-std:ghostscript-mini Prefer: libopenal0-soft openal-soft -lsb-buildenv Prefer: -libevent Prefer: gnu-crypto libusb-compat-devel Prefer: libusb-0_1-4 Prefer: CASA_auth_token_svc:xerces-j2 Prefer: libreoffice:xerces-j2 Prefer: k3b:libdvdread4 Prefer: glibc-devel Prefer: -libpcap -java-1_7_0-icedtea-devel -libiniparser -loudmouth -libkonq4 -libnetcdf-4 Prefer: NetworkManager:dhcp-client Prefer: kdebase3-SuSE:kdebase3 Prefer: kde4-kdm:kde4-kdm-branding-upstream Prefer: kdm:kdm-branding-upstream Prefer: pcre-tools Prefer: libpopt0 Prefer: -apache2-mod_perl -otrs -qa_apache_testsuite -ctcs2 Prefer: libgnome-keyring-devel Prefer: linux-glibc-devel Prefer: squid sysvinit Prefer: libpng14-compat-devel Prefer: -python3 -x11-video-fglrxG02 -libpng12-0 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: libxfce4ui:libxfce4ui-branding-upstream Prefer: libgarcon-1-0:libgarcon-branding-upstream 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,mingetty,distribution-release,udev 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: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key 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: libbonoboui:gnome-desktop Ignore: postfix:pcre,libpcre0 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-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 Ignore: yast2-x11:sax2-libsax-perl Ignore: yast2-network:yast2-inetd Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs 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: libgcc:glibc-32bit Ignore: libgcc41:glibc-32bit Ignore: libgcc42:glibc-32bit Ignore: libgcc43:glibc-32bit Ignore: libgcc44:glibc-32bit Ignore: libgcc45: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: 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: avalon-logkit:servlet 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: simias:mono(log4net) Ignore: zmd: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: 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: phonon:phonon-backend Ignore: openwbem-devel Ignore: MozillaFirefox:MozillaFirefox-branding Ignore: yast2: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: pulseaudio:kernel Ignore: transmission-common:transmission-ui Ignore: mutter-moblin:moblin-branding Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd Ignore: opensc:pinentry Ignore: gpg2:pinentry Ignore: NetworkManager:dhcp # sysconfig requires it at runtime, not buildtime Ignore: sysconfig:dbus-1 Ignore: sysconfig:procps Ignore: sysconfig:iproute2 # no build dependencies Ignore: libksuseinstall1:yast2-packager Ignore: libksuseinstall1:zypper Ignore: libqca2:gpg2 Ignore: NetworkManager:wpa_supplicant Ignore: NetworkManager:dhcp-client %ifnarch ia64 s390 s390x Prefer: java-1_6_0-openjdk java-1_6_0-openjdk-devel %endif %ifarch s390 s390x Prefer: java-1_6_0-ibm java-1_6_0-ibm-devel %endif %ifarch ia64 Prefer: java-1_6_0-bea java-1_6_0-bea-devel %endif Prefer: -java-1_5_0-gcj-compat-devel %ifarch %ix86 x86_64 Prefer: -java-1_5_0-ibm-devel %endif # We use always openjdk on openSUSE ! #%ifnarch ia64 s390 s390x Substitute: java2-devel-packages java-1_6_0-openjdk-devel #%else # %ifarch s390 s390x #Substitute: java2-devel-packages java-1_6_0-ibm-devel unzip update-alternatives # %endif # %ifarch ia64 #Substitute: java2-devel-packages java-1_6_0-bea-devel unzip update-alternatives # %endif #%endif %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 Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0 Optflags: x86_64 -fmessage-length=0 Optflags: ppc -fmessage-length=0 Optflags: ppc64 -fmessage-length=0 Optflags: ia64 -fmessage-length=0 Optflags: s390 -fmessage-length=0 Optflags: s390x -fmessage-length=0 Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables %define suse_version 1140 Macros: %insserv_prereq insserv sed %fillup_prereq fillup coreutils grep diffutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %kernel_module_package_buildreq module-init-tools kernel-syms %kernel_module_package_buildreqs module-init-tools kernel-syms %suse_version 1140 %sles_version 0 %ul_version 0 %do_profiling 1 %opensuse_bs 1 %_vendor suse %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} obs-build-20141024/configs/sl8.2.conf0000644000000000000000000001771112422424142016740 0ustar rootroot00000000000000Repotype: suse Preinstall: aaa_base acl attr bash coreutils db devs diffutils Preinstall: filesystem fillup glibc grep insserv libacl libattr Preinstall: libgcc libxcrypt m4 ncurses pam permissions readline Preinstall: rpm sed shadow tar zlib Runscripts: aaa_base VMinstall: util-linux perl Required: autoconf automake binutils bzip2 cracklib db gcc gdbm gettext Required: glibc libtool ncurses pam perl rpm zlib Support: bind9-utils bison cpio cpp cvs cyrus-sasl2 e2fsprogs Support: file findutils flex gawk gdbm-devel glibc-devel glibc-locale Support: gpm groff gzip info kbd less libstdc++ make man mktemp Support: modutils ncurses-devel net-tools netcfg pam-devel pam-modules Support: patch ps rcs sendmail strace syslogd sysvinit texinfo Support: timezone unzip util-linux vim zlib-devel Keep: binutils bzip2 cpp cracklib file findutils fpk gawk gcc Keep: gcc-c++ gdbm glibc-devel glibc-locale gnat gnat-runtime Keep: gzip libstdc++ make mktemp pam-devel pam-modules patch perl Keep: popt rcs shlibs5 timezone Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release Ignore: gettext-devel:libgcj,libstdc++-devel Ignore: pwdutils:openslp Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: simias:mono(log4net) Ignore: zmd: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: 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 %ifnarch s390 s390x ia64 Substitute: java2-devel-packages java2 java2-jre jpackage-utils %else %ifarch ia64 s390 Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils %endif %ifarch s390x Substitute: java2-devel-packages IBMJava2-SDK jpackage-utils glibc-32bit baselibs-32bit %endif %endif Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc Substitute: glibc-devel-32bit glibc-devel-64bit glibc-64bit %else Substitute: glibc-devel-32bit %endif %endif %ifarch %ix86 Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-um %endif %ifarch ia64 Substitute: kernel-binary-packages kernel-default kernel-sn2 kernel-64k-pagesize %endif %ifarch x86_64 Substitute: kernel-binary-packages kernel-default kernel-smp %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-pmac64_32bit kernel-power3 kernel-smp kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-iseries64 kernel-pseries64 kernel-pmac64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-s390x %endif Macros: %insserv_prereq insserv %fillup_prereq fillup fileutils %suseconfig_fonts_prereq perl aaa_base %install_info_prereq info %suse_version 820 %sles_version 0 %ul_version 0 %jds_version 0 %do_profiling 1 %_vendor suse obs-build-20141024/Makefile0000644000000000000000000000556112422424142015233 0ustar rootroot00000000000000VERSION=0.1 SCM=$(shell if test -d .svn; then echo svn; elif test -d .git; then echo git; fi) DATE=$(shell date +%Y%m%d%H%M) BUILD=build INITVM_ARCH=$(shell bash -c '. common_functions ; build_host_arch; echo $$BUILD_INITVM_ARCH') ifeq ($(SCM),svn) SVNVER=_SVN$(shell LANG=C svnversion .) endif prefix=/usr bindir=$(prefix)/bin datadir=$(prefix)/share libdir=$(prefix)/lib pkglibdir=$(libdir)/$(BUILD) mandir=$(datadir)/man man1dir=$(mandir)/man1 sysconfdir=/etc DESTDIR= all: install: install -m755 -d \ $(DESTDIR)$(pkglibdir)/configs \ $(DESTDIR)$(pkglibdir)/Build \ $(DESTDIR)$(pkglibdir)/emulator \ $(DESTDIR)$(bindir) \ $(DESTDIR)$(man1dir) install -m755 \ build \ vc \ createrpmdeps \ order \ expanddeps \ computeblocklists \ extractbuild \ getbinaryid \ killchroot \ queryconfig \ common_functions \ init_buildsystem \ substitutedeps \ debtransform \ debtransformbz2 \ debtransformzip \ mkbaselibs \ mkdrpms \ createzyppdeps \ createarchdeps \ createdebdeps \ createrepomddeps \ createyastdeps \ changelog2spec \ spec2changelog \ download \ spec_add_patch \ spectool \ signdummy \ unrpm \ $(DESTDIR)$(pkglibdir) install -m755 emulator/emulator.sh $(DESTDIR)$(pkglibdir)/emulator/ install -m644 Build/*.pm $(DESTDIR)$(pkglibdir)/Build install -m644 qemu-reg $(DESTDIR)$(pkglibdir) install -m644 build-vm build-vm-* $(DESTDIR)$(pkglibdir) install -m644 build-recipe build-recipe-* $(DESTDIR)$(pkglibdir) install -m644 build-pkg build-pkg-* $(DESTDIR)$(pkglibdir) install -m644 *.pm baselibs_global*.conf lxc.conf $(DESTDIR)$(pkglibdir) install -m644 configs/* $(DESTDIR)$(pkglibdir)/configs install -m644 build.1 $(DESTDIR)$(man1dir) install -m644 vc.1 $(DESTDIR)$(man1dir) install -m644 unrpm.1 $(DESTDIR)$(man1dir) ln -sf $(pkglibdir)/build $(DESTDIR)$(bindir)/build ln -sf $(pkglibdir)/vc $(DESTDIR)$(bindir)/buildvc ln -sf $(pkglibdir)/unrpm $(DESTDIR)$(bindir)/unrpm # Allow initvm to be packaged seperately from the rest of build. This # is useful because it is distributed as a static binary package (e.g. # build-initvm-static) whereas the build scripts package is noarch. initvm: initvm.c $(CC) -o $@.$(INITVM_ARCH) -static $(CFLAGS) initvm.c initvm-all: initvm initvm-build: initvm initvm-install: initvm install -m755 -d $(DESTDIR)$(pkglibdir) install -m755 initvm.$(INITVM_ARCH) $(DESTDIR)$(pkglibdir)/initvm.$(INITVM_ARCH) dist: ifeq ($(SCM),svn) rm -rf $(BUILD)-$(VERSION)$(SVNVER) svn export . $(BUILD)-$(VERSION)$(SVNVER) tar --force-local -cjf $(BUILD)-$(VERSION)$(SVNVER).tar.bz2 $(BUILD)-$(VERSION)$(SVNVER) rm -rf $(BUILD)-$(VERSION)$(SVNVER) else ifeq ($(SCM),git) git archive --prefix=$(BUILD)-$(VERSION)_git$(DATE)/ HEAD| bzip2 > $(BUILD)-$(VERSION)_git$(DATE).tar.bz2 endif endif obs-build-20141024/getbinaryid0000755000000000000000000000344112422424142016015 0ustar rootroot00000000000000#!/usr/bin/perl ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Build; use strict; my $createmeta; my $manifest; while (@ARGV) { if ($ARGV[0] eq '--createmeta') { shift @ARGV; $createmeta = 1; next; } if ($ARGV[0] eq '--manifest') { shift @ARGV; $manifest = shift @ARGV; next; } last; } my @files; if ($manifest) { if ($manifest eq '-') { @files = ; } else { local *F; open(F, '<', $manifest) || die("$manifest: $!\n"); @files = ; close F; } chomp @files; } push @files, @ARGV; for my $file (@files) { my $sig = Build::queryhdrmd5($file); die("$file: no signature available\n") unless $sig; if ($createmeta) { local *F; my $mf = $file; $mf =~ s/\.[^\.]*$//; $mf .= ".meta"; open(F, '>', $mf) || die("$mf: $!\n"); print F "$sig sigmd5\n"; close(F) || die("$mf: $!\n"); } else { print "$sig\n"; } } obs-build-20141024/build-pkg0000644000000000000000000000441212422424142015366 0ustar rootroot00000000000000# # binary package specific functions for the build script # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ for i in rpm deb arch ; do . "$BUILD_DIR/build-pkg-$i" done pkg_initdb() { pkg_initdb_$PSUF "$@" } pkg_get_installed() { pkg_get_installed_$PSUF "$@" } pkg_set_packageid() { pkg_set_packageid_$PSUF "$@" } pkg_install() { pkg_install_$PSUF "$@" } pkg_verify_installed() { pkg_verify_installed_$PSUF "$@" } pkg_erase() { pkg_erase_$PSUF "$@" } pkg_cumulate() { pkg_cumulate_$PSUF "$@" } pkg_finalize() { pkg_finalize_$PSUF "$@" } pkg_preinstall() { pkg_preinstall_$PSUF "$@" } pkg_runscripts() { pkg_runscripts_$PSUF "$@" } pkg_autodetect_type() { if test -n "$PREINSTALL_IMAGE" ; then echo "cannot autodetect build type when using a preinstall image" >&2 cleanup_and_exit 1 fi PSUF= test -e $BUILD_ROOT/.init_b_cache/rpms/rpm.rpm && PSUF=rpm test -e $BUILD_ROOT/.init_b_cache/rpms/dpkg.deb && PSUF=deb test -e $BUILD_ROOT/.init_b_cache/rpms/pacman.arch && PSUF=arch if test -z "$PSUF" ; then echo "could not autodetect package type" >&2 cleanup_and_exit 1 fi } pkg_set_type() { PSUF=`queryconfig binarytype --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH"` test "$PSUF" = UNDEFINED && PSUF= case "$PSUF" in rpm|deb|arch) ;; '') pkg_autodetect_type ;; *) echo "unknown package type '$PSUF'" >&2 cleanup_and_exit 1 ;; esac } obs-build-20141024/createrepomddeps0000755000000000000000000002764612422424142017057 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use strict; use XML::Parser; use Data::Dumper; use Getopt::Long; use Build::Rpm; use Digest::MD5 qw(md5 md5_hex md5_base64); use File::Path qw(mkpath rmtree); use File::Basename; use LWP::UserAgent; use URI; Getopt::Long::Configure("no_ignore_case"); my @parent = []; my @primaryfiles = (); my @packages = (); my $baseurl; # current url my $opt_dump; my $opt_old; my $opt_nosrc; my $opt_bc; my $opt_zypp; my $cachedir = "/var/cache/build"; my $old_seen = (); my $repomdparser = { repomd => { data => { _start => \&repomd_handle_data_start, _end => \&repomd_handle_data_end, location => { _start => \&repomd_handle_location, }, size => { _text => \&repomd_handle_size, }, }, }, }; my $primaryparser = { metadata => { 'package' => { _start => \&primary_handle_package_start, _end => \&primary_handle_package_end, name => { _text => \&primary_collect_text, _end => \&primary_store_text }, arch => { _text => \&primary_collect_text, _end => \&primary_store_text }, version => { _start => \&primary_handle_version }, 'time' => { _start => \&primary_handle_time }, format => { 'rpm:provides' => { 'rpm:entry' => { _start => \&primary_handle_package_provides }, }, 'rpm:requires' => { 'rpm:entry' => { _start => \&primary_handle_package_requires }, }, 'rpm:conflicts' => { 'rpm:entry' => { _start => \&primary_handle_package_conflicts }, }, 'rpm:obsoletes' => { 'rpm:entry' => { _start => \&primary_handle_package_obsoletes }, }, 'rpm:buildhost' => { _text => \&primary_collect_text, _end => \&primary_store_text }, 'rpm:sourcerpm' => { _text => \&primary_collect_text, _end => \&primary_store_text }, ### currently commented out, as we ignore file provides in createrpmdeps # file => { # _start => \&primary_handle_file_start, # _text => \&primary_collect_text, # _end => \&primary_handle_file_end # }, }, location => { _start => \&primary_handle_package_location }, }, }, }; # [ [tag, \%], ... ] my @cursor = (); my %datafile; sub repomd_handle_data_start { my $p = shift; my $el = shift; my $attr = map_attrs(@_); %datafile = (); if($attr->{'type'} ne 'primary') { pop @cursor; } } sub repomd_handle_data_end { my $p = shift; my $el = shift; push @primaryfiles, { %datafile } if exists $datafile{'location'}; } sub repomd_handle_location { my $p = shift; my $el = shift; my $attr = map_attrs(@_); $datafile{'location'} = $attr->{'href'} if defined $attr->{'href'}; } sub repomd_handle_size { my $p = shift; my $el = shift; $datafile{'size'} = $el; } sub generic_handle_start { my $p = shift; my $el = shift; if(exists $cursor[-1]->[1]->{$el}) { my $h = $cursor[-1]->[1]->{$el}; push @cursor, [$el, $h]; if(exists $h->{'_start'}) { &{$h->{'_start'}}($p, $el, @_); } } } sub generic_handle_char { my $p = shift; my $text = shift; my $h = $cursor[-1]->[1]; if(exists $h->{'_text'}) { &{$h->{'_text'}}($p, $text); } } sub generic_handle_end { my $p = shift; my $el = shift; if(!defined $cursor[-1]->[0] || $cursor[-1]->[0] eq $el) { my $h = $cursor[-1]->[1]; if(exists $h->{'_end'}) { &{$h->{'_end'}}($p, $el); } pop @cursor; } } sub map_attrs { my %h; while(@_) { my $k = shift; $h{$k} = shift; } return \%h; } # expat does not guarantee that character data doesn't get split up # between multiple calls my $textbuf = ''; sub primary_collect_text { my $p = shift; my $text = shift; $textbuf .= $text; } sub primary_store_text { my $p = shift; my $el = shift; $packages[-1]->{$cursor[-1]->[0]} = $textbuf; $textbuf = ''; } sub primary_handle_package_start { my $p = shift; my $el = shift; my $attr = map_attrs(@_); push @packages, { type => $attr->{'type'}, baseurl => $baseurl }; } sub primary_handle_package_end { my $p = shift; my $el = shift; if($opt_bc) { printasbuildcachefile(@packages); shift @packages; } elsif ($opt_old) { foreach my $pkg (@packages) { my $arch = $pkg->{'arch'}; $arch = 'src' if $pkg->{'arch'} eq 'nosrc'; next if ($arch eq 'src' && $opt_nosrc); if (exists($old_seen->{$pkg->{'name'}}->{$arch})) { my $pv = $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'}; my $rv = $pkg->{'ver'}.'-'.$pkg->{'rel'}; my $vv = Build::Rpm::verscmp($pv, $rv, 0); if ($vv < 0) { print $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'}."\n"; $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; } else { print $pkg->{'baseurl'} . $pkg->{'location'}."\n"; } } else { $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; } } shift @packages; } } sub primary_handle_version { my $p = shift; my $el = shift; my $attr = map_attrs(@_); $packages[-1]->{'ver'} = $attr->{'ver'}; $packages[-1]->{'rel'} = $attr->{'rel'}; } sub primary_handle_time { my $p = shift; my $el = shift; my $attr = map_attrs(@_); $packages[-1]->{'filetime'} = $attr->{'file'}; $packages[-1]->{'buildtime'} = $attr->{'build'}; } sub primary_handle_package_location { my $p = shift; my $el = shift; my $attr = map_attrs(@_); $packages[-1]->{'location'} = $attr->{'href'}; } sub primary_handle_file_start { my $p = shift; my $el = shift; my $attr = map_attrs(@_); if(exists $attr->{'type'}) { pop @cursor; } } sub primary_handle_file_end { my $p = shift; my $text = shift; primary_handle_package_deps('provides', 'name', $textbuf); $textbuf = ''; } my %flagmap = ( EQ => '=', LE => '<=', GE => '>=', GT => '>', LT => '<', NE => '!=', ); sub primary_handle_package_deps { my $dep = shift; my $attr = map_attrs(@_); if(exists $attr->{'flags'}) { if(!exists($flagmap{$attr->{'flags'}})) { print STDERR "bogus relation: ", $attr->{'flags'}, "\n"; return; } $attr->{'flags'} = $flagmap{$attr->{'flags'}}; } return if($attr->{'name'} =~ /^rpmlib\(/); push @{$packages[-1]->{$dep}}, $attr; } sub primary_handle_package_conflicts { shift;shift; primary_handle_package_deps('conflicts', @_); } sub primary_handle_package_obsoletes { shift;shift; primary_handle_package_deps('obsoletes', @_); } sub primary_handle_package_requires { shift;shift; primary_handle_package_deps('requires', @_); } sub primary_handle_package_provides { shift;shift; primary_handle_package_deps('provides', @_); } sub deps2string { return join(' ', map { my $s = $_->{'name'}; if(exists $_->{'flags'}) { $s .= ' '.$_->{'flags'}.' '; $s .= $_->{'epoch'}.':' if(exists $_->{'epoch'} && $_->{'epoch'} != 0); $s .= $_->{'ver'}; $s .= '-'.$_->{'rel'} if exists $_->{'rel'}; } $s } @_); } sub printasbuildcachefile(@) { foreach my $pkg (@_) { next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; my $id = sprintf("%s.%s-%d/%d/%d: ", $pkg->{'name'}, $pkg->{'arch'}, $pkg->{'buildtime'}, $pkg->{'filetime'}, 0); print "F:".$id. $pkg->{'baseurl'} . $pkg->{'location'} . "\n"; my $deps = deps2string(@{$pkg->{'provides'}}); print "P:$id$deps\n"; $deps = deps2string(@{$pkg->{'requires'}}); print "R:$id$deps\n"; if (@{$pkg->{'conflicts'} || []}) { $deps = deps2string(@{$pkg->{'conflicts'}}); print "C:$id$deps\n"; } if (@{$pkg->{'obsoletes'} || []}) { $deps = deps2string(@{$pkg->{'obsoletes'}}); print "O:$id$deps\n"; } my $tag = sprintf("%s-%s-%s %s", $pkg->{'name'}, $pkg->{'ver'}, $pkg->{'rel'}, # $pkg->{'rpm:buildhost'}, $pkg->{'buildtime'}); print "I:$id$tag\n"; } } sub getmetadata { my $url = $_[0]; my $dir = $_[1]; my $dest = $dir . "repodata"; mkpath($dest); system($INC[0].'/download', $dest, $url . "repodata/repomd.xml"); } ### main GetOptions ( "nosrc" => \$opt_nosrc, "dump" => \$opt_dump, "old" => \$opt_old, "zypp=s" => \$opt_zypp, "cachedir=s" => \$cachedir, ) or exit(1); $opt_bc = 1 unless ($opt_dump || $opt_old); my $p = new XML::Parser( Handlers => { Start => \&generic_handle_start, End => \&generic_handle_end, Char => \&generic_handle_char }); #my $url = '/mounts/mirror/SuSE/ftp.suse.com/pub/suse/update/10.1/'; for my $url (@ARGV) { my $dir; if ($opt_zypp) { $dir = $opt_zypp; $dir .= '/' unless $dir =~ /\/$/; $baseurl = $url; $baseurl .= '/' unless $baseurl =~ /\/$/; } elsif ($url =~ /^(?:ftps?|https?):\/\/([^\/]*)\/?/) { my $repoid = md5_hex($url); $dir = "$cachedir/$repoid/"; $baseurl = $url; $baseurl .= '/' unless $baseurl =~ /\/$/; getmetadata($baseurl, $dir); } else { $dir = $url; $dir .= '/' unless $dir =~ /\/$/; $baseurl = $dir; } @primaryfiles = (); @cursor = ([undef, $repomdparser]); die("zypp repo $url is not up to date, please refresh first\n") unless -s "${dir}repodata/repomd.xml"; $p->parsefile("${dir}repodata/repomd.xml"); # print Dumper(\@primaryfiles); for my $f (@primaryfiles) { @cursor = ([undef, $primaryparser]); my $u = "$dir$f->{'location'}"; if ($] > 5.007) { require Encode; utf8::downgrade($u); } my $cached; if (-e $u) { $cached = 1; $cached = 0 if exists($f->{'size'}) && $f->{'size'} != (-s _); $cached = 0 if !exists($f->{'size'}) && $u !~ /[0-9a-f]{32}-primary/; } if (!$cached) { die("zypp repo $url is not up to date, please refresh first\n") if $opt_zypp; if ($url =~ /^(?:ftps?|https?):\/\/([^\/]*)\/?/) { if (system($INC[0].'/download', $dir . "repodata/", $baseurl . "repodata/" . basename($u))) { die("download failed\n"); } } else { die("inconsistent repodata in $url\n"); } } my $fh; open($fh, '<', $u) or die "Error opening $u: $!\n"; if ($u =~ /\.gz$/) { use IO::Uncompress::Gunzip qw($GunzipError); $fh = new IO::Uncompress::Gunzip $fh or die "Error opening $u: $GunzipError\n"; } $p->parse($fh); close($fh); } } if ($opt_dump) { print Data::Dumper->Dump([\@packages], ['packages']); # caution: excessive memory consumption! } #if($rpmdepdump) { # my %amap = map { $_ => 1 } @archs; # my $packages = do $rpmdepdump or die $!; # # foreach my $pkg (@$packages) { # next if exists $packs{$pkg->{'name'}}; # next unless exists $amap{$pkg->{'arch'}}; # next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; # next if $pkg->{'location'} =~ /\.(?:patch|delta)\.rpm$/; # # my $pa = $pkg->{'name'}.'.'.$pkg->{'arch'}; # $packs{$pkg->{'name'}} = $pa; # $fn{$pa} = $pkg->{'baseurl'}.$pkg->{'location'}; # my $r = {}; # # flags and version ignored # my @pr = map { $_->{'name'} } @{$pkg->{'provides'}}; # my @re = map { $_->{'name'} } @{$pkg->{'requires'}}; # $r->{'provides'} = \@pr; # $r->{'requires'} = \@re; # $repo{$pkg->{'name'}} = $r; # } #} obs-build-20141024/createyastdeps0000755000000000000000000000632312422424142016536 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Build; use Build::Susetags; use Getopt::Long; use strict; Getopt::Long::Configure("no_ignore_case"); sub print_pkg($) { my $pkg = shift; return if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; my $id = sprintf("%s.%s-%d/%d/%d: ", $pkg->{'name'}, $pkg->{'arch'}, $pkg->{'buildtime'}, 0, 0); print "F:$id$pkg->{'baseurl'}suse/$pkg->{'arch'}/$pkg->{'location'}\n"; print "P:$id$pkg->{'provides'}\n"; print "R:$id$pkg->{'requires'}\n"; print "C:$id$pkg->{'conflicts'}\n" if $pkg->{'conflicts'}; print "O:$id$pkg->{'obsoletes'}\n" if $pkg->{'obsoletes'}; my $tag = sprintf("%s-%s-%s %s", $pkg->{'name'}, $pkg->{'version'}, $pkg->{'release'}, # $pkg->{'rpm:buildhost'}, $pkg->{'buildtime'}); print "I:$id$tag\n"; } sub callback { my ($pkg, $url) = @_; $pkg->{'provides'} = [] unless exists $pkg->{'provides'}; # add self provides (rpm3 misses that) my $n = $pkg->{'name'}; if(substr($pkg->{'arch'}, -3) ne 'src' && !grep(/^\Q$n\E( =.*)?$/,@{$pkg->{'provides'}})) { push @{$pkg->{'provides'}}, sprintf("%s = %s-%s", $pkg->{'name'}, $pkg->{'version'}, $pkg->{'release'}); } $pkg->{'provides'} = join(' ', @{$pkg->{'provides'}}); $pkg->{'requires'} = join(' ', @{$pkg->{'requires'}}) if $pkg->{'requires'}; $pkg->{'conflicts'} = join(' ', @{$pkg->{'conflicts'}}) if $pkg->{'conflicts'}; $pkg->{'obsoletes'} = join(' ', @{$pkg->{'obsoletes'}}) if $pkg->{'obsoletes'}; $pkg->{'baseurl'} = $url; my @data = split(' ', $pkg->{'location'}); # multi cd support hack my $num = $data[0]; if($pkg->{'baseurl'} =~ /1\/$/ && $num ne '0') { $pkg->{'baseurl'} =~ s/1\/$/$num\//; } $pkg->{'location'} = $data[1]; print_pkg($pkg); return 0; } ### main my $opt_zypp; my $cachedir = "/var/cache/build"; GetOptions ("zypp=s" => \$opt_zypp, "cachedir=s" => \$cachedir) or exit(1); for my $url (@ARGV) { my $dir = $opt_zypp ? $opt_zypp : $url; $dir .= '/' unless $dir =~ /\/$/; $url .= '/' unless $url =~ /\/$/; # XXX: use descrdir from content file my $packages = $dir.'suse/setup/descr/packages'; my @order = (); my $pkgs = Build::Susetags::parse($packages, { 'Loc' => 'location', 'Prv' => 'provides', 'Req' => 'requires', 'Con' => 'conflicts', 'Obs' => 'obsoletes', 'Tim' => 'buildtime' }, { cb => \&callback, data => $url }); } obs-build-20141024/vc0000755000000000000000000000671312422424142014131 0ustar rootroot00000000000000#!/bin/bash # use this script to edit *.changes files # # based on changelog edit script from xqf # # Copyright (C) 2002 Ludwig Nussel # Copyright (C) 2009 SUSE Linux Products GmbH, Nuernberg, Germany. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 or 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA shopt -s nullglob if [ -z "$mailaddr" ]; then domain=`dnsdomainname` [ -z "$domain" ] && domain=localhost mailaddr="$USER@$domain" fi EDITOR=${EDITOR:-vim} date=`LC_ALL=POSIX TZ=UTC date` if ! which mktemp > /dev/null 2>&1; then echo "mktemp is required for this script to work" exit 1 fi while [ -n "$1" ]; do case "$1" in -m) if [ $just_edit ]; then echo "You cannot use -m and -e together!" exit 1 fi message="$2" shift 2 ;; -e) if [ -n "${message}" ]; then echo "You cannot use -m and -e together!" exit 1 fi just_edit=true shift 1 ;; --help) echo "Usage: $0 [-m MESSAGE|-e] [filename[.changes]|path [file_with_comment]]" echo echo "Will use '$mailaddr' for changelog entries" echo echo "Options:" echo " -m MESSAGE add MESSAGE to changes (not open an editor)" echo " -e just open changes (cannot be used with -m)" exit 0 ;; *) break ;; esac done changelog="$1" content="$2" pkgpath= if [ -n "$changelog" -a -d "$changelog" ]; then pkgpath="$changelog/" changelog='' fi if [ -n "$changelog" ]; then if [ "${changelog%.changes}" = "$changelog" ]; then changelog="$changelog.changes" fi else changelog=($pkgpath*.changes) if [ "${#changelog[@]}" -eq 1 ]; then changelog="$changelog" elif [ -n "$changelog" ]; then echo "Choose one of ${changelog[@]}" exit 1 fi fi if [ -z "$changelog" ]; then changelog=($pkgpath*.spec) if [ "${#changelog[@]}" -eq 1 ]; then changelog=${changelog%.spec}.changes elif [ -n "$changelog" ]; then echo "Choose one of ${changelog[@]}" exit 1 fi fi if [ -z "$changelog" ]; then echo "no .changes and no .spec file found" exit 1 fi if [ ! -e "$changelog" ]; then touch $changelog fi tmpfile=`mktemp -q $changelog.vctmp.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file, exiting..." exit 1 fi trap "rm -f \"$tmpfile\"" EXIT set +e { if [ ! $just_edit ]; then echo "-------------------------------------------------------------------" echo "$date - $mailaddr" echo fi if [ -n "$message" ]; then echo -e "- $message" echo elif [ -n "$content" ]; then cat "$content" echo elif [ ! $just_edit ]; then echo "- " echo fi cat $changelog } >> "$tmpfile" if [ -z "$message" ]; then set -- `md5sum "$tmpfile"` chksum="$1" $EDITOR +4 "$tmpfile" set -- `md5sum "$tmpfile"` if [ -z "$content" -a "$chksum" == "$1" ]; then echo "no changes made" exit 0 fi fi mode=`stat -c "%a" "$changelog"` user=`stat -c "%u:%g" "$changelog"` mv "$tmpfile" "$changelog" chmod $mode "$changelog" chown $user "$changelog" obs-build-20141024/debtransformbz20000755000000000000000000000172112422424142016617 0ustar rootroot00000000000000#! /bin/bash ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ if test $# -ne 2; then exit 1 fi bz="$1" tar="$2" bzcat "$bz" | gzip -f - >"$tar" || exit 1 exit 0 obs-build-20141024/build-recipe-spec0000644000000000000000000002114312422424142017004 0ustar rootroot00000000000000# # spec specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ recipe_setup_spec() { TOPDIR=`$CHROOT su -c "rpm --eval '%_topdir'" - $BUILD_USER` if test -z "$TOPDIR"; then echo "Error: TOPDIR empty" cleanup_and_exit 1 fi 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 chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" mkdir -p $BUILD_ROOT$TOPDIR/SOURCES cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ } recipe_prepare_spec() { args=() if test -n "$RELEASE"; then args=(--release "$RELEASE") fi # fixup specfile CHANGELOGARGS= test -n "$CHANGELOG" -a -f "$BUILD_ROOT/.build-changelog" && CHANGELOGARGS="--changelog $BUILD_ROOT/.build-changelog" substitutedeps "${args[@]}" --root "$BUILD_ROOT" --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" $CHANGELOGARGS "$BUILD_ROOT$TOPDIR/SOURCES/$RECIPEFILE" "$BUILD_ROOT/.spec.new" || cleanup_and_exit 1 # fix rpmrc if we are compiling for i686 test -f $BUILD_ROOT/usr/lib/rpm/rpmrc_i586 && mv $BUILD_ROOT/usr/lib/rpm/rpmrc_i586 $BUILD_ROOT/usr/lib/rpm/rpmrc if test -e $BUILD_ROOT/usr/lib/rpm/rpmrc -a "$BUILD_ARCH" != "${BUILD_ARCH#i686}" ; then 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 # extract macros from configuration queryconfig rawmacros --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" > $BUILD_ROOT/root/.rpmmacros if test -n "$BUILD_DEBUG" ; then echo ' %prep %{?!__debug_package:%{?_build_create_debug:%?_build_insert_debug_package}}%%prep %package %{?!__debug_package:%{?_build_create_debug:%?_build_insert_debug_package}}%%package %_build_insert_debug_package \ %global __debug_package 1 \ %undefine _enable_debug_packages \ %debug_package ' >> $BUILD_ROOT/root/.rpmmacros fi if test -n "$BUILD_JOBS" ; then cat >> $BUILD_ROOT/root/.rpmmacros <<-EOF %jobs $BUILD_JOBS %_smp_mflags -j$BUILD_JOBS EOF fi test $BUILD_USER = abuild && cp -p $BUILD_ROOT/root/.rpmmacros $BUILD_ROOT/home/abuild/.rpmmacros # extract optflags from configuration queryconfig --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" optflags ${BUILD_DEBUG:+debug} > $BUILD_ROOT/root/.rpmrc test $BUILD_USER = abuild && cp -p $BUILD_ROOT/root/.rpmrc $BUILD_ROOT/home/abuild/.rpmrc if test -z "$ABUILD_TARGET"; then ABUILD_TARGET=$(queryconfig target --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" ) test -z "$ABUILD_TARGET" || echo "build target is $ABUILD_TARGET" fi # report specfile changes if test -f $BUILD_ROOT/.spec.new ; then if ! cmp -s $BUILD_ROOT$TOPDIR/SOURCES/$RECIPEFILE $BUILD_ROOT/.spec.new ; then echo ----------------------------------------------------------------- echo "I have the following modifications for $RECIPEFILE:" sed -e "/^%changelog/q" $BUILD_ROOT$TOPDIR/SOURCES/$RECIPEFILE > $BUILD_ROOT/.spec.t1 sed -e "/^%changelog/q" $BUILD_ROOT/.spec.new > $BUILD_ROOT/.spec.t2 diff $BUILD_ROOT/.spec.t1 $BUILD_ROOT/.spec.t2 rm -f $BUILD_ROOT/.spec.t1 $BUILD_ROOT/.spec.t2 mv $BUILD_ROOT/.spec.new $BUILD_ROOT$TOPDIR/SOURCES/$RECIPEFILE else rm -f $BUILD_ROOT/.spec.new fi fi } recipe_build_spec() { test -z "$BUILD_RPM_BUILD_STAGE" && BUILD_RPM_BUILD_STAGE=-ba rpmbuild=rpmbuild test -x $BUILD_ROOT/usr/bin/rpmbuild || rpmbuild=rpm # XXX: move _srcdefattr to macro file? rpmbopts=("$BUILD_RPM_BUILD_STAGE" "--define" "_srcdefattr (-,root,root)") if test "$DO_CHECKS" != true ; then rpmbopts[${#rpmbopts[@]}]="--nocheck" fi if test "$rpmbuild" == "rpmbuild" ; then # use only --nosignature for rpm v4 rpmbopts[${#rpmbopts[@]}]="--nosignature" fi if test -n "$ABUILD_TARGET" ; then rpmbopts[${#rpmbopts[@]}]="--target=$ABUILD_TARGET" fi if test -n "$BUILD_DEBUG" ; then rpmbopts[${#rpmbopts[@]}]='--define' rpmbopts[${#rpmbopts[@]}]="_build_create_debug 1" fi if test -n "$DISTURL" ; then rpmbopts[${#rpmbopts[@]}]='--define' rpmbopts[${#rpmbopts[@]}]="disturl $DISTURL" fi if test -n "$RSYNCDONE" ; then rpmbopts[${#rpmbopts[@]}]='--define' rpmbopts[${#rpmbopts[@]}]="RSYNCDONE 1" fi # 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 chmod 755 $BUILD_ROOT/.build.command check_exit if test -n "$RUN_SHELL"; then $CHROOT su - else $CHROOT su -c /.build.command - $BUILD_USER < /dev/null && BUILD_SUCCEEDED=true fi } recipe_resultdirs_spec() { echo RPMS SRPMS } recipe_unpack_srcrpm() { test -n "$LIST_STATE" || echo "processing src rpm $SRCDIR/$RECIPEFILE ..." MYSRCDIR="$BUILD_ROOT/.build-srcdir" rm -rf "$MYSRCDIR" mkdir -p "$MYSRCDIR" cd $MYSRCDIR || cleanup_and_exit 1 $BUILD_DIR/unrpm -q $SRCDIR/$RECIPEFILE || { echo "could not unpack $RECIPEFILE." cleanup_and_exit 1 } for RECIPEFILE in *.spec ; do : ; done } # post build functions... move somewhere else? recipe_check_file_owners() { echo "... checking for files with abuild user/group" BADFILE= while read un gn fn ; do if test "$un" = abuild -o "$gn" = abuild -o "$un" = ${ABUILD_UID} -o "$gn" = ${ABUILD_GID} ; then echo " $un $gn $fn" BADFILE=true fi done < <(rpm -qp --qf '[%{FILEUSERNAME} %{FILEGROUPNAME} %{FILENAMES}\n]' $RPMS) if test -n "$BADFILE" ; then echo "please fix your filelist (e.g. add defattr)" cleanup_and_exit 1 fi } recipe_run_rpmlint() { if ! test -x "$BUILD_ROOT/opt/testing/bin/rpmlint" ; then return fi LINT_RPM_FILE_LIST=($(find $BUILD_ROOT/$TOPDIR/RPMS \ \( -name "*-debuginfo-*" -o -name "*-debugsource-*" \ -o -name "*-32bit-*" -o -name "*-64bit-*" \ -o -name "*-x86-*" -o -name "*-ia32-*" \) -prune \ -o -type f -name '*.rpm' -print)) SRPM_FILE_LIST=($(find $BUILD_ROOT/$TOPDIR/SRPMS -type f -name "*.rpm")) echo echo "RPMLINT report:" echo "===============" rpmlint_logfile=$TOPDIR/OTHER/rpmlint.log rm -f "$BUILD_ROOT$rpmlint_logfile" ret=0 mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null $CHROOT su -s /opt/testing/bin/rpmlint "$BUILD_USER" -- \ --info ${LINT_RPM_FILE_LIST[*]#$BUILD_ROOT} \ ${SRPM_FILE_LIST[*]#$BUILD_ROOT} > "$BUILD_ROOT$rpmlint_logfile" || ret=1 cat "$BUILD_ROOT$rpmlint_logfile" echo umount -n $BUILD_ROOT/proc 2>/dev/null || true if test "$ret" = 1 ; then cleanup_and_exit 1 fi } recipe_compare_oldpackages() { if test -x "$BUILD_ROOT/usr/lib/build/same-build-result.sh" ; then echo "... comparing built packages with the former built" mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null if $CHROOT /usr/lib/build/same-build-result.sh /.build.oldpackages "$TOPDIR/RPMS" "$TOPDIR/SRPMS"; then $CHROOT touch /.build/.same_result_marker # XXX: dirty build service hack. fix bs_worker. Search for # 'same_result_marker' for traces of a first try to get rid of this if test -n "$REASON" -a -n "$DISTURL" ; then exitcode=2 fi fi umount -n $BUILD_ROOT/proc 2>/dev/null || true fi } recipe_create_deltarpms() { if test -x "$BUILD_ROOT/usr/bin/makedeltarpm" -a -x $BUILD_ROOT/usr/lib/build/mkdrpms ; then echo "... creating delta rpms" ds=("$BUILD_ROOT/$TOPDIR"/RPMS/* "$BUILD_ROOT$TOPDIR/SRPMS") $CHROOT /usr/lib/build/mkdrpms /.build.oldpackages "${ds[@]#$BUILD_ROOT}" fi } obs-build-20141024/build-vm-kvm0000644000000000000000000001575512422424142016036 0ustar rootroot00000000000000# # kvm/qemu specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ kvm_bin=/usr/bin/qemu-kvm kvm_console=ttyS0 # assume virtio support by default kvm_device=virtio-blk-pci kvm_options= kvm_check_ppc970() { if ! grep -q -E '(kvm_rma_count.*kvm_hpt_count)|(kvm_hpt_count.*kvm_rma_count)' /proc/cmdline ; then echo "put kvm_rma_count= or kvm_hpt_count=<> to your boot options" cleanup_and_exit 3 fi } kvm_check_hugetlb() { if ! grep -q "$HUGETLBFSPATH" /proc/mounts ; then echo "hugetlbfs is not mounted to $HUGETLBFSPATH" cleanup_and_exit 3 fi local HUGETLBBLKSIZE=$(stat -f -c "%S" "$HUGETLBFSPATH") HUGETLBBLKSIZE=$(( ${HUGETLBBLKSIZE:-0} / 1024 )) if test "$HUGETLBBLKSIZE" -lt 1 -o ! -e "/sys/kernel/mm/hugepages/hugepages-${HUGETLBBLKSIZE}kB" ; then echo "could not determine hugetlbfs block size" cleanup_and_exit 3 fi local PAGES_FREE=$(cat /sys/kernel/mm/hugepages/hugepages-${HUGETLBBLKSIZE}kB/free_hugepages) local PAGES_REQ=$(( ${VM_MEMSIZE:-64} * 1024 / $HUGETLBBLKSIZE )) if test "$PAGES_FREE" -lt "$PAGES_REQ" ; then echo "expected $PAGES_REQ to be available (have $PAGES_FREE)" echo "please adjust nr_hugepages" cleanup_and_exit 3 fi } vm_verify_options_kvm() { vm_kernel= vm_initrd= # overwrite some options for specific host architectures case `uname -m` in armv7l) kvm_bin="/usr/bin/qemu-system-arm" kvm_console=ttyAMA0 kvm_options="-enable-kvm -M vexpress-a15 -dtb /boot/a15-guest.dtb -cpu cortex-a15" vm_kernel=/boot/zImage vm_initrd=/boot/initrd # prefer the guest kernel/initrd test -e /boot/zImage.guest && vm_kernel=/boot/zImage.guest test -e /boot/initrd.guest && vm_initrd=/boot/initrd.guest kvm_device=virtio-blk-device ;; aarch64) kvm_bin="/usr/bin/qemu-system-aarch64" kvm_console=ttyAMA0 kvm_options="-enable-kvm -M virt -cpu host" vm_kernel=/boot/Image vm_initrd=/boot/initrd # prefer the guest kernel/initrd test -e /boot/Image.guest && vm_kernel=/boot/Image.guest test -e /boot/initrd.guest && vm_initrd=/boot/initrd.guest kvm_device=virtio-blk-device ;; ppc|ppcle|ppc64|ppc64le) kvm_bin="/usr/bin/qemu-system-ppc64" kvm_console=hvc0 kvm_options="-enable-kvm -M pseries" grep -q PPC970MP /proc/cpuinfo && kvm_check_ppc970 vm_kernel=/boot/vmlinux vm_initrd=/boot/initrd if test "$BUILD_ARCH" = ppc64le -a -e /boot/vmlinuxle ; then vm_kernel=/boot/vmlinuxle vm_initrd=/boot/initrdle fi grep -q "pSeries" /proc/cpuinfo && kvm_device=scsi-hd # no virtio on pSeries grep -q "PowerNV" /proc/cpuinfo || kvm_device=scsi-hd # no virtio on ppc != power7 yet ;; s390|s390x) kvm_bin="/usr/bin/qemu-system-s390x" kvm_options="-enable-kvm" kvm_console=hvc0 vm_kernel=/boot/image vm_initrd=/boot/initrd kvm_device=virtio-blk-ccw ;; esac # check if we can run kvm if ! test -r /dev/kvm -a -x "$kvm_bin" ; then echo "host does not support kvm" echo "either the kvm kernel-module is not loaded or kvm is not installed or hardware virtualization is deactivated in the BIOS." cleanup_and_exit 3 fi # check hugepages test -n "$HUGETLBFSPATH" -a "$VM_TYPE" = kvm && kvm_check_hugetlb # set kernel test -n "$VM_KERNEL" && vm_kernel="$VM_KERNEL" test -z "$vm_kernel" && vm_kernel=/boot/vmlinuz # set initrd test -n "$VM_INITRD" && vm_initrd="$VM_INITRD" if test -z "$vm_initrd" ; then # find a nice default if test -e "/boot/initrd-build" ; then vm_initrd="/boot/initrd-build" elif test -e "/boot/initrd-virtio" ; then vm_initrd="/boot/initrd-virtio" else vm_initrd="/boot/initrd" kvm_device=ide-hd # use /etc/sysconfig/kernel as indication if we have virtio if test -e /etc/sysconfig/kernel ; then local im=$(INITRD_MODULES=; . /etc/sysconfig/kernel; echo "$INITRD_MODULES") if test "$im" != "${im/virtio/}" ; then kvm_device=virtio-blk-pci fi fi fi fi case $kvm_device in virtio*) qemu_rootdev=/dev/disk/by-id/virtio-0 VM_SWAPDEV=/dev/disk/by-id/virtio-1 ;; *) qemu_rootdev=/dev/sda VM_SWAPDEV=/dev/sdb ;; esac } vm_startup_kvm() { qemu_bin="$kvm_bin" qemu_args=(-drive file="$VM_IMAGE",if=none,id=disk,serial=0,cache=unsafe -device "$kvm_device",drive=disk) if test -n "$VM_SWAP" ; then qemu_args=("${qemu_args[@]}" -drive file="$VM_SWAP",if=none,id=swap,serial=1,cache=unsafe -device "$kvm_device",drive=swap) fi if test -n "$BUILD_JOBS" -a "$icecream" = 0 -a -z "$BUILD_THREADS" ; then qemu_args=("${qemu_args[@]}" "-smp" "$BUILD_JOBS") elif test -n "$BUILD_JOBS" -a -n "$BUILD_THREADS" ; then qemu_args=("${qemu_args[@]}" "-smp" "$BUILD_JOBS,threads=$BUILD_THREADS") fi if test "$VM_TYPE" = kvm ; then test "$kvm_console" != ttyAMA0 && kvm_options="$kvm_options -cpu host" test -n "$HUGETLBFSPATH" && kvm_options="$kvm_options -mem-prealloc -mem-path $HUGETLBFSPATH" fi set -- $qemu_bin -no-reboot -nographic -vga none -net none $kvm_options \ -kernel $vm_kernel \ -initrd $vm_initrd \ -append "root=$qemu_rootdev panic=1 quiet no-kvmclock nmi_watchdog=0 rw rd.driver.pre=binfmt_misc elevator=noop console=$kvm_console init=$vm_init_script" \ ${VM_MEMSIZE:+-m $VM_MEMSIZE} \ "${qemu_args[@]}" if test "$PERSONALITY" != 0 ; then # have to switch back to PER_LINUX to make qemu work set -- linux64 "$@" fi export QEMU_AUDIO_DRV=none # we do not want to have sound inside the VMs echo "$@" "$@" } vm_kill_kvm() { if ! fuser -k -TERM "$VM_IMAGE" ; then echo "could not kill build in $VM_IMAGE" cleanup_and_exit 1 fi } vm_fixup_kvm() { # check if we will use a kernel from the build root, in this case # we assume the kernel does virtio if test -z "$VM_KERNEL" -a -e "$BUILD_ROOT/.build.kernel.$VM_TYPE" ; then # ide-hd is the non-virtio default if test "$kvm_device" = ide-hd ; then kvm_device=virtio-blk-pci qemu_rootdev=/dev/disk/by-id/virtio-0 VM_SWAPDEV=/dev/disk/by-id/virtio-1 fi fi } vm_attach_root_kvm() { : } vm_attach_swap_kvm() { : } vm_detach_root_kvm() { : } vm_detach_swap_kvm() { : } vm_cleanup_kvm() { : } obs-build-20141024/spectool0000755000000000000000000002523412422424142015350 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ =head1 spectool spectool - tool to work with rpm spec files =head1 SYNOPSIS spectool [options] specfiles... =head1 OPTIONS =over 4 =item B<--help> display help as manpage =item B<--dist>=I set distribution, e.g. "11.1-i586" or path to config =item B<--archpath>=I compatible architecture separated by colon, e.g. C. Autotected if missing. =item B<--configdir>=I path to config files if B<--dist> didn't specify a full path =item B<--define>=I =item B<--with>=I =item B<--without>=I same meaning as in rpmbuild =item B<--tag>=I print tag from spec file, e.g. C. Regexp is also possible, e.g. C =item B<--sources> print package source files. If a file C or C.sources> is present verify the checksums against that. =over 4 =item B<--update> update the checksums =item B<--download> download missing sources =back =back =head1 DESCRIPTION The B<--sources> option allows to manage a sources file in a way similar to Fedora. The sources file lists the check sums and file names of the binary files specified in the spec file. B<--sources> without further options compares the check sums of all files and prints a report consisting of a character that describes the status of the file and the file name. Meaning of the characters is as follows: =over 4 =item B<.> check sum matches =item B check sum broken =item B file is missing, checksum known. Can be verified after download =item B<-> file is missing and checksum unknown =item B<_> file is present but checksum unknown =item B text file, will be skipped for check sums =item B check sum known but not referenced from spec file =back Additionally specifying B<--update> recomputes all check sums and updates the sources file. With B<--download> all missing files are downloaded if the spec file has an http or ftp url. =head2 FORMAT OF THE SOURCES FILE Lines of the form =head2 NAME OF THE SOURCES FILE A file named C is preferred if present for compatibility with Fedora. It only contains md5 sums. If that file is not present the C<.spec> suffix of the spec file is replaced with C<.sources> and the this name used as sources file (e.g. C -> C). In this file sha1 is preferred. Also, the name of the algorithm is prepended with colon to the check sum. =cut my $builddir; BEGIN { $builddir = ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); unshift @INC, $builddir; } use strict; use Build; use Pod::Usage; use Getopt::Long; Getopt::Long::Configure("no_ignore_case"); my (@opt_showtag, $opt_sources, $opt_update, $opt_download); sub parse_depfile; my ($dist, $rpmdeps, $archs, $configdir, $useusedforbuild); my %options; GetOptions ( \%options, "help" => sub { pod2usage(-exitstatus => 0, -verbose => 2) }, "dist=s" => \$dist, "archpath=s" => \$archs, "configdir=s" => \$configdir, "define=s" => sub { Build::define($_[1]) }, "with=s" => sub { Build::define("_with_".$_[1]." --with-".$_[1]) }, "without=s" => sub { Build::define("_without_".$_[1]." --without-".$_[1]) }, "tag=s" => \@opt_showtag, "sources" => \$opt_sources, "update" => \$opt_update, "download" => \$opt_download, "download-force", "download-recompress=s", "download-outdir=s", "download-compare=s", "download-delete-identical", ) or pod2usage(1); pod2usage(1) unless @ARGV; my $ua; my @specs = @ARGV; die "--download must be used together with --sources\n" if ($opt_download && !$opt_sources); die "--update must be used together with --sources\n" if ($opt_update && !$opt_sources); $options{'download-recompress'} ||= 'auto'; $options{'download-outdir'}.='/' if ($options{'download-outdir'} && $options{'download-outdir'} !~ /\/$/); $options{'download-outdir'} ||= ''; $options{'download-compare'}.='/' if ($options{'download-compare'} && $options{'download-compare'} !~ /\/$/); $options{'download-compare'} ||= ''; my @archs; if (!defined $archs) { use POSIX qw/uname/; my %archmap = qw/x86_64 i686 i686 i586 i586 i486 i486 i386/; my @a = uname(); push @archs, $a[4]; while(exists $archmap{$archs[-1]}) { push @archs, $archmap{$archs[-1]}; } } else { @archs = split(':', $archs); } push @archs, 'noarch' unless grep {$_ eq 'noarch'} @archs; unless ($dist) { $dist = 'spectool'; # $dist = `rpm -q --qf '%{DISTRIBUTION}' rpm 2>/dev/null`; # $dist = Build::dist_canon($dist||'', $archs[0]); } if($dist !~ /\// && !defined $configdir) { if($0 =~ /^\//) { use File::Basename qw/dirname/; $configdir = dirname($0).'/configs'; undef $configdir unless -e $configdir.'/sl11.3.conf'; } else { $configdir = $builddir.'/configs'; undef $configdir unless -e $configdir.'/sl11.3.conf'; } if(!defined $configdir) { print STDERR "please specify config dir\n"; } } ####################################################################### # param: array to fill, spec file # return: file name sub read_sources_digests($$) { my $files = shift; my $spec = shift; my $srcfile = 'sources'; if (! -r $srcfile) { $srcfile = $spec; $srcfile =~ s/spec$/sources/; } if (open (F, '<', $srcfile)) { while() { chomp; my ($sum, $file) = split(/ +/, $_, 2); $files->{$file} = $sum; } close F; } return $srcfile; } # param: file, oldsum # return: newsum or undef if match sub check_sum($$) { my $file = shift; my $oldsum = shift || 'sha1:'; my $sum; my $type = 'md5:'; if($oldsum =~ /^(\S+:)/) { $type = $1; } else { $oldsum = $type.$oldsum; } if ($type eq 'md5:') { $sum = $type.`md5sum $file` || die "md5sum failed\n"; } elsif ($type eq 'sha1:') { $sum = $type.`sha1sum $file` || die "sha1sum failed\n"; } else { die "unsupported digest type '$type'\n"; } $sum =~ s/ .*//s; if($sum ne $oldsum) { return $sum; } return undef; } sub download($$) { my ($url, $dest) = @_; 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 return 0 unless $retry && $res->previous; warn "retrying $url\n"; } return 1; } ####################################################################### my $ret = 0; for my $spec (@specs) { my $cf = Build::read_config_dist($dist, $archs[0], $configdir); my $parsed = Build::parse($cf, $spec); if (!defined $parsed) { die "can't parse $spec\n"; } for my $tag (@opt_showtag) { if($tag =~ /^\/(.+)\/$/) { my $expr = $1; for my $t (keys %$parsed) { if ($t =~ $expr) { push @opt_showtag, $t; } } } else { if(exists $parsed->{lc $tag}) { print $tag, ": "; my $v = $parsed->{lc $tag}; $v = join(' ', @$v) if (ref $v eq 'ARRAY'); print $v, "\n"; } else { print STDERR "$tag does not exist\n"; } } } if ($opt_sources) { my $files = {}; my $srcfile = read_sources_digests($files, $spec); if ($opt_download) { unless ($ua) { use LWP::UserAgent; $ua = LWP::UserAgent->new( agent => "openSUSE build service", env_proxy => 1, timeout => 42); } for my $t (keys %$parsed) { next unless ($t =~ /^(?:source|patch)\d*/); my $url = $parsed->{$t}; next unless $url =~ /^(?:https?|ftp):\/\//; my $file = $url; $file =~ s/.*\///; my $src = $options{'download-compare'}.$file; next if -e $src && !($options{'download-force'} || $options{'download-delete-identical'}); print "Downloading $file...\n"; my $dest = $options{'download-outdir'}.$file; print "$url -> $dest\n"; if(!download($url, $dest) && $options{'download-recompress'} ne 'no') { # TODO # let's see if the file was recompressed if($url =~ s/\.bz2$/.gz/ && $file =~ s/\.bz2$/.gz/ && !download($url, $dest)) { if(system('bznew', $dest) == 0) { print STDERR "Used $file and recompressed to bz2 instead\n"; } else { unlink $dest; } } else { print STDERR "Downloading $file failed\n"; } } if ($options{'download-delete-identical'} && $options{'download-outdir'} && system('cmp', '-s', $dest, $src) == 0) { unlink($dest); } } } if ($opt_update) { my $changed; for my $t (keys %$parsed) { next unless ($t =~ /^(?:source|patch)\d*/); my $file = $parsed->{$t}; $file =~ s/.*\///; next unless -B $file; my $sum = check_sum($file, ($files->{$file} || ($srcfile eq 'sources'?'md5:':'sha1:'))); if($sum) { print STDERR "update $file\n"; $files->{$file} = $sum; $changed = 1; } } if($changed) { if(open(F, '>', $srcfile)) { for my $file (keys %$files) { $files->{$file} =~ s/^md5:// if $srcfile eq 'sources'; print F $files->{$file}, ' ', $file, "\n"; } close F; } } } else { for my $t (keys %$parsed) { next unless ($t =~ /^(?:source|patch)\d*/); my $file = $parsed->{$t}; $file =~ s/.*\///; if (!exists $files->{$file}) { if (! -e $file) { print '- '; } elsif (-B $file) { print '_ '; } else { print 't '; } } elsif (! -e $file) { print 'd '; delete $files->{$file}; } else { my $sum = check_sum($file, $files->{$file}); if($sum) { print '! '; $ret = 1; } else { print '. '; } delete $files->{$file}; } print $parsed->{$t}, "\n"; } for my $file (keys %$files) { print "? $file\n"; } } } } exit $ret; obs-build-20141024/Build/0000755000000000000000000000000012422424142014623 5ustar rootroot00000000000000obs-build-20141024/Build/LiveBuild.pm0000644000000000000000000000542712422424142017050 0ustar rootroot00000000000000################################################################ # # Author: Jan Blunck # # This file is part of build. # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################# package Build::LiveBuild; use strict; eval { require Archive::Tar; }; *Archive::Tar::new = sub {die("Archive::Tar is not available\n")} unless defined &Archive::Tar::new; sub filter { my ($content) = @_; return '' unless defined $content; $content =~ s/^#.*$//mg; $content =~ s/^!.*$//mg; $content =~ s/^\s*//mg; return $content; } sub parse_package_list { my ($content) = @_; my @packages = split /\n/, filter($content); return @packages; }; sub parse_archive { my ($content) = @_; my @repos; my @lines = split /\n/, filter($content); for (@lines) { next if /^deb-src /; die("bad path using not obs:/ URL: $_\n") unless $_ =~ /^deb\s+obs:\/\/\/?([^\s\/]+)\/([^\s\/]+)\/?\s+.*$/; push @repos, "$1/$2"; } return @repos; } sub unify { my %h = map {$_ => 1} @_; return grep(delete($h{$_}), @_); } sub parse { my ($config, $filename, @args) = @_; my $ret = {}; # check that filename is a tar my $tar = Archive::Tar->new; unless($tar->read($filename)) { warn("$filename: " . $tar->error . "\n"); $ret->{'error'} = "$filename: " . $tar->error; return $ret; } # check that directory layout matches live-build directory structure for my $file ($tar->list_files('')) { next unless $file =~ /^(.*\/)?config\/archives\/.*\.list.*/; warn("$filename: config/archives/*.list* files not allowed!\n"); $ret->{'error'} = "$filename: config/archives/*.list* files not allowed!"; return $ret; } # always require the list of packages required by live-boot for # bootstrapping the target distribution image (e.g. with debootstrap) my @packages = ( 'live-build-desc' ); for my $file ($tar->list_files('')) { next unless $file =~ /^(.*\/)?config\/package-lists\/.*\.list.*/; push @packages, parse_package_list($tar->get_content($file)); } ($ret->{'name'} = $filename) =~ s/\.[^.]+$//; $ret->{'deps'} = [ unify(@packages) ]; return $ret; } 1; obs-build-20141024/Build/Zypp.pm0000644000000000000000000000372512422424142016132 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Zypp; use strict; our $root = ''; sub parsecfg { my ($repocfg, $reponame) = @_; local *REPO; open(REPO, '<', "$root/etc/zypp/repos.d/$repocfg.repo") or return undef; my $name; my $repo = {}; while () { chomp; if (/^\[(.+)\]/) { $name = $1 if !defined($reponame) || $reponame eq $1; } elsif (defined($name)) { my ($key, $value) = split(/=/, $_, 2); $repo->{$key} = $value if defined $key; } } close(REPO); return undef unless defined $name; $repo->{'description'} = $repo->{'name'} if exists $repo->{'name'}; $repo->{'name'} = $name; return $repo; } sub parserepo($) { my ($reponame) = @_; # first try matching .repo file if (-e "$root/etc/zypp/repos.d/$reponame.repo") { my $repo = parsecfg($reponame, $reponame); return $repo if $repo; } # then try all repo files my @r; if (opendir(D, "$root/etc/zypp/repos.d")) { @r = grep {!/^\./ && /.repo$/} readdir(D); closedir D; } for my $r (sort @r) { my $repo = parsecfg($r, $reponame); return $repo if $repo; } die("could not find repo '$reponame'\n"); } 1; # vim: sw=2 obs-build-20141024/Build/Susetags.pm0000644000000000000000000000464312422424142016766 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Susetags; use strict; use warnings; use Data::Dumper; sub addpkg { my ($pkgs, $cur, $order, $cb, $cbdata, @arches) = @_; if (defined($cur) && (!@arches || grep { /$cur->{'arch'}/ } @arches)) { if(!$cb || &$cb($cur, $cbdata)) { my $k = "$cur->{'name'}-$cur->{'version'}-$cur->{'release'}-$cur->{'arch'}"; $pkgs->{$k} = $cur; # keep order (or should we use Tie::IxHash?) push @{$order}, $k if defined $order; } } } sub parse { # if @arches is empty take all arches my ($file, $tmap, $order, @arches) = @_; my $cb; my $cbdata; if (ref $order eq 'HASH') { my $d = $order; $order = undef; $cb = $d->{'cb'} if (exists $d->{'cb'}); $cbdata = $d->{'data'} if (exists $d->{'data'}); } # if @arches is empty take all arches my @needed = keys %$tmap; my $r = '(' . join('|', @needed) . '|Pkg):\s*(.*)'; if (!open(F, '<', $file)) { if (!open(F, '-|', "gzip", "-dc", $file.'.gz')) { die "$file: $!"; } } my $cur; my $pkgs = {}; while () { chomp; next unless $_ =~ /([\+=])$r/; my ($multi, $tag, $data) = ($1, $2, $3); if ($multi eq '+') { while () { chomp; last if $_ =~ /-$tag/; push @{$cur->{$tmap->{$tag}}}, $_; } } elsif ($tag eq 'Pkg') { addpkg($pkgs, $cur, $order, $cb, $cbdata, @arches); $cur = {}; ($cur->{'name'}, $cur->{'version'}, $cur->{'release'}, $cur->{'arch'}) = split(' ', $data); } else { $cur->{$tmap->{$tag}} = $data; } } addpkg($pkgs, $cur, $order, $cb, $cbdata, @arches); close(F); return $pkgs; } 1; obs-build-20141024/Build/Deb.pm0000644000000000000000000002356412422424142015665 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Deb; use strict; use Digest::MD5; my $have_zlib; eval { require Compress::Zlib; $have_zlib = 1; }; sub basearch { my ($arch) = @_; $arch = 'all' if !defined($arch) || $arch eq 'noarch'; $arch = 'i386' if $arch =~ /^i[456]86$/; $arch = 'powerpc' if $arch eq 'ppc'; $arch = 'ppc64el' if $arch eq 'ppc64le'; $arch = 'amd64' if $arch eq 'x86_64'; $arch = 'armel' if $arch =~ /^armv[4567]l$/; $arch = 'armhf' if $arch eq 'armv7hl'; return $arch; } sub parse { my ($bconf, $fn) = @_; my $ret; my @control; # get arch and os from macros my ($arch, $os); for (@{$bconf->{'macros'} || []}) { $arch = $1 if /^%define _target_cpu (\S+)/; $os = $1 if /^%define _target_os (\S+)/; } # map to debian names $os = 'linux' if !defined($os); $arch = basearch($arch); if (ref($fn) eq 'ARRAY') { @control = @$fn; } else { local *F; if (!open(F, '<', $fn)) { $ret->{'error'} = "$fn: $!"; return $ret; } @control = ; close F; chomp @control; } splice(@control, 0, 3) if @control > 3 && $control[0] =~ /^-----BEGIN/; my $name; my $version; my @deps; while (@control) { my $c = shift @control; last if $c eq ''; # new paragraph my ($tag, $data) = split(':', $c, 2); next unless defined $data; $tag = uc($tag); while (@control && $control[0] =~ /^\s/) { $data .= "\n".substr(shift @control, 1); } $data =~ s/^\s+//s; $data =~ s/\s+$//s; if ($tag eq 'VERSION') { $version = $data; $version =~ s/-[^-]+$//; } elsif ($tag eq 'SOURCE') { $name = $data; } elsif ($tag eq 'BUILD-DEPENDS' || $tag eq 'BUILD-CONFLICTS' || $tag eq 'BUILD-IGNORE' || $tag eq 'BUILD-DEPENDS-INDEP') { my @d = split(/\s*,\s*/, $data); for my $d (@d) { my @alts = split('\s*\|\s*', $d); my @needed; for my $c (@alts) { if ($c =~ /^(.*?)\s*\[(.*)\]$/) { $c = $1; my $isneg = 0; my $bad; for my $q (split('[\s,]', $2)) { $isneg = 1 if $q =~ s/^\!//; $bad = 1 if !defined($bad) && !$isneg; if ($isneg) { if ($q eq $arch || $q eq 'any' || $q eq "$os-$arch" || $q eq "$os-any") { $bad = 1; last; } } elsif ($q eq $arch || $q eq 'any' || $q eq "$os-$arch" || $q eq "$os-any") { $bad = 0; } } push @needed, $c unless $bad; } else { push @needed, $c; } } next unless @needed; $d = join(' | ', @needed); $d =~ s/ \(([^\)]*)\)/ $1/g; $d =~ s/>>/>/g; $d =~ s/<{'name'} = $name; $ret->{'version'} = $version; $ret->{'deps'} = \@deps; return $ret; } sub ungzip { my $data = shift; local (*TMP, *TMP2); open(TMP, "+>", undef) or die("could not open tmpfile\n"); syswrite TMP, $data; sysseek(TMP, 0, 0); my $pid = open(TMP2, "-|"); die("fork: $!\n") unless defined $pid; if (!$pid) { open(STDIN, "<&TMP"); exec 'gunzip'; die("gunzip: $!\n"); } close(TMP); $data = ''; 1 while sysread(TMP2, $data, 1024, length($data)) > 0; close(TMP2) || die("gunzip error"); return $data; } sub debq { my ($fn) = @_; local *DEBF; if (ref($fn) eq 'GLOB') { *DEBF = *$fn; } elsif (!open(DEBF, '<', $fn)) { warn("$fn: $!\n"); return (); } my $data = ''; sysread(DEBF, $data, 4096); if (length($data) < 8+60) { warn("$fn: not a debian package\n"); close DEBF unless ref $fn; return (); } if (substr($data, 0, 8+16) ne "!\ndebian-binary ") { close DEBF unless ref $fn; return (); } my $len = substr($data, 8+48, 10); $len += $len & 1; if (length($data) < 8+60+$len+60) { my $r = 8+60+$len+60 - length($data); $r -= length($data); if ((sysread(DEBF, $data, $r < 4096 ? 4096 : $r, length($data)) || 0) < $r) { warn("$fn: unexpected EOF\n"); close DEBF unless ref $fn; return (); } } $data = substr($data, 8 + 60 + $len); if (substr($data, 0, 16) ne 'control.tar.gz ') { warn("$fn: control.tar.gz is not second ar entry\n"); close DEBF unless ref $fn; return (); } $len = substr($data, 48, 10); if (length($data) < 60+$len) { my $r = 60+$len - length($data); if ((sysread(DEBF, $data, $r, length($data)) || 0) < $r) { warn("$fn: unexpected EOF\n"); close DEBF unless ref $fn; return (); } } 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); } if (!$data) { warn("$fn: corrupt control.tar.gz file\n"); return (); } my $control; while (length($data) >= 512) { my $n = substr($data, 0, 100); $n =~ s/\0.*//s; 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"); return (); } if ($n eq './control') { $control = substr($data, 512, $len); last; } $data = substr($data, $blen); } my %res; my @control = split("\n", $control); while (@control) { my $c = shift @control; last if $c eq ''; # new paragraph my ($tag, $data) = split(':', $c, 2); next unless defined $data; $tag = uc($tag); while (@control && $control[0] =~ /^\s/) { $data .= "\n".substr(shift @control, 1); } $data =~ s/^\s+//s; $data =~ s/\s+$//s; $res{$tag} = $data; } $res{'CONTROL_MD5'} = $controlmd5; return %res; } sub query { my ($handle, %opts) = @_; my %res = debq($handle); return undef unless %res; my $name = $res{'PACKAGE'}; my $src = $name; if ($res{'SOURCE'}) { $src = $res{'SOURCE'}; $src =~ s/\s.*$//; } my @provides = split(',\s*', $res{'PROVIDES'} || ''); push @provides, "$name = $res{'VERSION'}"; my @depends = split(',\s*', $res{'DEPENDS'} || ''); my @predepends = split(',\s*', $res{'PRE-DEPENDS'} || ''); push @depends, @predepends; s/ \(([^\)]*)\)/ $1/g for @provides; s/ \(([^\)]*)\)/ $1/g for @depends; s/>>/>/g for @provides; s/<>/>/g for @depends; s/< $name, hdrmd5 => $res{'CONTROL_MD5'}, provides => \@provides, requires => \@depends, }; $data->{'source'} = $src if $src ne ''; if ($opts{'evra'}) { $res{'VERSION'} =~ /^(?:(\d+):)?(.*?)(?:-([^-]*))?$/s; $data->{'epoch'} = $1 if defined $1; $data->{'version'} = $2; $data->{'release'} = $3 if defined $3; $data->{'arch'} = $res{'ARCHITECTURE'}; } if ($opts{'description'}) { $data->{'description'} = $res{'DESCRIPTION'}; } return $data; } sub queryhdrmd5 { my ($bin) = @_; local *F; open(F, '<', $bin) || die("$bin: $!\n"); my $data = ''; sysread(F, $data, 4096); if (length($data) < 8+60) { warn("$bin: not a debian package\n"); close F; return undef; } if (substr($data, 0, 8+16) ne "!\ndebian-binary ") { warn("$bin: not a debian package\n"); close F; return undef; } my $len = substr($data, 8+48, 10); $len += $len & 1; if (length($data) < 8+60+$len+60) { my $r = 8+60+$len+60 - length($data); $r -= length($data); if ((sysread(F, $data, $r < 4096 ? 4096 : $r, length($data)) || 0) < $r) { warn("$bin: unexpected EOF\n"); close F; return undef; } } $data = substr($data, 8 + 60 + $len); if (substr($data, 0, 16) ne 'control.tar.gz ') { warn("$bin: control.tar.gz is not second ar entry\n"); close F; return undef; } $len = substr($data, 48, 10); if (length($data) < 60+$len) { my $r = 60+$len - length($data); if ((sysread(F, $data, $r, length($data)) || 0) < $r) { warn("$bin: unexpected EOF\n"); close F; return undef; } } close F; $data = substr($data, 60, $len); return Digest::MD5::md5_hex($data); } sub verscmp_part { my ($s1, $s2) = @_; return 0 if $s1 eq $s2; $s1 =~ s/([0-9]+)/substr("00000000000000000000000000000000$1", -32, 32)/ge; $s2 =~ s/([0-9]+)/substr("00000000000000000000000000000000$1", -32, 32)/ge; $s1 .= "\0"; $s2 .= "\0"; $s1 =~ tr[\176\000-\037\060-\071\101-\132\141-\172\040-\057\072-\100\133-\140\173-\175][\000-\176]; $s2 =~ tr[\176\000-\037\060-\071\101-\132\141-\172\040-\057\072-\100\133-\140\173-\175][\000-\176]; return $s1 cmp $s2; } sub verscmp { my ($s1, $s2) = @_; my ($e1, $v1, $r1) = $s1 =~ /^(?:(\d+):)?(.*?)(?:-([^-]*))?$/s; $e1 = 0 unless defined $e1; my ($e2, $v2, $r2) = $s2 =~ /^(?:(\d+):)?(.*?)(?:-([^-]*))?$/s; $e2 = 0 unless defined $e2; if ($e1 ne $e2) { my $r = verscmp_part($e1, $e2); return $r if $r; } my $r = verscmp_part($v1, $v2); return $r if $r; $r1 = '' unless defined $r1; $r2 = '' unless defined $r2; return verscmp_part($r1, $r2); } 1; obs-build-20141024/Build/Arch.pm0000644000000000000000000001555012422424142016044 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Arch; use strict; use Digest::MD5; eval { require Archive::Tar; }; *Archive::Tar::new = sub {die("Archive::Tar is not available\n")} unless defined &Archive::Tar::new; # Archlinux support, based on the GSoC work of Nikolay Rysev # parse a PKGBUILD file sub quote { my ($str, $q, $vars) = @_; if ($q ne "'" && $str =~ /\$/) { $str =~ s/\$([a-zA-Z0-9_]+|\{([^\}]+)\})/$vars->{$2 || $1} ? join(' ', @{$vars->{$2 || $1}}) : "\$$1"/ge; } $str =~ s/([ \t\"\'\$])/sprintf("%%%02X", ord($1))/ge; return $str; } sub unquotesplit { my ($str, $vars) = @_; $str =~ s/%/%25/g; $str =~ s/^[ \t]+//; while ($str =~ /([\"\'])/) { my $q = $1; last unless $str =~ s/$q(.*?)$q/quote($1, $q, $vars)/e; } if ($str =~ /\$/) { $str =~ s/\$([a-zA-Z0-9_]+|\{([^\}]+)\})/$vars->{$2 || $1} ? join(' ', @{$vars->{$2 || $1}}) : "\$$1"/ge; } my @args = split(/[ \t]+/, $str); for (@args) { s/%([a-fA-F0-9]{2})/chr(hex($1))/ge } return @args; } sub parse { my ($config, $pkgbuild) = @_; my $ret; local *PKG; if (!open(PKG, '<', $pkgbuild)) { $ret->{'error'} = "$pkgbuild: $!"; return $ret; } my %vars; while () { chomp; next if /^\s*$/; next if /^\s*#/; last unless /^([a-zA-Z0-9_]*)=(\(?)(.*?)$/; my $var = $1; my $val = $3; if ($2) { while ($val !~ s/\)\s*(?:#.*)?$//s) { my $nextline = ; last unless defined $nextline; chomp $nextline; $val .= ' ' . $nextline; } } $vars{$var} = [ unquotesplit($val, \%vars) ]; } close PKG; $ret->{'name'} = $vars{'pkgname'}->[0] if $vars{'pkgname'}; $ret->{'version'} = $vars{'pkgver'}->[0] if $vars{'pkgver'}; $ret->{'deps'} = $vars{'makedepends'} || []; push @{$ret->{'deps'}}, @{$vars{'checkdepends'} || []}; push @{$ret->{'deps'}}, @{$vars{'depends'} || []}; $ret->{'source'} = $vars{'source'} if $vars{'source'}; return $ret; } sub islzma { my ($fn) = @_; local *F; return 0 unless open(F, '<', $fn); my $h; return 0 unless read(F, $h, 5) == 5; close F; return $h eq "\3757zXZ"; } sub lzmadec { my ($fn) = @_; my $nh; my $pid = open($nh, '-|'); return undef unless defined $pid; if (!$pid) { $SIG{'PIPE'} = 'DEFAULT'; exec('xzdec', '-dc', $fn); die("xzdec: $!\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)) { $handle = lzmadec($handle); } my $tar = Archive::Tar->new; my @read = $tar->read($handle, 1, {'filter' => '^\.PKGINFO$', 'limit' => 1}); die("$handle: not an arch package file\n") unless @read == 1; my $pkginfo = $read[0]->get_content; die("$handle: not an arch package file\n") unless $pkginfo; my %vars; $vars{'_pkginfo'} = $pkginfo; for my $l (split('\n', $pkginfo)) { next unless $l =~ /^(.*?) = (.*)$/; push @{$vars{$1}}, $2; } return \%vars; } sub queryfiles { my ($handle) = @_; if (ref($handle)) { die("arch pkg query not implemented for file handles\n"); } if ($handle =~ /\.xz$/ || islzma($handle)) { $handle = lzmadec($handle); } my @files; my $tar = Archive::Tar->new; # we use filter_cb here so that Archive::Tar skips the file contents $tar->read($handle, 1, {'filter_cb' => sub { my ($entry) = @_; push @files, $entry->name unless $entry->is_longlink || (@files && $files[-1] eq $entry->name); return 0; }}); shift @files if @files && $files[0] eq '.PKGINFO'; return \@files; } sub query { my ($handle, %opts) = @_; my $vars = queryvars($handle); my $ret = {}; $ret->{'name'} = $vars->{'pkgname'}->[0] if $vars->{'pkgname'}; $ret->{'hdrmd5'} = Digest::MD5::md5_hex($vars->{'_pkginfo'}); $ret->{'provides'} = $vars->{'provides'} || []; $ret->{'requires'} = $vars->{'depend'} || []; if ($vars->{'pkgname'}) { my $selfprovides = $vars->{'pkgname'}->[0]; $selfprovides .= "=$vars->{'pkgver'}->[0]" if $vars->{'pkgver'}; push @{$ret->{'provides'}}, $selfprovides unless @{$ret->{'provides'} || []} && $ret->{'provides'}->[-1] eq $selfprovides; } if ($opts{'evra'}) { if ($vars->{'pkgver'}) { my $evr = $vars->{'pkgver'}->[0]; if ($evr =~ /^([0-9]+):(.*)$/) { $ret->{'epoch'} = $1; $evr = $2; } $ret->{'version'} = $evr; if ($evr =~ /^(.*)-(.*?)$/) { $ret->{'version'} = $1; $ret->{'release'} = $2; } } $ret->{'arch'} = $vars->{'arch'}->[0] if $vars->{'arch'}; } if ($opts{'description'}) { $ret->{'description'} = $vars->{'pkgdesc'}->[0] if $vars->{'pkgdesc'}; } # arch packages don't seem to have a source :( # fake it so that the package isn't confused with a src package $ret->{'source'} = $ret->{'name'} if defined $ret->{'name'}; $ret->{'buildtime'} = $vars->{'builddate'}->[0] if $opts{'buildtime'} && $vars->{'builddate'}; return $ret; } sub queryhdrmd5 { my ($handle) = @_; if (ref($handle)) { die("arch pkg query not implemented for file handles\n"); } if ($handle =~ /\.xz$/ || islzma($handle)) { $handle = lzmadec($handle); } my $tar = Archive::Tar->new; my @read = $tar->read($handle, 1, {'filter' => '^\.PKGINFO$', 'limit' => 1}); die("$handle: not an arch package file\n") unless @read == 1; my $pkginfo = $read[0]->get_content; die("$handle: not an arch package file\n") unless $pkginfo; return Digest::MD5::md5_hex($pkginfo); } sub parserepodata { my ($d, $data) = @_; $d ||= {}; $data =~ s/^\n+//s; my @parts = split(/\n\n+/s, $data); for my $part (@parts) { my @p = split("\n", $part); my $p = shift @p; if ($p eq '%NAME%') { $d->{'name'} = $p[0]; } elsif ($p eq '%VERSION%') { $d->{'version'} = $p[0]; } elsif ($p eq '%ARCH%') { $d->{'arch'} = $p[0]; } elsif ($p eq '%BUILDDATE%') { $d->{'buildtime'} = $p[0]; } elsif ($p eq '%FILENAME%') { $d->{'filename'} = $p[0]; } elsif ($p eq '%PROVIDES%') { push @{$d->{'provides'}}, @p; } elsif ($p eq '%DEPENDS%') { push @{$d->{'requires'}}, @p; } } return $d; } 1; obs-build-20141024/Build/Kiwi.pm0000644000000000000000000002727512422424142016101 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Kiwi; use strict; our $bootcallback; # worst xml parser ever, just good enough to parse those kiwi files... # can't use standard XML parsers, unfortunatelly, as the build script # must not rely on external libraries # sub parsexml { my ($xml) = @_; my @nodestack; my $node = {}; my $c = ''; $xml =~ s/^\s*\<\?.*?\?\>//s; while ($xml =~ /^(.*?)\//s; next; } die("bad xml\n") unless $xml =~ /(.*?\>)/s; my $tag = $1; $xml = substr($xml, length($tag)); my $mode = 0; if ($tag =~ s/^\<\///s) { chop $tag; $mode = 1; # end } elsif ($tag =~ s/\/\>$//s) { $mode = 2; # start & end $tag = substr($tag, 1); } else { $tag = substr($tag, 1); chop $tag; } my @tag = split(/(=(?:\"[^\"]*\"|\'[^\']*\'|[^\"\s]*))?\s+/, "$tag "); $tag = shift @tag; shift @tag; push @tag, undef if @tag & 1; my %atts = @tag; for (values %atts) { next unless defined $_; s/^=\"([^\"]*)\"$/=$1/s or s/^=\'([^\']*)\'$/=$1/s; s/^=//s; s/<//g; s/&/&/g; s/'/\'/g; s/"/\"/g; } if ($mode == 0 || $mode == 2) { my $n = {}; push @{$node->{$tag}}, $n; for (sort keys %atts) { $n->{$_} = $atts{$_}; } if ($mode == 0) { push @nodestack, [ $tag, $node, $c ]; $c = ''; $node = $n; } } else { die("element '$tag' closes without open\n") unless @nodestack; die("element '$tag' closes, but I expected '$nodestack[-1]->[0]'\n") unless $nodestack[-1]->[0] eq $tag; $c =~ s/^\s*//s; $c =~ s/\s*$//s; $node->{'_content'} = $c if $c ne ''; $node = $nodestack[-1]->[1]; $c = $nodestack[-1]->[2]; pop @nodestack; } } $c .= $xml; $c =~ s/^\s*//s; $c =~ s/\s*$//s; $node->{'_content'} = $c if $c ne ''; return $node; } sub unify { my %h = map {$_ => 1} @_; return grep(delete($h{$_}), @_); } sub findFallBackArchs { my ($fallbackArchXML, $arch) = @_; my @fa; for my $a (@{$fallbackArchXML->{'arch'}||[]}) { if ( $a->{'id'} eq $arch && $a->{'fallback'} ) { @fa = unify( $a->{'fallback'}, findFallBackArchs($fallbackArchXML, $a->{'fallback'})); } } return @fa } # sles10 perl does not have the version.pm # implement own hack sub versionstring { my ($str) = @_; my @xstr = split (/\./,$str); my $result = 0; while (my $digit = shift(@xstr)) { $result = $result * 100; $result += $digit; } return $result; } sub kiwiparse { my ($xml, $arch, $count) = @_; $count ||= 0; die("kiwi config inclusion depth limit reached\n") if $count++ > 10; my $ret = {}; my @types; my @repos; my @bootrepos; my @packages; my @extrasources; my @requiredarch; my $schemaversion = 0; my $schemaversion56 = versionstring("5.6"); my $kiwi = parsexml($xml); die("not a kiwi config\n") unless $kiwi && $kiwi->{'image'}; $kiwi = $kiwi->{'image'}->[0]; $schemaversion = versionstring($kiwi->{'schemaversion'}) if $kiwi->{'schemaversion'}; $ret->{'filename'} = $kiwi->{'name'} if $kiwi->{'name'}; my $description = (($kiwi->{'description'} || [])->[0]) || {}; if ($description->{'specification'}) { $ret->{'name'} = $description->{'specification'}->[0]->{'_content'}; } # take default version setting my $preferences = ($kiwi->{'preferences'} || []); if ($preferences->[0]->{'version'}) { $ret->{'version'} = $preferences->[0]->{'version'}->[0]->{'_content'}; } for my $pref (@{$preferences || []}) { for my $type (@{$pref->{'type'} || []}) { next unless @{$pref->{'type'}} == 1 || !$type->{'optional'}; if (defined $type->{'image'}) { # for kiwi 4.1 and 5.x push @types, $type->{'image'}; push @packages, "kiwi-image:$type->{'image'}" if $schemaversion >= $schemaversion56; } else { # for kiwi 3.8 and before push @types, $type->{'_content'}; } push @packages, "kiwi-filesystem:$type->{'filesystem'}" if $type->{'filesystem'}; if (defined $type->{'boot'}) { if ($type->{'boot'} =~ /^obs:\/\/\/?([^\/]+)\/([^\/]+)\/?$/) { next unless $bootcallback; my ($bootxml, $xsrc) = $bootcallback->($1, $2); next unless $bootxml; push @extrasources, $xsrc if $xsrc; my $bret = kiwiparse($bootxml, $arch, $count); push @bootrepos, map {"$_->{'project'}/$_->{'repository'}"} @{$bret->{'path'} || []}; push @packages, @{$bret->{'deps'} || []}; push @extrasources, @{$bret->{'extrasource'} || []}; } else { die("bad boot reference: $type->{'boot'}\n") unless $type->{'boot'} =~ /^([^\/]+)\/([^\/]+)$/; push @packages, "kiwi-boot:$1"; } } } } my $instsource = ($kiwi->{'instsource'} || [])->[0]; if ($instsource) { for my $repository(sort {$a->{priority} <=> $b->{priority}} @{$instsource->{'instrepo'} || []}) { my $kiwisource = ($repository->{'source'} || [])->[0]; if ($kiwisource->{'path'} eq 'obsrepositories:/') { # special case, OBS will expand it. push @repos, '_obsrepositories'; next; } die("bad instsource path: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:\/\/\/?([^\/]+)\/([^\/]+)\/?$/; push @repos, "$1/$2"; } $ret->{'sourcemedium'} = -1; $ret->{'debugmedium'} = -1; if ($instsource->{'productoptions'}) { my $productoptions = $instsource->{'productoptions'}->[0] || {}; for my $po (@{$productoptions->{'productvar'} || []}) { $ret->{'drop_repository'} = $po->{'_content'} if $po->{'name'} eq 'DROP_REPOSITORY'; $ret->{'version'} = $po->{'_content'} if $po->{'name'} eq 'VERSION'; } for my $po (@{$productoptions->{'productoption'} || []}) { $ret->{'sourcemedium'} = $po->{'_content'} if $po->{'name'} eq 'SOURCEMEDIUM'; $ret->{'debugmedium'} = $po->{'_content'} if $po->{'name'} eq 'DEBUGMEDIUM'; } } if ($instsource->{'architectures'}) { my $a = $instsource->{'architectures'}->[0] || {}; for my $ra (@{$a->{'requiredarch'} || []}) { push @requiredarch, $ra->{'ref'} if defined $ra->{'ref'}; } } } # set default values for priority for (@{$kiwi->{'repository'} || []}) { next if defined $_->{'priority'}; if ($preferences->[0]->{'packagemanager'}->[0]->{'_content'} eq 'smart') { $_->{'priority'} = 0; } else { $_->{'priority'} = 99; } } my @repositories = sort {$a->{'priority'} <=> $b->{'priority'}} @{$kiwi->{'repository'} || []}; if ($preferences->[0]->{'packagemanager'}->[0]->{'_content'} eq 'smart') { @repositories = reverse @repositories; } for my $repository (@repositories) { my $kiwisource = ($repository->{'source'} || [])->[0]; next if $kiwisource->{'path'} eq '/var/lib/empty'; # grr if ($kiwisource->{'path'} eq 'obsrepositories:/') { push @repos, '_obsrepositories'; next; }; die("bad path using not obs:/ URL: $kiwisource->{'path'}\n") unless $kiwisource->{'path'} =~ /^obs:\/\/\/?([^\/]+)\/([^\/]+)\/?$/; push @repos, "$1/$2"; } # Find packages and possible additional required architectures my @additionalarchs; my @pkgs; for my $packages (@{$kiwi->{'packages'}}) { next if $packages->{'type'} and $packages->{'type'} ne 'image' and $packages->{'type'} ne 'bootstrap'; push @pkgs, @{$packages->{'package'}} if $packages->{'package'}; } if ($instsource) { push @pkgs, @{$instsource->{'metadata'}->[0]->{'repopackage'} || []} if $instsource->{'metadata'}; push @pkgs, @{$instsource->{'repopackages'}->[0]->{'repopackage'} || []} if $instsource->{'repopackages'}; } @pkgs = unify(@pkgs); for my $package (@pkgs) { # filter packages, which are not targeted for the wanted plattform if ($package->{'arch'}) { my $valid=undef; if (@requiredarch) { # this is a product foreach my $ma(@requiredarch) { foreach my $pa(split(",", $package->{'arch'})) { $valid = 1 if $ma eq $pa; } } } else { # live appliance my $ma = $arch; $ma =~ s/i[456]86/i386/; foreach my $pa(split(",", $package->{'arch'})) { $pa =~ s/i[456]86/i386/; $valid = 1 if $ma eq $pa; } } next unless $valid; } # not nice, but optimizes our build dependencies # FIXME: design a real blacklist option in kiwi if ($package->{'onlyarch'} && $package->{'onlyarch'} eq "skipit") { push @packages, "-".$package->{'name'}; next; } # we need this package push @packages, $package->{'name'}; # find the maximal superset of possible required architectures push @additionalarchs, split(',', $package->{'addarch'}) if $package->{'addarch'}; push @additionalarchs, split(',', $package->{'onlyarch'}) if $package->{'onlyarch'}; } @requiredarch = unify(@requiredarch, @additionalarchs); #### FIXME: kiwi files have no informations where to get -32bit packages from push @requiredarch, "i586" if grep {/^ia64/} @requiredarch; push @requiredarch, "i586" if grep {/^x86_64/} @requiredarch; push @requiredarch, "ppc" if grep {/^ppc64/} @requiredarch; push @requiredarch, "s390" if grep {/^s390x/} @requiredarch; my @fallbackarchs; for my $arch (@requiredarch) { push @fallbackarchs, findFallBackArchs($instsource->{'architectures'}[0], $arch) if $instsource->{'architectures'}[0]; } @requiredarch = unify(@requiredarch, @fallbackarchs); if (!$instsource) { my $packman = $preferences->[0]->{'packagemanager'}->[0]->{'_content'}; push @packages, "kiwi-packagemanager:$packman"; } else { push @packages, "kiwi-packagemanager:instsource"; } $ret->{'exclarch'} = [ unify(@requiredarch) ] if @requiredarch; $ret->{'deps'} = [ unify(@packages) ]; $ret->{'path'} = [ unify(@repos, @bootrepos) ]; $ret->{'imagetype'} = [ unify(@types) ]; $ret->{'extrasource'} = \@extrasources if @extrasources; for (@{$ret->{'path'}}) { my @s = split('/', $_, 2); $_ = {'project' => $s[0], 'repository' => $s[1]}; } return $ret; } sub parse { my ($cf, $fn) = @_; local *F; open(F, '<', $fn) || die("$fn: $!\n"); my $xml = ''; 1 while sysread(F, $xml, 4096, length($xml)) > 0; close F; $cf ||= {}; my $d; eval { $d = kiwiparse($xml, ($cf->{'arch'} || '')); }; if ($@) { my $err = $@; $err =~ s/^\n$//s; return {'error' => $err}; } return $d; } sub show { my ($fn, $field, $arch) = @ARGV; my $cf = {'arch' => $arch}; my $d = parse($cf, $fn); die("$d->{'error'}\n") if $d->{'error'}; my $x = $d->{$field}; $x = [ $x ] unless ref $x; print "@$x\n"; } # not implemented yet. sub queryiso { my ($handle, %opts) = @_; return {}; } sub queryhdrmd5 { my ($bin) = @_; die("Build::Kiwi::queryhdrmd5 unimplemented.\n"); } 1; obs-build-20141024/Build/Rpm.pm0000644000000000000000000007042712422424142015731 0ustar rootroot00000000000000################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ package Build::Rpm; our $unfilteredprereqs = 0; use strict; use Digest::MD5; sub expr { my $expr = shift; my $lev = shift; $lev ||= 0; my ($v, $v2); $expr =~ s/^\s+//; my $t = substr($expr, 0, 1); if ($t eq '(') { ($v, $expr) = expr(substr($expr, 1), 0); return undef unless defined $v; return undef unless $expr =~ s/^\)//; } elsif ($t eq '!') { ($v, $expr) = expr(substr($expr, 1), 0); return undef unless defined $v; $v = 0 if $v && $v eq '\"\"'; $v =~ s/^0+/0/ if $v; $v = !$v; } elsif ($t eq '-') { ($v, $expr) = expr(substr($expr, 1), 0); return undef unless defined $v; $v = -$v; } elsif ($expr =~ /^([0-9]+)(.*?)$/) { $v = $1; $expr = $2; } elsif ($expr =~ /^([a-zA-Z_0-9]+)(.*)$/) { $v = "\"$1\""; $expr = $2; } elsif ($expr =~ /^(\".*?\")(.*)$/) { $v = $1; $expr = $2; } else { return; } while (1) { $expr =~ s/^\s+//; if ($expr =~ /^&&/) { return ($v, $expr) if $lev > 1; ($v2, $expr) = expr(substr($expr, 2), 1); return undef unless defined $v2; $v = 0 if $v && $v eq '\"\"'; $v =~ s/^0+/0/; $v2 = 0 if $v2 && $v2 eq '\"\"'; $v2 =~ s/^0+/0/; $v &&= $v2; } elsif ($expr =~ /^\|\|/) { return ($v, $expr) if $lev > 1; ($v2, $expr) = expr(substr($expr, 2), 1); return undef unless defined $v2; $v = 0 if $v && $v eq '\"\"'; $v =~ s/^0+/0/; $v2 = 0 if $v2 && $v2 eq '\"\"'; $v2 =~ s/^0+/0/; $v ||= $v2; } elsif ($expr =~ /^>=/) { return ($v, $expr) if $lev > 2; ($v2, $expr) = expr(substr($expr, 2), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v ge $v2 : $v >= $v2) ? 1 : 0; } elsif ($expr =~ /^>/) { return ($v, $expr) if $lev > 2; ($v2, $expr) = expr(substr($expr, 1), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v gt $v2 : $v > $v2) ? 1 : 0; } elsif ($expr =~ /^<=/) { return ($v, $expr) if $lev > 2; ($v2, $expr) = expr(substr($expr, 2), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v le $v2 : $v <= $v2) ? 1 : 0; } elsif ($expr =~ /^ 2; ($v2, $expr) = expr(substr($expr, 1), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v lt $v2 : $v < $v2) ? 1 : 0; } elsif ($expr =~ /^==/) { return ($v, $expr) if $lev > 2; ($v2, $expr) = expr(substr($expr, 2), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v eq $v2 : $v == $v2) ? 1 : 0; } elsif ($expr =~ /^!=/) { return ($v, $expr) if $lev > 2; ($v2, $expr) = expr(substr($expr, 2), 2); return undef unless defined $v2; $v = (($v =~ /^\"/) ? $v ne $v2 : $v != $v2) ? 1 : 0; } elsif ($expr =~ /^\+/) { return ($v, $expr) if $lev > 3; ($v2, $expr) = expr(substr($expr, 1), 3); return undef unless defined $v2; $v += $v2; } elsif ($expr =~ /^-/) { return ($v, $expr) if $lev > 3; ($v2, $expr) = expr(substr($expr, 1), 3); return undef unless defined $v2; $v -= $v2; } elsif ($expr =~ /^\*/) { ($v2, $expr) = expr(substr($expr, 1), 4); return undef unless defined $v2; $v *= $v2; } elsif ($expr =~ /^\//) { ($v2, $expr) = expr(substr($expr, 1), 4); return undef unless defined $v2 && 0 + $v2; $v /= $v2; } elsif ($expr =~ /^([=&|])/) { warn("syntax error while parsing $1$1\n"); return ($v, $expr); } else { return ($v, $expr); } } } sub adaptmacros { my ($macros, $optold, $optnew) = @_; for (keys %$optold) { delete $macros->{$_}; } for (keys %$optnew) { $macros->{$_} = $optnew->{$_}; } return $optnew; } sub grabargs { my ($macname, $getopt, @args) = @_; my %m; $m{'0'} = $macname; $m{'**'} = join(' ', @args); my %go; %go = ($getopt =~ /(.)(:*)/sg) if defined $getopt; while (@args && $args[0] =~ s/^-//) { my $o = shift @args; last if $o eq '-'; while ($o =~ /^(.)(.*)$/) { if ($go{$1}) { my $arg = $2; $arg = shift(@args) if @args && $arg eq ''; $m{"-$1"} = "-$1 $arg"; $m{"-$1*"} = $arg; last; } $m{"-$1"} = "-$1"; $o = $2; } } $m{'#'} = scalar(@args); my $i = 1; for (@args) { $m{$i} = $_; $i++; } $m{'*'} = join(' ', @args); return \%m; } # xspec may be passed as array ref to return the parsed spec files # an entry in the returned array can be # - a string: verbatim line from the original file # - a two element array ref: # - [0] original line # - [1] undef: line unused due to %if # - [1] scalar: line after macro expansion. Only set if it's a build deps # line and build deps got modified or 'save_expanded' is set in # config sub parse { my ($config, $specfile, $xspec) = @_; my $packname; my $exclarch; my $badarch; my @subpacks; my @packdeps; my @prereqs; my $hasnfb; my $nfbline; my %macros; my %macros_args; my $ret = {}; my $ifdeps; my $specdata; local *SPEC; if (ref($specfile) eq 'GLOB') { *SPEC = *$specfile; } elsif (ref($specfile) eq 'ARRAY') { $specdata = [ @$specfile ]; } elsif (!open(SPEC, '<', $specfile)) { warn("$specfile: $!\n"); $ret->{'error'} = "open $specfile: $!"; return $ret; } my @macros = @{$config->{'macros'}}; my $skip = 0; my $main_preamble = 1; my $preamble = 1; my $inspec = 0; my $hasif = 0; my $lineno = 0; while (1) { my $line; if (@macros) { $line = shift @macros; $hasif = 0 unless @macros; } elsif ($specdata) { $inspec = 1; last unless @$specdata; $line = shift @$specdata; ++$lineno; if (ref $line) { $line = $line->[0]; # verbatim line push @$xspec, $line if $xspec; $xspec->[-1] = [ $line, undef ] if $xspec && $skip; next; } } else { $inspec = 1; $line = ; last unless defined $line; chomp $line; ++$lineno; } push @$xspec, $line if $inspec && $xspec; if ($line =~ /^#\s*neededforbuild\s*(\S.*)$/) { if (defined $hasnfb) { $xspec->[-1] = [ $xspec->[-1], undef ] if $inspec && $xspec; next; } $hasnfb = $1; $nfbline = \$xspec->[-1] if $inspec && $xspec; next; } if ($line =~ /^\s*#/) { next unless $line =~ /^#!BuildIgnore/; } my $expandedline = ''; if (!$skip && ($line =~ /%/)) { my $tries = 0; my @expandstack; my $optmacros = {}; # newer perls: \{((?:(?>[^{}]+)|(?2))*)\} reexpand: while ($line =~ /^(.*?)%(\{([^\}]+)\}|[\?\!]*[0-9a-zA-Z_]+|%|\*\*?|#|\()(.*?)$/) { if ($tries++ > 1000) { print STDERR "Warning: spec file parser ",($lineno?" line $lineno":''),": macro too deeply nested\n" if $config->{'warnings'}; $line = 'MACRO'; last; } $expandedline .= $1; $line = $4; my $macname = defined($3) ? $3 : $2; my $macorig = $2; my $macdata; my $macalt; if (defined($3)) { if ($macname =~ /{/) { # { while (($macname =~ y/{/{/) > ($macname =~ y/}/}/)) { last unless $line =~ /^([^}]*)}(.*)$/; $macname .= "}$1"; $macorig .= "$1}"; $line = $2; } } $macdata = ''; if ($macname =~ /^([^\s:]+)([\s:])(.*)$/) { $macname = $1; if ($2 eq ':') { $macalt = $3; } else { $macdata = $3; } } } my $mactest = 0; if ($macname =~ /^\!\?/ || $macname =~ /^\?\!/) { $mactest = -1; } elsif ($macname =~ /^\?/) { $mactest = 1; } $macname =~ s/^[\!\?]+//; if ($macname eq '%') { $expandedline .= '%'; next; } elsif ($macname eq '(') { print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand %(...)\n" if $config->{'warnings'}; $line = 'MACRO'; last; } elsif ($macname eq 'define' || $macname eq 'global') { if ($line =~ /^\s*([0-9a-zA-Z_]+)(?:\(([^\)]*)\))?\s*(.*?)$/) { my $macname = $1; my $macargs = $2; my $macbody = $3; if (defined $macargs) { $macros_args{$macname} = $macargs; } else { delete $macros_args{$macname}; } $macros{$macname} = $macbody; } $line = ''; last; } elsif ($macname eq 'defined' || $macname eq 'with' || $macname eq 'undefined' || $macname eq 'without' || $macname eq 'bcond_with' || $macname eq 'bcond_without') { my @args; if ($macorig =~ /^\{(.*)\}$/) { @args = split(' ', $1); shift @args; } else { @args = split(' ', $line); $line = ''; } next unless @args; if ($macname eq 'bcond_with') { $macros{"with_$args[0]"} = 1 if exists $macros{"_with_$args[0]"}; next; } if ($macname eq 'bcond_without') { $macros{"with_$args[0]"} = 1 unless exists $macros{"_without_$args[0]"}; next; } $args[0] = "with_$args[0]" if $macname eq 'with' || $macname eq 'without'; $line = ((exists($macros{$args[0]}) ? 1 : 0) ^ ($macname eq 'undefined' || $macname eq 'without' ? 1 : 0)).$line; } elsif ($macname eq 'expand') { $macalt = $macros{$macname} unless defined $macalt; $macalt = '' if $mactest == -1; push @expandstack, ($expandedline, $line, undef); $line = $macalt; $expandedline = ''; } elsif (exists($macros{$macname})) { if (!defined($macros{$macname})) { print STDERR "Warning: spec file parser",($lineno?" line $lineno":''),": can't expand '$macname'\n" if $config->{'warnings'}; $line = 'MACRO'; last; } if (defined($macros_args{$macname})) { # macro with args! if (!defined($macdata)) { $line =~ /^\s*([^\n]*).*?$/; $macdata = $1; $line = $2; } push @expandstack, ($expandedline, $line, $optmacros); $optmacros = adaptmacros(\%macros, $optmacros, grabargs($macname, $macros_args{$macname}, split(' ', $macdata))); $line = $macros{$macname}; $expandedline = ''; next; } $macalt = $macros{$macname} unless defined $macalt; $macalt = '' if $mactest == -1; if ($macalt =~ /%/) { push @expandstack, ('', $line, 1) if $line ne ''; $line = $macalt; } else { $expandedline .= $macalt; } } elsif ($mactest) { $macalt = '' if !defined($macalt) || $mactest == 1; if ($macalt =~ /%/) { push @expandstack, ('', $line, 1) if $line ne ''; $line = $macalt; } else { $expandedline .= $macalt; } } else { $expandedline .= "%$macorig" unless $macname =~ /^-/; } } $line = $expandedline . $line; if (@expandstack) { my $m = pop(@expandstack); if ($m) { $optmacros = adaptmacros(\%macros, $optmacros, $m) if ref $m; $expandstack[-2] .= $line; $line = pop(@expandstack); $expandedline = pop(@expandstack); } else { my $todo = pop(@expandstack); $expandedline = pop(@expandstack); push @expandstack, ('', $todo, 1) if $todo ne ''; } goto reexpand; } } if ($line =~ /^\s*%else\b/) { $skip = 1 - $skip if $skip < 2; next; } if ($line =~ /^\s*%endif\b/) { $skip-- if $skip; next; } $skip++ if $skip && $line =~ /^\s*%if/; if ($skip) { $xspec->[-1] = [ $xspec->[-1], undef ] if $xspec; $ifdeps = 1 if $line =~ /^(BuildRequires|BuildPrereq|BuildConflicts|\#\!BuildIgnore)\s*:\s*(\S.*)$/i; next; } if ($line =~ /^\s*%ifarch(.*)$/) { my $arch = $macros{'_target_cpu'} || 'unknown'; my @archs = grep {$_ eq $arch} split(/\s+/, $1); $skip = 1 if !@archs; $hasif = 1; next; } if ($line =~ /^\s*%ifnarch(.*)$/) { my $arch = $macros{'_target_cpu'} || 'unknown'; my @archs = grep {$_ eq $arch} split(/\s+/, $1); $skip = 1 if @archs; $hasif = 1; next; } if ($line =~ /^\s*%ifos(.*)$/) { my $os = $macros{'_target_os'} || 'unknown'; my @oss = grep {$_ eq $os} split(/\s+/, $1); $skip = 1 if !@oss; $hasif = 1; next; } if ($line =~ /^\s*%ifnos(.*)$/) { my $os = $macros{'_target_os'} || 'unknown'; my @oss = grep {$_ eq $os} split(/\s+/, $1); $skip = 1 if @oss; $hasif = 1; next; } if ($line =~ /^\s*%if(.*)$/) { my ($v, $r) = expr($1); $v = 0 if $v && $v eq '\"\"'; $v =~ s/^0+/0/ if $v; $skip = 1 unless $v; $hasif = 1; next; } if ($main_preamble) { if ($line =~ /^(Name|Version|Disttag|Release)\s*:\s*(\S+)/i) { $ret->{lc $1} = $2; $macros{lc $1} = $2; } elsif ($line =~ /^(Source\d*|Patch\d*|Url)\s*:\s*(\S+)/i) { $ret->{lc $1} = $2; } elsif ($line =~ /^ExclusiveArch\s*:\s*(.*)/i) { $exclarch ||= []; push @$exclarch, split(' ', $1); } elsif ($line =~ /^ExcludeArch\s*:\s*(.*)/i) { $badarch ||= []; push @$badarch, split(' ', $1); } } if (@subpacks && $preamble && exists($ret->{'version'}) && $line =~ /^Version\s*:\s*(\S+)/i) { $ret->{'multiversion'} = 1 if $ret->{'version'} ne $1; } if ($line =~ /^(?:Requires\(pre\)|Requires\(post\)|PreReq)\s*:\s*(\S.*)$/i) { my $deps = $1; my @deps = $deps =~ /([^\s\[,]+)(\s+[<=>]+\s+[^\s\[,]+)?(\s+\[[^\]]+\])?[\s,]*/g; while (@deps) { my ($pack, $vers, $qual) = splice(@deps, 0, 3); if (!$unfilteredprereqs && $pack =~ /^\//) { $ifdeps = 1; next unless $config->{'fileprovides'}->{$pack}; } push @prereqs, $pack unless grep {$_ eq $pack} @prereqs; } next; } if ($preamble && ($line =~ /^(BuildRequires|BuildPrereq|BuildConflicts|\#\!BuildIgnore)\s*:\s*(\S.*)$/i)) { my $what = $1; my $deps = $2; $ifdeps = 1 if $hasif; # XXX: weird syntax addition. can append arch or project to dependency # BuildRequire: foo > 17 [i586,x86_64] # BuildRequire: foo [home:bar] # BuildRequire: foo [!home:bar] my @deps = $deps =~ /([^\s\[,]+)(\s+[<=>]+\s+[^\s\[,]+)?(\s+\[[^\]]+\])?[\s,]*/g; my $replace = 0; my @ndeps = (); while (@deps) { my ($pack, $vers, $qual) = splice(@deps, 0, 3); if (defined($qual)) { $replace = 1; my $arch = $macros{'_target_cpu'} || ''; my $proj = $macros{'_target_project'} || ''; $qual =~ s/^\s*\[//; $qual =~ s/\]$//; my $isneg = 0; my $bad; for my $q (split('[\s,]', $qual)) { $isneg = 1 if $q =~ s/^\!//; $bad = 1 if !defined($bad) && !$isneg; if ($isneg) { if ($q eq $arch || $q eq $proj) { $bad = 1; last; } } elsif ($q eq $arch || $q eq $proj) { $bad = 0; } } next if $bad; } $vers = '' unless defined $vers; $vers =~ s/=(>|<)/$1=/; push @ndeps, "$pack$vers"; } $replace = 1 if grep {/^-/} @ndeps; if (lc($what) ne 'buildrequires' && lc($what) ne 'buildprereq') { push @packdeps, map {"-$_"} @ndeps; next; } if (defined($hasnfb)) { if ((grep {$_ eq 'glibc' || $_ eq 'rpm' || $_ eq 'gcc' || $_ eq 'bash'} @ndeps) > 2) { # ignore old generated BuildRequire lines. $xspec->[-1] = [ $xspec->[-1], undef ] if $xspec; next; } } push @packdeps, @ndeps; next unless $xspec && $inspec; if ($replace) { my @cndeps = grep {!/^-/} @ndeps; if (@cndeps) { $xspec->[-1] = [ $xspec->[-1], "$what: ".join(' ', @cndeps) ]; } else { $xspec->[-1] = [ $xspec->[-1], '']; } } next; } if ($line =~ /^\s*%package\s+(-n\s+)?(\S+)/) { if ($1) { push @subpacks, $2; } else { push @subpacks, $ret->{'name'}.'-'.$2 if defined $ret->{'name'}; } $preamble = 1; $main_preamble = 0; } if ($line =~ /^\s*%(prep|build|install|check|clean|preun|postun|pretrans|posttrans|pre|post|files|changelog|description|triggerpostun|triggerun|triggerin|trigger|verifyscript)/) { $main_preamble = 0; $preamble = 0; } # do this always? if ($xspec && @$xspec && $config->{'save_expanded'}) { $xspec->[-1] = [ $xspec->[-1], $line ]; } } close SPEC unless ref $specfile; if (defined($hasnfb)) { if (!@packdeps) { @packdeps = split(' ', $hasnfb); } elsif ($nfbline) { $$nfbline = [$$nfbline, undef ]; } } unshift @subpacks, $ret->{'name'} if defined $ret->{'name'}; $ret->{'subpacks'} = \@subpacks; $ret->{'exclarch'} = $exclarch if defined $exclarch; $ret->{'badarch'} = $badarch if defined $badarch; $ret->{'deps'} = \@packdeps; $ret->{'prereqs'} = \@prereqs if @prereqs; $ret->{'configdependent'} = 1 if $ifdeps; return $ret; } ########################################################################### my %rpmstag = ( "SIGTAG_SIZE" => 1000, # /*!< internal Header+Payload size in bytes. */ "SIGTAG_MD5" => 1004, # /*!< internal MD5 signature. */ "NAME" => 1000, "VERSION" => 1001, "RELEASE" => 1002, "EPOCH" => 1003, "SUMMARY" => 1004, "DESCRIPTION" => 1005, "BUILDTIME" => 1006, "ARCH" => 1022, "OLDFILENAMES" => 1027, "SOURCERPM" => 1044, "PROVIDENAME" => 1047, "REQUIREFLAGS" => 1048, "REQUIRENAME" => 1049, "REQUIREVERSION" => 1050, "NOSOURCE" => 1051, "NOPATCH" => 1052, "SOURCEPACKAGE" => 1106, "PROVIDEFLAGS" => 1112, "PROVIDEVERSION" => 1113, "DIRINDEXES" => 1116, "BASENAMES" => 1117, "DIRNAMES" => 1118, "DISTURL" => 1123, ); sub rpmq { my ($rpm, @stags) = @_; my @sigtags = grep {/^SIGTAG_/} @stags; @stags = grep {!/^SIGTAG_/} @stags; my $dosigs = @sigtags && !@stags; @stags = @sigtags if $dosigs; my $need_filenames = grep { $_ eq 'FILENAMES' } @stags; push @stags, 'BASENAMES', 'DIRNAMES', 'DIRINDEXES', 'OLDFILENAMES' if $need_filenames; @stags = grep { $_ ne 'FILENAMES' } @stags if $need_filenames; my %stags = map {0 + ($rpmstag{$_} || $_) => $_} @stags; my ($magic, $sigtype, $headmagic, $cnt, $cntdata, $lead, $head, $index, $data, $tag, $type, $offset, $count); local *RPM; my $forcebinary; if (ref($rpm) eq 'ARRAY') { ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $rpm->[0]); if ($headmagic != 0x8eade801) { warn("Bad rpm\n"); return (); } if (length($rpm->[0]) < 16 + $cnt * 16 + $cntdata) { warn("Bad rpm\n"); return (); } $index = substr($rpm->[0], 16, $cnt * 16); $data = substr($rpm->[0], 16 + $cnt * 16, $cntdata); } else { if (ref($rpm) eq 'GLOB') { *RPM = *$rpm; } elsif (!open(RPM, '<', $rpm)) { warn("$rpm: $!\n"); return (); } if (read(RPM, $lead, 96) != 96) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } ($magic, $sigtype) = unpack('N@78n', $lead); if ($magic != 0xedabeedb || $sigtype != 5) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } $forcebinary = 1 if unpack('@6n', $lead) != 1; if (read(RPM, $head, 16) != 16) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); if ($headmagic != 0x8eade801) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } if (read(RPM, $index, $cnt * 16) != $cnt * 16) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } $cntdata = ($cntdata + 7) & ~7; if (read(RPM, $data, $cntdata) != $cntdata) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } } my %res = (); if (@sigtags && !$dosigs) { %res = &rpmq(["$head$index$data"], @sigtags); } if (ref($rpm) eq 'ARRAY' && !$dosigs && @$rpm > 1) { my %res2 = &rpmq([ $rpm->[1] ], @stags); %res = (%res, %res2); return %res; } if (ref($rpm) ne 'ARRAY' && !$dosigs) { if (read(RPM, $head, 16) != 16) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); if ($headmagic != 0x8eade801) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } if (read(RPM, $index, $cnt * 16) != $cnt * 16) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } if (read(RPM, $data, $cntdata) != $cntdata) { warn("Bad rpm $rpm\n"); close RPM unless ref($rpm); return (); } } close RPM unless ref($rpm); # return %res unless @stags; while($cnt-- > 0) { ($tag, $type, $offset, $count, $index) = unpack('N4a*', $index); $tag = 0+$tag; if ($stags{$tag} || !@stags) { eval { my $otag = $stags{$tag} || $tag; if ($type == 0) { $res{$otag} = [ '' ]; } elsif ($type == 1) { $res{$otag} = [ unpack("\@${offset}c$count", $data) ]; } elsif ($type == 2) { $res{$otag} = [ unpack("\@${offset}c$count", $data) ]; } elsif ($type == 3) { $res{$otag} = [ unpack("\@${offset}n$count", $data) ]; } elsif ($type == 4) { $res{$otag} = [ unpack("\@${offset}N$count", $data) ]; } elsif ($type == 5) { $res{$otag} = [ undef ]; } elsif ($type == 6) { $res{$otag} = [ unpack("\@${offset}Z*", $data) ]; } elsif ($type == 7) { $res{$otag} = [ unpack("\@${offset}a$count", $data) ]; } elsif ($type == 8 || $type == 9) { my $d = unpack("\@${offset}a*", $data); my @res = split("\0", $d, $count + 1); $res{$otag} = [ splice @res, 0, $count ]; } else { $res{$otag} = [ undef ]; } }; if ($@) { warn("Bad rpm $rpm: $@\n"); return (); } } } if ($forcebinary && $stags{1044} && !$res{$stags{1044}} && !($stags{1106} && $res{$stags{1106}})) { $res{$stags{1044}} = [ '(none)' ]; # like rpm does... } if ($need_filenames) { if ($res{'OLDFILENAMES'}) { $res{'FILENAMES'} = [ @{$res{'OLDFILENAMES'}} ]; } else { my $i = 0; $res{'FILENAMES'} = [ map {"$res{'DIRNAMES'}->[$res{'DIRINDEXES'}->[$i++]]$_"} @{$res{'BASENAMES'}} ]; } } return %res; } sub add_flagsvers { my $res = shift; my $name = shift; my $flags = shift; my $vers = shift; return unless $res; my @flags = @{$res->{$flags} || []}; my @vers = @{$res->{$vers} || []}; for (@{$res->{$name}}) { if (@flags && ($flags[0] & 0xe) && @vers) { $_ .= ' '; $_ .= '<' if $flags[0] & 2; $_ .= '>' if $flags[0] & 4; $_ .= '=' if $flags[0] & 8; $_ .= " $vers[0]"; } shift @flags; shift @vers; } } sub verscmp_part { my ($s1, $s2) = @_; if (!defined($s1)) { return defined($s2) ? -1 : 0; } return 1 if !defined $s2; return 0 if $s1 eq $s2; while (1) { $s1 =~ s/^[^a-zA-Z0-9~]+//; $s2 =~ s/^[^a-zA-Z0-9~]+//; if ($s1 =~ s/^~//) { next if $s2 =~ s/^~//; return -1; } return 1 if $s2 =~ /^~/; if ($s1 eq '') { return $s2 eq '' ? 0 : -1; } return 1 if $s2 eq ''; my ($x1, $x2, $r); if ($s1 =~ /^([0-9]+)(.*?)$/) { $x1 = $1; $s1 = $2; $s2 =~ /^([0-9]*)(.*?)$/; $x2 = $1; $s2 = $2; return 1 if $x2 eq ''; $x1 =~ s/^0+//; $x2 =~ s/^0+//; $r = length($x1) - length($x2) || $x1 cmp $x2; } elsif ($s1 ne '' && $s2 ne '') { $s1 =~ /^([a-zA-Z]*)(.*?)$/; $x1 = $1; $s1 = $2; $s2 =~ /^([a-zA-Z]*)(.*?)$/; $x2 = $1; $s2 = $2; return -1 if $x1 eq '' || $x2 eq ''; $r = $x1 cmp $x2; } return $r > 0 ? 1 : -1 if $r; } } sub verscmp { my ($s1, $s2, $dtest) = @_; return 0 if $s1 eq $s2; my ($e1, $v1, $r1) = $s1 =~ /^(?:(\d+):)?(.*?)(?:-([^-]*))?$/s; $e1 = 0 unless defined $e1; my ($e2, $v2, $r2) = $s2 =~ /^(?:(\d+):)?(.*?)(?:-([^-]*))?$/s; $e2 = 0 unless defined $e2; if ($e1 ne $e2) { my $r = verscmp_part($e1, $e2); return $r if $r; } return 0 if $dtest && ($v1 eq '' || $v2 eq ''); if ($v1 ne $v2) { my $r = verscmp_part($v1, $v2); return $r if $r; } $r1 = '' unless defined $r1; $r2 = '' unless defined $r2; return 0 if $dtest && ($r1 eq '' || $r2 eq ''); if ($r1 ne $r2) { return verscmp_part($r1, $r2); } return 0; } sub query { my ($handle, %opts) = @_; my @tags = qw{NAME SOURCERPM NOSOURCE NOPATCH SIGTAG_MD5 PROVIDENAME PROVIDEFLAGS PROVIDEVERSION REQUIRENAME REQUIREFLAGS REQUIREVERSION SOURCEPACKAGE}; push @tags, qw{EPOCH VERSION RELEASE ARCH}; push @tags, qw{FILENAMES} if $opts{'filelist'}; push @tags, qw{SUMMARY DESCRIPTION} if $opts{'description'}; push @tags, qw{DISTURL} if $opts{'disturl'}; push @tags, qw{BUILDTIME} if $opts{'buildtime'}; my %res = rpmq($handle, @tags); return undef unless %res; my $src = $res{'SOURCERPM'}->[0]; $src = '' unless defined $src; $src =~ s/-[^-]*-[^-]*\.[^\.]*\.rpm//; add_flagsvers(\%res, 'PROVIDENAME', 'PROVIDEFLAGS', 'PROVIDEVERSION'); add_flagsvers(\%res, 'REQUIRENAME', 'REQUIREFLAGS', 'REQUIREVERSION'); my $data = { name => $res{'NAME'}->[0], hdrmd5 => unpack('H32', $res{'SIGTAG_MD5'}->[0]), }; if ($opts{'alldeps'}) { $data->{'provides'} = [ @{$res{'PROVIDENAME'} || []} ]; $data->{'requires'} = [ @{$res{'REQUIRENAME'} || []} ]; } else { $data->{'provides'} = [ grep {!/^rpmlib\(/ && !/^\//} @{$res{'PROVIDENAME'} || []} ]; $data->{'requires'} = [ grep {!/^rpmlib\(/ && !/^\//} @{$res{'REQUIRENAME'} || []} ]; } # rpm3 compatibility: retrofit missing self provides if ($src ne '') { my $haveselfprovides; if (@{$data->{'provides'}}) { if ($data->{'provides'}->[-1] =~ /^\Q$res{'NAME'}->[0]\E =/) { $haveselfprovides = 1; } elsif (@{$data->{'provides'}} > 1 && $data->{'provides'}->[-2] =~ /^\Q$res{'NAME'}->[0]\E =/) { $haveselfprovides = 1; } } if (!$haveselfprovides) { my $evr = "$res{'VERSION'}->[0]-$res{'RELEASE'}->[0]"; $evr = "$res{'EPOCH'}->[0]:$evr" if $res{'EPOCH'} && $res{'EPOCH'}->[0]; push @{$data->{'provides'}}, "$res{'NAME'}->[0] = $evr"; } } $data->{'source'} = $src eq '(none)' ? $data->{'name'} : $src if $src ne ''; if ($opts{'evra'}) { my $arch = $res{'ARCH'}->[0]; $arch = $res{'NOSOURCE'} || $res{'NOPATCH'} ? 'nosrc' : 'src' unless $src ne ''; $data->{'version'} = $res{'VERSION'}->[0]; $data->{'release'} = $res{'RELEASE'}->[0]; $data->{'arch'} = $arch; $data->{'epoch'} = $res{'EPOCH'}->[0] if exists $res{'EPOCH'}; } if ($opts{'filelist'}) { $data->{'filelist'} = $res{'FILENAMES'}; } if ($opts{'description'}) { $data->{'summary'} = $res{'SUMMARY'}->[0]; $data->{'description'} = $res{'DESCRIPTION'}->[0]; } $data->{'buildtime'} = $res{'BUILDTIME'}->[0] if $opts{'buildtime'}; $data->{'disturl'} = $res{'DISTURL'}->[0] if $opts{'disturl'} && $res{'DISTURL'}; return $data; } sub queryhdrmd5 { my ($bin, $leadsigp) = @_; local *F; open(F, '<', $bin) || die("$bin: $!\n"); my $buf = ''; my $l; while (length($buf) < 96 + 16) { $l = sysread(F, $buf, 4096, length($buf)); if (!$l) { warn("$bin: read error\n"); close(F); return undef; } } my ($magic, $sigtype) = unpack('N@78n', $buf); if ($magic != 0xedabeedb || $sigtype != 5) { warn("$bin: not a rpm (bad magic of header type)\n"); close(F); return undef; } my ($headmagic, $cnt, $cntdata) = unpack('@96N@104NN', $buf); if ($headmagic != 0x8eade801) { warn("$bin: not a rpm (bad sig header magic)\n"); close(F); return undef; } my $hlen = 96 + 16 + $cnt * 16 + $cntdata; $hlen = ($hlen + 7) & ~7; while (length($buf) < $hlen) { $l = sysread(F, $buf, 4096, length($buf)); if (!$l) { warn("$bin: read error\n"); close(F); return undef; } } close F; $$leadsigp = Digest::MD5::md5_hex(substr($buf, 0, $hlen)) if $leadsigp; my $idxarea = substr($buf, 96 + 16, $cnt * 16); if ($idxarea !~ /\A(?:.{16})*\000\000\003\354\000\000\000\007(....)\000\000\000\020/s) { warn("$bin: no md5 signature header\n"); return undef; } my $md5off = unpack('N', $1); if ($md5off >= $cntdata) { warn("$bin: bad md5 offset\n"); return undef; } $md5off += 96 + 16 + $cnt * 16; return unpack("\@${md5off}H32", $buf); } 1; obs-build-20141024/build-vm-xen0000644000000000000000000001057212422424142016023 0ustar rootroot00000000000000# # XEN specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ vm_verify_options_xen() { vm_kernel=/boot/vmlinuz vm_initrd=/boot/initrd test -e /boot/vmlinuz-xen && vm_kernel=/boot/vmlinuz-xen test -e /boot/initrd-xen && vm_initrd=/boot/initrd-xen test -n "$VM_KERNEL" && vm_kernel="$VM_KERNEL" test -n "$VM_INITRD" && vm_initrd="$VM_INITRD" } vm_startup_xen() { XMCMD=xm test ! -x /usr/sbin/xm -a -x /usr/sbin/xl && XMCMD=xl XMROOT="file:$(readlink -f $VM_IMAGE)" XMROOT=${XMROOT/#file:\/dev/phy:/dev} XMROOT="disk=$XMROOT,hda1,w" XMSWAP= if test -n "$VM_SWAP" ; then XMSWAP="file:$(readlink -f $VM_SWAP)" XMSWAP=${XMSWAP/#file:\/dev/phy:/dev} XMSWAP="disk=$XMSWAP,hda2,w" fi XENID="${VM_IMAGE%/root}" XENID="${XENID%/tmpfs}" XENID="${XENID##*/}" XENID="${XENID#root_}" if $XMCMD list "build_$XENID" >/dev/null 2>&1 ; then echo "Instance already exists, something really went wrong..." echo "Please report to your server admin, there might be multiple services running for same domain" cleanup_and_exit 3 fi XEN_CONF_FILE=`mktemp /var/tmp/build.xen.conf-XXXXXXXXX` || cleanup_and_exit 3 echo "kernel = \"$vm_kernel\"" > $XEN_CONF_FILE echo "ramdisk = \"$vm_initrd\"" >> $XEN_CONF_FILE echo "memory = ${VM_MEMSIZE:-64}" >> $XEN_CONF_FILE test -n "$BUILD_JOBS" && echo "vcpus = $BUILD_JOBS" >> $XEN_CONF_FILE echo "root = \"/dev/hda1 ro\"" >> $XEN_CONF_FILE echo "extra = \"init=/bin/bash console=ttyS0 panic=1 udev_timeout=360\"" >> $XEN_CONF_FILE echo "on_poweroff = \"destroy\"" >> $XEN_CONF_FILE echo "on_reboot = \"destroy\"" >> $XEN_CONF_FILE echo "on_crash = \"destroy\"" >> $XEN_CONF_FILE if test "$XMCMD" = xm ; then set -- xm create -c $XEN_CONF_FILE name="build_$XENID" $XMROOT $XMSWAP extra="panic=1 quiet init="$vm_init_script" rd.driver.pre=binfmt_misc elevator=noop console=ttyS0" else XLDISK= XLDISK="\"${XMROOT#disk=}\"" test -n "$XMSWAP" && XLDISK="$XLDISK, \"${XMSWAP#disk=}\"" set -- xl create -c $XEN_CONF_FILE name="\"build_$XENID\"" "disk=[ $XLDISK ]" extra=\""panic=1 quiet init="$vm_init_script" rd.driver.pre=binfmt_misc elevator=noop console=ttyS0"\" fi if test "$PERSONALITY" != 0 ; then # have to switch back to PER_LINUX to make xm work set -- linux64 "$@" fi echo "$@" "$@" || cleanup_and_exit 3 rm -f "$XEN_CONF_FILE" } vm_kill_xen() { XMCMD=xm test ! -x /usr/sbin/xm -a -x /usr/sbin/xl && XMCMD=xl XENID="${VM_IMAGE%/root}" XENID="${XENID%/tmpfs}" XENID="${XENID##*/}" XENID="${XENID#root_}" if $XMCMD list "build_$XENID" >/dev/null 2>&1 ; then if ! $XMCMD destroy "build_$XENID" ; then echo "could not kill xen build $XENID" cleanup_and_exit 1 fi fi } # XEN only vm_purge_xen() { # this should not be needed, but sometimes a xen instance gets lost XMCMD=xm test ! -x /usr/sbin/xm -a -x /usr/sbin/xl && XMCMD=xl XENID="${VM_IMAGE%/root}" XENID="${XENID%/tmpfs}" XENID="${XENID##*/}" XENID="${XENID#root_}" $XMCMD destroy "build_$XENID" >/dev/null 2>&1 } vm_fixup_xen() { : } vm_attach_root_xen() { : } vm_attach_swap_xen() { : } vm_detach_root_xen() { : } vm_detach_swap_xen() { : } vm_cleanup_xen() { : } obs-build-20141024/init_buildsystem0000755000000000000000000007636412422424142017121 0ustar rootroot00000000000000#!/bin/bash # Script to create a complete system to build packages in a chroot # environment. This script ensures, that all packages given as # parameter are installed. All other packges will be deleted. # # BUILD_ROOT here the packages will be installed/deleted # BUILD_RPMS here we get our packages to install # BUILD_ARCH path of the architectures we try # ################################################################ # # Copyright (c) 1997-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # # needed globals variables # export SRC export BUILD_DIR=${BUILD_DIR:-/usr/lib/build} export YAST_IS_RUNNING=instsys # slurp in package binary support . "$BUILD_DIR/build-pkg" # need to restore build root owner for non-root builds browner=0 definesnstuff=() repos=() . $BUILD_DIR/common_functions || exit 1 BUILD_IS_RUNNING=$BUILD_ROOT/not-ready TMPFILE=$BUILD_ROOT/tmpfile # should RPMs be installed with --force ? USE_FORCE=false PREPARE_VM= USEUSEDFORBUILD= LIST_STATE= RPMLIST= CLEAN_BUILD= CREATE_BUILD_BINARIES= DLNOSIGNATURE= CACHE_DIR=/var/cache/build while test -n "$1" ; do case "$1" in --prepare) shift PREPARE_VM=true ;; --create-build-binaries) shift CREATE_BUILD_BINARIES=true ;; --useusedforbuild) shift USEUSEDFORBUILD=--useusedforbuild ;; --list-state) shift LIST_STATE=true ;; --rpmlist) shift RPMLIST=$1 shift ;; --define|--with|--without) definesnstuff[${#definesnstuff[@]}]="$1"; definesnstuff[${#definesnstuff[@]}]="$2"; shift 2 ;; --repository|--repo) repos[${#repos[@]}]="$2"; shift 2 ;; --clean) CLEAN_BUILD="$1" shift ;; --cachedir) CACHE_DIR="$2" shift 2 ;; --configdir) CONFIG_DIR=$2 shift 2 ;; --nosignature) shift DLNOSIGNATURE="--nosignature" ;; *) break ;; esac done PKGS=("$@") # # needed functions # cleanup_and_exit() { trap EXIT 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} } 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 rm -rf -- "$BUILD_ROOT"/* 2> /dev/null || true chattr -a -A -i -R -- "$BUILD_ROOT" 2> /dev/null || true rm -rf -- "$BUILD_ROOT"/* rm -rf -- "$BUILD_ROOT/.build" rm -rf -- "$BUILD_ROOT"/.build.kernel.* rm -rf -- "$BUILD_ROOT"/.build.initrd.* rm -rf -- "$BUILD_ROOT/.root" rm -rf -- "$BUILD_ROOT/.init_b_cache" 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 } unsafe_preinstall_check() { # cpio isn't safe so we require bsdtar for VMs. chroot is # unsafe anyways so it's ok for that. if test -n "$PREPARE_VM" ; then echo "Error: setting up a VM requires bsdtar for security reasons." echo "Please install bsdtar." cleanup_and_exit 1 fi } preinstall_image_filter() { for PKG in "$@" ; do test -e "$BUILD_ROOT/.preinstall_image/$PKG" && continue echo $PKG done } preinstall_image() { check_exit echo "unpacking preinstall image${2:+ $2}" cd $BUILD_ROOT || cleanup_and_exit 1 if test -x /usr/bin/bsdtar ; then TAR="/usr/bin/bsdtar -P --chroot --numeric-owner -x" else unsafe_preinstall_check TAR="tar -x" fi # pipe output through perl to print a dot every 1000 lines if ! $TAR -z --exclude .build --exclude .init_b_cache -f "$BUILD_ROOT/.init_b_cache/rpms/$1" -v > >(tee "$BUILD_ROOT/.preinstallimage.unpack" | perl -e '$|=1; my $done=0; $done++ % 1000 or print "." while ; print "\n";') 2>&1 ; then echo "unpack failed." test -e "$BUILD_ROOT/.preinstallimage.unpack" && cat "$BUILD_ROOT/.preinstallimage.unpack" cleanup_and_exit 1 fi rm -f "$BUILD_ROOT/.preinstallimage.unpack" } preinstall() { local PKG="$1" check_exit echo "preinstalling $PKG..." 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" else unsafe_preinstall_check CPIO="cpio --extract --unconditional --preserve-modification-time --make-directories --no-absolute-filenames --quiet" TAR="tar -x" fi pkg_preinstall } run_pkg_scripts() { $CHROOT /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 while read com file mode arg ; do rm -f $BUILD_ROOT/dev/$file if test $com = ln ; then ln -s $arg $BUILD_ROOT/dev/$file continue fi $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 random 666 c 1 8 mknod urandom 644 c 1 9 mknod tty 666 c 5 0 mknod ptmx 666 c 5 2 mknod loop0 640 b 7 0 mknod loop1 640 b 7 1 mknod loop2 640 b 7 2 mknod loop3 640 b 7 3 ln fd 777 /proc/self/fd ln stdin 777 fd/0 ln stdout 777 fd/1 ln stderr 777 fd/2 DEVLIST } # check whether the repo list contains a plain "zypp://". Add all # enabled zypp repos in this case expand_plain_zypp_repo() { local i j r=() for i in "${repos[@]}"; do if test "$i" = "zypp://" ; then for j in $($BUILD_DIR/createzyppdeps --listrepos) ; do r=("${r[@]}" "zypp://$j") done else r=("${r[@]}" "$i") fi done repos=("${r[@]}") } create_cache_file() { local findonly= expand_plain_zypp_repo if ! test -f $CACHE_FILE || ! test -f $CACHE_FILE.id || \ test "${repos[*]} ${BUILD_RPMS//:/ /}" != "$(cat $CACHE_FILE.id 2>/dev/null)"; then rm -f $CACHE_FILE.id else for SRC in "${repos[@]}" ${BUILD_RPMS//:/ /}; do test -n "$SRC" || SRC=. if test "${SRC#zypp://}" != "$SRC" ; then SRC="/var/cache/zypp/raw/${SRC#zypp://}" fi if test "$SRC" -nt $CACHE_FILE; then rm -f $CACHE_FILE.id break fi # always rebuild if we have remote repositories and --clean is given if test -n "$CLEAN_BUILD" -a "$SRC" != "${SRC#*://}" -a "${SRC#zypp://}" = "$SRC" ; then rm -f $CACHE_FILE.id break fi done fi if ! test -f $CACHE_FILE.id ; then test -z "$LIST_STATE" && echo initializing $CACHE_FILE ... BINTYPE= if test -n "$BUILD_DIST" ; then BINTYPE=`queryconfig binarytype --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH"` test "$BINTYPE" = UNDEFINED && BINTYPE= fi if test -z "$BINTYPE" ; then # check the first init_buildsystem arg, maybe it is a recipe case ${PKGS[0]} in *.spec) BINTYPE=rpm ;; *.dsc) BINTYPE=deb ;; */PKGBUILD|PKGBUILD) BINTYPE=arch ;; esac fi for SRC in "${repos[@]}" -- ${BUILD_RPMS//:/ /}; do if test "$SRC" = '--' ; then findonly=1 continue fi test -z "$SRC" && SRC=`pwd` if test "${SRC#http://}" != "$SRC" -o "${SRC#https://}" != "$SRC" -o "${SRC#ftp://}" != "$SRC" -o "${SRC#ftps://}" != "$SRC" ; then # remote repo, cache binary packages mkdir -p "$(getcachedir "$SRC")" if test "$BINTYPE" = arch ; then set -- $BUILD_DIR/createarchdeps --cachedir="$CACHE_DIR" "$SRC" elif test "$BINTYPE" = deb ; then set -- $BUILD_DIR/createdebdeps --cachedir="$CACHE_DIR" --archpath "$BUILD_ARCH" "$SRC" else set -- $BUILD_DIR/createrepomddeps --cachedir="$CACHE_DIR" "$SRC" fi elif test "${SRC#zypp://}" != "$SRC" ; then # special zypp repo set -- $BUILD_DIR/createzyppdeps --cachedir="$CACHE_DIR" "$SRC" elif test ! -e "$SRC" ; then echo "*** $SRC does not exist" >&2 cleanup_and_exit 1 elif test -z "$findonly" -a \( -e "$SRC"/suse/setup/descr/packages -o -e "$SRC"/suse/setup/descr/packages.gz \) ; then set -- $BUILD_DIR/createyastdeps "$SRC" elif test -z "$findonly" -a -e "$SRC"/repodata/repomd.xml ; then set -- $BUILD_DIR/createrepomddeps "$SRC" else set -- $BUILD_DIR/createrpmdeps "$SRC" fi echo "$@" >&2 "$@" || cleanup_and_exit 1 echo D: done > $CACHE_FILE.new mv $CACHE_FILE.new $CACHE_FILE echo "${repos[*]} ${BUILD_RPMS//:/ /}" > $CACHE_FILE.id fi } fail_exit() { cleanup_and_exit 1 } # modifies $SRC downloadpkg() { local url="$1" local cachedir 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.?z/.arch} SRC="$cachedir/$name" else echo "Invalid url: $url" cleanup_and_exit 1 fi local destdir="$cachedir/tmp" mkdir -p "$destdir" echo "downloading $url ... "; $BUILD_DIR/download "$destdir" "$url" || cleanup_and_exit 1 local destfile="$destdir/${url##*/}" if test ! -e "$destfile" ; then echo "expected $destfile after download but it's missing" >&2 cleanup_and_exit 1 fi case $destfile in *.rpm) rpm -K $DLNOSIGNATURE "$destfile" > $destfile.v || { echo "rpm verify failed" >&2; rm -rf "$destdir"; cleanup_and_exit 1; } if grep "NOT OK" $destfile.v; then rm -rf "$destdir" cleanup_and_exit 1 fi rm -f "$destfile.v" ;; esac mv "$destfile" "$SRC" || cleanup_and_exit 1 } getcachedir() { local url=$1 for repo in "${repos[@]}" ; do if test "${url:0:${#repo}}" == "$repo" ; then read repoid dummy < <(echo -n "$repo" | md5sum) echo "$CACHE_DIR/$repoid" break fi done } can_reuse_cached_package() { local cachepkgid pkgid test -s "$1" || return 1 # XXX verify for non-rpm types as well if test -s "$BUILD_ROOT/.init_b_cache/rpms/$PKG.id" -a "${1%.rpm}" != "$1" ; then pkgid=`rpm -qp --qf "$RPMIDFMT" $RPMCHECKOPTS_HOST "$1"` read cachepkgid < $BUILD_ROOT/.init_b_cache/rpms/$PKG.id test "$cachepkgid" = "$pkgid" || return 1 fi return 0 } set_build_arch trap fail_exit EXIT if test "$BUILD_ROOT" = / ; then browner="$(stat -c %u /)" fi if test -n "$CLEAN_BUILD" ; then clean_build_root fi # # now test if there was an incomplete run # 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 echo "Your build system is broken!! Shall I execute" echo echo " rm -rf -- $BUILD_ROOT/*" echo echo "y - yes, cleanup the build root" 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 ;; y|Y) clean_build_root ;; *) cleanup_and_exit 1 ;; esac fi # # store that we start to build system # mkdir -p $BUILD_ROOT mkdir -p $BUILD_ROOT/.build touch $BUILD_IS_RUNNING if test -n "$PREPARE_VM" ; then 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 else # # now make sure that all the packages are installed. # rm -rf "$BUILD_ROOT/.init_b_cache" mkdir -p "$BUILD_ROOT/.init_b_cache/scripts" if test -z "$RPMLIST" ; then # # create rpmdeps file # CACHE_FILE=$BUILD_ROOT/.srcfiles.cache create_cache_file # # select and expand packages # RPMLIST=$BUILD_ROOT/.init_b_cache/rpmlist test -z "$LIST_STATE" && echo "expanding package dependencies..." if ! $BUILD_DIR/expanddeps $USEUSEDFORBUILD "${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 fi if test -n "$LIST_STATE" ; then rm -f $BUILD_IS_RUNNING while read PKG SRC ; do test "$PKG" = "preinstall:" && continue test "$PKG" = "runscripts:" && continue test "$PKG" = "cbpreinstall:" && continue test "$PKG" = "vminstall:" && continue test "$PKG" = "dist:" && continue test "$PKG" = "rpmid:" && continue echo "${SRC##*/}" done < $BUILD_ROOT/.init_b_cache/rpmlist rm -rf "$BUILD_ROOT/.init_b_cache" cleanup_and_exit 0 fi # # register the QEMU emulator if needed # (we do not need this for the prepare step, as we do not run scripts in this case) # if test -z "$PREPARE_VM" ; then if check_use_emulator ; then echo "registering binfmt handlers for cross build" "$BUILD_DIR/$INITVM_NAME" echo 0 > /proc/sys/vm/mmap_min_addr read mmap_min_addr < /proc/sys/vm/mmap_min_addr if test "$mmap_min_addr" != 0 ; then echo "Warning: mmap_min_addr is != 0. If programs fail at mmap this could be the reason." fi fi fi # # extract the data from the (generated) rpm list # PACKAGES_TO_INSTALL= PACKAGES_TO_PREINSTALL= PACKAGES_TO_RUNSCRIPTS= PACKAGES_TO_VMINSTALL= PACKAGES_TO_INSTALLONLY= PACKAGES_TO_NOINSTALL= PREINSTALL_IMAGE= PREINSTALL_IMAGE_SOURCE= 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 while read PKG SRC ; do if test "$PKG" = "preinstall:" ; then PACKAGES_TO_PREINSTALL=$SRC continue fi if test "$PKG" = "vminstall:" ; then PACKAGES_TO_VMINSTALL=$SRC continue fi if test "$PKG" = "installonly:" ; then PACKAGES_TO_INSTALLONLY=$SRC continue fi if test "$PKG" = "noinstall:" ; then PACKAGES_TO_NOINSTALL=$SRC continue fi if test "$PKG" = "preinstallimage:" ; then PREINSTALL_IMAGE=${SRC##*/} ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/${SRC##*/}" continue fi if test "$PKG" = "preinstallimagesource:" ; then PREINSTALL_IMAGE_SOURCE="$SRC" continue fi if test "$PKG" = "runscripts:" ; then RUNSCRIPTS_SEEN=true PACKAGES_TO_RUNSCRIPTS=$SRC continue fi if test "$PKG" = "dist:" ; then GUESSED_DIST=$SRC continue fi if test "$PKG" = "rpmid:" ; then echo "${SRC#*:}" > $BUILD_ROOT/.init_b_cache/rpms/${SRC%%:*}.id continue fi if test "$PKG" != "${PKG%:}"; then echo "Warning: ignoring unsupported tag '$PKG'" >&2 continue fi if test "$SRC" = "preinstallimage" ; then PACKAGES_FROM_PREINSTALLIMAGE="$PACKAGES_FROM_PREINSTALLIMAGE $PKG" PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL $PKG" continue fi PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL $PKG" if test "${SRC#/}" = "$SRC" ; then case "$SRC" in zypp://* | http://* | https://* | ftp://* | ftps://*) echo "$PKG $SRC" >>$BUILD_ROOT/.init_b_cache/rpmlist.download continue ;; *) echo "unsupported url for '$PKG': $SRC" >&2 cleanup_and_exit 1 ;; esac fi SRCSUF=${SRC/%.pkg.tar.?z/.arch} ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}" done < $RPMLIST PACKAGES_TO_ALL="$PACKAGES_TO_INSTALL" PACKAGES_TO_AVAILABLE="$PACKAGES_TO_INSTALL" # subtract noinstall packages from PACKAGES_TO_INSTALL if test -n "$PACKAGES_TO_NOINSTALL" ; then settest=" $PACKAGES_TO_NOINSTALL " PACKAGES_TO_INSTALL= for PKG in $PACKAGES_TO_ALL ; do test "$settest" = "${settest/ $PKG /}" && PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL $PKG" done fi # subtract installonly packages from PACKAGES_TO_AVAILABLE if test -n "$PACKAGES_TO_INSTALLONLY" ; then settest=" $PACKAGES_TO_INSTALLONLY " PACKAGES_TO_AVAILABLE= for PKG in $PACKAGES_TO_ALL ; do test "$settest" = "${settest/ $PKG /}" && PACKAGES_TO_AVAILABLE="$PACKAGES_TO_AVAILABLE $PKG" done 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 rm -f $BUILD_ROOT/.init_b_cache/rpmlist.download2 rpm_set_checkopts while read PKG SRC ; do cachepkg="${SRC##*/}" 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} 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##*.}" 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 fi # now do the download of missing packages 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} 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 echo fi # compatibility... test -z "$RUNSCRIPTS_SEEN" && PACKAGES_TO_RUNSCRIPTS="$PACKAGES_TO_PREINSTALL" echo "$GUESSED_DIST" > $BUILD_ROOT/.guessed_dist test -n "$BUILD_DIST" || BUILD_DIST="$GUESSED_DIST" pkg_set_type 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" done fi fi # # 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 for PKG in $PACKAGES_TO_RUNSCRIPTS ; do : > $BUILD_ROOT/.init_b_cache/scripts/$PKG.run done PACKAGES_TO_PREINSTALL_FILTERED="$PACKAGES_TO_PREINSTALL" PACKAGES_TO_VMINSTALL_FILTERED="$PACKAGES_TO_VMINSTALL" rm -f "$BUILD_ROOT/.preinstall_image"/* if test -n "$PREINSTALL_IMAGE" ; then preinstall_image "$PREINSTALL_IMAGE" "$PREINSTALL_IMAGE_SOURCE" PACKAGES_TO_PREINSTALL_FILTERED=`preinstall_image_filter $PACKAGES_TO_PREINSTALL_FILTERED` PACKAGES_TO_VMINSTALL_FILTERED=`preinstall_image_filter $PACKAGES_TO_VMINSTALL_FILTERED` fi PACKAGES_TO_PREINSTALL_FILTERED=`reorder $PACKAGES_TO_PREINSTALL_FILTERED` progress_setup PACKAGES_TO_PREINSTALL_FILTERED for PKG in $PACKAGES_TO_PREINSTALL_FILTERED ; do progress_step PACKAGES_TO_PREINSTALL_FILTERED preinstall ${PKG##*/} done echo if test -n "$PREPARE_VM" ; then PACKAGES_TO_VMINSTALL_FILTERED=`reorder $PACKAGES_TO_VMINSTALL_FILTERED` progress_setup PACKAGES_TO_VMINSTALL_FILTERED for PKG in $PACKAGES_TO_VMINSTALL_FILTERED ; do progress_step PACKAGES_TO_VMINSTALL_FILTERED preinstall ${PKG##*/} done fi # for reorder check_exit if test -w /root ; then 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 if test -z "$PREPARE_VM" ; then run_pkg_scripts pkg_initdb 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" 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 check_exit done # alreadyinstalled check will not work, but we have to live with that... echo -n 'reordering...' PACKAGES_TO_INSTALL=`reorder $PACKAGES_TO_INSTALL` 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 # 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 rm -f $BUILD_IS_RUNNING cleanup_and_exit 0 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 # rm -rf "$BUILD_ROOT/.build.binaries" if test -n "$CREATE_BUILD_BINARIES" ; then echo "creating .build.binaries directory..." mkdir -p "$BUILD_ROOT/.build.binaries" for PKG in $PACKAGES_TO_AVAILABLE ; do test -L "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" || continue LPKG=`readlink -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF"` ln "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" 2>/dev/null test -f "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" && continue cp "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" check_exit done fi # # get list and ids of already installed rpms # mkdir -p $BUILD_ROOT/.init_b_cache/alreadyinstalled pkg_get_installed # # reorder packages (already done in vm continuation) # if ! test -e $BUILD_ROOT/.build/init_buildsystem.data ; then echo -n 'reordering...' PACKAGES_TO_INSTALL=`reorder $PACKAGES_TO_INSTALL` check_exit echo 'done' fi # # delete all packages we don't want # 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 done for PKG in $PACKAGES_TO_INSTALL; do rm -f $BUILD_ROOT/.init_b_cache/todelete/$PKG done for PKG in $BUILD_ROOT/.init_b_cache/todelete/* ; do PKG=${PKG##*/} test "$PKG" = "*" && continue echo "deleting $PKG" pkg_erase check_exit done rm -rf "$BUILD_ROOT/.init_b_cache/todelete" rm -rf "$BUILD_ROOT/.init_b_cache/preinstalls" mkdir -p "$BUILD_ROOT/.init_b_cache/preinstalls" for PKG in $PACKAGES_TO_PREINSTALL; do touch "$BUILD_ROOT/.init_b_cache/preinstalls/$PKG" done rm -rf "$BUILD_ROOT/installed-pkg" mkdir -p "$BUILD_ROOT/installed-pkg" test -x $BUILD_ROOT/sbin/ldconfig && $CHROOT /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 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 echo "Package $PKG is missing from the preinstall image" cleanup_and_exit 1 fi read PKG_HDRMD5 PKGID < $BUILD_ROOT/.preinstall_image/$PKG echo "preinstalled ${PKGID%% *}" echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG continue fi PKG_HDRMD5= if test -d $BUILD_ROOT/.preinstall_image ; then if ! test -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 fi test -L $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF || continue # XXX? 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%% *}" echo "$PKGID" > $BUILD_ROOT/installed-pkg/$PKG test -n "$PKG_HDRMD5" && echo "$PKG_HDRMD5 $PKGID" > $BUILD_ROOT/.preinstall_image/$PKG continue fi fi pkg_set_packageid 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 continue fi echo "deleting incomplete ${OLDPKGID%% *}" pkg_erase fi if test -e "$BUILD_ROOT/.init_b_cache/preinstalls/$PKG" ; then preinstall "$PKG" fi fi if pkg_cumulate ; then echo "cumulate ${PKGID%% *}" continue fi 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 fi pkg_install 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 pkg_finalize # devices can vanish if devs got uninstalled test -c $BUILD_ROOT/dev/null || create_devs 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 # # make sure, that our nis is not present in the chroot system # 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 } # # create some default directories and files # for DIR in /usr/share/doc/packages \ /usr/X11R6/include/X11/pixmaps \ /usr/X11R6/include/X11/bitmaps ; do 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 done echo now finalizing build dir... if test -x $BUILD_ROOT/sbin/ldconfig ; then CHROOT_RETURN="`$CHROOT /sbin/ldconfig 2>&1`" case "$CHROOT_RETURN" in *warning:*) $CHROOT /sbin/ldconfig echo echo $CHROOT /sbin/ldconfig echo echo "$CHROOT_RETURN" echo echo "Problem with ldconfig. It's better to reinit the build system..." echo cleanup_and_exit 1 ;; esac fi if test -x $BUILD_ROOT/usr/sbin/Check && ! grep -q "/usr/sbin/Check is obsolete" $BUILD_ROOT/usr/sbin/Check ; then $CHROOT /usr/sbin/Check fi 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 /sbin/SuSEconfig --norestarts --force else $CHROOT /sbin/SuSEconfig --force fi fi if test -x $BUILD_ROOT/usr/X11R6/bin/switch2mesasoft ; then $CHROOT /usr/X11R6/bin/switch2mesasoft fi for PROG in /usr/bin/TeX/texhash /usr/bin/texhash ; do test -x $BUILD_ROOT/$PROG && \ $CHROOT bash -c ". /etc/profile ; $PROG" done 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 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 # 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 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 pkg_initdb_rpm $CHROOT rpm -q --whatprovides rpm >/dev/null 2>&1 # create provides index fi rm -f $BUILD_ROOT/.rpmmacros $BUILD_ROOT/root/.rpmmacros rm -rf "$BUILD_ROOT/.init_b_cache" rm -f $BUILD_IS_RUNNING rm -f $TMPFILE cleanup_and_exit 0 # vim: set tabstop=8 softtabstop=4 shiftwidth=4 noexpandtab: obs-build-20141024/computeblocklists0000755000000000000000000001155012422424142017262 0ustar rootroot00000000000000#!/usr/bin/perl -w # compute the blocks used by a file # usage: # computeblocklists [options] # options: # --padstart NUM, --padend NUM, --verbose # # output: # # # a block is either a number or a range (start-end) # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; my ($opt_padstart, $opt_padend, $opt_verbose, $opt_manifest, $opt_mani0); $opt_verbose = 0; while (@ARGV) { if ($ARGV[0] eq '--padstart') { shift @ARGV; $opt_padstart = shift @ARGV; next; } if ($ARGV[0] eq '--padend') { shift @ARGV; $opt_padend = shift @ARGV; next; } if ($ARGV[0] eq '--verbose' || $ARGV[0] eq '-v') { shift @ARGV; $opt_verbose++; next; } if ($ARGV[0] eq '-0') { shift @ARGV; $opt_mani0 = 1; next; } if ($ARGV[0] eq '--manifest') { shift @ARGV; $opt_manifest = shift @ARGV; next; } last; } print "\n"x$opt_padstart if $opt_padstart; if ($opt_manifest) { if ($opt_manifest eq '-') { open(MANIFEST, '<&STDIN') || die("STDIN dup: $!\n"); } else { open(MANIFEST, '<', $opt_manifest) || die("$opt_manifest: $!\n"); } } while (1) { my $file; if (@ARGV) { $file = shift @ARGV; } elsif ($opt_manifest) { if ($opt_mani0) { local $/ = "\0"; $file = ; last unless defined $file; $file =~ s/\0$//s; } else { $file = ; last unless defined $file; chomp $file; } } else { last; } my $n = $file; $n =~ s/([\000-\037 %])/sprintf("%%%02X", ord($1))/ges; if (-l $file) { print STDERR "$file\n" if $opt_verbose && !($opt_verbose == 1 && $file =~ /^KIWI\/.*\//); my $c = readlink($file); die("$file: readlink: $!\n") unless defined $c; if ("/$c/" =~ /\/\.?\//s) { print STDERR "$file: bad symlink ($c) ignored\n"; next; } if ("/$c/" =~ /^(\/\.\.)+\/(.*?)$/s) { my ($head, $tail) = ($1, $2); if (("/$tail/" =~ /\/\.\.\//s) || (($head =~ y!/!!) > ($file =~ y!/!!))) { print STDERR "$file: bad symlink ($c) ignored\n"; next; } } else { if ("/$c/" =~ /\/\.\.\//s) { print STDERR "$file: bad symlink ($c) ignored\n"; next; } } $c =~ s/([\000-\037 %])/sprintf("%%%02X", ord($1))/ges; print "l $n $c\n"; next; } elsif (-d _) { print STDERR "$file\n" if $opt_verbose && $opt_verbose > 1; my @stat = stat(_); print "d $n\n"; next; } elsif (!-f _) { next; } print STDERR "$file\n" if $opt_verbose && !($opt_verbose == 1 && $file =~ /^KIWI\/.*\//); if (!open(F, '<', $file)) { print STDERR "$file: $!"; next; } my @stat = stat(F); die unless @stat; my $st_size = $stat[7]; if ($st_size == 0) { print "f $n 0\n"; close F; next; } my $bsize = 'xxxx'; ioctl(F, 2, $bsize) || ioctl(F, 536870914, $bsize) || die("FIGETBSZ: $!\n"); $bsize = unpack("L", $bsize); die("$file: empty blocksize\n") unless $bsize != 0; print "f $n $st_size $bsize"; my $blocks = int(($st_size+$bsize-1)/$bsize); my ($firstblock, $lastblock); for ($b = 0; $b < $blocks; ++$b) { my $block = pack('I', $b); if (not defined ioctl(F, 1, $block)) { if (not defined ioctl(F, 536870913, $block)) { die "$file: $!\n"; } } $block = unpack('I', $block); if (!$firstblock && defined($firstblock)) { # last block was hole if (!$block) { $lastblock++; # count holes, 0-2 means three hole blocks } else { # switch back from 'hole mode' into normal mode printf "-$lastblock" if defined($firstblock) && $firstblock != $lastblock; print " $block"; $firstblock = $lastblock = $block; } next; } if (!$firstblock || $lastblock + 1 != $block) { # start of a new run printf "-$lastblock" if defined($firstblock) && $firstblock != $lastblock; print " $block"; $firstblock = $block; } $lastblock = $block; } # finish last run printf "-$lastblock" if defined($firstblock) && $firstblock != $lastblock; close F; print "\n"; } print "\n"x$opt_padend if $opt_padend; obs-build-20141024/mkdrpms0000755000000000000000000001104112422424142015164 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, '/usr/lib/build'; unshift @INC, $::ENV{'BUILD_DIR'} if $::ENV{'BUILD_DIR'}; } use Build; use strict; my $limit = 80; # throw away deltas bigger than this percentage of the reference my %oldpkgs; sub query { my ($file) = @_; return undef if $file =~ /\.(?:patch|delta)\.rpm$/; # XXX: rpmtags? my %res = Build::Rpm::rpmq($file, qw/NAME EPOCH VERSION RELEASE ARCH SOURCERPM NOSOURCE NOPATCH 1124/); return undef unless %res; return undef if $res{'1124'}->[0] && $res{'1124'}->[0] eq 'drpm'; my $arch; if ($res{'SOURCERPM'}->[0]) { $arch = $res{'ARCH'}->[0]; } else { # no src rpm deltas for now # if ($res{'NOSOURCE'}->[0] || $res{'NOPATCH'}->[0]) { # $arch = 'nosrc'; # } else { # $arch = 'src'; # } return undef; } return { file => $file, name => $res{'NAME'}->[0], epoch => $res{'EPOCH'} ? $res{'EPOCH'}->[0] : '', version => $res{'VERSION'}->[0], release => $res{'RELEASE'}->[0], arch => $arch}; } sub lsrpms { local *D; if (-f "$_[0]") { return ($_[0]) if $_[0] =~ /\.rpm$/; return (); } opendir(D, $_[0]) || return (); my @r = grep {$_ ne '.' && $_ ne '..'} readdir(D); closedir D; return map {"$_[0]/$_"} grep {/\.rpm$/} sort(@r); } while (@ARGV) { if ($ARGV[0] eq '--limit') { shift @ARGV; die("--limit needs an argument\n") unless @ARGV; $limit = shift @ARGV; next; } last; } my $prevbuild = shift @ARGV || die "USAGE: $0 "; my @prevbuild = ($prevbuild); my $i = 1; while (-d $prevbuild.$i) { push @prevbuild, $prevbuild.$i; ++$i; } for my $dir (@prevbuild) { for my $file (lsrpms($dir)) { my $q = query($file); next unless $q; my $n = $q->{'name'}.'.'.$q->{'arch'}; push @{$oldpkgs{$n}}, $q; } } my $sysret = 0; for my $dir (@ARGV) { for my $file (lsrpms($dir)) { my $q = query($file); next unless $q; my $n = $q->{'name'}.'.'.$q->{'arch'}; for my $oq (@{$oldpkgs{$n} || []}) { my $v = $oq->{'version'}; my $r = $oq->{'release'}; if ($v eq $q->{'version'} && $r eq $q->{'release'}) { # skip if same version and release next; } $v .= '_'.$q->{'version'} unless $v eq $q->{'version'}; $r .= '_'.$q->{'release'} unless $r eq $q->{'release'}; my $dn = sprintf("%s-%s-%s.%s.drpm", $q->{'name'}, $v, $r, $q->{'arch'}); my $sn = sprintf("%s-%s-%s.%s.dseq", $q->{'name'}, $v, $r, $q->{'arch'}); print "$dn ... "; my $dndir = $q->{'file'}; $dndir =~ s/[^\/]+$//s; $dn = "$dndir$dn"; my $ret = system('makedeltarpm', '-s', $sn, $oq->{'file'}, $q->{'file'}, $dn); if ($ret || ! -e $dn) { unlink($dn); unlink($sn); print "FAILED\n"; $sysret = 1; } else { my $ns = (stat($dn))[7] || 1; my $os = (stat($q->{'file'}))[7] || 1; my $factor = int($ns / $os * 100); if ($factor > $limit) { print "too big ($factor%), removed\n"; unlink($dn); unlink($sn); } else { local *F; my $seq = ''; if (!open(F, '<', $sn)) { print "missing sequence file, removed\n"; unlink($dn); unlink($sn); next; } 1 while sysread(F, $seq, 8192, length($seq)); close F; chomp $seq; unlink($sn); $seq = "Name: $q->{'name'}\nEpoch: $q->{'epoch'}\nVersion: $q->{'version'}\nRelease: $q->{'release'}\nArch: $q->{'arch'}\nOldName: $oq->{'name'}\nOldEpoch: $oq->{'epoch'}\nOldVersion: $oq->{'version'}\nOldRelease: $oq->{'release'}\nOldArch: $oq->{'arch'}\nSeq: $seq\n"; if (!open(F, '>', $sn) || syswrite(F, $seq) != length($seq) || !close(F)) { print "sequence file write error, removed\n"; unlink($dn); unlink($sn); next; } print "ok ($factor%)\n"; } } } } } exit $sysret; obs-build-20141024/livebuild_pre_run.template0000755000000000000000000000416112422424142021037 0ustar rootroot00000000000000#!/bin/bash # # This is a template for a livebuild_pre_run script. These scripts are # executed by build_livebuild.sh in the chroot environment. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ fix_debootstrap() { # debootstrap in Debian 7.0 does not like dash if [ -x /usr/sbin/debootstrap ] ; then sed -i 's|^#!/bin/sh|#!/bin/bash|' /usr/sbin/debootstrap fi } fix_lb_bootstrap_archive-keys() { if [ -e /usr/lib/live/build/bootstrap_archive-keys ] ; then sed -i '/apt-get update/{ s/^/#/ }' \ /usr/lib/live/build/bootstrap_archive-keys fi } # # main # : ${TOPDIR:=/usr/src/packages} # Distribution and live-build specific hooks fix_debootstrap fix_lb_bootstrap_archive-keys # Expand configuration based on defaults cd $TOPDIR/LIVEBUILD_ROOT && lb config || exit 1 # Replace all occurances of LB_MIRROR with local repository sed -i "s|^\(LB_MIRROR_[^=]\+=\).*|\1\"file:$TOPDIR/SOURCES/repos/\"|" \ $TOPDIR/LIVEBUILD_ROOT/config/bootstrap sed -i "s|^\(LB_PARENT_MIRROR_[^=]\+=\).*|\1\"file:$TOPDIR/SOURCES/repos/\"|" \ $TOPDIR/LIVEBUILD_ROOT/config/bootstrap # Prevent debootstrap from cleaning our cache sed -i 's|^\(LB_CACHE_PACKAGES=\).*|\1"false"|' \ $TOPDIR/LIVEBUILD_ROOT/config/common # Disable GPG checking sed -i 's|^\(LB_APT_SECURE=\).*|\1"false"|' \ $TOPDIR/LIVEBUILD_ROOT/config/common obs-build-20141024/build-recipe-kiwi0000644000000000000000000004233212422424142017020 0ustar rootroot00000000000000# # KIWI specific functions. Handle with care. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ ############################################################ # post scriptlet generation functions kiwi_post_oem() { cat <<-EOF echo "compressing oem images... " cd /$TOPDIR/KIWI-oem # do not store compressed file _and_ uncompressed one [ -e "$imageout.gz" ] && rm -f "$imageout" if [ -e "$imageout.iso" ]; then echo "take iso file and create sha256..." mv "$imageout.iso" "/$TOPDIR/KIWI/$imageout$buildnum.iso" pushd /$TOPDIR/KIWI if [ -x /usr/bin/sha256sum ]; then /usr/bin/sha256sum "$imageout$buildnum.iso" > "$imageout$buildnum.iso.sha256" fi popd fi if [ -e "$imageout.install.iso" ]; then echo "take install.iso file and create sha256..." mv "$imageout.install.iso" "/$TOPDIR/KIWI/$imageout$buildnum.install.iso" pushd /$TOPDIR/KIWI if [ -x /usr/bin/sha256sum ]; then /usr/bin/sha256sum "$imageout$buildnum.install.iso" > "$imageout$buildnum.install.iso.sha256" fi popd fi if [ -e "$imageout.qcow2" ]; then mv "$imageout.qcow2" "/$TOPDIR/KIWI/$imageout$buildnum.qcow2" pushd /$TOPDIR/KIWI if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." /usr/bin/sha256sum "$imageout$buildnum.qcow2" > "$imageout$buildnum.qcow2.sha256" fi popd fi if [ -e "$imageout.raw.install.raw" ]; then compress_tool="bzip2" compress_suffix="bz2" if [ -x /usr/bin/xz ]; then # take xz to get support for sparse files compress_tool="xz -2" compress_suffix="xz" fi mv "$imageout.raw.install.raw" "/$TOPDIR/KIWI/$imageout$buildnum.raw.install.raw" pushd /$TOPDIR/KIWI echo "\$compress_tool raw.install.raw file..." \$compress_tool "$imageout$buildnum.raw.install.raw" if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." /usr/bin/sha256sum "$imageout$buildnum.raw.install.raw.\${compress_suffix}" > "$imageout$buildnum.raw.install.raw.\${compress_suffix}.sha256" fi popd fi if [ -e "$imageout.raw" ]; then compress_tool="bzip2" compress_suffix="bz2" if [ -x /usr/bin/xz ]; then # take xz to get support for sparse files compress_tool="xz -2" compress_suffix="xz" fi mv "$imageout.raw" "/$TOPDIR/KIWI/$imageout$buildnum.raw" pushd /$TOPDIR/KIWI echo "\$compress_tool raw file..." \$compress_tool "$imageout$buildnum.raw" if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." /usr/bin/sha256sum "$imageout$buildnum.raw.\${compress_suffix}" > "$imageout$buildnum.raw.\${compress_suffix}.sha256" fi popd fi EOF } kiwi_post_vmx() { cat <<-EOF echo "compressing vmx images... " cd /$TOPDIR/KIWI-vmx compress_tool="bzip2" compress_suffix="bz2" if [ -x /usr/bin/xz ]; then # take xz to get support for sparse files compress_tool="xz -2" compress_suffix="xz" fi VMXFILES="" SHAFILES="" for suffix in "ovf" "qcow2" "ova" "tar" "vhdfixed" "vhd"; do if [ -e "$imageout.\$suffix" ]; then if [ "\$suffix" == "vhd" -o "\$suffix" == "vhdfixed" ]; then mv "$imageout.\$suffix" "/$TOPDIR/KIWI/$imageout$buildnum.\$suffix" pushd /$TOPDIR/KIWI echo "\$compress_tool \$suffix file..." \$compress_tool "$imageout$buildnum.\$suffix" SHAFILES="\$SHAFILES $imageout$buildnum.\$suffix.\${compress_suffix}" popd elif [ "\$suffix" == "ovf" ]; then mv "$imageout.\${suffix}/$imageout.\$suffix" "/$TOPDIR/KIWI/$imageout$buildnum.\$suffix" SHAFILES="\$SHAFILES $imageout$buildnum.\$suffix" else mv "$imageout.\$suffix" "/$TOPDIR/KIWI/$imageout$buildnum.\$suffix" SHAFILES="\$SHAFILES $imageout$buildnum.\$suffix" fi fi done # This option has a number of format parameters for i in "$imageout.vmx" "$imageout.vmdk" "$imageout-disk*.vmdk"; do test -e \$i && VMXFILES="\$VMXFILES \$i" done # take raw files as fallback if [ -n "\$VMXFILES" ]; then tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-vmx.tar.bz2" \$VMXFILES SHAFILES="\$SHAFILES $imageout$buildnum-vmx.tar.bz2" elif [ -z "\$SHAFILES" -a -e "$imageout.raw" ]; then mv "$imageout.raw" "/$TOPDIR/KIWI/$imageout$buildnum-vmx.raw" pushd /$TOPDIR/KIWI echo "\$compress_tool raw file..." \$compress_tool "$imageout$buildnum-vmx.raw" SHAFILES="\$SHAFILES $imageout$buildnum-vmx.raw.\${compress_suffix}" popd fi if [ -e "$imageout.box" ]; then tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-vmx-box.tar.bz2" $imageout.box $imageout.json SHAFILES="\$SHAFILES $imageout$buildnum-vmx-box.tar.bz2" fi if [ -e "$imageout.xenconfig" ]; then tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-vmx.tar.bz2" $imageout.xenconfig $imageout.raw initrd-* SHAFILES="\$SHAFILES $imageout$buildnum-vmx.tar.bz2" fi # FIXME: do we need a single .raw file in any case ? cd /$TOPDIR/KIWI if [ -n "\$SHAFILES" -a -x /usr/bin/sha256sum ]; then for i in \$SHAFILES; do echo "Create sha256 file..." /usr/bin/sha256sum "\$i" > "\$i.sha256" done fi tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-raw.tar.bz2" \ --exclude="$imageout.iso" --exclude="$imageout.raw" --exclude="$imageout.qcow2" * cd /$TOPDIR/KIWI if [ -x /usr/bin/sha256sum ]; then /usr/bin/sha256sum "$imageout$buildnum-raw.tar.bz2" > "$imageout$buildnum-raw.tar.bz2.sha256" fi EOF } kiwi_post_xen() { cat <<-EOF echo "compressing xen images... " cd /$TOPDIR/KIWI-xen # do not store compressed file _and_ uncompressed one [ -e "$imageout.gz" ] && rm -f "$imageout" tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-xen.tar.bz2" \ `grep ^kernel $imageout.xenconfig | cut -d'"' -f2` \ `grep ^ramdisk $imageout.xenconfig | cut -d'"' -f2` \ initrd-* \ "$imageout.xenconfig" \ "$imageout" if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." cd $TOPDIR/KIWI /usr/bin/sha256sum "$imageout$buildnum-xen.tar.bz2" > "$imageout$buildnum-xen.tar.bz2.sha256" fi EOF } kiwi_post_pxe() { cat <<-EOF echo "compressing pxe images... " cd /$TOPDIR/KIWI-pxe # do not store compressed file _and_ uncompressed one [ -e "$imageout.gz" ] && rm -f "$imageout" tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-pxe.tar.bz2" ${imageout}* initrd-* if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." cd $TOPDIR/KIWI /usr/bin/sha256sum "$imageout$buildnum-pxe.tar.bz2" > "$imageout$buildnum-pxe.tar.bz2.sha256" fi EOF } kiwi_post_iso() { cat <<-EOF cd /$TOPDIR/KIWI-iso for i in *.iso; do mv "\$i" "/$TOPDIR/KIWI/\${i%.iso}$buildnum.iso" done if [ -x /usr/bin/sha256sum ]; then echo "creating sha256 sum for iso images... " cd $TOPDIR/KIWI for i in *.iso; do /usr/bin/sha256sum "\$i" > "\$i.sha256" done fi EOF } kiwi_post_tbz() { cat <<-EOF cd /$TOPDIR/KIWI-tbz for i in *.tbz; do file=\$(readlink -f "\$i") [ -z "\$file" ] && echo readlink failed for $i mv "\$file" "/$TOPDIR/KIWI/\${i%.tbz}$buildnum.tbz" done if [ -x /usr/bin/sha256sum ]; then echo "creating sha256 sum for tar balls... " cd $TOPDIR/KIWI for i in *.tbz; do /usr/bin/sha256sum "\$i" > "\$i.sha256" done fi EOF } kiwi_post_unknown() { cat <<-EOF echo "compressing unkown images... " cd /$TOPDIR/KIWI-$imgtype # do not store compressed file _and_ uncompressed one [ -e "$imageout.gz" ] && rm -f "$imageout" tar cvjfS "/$TOPDIR/KIWI/$imageout$buildnum-$imgtype.tar.bz2" * if [ -x /usr/bin/sha256sum ]; then echo "Create sha256 file..." cd /$TOPDIR/KIWI /usr/bin/sha256sum "$imageout$buildnum-$imgtype.tar.bz2" > "$imageout$buildnum-$imgtype.tar.bz2.sha256" fi EOF } ############################################################ recipe_setup_kiwi() { TOPDIR=/usr/src/packages mkdir -p "$BUILD_ROOT$TOPDIR" mkdir -p "$BUILD_ROOT$TOPDIR/OTHER" mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES" mkdir -p "$BUILD_ROOT$TOPDIR/KIWI" chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" if test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir ; then mv "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ else if test -z "$LINKSOURCES" ; then cp -dLR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ else cp -lR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ fi if test "$?" != 0 ; then echo "source copy failed" cleanup_and_exit 1 fi fi # extract macros from configuration # some post scripts might call rpm-build and rely on the macros queryconfig rawmacros --dist "$BUILD_DIST" --archpath "$BUILD_ARCH" --configdir "$CONFIG_DIR" > $BUILD_ROOT/root/.rpmmacros } recipe_prepare_kiwi() { : } ## obsolete with current kiwi versions, only needed for kiwi 3.01 version run_suse_isolinux() { for i in $BUILD_ROOT/$TOPDIR/KIWIROOT/main/* ; do test -d "$i" || continue i="${i##*/}" test "$i" = scripts && continue test "$i" != "${i%0}" && continue $CHROOT su -c "suse-isolinux $TOPDIR/KIWIROOT/main/$i $TOPDIR/KIWI/$i.iso" - $BUILD_USER done } build_kiwi_product() { echo "running kiwi --create-instsource..." # runs always as abuild user mkdir -p "$BUILD_ROOT/$TOPDIR/KIWIROOT" # XXX: again? chroot "$BUILD_ROOT" chown -R abuild.abuild "$TOPDIR" chroot "$BUILD_ROOT" rm -rf "$TOPDIR/KIWIROOT" ver=`chroot "$BUILD_ROOT" su -c "/usr/sbin/kiwi --version | sed -n 's,.*kiwi version v\(.*\),\1,p'"` test -n "$ver" || ver=`chroot "$BUILD_ROOT" su -c "/usr/sbin/kiwi --version | sed -n 's,.* vnr: \(.*\),\1,p'"` if test "${ver:0:1}" == "3" ; then # old style kiwi 3 builds chroot "$BUILD_ROOT" su -c "APPID=- LANG=POSIX /usr/sbin/kiwi --root $TOPDIR/KIWIROOT -v --logfile terminal -p $TOPDIR/SOURCES --instsource-local --create-instsource $TOPDIR/SOURCES" - abuild < /dev/null && BUILD_SUCCEEDED=true test ${ver:2:2} == "01" && run_suse_isolinux else VERBOSE_OPTION="-v 2" # broken kiwi version, not accepting verbose level test "${ver:0:1}" == "4" -a "${ver:2:2}" -lt 90 && VERBOSE_OPTION="-v -v" chroot "$BUILD_ROOT" su -c "APPID=- LANG=POSIX /usr/sbin/kiwi --root $TOPDIR/KIWIROOT $VERBOSE_OPTION --logfile terminal -p $TOPDIR/SOURCES --create-instsource $TOPDIR/SOURCES" - abuild < /dev/null && BUILD_SUCCEEDED=true fi # move created product to correct destination for i in $BUILD_ROOT/$TOPDIR/KIWIROOT/main/* ; do test -e "$i" || continue f=${i##*/} case $f in *.iso) if [ -x /usr/bin/sha256sum ]; then /usr/bin/sha256sum "$i" > "$i.sha256" mv "$i.sha256" $BUILD_ROOT/$TOPDIR/KIWI/. fi mv "$i" $BUILD_ROOT/$TOPDIR/KIWI/. ;; *.packages) mv $i $BUILD_ROOT/$TOPDIR/OTHER/. ;; *.report) mv $i $BUILD_ROOT/$TOPDIR/OTHER/. ;; scripts) ;; *0) ;; *) test -d $i -a "$drop_repo" != true && mv $i $BUILD_ROOT/$TOPDIR/KIWI/. ;; esac done } build_kiwi_appliance() { if test -z "$RUNNING_IN_VM" ; then # NOTE: this must be done with the outer system, because it loads the dm-mod kernel modules, which needs to fit to the kernel. echo "starting device mapper for kiwi..." test -x /etc/init.d/boot.device-mapper && /etc/init.d/boot.device-mapper start fi RUN_BUNDLE="true" for imgtype in $imagetype ; do echo "running kiwi --prepare for $imgtype..." # Do not use $BUILD_USER here, since we always need root permissions $CHROOT su -c "cd $TOPDIR/SOURCES && kiwi --prepare $TOPDIR/SOURCES --logfile terminal --root $TOPDIR/KIWIROOT-$imgtype $KIWI_PARAMETERS" - root < /dev/null || cleanup_and_exit 1 echo "running kiwi --create for $imgtype..." mkdir -p $BUILD_ROOT/$TOPDIR/KIWI-$imgtype $CHROOT su -c "cd $TOPDIR/SOURCES && kiwi --create $TOPDIR/KIWIROOT-$imgtype --logfile terminal --type $imgtype -d $TOPDIR/KIWI-$imgtype $KIWI_PARAMETERS" - root < /dev/null || cleanup_and_exit 1 rm -rf "/$TOPDIR/KIWI.bundle" if $CHROOT su -c "kiwi --bundle-build $TOPDIR/KIWI-$imgtype -d /$TOPDIR/KIWI.bundle/ --bundle-id Build$RELEASE" - root < /dev/null; then mv "$BUILD_ROOT/$TOPDIR/KIWI.bundle/"* "$BUILD_ROOT/$TOPDIR/KIWI/" || cleanup_and_exit 1 rmdir "$BUILD_ROOT/$TOPDIR/KIWI.bundle" unset RUN_BUNDLE fi done BUILD_SUCCEEDED=true if test -z "$RUN_BUNDLE"; then # new kiwi has bundled our result already :) return fi # # Legacy bundling code for kiwi version below 5.06.106 # # create tar.gz of images, in case it makes sense buildnum= if test -n "$RELEASE"; then buildnum="-Build$RELEASE" fi imagearch=`uname -m` imageout="$imagename.$imagearch-$imageversion" for imgtype in $imagetype ; do case "$imgtype" in oem) kiwi_post_oem > $BUILD_ROOT/kiwi_post.sh ;; vmx) kiwi_post_vmx > $BUILD_ROOT/kiwi_post.sh ;; xen) kiwi_post_xen > $BUILD_ROOT/kiwi_post.sh ;; pxe) kiwi_post_pxe > $BUILD_ROOT/kiwi_post.sh ;; iso) kiwi_post_iso > $BUILD_ROOT/kiwi_post.sh ;; tbz) kiwi_post_tbz > $BUILD_ROOT/kiwi_post.sh ;; *) kiwi_post_unknown > $BUILD_ROOT/kiwi_post.sh ;; esac cat >> $BUILD_ROOT/kiwi_post.sh <<-EOF cd /$TOPDIR/KIWI-$imgtype if [ -e "$imageout.channel" ]; then echo "Found kiwi channel list file, exporting as well..." cp "$imageout.channel" "/$TOPDIR/OTHER/$imageout$buildnum-$imgtype.channel" fi if [ -e "$imageout.packages" ]; then echo "Found kiwi package list file, exporting as well..." cp "$imageout.packages" "/$TOPDIR/OTHER/$imageout$buildnum-$imgtype.packages" fi if [ -e "$imageout.verified" ]; then echo "Found rpm verification report, exporting as well..." cp "$imageout.verified" "/$TOPDIR/OTHER/$imageout$buildnum-$imgtype.verified" fi EOF $CHROOT su -c "sh -e /kiwi_post.sh" || cleanup_and_exit 1 rm -f $BUILD_ROOT/kiwi_post.sh done } recipe_build_kiwi() { imagetype=$(perl -I$BUILD_DIR -MBuild::Kiwi -e Build::Kiwi::show $BUILD_ROOT/$TOPDIR/SOURCES/$RECIPEFILE imagetype) imagename=$(perl -I$BUILD_DIR -MBuild::Kiwi -e Build::Kiwi::show $BUILD_ROOT/$TOPDIR/SOURCES/$RECIPEFILE filename) imageversion=$(perl -I$BUILD_DIR -MBuild::Kiwi -e Build::Kiwi::show $BUILD_ROOT/$TOPDIR/SOURCES/$RECIPEFILE version) drop_repo=$(perl -I$BUILD_DIR -MBuild::Kiwi -e Build::Kiwi::show $BUILD_ROOT/$TOPDIR/SOURCES/$RECIPEFILE drop_repository) # prepare rpms as source and createrepo on the repositories ln -sf $TOPDIR/SOURCES/repos $BUILD_ROOT/repos cd $BUILD_ROOT/$TOPDIR/SOURCES/repos for r in */* ; do test -L $r && continue test -d $r || continue repo="$TOPDIR/SOURCES/repos/$r/" # create compatibility link for old kiwi versions rc="${r//:/:/}" if test "$rc" != "$r" ; then rl="${rc//[^\/]}" rl="${rl//?/../}" mkdir -p "${rc%/*}" ln -s $rl$r "${rc%/*}/${rc##*/}" repo="$TOPDIR/SOURCES/repos/${rc%/*}/${rc##*/}/" fi if test "$imagetype" != product -a "$DO_INIT" != "false" ; then echo "creating repodata for $repo" if $CHROOT createrepo --no-database --simple-md-filenames --help >/dev/null 2>&1 ; then $CHROOT createrepo --no-database --simple-md-filenames "$repo" else $CHROOT createrepo "$repo" fi fi done # unpack root tar for t in $BUILD_ROOT/$TOPDIR/SOURCES/root.tar* ; do test -f $t || continue mkdir -p $BUILD_ROOT/$TOPDIR/SOURCES/root $CHROOT tar -C $TOPDIR/SOURCES/root -xf "$TOPDIR/SOURCES/${t##*/}" done # fix script permissions chmod a+x $BUILD_ROOT/$TOPDIR/SOURCES/*.sh 2>/dev/null # unpack tar files in image directories if test -d $BUILD_ROOT/$TOPDIR/SOURCES/images ; then ( cd $BUILD_ROOT/$TOPDIR/SOURCES/images for r in */* ; do test -L $r && continue test -d $r || continue for t in $r/root.tar* ; do test -f $t || continue mkdir -p $r/root $CHROOT tar -C $TOPDIR/SOURCES/images/$r/root -xf "$TOPDIR/SOURCES/images/$r/${t##*/}" done # fix script permissions chmod a+x $BUILD_ROOT/$TOPDIR/SOURCES/images/$r/*.sh 2>/dev/null # create compatibility link for old kiwi versions rc="${r//:/:/}" if test "$rc" != "$r" ; then rl="${rc//[^\/]}" rl="${rl//?/../}" mkdir -p "${rc%/*}" ln -s $rl$r "${rc%/*}/${rc##*/}" fi done ) fi rm -f $BUILD_ROOT/$TOPDIR/SOURCES/config.xml ln -s $RECIPEFILE $BUILD_ROOT/$TOPDIR/SOURCES/config.xml if test "$imagetype" = product ; then build_kiwi_product else build_kiwi_appliance fi # Hook for running post kiwi build scripts like QA scripts if installed if test -x $BUILD_ROOT/usr/lib/build/kiwi_post_run ; then $CHROOT su -c /usr/lib/build/kiwi_post_run || cleanup_and_exit 1 fi } recipe_resultdirs_kiwi() { echo KIWI } obs-build-20141024/build-vm-emulator0000644000000000000000000000470112422424142017056 0ustar rootroot00000000000000# # generic emulator specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ vm_verify_options_emulator() { if test -f "$BUILD_DIR/emulator/verify-options.sh"; then . "$BUILD_DIR/emulator/verify-options.sh" else VM_SWAP= fi } vm_startup_emulator() { pushd "$BUILD_DIR/emulator" if test -z "$EMULATOR_SCRIPT" ; then EMULATOR_SCRIPT=./emulator.sh elif test "${EMULATOR_SCRIPT:0:1}" != / ; then EMULATOR_SCRIPT="./$EMULATOR_SCRIPT" fi set -- "$EMULATOR_SCRIPT" "$VM_IMAGE" "$VM_SWAP" echo "$@" if ! "$@"; then popd echo "ERROR: The emulator returned with a failure" cleanup_and_exit 3 fi popd test -n "$VM_SWAP" && return # Emulators may not offer to use a second swap space. # So we just mount the filesystem. # WARNING: This is not safe against attacks. mkdir -p $BUILD_ROOT/.build.packages cd $BUILD_ROOT/.build.packages || cleanup_and_exit 1 mkdir -p .mount mount $VM_IMAGE -o loop .mount if test -e .mount/.build.packages ; then cp -a .mount/.build.packages/* . fi exitcode=`cat .mount/.build/_exitcode` umount .mount rmdir .mount cleanup_and_exit "$exitcode" } vm_kill_emulator() { if ! fuser -k -TERM "$VM_IMAGE" ; then echo "could not kill build in $VM_IMAGE" cleanup_and_exit 1 fi } vm_fixup_emulator() { # emulator may not be able to hand over kernel parameters ln -sf /.build/build $BUILD_ROOT/sbin/init } vm_attach_root_emulator() { : } vm_attach_swap_emulator() { : } vm_detach_root_emulator() { : } vm_detach_swap_emulator() { : } vm_cleanup_emulator() { : } obs-build-20141024/common_functions0000755000000000000000000001003212422424142017066 0ustar rootroot00000000000000#!/bin/bash ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ build_host_arch() { : ${BUILD_HOST_ARCH:=`uname -m`} BUILD_INITVM_ARCH="$BUILD_HOST_ARCH" # avoid multiple initvm.* helpers for i586 and i686 test i686 != "$BUILD_INITVM_ARCH" || BUILD_INITVM_ARCH=i586 } extend_build_arch() { case $BUILD_ARCH in armv7hl) BUILD_ARCH="armv7hl:armv7l:armv6hl:armv6l:armv5tel" ;; armv7l) BUILD_ARCH="armv7l:armv6l:armv5tel" ;; armv6hl) BUILD_ARCH="armv6hl:armv6l:armv5tel" ;; armv6l) BUILD_ARCH="armv6l:armv5tel" ;; armv5tel) BUILD_ARCH="armv5tel" ;; i686) BUILD_ARCH="i686:i586:i486:i386" ;; i586) BUILD_ARCH="i586:i486:i386" ;; i486) BUILD_ARCH="i486:i386" ;; i386) BUILD_ARCH="i386" ;; ppc64) BUILD_ARCH="ppc64:ppc" ;; ppc64le) BUILD_ARCH="ppc64le" ;; sparc64v) BUILD_ARCH="sparc64v:sparc64:sparcv9v:sparcv9:sparcv8:sparc" ;; sparc64) BUILD_ARCH="sparc64:sparcv9:sparcv8:sparc" ;; sparcv9v) BUILD_ARCH="sparcv9v:sparcv9:sparcv8:sparc" ;; sparcv9) BUILD_ARCH="sparcv9:sparcv8:sparc" ;; sparcv8) BUILD_ARCH="sparcv8:sparc" ;; sparc) BUILD_ARCH="sparc" ;; x86_64) BUILD_ARCH="x86_64:i686:i586:i486:i386" ;; esac } set_build_arch() { build_host_arch if test -z "$BUILD_ARCH" ; then BUILD_ARCH="$BUILD_HOST_ARCH" fi extend_build_arch if test "$BUILD_ARCH" != "${BUILD_ARCH#i686}" ; then cpuflags=`grep ^flags /proc/cpuinfo` cpuflags="$cpuflags " if test "$cpuflags" = "${cpuflags/ cx8 /}" -o "$cpuflags" = "${cpuflags/ cmov /}"; then echo "Your cpu doesn't support i686 rpms. Exit." cleanup_and_exit 1 fi fi } check_exit() { if test -e $BUILD_ROOT/exit; then echo "exit ..." cleanup_and_exit 1 fi } check_use_emulator() { INITVM_NAME= # check if the extended host arch contains the build arch 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 fi BUILD_ARCH="$old_build_arch" # to run the qemu initialization in the vm, we need to # register it with a static program or shell script INITVM_NAME="initvm.$BUILD_INITVM_ARCH" if test -e "$BUILD_DIR/$INITVM_NAME" -a -e "$BUILD_DIR/qemu-reg" ; then chmod 0755 "$BUILD_DIR/$INITVM_NAME" return 0 # chroot build, we need to run fi # XXX: error? echo "Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose." echo " check that the right architecture is available for your build host, you need $INITVM_NAME for this one." INITVM_NAME= return 1 } # usage: # progress_setup LIST # for I in $LIST; do # progress_step LIST # action $I # done # $1 name of a textual list progress_setup() { eval "$1__ARRAY__=(\$$1)" eval "$1__INDEX__=1" eval "$1__LENGTH__=\${#$1__ARRAY__[@]}" } # $1 name of a textual list # $2 optional, printf format for 2 numeric arguments (current, total) progress_step() { local IDX=$1__INDEX__ local LEN=$1__LENGTH__ printf "${2-[%d/%d] }" $(($IDX++)) ${!LEN} } obs-build-20141024/baselibs_global.conf0000644000000000000000000000203612422424142017540 0ustar rootroot00000000000000arch i586 targets x86_64:32bit arch i686 targets x86_64:32bit arch s390 targets s390x:32bit arch ppc targets ppc64:32bit arch ppc64 targets ppc:64bit arch sparc targets sparc64:32bit arch sparcv8 targets sparc64:32bit arch sparcv9 targets sparc64:32bit arch sparcv9v targets sparc64v:32bit arch sparc64 targets sparcv9:64bit arch sparc64v targets sparcv9v:64bit configdir /usr/lib/baselibs-/bin targettype x86 prefix /emul/ia32-linux targettype x86 extension -x86 targettype 32bit extension 32 targettype 64bit extension 64 targetname - +.*/lib(64)?/.*\.(so\..*|so|o|a|la)$ targettype 64bit -^(/usr)?/lib/lib targettype 32bit -/lib64/ targettype x86 -/lib64/ config +.*bin.*-config$ config -/kde-config$ targettype x86 requires "ia32el" targettype x86 prereq "glibc-x86" package /(.*-devel)$/ requires " = " package /.(? "$temp_file"; then rm -f "$temp_file" cleanup_and_exit 1 fi # wait that it becomes available while true; do state=`ec2_volume_state "$VM_VOL_NAME"` test "$state" = attached && break sleep 1 done # print device node grep ^ATTACHMENT "$temp_file" | awk '{ print $4 }' rm -f "$temp_file" } cloud_volume_detach_ec2() { local VM_SERVER="$1" local VM_VOL_NAME="$2" state=`ec2_volume_state "$VM_VOL_NAME"` if test "$state" != available ; then ec2-detach-volume "$VM_VOL_NAME" --region "$BUILD_EC2_REGION" || return 3 fi return 0 } vm_verify_options_ec2() { # verify settings if test -z "$AWS_ACCESS_KEY" -o -z "$AWS_ACCESS_KEY" ; then echo "ERROR: No amazon EC2 environment set. Set AWS_ACCESS_KEY and AWS_SECRET_KEY." cleanup_and_exit 3 fi . /etc/profile.d/ec2.sh EC2_INSTANCE_ID=`ec2-instance-id` BUILD_EC2_AKI= BUILD_EC2_ZONE=`ec2-meta-data placement/availability-zone` BUILD_EC2_REGION=${BUILD_EC2_ZONE%?} case "$BUILD_EC2_ZONE" in us-east-1) BUILD_EC2_AKI=aki-88aa75e1 ;; us-west-1) BUILD_EC2_AKI=aki-f77e26b2 ;; us-west-2) BUILD_EC2_AKI=aki-fc37bacc ;; eu-west-1) BUILD_EC2_AKI=aki-71665e05 ;; ap-southeast-1) BUILD_EC2_AKI=aki-fe1354ac ;; ap-southeast-2) BUILD_EC2_AKI=aki-3f990e05 ;; ap-northeast-1) BUILD_EC2_AKI=aki-44992845 ;; sa-east-1) BUILD_EC2_AKI=aki-c48f51d9 ;; us-gov-west-1) BUILD_EC2_AKI=aki-79a4c05a ;; esac if test -z "$BUILD_EC2_AKI" ; then echo "Unknown Amazon EC2 Zone: $BUILD_EC2_ZONE" cleanup_and_exit 1 fi if test -z "$BUILD_EC2_AKI" ; then echo "ERROR: No image refering to kernel and ramdisk is defined in BUILD_EC2_AKI env." cleanup_and_exit 3 fi if test -z "$VM_VOLUME_NAME" ; then echo "ERROR: No worker root VM volume name specified." cleanup_and_exit 3 fi if test -z "$VM_VOLUME_SWAP" ; then echo "ERROR: No worker swap VM volume name specified." cleanup_and_exit 3 fi VM_SWAPDEV=/dev/sdb1 # in the vm } vm_attach_root_ec2() { VM_IMAGE=`cloud_volume_attach_ec2 "$VM_SERVER" "$VM_VOLUME_NAME" "$VM_IMAGE"` test "${VM_IMAGE:0:5}" = /dev/ || cleanup_and_exit 3 } vm_attach_swap_ec2() { VM_SWAP=`cloud_volume_attach_ec2 "$VM_SERVER" "$EC2_EXTRACT_VOLUME_swap" "$VM_SWAP"` test "${VM_SWAP:0:5}" = /dev/ || cleanup_and_exit 3 } vm_detach_root_ec2() { cloud_volume_detach_ec2 "$VM_SERVER" "$VM_VOLUME_NAME" } vm_detach_swap_ec2() { cloud_volume_detach_ec2 "$VM_SERVER" "$VM_VOLUME_SWAP" } vm_fixup_ec2() { # No way to handle this via init= parameter here.... echo "#!/bin/sh" > "$BUILD_ROOT/sbin/init" echo 'exec /.build/build "$@"' >> "$BUILD_ROOT/sbin/init" chmod 0755 "$BUILD_ROOT/sbin/init" # use the instance kernel, if no kernel got installed via preinstall if ! test -e "$BUILD_ROOT/boot/vmlinuz"; then cp /boot/vmlinuz-ec2 "$BUILD_ROOT/boot/vmlinuz" cp /boot/initrd-ec2 "$BUILD_ROOT/boot/initrd" fi # install menu.lst for pv grub if ! test -e "$BUILD_ROOT/boot/grub/menu.lst"; then mkdir -p "$BUILD_ROOT/boot/grub" echo "serial --unit=0 --speed=9600" > "$BUILD_ROOT/boot/grub/menu.lst" echo "terminal --dumb serial" >> "$BUILD_ROOT/boot/grub/menu.lst" echo "default 0" >> "$BUILD_ROOT/boot/grub/menu.lst" echo "timeout 0" >> "$BUILD_ROOT/boot/grub/menu.lst" echo "hiddenmenu" >> "$BUILD_ROOT/boot/grub/menu.lst" echo "" >> "$BUILD_ROOT/boot/grub/menu.lst" echo "title default" >> "$BUILD_ROOT/boot/grub/menu.lst" echo " root (hd0)" >> "$BUILD_ROOT/boot/grub/menu.lst" echo " kernel /boot/vmlinuz root=/dev/sda1 xencons=xvc0 console=xvc0 splash=silent" >> "$BUILD_ROOT/boot/grub/menu.lst" echo " initrd /boot/initrd" >> "$BUILD_ROOT/boot/grub/menu.lst" fi } vm_cleanup_ec2() { cloud_volume_detach_ec2 "$VM_SERVER" "$VM_VOLUME_NAME" cloud_volume_detach_ec2 "$VM_SERVER" "$VM_VOLUME_SWAP" test -n "$EC2_EXTRACT_VOLUME_root" && cloud_volume_detach_ec2 "$VM_SERVER" "$EC2_EXTRACT_VOLUME_root" test -n "$EC2_EXTRACT_VOLUME_swap" && cloud_volume_detach_ec2 "$VM_SERVER" "$EC2_EXTRACT_VOLUME_swap" test -n "$EC2_SNAP_root" && ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_root" test -n "$EC2_SNAP_swap" && ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_swap" test -n "$EC2_EXTRACT_VOLUME_root" && ec2-delete-volume --region "$BUILD_EC2_REGION" "$EC2_EXTRACT_VOLUME_root" test -n "$EC2_EXTRACT_VOLUME_swap" && ec2-delete-volume --region "$BUILD_EC2_REGION" "$EC2_EXTRACT_VOLUME_swap" } vm_kill_ec2() { if ec2-describe-instance-status "$VM_BUILD_INSTANCE" --region "$BUILD_EC2_REGION" >/dev/null 2>&1 ; then if ec2-terminate-instances "$VM_BUILD_INSTANCE" >/dev/null 2>&1 ; then echo "could not kill EC2 instance $VM_BUILD_INSTANCE" cleanup_and_exit 1 fi fi } vm_startup_ec2() { EC2_SNAP_root=`ec2-create-snapshot --region "$BUILD_EC2_REGION" "$VM_VOLUME_NAME" | awk '{ print $2 }'` if test "$EC2_SNAP_root" = "${EC2_SNAP_root#snap-}" ; then echo "ERROR: Failed to create snapshot for root disk $VM_VOLUME_NAME" cleanup_and_exit 3 fi EC2_SNAP_swap=`ec2-create-snapshot --region "$BUILD_EC2_REGION" "$VM_VOLUME_SWAP" | awk '{ print $2 }'` if test "$EC2_SNAP_swap" = "${EC2_SNAP_swap#snap-}" ; then echo "ERROR: Failed to create snapshot for swap disk $VM_VOLUME_SWAP" ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_root" cleanup_and_exit 3 fi # wait for snapshots being processed while true; do c=`ec2-describe-snapshots --region "$BUILD_EC2_REGION" "$EC2_SNAP_root" "$EC2_SNAP_swap" | grep completed | wc -l` test "$c" = 2 && break done EC2_AMI=`ec2-register --region "$BUILD_EC2_REGION" -n build-$VM_VOLUME_NAME -a x86_64 -b "/dev/sda1=$EC2_SNAP_root::false" -b "/dev/sdb1=$EC2_SNAP_swap::false" --kernel "$BUILD_EC2_AKI" | awk '{ print $2 }'` if test "$EC2_AMI" == "${EC2_AMI#ami-}" ; then echo "ERROR: Failed to register the AMI" ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_root" ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_swap" cleanup_and_exit 3 fi INSTANCE=`ec2-run-instances --region "$BUILD_EC2_REGION" -z "$BUILD_EC2_ZONE" -t $BUILD_EC2_TYPE --kernel "$BUILD_EC2_AKI" --instance-initiated-shutdown-behavior terminate "$EC2_AMI" | grep ^INSTANCE | awk '{ print $2 }'` if test "$INSTANCE" == "${INSTANCE#i-}" ; then echo "ERROR: Failed to run the instance for AMI $EC2_AMI" ec2-deregister --region "$BUILD_EC2_REGION" "$EC2_AMI" ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_root" ec2-delete-snapshot --region "$BUILD_EC2_REGION" "$EC2_SNAP_swap" cleanup_and_exit 3 fi echo "Waiting for finishing the build. No log file until then on EC2 ...." I=0 L=0 EC2_EXTRACT_VOLUME_root= EC2_EXTRACT_VOLUME_swap= temp_file=`mktemp` while true; do ec2-describe-instances --region "$BUILD_EC2_REGION" "$INSTANCE" > $temp_file state=`grep ^INSTANCE "$temp_file"` if test -z "$EC2_EXTRACT_VOLUME_root" ; then EC2_EXTRACT_VOLUME_root=`grep ^BLOCKDEVICE $temp_file | grep /dev/sda1 | awk '{ print $3 }'` EC2_EXTRACT_VOLUME_swap=`grep ^BLOCKDEVICE $temp_file | grep /dev/sdb1 | awk '{ print $3 }'` fi # the column of the state is at a differen position depending on the state :/ # test "$state" = "${state/stopped/}" || break test "$state" = "${state/terminated/}" || break I=$(( $I + 1 )) if test $I -gt 10 ; then echo -n . I=0 L=$(( $L + 1 )) fi if test $L -gt 10 ; then # dump entire console log as raw here ec2-get-console-output --region "$BUILD_EC2_REGION" -r "$INSTANCE" L=0 fi sleep 1 done rm -f "$temp_file" echo ec2-deregister --region "$BUILD_EC2_REGION" "$EC2_AMI" # snapshots get deleted after extract } obs-build-20141024/test/0000755000000000000000000000000012422424142014543 5ustar rootroot00000000000000obs-build-20141024/test/testbuild.Fedora11-x86_640000755000000000000000000000014112422424142020761 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common repo fedora11_x86_64 run_build --dist $PWD/Fedora_11.conf \ "$@" obs-build-20141024/test/testbuild.sles10-x86_640000755000000000000000000000015512422424142020533 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common repo sle10sp2_x86_64 repo sle10sp2_sdk_x86_64 run_build --dist sles10 \ "$@" obs-build-20141024/test/testbuild.Fedora11-i3860000755000000000000000000000016612422424142020523 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo fedora11_i386 run_build --dist $PWD/Fedora_11.conf --arch i686 \ "$@" obs-build-20141024/test/common0000644000000000000000000000455012422424142015762 0ustar rootroot00000000000000#!/bin/bash # common functions for build script testing # Copyright (C) 2009 SUSE LINUX Products GmbH # # 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 later as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # set -e . ${0%/*}/config if [ -e ${0%/*}/config.local ]; then . ${0%/*}/config.local fi : ${BUILD_DIR:=/usr/lib/build} #if [ ! -e "$build_vm_img" ]; then # sudo dd if=/dev/zero of="$build_vm_img" bs=512 count=0 seek=$((build_vm_image_size*2*1024)) #fi #if [ ! -e "$build_vm_swap" ]; then # sudo dd if=/dev/zero of="$build_vm_swap" bs=512 count=0 seek=$((build_vm_swap_size*2*1024)) #fi die() { test -z "$1" || echo "$*" >&2 exit 1 } fail() { echo FAILED test -z "$1" || echo "$*" exit 2 } skip() { echo skipped test -z "$1" || echo "$*" exit 3 } build_args=() repos=() repo() { local dir eval dir="\"\$repo_$1\"" [ -n "$dir" ] || die "repo $1 not defined, try adding repo_$1=/path/to/repo to config.local" test -d "$dir" || skip repos[${#repos[@]}]="--repository"; repos[${#repos[@]}]="$dir"; } linux32= arch32bit() { local hostarch=`uname -m` case "$hostarch" in x86_64) linux32=linux32 ;; *) skip ;; esac } enable_kvm() { test -w /dev/kvm || skip "no kvm support" build_args+=(--kvm) [ -z "$build_vm_img" ] || build_args+=("$build_vm_img") [ -z "$build_vm_swap" ] || build_args+=(--swap "$build_vm_swap") [ -z "$build_vm_mem" ] || build_args+=(--memory "$build_vm_mem") } run_build() { for i in "$@"; do if [ "$i" = '--kvm' ]; then enable_kvm else build_args+=("$i") fi done SU_WRAPPER="" [ -x /usr/bin/sudo ] && SU_WRAPPER="sudo env" set -- $linux32 $SU_WRAPPER \ $BUILD_DIR/build \ --root "${build_root}" \ "${repos[@]}" \ "${build_args[@]}" echo "$@" "$@" || fail find $build_root/.build.packages/ -type f -name '*.rpm' -print0 | xargs --no-run-if-empty -0 rpm -K || fail } obs-build-20141024/test/testbuild.Fedora12-i3860000755000000000000000000000016612422424142020524 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo fedora12_i386 run_build --dist $PWD/Fedora_12.conf --arch i686 \ "$@" obs-build-20141024/test/baselibs.conf0000644000000000000000000000001212422424142017167 0ustar rootroot00000000000000libdummy1 obs-build-20141024/test/testbuild.sh0000755000000000000000000000052712422424142017105 0ustar rootroot00000000000000#!/bin/bash # # This is the generic test case for the current distribution, it # is to be called from the spec file while building a build.rpm . ${0%/*}/common REPO="$1" shift if [ -z "$REPO" ]; then echo "No local path to binary packages is given as argument" exit 1 fi [ "$ARCH" == "i386" ] && arch32bit repo "$REPO" run_build "$@" obs-build-20141024/test/Fedora_11.conf0000644000000000000000000002570312422424142017122 0ustar rootroot00000000000000%define _project Fedora:11 ### from Fedora:11 %define _repository standard Preinstall: acl attr bash bzip2 coreutils device-mapper-libs diffutils Preinstall: filesystem glibc grep libacl libattr Preinstall: libgcc m4 ncurses pam nss nspr Preinstall: popt readline ncurses-libs rpm sed tar zlib Preinstall: rpm-libs pcre info libselinux sqlite Preinstall: elfutils-libelf findutils neon openssl krb5-libs Preinstall: e2fsprogs-libs expat bzip2-libs libstdc++ setup libsepol Preinstall: perl-libs policycoreutils libcap db4 file-libs lua Preinstall: shadow-utils chkconfig nss-softokn-freebl util-linux-ng Runscripts: setup VMinstall: perl device-mapper Required: autoconf automake binutils bzip2 gcc gdbm gettext glibc Required: libtool ncurses nss-softokn-freebl perl rpm zlib rpm-build Support: bind-libs bind-utils bison cpio cpp cracklib cvs Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel gpm groff gzip info less Support: make man module-init-tools Support: ncurses-devel net-tools openssl Support: patch procinfo procps psmisc rcs strace Support: texinfo unzip util-linux-ng zlib-devel vim-enhanced Support: initscripts bzip2-devel shadow-utils Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel gzip libada libstdc++ libunwind Keep: libunwind-devel make pam-devel pam-modules shadow-utils Keep: patch nss-softokn-freebl perl rcs rpm-build ncurses-libs nss nspr Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: initscripts:syslog-ng Prefer: generic-logos Prefer: text-www-browser:lynx Prefer: docbook-utils:lynx Prefer: kdepim:pinentry-qt Prefer: syslogd sysklogd Prefer: kernel Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Conflict: ghostscript-library:ghostscript-mini Ignore: initscripts:kernel,udev,ethtool,mingetty Ignore: tetex:tetex-fonts,desktop-file-utils Ignore: pam:glib2 Ignore: libraw1394:kernel Ignore: gettext-devel:libgcj,libstdc++-devel,libgcj_bc.so.1 Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: phonon:phonon-backend Ignore: phonon:phonon-backend(x86-32) Ignore: phonon:phonon-backend(x86-64) Ignore: simias:mono(log4net) Ignore: zmd: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: 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 %ifarch %arm # workaround for broken Fedora arm distro #Ignore: bind-libs:libcrypto.so.6 #Ignore: bind-utils:libcrypto.so.6 %endif %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit %endif %endif # # Bugfix broken dependencies # Substitute: python python redhat-rpm-config # # SUSE compatibilities # Substitute: alsa alsa-lib Substitute: alsa-devel alsa-lib-devel Substitute: docbook-toys docbook-utils Substitute: expat expat expat-devel Substitute: gtkdoc gtk-doc Substitute: db db4 Substitute: db-devel db4-devel Substitute: dbus-1 dbus Substitute: dbus-1-devel dbus-devel Substitute: dbus-1-glib dbus-glib Substitute: dbus-1-python dbus-python Substitute: dbus-1-mono dbus-sharp Substitute: gtk-devel gtk+-devel Substitute: te_latex tetex-latex Substitute: xorg-x11-devel xorg-x11-proto-devel xorg-x11-xtrans-devel Substitute: krb5 krb5-libs Substitute: libsigc++2-devel libsigc++20-devel Substitute: libXerces-c-devel xerces-c-devel Substitute: libgphoto2-devel gphoto2-devel Substitute: libredland-devel redland-devel Substitute: libraptor-devel raptor-devel Substitute: librasqal-devel rasqal-devel Substitute: openldap2 openldap Substitute: openldap2-devel openldap-devel Substitute: pulseaudio-devel pulseaudio-libs-devel Substitute: xorg-x11-Mesa-devel mesa-libGL-devel Substitute: ImageMagick-Magick++-devel ImageMagick-c++-devel Substitute: ImageMagick-Magick++ ImageMagick-c++ Substitute: pyxml PyXML Substitute: Mesa mesa-libGL Substitute: Mesa-devel mesa-libGL-devel Substitute: freetype2 freetype Substitute: freetype2-devel freetype-devel Substitute: liblcms-devel lcms-devel Substitute: libqt4-devel qt-devel Substitute: kdelibs4-devel kdelibs-devel Prefer: -Glide3-libGL Prefer: wxGTK-media:GConf2 Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif # # experimentel, testing for mc # Substitute: sgml-skel sgml-common Substitute: docbook-xsl-stylesheets docbook-style-xsl Substitute: libelf elfutils-libelf %define fedora_version 11 Macros: %vendor obs://build.opensuse.org/Fedora:11 %_project Fedora:11 %distribution Fedora:11 %_project Fedora:11 ### from Fedora:11 %_repository standard %opensuse_bs 1 %fedora_version 11 %_vendor redhat #From fedora buildsys-macros package %fedora 11 %dist .fc11 %fc11 1 %kernel_module_package_buildreqs kernel-devel %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} obs-build-20141024/test/testbuild.11.0-x86_640000755000000000000000000000012512422424142020000 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common repo 11_0_x86_64 run_build --dist 11.0-x86_64 \ "$@" obs-build-20141024/test/testbuild.11.2-i3860000755000000000000000000000012712422424142017537 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo 11_2 run_build --dist 11.2-i386 \ "$@" obs-build-20141024/test/testbuild.Fedora12-x86_640000755000000000000000000000014112422424142020762 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common repo fedora12_x86_64 run_build --dist $PWD/Fedora_12.conf \ "$@" obs-build-20141024/test/libdummy1.spec0000644000000000000000000000074312422424142017326 0ustar rootroot00000000000000Name: libdummy1 Version: 0 Release: 0 Group: None Summary: Dummy License: GPL BuildRoot: %_tmppath/%name-%version-build %build gcc --version echo "int dummy(void) {}" | gcc -shared -Wl,-soname=libdummy.so.1 -o libdummy.so.1 -x c - %install mkdir -p %buildroot%_libdir install libdummy.so.1 %buildroot%_libdir %clean rm -rf %buildroot %description target_cpu %_target_cpu arch %_arch build_arch %_build_arch %files %defattr(-,root,root) %_libdir/libdummy.so.1 %changelog obs-build-20141024/test/testbuild.11.1-i3860000755000000000000000000000013312422424142017533 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo 11_1_ftp run_build --dist 11.1-i386 \ "$@" obs-build-20141024/test/config0000644000000000000000000000033312422424142015732 0ustar rootroot00000000000000#!/bin/bash : ${build_root:=/abuild/build-root} #: ${build_vm_img:=/abuild/build-root.img} #: ${build_vm_swap:=/abuild/build-root.swap} : ${build_vm_mem:=256} : ${build_vm_image_size:=500} : ${build_vm_swap_size:=100} obs-build-20141024/test/testbuild.11.0-i3860000755000000000000000000000013412422424142017533 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo 11_0_i386 run_build --dist 11.0-i386 \ "$@" obs-build-20141024/test/Fedora_12.conf0000644000000000000000000002617512422424142017127 0ustar rootroot00000000000000%define _project Fedora:12 ### from Fedora:12 %define _repository standard Preinstall: acl attr bash bzip2 coreutils device-mapper-libs diffutils Preinstall: filesystem glibc grep libacl libattr Preinstall: libgcc m4 ncurses pam nss nspr Preinstall: popt readline ncurses-libs rpm sed tar zlib Preinstall: rpm-libs pcre info libselinux sqlite Preinstall: elfutils-libelf findutils openssl krb5-libs Preinstall: e2fsprogs-libs expat bzip2-libs libstdc++ setup libsepol Preinstall: perl-libs libcap db4 file-libs lua Preinstall: shadow-utils chkconfig util-linux-ng Preinstall: xz-libs nss-util libblkid libuuid Preinstall: nss-softokn-freebl nss-softokn #Runscripts: setup VMinstall: perl device-mapper Required: autoconf automake binutils bzip2 gcc gdbm gettext glibc Required: libtool ncurses nss-softokn-freebl perl rpm zlib rpm-build Support: bind-libs bind-utils bison cpp cracklib cvs cpio Support: e2fsprogs file findutils flex gawk gdbm-devel gettext-devel Support: glibc-devel gpm groff gzip info less Support: make man module-init-tools Support: ncurses-devel net-tools openssl Support: patch procinfo procps psmisc rcs strace Support: texinfo unzip util-linux-ng zlib-devel vim-enhanced Support: initscripts bzip2-devel shadow-utils Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++ Keep: gdbm glibc-devel gzip libada libstdc++ libunwind Keep: libunwind-devel make pam-devel pam-modules shadow-utils Keep: patch nss-softokn-freebl perl rcs rpm-build ncurses-libs nss nspr Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2 Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp Prefer: glib-sharp libzypp-zmd-backend mDNSResponder Prefer: gnome-sharp2:art-sharp2 gnome-sharp:art-sharp Prefer: ifolder3:gnome-sharp2 ifolder3:gconf-sharp2 Prefer: nautilus-ifolder3:gnome-sharp2 Prefer: gconf-sharp2:glade-sharp2 gconf-sharp:glade-sharp Prefer: tomboy:gconf-sharp tomboy:gnome-sharp Prefer: zmd:libzypp-zmd-backend Prefer: yast2-packagemanager-devel:yast2-packagemanager Prefer: initscripts:syslog-ng Prefer: generic-logos Prefer: text-www-browser:lynx Prefer: docbook-utils:lynx Prefer: kdepim:pinentry-qt Prefer: syslogd sysklogd Prefer: kernel Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++ Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links Prefer: -crossover-office Prefer: -xz-lzma-compat Conflict: ghostscript-library:ghostscript-mini Ignore: initscripts:kernel,udev,ethtool,mingetty,glib2 Ignore: tetex:tetex-fonts,desktop-file-utils Ignore: pam:glib2 Ignore: libraw1394:kernel Ignore: qt-x11:phonon-backend Ignore: qt-x11:phonon-backend(x86-32) Ignore: qt-x11:phonon-backend(x86-64) Ignore: gettext-devel:libgcj,libstdc++-devel,libgcj_bc.so.1 Ignore: pam-modules:resmgr Ignore: rpm:suse-build-key,build-key Ignore: bind-utils:bind-libs Ignore: alsa:dialog,pciutils Ignore: portmap:syslogd Ignore: fontconfig:freetype2 Ignore: fontconfig-devel:freetype2-devel Ignore: xorg-x11-libs:freetype2 Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng Ignore: apache2:logrotate Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,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,krb5,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:libidl Ignore: orbit2-devel:libidl,libidl-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,sgml-skel 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: libbonoboui:gnome-desktop Ignore: postfix:pcre Ignore: docbook_4:iso_ent,sgml-skel,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-SuSELinux,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:perl-XML-Writer,libxslt,pkgconfig 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 Ignore: yast2-x11:sax2-libsax-perl Ignore: openslp-devel:openssl-devel Ignore: java-1_4_2-sun:xorg-x11-libs Ignore: java-1_4_2-sun-devel:xorg-x11-libs Ignore: kernel-um:xorg-x11-libs Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed Ignore: yast2-country:yast2-trans-stats Ignore: libgcc:glibc-32bit Ignore: libstdc++:glibc-32bit Ignore: susehelp:susehelp_lang,suse_help_viewer Ignore: mailx:smtp_daemon Ignore: cron:smtp_daemon Ignore: hotplug:syslog Ignore: pcmcia:syslog Ignore: avalon-logkit:servlet Ignore: jython:servlet Ignore: ispell:ispell_dictionary,ispell_english_dictionary Ignore: aspell:aspel_dictionary,aspell_dictionary Ignore: smartlink-softmodem:kernel,kernel-nongpl Ignore: OpenOffice_org-de:myspell-german-dictionary 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: phonon:phonon-backend Ignore: phonon:phonon-backend(x86-32) Ignore: phonon:phonon-backend(x86-64) Ignore: simias:mono(log4net) Ignore: zmd: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: 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 %ifarch %arm # workaround for broken Fedora arm distro #Ignore: bind-libs:libcrypto.so.6 #Ignore: bind-utils:libcrypto.so.6 %endif %ifnarch s390 s390x ppc ia64 Substitute: java2-devel-packages java-1_4_2-sun-devel %else %ifnarch s390x Substitute: java2-devel-packages java-1_4_2-ibm-devel %else Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit %endif %endif # # Bugfix broken dependencies # Substitute: python python redhat-rpm-config # # SUSE compatibilities # Substitute: alsa alsa-lib Substitute: alsa-devel alsa-lib-devel Substitute: docbook-toys docbook-utils Substitute: expat expat expat-devel Substitute: gtkdoc gtk-doc Substitute: db db4 Substitute: db-devel db4-devel Substitute: dbus-1 dbus Substitute: dbus-1-devel dbus-devel Substitute: dbus-1-glib dbus-glib Substitute: dbus-1-python dbus-python Substitute: dbus-1-mono dbus-sharp Substitute: gtk-devel gtk+-devel Substitute: te_latex tetex-latex Substitute: xorg-x11-devel xorg-x11-proto-devel xorg-x11-xtrans-devel Substitute: krb5 krb5-libs Substitute: libsigc++2-devel libsigc++20-devel Substitute: libXerces-c-devel xerces-c-devel Substitute: libgphoto2-devel gphoto2-devel Substitute: libredland-devel redland-devel Substitute: libraptor-devel raptor-devel Substitute: librasqal-devel rasqal-devel Substitute: openldap2 openldap Substitute: openldap2-devel openldap-devel Substitute: pulseaudio-devel pulseaudio-libs-devel Substitute: xorg-x11-Mesa-devel mesa-libGL-devel Substitute: ImageMagick-Magick++-devel ImageMagick-c++-devel Substitute: ImageMagick-Magick++ ImageMagick-c++ Substitute: pyxml PyXML Substitute: Mesa mesa-libGL Substitute: Mesa-devel mesa-libGL-devel Substitute: freetype2 freetype Substitute: freetype2-devel freetype-devel Substitute: liblcms-devel lcms-devel Substitute: libqt4-devel qt-devel Substitute: kdelibs4-devel kdelibs-devel Prefer: -Glide3-libGL Prefer: wxGTK-media:GConf2 Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite %ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc 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-um kernel-xen kernel-kdump %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 kernel-kdump %endif %ifarch ppc Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64 %endif %ifarch ppc64 Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64 %endif %ifarch s390 Substitute: kernel-binary-packages kernel-s390 %endif %ifarch s390x Substitute: kernel-binary-packages kernel-default %endif # # experimentel, testing for mc # Substitute: sgml-skel sgml-common Substitute: docbook-xsl-stylesheets docbook-style-xsl Substitute: libelf elfutils-libelf %define fedora_version 12 Macros: %vendor obs://build.opensuse.org/Fedora:12 %_project Fedora:12 %distribution Fedora:12 %_project Fedora:12 ### from Fedora:12 %_repository standard %opensuse_bs 1 %fedora_version 12 %_vendor redhat #From fedora buildsys-macros package %fedora 12 %dist .fc12 %fc12 1 %kernel_module_package_buildreqs kernel-devel %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} obs-build-20141024/test/testbuild.8.1-i3860000755000000000000000000000013212422424142017460 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo 8_1_i386 run_build --dist 8.1-i386 \ "$@" obs-build-20141024/test/testbuild.sles9-i3860000755000000000000000000000015112422424142020212 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo core9_i386 repo sles9_i386 run_build --dist sles9 \ "$@" obs-build-20141024/test/testbuild.sles10-i3860000755000000000000000000000016412422424142020266 0ustar rootroot00000000000000#!/bin/bash . ${0%/*}/common arch32bit repo sle10sp2_i386 repo sle10sp2_sdk_i386 run_build --dist sles10 \ "$@" obs-build-20141024/baselibs_global-deb.conf0000644000000000000000000000161412422424142020271 0ustar rootroot00000000000000arch i586 targets x86_64:32bit ia64:x86 arch i686 targets x86_64:32bit ia64:x86 arch s390 targets s390x:32bit arch ppc targets ppc64:32bit arch ppc64 targets ppc:64bit configdir /usr/lib/baselibs-/bin targettype x86 prefix /emul/ia32-linux targettype x86 extension -x86 targettype 32bit extension 32 targettype 64bit extension 64 targetname - +.*/lib(64)?/.*\.(so\..*|so|o|a|la)$ targettype 64bit -^(/usr)?/lib/lib targettype 32bit -/lib64/ targettype x86 -/lib64/ config +.*bin.*-config$ config -/kde-config$ targettype x86 requires "ia32el" targettype x86 prereq "glibc-x86" package /.(? = " #requires "- = " package /(.*)-debuginfo$/ +/usr/lib(64)?/debug/.*/lib(64)?/.*\.(so\..*|so|o|a|la)\.debug$ obs-build-20141024/README0000644000000000000000000000140612422424142014445 0ustar rootroot00000000000000 This script is used for building SUSE Linux RPMs in a clean and safe chroot'ed build environment. At first you need to copy your SUSE Linux CDs into a path reachable by the build script, for example /home/suse-8.2-i386. If you have a DVD Drive and the SUSE Linux DVD, you can mount it and use this as the source for the RPMs. To build an RPM, change into the directory with the sources and the SPEC file. Then start the build script: env BUILD_RPMS=/home/suse-8.2-i386/suse build If this was successful you can find the binary and source RPMs below /var/tmp/build-root/usr/src/packages/ Note: Depending on which package you want to build, you'll need a few hundred megabytes for the build in /var/tmp/build-root. For more information on using build, see 'man build'. obs-build-20141024/debtransformzip0000755000000000000000000000203212422424142016720 0ustar rootroot00000000000000#! /bin/bash ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ if test $# -ne 2; then exit 1 fi zip="$1" tar="$2" tmp=$(mktemp -d) unzip -q -d "$tmp" -- "$zip" || exit 1 ( cd "$tmp" && tar czO * ) >"$tar" || exit 1 rm -r "$tmp" exit 0 obs-build-20141024/createrpmdeps0000755000000000000000000001267112422424142016357 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Build; use strict; ###################################################################### my $rpmdepfile = $ARGV[0]; my %tag; my %oldp; my %oldr; my %oldc; my %oldo; if (defined($rpmdepfile) && open(F, '<', $rpmdepfile)) { while () { chomp; if (/^P:([^ ]): /) { $oldp{$1} = $_; } elsif (/^R:([^ ]): /) { $oldr{$1} = $_; } elsif (/^C:([^ ]): /) { $oldc{$1} = $_; } elsif (/^O:([^ ]): /) { $oldo{$1} = $_; } } close F; } my $redo = 1; foreach my $dir (@ARGV) { $redo = 0; my @known; my %known2fn; my %known2path; my %fnsize2id; my $cmd = "find $dir -follow -type f \\( -name \"*.rpm\" -o -name \"*.deb\" \\) -a ! -name \"*src.rpm\" -printf '\%T@/\%s/\%i \%p\\n'"; open(F, '-|', $cmd) or next; while () { chomp; next unless /^([\d\.]+\/\d+\/\d+) (.*)$/; my $id = $1; my $path = $2; # new find added a fraction part to %T@, ignore it $id =~ s/^(\d+)\.\d+/$1/; next unless $path =~ /\.(?:rpm|deb)$/; my $fn = $path; $fn =~ s/.*\///; next if $fn =~ /\.(?:patch|delta)\.rpm$/; my ($r, $arch); if ($fn =~ /^(.*)-[^-]+-[^-]+\.([^\. ]+)\.rpm$/) { $r = $1; $arch = $2; } elsif ($path =~ /^(?:.*\/)?([^\/ ]+)\/([^\/ ]+)\.rpm$/) { #next if $1 eq '.'; $r = $2; $arch = $1; } elsif ($fn =~ /^([^_]*)_(?:[^_]*)_([^_]*)\.deb$/) { $r = $1; $arch = $2; $arch = 'noarch' if $arch eq 'all'; } else { next; } next if $arch eq 'src' || $arch eq 'nosrc'; push @known, "$r.$arch-$id"; $known2fn{"$r.$arch-$id"} = $fn; $known2path{"$r.$arch-$id"} = $path; my $size = (split('/', $id))[1]; $fnsize2id{"$fn-$size"} = $id; } close F; my %newp; my %newr; my %newc; my %newo; for (@known) { $newp{$_} = $oldp{$_} if $oldp{$_}; $newr{$_} = $oldr{$_} if $oldr{$_}; $newc{$_} = $oldc{$_} if $oldc{$_}; $newo{$_} = $oldo{$_} if $oldo{$_}; } my @todo = grep {!($newp{$_} && $newr{$_})} @known; if (@todo) { for my $known (@todo) { my $path = $known2path{$known}; if ($path =~ /\.rpm$/) { my %res = Build::Rpm::rpmq($path, 1000, 1001, 1002, 1006, 1022, 1047, 1049, 1048, 1050, 1053, 1054, 1055, 1090, 1112, 1113, 1114, 1115); next unless %res; Build::Rpm::add_flagsvers(\%res, 1047, 1112, 1113); Build::Rpm::add_flagsvers(\%res, 1049, 1048, 1050); Build::Rpm::add_flagsvers(\%res, 1054, 1053, 1055); Build::Rpm::add_flagsvers(\%res, 1090, 1114, 1115); my $id = $known; $id =~ s/.*-//; if ($known ne "$res{1000}->[0].$res{1022}->[0]-$id") { $known = "$res{1000}->[0].$res{1022}->[0]-$id"; if (!$known2path{$known}) { push @known, $known; $known2path{$known} = $path; } } # rpm3 compatibility: retrofit missing self provides my $name = $res{1000}->[0]; if (!@{$res{1047} || []} || $res{1047}->[-1] !~ /^\Q$name\E =/) { my $evr = "$res{1001}->[0]-$res{1002}->[0]"; $evr = "$res{1003}->[0]:$evr" if $res{1003} && $res{1003}->[0]; push @{$res{1047}}, "$name = $evr"; } $newp{$known} = "P:$known: ".join(' ', @{$res{1047} || []}); $newr{$known} = "R:$known: ".join(' ', @{$res{1049} || []}); $newc{$known} = "C:$known: ".join(' ', @{$res{1054} || []}) if @{$res{1054} || []}; $newo{$known} = "O:$known: ".join(' ', @{$res{1090} || []}) if @{$res{1090} || []}; #$tag{$known} = $res{1000}->[0]."-".$res{1001}->[0]."-".$res{1002}->[0]." ".$res{1007}->[0]."-".$res{1006}->[0]; $tag{$known} = $res{1000}->[0]."-".$res{1001}->[0]."-".$res{1002}->[0]." ".$res{1006}->[0]; } else { my %res = Build::Deb::debq($path); next unless %res; my ($dn, $da) = ($res{'PACKAGE'}, $res{'ARCHITECTURE'}); $da = 'noarch' if $da eq 'all'; my $id = $known; $id =~ s/.*-//; if ($known ne "$dn.$da-$id") { $known = "$dn.$da-$id"; if (!$known2path{$known}) { push @known, $known; $known2path{$known} = $path; } } my @provides = split(',\s*', $res{'PROVIDES'} || ''); my @depends = split(',\s*', $res{'DEPENDS'} || ''); my @predepends = split(',\s*', $res{'PRE-DEPENDS'} || ''); s/\s.*// for @provides; #for now s/\s.*// for @depends; #for now s/\s.*// for @predepends; #for now push @depends, @predepends; push @provides, $res{'PACKAGE'}; $newp{$known} = "P:$known: ".join(' ', @provides); $newr{$known} = "R:$known: ".join(' ', @depends); } } } @known = grep {$newp{$_} && $newr{$_}} @known; for (@known) { print "F:$_: $known2path{$_}\n"; print "$newp{$_}\n"; print "$newr{$_}\n"; print "$newc{$_}\n" if $newc{$_}; print "I:$_: $tag{$_}\n" if exists $tag{$_}; } } obs-build-20141024/vc.10000644000000000000000000000153512422424142014262 0ustar rootroot00000000000000.TH vc 1 "(c) 1997-2014 SuSE Linux AG Nuernberg, Germany" .SH NAME vs \- create a SUSE stype changes entry .SH SYNOPSIS .B vc .RB [ -m .IR message ] .RB [ -e ] .RI [ changesfile_or_dir .RI [ commentfile ]] .SH DESCRIPTION The \fBvc\fP tool adds a new changes entry to a SUSE \fB.changes\fP file. The \fB-m\fP option can be used to directly specify the entry, if it is not given an editor is started to interactively enter the new changes entry. If a \fIcommentfile\fP is given, its content is used as template for the new entry instead of an empty entry, whereas the \fB-e\fP option suppresses the creation of an empty entry. If no \fIchangesfile\fP is specified, \fBvc\fP will search the current directory for a file ending with \fB.changes\fP. If a directory is specified instead of a changes will, it will be searched instead. .SH SEE ALSO .BR build (1), obs-build-20141024/build-vm-openstack0000644000000000000000000001134612422424142017220 0ustar rootroot00000000000000# # Openstack specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ cloud_volume_attach_openstack() { local VM_SERVER="$1" local VM_VOL_NAME="$2" local VM_VOL_DEV="$3" if ! nova volume-attach "$VM_SERVER" "$VM_VOL_NAME" "$VM_VOL_DEV"; then echo "ERROR: nova attach failed. $?" >&2 return 3 fi while true; do state=`nova volume-show "$VM_VOL_NAME" | sed -n 's,^|[ ]*status[ ]*|[ ]*\([^ ]*\).*,\1,p'` test "$state" = "in-use" && break if test -z "$state" ; then echo "ERROR: unable to find state of volume $VM_VOL_NAME" >&2 return 3 fi if test "$state" = available ; then echo "WARNING: volume $VM_VOL_NAME got not attached, retrying" >&2 if ! nova volume-attach "$VM_SERVER" "$VM_VOL_NAME" "$VM_VOL_DEV"; then echo "ERROR: nova attach failed. $?" >&2 return 3 fi fi sleep 3 done if test ! -e "$VM_VOL_DEV" ; then #GROSS HACK: kernel does not care about the given device name # VM_VOL_DEV="/dev/"`dmesg| sed -n 's,.*\(vd.\): unknown partition tab.*,\1,p' | tail -n 1` VM_VOL_DEV=`ls -1 /dev/vd? | tail -n 1` fi echo "$VM_VOL_DEV" } cloud_volume_detach_openstack() { local VM_SERVER="$1" local VM_VOL_NAME="$2" # needed at all? nova volume-show "$VM_VOL_NAME" | grep -q in-use || return 0 # umount seems not to be enough sync if ! nova volume-detach "$VM_SERVER" "$VM_VOL_NAME"; then echo "ERROR: nova detach of $VM_VOL_NAME failed." >&2 return 3 fi while nova volume-show "$VM_VOL_NAME" | grep -q availabe; do sleep 3 done return 0 } vm_verify_options_openstack() { # verify settings if test -z "$OS_AUTH_URL" ; then echo "ERROR: No openstack environment set. This vm-type works only inside of an openstack VM." cleanup_and_exit 3 fi if test -z "$OBS_OPENSTACK_KERNEL_IMAGE_ID" ; then echo "ERROR: No image refering to kernel and ramdisk is defined in OBS_OPENSTACK_KERNEL_IMAGE_ID env." cleanup_and_exit 3 fi if test -z "$VM_VOLUME_NAME" ; then echo "ERROR: No worker root VM volume name specified." cleanup_and_exit 3 fi if test -z "$VM_VOLUME_SWAP" ; then echo "ERROR: No worker swap VM volume name specified." cleanup_and_exit 3 fi if test -z "$VM_SERVER" ; then echo "ERROR: No VM server nod name specified (usually this instance)." cleanup_and_exit 3 fi # XXX why here? VM_SWAPDEV=/dev/vdb qemu_rootdev=/dev/vda } vm_attach_root_openstack() { VM_IMAGE=`cloud_volume_attach_openstack "$VM_SERVER" "$VM_VOLUME_NAME" "$VM_IMAGE"` test "${VM_IMAGE:0:5}" = "/dev/" || cleanup_and_exit 3 } vm_attach_swap_openstack() { VM_SWAP=`cloud_volume_attach_openstack "$VM_SERVER" "$VM_VOLUME_SWAP" "$VM_SWAP"` test "${VM_SWAP:0:5}" = /dev/ || cleanup_and_exit 3 } vm_detach_root_openstack() { cloud_volume_detach_openstack "$VM_SERVER" "$VM_VOLUME_NAME" } vm_detach_swap_openstack() { cloud_volume_detach_openstack "$VM_SERVER" "$VM_VOLUME_SWAP" } vm_cleanup_openstack() { cloud_volume_detach_openstack "$VM_SERVER" "$VM_VOLUME_NAME" cloud_volume_detach_openstack "$VM_SERVER" "$VM_VOLUME_SWAP" } vm_fixup_openstack() { # No way to handle this via init= parameter here.... echo "#!/bin/sh" > "$BUILD_ROOT/sbin/init" echo 'exec /.build/build "$@"' >> "$BUILD_ROOT/sbin/init" chmod 0755 "$BUILD_ROOT/sbin/init" } vm_kill_openstack() { if nova show "$VM_VOLUME_NAME" >/dev/null 2>&1 ; then if ! nova delete "$VM_VOLUME_NAME" ; then echo "could not kill openstack vm build $VM_VOLUME_NAME" cleanup_and_exit 1 fi fi } vm_startup_openstack() { nova boot --image $OBS_OPENSTACK_KERNEL_IMAGE_ID --flavor m1.small --block_device_mapping vda=${VM_VOLUME_NAME}::$(( $VMDISK_ROOTSIZE / 1024 )):0 --block_device_mapping vdb=${VM_VOLUME_SWAP}::1:0 --poll "build-$VM_VOLUME_NAME" || cleanup_and_exit 3 nova console-log "build-$VM_VOLUME_NAME" } obs-build-20141024/build-pkg-arch0000644000000000000000000000517612422424142016311 0ustar rootroot00000000000000# # Arch specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ 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 } pkg_get_installed_arch() { : } pkg_set_packageid_arch() { PKGID=`readlink $BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF` PKGID="${PKGID##*/}" PKGID="${PKGID/%.pkg.tar.?z/.arch}" PKGID="${PKGID%.arch} arch" } pkg_erase_arch() { cleanup_and_exit 1 } pkg_verify_installed_arch() { return 1 } pkg_cumulate_arch() { return 1 } pkg_install_arch() { # -d -d disables deps checking ( $CHROOT 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|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|checking available disk space|installing |upgrading |warning:.*is up to date -- reinstalling|Optional dependencies for| )/||/^$/||print' } pkg_finalize_arch() { : } pkg_preinstall_arch() { $TAR -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.arch" if test -f .INSTALL ; then cat .INSTALL > ".init_b_cache/scripts/$PKG.post" echo 'type post_install >/dev/null 2>&1 && post_install' >> ".init_b_cache/scripts/$PKG.post" fi rm -f .PKGINFO .INSTALL } pkg_runscripts_arch() { if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" ; then echo "running $PKG postinstall script" ( $CHROOT "/.init_b_cache/scripts/$PKG.post" < /dev/null ) rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" fi } obs-build-20141024/changelog2spec0000755000000000000000000001445212422424142016404 0ustar rootroot00000000000000#!/usr/bin/perl -w # # Convert a SUSE or Debian changelog file to rpm format # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Date::Parse; use Time::Zone; use strict; my @wday = qw{Sun Mon Tue Wed Thu Fri Sat}; my @mon = qw{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}; my $ok; my $zone; my $test; my $printtype; my $input = ''; my $target = 'rpm'; while (@ARGV) { if ($ARGV[0] eq '--test') { $test = 1; shift @ARGV; next; } if ($ARGV[0] eq '--type') { $printtype = 1; shift @ARGV; next; } if (@ARGV > 1 && $ARGV[0] eq '--target') { shift @ARGV; $target = shift @ARGV; next; } last; } if (@ARGV == 2 && $ARGV[0] eq '--file') { die("bad --file arg\n") unless $ARGV[1] =~ /^(.*)\/([^\/]+)$/; my ($dir, $file) = ($1, $2); $file =~ s/\.(?:spec|dsc)$//; opendir(D, $dir) || die("$dir: $!\n"); my @changes = grep {/\.changes$/} readdir(D); closedir(D); # support _service: prefixes, they need to be stripped $file =~ s/^_service:.*://; my %changes = map {/^((?:_service:.*:)?(.*?))$/ ? ($2, $1) : ($_, $_)} @changes; @changes = keys %changes; @changes = sort {length($a) <=> length($b) || $a cmp $b} @changes; exit(1) unless @changes; # nothing to do if (@changes > 1) { while ($file ne '') { my @c = grep {/\Q$file\E/} @changes; if (@c) { @changes = @c; last; } last unless $file =~ s/[-.][^-.]*$//; } } @ARGV = ("$dir/$changes{$changes[0]}"); } sub parse_suse { $_ = $_[0]; my $dline; die("bad changelog heading\n") unless /^(?:\* )?([A-Za-z]+\s+[A-Za-z]+\s+[0-9][^-]*?[0-9][0-9][0-9][0-9])(.*\@.*$)/; my $dt = $1; my $who = $2; $dt = lc($dt); $who =~ s/^\s+//; $who =~ s/^-\s*//; $dt =~ /([0-9][0-9][0-9][0-9])/; $dline = $_; my $year = $1; if (!defined($zone) && $dt =~ /\s([a-z]{3,4})(dst)?\s[0-9]{4}/) { my $dst = $2; $zone = tz_offset($1); $zone += 3600 if defined($zone) && $dst; } my $tdt = str2time($dt); $dt =~ /([0-9]+)/; my $day = $1; if (!$tdt) { if ($dt =~ /([a-z]{3})\s+([a-z]{3})/) { $tdt = str2time("$1 $2 $day $year"); } } if (!$tdt) { if ($dt =~ /([a-z]{3})/) { $tdt = str2time("$1 $day $year"); } } if (!$tdt) { $tdt = str2time("$year-1-1"); } $tdt += 12 * 3600 unless $dt =~ /\d:\d/; # 12:00 if not specified $tdt += ($zone || 0); my $ok = 1; my $change = ''; while(<>) { chomp; last if /^(?:\* )?([A-Za-z]+\s+[A-Za-z]+\s+[0-9][^-]*?[0-9][0-9][0-9][0-9])(.*\@.*$)/; next if (/^--------------/); next if (/^========================/); s/\s+$//; next if $_ eq ''; s/^\s*-/-/ if $ok == 1; # obsolete? s/^\s*\*\s*/ * /; if (!/^-/) { s/^\s+-\s*/ - /; s/^\s*/ / unless s/^ \s*/ /; } $change .= "$_\n"; $ok = 2; } return ($_, $tdt, $dline, $who, $change); } sub parse_debian { $_ = $_[0]; die("bad line: $_\n") unless /^(\w[-+0-9a-z.]*) \(([^\(\) \t]+)\)((\s+[-+0-9a-z.]+)+)\;.*$/; my $package = $1; my $version = $2; my $distribution = $3; my $who; my $date; my $changes = "- version $version\n"; while(<>) { chomp; s/\s+$//; next if $_ eq ''; if (/^ --/) { die("bad maintainer line\n") unless /^ \-\- (.* <.*>) (.*)$/; $who = $1; $date = $2; last; } die("bad change details line: $_\n") unless s/^ //; s/^\*/-/; s/\s*\(closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*\)//i; s/\s+$//; next if $_ eq ''; $changes .= "$_\n"; } die("no maintainer line in last entry\n") unless defined $date; if (!defined($zone) && ($date =~ /([-+])(\d\d)(\d\d)$/)) { $zone = 60 * ($3 + 60 * $2); $zone = -$zone if $1 eq '-'; } my $tdt = str2time($date); return ('', $tdt, $_, $who, $changes); } my $format; while (<>) { chomp; next if /^\s*$/; next if (/^--------------/); next if (/^========================/); if (/^(?:\* )?([A-Za-z]+\s+[A-Za-z]+\s+[0-9][^-]*?[0-9][0-9][0-9][0-9])(.*\@.*$)/) { # suse : * Fri Jun 07 2013 First Last # tizen: * Fri Jun 07 2013 First Last tagname@commitid $format = 'suse'; } elsif (/^(\w[-+0-9a-z.]*) \(([^\(\) \t]+)\)((\s+[-+0-9a-z.]+)+)\;.*$/) { $format = 'debian'; } else { die("unknown changelog format\n"); } last; } exit(0) unless $format; if ($printtype) { print "$format\n"; exit(0); } if ($target eq $format) { print "$_\n"; while (<>) { print $_; } exit(0); } die("don't know how to convert changelog to format '$target'\n") if $target ne 'rpm'; my ($lastt, $t, $dline, $who, $changes); while(defined($_)) { if (/^\s*$/) { $_ = <>; last unless $_; chomp; next; } if ($format eq 'suse') { ($_, $t, $dline, $who, $changes) = parse_suse($_); } elsif ($format eq 'debian') { ($_, $t, $dline, $who, $changes) = parse_debian($_); } if (defined($lastt) && $lastt < $t) { die("changes file not incremental: $dline\n") if $test; warn("changes file not incremental: $dline\n"); } $lastt = $t; my @gm = gmtime($t); # silly rpm can't hande dates < 1997, so we fold everything to # Thu Jan 02 1997 @gm = (0, 0, 0, 2, 0, 97, 4) if $gm[5] < 97 || ($gm[5] == 97 && $gm[4] == 0 && $gm[3] <= 1); printf("* %s %s %2d %4d %s\n", $wday[$gm[6]], $mon[$gm[4]], $gm[3], $gm[5] + 1900, $who); $changes =~ s/%/%%/g; $changes =~ s/^(\s*)%%(\S*)/$1\[%%$2\]/; $changes =~ s/^(\s*)(\#\d*)/$1\[$2\]/mg; $changes =~ s/^\*/ */mg; print $changes; } exit(0); obs-build-20141024/createarchdeps0000755000000000000000000000555412422424142016500 0ustar rootroot00000000000000#!/usr/bin/perl -w # Archlinux support, based on the GSoC work of Nikolay Rysev ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{"BUILD_DIR"} || "/usr/lib/build"); } use strict; use Archive::Tar; use Build::Arch; use Digest::MD5; use File::Path; use Getopt::Long; Getopt::Long::Configure("no_ignore_case"); my $cachedir = "/var/cache/build"; sub getrepodb { my ($url, $reponame, $dir) = @_; File::Path::mkpath($dir); system($INC[0]."/download", $dir, "$url$reponame.db"); } sub getreponame { my ($url) = @_; return $1 if "/$url/" =~ /.*\/([^\/]+)\/os\//; return undef; } sub printpkginfo { my ($d, $repourl) = @_; my $id = $d->{'name'} . "." . $d->{'arch'} . "-" . $d->{'buildtime'} . "/0/0"; my $pkgurl = $repourl . $d->{'filename'}; my $selfprovides = $d->{'name'}; $selfprovides .= "=$d->{'version'}" if defined $d->{'version'}; push @{$d->{'provides'}}, $selfprovides unless @{$d->{'provides'} || []} && $d->{'provides'}->[-1] eq $selfprovides; print "F:$id: $pkgurl\n"; print "P:$id: " . join(' ', @{$d->{'provides'}}) . "\n" if $d->{'provides'}; print "R:$id: " . join(' ', @{$d->{'requires'}}) . "\n" if $d->{'requires'}; print "I:$id: $d->{name}-$d->{'version'} $d->{'buildtime'}\n"; } GetOptions("cachedir=s" => \$cachedir) or exit(1); for my $url (@ARGV) { die("Not an Archlinux repo") unless $url =~ /^(:?ftps?|https?):\/\/([^\/]*)\/?/; my $reponame = getreponame($url); my $repoid = Digest::MD5::md5_hex($url); my $dir = "$cachedir/$repoid"; $url .= '/' unless $url =~ /\/$/; getrepodb($url, $reponame, $dir); my $repodb = Archive::Tar->iter("$dir/$reponame.db", 1); my $e; my $lastfn = ''; my $d; while ($e = $repodb->()) { next unless $e->type() == Archive::Tar::Constant::FILE; my $fn = $e->name(); next unless $fn =~ s/\/(?:depends|desc|files)$//s; if ($lastfn ne $fn) { printpkginfo($d, $url) if $d->{'name'}; $d = {}; $lastfn = $fn; } Build::Arch::parserepodata($d, $e->get_content()); } printpkginfo($d, $url) if $d->{'name'}; } obs-build-20141024/build-vm-zvm0000644000000000000000000002760212422424142016047 0ustar rootroot00000000000000# # z/VM specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # z/VM: use default kernel image from local machine # lets go with the default parameters. However zvm_initrd will be a required parameter #zvm_kernel=/boot/image #zvm_initrd=/boot/initrd_worker zvm_param="root=/dev/disk/by-path/ccw-0.0.0150-part1 hvc_iucv=8 console=hvc0" zvm_mult_pass="THR4ME" zvm_init_script="/.build/build" ####################################################################################### # this once was in zvm_functions zvm_fatal() { echo "$1" test -n "$ZVM_CLEANUP" && exit 1 cleanup_and_exit 1 } prevent_detach() { if test "$1" = "150" -o "$1" = "0150"; then zvm_fatal "don't detach local root" fi } zvm_memset() { # defining the worker also resets the operating system. Be careful # $1: user name # $2: amount in MB # Note, that this is also limited by the worker definition in the user directory if test -n "$2"; then if ! vmcp send $1 define storage ${2}M ; then zvm_fatal "Could not redefine storage of $1 to ${2}M" fi fi } zvm_logon() { # kill machine if it already runs # autolog machine # Needs machine name as $1 if test -n "$1" ; then if $(vmcp q "$1" >& /dev/null) ; then vmcp force $1 sleep 1 fi if ! $(vmcp q "$1" >& /dev/null) ; then if ! $(vmcp xautolog $1 >& /dev/null) ; then zvm_fatal "Could not start machine $1. Is $1 defined in the user directory?" else # give the worker a moment to initialize sleep 2 zvm_memset $1 $VM_MEMSIZE sleep 2 fi fi fi } zvm_ipl() { # IPL worker. Needs user as $1 and ipl device as $2. if test -n "$1" -a -n "$2" ; then if ! $(vmcp q "$1" >& /dev/null); then zvm_fatal "User $1 not logged on." else if ! $(vmcp send $1 ipl $2); then zvm_fatal "Could not send command to $1" fi fi else zvm_fatal "Not enough arguments for ipl. Need user and device number." fi } zvm_destroy() { # Destroy build. Done by killing the worker machine. # needs user as $1 if test -n "$1"; then if ! $(vmcp force $1 ) ; then zvm_fatal "Could not force $1" fi fi } zvm_get_local_devnr() { # $1 is base address, either 150 or 250 # $2 is worker number # there is room for up to 100 workers for this controlling guest, however in our setup I expect only up to 10 workers. #echo "Debug: zvm_get_local_devnr: arg1: $1 arg2: $2" if test "$2" -ge 100 ; then zvm_fatal "Not more than 100 workers supported by one controlling guest." fi if test "$1" = "0150" -o "$1" = "150" ; then DEVNR=$((300+$2)) else if test "$1" = "0250" -o "$1" = "250" ; then DEVNR=$((400+$2)) else zvm_fatal "The disk devices for root and swap must be 150 and 250 respectively." fi fi echo $DEVNR } zvm_volume_link_local() { # attach worker disk to local system as preparation for # a) prepare worker for build # b) get rpms of the swap disk after build finished # disk must be detached from worker first # The following arguments are needed: # 1. Worker user name # 2. Worker disk device number # 3. Mult password for the disk # 4. Worker number to generate a uniq local device number if test -n "$4"; then DEVNR=$(zvm_get_local_devnr $2 $4) if ! vmcp link $1 $2 $DEVNR MW pass=THR4ME >& /dev/null ; then zvm_fatal "Could not link disk $2 from user $1 to local device $DEVNR." fi dasd_configure 0.0.0$DEVNR 1 0 >& /dev/null udevadm settle DEVICE=$(ls /sys/bus/ccw/devices/0.0.0$DEVNR/block/) if ! test -b /dev/${DEVICE}1 ; then zvm_fatal "The device /sys/bus/ccw/devices/0.0.0$DEVNR has not been setup correctly." fi echo "${DEVICE}1" else zvm_fatal "Not enough arguments given to volume_link_local." fi } zvm_volume_detach_local() { # we need # 1. worker device number # 2. worker number DEVNR=$(zvm_get_local_devnr $1 $2) prevent_detach $DEVNR dasd_configure 0.0.0$DEVNR 0 0 if ! vmcp detach $DEVNR >& /dev/null ; then zvm_fatal "Could not locally detach disk number $1 from worker $2" fi } zvm_volume_attach() { # link the local disk of the worker # $1: user name # $2: disk device number # send link * nr nr if ! vmcp send $1 link \* $2 $2 ; then zvm_fatal "Could not link remote worker disk number $2 from user $1" fi } zvm_volume_detach() { # send machine detach nr # $1: user name # $2: disk if ! vmcp send $1 detach $2 ; then zvm_fatal "Could not detach disk $2 on worker $1" fi } zvm_worker_init() { # 1. Worker user name # 2. Worker root device number # 3. Worker swap device number # 4. Worker number to generate a uniq local device number # Check for: # - still mounted dasd # - configured dasd # - linked dasd # - reset worker with force and autolog DEVNR_ROOT=$(zvm_get_local_devnr $2 $4) DEVNR_SWAP=$(zvm_get_local_devnr $3 $4) # First, check for mounts: for DEVNR in $DEVNR_ROOT $DEVNR_SWAP ; do if test -d /sys/bus/ccw/devices/0.0.0$DEVNR/block ; then DEV=$(ls /sys/bus/ccw/devices/0.0.0$DEVNR/block/) echo "Found device of worker $1 available at $DEVNR, device is /dev/$DEV." grep "/dev/$DEV" /proc/mounts >& /dev/null && umount /dev/${DEV}1 fi done # Second, check if devices are online for DEVNR in $DEVNR_ROOT $DEVNR_SWAP ; do lsdasd $DEVNR | grep $DEVNR && dasd_configure 0.0.0$DEVNR 0 0 done # Third, remove stale links for DEVNR in $DEVNR_ROOT $DEVNR_SWAP ; do prevent_detach $DEVNR if vmcp q v $DEVNR 2> /dev/null ; then vmcp detach $DEVNR fi done # Fourth, reset worker zvm_logon $1 } zvm_cp() { modprobe vmcp || zvm_fatal "Cannod load vmcp module" if test -n "$1" ; then case "$1" in start) shift ; zvm_logon "$@" ;; ipl) shift ; zvm_ipl "$@" ;; destroy) shift ; zvm_destroy "$@" ;; volume_attach) shift ; zvm_volume_attach "$@" ;; volume_detach) shift ; zvm_volume_detach "$@" ;; volume_link_local) shift ; zvm_volume_link_local "$@" ;; volume_detach_local) shift ; zvm_volume_detach_local "$@" ;; memset) shift ; zvm_memset "$@" ;; worker_init) shift ; zvm_worker_init "$@" ;; esac fi } ####################################################################################### vm_verify_options_zvm() { VM_IMAGE=/dev/dasda1 VM_SWAP=/dev/dasdb1 VM_SWAPDEV=/dev/dasdb1 # in the vm if test -z "$VM_VOLUME_ROOT" ; then if test -n "$BUILD_ROOT" -a ${#BUILD_ROOT} -le 4 ; then VM_VOLUME_ROOT="$BUILD_ROOT" else VM_VOLUME_ROOT="0150" fi fi # In z/VM, this is a 4 digit hex number instead of a linux device. # This is the swap disk defined in user direct # This number can be given with the parameter --swap NR. if test -z "$VM_VOLUME_SWAP" ; then if test -n "$VM_SWAP" -a ${#VM_SWAP} -le 4 ; then VM_VOLUME_SWAP="$VM_SWAP" else VM_VOLUME_SWAP="0250" fi fi # z/VM guest name that is already defined in z/VM if test -z "$VM_WORKER" ; then echo "ERROR: No z/VM worker id specified" cleanup_and_exit 3 fi if test -z "$VM_WORKER_NR" ; then echo "ERROR: No z/VM worker number specified" cleanup_and_exit 3 fi # need the name for a kernel in zvm if test -n "$VM_KERNEL" ; then vm_kernel="$VM_KERNEL" elif test -e "/boot/vmlinux.gz" ; then vm_kernel="/boot/vmlinux.gz" else echo "ERROR: No z/VM kernel specified" cleanup_and_exit 3 fi # need the name for an initrd in zvm # this normally will not be the local initrd if test -n "$VM_INITRD" ; then vm_initrd="$VM_INITRD" else echo "ERROR: No z/VM initrd specified" cleanup_and_exit 3 fi zvm_cp worker_init $VM_WORKER $VM_VOLUME_ROOT $VM_VOLUME_SWAP $VM_WORKER_NR zvm_cp volume_detach $VM_WORKER $VM_VOLUME_ROOT zvm_cp volume_detach $VM_WORKER $VM_VOLUME_SWAP } vm_startup_zvm() { # link root/swap to the worker zvm_cp volume_attach $VM_WORKER $VM_VOLUME_ROOT zvm_cp volume_attach $VM_WORKER $VM_VOLUME_SWAP zvm_cp ipl $VM_WORKER $VM_VOLUME_ROOT # start IUCV Console # IPL needs some time until IPL really starts... sleep 2 # start iucv console. This blocks until build process is finished. iucvconn $VM_WORKER lnxhvc0 # sleep some time before taking root and swap devices from worker # This might be critical regarding timing (IUCV_CONSOLE down, but machine still running) sleep 5 zvm_cp volume_detach $VM_WORKER $VM_VOLUME_ROOT zvm_cp volume_detach $VM_WORKER $VM_VOLUME_SWAP } vm_kill_zvm() { if vmcp q "$VM_WORKER" > /dev/null 2>&1 ; then if ! zvm_cp destroy $VM_WORKER ; then echo "could not kill zvm worker $VM_WORKER" cleanup_and_exit 1 fi fi } vm_fixup_zvm() { # initrd is created in obsstoragesetup. # If it is desired to use a project dependent kernel, use make_guestinitrd from zvm_functions. # have to copy kernel/initrd and run zipl to be able to IPL # have to set init_script before unmounting, thus doing it statically for now. zvm_init_script="/.build/build" mkdir -p $BUILD_ROOT/boot cp $vm_kernel $vm_initrd $BUILD_ROOT/boot mkdir -p $BUILD_ROOT/boot/zipl # finally, install bootloader to the worker disk zipl -t $BUILD_ROOT/boot/zipl -i ${BUILD_ROOT}${vm_kernel} -r ${BUILD_ROOT}${vm_initrd} \ --parameters "${zvm_param} init=$zvm_init_script rootfsopts=noatime" } vm_attach_root_zvm() { VM_IMAGE=$(ZVM_CLEANUP=1 zvm_cp volume_link_local $VM_WORKER $VM_VOLUME_ROOT $zvm_mult_pass $VM_WORKER_NR ) if test "${VM_IMAGE}" = "${VM_IMAGE#dasd}" ; then echo "did not get a real device for VM_IMAGE: $VM_IMAGE" cleanup_and_exit 3 fi VM_IMAGE="/dev/$VM_IMAGE" } vm_attach_swap_zvm() { VM_SWAP=$(ZVM_CLEANUP=1 zvm_cp volume_link_local $VM_WORKER $VM_VOLUME_SWAP $zvm_mult_pass $VM_WORKER_NR ) if test "${VM_SWAP}" = "${VM_SWAP#dasd}" ; then echo "did not get a real device for VM_SWAP: $VM_SWAP" cleanup_and_exit 3 fi VM_SWAP="/dev/$VM_SWAP" } vm_detach_root_zvm () { zvm_cp volume_detach_local $VM_VOLUME_ROOT $VM_WORKER_NR } vm_detach_swap_zvm() { zvm_cp volume_detach_local $VM_VOLUME_SWAP $VM_WORKER_NR } vm_cleanup_zvm() { if test -n "$VM_WORKER" -a -n "$VM_WORKER_NR" -a -n "$VM_VOLUME_ROOT" -a -n "$VM_VOLUME_SWAP" ; then ZVM_CLEANUP=1 (zvm_cp volume_detach $VM_WORKER $VM_VOLUME_ROOT >/dev/null 2>&1) (zvm_cp volume_detach $VM_WORKER $VM_VOLUME_SWAP >/dev/null 2>&1) (zvm_cp volume_detach_local $VM_VOLUME_ROOT $VM_WORKER_NR >/dev/null 2>&1) (zvm_cp volume_detach_local $VM_VOLUME_SWAP $VM_WORKER_NR >/dev/null 2>&1) fi } obs-build-20141024/build-vm-lxc0000644000000000000000000000344512422424142016020 0ustar rootroot00000000000000# # LXC specific functions # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ vm_verify_options_lxc() { VM_IMAGE= VM_SWAP= } vm_startup_lxc() { LXCCONF="$BUILD_ROOT/.build.lxc.conf" rm -f "$LXCCONF" cat $BUILD_DIR/lxc.conf > "$LXCCONF" cat >> "$LXCCONF" <<-EOF lxc.rootfs = $BUILD_ROOT EOF # XXX: do this always instead of leaking the hosts' one? echo "rootfs / rootfs rw 0 0" > $BUILD_ROOT/etc/mtab LXCID=${BUILD_ROOT##*/} lxc-destroy -n "$LXCID" >/dev/null 2>&1 || true lxc-create -n "$LXCID" -f "$LXCCONF" || cleanup_and_exit 1 lxc-start -n "$LXCID" "$vm_init_script" BUILDSTATUS="$?" test "$BUILDSTATUS" != 255 || BUILDSTATUS=3 cleanup_and_exit "$BUILDSTATUS" } vm_kill_lxc() { LXCID=${BUILD_ROOT##*/} lxc-stop -n "$LXCID" || true lxc-destroy -n "$LXCID" } vm_fixup_lxc() { : } vm_attach_root_lxc() { : } vm_attach_swap_lxc() { : } vm_detach_root_lxc() { : } vm_detach_swap_lxc() { : } vm_cleanup_lxc() { : } obs-build-20141024/extractbuild0000755000000000000000000001134112422424142016204 0ustar rootroot00000000000000#!/usr/bin/perl -w ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ use strict; # buffer size for reading my $bufsize = 4*1024*1024; my ($opt_skip, $opt_disk, $opt_input, $opt_verbose); $opt_verbose = 0; while (@ARGV) { if ($ARGV[0] eq '--skip') { shift @ARGV; $opt_skip = shift @ARGV; next; } if ($ARGV[0] eq '--disk') { shift @ARGV; $opt_disk = shift @ARGV; next; } if ($ARGV[0] eq '--input') { shift @ARGV; $opt_input = shift @ARGV; next; } if ($ARGV[0] eq '--verbose' || $ARGV[0] eq '-v') { shift @ARGV; $opt_verbose++; next; } last; } die "need to specify disk image\n" unless $opt_disk; open(F, '<', $opt_disk) || die "$opt_disk: $!\n"; if ($opt_input) { open(S, '<', $opt_input) || die "$opt_input: $!\n"; } else { open(S, '<&STDIN') || die "can't dup stdin: $!\n"; } # skip build status if ($opt_skip) { seek(S, $opt_skip, 0) || die "seek: $!\n"; } my %done; while () { chomp; last unless length $_; my ($filetype, $file, $filesize, $blksize, @blocks) = split(/ /); die("invalid input '$_'\n") unless defined($file); $file =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge; die("bad file '$file'\n") if "/$file/" =~ /\/\.{0,2}\//s; if ($file =~ /^(.*)\//s) { die("file without directory: $file\n") unless $done{$1} && $done{$1} eq 'd'; } if ($filetype eq 'd') { # dir print "$file\n" if $opt_verbose && $opt_verbose > 1; mkdir($file) || die("mkdir $file: $!\n"); $done{$file} = 'd'; next; } if ($filetype eq 'l') { # symlink my $target = $filesize; die("symlink without target\n") unless defined $target; $target =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge; die("bad symlink: $target\n") if "/$target/" =~ /\/\.?\//s; if ("/$target/" =~ /^(\/\.\.)+\/(.*?)$/s) { my ($head, $tail) = ($1, $2); die("bad upref in symlink: $target\n") if "/$tail/" =~ /\/\.\.\//s; die("bad upref in symlink: $target\n") if ($head =~ y!/!!) > ($file =~ y!/!!); } else { die("bad upref in symlink: $target\n") if "/$target/" =~ /\/\.\.\//s; } print "$file\n" if $opt_verbose && !($opt_verbose == 1 && $file =~ /^KIWI\/.*\//); symlink($target, $file) || die("symlink $target $file: $!\n"); $done{$file} = 'l'; next; } die("illegal file type: $filetype\n") unless $filetype eq 'f'; die "invalid input '$_'\n" if !@blocks && $filesize; $done{$file} = 'f'; $filesize = int($filesize); if ($filesize == 0) { print "$file\n" if $opt_verbose && !($opt_verbose == 1 && $file =~ /^KIWI\/.*\//); open (O, '>', $file) or die "$file: $!\n"; close O; next; } $blksize = int($blksize); die "$file: invalid block size $blksize\n" unless $blksize > 0 && $blksize <= $bufsize; my $maxblocks = int($bufsize/$blksize); print "$file\n" if $opt_verbose && !($opt_verbose == 1 && $file =~ /^KIWI\/.*\//); open (O, '>', $file) or die "$file: $!\n"; for my $block (@blocks) { my $end; ($block, $end) = split(/-/, $block); $block = int($block); if ($block == 0) { # a hole! $end = (($end || 0) + 1) * $blksize; $end = $filesize if $end > $filesize; seek(O, $end, 1); $filesize -= $end; next; } $end = $block unless $end; $end = int($end); seek(F, $block*$blksize, 0) || die "$file: seek: $!\n"; while ($block <= $end && $filesize) { my $size; if ($end == $block) { $size = $blksize; ++$block; } elsif ($maxblocks >= $end-$block) { $size = ($end-$block)*$blksize; $block += $end-$block; } else { $size = $maxblocks*$blksize; $block += $maxblocks; } $size = $filesize if $size > $filesize; my $buf; (sysread(F, $buf, $size) || 0) == $size || die("$file: read: $!\n"); $filesize -= $size; (syswrite(O, $buf) || 0) == length($buf) || die("$file: write error\n"); } } close(O) || die("$file: close error: $!\n"); # sanity check die "$file: invalid file size ($filesize byes left)\n" if $filesize != 0; } obs-build-20141024/initvm.c0000644000000000000000000002111112422424142015232 0ustar rootroot00000000000000/* * NAME * initvm - init for qemu, setup binfmt_misc launch build * * SYNOPSIS * initvm * * DESCRIPTION * This is the kernel init script for virtual machines which will * be running executables for an embedded (non-native) * architecture. It registers binfmt_misc handlers for qemu and * executes the build script, and tests many assumptions. * * FILES * /.build/qemu-reg * text file with lines to stuff into the binfmt_misc * filesystem registration file * /.build/build * build script to execute once binfmts are set up * * AUTHOR * Copyright (c) 2012 James Perkins * i Adrian Schroeter * * 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 * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program (see the file COPYING); if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include #include #include #include #include #include #include /* to enable debugging, compile with -DDEBUG */ #ifdef DEBUG #define DBG(x) do { x; } while(0) #else #define DBG(x) #endif /* function return codes */ enum okfail { FAIL=0, OK=1 }; /* qemu registration fields, see kernel/Documentation/binfmt_misc.txt */ enum fields { ignore=0, name, type, offset, magic, mask, interpreter, flags }; const char * const fieldnames[] = { "ignore", "name", "type", "offset", "magic", "mask", "interpreter", "flags" }; const int n_fields = 8; /* files in useful places */ #define SYSFS_BINFMT_MISC "/proc/sys/fs/binfmt_misc" #define SYSFS_BINFMT_MISC_REG "/proc/sys/fs/binfmt_misc/register" #define SYSFS_BINFMT_MISC_STAT "/proc/sys/fs/binfmt_misc/status" /* /usr/lib/build/x paths are copied to /.build inside a virtual machine */ #define BINFMT_REGF_0 "/.build/qemu-reg" #define BINFMT_REGF_1 "/usr/lib/build/qemu-reg" #define BUILD "/.build/build" /* useful constant arrays */ static char *rx_files[] = { "/proc", "/proc/sys", "/proc/sys/fs", SYSFS_BINFMT_MISC, NULL }; static char *w_files[] = { SYSFS_BINFMT_MISC_REG, NULL }; static char* const args[] = { BUILD, NULL }; /* test access modes for files, return OK or FAIL */ enum okfail test_access_files(char *files[], int mode, const char *errstr) { int i; for (i = 0; files[i] != NULL; i++) { if (access(files[i], mode) != 0) { fprintf(stderr, "%s: %s: fails test\n", files[i], errstr); return FAIL; } } return OK; } /* find a string in the given file, return OK or FAIL */ enum okfail strfile(const char *filename, const char *string) { char buf[BUFSIZ]; FILE *fp; enum okfail found = FAIL; fp = fopen(filename, "r"); if (fp == NULL) { perror(filename); return FAIL; } while (fgets(buf, sizeof(buf), fp) != NULL) { if (strcmp(buf, string) == 0) { found = OK; break; } } (void)fclose(fp); return found; } /* write the file with given string, return OK or FAIL */ enum okfail write_file_string(const char *filename, const char *string) { int fd; if ((fd = open(filename, O_WRONLY)) == -1) { perror(filename); return FAIL; } if (write(fd, string, strlen(string)) == -1) { perror("write"); fprintf(stderr, "%s: write failed\n", filename); close(fd); return FAIL; } close(fd); return OK; } #ifdef DEBUG /* dump contents of the file to stderr, return OK or FAIL */ enum okfail dump_file(char *path) { FILE *fp; char buf[BUFSIZ]; fp = fopen(path, "r"); if (fp == NULL) { perror(path); return FAIL; } while (fgets(buf, sizeof(buf), fp) != NULL) { fputs(buf, stderr); } fclose(fp); return OK; } #endif /* DEBUG */ /* parse datafile and register (to regfile) all binary formats found */ enum okfail binfmt_register(char *datafile, char *regfile) { char buf[BUFSIZ]; FILE *fp; int line; fp = fopen(datafile, "r"); if (fp == NULL) { perror(datafile); return FAIL; } for (line = 1; fgets(buf, sizeof(buf), fp) != NULL; line++) { char tokens[BUFSIZ]; char *s = tokens; char *f[n_fields]; /* field content pointers */ int n; /* current field */ char path[BUFSIZ]; if (buf[0] != ':') /* non-data input line */ { continue; } /* copy buf and tokenize :-seperated fields into f[] */ strcpy(tokens, buf); for (n = 0; s != NULL && n < n_fields; n++) { f[n] = strsep(&s, ":"); } #ifdef DEBUG int i; fprintf(stderr, "DEBUG: line %d, fields %d:\n", line, n); for (i = name; i < n; i++) { fprintf(stderr, " %s %s\n", fieldnames[i], f[i]); } #endif /* DEBUG */ if (n == n_fields && s != NULL) { fprintf(stderr, "%s: line %d: extra fields, ignoring." " Content: %s", datafile, line, buf); continue; } if (n < n_fields) { fprintf(stderr, "%s: line %d: missing fields, ignoring." " Content: %s", datafile, line, buf); continue; } 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); fprintf(stderr, "interpreter for '%s' is %d\n", f[name], ret); if (ret == 0) { #ifdef DEBUG fprintf(stderr, "interpreter for '%s' already registered, ignoring\n", f[name]); #endif /* DEBUG */ continue; } /* 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; } if (!write_file_string(regfile, buf)) { fprintf(stderr, "%s: line %d: write failed." " Content: %s\n", datafile, line, buf); (void)fclose(fp); return FAIL; } /* verify registration completed correctly */ snprintf(path, sizeof(path), SYSFS_BINFMT_MISC "/%s", f[name]); if (access(path, R_OK) != 0) { fprintf(stderr, "%s: line %d: binfmt path not created, content '%s'\n", path, line, buf); (void)fclose(fp); return FAIL; } DBG(fprintf(stderr, "dumping: %s\n", path)); DBG(dump_file(path)); } (void)fclose(fp); return OK; } /* set up/verify binfmt FS support, program more binfmts, and launch build */ int main(int argc, char* argv[], char* env[]) { int retval; char buf[BUFSIZ]; /* 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)); } /* 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")) { exit(1); } if (!test_access_files(w_files, W_OK, "write")) { exit(1); } if (!strfile("/proc/filesystems", "nodev\tbinfmt_misc\n")) { fprintf(stderr, "/proc/filesystems: binfmt_misc support missing\n"); exit(1); } if (!strfile(SYSFS_BINFMT_MISC_STAT, "enabled\n")) { fprintf(stderr, "%s: binfmt_misc filesystem support not enabled\n", SYSFS_BINFMT_MISC_STAT); exit(1); } if (getenv("BUILD_DIR")) sprintf(buf, "%s/qemu-reg", getenv("BUILD_DIR")); 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", BINFMT_REGF_0); if (!binfmt_register(BINFMT_REGF_1, SYSFS_BINFMT_MISC_REG)) { fprintf(stderr, "%s: binfmt registration failed\n", BINFMT_REGF_1); exit(1); } } } /* if we are the init process, start build */ if (getpid() == 1) { if (access(BUILD, F_OK) != 0) { fprintf(stderr, "%s: build executable missing\n", BUILD); exit(1); } if (access(BUILD, X_OK) != 0) { fprintf(stderr, "%s: not executable\n", BUILD); exit(1); } execve(BUILD, args, env); perror("execve of "BUILD); exit(1); } /* success! */ exit(0); } obs-build-20141024/build-recipe-preinstallimage0000644000000000000000000000465212422424142021240 0ustar rootroot00000000000000# # preinstall specific functions. # ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # 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 # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ recipe_setup_preinstallimage() { # should never be called cleanup_and_exit 1 } recipe_prepare_preinstallimage() { : } recipe_build_preinstallimage() { echo "creating preinstall image..." test -d "$BUILD_ROOT/.preinstall_image" || cleanup_and_exit 1 cd $BUILD_ROOT || cleanup_and_exit 1 TAR="tar" if test -x /usr/bin/bsdtar; then TAR="/usr/bin/bsdtar --format gnutar --chroot" fi TOPDIRS= for DIR in .* * ; do case "$DIR" in .|..) continue ;; .build.kernel*) ;; # to be packaged .build.initrd*) ;; # to be packaged .build*) continue ;; .preinstallimage*) continue ;; .srcfiles*) continue ;; .pkgs) continue ;; .rpm-cache) continue ;; installed-pkg) continue ;; proc|sys) continue ;; esac TOPDIRS="$TOPDIRS $DIR" done if ! $TAR -czf .preinstallimage.$$.tar.gz --one-file-system $TOPDIRS ; then cleanup_and_exit 1 fi echo "image created." TOPDIR=/usr/src/packages mkdir -p $BUILD_ROOT$TOPDIR/OTHER rm -f $BUILD_ROOT$TOPDIR/OTHER/preinstallimage.info for PKG in $BUILD_ROOT/.preinstall_image/* ; do PKG=${PKG##*/} read PKG_HDRMD5 PKGID < $BUILD_ROOT/.preinstall_image/$PKG test -n "$PKG_HDRMD5" || cleanup_and_exit 1 echo "$PKG_HDRMD5 $PKG" >> $BUILD_ROOT$TOPDIR/OTHER/preinstallimage.info done mv $BUILD_ROOT/.preinstallimage.$$.tar.gz $BUILD_ROOT$TOPDIR/OTHER/preinstallimage.tar.gz rm -f $BUILD_ROOT/.build.packages ln -s ${TOPDIR#/} $BUILD_ROOT/.build.packages test -d "$SRCDIR" && cd "$SRCDIR" } recipe_resultdirs_preinstallimage() { : }