Hello community,

here is the log from the commit of package patterns-server for openSUSE:Factory 
checked in at 2018-10-04 19:01:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-server (Old)
 and      /work/SRC/openSUSE:Factory/.patterns-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "patterns-server"

Thu Oct  4 19:01:51 2018 rev:5 rq:639838 version:20180718

Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-server/patterns-server.changes  
2018-02-15 16:00:16.368672288 +0100
+++ /work/SRC/openSUSE:Factory/.patterns-server.new/patterns-server.changes     
2018-10-04 19:01:52.479179405 +0200
@@ -1,0 +2,23 @@
+Thu Jul 19 12:07:25 UTC 2018 - sfl...@suse.de
+
+- Merge with the version from SLE/Leap 15 full changes now below
+  in the changelog.
+
+-------------------------------------------------------------------
+Fri Apr 13 11:04:15 UTC 2018 - agin...@suse.com
+
+- xen patterns should be only available on x86_64 (BSC#1088175)
+- remove 32bits patterns for XEN or KVM
+
+-------------------------------------------------------------------
+Wed Mar 14 13:17:39 CET 2018 - behl...@suse.de
+
+- Replace openldap2 with 389-ds [bsc#1084789]
+
+-------------------------------------------------------------------
+Fri Mar  2 13:48:06 UTC 2018 - agin...@suse.com
+
+- add vim as a Recommends for XEN/KVM_tools patterns (BSC#1078908)
+- version: 20180302
+
+-------------------------------------------------------------------
@@ -4,0 +28,57 @@
+
+-------------------------------------------------------------------
+Mon Dec 11 12:07:25 UTC 2017 - sfl...@suse.de
+
+- fix the order of sourced files to match other patterns saving copy paste 
errors
+
+-------------------------------------------------------------------
+Mon Dec 11 11:25:39 UTC 2017 - sfl...@suse.de
+
+- correctly source the files for 32bit patterns
+
+-------------------------------------------------------------------
+Fri Dec  8 06:59:55 UTC 2017 - sfl...@suse.de
+
+- Version: 20171206
+- Add obsoletes across all patterns (bsc#1071761)
+
+-------------------------------------------------------------------
+Thu Nov  2 15:29:14 UTC 2017 - agin...@suse.com
+
+- remove duplicate description entry for kvm_tools patterns (BSC#1064239)
+- bump version to 20171102
+
+-------------------------------------------------------------------
+Mon Oct 16 08:16:17 UTC 2017 - agin...@suse.com
+
+- add a requires on libvirt-client (bsc#1063246)
+
+-------------------------------------------------------------------
+Wed Oct 11 14:40:32 UTC 2017 - agin...@suse.com
+
+- add missing source: pattern-definition-32bit.txt
+  create_32bit-patterns_file.pl pre_checkin.sh
+
+-------------------------------------------------------------------
+Wed Oct 11 08:16:23 UTC 2017 - agin...@suse.com
+
+- do not install qemu-kvm by default (legacy), but install the
+  correct qemu based on arch detection
+
+-------------------------------------------------------------------
+Thu Sep 21 04:25:38 UTC 2017 - sfl...@suse.de
+
+- Add 32bit support (remove some recommended 32bit packages)
+- Changes to the following patterns to reflect what was in SLE
+  * dhcp_dns_server
+  * gateway_server
+  * kvm_server
+  * lamp_server
+  * mail_server
+  * printing
+  * xen_server
+- Add the following patterns from sle
+  * kvm_tools
+  * xen_tools
+- print_server renammed to printing
+

New:
----
  create_32bit-patterns_file.pl
  pattern-definition-32bit.txt
  pre_checkin.sh

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

Other differences:
------------------
++++++ patterns-server.spec ++++++
--- /var/tmp/diff_new_pack.mgAES8/_old  2018-10-04 19:01:52.895178968 +0200
+++ /var/tmp/diff_new_pack.mgAES8/_new  2018-10-04 19:01:52.895178968 +0200
@@ -19,13 +19,16 @@
 %bcond_with betatest
 
 Name:           patterns-server
-Version:        20170319
+Version:        20180718
 Release:        0
 Summary:        Patterns for Installation (server patterns)
 License:        MIT
 Group:          Metapackages
 Url:            https://github.com/openSUSE/patterns
 Source0:        %{name}-rpmlintrc
+Source1:        pattern-definition-32bit.txt
+Source2:        create_32bit-patterns_file.pl
+Source3:        pre_checkin.sh
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  patterns-rpm-macros
 
@@ -46,17 +49,24 @@
 Provides:       pattern-icon() = yast-dns-server
 Provides:       pattern-order() = 3040
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-dhcp_dns_server = %{version}
 Obsoletes:      patterns-openSUSE-dhcp_dns_server < %{version}
+%else
+Provides:       patterns-sles-dhcp_dns_server = %{version}
+Obsoletes:      patterns-sles-dhcp_dns_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     bind
+Requires:       bind
+Requires:       dhcp-server
+Recommends:     bind-chrootenv
+Recommends:     bind-doc
+Recommends:     dhcp
 Recommends:     dhcp-relay
-Recommends:     dhcp-server
 Recommends:     dhcp-tools
 Recommends:     yast2-dhcp-server
 Recommends:     yast2-dns-server
-Recommends:     bind-doc
 
 %description dhcp_dns_server
 Software to set up a server for the Dynamic Host Configuration Protocol (DHCP) 
and the Domain Name System (DNS) services. DHCP provides configuration 
parameters to client computers to integrate them into a network, whereas DNS 
delivers information associated with domain names, in particular, the IP 
address.
@@ -75,18 +85,20 @@
 Provides:       pattern-icon() = yast-ldap-server
 Provides:       pattern-order() = 3060
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-directory_server = %{version}
 Obsoletes:      patterns-openSUSE-directory_server < %{version}
+%else
+Provides:       patterns-sles-directory_server = %{version}
+Obsoletes:      patterns-sles-directory_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
+# bsc#1084789
+Recommends:    389-ds
 Recommends:     nss_ldap
-Recommends:     openldap2
 Recommends:     pam_ldap
 Recommends:     yast2-ldap-server
-%ifarch x86_64
-Recommends:     nss_ldap-32bit
-Recommends:     pam_ldap-32bit
-%endif
 
 %description directory_server
 Software to set up a directory server with OpenLDAP. The Lightweight Directory 
Access Protocol (LDAP) is used to access online directory services.
@@ -105,22 +117,29 @@
 Provides:       pattern-icon() = yast-nfs_server
 Provides:       pattern-order() = 2900
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-file_server = %{version}
 Obsoletes:      patterns-openSUSE-file_server < %{version}
+%else
+Provides:       patterns-sles-file_server = %{version}
+Obsoletes:      patterns-sles-file_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
+Requires:       nfs-kernel-server
 Recommends:     nfsidmap
-Recommends:     nfs-kernel-server
 Recommends:     samba
-Recommends:     yast2-nfs-server
-Recommends:     yast2-samba-server
-Recommends:     vsftpd
 Recommends:     samba-client
 Recommends:     samba-winbind
 Recommends:     tftp
+Recommends:     vsftpd
+%if 0%{?is_opensuse}
 Recommends:     yast2-ftp-server
+Recommends:     yast2-nfs-server
+Recommends:     yast2-samba-server
 Recommends:     yast2-tftp-server
 Suggests:       atftp
+%endif
 
 %description file_server
 File services to host files so that they may be accessed or retrieved by other 
computers on the same network. This includes the FTP, SMB, and NFS protocols.
@@ -139,21 +158,28 @@
 Provides:       pattern-icon() = yast-dsl
 Provides:       pattern-order() = 3020
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-gateway_server = %{version}
 Obsoletes:      patterns-openSUSE-gateway_server < %{version}
+%else
+Provides:       patterns-sles-gateway_server = %{version}
+Obsoletes:      patterns-sles-gateway_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     wireshark
+Requires:       wireshark
+Recommends:     arptables
+Recommends:     calamaris
 Recommends:     ddclient
 Recommends:     fetchmail
+Recommends:     fetchmailconf
 Recommends:     ipsec-tools
 Recommends:     quagga
 Recommends:     radvd
 Recommends:     rarpd
-Recommends:     squid3
-Recommends:     squidGuard
-Suggests:       wwwoffle
-Suggests:       mirror
+Recommends:     squid
+Recommends:     whois
+Recommends:     wondershaper
 
 %description gateway_server
 Software to set up a proxy, firewall, and gateway server, including a virtual 
private network (VPN) gateway.
@@ -172,26 +198,35 @@
 Provides:       pattern-icon() = yast-uml
 Provides:       pattern-order() = 3099
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-kvm_server = %{version}
 Obsoletes:      patterns-openSUSE-kvm_server < %{version}
+%else
+Provides:       patterns-sles-kvm_server = %{version}
+Obsoletes:      patterns-sles-kvm_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     qemu-kvm
-Recommends:     vm-install
-Recommends:     tigervnc
-Recommends:     fontconfig
-Recommends:     fonts-config
-Recommends:     xorg-x11-fonts
-Recommends:     efont-unicode-bitmap-fonts
-Recommends:     xauth
-Recommends:     bridge-utils
-Recommends:     tftp
-Recommends:     agfa-fonts
-Recommends:     virt-viewer
-Recommends:     virt-manager
+# fix issue because qemu-kvm is not present on all arch and
+# we would like to deprecate it for the futur (will be only
+# updated if already installed on the system)
+%ifarch %ix86 x86_64
+Requires:       qemu-x86
+%endif
+%ifarch ppc ppc64 ppc64le
+Requires:       qemu-ppc
+%endif
+%ifarch s390x
+Requires:       qemu-s390
+%endif
+%ifarch %arm
+Requires:       qemu-arm
+%endif
+Requires:       tftp
 Recommends:     libvirt-daemon-qemu
-Suggests:       libvirt
-Suggests:       libvirt-daemon-lxc
+Recommends:     tigervnc
+Recommends:     virt-install
+Recommends:     vm-install
 
 %description kvm_server
 Software to set up a server for configuring, managing, and monitoring virtual 
machines on a single physical machine.
@@ -202,6 +237,51 @@
 
 
################################################################################
 
+%package kvm_tools
+%pattern_basetechnologies
+Summary:        KVM Virtualization Host and tools
+Group:          Metapackages
+Provides:       pattern() = kvm_tools
+Provides:       pattern-icon() = yast-uml
+Provides:       pattern-order() = 1090
+Provides:       pattern-visible()
+%if !0%{?is_opensuse}
+Provides:       patterns-sles-kvm_tools = %{version}
+Obsoletes:      patterns-sles-kvm_tools < %{version}
+%endif
+Requires:       pattern() = basesystem
+Requires:       pattern() = kvm_server
+
+Requires:       libvirt-client
+Requires:       libvirt-daemon-qemu
+Requires:       libvirt-daemon-config-network
+Requires:       tigervnc
+Requires:       vm-install
+# bnc#868542
+Requires:       virt-manager
+Recommends:     openssh
+Recommends:     yast2-control-center
+Recommends:     yast2-ncurses
+Recommends:     yast2-ncurses-pkg
+Recommends:     yast2-vm
+Recommends:     xorg-x11-xauth
+Recommends:     virt-install
+Recommends:     virt-viewer
+Recommends:     virt-v2v
+# BSC#1078908
+Recommends:     vim
+
+%description kvm_tools
+This will provide all minimal system to get a running KVM Hypervisor
+and be able to configure, manage, and monitor virtual machines on a
+single physical machine.
+
+%files kvm_tools
+%dir /usr/share/doc/packages/patterns
+/usr/share/doc/packages/patterns/kvm_tools.txt
+
+################################################################################
+
 %package lamp_server
 %pattern_serverfunctions
 Summary:        Web and LAMP Server
@@ -210,31 +290,26 @@
 Provides:       pattern-icon() = yast-http-server
 Provides:       pattern-order() = 3000
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-lamp_server = %{version}
 Obsoletes:      patterns-openSUSE-lamp_server < %{version}
+%else
+Provides:       patterns-sles-lamp_server = %{version}
+Obsoletes:      patterns-sles-lamp_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     apache2
+Requires:       apache2
 Recommends:     yast2-http-server
 Recommends:     apache2-doc
 Recommends:     apache2-example-pages
-Recommends:     apache2-mod_perl
 Recommends:     apache2-mod_php7
 Recommends:     apache2-mod_python
 Recommends:     apache2-prefork
+Recommends:     libapr-util1
+Recommends:     libapr1
 Recommends:     mariadb
-Recommends:     php7-ctype
-Recommends:     php7-dom
-Recommends:     php7-iconv
-Recommends:     php7-mysql
-Suggests:       php7-gd
-Suggests:       php7-mbstring
-Suggests:       php7-zlib
-Suggests:       php7-zip
-# slightly out of place I admit
-Suggests:       postgresql
-Suggests:       postgresql-contrib
-Suggests:       postgresql-server
+Recommends:     perl
 
 %description lamp_server
 Software to set up a Web server that is able to serve static, dynamic, and 
interactive content (like a Web shop). This includes Apache HTTP Server, the 
database management system MySQL, and scripting languages such as PHP, Python, 
Ruby on Rails, or Perl.
@@ -253,27 +328,22 @@
 Provides:       pattern-icon() = yast-mail-server
 Provides:       pattern-order() = 2980
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-mail_server = %{version}
 Obsoletes:      patterns-openSUSE-mail_server < %{version}
+%else
+Provides:       patterns-sles-mail_server = %{version}
+Obsoletes:      patterns-sles-mail_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     cyrus-imapd
+Requires:       vacation
 Recommends:     amavisd-new
-Recommends:     mailman
 Recommends:     clamav
-Recommends:     fetchmail
-Recommends:     postfix
-Recommends:     procmail
-Recommends:     spamassassin
+Recommends:     cyrus-imapd
 Recommends:     inn
-Recommends:     vacation
-Suggests:       dovecot12
-Suggests:       mlmmj
-Suggests:       sendmail
-Suggests:       bogofilter-db
-# this duplicates the recommend, but works around a problem with the solver
-# as everything is weak required, it needs one more hint for postfix
-Suggests:       postfix
+Recommends:     mailman
+Recommends:     spamassassin
 
 %description mail_server
 Software to set up electronic mail and message services to handle email, 
mailing, and news lists, including a virus scanner to scan messages at the 
server level.
@@ -284,7 +354,7 @@
 
 
################################################################################
 
-%package print_server
+%package printing
 %pattern_serverfunctions
 Summary:        Print Server
 Group:          Metapackages
@@ -292,35 +362,44 @@
 Provides:       pattern-icon() = yast-printer
 Provides:       pattern-order() = 2960
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-print_server = %{version}
 Obsoletes:      patterns-openSUSE-print_server < %{version}
+%else
+Provides:       patterns-sles-printing = %{version}
+Obsoletes:      patterns-sles-printing < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     cups
+Requires:       cups
 Recommends:     cups-backends
+Recommends:    cups-filters
+Recommends:      cups-filters-cups-browsed
 Recommends:     cups-filters-foomatic-rip
-Recommends:     OpenPrintingPPDs
-Recommends:     m2300w
-Recommends:     splix
+Recommends:      cups-filters-ghostscript
+Recommends:     epson-inkjet-printer-escpr
 Recommends:     gutenprint
-Recommends:     hplip
+Recommends:     hplip-hpijs
 Recommends:     manufacturer-PPDs
+Recommends:     OpenPrintingPPDs-ghostscript
+Recommends:     OpenPrintingPPDs-hpijs
+Recommends:     OpenPrintingPPDs-postscript
 Recommends:     samba
-Suggests:       udev-configure-printer
-Suggests:       poster
-# print to bluetooth
-Suggests:       bluez-cups
-Suggests:       pbm2l7k
+Recommends:     splix
 
-%description print_server
-Software used to host print queues so that they may be accessed by other 
computers on the same network. LPD, CUPS, and SMB print servers and queues are 
supported.
+%description printing
+This pattern provides all packages necessary for printing. It provides all
+needed packages for printing to a locally connected printer, printing using a
+remote print server and for setting up a print server.
 
-%files print_server
+%files printing
 %dir /usr/share/doc/packages/patterns
-/usr/share/doc/packages/patterns/print_server.txt
+/usr/share/doc/packages/patterns/printing.txt
 
 
################################################################################
 
+# BSC#1088175
+%ifarch x86_64
 %package xen_server
 %pattern_serverfunctions
 Summary:        Xen Virtual Machine Host Server
@@ -329,25 +408,25 @@
 Provides:       pattern-icon() = yast-uml
 Provides:       pattern-order() = 3080
 Provides:       pattern-visible()
+%if 0%{?is_opensuse}
 Provides:       patterns-openSUSE-xen_server = %{version}
 Obsoletes:      patterns-openSUSE-xen_server < %{version}
+%else
+Provides:       patterns-sles-xen_server = %{version}
+Obsoletes:      patterns-sles-xen_server < %{version}
+%endif
 Requires:       pattern() = basesystem
 
-Recommends:     bridge-utils
-Recommends:     vm-install
-Recommends:     xen
-Recommends:     xen-libs
-Recommends:     xen-tools
-Recommends:     virt-manager
-Recommends:     xen-doc-html
-Recommends:     xterm
-Recommends:     yast2-vm
-Recommends:     virt-viewer
+Requires:       kernel-xen
+Requires:       tftp
+Requires:       xen
+Requires:       xen-libs
+Requires:       xen-tools
 Recommends:     libvirt-daemon-xen
 # #382423
-Suggests:       install-initrd
-Suggests:       libvirt
-Suggests:       libvirt-daemon-lxc
+Recommends:     virt-install
+Recommends:     vm-install
+Recommends:     tigervnc
 
 %description xen_server
 Software to set up a server for configuring, managing, and monitoring virtual 
machines on a single physical machine.
@@ -355,6 +434,55 @@
 %files xen_server
 %dir /usr/share/doc/packages/patterns
 /usr/share/doc/packages/patterns/xen_server.txt
+%endif
+
+################################################################################
+# BSC#1088175
+%ifarch x86_64
+%package xen_tools
+%pattern_basetechnologies
+Summary:        XEN Virtualization Host and tools
+Group:          Metapackages
+Provides:       pattern() = xen_tools
+Provides:       pattern-icon() = yast-uml
+Provides:       pattern-order() = 1080
+Provides:       pattern-visible()
+%if !0%{?is_opensuse}
+Provides:       patterns-sles-xen_tools = %{version}
+Obsoletes:      patterns-sles-xen_tools < %{version}
+%endif
+Requires:       pattern() = basesystem
+Requires:       pattern() = xen_server
+
+Requires:       libvirt-client
+Requires:       libvirt-daemon-xen
+Requires:       libvirt-daemon-config-network
+Requires:       tigervnc
+Requires:       vm-install
+# bnc#868542
+Requires:       virt-manager
+Recommends:     openssh
+#Recommends:     sles-xen_en-pdf
+Recommends:     xen-doc-html
+Recommends:     yast2-control-center
+Recommends:     yast2-ncurses
+Recommends:     yast2-ncurses-pkg
+Recommends:     yast2-vm
+Recommends:     xorg-x11-xauth
+Recommends:     virt-install
+Recommends:     virt-viewer
+# BSC#1078908
+Recommends:     vim
+
+%description xen_tools
+This will provide all minimal system to get a running XEN Hypervisor
+and be able to configure, manage, and monitor virtual machines on a
+single physical machine.
+
+%files xen_tools
+%dir /usr/share/doc/packages/patterns
+/usr/share/doc/packages/patterns/xen_tools.txt
+%endif
 
 
################################################################################
 
@@ -365,9 +493,30 @@
 %install
 mkdir -p "%{buildroot}/usr/share/doc/packages/patterns"
 for i in dhcp_dns_server directory_server file_server gateway_server \
-    kvm_server lamp_server mail_server print_server xen_server; do
+    lamp_server mail_server printing
+    do
+       echo "This file marks the pattern $i to be installed." \
+               >"%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
+    echo "This file marks the pattern $i-32bit to be installed." \
+        >"%{buildroot}/usr/share/doc/packages/patterns/$i-32bit.txt"
+done
+# NO 32bits pattern for KVM or XEN
+for i in kvm_tools kvm_server
+    do
+    echo "This file marks the pattern $i to be installed." \
+        > "%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
+done
+# XEN is only available on x86_64
+%ifarch x86_64
+    for i in xen_server xen_tools; do
        echo "This file marks the pattern $i to be installed." \
                >"%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
 done
+%endif
+
+#
+# This file is created at check-in time. Sorry for the inconsistent workflow :(
+#
+%include %{SOURCE1}
 
 %changelog

++++++ create_32bit-patterns_file.pl ++++++
#!/usr/bin/perl

use strict;
use warnings;

my $verbose = 0;
my $pat_ext = "32bit";
my $product = "";
my @skip_pat = ();

sub get_file {
        my $file_to_get = shift;
        my $content = "";

        open FILE, "<$file_to_get" or return "\n";
                while (defined (my $line = <FILE>)) {
                        next if ($line =~ m/^#/);
                        $content .= $line;
                }
        close FILE;
        return $content;
}

sub print_usage {
        print "$0 [-v] [-h]\n";
        exit 0;
}

sub print_debug {
        my ($txt, $lvl) = @_;
        print (STDERR "DBG: ${txt}\n") if($verbose >= $lvl);
}

sub parse_line {
        my $to_parse = shift;
        my $tmp = "";
        if ($to_parse =~ /%include/) {
                # TBD
                print "%include at unexpected position, exiting\n";
                exit (1);
        }
        if ($to_parse =~ /Summary:/) {
                return "$to_parse\n";
        }
        # XXX simplify me
        if ($to_parse =~ /Recommends:\s*([^\s]*)\s*/) {
                $tmp = "$1";
                return "" if ($tmp =~ m/.*-64bit\s*$/);
                $tmp = "${tmp}-32bit" if($tmp !~ m/.*-32bit/);
                return "Recommends:     ${tmp}\n";
        }
        if ($to_parse =~ /Requires:\s*([^\s]*)\s*/) {
                $tmp = "$1";
                return "" if ($tmp =~ m/pattern()/);
                return "" if ($tmp =~ m/.*-64bit\s*$/);
                $tmp = "${tmp}-32bit" if($tmp !~ m/.*-32bit/);
                return "Recommends:     ${tmp}\n";
        }
        return "";
}

sub parse_main_file {
        my $main_file = shift;
        my $spec_file = "";
        my $cur_pattern = "";
        my $skip_it = 1;
        my %skip_pat_hash;
        if(! open (MAIN_FILE, "<$main_file")) {
                print STDERR "${main_file} not found, exiting\n";
                exit 1;
        }
        while (defined (my $line = <MAIN_FILE>)) {
                chomp($line);
                next if ($line =~ m/^#/);
                if ($line =~ m/\%package/) {
                        if(($line =~ m/32bit/) or 
                           ($line =~ m/64bit/)
                          ) {
                            $skip_it = 1;
                        } else {
                          %skip_pat_hash =  map { $_ => 1 } @skip_pat;
                          
if($skip_it==0&&!exists($skip_pat_hash{$cur_pattern})) {
                              $spec_file .=  ""
                                            ."Provides:       pattern() = 
${cur_pattern}%2d32bit\n"
                                            ."Group:          Metapackages\n"
                                            ."Supplements:    
packageand(patterns-${product}-${pat_ext}:patterns-${product}-${cur_pattern})\n"
                                            ."\n"
                                            ."%files ${cur_pattern}-32bit\n"
                                            ."%defattr(-,root,root)\n"
                                            ."%dir 
/usr/share/doc/packages/patterns\n"
                                                
."/usr/share/doc/packages/patterns/${cur_pattern}-${pat_ext}.txt\n"
                                            ."\n"
                                            ."%description 
${cur_pattern}-${pat_ext}\n"
                                            ."The ${pat_ext} pattern 
complementing ${cur_pattern}.\n"
                                            ."#\n"
                                            
."#-------------------------------------------------------------------\n"
                                            ."#\n";
                          }
                          $skip_it = 0 ;
                          $line =~ m/package\s*([^\s]*)\s*/;
                          $cur_pattern = $1;
                          if (!exists($skip_pat_hash{$cur_pattern})) {
                                $spec_file .= "%package ${cur_pattern}-32bit\n";
                          }
                        }
                }
                next if($skip_it == 1 );
                if ($line =~ /%include/) {
                        my $file_to_check = ($line =~ 
m/%include.*?([^\/\s]*)$/)[0]; # beware the non-greedy '?'
                        next if($file_to_check =~ m/32bit/);
                        if( open TMP_FILE, "<$file_to_check") {
                                print_debug(" Checking INCLUDE: 
$file_to_check", 2);
                                while (defined (my $include_line = <TMP_FILE>)) 
{
                                        if 
(!exists($skip_pat_hash{$cur_pattern})) {
                                                $spec_file .= 
parse_line($include_line);
                                        }
                                }
                                close TMP_FILE;
                        }
                        next;
                }
                if (!exists($skip_pat_hash{$cur_pattern})) {
                        $spec_file .= parse_line($line);
                }
        }
        
        %skip_pat_hash =  map { $_ => 1 } @skip_pat;    
        if (!exists($skip_pat_hash{$cur_pattern})) {
                # I hate this, but need a fast workaround
                $spec_file .=  "Provides:       pattern-invisible()\n"
                              ."Provides:       pattern() = 
${cur_pattern}%2d${pat_ext}\n"
                              ."Group:          Metapackages\n"
                              ."Supplements:    
packageand(patterns-${product}-${pat_ext}:patterns-${product}-${cur_pattern})\n"
                              ."\n"
                              ."%files ${cur_pattern}-32bit\n"
                              ."%defattr(-,root,root)\n"
                              ."%dir /usr/share/doc/packages/patterns\n"
                                  
."/usr/share/doc/packages/patterns/${cur_pattern}-${pat_ext}.txt\n"
                              ."\n"
                              ."%description ${cur_pattern}-${pat_ext}\n"
                              ."The ${pat_ext} pattern complementing 
${cur_pattern}.\n"
                              ."\n";
        }

        close MAIN_FILE;

        my $new_file = $spec_file;

        return $new_file;
}

while ($ARGV[0] && $ARGV[0] =~ /^-/) {
        my $arg = shift;
        if ($arg =~ /-v/) {
                $verbose += 1;
        } elsif($arg =~ /-h/) {
                print_usage();
                exit();
        } elsif($arg =~ /-p/) {
                $product=shift;
        } elsif($arg =~ /-e/) {
                $pat_ext=shift;
        } elsif($arg =~ /-s/) {
                push @skip_pat, shift;
        }
        
}

print_debug("product = ${product}\n     pat_ext=${pat_ext}\n", 1);
my $result = parse_main_file("patterns-${product}.spec");
print "${result}\n";
exit 0;

++++++ pattern-definition-32bit.txt ++++++
%package dhcp_dns_server-32bit
Summary:        DHCP and DNS Server
Recommends:     bind-32bit
Recommends:     dhcp-server-32bit
Recommends:     bind-chrootenv-32bit
Recommends:     bind-doc-32bit
Recommends:     dhcp-32bit
Recommends:     dhcp-relay-32bit
Recommends:     dhcp-tools-32bit
Recommends:     yast2-dhcp-server-32bit
Recommends:     yast2-dns-server-32bit
Provides:       pattern() = dhcp_dns_server%2d32bit
Group:          Metapackages
Supplements:    
packageand(patterns-server-32bit:patterns-server-dhcp_dns_server)

%files dhcp_dns_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/dhcp_dns_server-32bit.txt

%description dhcp_dns_server-32bit
The 32bit pattern complementing dhcp_dns_server.
#
#-------------------------------------------------------------------
#
%package directory_server-32bit
Summary:        Directory Server (LDAP)
Recommends:     389-ds-32bit
Recommends:     nss_ldap-32bit
Recommends:     pam_ldap-32bit
Recommends:     yast2-ldap-server-32bit
Provides:       pattern() = directory_server%2d32bit
Group:          Metapackages
Supplements:    
packageand(patterns-server-32bit:patterns-server-directory_server)

%files directory_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/directory_server-32bit.txt

%description directory_server-32bit
The 32bit pattern complementing directory_server.
#
#-------------------------------------------------------------------
#
%package file_server-32bit
Summary:        File Server
Recommends:     nfs-kernel-server-32bit
Recommends:     nfsidmap-32bit
Recommends:     samba-32bit
Recommends:     samba-client-32bit
Recommends:     samba-winbind-32bit
Recommends:     tftp-32bit
Recommends:     vsftpd-32bit
Recommends:     yast2-ftp-server-32bit
Recommends:     yast2-nfs-server-32bit
Recommends:     yast2-samba-server-32bit
Recommends:     yast2-tftp-server-32bit
Provides:       pattern() = file_server%2d32bit
Group:          Metapackages
Supplements:    packageand(patterns-server-32bit:patterns-server-file_server)

%files file_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/file_server-32bit.txt

%description file_server-32bit
The 32bit pattern complementing file_server.
#
#-------------------------------------------------------------------
#
%package gateway_server-32bit
Summary:        Internet Gateway
Recommends:     wireshark-32bit
Recommends:     arptables-32bit
Recommends:     calamaris-32bit
Recommends:     ddclient-32bit
Recommends:     fetchmail-32bit
Recommends:     fetchmailconf-32bit
Recommends:     ipsec-tools-32bit
Recommends:     quagga-32bit
Recommends:     radvd-32bit
Recommends:     rarpd-32bit
Recommends:     squid-32bit
Recommends:     whois-32bit
Recommends:     wondershaper-32bit
Provides:       pattern() = gateway_server%2d32bit
Group:          Metapackages
Supplements:    packageand(patterns-server-32bit:patterns-server-gateway_server)

%files gateway_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/gateway_server-32bit.txt

%description gateway_server-32bit
The 32bit pattern complementing gateway_server.
#
#-------------------------------------------------------------------
#
%package lamp_server-32bit
Summary:        Web and LAMP Server
Recommends:     apache2-32bit
Recommends:     yast2-http-server-32bit
Recommends:     apache2-doc-32bit
Recommends:     apache2-example-pages-32bit
Recommends:     apache2-mod_php7-32bit
Recommends:     apache2-mod_python-32bit
Recommends:     apache2-prefork-32bit
Recommends:     libapr-util1-32bit
Recommends:     libapr1-32bit
Recommends:     mariadb-32bit
Recommends:     perl-32bit
Provides:       pattern() = lamp_server%2d32bit
Group:          Metapackages
Supplements:    packageand(patterns-server-32bit:patterns-server-lamp_server)

%files lamp_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/lamp_server-32bit.txt

%description lamp_server-32bit
The 32bit pattern complementing lamp_server.
#
#-------------------------------------------------------------------
#
%package mail_server-32bit
Summary:        Mail and News Server
Recommends:     vacation-32bit
Recommends:     amavisd-new-32bit
Recommends:     clamav-32bit
Recommends:     cyrus-imapd-32bit
Recommends:     inn-32bit
Recommends:     mailman-32bit
Recommends:     spamassassin-32bit
Provides:       pattern() = mail_server%2d32bit
Group:          Metapackages
Supplements:    packageand(patterns-server-32bit:patterns-server-mail_server)

%files mail_server-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/mail_server-32bit.txt

%description mail_server-32bit
The 32bit pattern complementing mail_server.
#
#-------------------------------------------------------------------
#
%package printing-32bit
Summary:        Print Server
Recommends:     cups-32bit
Recommends:     cups-backends-32bit
Recommends:     cups-filters-32bit
Recommends:     cups-filters-cups-browsed-32bit
Recommends:     cups-filters-foomatic-rip-32bit
Recommends:     cups-filters-ghostscript-32bit
Recommends:     epson-inkjet-printer-escpr-32bit
Recommends:     gutenprint-32bit
Recommends:     hplip-hpijs-32bit
Recommends:     manufacturer-PPDs-32bit
Recommends:     OpenPrintingPPDs-ghostscript-32bit
Recommends:     OpenPrintingPPDs-hpijs-32bit
Recommends:     OpenPrintingPPDs-postscript-32bit
Recommends:     samba-32bit
Recommends:     splix-32bit
Provides:       pattern() = printing%2d32bit
Group:          Metapackages
Supplements:    packageand(patterns-server-32bit:patterns-server-printing)

%files printing-32bit
%defattr(-,root,root)
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/printing-32bit.txt

%description printing-32bit
The 32bit pattern complementing printing.
#
#-------------------------------------------------------------------
#

++++++ pre_checkin.sh ++++++
#!/bin/sh

./create_32bit-patterns_file.pl -p server -s kvm_server -s kvm_tools -s 
xen_server -s xen_tools > pattern-definition-32bit.txt

Reply via email to