Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect handling of provides / obsoletes in patterns. #188

Closed
simotek opened this issue May 30, 2017 · 3 comments
Closed

Incorrect handling of provides / obsoletes in patterns. #188

simotek opened this issue May 30, 2017 · 3 comments
Assignees
Labels

Comments

@simotek
Copy link

simotek commented May 30, 2017

As per the below example and seen in https://build.opensuse.org/request/show/499753

#
# spec file for package patterns-openSUSE
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%bcond_with betatest

Name:           patterns-server
Version:        20170319
Release:        0
Summary:        Patterns for Installation (server patterns)
License:        MIT
Group:          Metapackages
Url:            https://github.com/openSUSE/patterns
Source0:        %{name}-rpmlintrc
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  patterns-rpm-macros


%description
This is an internal package that is used to create the patterns as part
of the installation source setup.  Installation of this package does
not make sense.

This particular package contains all the server related patterns

################################################################################

%package dhcp_dns_server
%pattern_serverfunctions
Summary:        DHCP and DNS Server
Group:          Metapackages
Provides:       pattern() = dhcp_dns_server
Provides:       pattern-icon() = yast-dns-server
Provides:       pattern-order() = 3040
Provides:       pattern-visible()
Provides:       patterns-openSUSE-dhcp_dns_server = %{version}
Obsoletes:      patterns-openSUSE-dhcp_dns_server < %{version}
Requires:       pattern() = basesystem

Recommends:     bind
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.

%files dhcp_dns_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/dhcp_dns_server.txt

################################################################################

%package directory_server
%pattern_serverfunctions
Summary:        Directory Server (LDAP)
Group:          Metapackages
Provides:       pattern() = directory_server
Provides:       pattern-icon() = yast-ldap-server
Provides:       pattern-order() = 3060
Provides:       pattern-visible()
Provides:       patterns-openSUSE-directory_server = %{version}
Obsoletes:      patterns-openSUSE-directory_server < %{version}
Requires:       pattern() = basesystem

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.

%files directory_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/directory_server.txt

################################################################################

%package file_server
%pattern_serverfunctions
Summary:        File Server
Group:          Metapackages
Provides:       pattern() = file_server
Provides:       pattern-icon() = yast-nfs_server
Provides:       pattern-order() = 2900
Provides:       pattern-visible()
Provides:       patterns-openSUSE-file_server = %{version}
Obsoletes:      patterns-openSUSE-file_server < %{version}
Requires:       pattern() = basesystem

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:     yast2-ftp-server
Recommends:     yast2-tftp-server
Suggests:       atftp

%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.

%files file_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/file_server.txt

################################################################################

%package gateway_server
%pattern_serverfunctions
Summary:        Internet Gateway
Group:          Metapackages
Provides:       pattern() = gateway_server
Provides:       pattern-icon() = yast-dsl
Provides:       pattern-order() = 3020
Provides:       pattern-visible()
Provides:       patterns-openSUSE-gateway_server = %{version}
Obsoletes:      patterns-openSUSE-gateway_server < %{version}
Requires:       pattern() = basesystem

Recommends:     wireshark
Recommends:     ddclient
Recommends:     fetchmail
Recommends:     ipsec-tools
Recommends:     quagga
Recommends:     radvd
Recommends:     rarpd
Recommends:     squid3
Recommends:     squidGuard
Suggests:       wwwoffle
Suggests:       mirror

%description gateway_server
Software to set up a proxy, firewall, and gateway server, including a virtual private network (VPN) gateway.

%files gateway_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/gateway_server.txt

################################################################################

%package kvm_server
%pattern_serverfunctions
Summary:        KVM Host Server
Group:          Metapackages
Provides:       pattern() = kvm_server
Provides:       pattern-icon() = yast-uml
Provides:       pattern-order() = 3099
Provides:       pattern-visible()
Provides:       patterns-openSUSE-kvm_server = %{version}
Obsoletes:      patterns-openSUSE-kvm_server < %{version}
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
Recommends:     libvirt-daemon-qemu
Suggests:       libvirt
Suggests:       libvirt-daemon-lxc

%description kvm_server
Software to set up a server for configuring, managing, and monitoring virtual machines on a single physical machine.

%files kvm_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/kvm_server.txt

################################################################################

