Hello community, here is the log from the commit of package installation-images for openSUSE:Factory checked in at 2013-08-27 10:44:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/installation-images (Old) and /work/SRC/openSUSE:Factory/.installation-images.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "installation-images" Changes: -------- --- /work/SRC/openSUSE:Factory/installation-images/installation-images.changes 2013-08-13 13:04:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.installation-images.new/installation-images.changes 2013-08-27 10:44:20.000000000 +0200 @@ -1,0 +2,15 @@ +Fri Aug 23 11:49:36 CEST 2013 - snwint@suse.de + +- adjust to package changes +- convert rescue image to automatic dependency solving +- even better package deps handling +- add warning +- improved package solving + +------------------------------------------------------------------- +Tue Aug 20 14:31:33 CEST 2013 - snwint@suse.de + +- move from zypper to libsolv +- minor tweak + +------------------------------------------------------------------- Old: ---- installation-images-14.8.tar.bz2 New: ---- installation-images-14.10.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ installation-images.spec ++++++ --- /var/tmp/diff_new_pack.gDOohU/_old 2013-08-27 10:44:24.000000000 +0200 +++ /var/tmp/diff_new_pack.gDOohU/_new 2013-08-27 10:44:24.000000000 +0200 @@ -54,6 +54,7 @@ BuildRequires: cryptsetup BuildRequires: cups-libs BuildRequires: curl +BuildRequires: dbus-1-x11 BuildRequires: dd_rescue BuildRequires: dejavu-fonts BuildRequires: dhcp-server @@ -109,6 +110,7 @@ BuildRequires: libpng-devel BuildRequires: libreiserfs BuildRequires: libreiserfs-devel +BuildRequires: libsolv-tools BuildRequires: libudev1 BuildRequires: libyui-ncurses-pkg5 BuildRequires: libyui-qt-graph5 @@ -152,13 +154,15 @@ BuildRequires: perl-XML-NamespaceSupport BuildRequires: perl-XML-Parser BuildRequires: perl-XML-Simple +BuildRequires: perl-solv +BuildRequires: pinentry BuildRequires: suse-module-tools +BuildRequires: suspend BuildRequires: systemd BuildRequires: systemd-presets-branding-basedonopensuse BuildRequires: tunctl BuildRequires: udev BuildRequires: yast2-ruby-bindings -BuildRequires: zypper %if %with_plymouth BuildRequires: libkms1 BuildRequires: plymouth @@ -376,9 +380,9 @@ Summary: Installation Image Files License: GPL-2.0+ Group: Metapackages -Version: 14.8 +Version: 14.10 Release: 0 -Source: installation-images-14.8.tar.bz2 +Source: installation-images-14.10.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %define _binary_payload w.ufdio ++++++ installation-images-14.8.tar.bz2 -> installation-images-14.10.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/VERSION new/installation-images-14.10/VERSION --- old/installation-images-14.8/VERSION 2013-08-12 15:47:32.000000000 +0200 +++ new/installation-images-14.10/VERSION 2013-08-23 11:49:30.000000000 +0200 @@ -1 +1 @@ -14.8 +14.10 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/bin/mk_image new/installation-images-14.10/bin/mk_image --- old/installation-images-14.8/bin/mk_image 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/bin/mk_image 2013-08-22 13:35:26.000000000 +0200 @@ -77,6 +77,7 @@ if(-f "$tmpdir.rpmlog") { SUSystem "chmod 777 $tmpdir"; SUSystem "perl -pe 's/\\[(.*?)\\].*/\$1/' $tmpdir.rpmlog | sort -u >$tmpdir/.packages.$fl"; + SUSystem "cp $tmpdir.rpmlog $tmpdir/.packages.$fl"; SUSystem "chmod 755 $tmpdir"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/changelog new/installation-images-14.10/changelog --- old/installation-images-14.8/changelog 2013-08-12 15:47:35.000000000 +0200 +++ new/installation-images-14.10/changelog 2013-08-23 11:49:33.000000000 +0200 @@ -1,4 +1,15 @@ -2013-08-12: HEAD +2013-08-23: HEAD + - adjust to package changes + - convert rescue image to automatic dependency solving + - even better package deps handling + - add warning + - improved package solving + +2013-08-20: 14.9 + - move from zypper to libsolv + - minor tweak + +2013-08-12: 14.8 - convert base image to automatic dependency solving 2013-08-09: 14.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/data/base/base.file_list new/installation-images-14.10/data/base/base.file_list --- old/installation-images-14.8/data/base/base.file_list 2013-08-12 15:43:36.000000000 +0200 +++ new/installation-images-14.10/data/base/base.file_list 2013-08-22 13:16:50.000000000 +0200 @@ -38,7 +38,6 @@ / AUTODEPS: - / ca-certificates-mozilla: coreutils: @@ -90,6 +89,7 @@ systemd: tar: terminfo-base: +udev: util-linux: ca-certificates: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/data/rescue/rescue.file_list new/installation-images-14.10/data/rescue/rescue.file_list --- old/installation-images-14.8/data/rescue/rescue.file_list 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/data/rescue/rescue.file_list 2013-08-22 15:52:00.000000000 +0200 @@ -13,631 +13,144 @@ # # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -filesystem: - /etc/{ppp,rc.d,uucp} - /etc/sysconfig - /root - /run - /etc/init.d - /usr/tmp - /var -# remove temporarily so that 'mount /sys' doesn't work -r /sys - -libwbclient*: - / - -libtalloc*: - /usr/lib*/libtalloc.so.* - -libkmod*: - / - -libpng*-*: - / - -libfreetype*: - / - -libffi*: - / - -libgio-*-*: - / - -libgmodule-*-*: - / - -aaa_base-extras: - / - -fillup: - / - -libmagic*: - / - -file-magic: - / - -file: - / - -iproute2: - / - -insserv-compat: - / - -libpcre*: - / - -mkinitrd: - / - -grep: - / - -sed: - / - -tar: - / - -star: - / - -bash: - / - -libreadline*: - / - -cpio: - / - -libcrack*: - / - -cracklib: - / - -diffutils: - / - -dump: - / - -hdparm: - / - -ntfsprogs: - / - -libntfs-3g*: - / - -ntfs-3g: - / - s mount.ntfs-3g /sbin/mount.ntfs - -libfuse*: - / - -e2fsprogs: - / - -libext2fs*: - / - -libcom_err*: - / - -libuuid*: - / - -libblkid*: - / - -libgmp*: - / - -coreutils: - / - -dosfstools: - / - -findutils: - / - -libacl*: - / - -libpopt*: - / - -nscd: - / - -libwrap*: - / - -libgcc_s*: - / - -glibc: - / - -libxtables*: - / - -libselinux*: - / - -libutempter*: - / - -gpart: - / - -?silo: - / - -xz: - / - -gzip: - / - -joe: - /usr/bin/{joe,jmacs} - /etc/joe/{joerc,jmacsrc,ftyperc} - -less: - /etc - /usr/bin -r /usr/bin/lesspipe.sh -t /usr/bin/lesspipe.sh -c 0755 0 0 /usr/bin/lesspipe.sh -r /usr/bin/lessopen.sh -t /usr/bin/lessopen.sh -c 0755 0 0 /usr/bin/lessopen.sh -r /usr/bin/lessclose.sh -t /usr/bin/lessclose.sh -c 0755 0 0 /usr/bin/lessclose.sh - -libz*: - / - -bzip2: - / - -libbz2-*: - / - -?lilo: - / - -if exists(pdisk) - pdisk: - / - - iprutils: - / -endif - -?s390-tools: - / - -lsscsi: - / - -sg3_utils: - / - -libsgutils2-*: - / - -sdparm: - / - -smp_utils: - / - -libsmputils1-*: - / - -libmozjs-*: - / - -mozilla-nspr: - / - -?grub: - / - -if arch eq 'x86_64' - glibc-32bit: - / - - libncurses5-32bit: - / -endif - -?efibootmgr: - / - -?elilo: - / - -?grub2: - / - -?grub2-efi: - / - -if arch eq 'ia64' - libunwind: - / -endif - -libncurses*~: - / - -libncurses*: - / - -terminfo-base: - / - -ncurses-utils: - / - -terminfo: - /usr/share/terminfo/i/ibm3151 - -net-tools: - / - -netcat-openbsd: - / - -socat: - / - -netcfg: - /etc -r /etc/{diphosts,ftpusers,hosts.*} -e echo Rescue.local >etc/HOSTNAME - -icmpinfo: - / - -iputils: - / - -telnet: - / - -finger: - / - -rsh: - / - -pam: - / - R s/(pam_unix\.so.*)$/$1 nullok\n/ /etc/pam.d/common-auth - -libaudit*: - / - -pam-modules: - / - -libpci*: - / - -pciutils: - / - -pciutils-ids: - m /usr/share/pci.ids.d/pci.ids.dist /usr/share/pci.ids - -usbutils: - / - -# compat lib -libusb-0_1-4: - / - -libusb-*-*: - / - -libtirpc*: - / - -libprocps*: - / - -procps: - / - -psmisc: - / - -procinfo: - / - -reiserfs: - / - -btrfsprogs: - / - -jfsutils: - / - -xfsprogs: - / - -xfsdump: - / - -openslp: - / - -libattr*: - / - -attr: - / - -rpm: - /bin - /usr/bin - /{usr,var}/lib/rpm - /usr/lib*/librpm*.so.* -r /usr/lib/rpm/rpm{get,put}text -r /usr/bin/rpmqpack - -liblzma*: - / - -libelf*: - / - -liblua5_1: - / - -libsepol*: - / - -setserial: - / - -libnscd*: - / - -libustr-*-*: - / - -libsepol*: - / - -libsemanage*: - / - -shadow: - / - d /etc/skel - -libldap-*-*: - / - -libopenssl*: - / - -cyrus-sasl: - / - -libdb-*: - / - -krb5: - / - -libkeyutils*: - / - -strace: - / - -klogd: - / - -systemd: - / - -libqrencode*: - / - -libtasn*-*: - / - -libgnutls*: - / - -libhogweed*: - / - -libnettle*: - / - -libp11-kit*: - / - -systemd-sysvinit: - / - -libmount*: - / - -nfs-client: - / - -nfsidmap: - / - -libgssglue*: - / - -libevent-*-*: - / - -if arch eq 'ppc' || arch eq 'ppc64' - librtas*: - / - - libsqlite*-*: - / - - powerpc-utils: - / -endif - -mingetty: - / - -vim: - m /bin/vim-normal /bin/vim - s vim /bin/vi - -vim-base: - /usr/bin/xxd - -libgdbm*: - / - -hwinfo: - / - -?libx86emu1: - / - -initviocons: - / - -libexpat*: - / - -libglib-*-*: - / - -libgobject-*-*: - / - -libudev*: - / - -sysfsutils: - /usr/<lib> - -libblkid*: - / - -libuuid*: - / - -libpolkit*: - / - -polkit: - / - -?libsmbios*: - / - -if exists(wireless-tools) - libiw*: - / - - wireless-tools: - / -endif - -libparted*: - / - -parted: +TEMPLATE lvm2|device-mapper|rpcbind|rsync|syslog-service|syslogd|util-linux|sysconfig|dmraid|mdadm|multipath-tools: / + E postin -libreiserfs-*-*: +TEMPLATE: / -#libreiserfs-devel: -# /usr/lib*/libdal.so -# /usr/lib*/libreiserfs.so - -gawk: - /usr/bin/gawk -# uses update-alternatives now -s gawk usr/bin/awk +AUTODEPS: -dd_rescue: - / +dbus-1-x11: ignore +info: ignore +logrotate: ignore +perl-Bootloader: ignore +shared-mime-info: ignore +update-alternatives: ignore +?device-mapper-32bit: ignore +?acpica: +?efibootmgr: +?elilo: +?firmwarekit: +?grub2-i386-pc: +?grub2-x86_64-efi: +?grub2: +?grub: +?iprutils: +?lilo: +?pdisk: +?powerpc-utils: +?powertop: +?s390-tools: +?silo: +?wireless-tools: +aaa_base-extras: +attr: +bash: bc: - / - +bind-libs: +bind-utils: +btrfsprogs: +bzip2: checkmedia: - / - -hex: - / - -libpcsclite*: - / - -libopenct*: - / - +cifs-utils: +coreutils: +cpio: +cracklib-dict-full: +cracklib: +cryptsetup: +curl: +cyrus-sasl: +dd_rescue: dhcpcd: - / - -libedit*: - / - -libnl3-*: - / - -libcap-ng*: - / - -smartmontools: - / - -libstdc++*: - / - +diffutils: +dosfstools: +dump: +e2fsprogs: +file-magic: +file: +fillup: +findutils: +finger: +gawk: +glibc: +gpart: +grep: +gzip: +hdparm: +hex: +hwinfo: +icmpinfo: +initviocons: +insserv-compat: +iproute2: +iputils: +jfsutils: +joe: +kexec-tools: +klogd: kpartx: - / - -libaio*: - / - -cryptsetup: - / - -libcryptsetup*: - / +krb5: +lsscsi: +mingetty: +mkinitrd: +module-init-tools: +mozilla-nspr: +ncurses-utils: +net-tools: +netcat-openbsd: +nfs-client: +nfsidmap: +nscd: +ntfsprogs: +openslp: +pam-modules: +parted: +pciutils: +polkit: +procinfo: +procps: +psmisc: +reiserfs: +rpm: +rsh: +sdparm: +sed: +setserial: +sg3_utils: +smartmontools: +smp_utils: +socat: +squashfs: +star: +strace: +suse-module-tools: +systemd-presets-branding-basedonopensuse: +systemd-sysvinit: +systemd: +tar: +telnet: +terminfo-base: +usbutils: +vim: +wget: +xfsdump: +xfsprogs: +xz: -libgcrypt*: - / +filesystem: + /etc/{ppp,rc.d,uucp} + /etc/sysconfig + /root + /run + /etc/init.d + /usr/tmp + /var -libgpg-error*: - / + # remove temporarily so that 'mount /sys' doesn't work + r /sys glibc-locale: /usr/lib*/gconv/ISO8859* @@ -649,88 +162,60 @@ d usr/lib e cp -a /tmp/locale usr/lib -libmodman*: - / - -libproxy*: - / - -wget: - / - -curl: - / - -libcurl*: - / - -libssh2-*: - / - -libcares*: - / - -libidn*: - / - -bind-utils: - / - -bind-libs: - / - -libcap*: - / +less: + /etc + /usr/bin + r /usr/bin/lesspipe.sh + t /usr/bin/lesspipe.sh + c 0755 0 0 /usr/bin/lesspipe.sh + r /usr/bin/lessopen.sh + t /usr/bin/lessopen.sh + c 0755 0 0 /usr/bin/lessopen.sh + r /usr/bin/lessclose.sh + t /usr/bin/lessclose.sh + c 0755 0 0 /usr/bin/lessclose.sh -libxml2-*: - / +netcfg: + /etc + r /etc/{diphosts,ftpusers,hosts.*} + e echo Rescue.local >etc/HOSTNAME -kexec-tools: +ntfs-3g: / + s mount.ntfs-3g /sbin/mount.ntfs -cifs-utils: +pam: / + R s/(pam_unix\.so.*)$/$1 nullok\n/ /etc/pam.d/common-auth -if arch eq 'i386' || arch eq 'x86_64' - ?sbl: - / - r /etc/sbl/profile/default - s y2base /etc/sbl/profile/default - - firmwarekit: - / - - acpica: - / - - powertop: - / - - libnewt*: - / +pciutils-ids: + m /usr/share/pci.ids.d/pci.ids.dist /usr/share/pci.ids - libslang*: - / -endif +perl-base: + /usr/bin/perl + /usr/lib/perl* -libmount*: - / +perl: + /usr/lib/perl* -liblzo*-*: +?sbl: / + r /etc/sbl/profile/default + s y2base /etc/sbl/profile/default -squashfs: +shadow: / + d /etc/skel -libdbus-1-*: +sysvinit-tools: / + n /dev/initctl + c 600 0 0 /dev/initctl -perl-base: - /usr/bin/perl - /usr/lib/perl* +terminfo: + /usr/share/terminfo/i/ibm3151 -perl: - /usr/lib/perl* +: ### # to keep postin scripts happy @@ -744,93 +229,46 @@ # # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -aaa_base: prein,postin -E prein - / -t /etc/fstab -E postin - -dbus-1: prein,postin +aaa_base: + E prein / -E prein -E postin + t /etc/fstab + E postin -lvm2: postin +dbus-1: / - # NOT /var/lock ! -E postin + E prein + E postin + +udev: + / + E prein + E postin + +lvm2: +device-mapper: +rpcbind: +rsync: +syslog-service: +syslogd: +util-linux: +sysconfig: +dmraid: +mdadm: +multipath-tools: -device-mapper: postin - / -E postin - -module-init-tools: - / - -suse-module-tools: - / - -rpcbind: postin - / -E postin - -rsync: postin - / -E postin - -syslog-service: postin - / -E postin - -syslogd: postin - / -E postin - -sysvinit-tools: -n /dev/initctl -c 600 0 0 /dev/initctl - / - -util-linux: postin - / -E postin - -sysconfig: postin - / -E postin - -udev: prein,postin - / -E prein -E postin - -dmraid: postin - / -E postin - -mdadm: postin - / -E postin - -openssh: prein +openssh: / d /etc/sysconfig t /etc/sysconfig/ssh -E prein - -multipath-tools: postin - / -E postin + E prein -if arch eq 'ia64' - ia32el: - /etc/init.d/ia32el - /usr/lib/ia32el +?ia32el: + /etc/init.d/ia32el + /usr/lib/ia32el r /usr/lib/ia32el/cpuid r /usr/lib/ia32el/auxapp E insserv etc/init.d/ia32el -endif - : diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/data/root/root.file_list new/installation-images-14.10/data/root/root.file_list --- old/installation-images-14.8/data/root/root.file_list 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/data/root/root.file_list 2013-08-23 11:35:52.000000000 +0200 @@ -1338,11 +1338,7 @@ / vim: - m /bin/vim-normal /bin/vim - s vim /bin/vi - -vim-base: - /usr/bin/xxd + / fonts-config: /usr/sbin/fonts-config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/etc/module.config new/installation-images-14.10/etc/module.config --- old/installation-images-14.8/etc/module.config 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/etc/module.config 2013-08-23 11:32:51.000000000 +0200 @@ -85,6 +85,7 @@ netconsole,Console driver for network interfaces nfs_acl,-,- nvidia-agp,-,- +nlmon parport parport_pc pcf50633-core,-,- @@ -139,6 +140,8 @@ target_core_mod rc-core ezusb +dsa_core +ip_tunnel kernel/drivers/hv/.* kernel/drivers/staging/hv/.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/etc/module.list new/installation-images-14.10/etc/module.list --- old/installation-images-14.8/etc/module.list 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/etc/module.list 2013-08-23 11:32:39.000000000 +0200 @@ -211,6 +211,8 @@ kernel/drivers/media/rc/rc-core.ko kernel/sound/ac97_bus.ko kernel/drivers/target/target_core_mod.ko +kernel/net/dsa/dsa_core.ko +kernel/net/ipv4/ip_tunnel.ko # kmps updates/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/lib/AddFiles.pm new/installation-images-14.10/lib/AddFiles.pm --- old/installation-images-14.8/lib/AddFiles.pm 2013-08-12 15:04:00.000000000 +0200 +++ new/installation-images-14.10/lib/AddFiles.pm 2013-08-22 14:31:35.000000000 +0200 @@ -70,6 +70,7 @@ my $ignore; my $src_line; my $templates; +my $used_packs; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -352,8 +353,6 @@ print $f "$_ ($auto_deps->{packages}{$_})\n"; } close $f; - - } # print Dumper $packs; @@ -366,17 +365,26 @@ my $tfile = "${TmpBase}.afile"; SUSystem "rm -f $tfile"; - open F, ">${dir}.rpms"; - for (@$packs) { - print F "$_->{name}\n" if $_->{name} ne ''; - } - close F; + # print Dumper($used_packs); - open F, ">${dir}.rpmlog"; - for (@$packs) { - print F "$_->{name} [$_->{version}]\n" if $_->{name} ne ''; + open my $f, ">${dir}.rpms"; + open my $l, ">${dir}.rpmlog"; + for (sort keys %$used_packs) { + $_ = $used_packs->{$_}; + my $by = $_->{needed_by}; + if(defined $by) { + if($by =~ s/^.*?< //) { + $by = " < $by"; + } + else { + $by = ''; + } + } + print $f "$_->{name}\n"; + print $l "$_->{name} [$_->{version}]$by\n"; } - close F; + close $f; + close $l; $SIG{'__WARN__'} = $old_warn; @@ -481,10 +489,20 @@ my $t = ""; $t = " using template #$pack->{from_template}" if defined $pack->{from_template}; - my $by = ""; - $by = " needed by $pack->{needed_by}" if defined $pack->{needed_by}; + my $by = $pack->{needed_by}; + if(defined $by) { + if($by =~ s/^.*?< //) { + $by = " (< $by)"; + } + else { + $by = ''; + } + } - print "adding package $pack->{name} [$pack->{version}]$all_scripts$by$t\n" if $pack->{name} ne ''; + if($pack->{name} ne '') { + print "adding package $pack->{name} [$pack->{version}]$all_scripts$by$t\n"; + $used_packs->{$pack->{name}} = $pack; + } for my $t (@{$pack->{tasks}}) { $_ = $t->{line}; @@ -725,7 +743,6 @@ { my $packs = shift; - my $nodeps; my $ignore; my $all; @@ -734,15 +751,14 @@ for (@$packs) { next if $_->{name} eq ''; $all->{$_->{name}} = 1; - $nodeps->{$_->{name}} = 1 if exists $_->{tags}{nodeps}; - $ignore->{$_->{name}} = 1 if exists $_->{tags}{ignore}; + $ignore->{$_->{name}} = 1 if exists $_->{tags}{ignore} || exists $_->{tags}{nodeps}; } - delete $all->{$_} for (keys %$nodeps, keys %$ignore); + delete $all->{$_} for (keys %$ignore); my $r = ResolveDeps [ keys %$all ], [ keys %$ignore ]; - print Dumper($r); + # print Dumper($r); return $r; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.8/lib/ReadConfig.pm new/installation-images-14.10/lib/ReadConfig.pm --- old/installation-images-14.8/lib/ReadConfig.pm 2013-08-09 16:06:04.000000000 +0200 +++ new/installation-images-14.10/lib/ReadConfig.pm 2013-08-22 13:26:09.000000000 +0200 @@ -180,11 +180,14 @@ use File::Path 'make_path'; use File::Spec 'abs2rel'; +eval "use solv"; + sub get_repo_list; sub read_meta; sub read_packages; sub resolve_deps_obs; -sub resolve_deps_zypper; +sub resolve_deps_libsolv; +sub show_package_deps; sub DebugInfo @@ -214,17 +217,30 @@ my $packages = shift; my $ignore = shift; - my $p; + my $p1; if($ConfigData{obs}) { - $p = resolve_deps_obs $packages, $ignore; + $p1 = resolve_deps_obs $packages, $ignore; } else { - die "oops, no zypper" unless $ConfigData{zypper_ok}; - $p = resolve_deps_zypper $packages, $ignore; + die "oops, no libsolv" unless $ConfigData{libsolv_ok}; + $p1 = resolve_deps_libsolv $packages, $ignore; } - return $p; + my $p2; + + my $cnt = 0; + for (keys %$p1) { + $p2->{$_} = show_package_deps($_, $p1); + $cnt++; + } + + for (sort keys %$p2) { + print " $p2->{$_}\n"; + } + print "== $cnt packages ==\n"; + + return $p2; } @@ -675,36 +691,87 @@ } -my $zypper = "zypper --verbose --no-abbrev --non-interactive --disable-system-resolvables install --dry-run --no-recommends --repo instsys -- "; - -sub resolve_deps_zypper +sub resolve_deps_libsolv { local $_; my $packages = shift; my $ignore = shift; - # FIXME: what about $ignore? + my $ignore_file_deps = $ENV{debug} =~ /filedeps/ ? 0 : 1; my %p; - my $t = "$ConfigData{tmp_cache_dir}/.tmp_zypp"; + my $pool = solv::Pool->new(); + my $repo = $pool->add_repo("instsys"); + $repo->add_solv("/tmp/instsys.solv") or die "/tmp/instsys.solv: no solv file"; + $pool->addfileprovides(); + $pool->createwhatprovides(); + $pool->set_debuglevel(3) if $ENV{debug} =~ /solv/; + + my $solver = $pool->Solver(); + $solver->set_flag($solv::Solver::SOLVER_FLAG_IGNORE_RECOMMENDED, 1); + + my $jobs; + for (@$packages) { + push @$jobs, $pool->Job($solv::Job::SOLVER_INSTALL | $solv::Job::SOLVER_SOLVABLE_NAME, $pool->str2id($_)); + } + + if(defined &solv::XSolvable::unset) { + for (@$ignore) { + my $job = $pool->Job($solv::Job::SOLVER_SOLVABLE_NAME, $pool->str2id($_)); + for my $s ($job->solvables()) { + $s->unset($solv::SOLVABLE_REQUIRES); + $s->unset($solv::SOLVABLE_RECOMMENDS); + $s->unset($solv::SOLVABLE_SUPPLEMENTS); + } + } + + if($ignore_file_deps) { + for ($pool->Selection_all()->solvables()) { + my @deps = $_->lookup_idarray($solv::SOLVABLE_REQUIRES, 0); + @deps = grep { $pool->id2str($_) !~ /^\// } @deps; + $_->unset($solv::SOLVABLE_REQUIRES); + for my $id (@deps) { + $_->add_deparray($solv::SOLVABLE_REQUIRES, $id, 0); + } + } + } + } + else { + warn "$Script: outdated perl-solv: solver will not work properly"; + } + + my @problems = $solver->solve($jobs); + + if(@problems) { + my @err; + + for my $problem (@problems) { + push @err, "$Script: " . $problem->findproblemrule()->info()->problemstr() . "\n"; + } - my $cmd = $zypper . join(' ', @$packages) . " 2>&1 >$t"; + warn join('', @err); - if(system $cmd) { - print ReadFile($t); - warn "$Script: zypper failed"; return \%p; } - open my $f, $t; - while(<$f>) { - chomp; - if((/The following NEW packages are going to be installed/ ... $_ eq "") && /^(\S+)\s*$/) { - $p{$1} = ""; - } + my $trans = $solver->transaction(); + + for ($trans->newsolvables()) { + my $dep; + + if(defined &solv::Solver::describe_decision) { + my ($reason, $rule) = $solver->describe_decision($_); + if ($rule && $rule->{type} == $solv::Solver::SOLVER_RULE_RPM) { + $dep = $rule->info()->{solvable}{name}; + } + else { + # print "XXX $_->{name}: type = $rule->{type}\n"; + } + } + + $p{$_->{name}} = $dep; } - close $t; delete $p{$_} for (@$packages, @$ignore); @@ -712,6 +779,25 @@ } +sub show_package_deps +{ + my $p = shift; + my $packages = shift; + + my $s = $p; + + my %d; + $d{$p} = 1; + + while(($p = $packages->{$p}) ne '' && !$d{$p}) { + $d{$p} = 1; + $s .= " < $p"; + } + + return $s; +} + + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # initialization part @@ -934,12 +1020,12 @@ $ConfigData{suse_base} = $AutoBuild = $rpmdir; # if available, setup zypp repo - if(-d "/etc/zypp/repos.d") { - print STDERR "setting up zypp repo...\n"; - if(!-f "/etc/zypp/repos.d/instsys.repo") { - system "zypper addrepo -c dir:$rpmdir instsys && zypper refresh instsys" and die "zypper failed"; + if(-x "/usr/bin/rpms2solv") { + print STDERR "creating solv file...\n"; + if(!-f "/tmp/instsys.solv") { + system "find /.build.binaries -name '*.rpm' | /usr/bin/rpms2solv -m - >/tmp/instsys.solv" and die "rpms2solv failed"; } - $ConfigData{zypper_ok} = 1; + $ConfigData{libsolv_ok} = 1; } } elsif($ENV{work} || $ENV{dist}) { -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org