%package lamp_server
%pattern_serverfunctions
Summary:        Web and LAMP Server
Group:          Metapackages
Provides:       pattern() = lamp_server
Provides:       pattern-icon() = yast-http-server
Provides:       pattern-order() = 3000
Provides:       pattern-visible()
Provides:       patterns-openSUSE-lamp_server = %{version}
Obsoletes:      patterns-openSUSE-lamp_server < %{version}
Requires:       pattern() = basesystem

Recommends:     apache2
Recommends:     yast2-http-server
Recommends:     apache2-doc
Recommends:     apache2-example-pages
Recommends:     apache2-mod_perl
Recommends:     apache2-mod_php5
Recommends:     apache2-mod_python
Recommends:     apache2-prefork
Recommends:     mariadb
Recommends:     php5-ctype
Recommends:     php5-dom
Recommends:     php5-iconv
Recommends:     php5-mysql
Suggests:       php5-gd
Suggests:       php5-mbstring
Suggests:       php5-zlib
Suggests:       php5-zip
# slightly out of place I admit
Suggests:       postgresql
Suggests:       postgresql-contrib
Suggests:       postgresql-server

%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.

%files lamp_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/lamp_server.txt

################################################################################

%package mail_server
%pattern_serverfunctions
Summary:        Mail and News Server
Group:          Metapackages
Provides:       pattern() = mail_server
Provides:       pattern-icon() = yast-mail-server
Provides:       pattern-order() = 2980
Provides:       pattern-visible()
Provides:       patterns-openSUSE-mail_server = %{version}
Obsoletes:      patterns-openSUSE-mail_server < %{version}
Requires:       pattern() = basesystem

Recommends:     cyrus-imapd
Recommends:     amavisd-new
Recommends:     mailman
Recommends:     clamav
Recommends:     fetchmail
Recommends:     postfix
Recommends:     procmail
Recommends:     spamassassin
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

%description mail_server
Software to set up electronic mail and message services to handle e-mail, mailing, and news lists, including a virus scanner to scan messages at the server level.

%files mail_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/mail_server.txt

################################################################################

%package print_server
%pattern_serverfunctions
Summary:        Print Server
Group:          Metapackages
Provides:       pattern() = print_server
Provides:       pattern-icon() = yast-printer
Provides:       pattern-order() = 2960
Provides:       pattern-visible()
Provides:       patterns-openSUSE-print_server = %{version}
Obsoletes:      patterns-openSUSE-print_server < %{version}
Requires:       pattern() = basesystem

Recommends:     cups
Recommends:     cups-backends
Recommends:     cups-filters-foomatic-rip
Recommends:     OpenPrintingPPDs
Recommends:     m2300w
Recommends:     splix
Recommends:     gutenprint
Recommends:     hplip
Recommends:     manufacturer-PPDs
Recommends:     samba
Suggests:       udev-configure-printer
Suggests:       poster
# print to bluetooth
Suggests:       bluez-cups
Suggests:       pbm2l7k

%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.

%files print_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/print_server.txt

################################################################################

%package xen_server
%pattern_serverfunctions
Summary:        Xen Virtual Machine Host Server
Group:          Metapackages
Provides:       pattern() = xen_server
Provides:       pattern-icon() = yast-uml
Provides:       pattern-order() = 3080
Provides:       pattern-visible()
Provides:       patterns-openSUSE-xen_server = %{version}
Obsoletes:      patterns-openSUSE-xen_server < %{version}
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
Recommends:     libvirt-daemon-xen
# #382423
Suggests:       install-initrd
Suggests:       libvirt
Suggests:       libvirt-daemon-lxc

%description xen_server
Software to set up a server for configuring, managing, and monitoring virtual machines on a single physical machine.

%files xen_server
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/xen_server.txt

################################################################################

%prep

%build

%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
	echo "This file marks the pattern $i to be installed." \
		>"%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
done

@scarabeusiv scarabeusiv self-assigned this May 30, 2017
@scarabeusiv
Copy link
Contributor

I had it on my mind as pullrequest with the test.

@simotek
Copy link
Author

simotek commented May 30, 2017

that takes more then the 5 mins i had :-) this way it wont get lost if i end up busy

@scarabeusiv
Copy link
Contributor

Was fixed by the requirestoken rewrite :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants