LogoKolab Groupware OBS > Projects
Log In

View File kolab-release.spec of Package kolab-release (Project Kolab:16)

# The repository type (feature, custom)
%global repository_type feature
%global repository_stage private
%global repository_name kolab
%global repository_version 16

# Fedora or Enterprise Linux?
%if 0%{?fedora} > 0
%global dist_full_name Fedora
%global dist_lower_name fedora
%global dist_tag_prefix f
%global dist_version %{fedora}

%if 0%{?fedora} == 12
%global gpgkey_name constantine
%endif

%if 0%{?fedora} == 13
%global gpgkey_name goddard
%endif

%if 0%{?fedora} == 14
%global gpgkey_name laughlin
%endif

%if 0%{?fedora} == 15
%global gpgkey_name lovelock
%endif

%if 0%{?fedora} == 16
%global gpgkey_name verne
%endif

%if 0%{?fedora} == 17
%global gpgkey_name beefymiracle
%endif

%if 0%{?fedora} == 26
%global gpgkey_name twentysix
%endif

%else
%global dist_full_name Enterprise Linux
%if 0%{?plesk}
%global dist_lower_name plesk-%{?plesk}
%else
%global dist_lower_name redhat
%endif
%global dist_tag_prefix el
%global dist_version %{rhel}
%if 0%{?rhel} == 5
%global gpgkey_name tikanga
%endif
%if 0%{?rhel} == 6
%global gpgkey_name santiago
%endif
%if 0%{?rhel} == 7
%global gpgkey_name maipo
%endif
%if 0%{?rhel} == 8
%global gpgkey_name ootpa
%endif
%endif

# Runtime settings
%global dist_tag %{dist_tag_prefix}%{dist_version}

%if %{?repository_type} == "feature"
%global desc %{dist_full_name} %{dist_version} Kolab %{repository_version}
%if %{?repository_stage} == "public"
%global repository_base_url http://mirror.kolabenterprise.com/pub/%{dist_lower_name}/
%else
%global repository_base_url https://mirror.kolabenterprise.com/%{dist_lower_name}/
%endif
%global repository_full_name %{repository_name}-%{repository_version}
%global repository_tag_name %{repository_name}-%{repository_version}
%else
%global desc %{dist_full_name} %{dist_version} Custom Kolab %{repository_version}
%global repository_base_url https://mirror.kolabenterprise.com/%{dist_lower_name}/custom/
%global repository_full_name custom-%{repository_name}
%global repository_tag_name %{repository_name}
%endif

Summary:    Kolab Systems release files
%if %{repository_stage} == "private"
Name:       %{repository_name}-release
%else
Name:       %{repository_name}-community-release
%endif
Version:    %{repository_version}.%{dist_version}
Release:    13%{?dist}
License:    GPLv2
Group:      System Environment/Base
URL:        http://www.kolabenterprise.com
Source0:    kolab-repository-template.repo.tpl
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:  noarch
Requires:   %{repository_name}(release) = %{repository_version}

%description
Kolab Systems repository configuration files, such as YUM repository configuration files

%if %{repository_stage} == "public"
%package -n %{repository_full_name}-community-release
Summary:    Kolab release files
Group:      System Environment/Base

Obsoletes:  %{repository_full_name}-release < %{version}
Provides:   %{repository_full_name}-release = %{version}
Provides:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
%if 0%{?rhel} < 8
Requires:   pyliblzma
%endif
%endif

%description -n %{repository_full_name}-community-release
This package provides the repository configuration for Kolab
%else
%package -n %{repository_full_name}-release
Summary:    Kolab Enterprise release files by Kolab Systems
Group:      System Environment/Base

Obsoletes:  %{repository_full_name}-release < %{version}
Provides:   %{repository_full_name}-release = %{version}
Provides:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
%if 0%{?rhel} < 8
Requires:   pyliblzma
%endif
%endif

Obsoletes:  %{repository_full_name}-community-release < %{version}
Obsoletes:  %{repository_name}-community-release < %{version}
Provides:   %{repository_full_name}-community-release = %{version}
Provides:   %{repository_name}-community-release = %{version}

%description -n %{repository_full_name}-release
This package provides the repository configuration for Kolab Systems' Enterprise version of Kolab

%endif

%if %{?repository_type} == "feature"
%if %{repository_stage} == "public"
%package -n %{repository_full_name}-community-release-development
%else
%package -n %{repository_full_name}-release-development
%endif
Summary:    Development repository definitions
Group:      System Environment/Base
Requires:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
Requires:   pyliblzma
%endif

%if %{repository_stage} == "public"
%description -n %{repository_full_name}-community-release-development
%else
%description -n %{repository_full_name}-release-development
%endif
This package provides the development repository definitions.
%endif

%if %{repository_type} == "feature"
%if %{repository_stage} == "private"
%if %{repository_version} >= 14
%if 0%{?plesk} < 1
%package -n %{repository_full_name}-extras-audit
Summary:    Audit trail packages for Kolab Enterprise %{repository_version}
Group:      System Environment/Base
Requires:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
Requires:   pyliblzma
%endif # 0%{?rhel}

%description -n %{repository_full_name}-extras-audit
Extras repository for Bonnie and Egara on Kolab Enterprise %{repository_version}

%package -n %{repository_full_name}-extras-puppet
Summary:    Puppet 3 packages for Kolab Enterprise %{repository_version}
Group:      System Environment/Base
Requires:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
Requires:   pyliblzma
%endif # 0%{?rhel}

%description -n %{repository_full_name}-extras-puppet
Puppet 3 repository for Kolab Enterprise %{repository_version}

%if 0%{?rhel} >= 6
%package -n %{repository_full_name}-extras-fasttrack
Summary:    Fasttrack packages for Kolab Enterprise %{repository_version}
Group:      System Environment/Base
Requires:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
Requires:   pyliblzma
%endif # 0%{?rhel}

%description -n %{repository_full_name}-extras-fasttrack
Fasttrack repository for Kolab Enterprise %{repository_version}

%package -n %{repository_full_name}-extras-collab
Summary:    Collabora Online packages for Kolab Enterprise %{repository_version}
Group:      System Environment/Base
Requires:   %{repository_name}(release) = %{repository_version}
%if 0%{?rhel}
Requires:   epel-release = %{rhel}
Requires:   pyliblzma
%endif # 0%{?rhel}

%description -n %{repository_full_name}-extras-collab
Extras repository for Collabora Online on Kolab Enterprise %{repository_version}

%endif # 0%{?rhel} >= 6
%endif # 0%{?plesk} < 1
%endif # %{repository_version} >= 14
%endif # %{repository_stage} == "private"
%endif # %{repository_type} == "feature"

%prep

%build

%install
rm -rf %{buildroot}
install -d %{buildroot}/%{_sysconfdir}

install -d -m 755 %{buildroot}/%{_sysconfdir}/pki/rpm-gpg

##install -m 644 RPM-GPG-KEY-ergo-%{repository}-* %{_sysconfdir}/etc/pki/rpm-gpg/

install -d -m 755 %{buildroot}/%{_sysconfdir}/yum.repos.d

%if %{?repository_type} == "feature"
for repo in release updates updates-testing development; do
    [ "$repo" == "release" ] && status="" || status="-$repo"
    [ "$repo" == "updates-testing" ] && enabled="0" || enabled="1"

    cat %{SOURCE0} | \
        sed \
                -e 's/@@desc@@/%{desc}/g' \
                -e 's/@@dist_full_name@@/%{dist_full_name}/g' \
                -e 's/@@dist_tag@@/%{dist_tag}/g' \
                -e 's/@@dist_version@@/%{dist_version}/g' \
                -e "s/@@enabled@@/$enabled/g" \
                -e 's|@@repository_base_url@@|%{repository_base_url}|g' \
                -e 's/@@repository_full_name@@/%{repository_full_name}/g' \
                -e 's/@@repository_name@@/%{repository_name}/g' \
                -e "s|@@repository_status@@|$repo/|g" \
                -e "s/@@_repository_status@@/$status/g" \
                -e "s/@@_repository_status@@/$status/g" \
                -e 's/@@repository_tag_name@@/%{repository_tag_name}/g' \
        > %{buildroot}/%{_sysconfdir}/yum.repos.d/%{repository_full_name}-$repo.repo
done

%if %{repository_stage} == "private"
%if %{repository_version} >= 14

%if 0%{?plesk} < 1
repos="extras-audit extras-puppet"

%if 0%{?rhel} >= 6
repos="${repos} extras-fasttrack"
%endif # 0%{?rhel} >= 6

%if 0%{?repository_version} >= 16
repos="${repos} extras-collab"
%endif # 0%{?repository_version} >= 16

%endif # 0%{?plesk} < 1

for repo in ${repos}; do
    status="-${repo}"
    cat %{SOURCE0} | \
        sed \
                -e 's/@@desc@@/%{desc}/g' \
                -e 's/@@dist_full_name@@/%{dist_full_name}/g' \
                -e 's/@@dist_tag@@/%{dist_tag}/g' \
                -e 's/@@dist_version@@/%{dist_version}/g' \
                -e "s/@@enabled@@/$enabled/g" \
                -e 's|@@repository_base_url@@|%{repository_base_url}|g' \
                -e 's/@@repository_full_name@@/%{repository_full_name}/g' \
                -e 's/@@repository_name@@/%{repository_name}/g' \
                -e "s|@@repository_status@@|$repo/|g" \
                -e "s/@@_repository_status@@/$status/g" \
                -e "s/@@_repository_status@@/$status/g" \
                -e 's/@@repository_tag_name@@/%{repository_tag_name}/g' \
        > %{buildroot}/%{_sysconfdir}/yum.repos.d/%{repository_full_name}-$repo.repo
done

%endif # %{repository_version} >= 14
%endif # %{repository_stage} == "private"

%else # %if %{?repository_type} == "feature"
    cat %{SOURCE0} | \
        sed \
                -e 's/@@desc@@/%{desc}/g' \
                -e 's/@@dist_full_name@@/%{dist_full_name}/g' \
                -e 's/@@dist_tag@@/%{dist_tag}/g' \
                -e 's/@@dist_version@@/%{dist_version}/g' \
                -e "s/@@enabled@@/1/g" \
                -e 's|@@repository_base_url@@|%{repository_base_url}|g' \
                -e 's/@@repository_full_name@@/%{repository_full_name}/g' \
                -e 's/@@repository_name@@/%{repository_name}/g' \
                -e "s/@@repository_status@@/$repo/g" \
                -e "s/@@_repository_status@@//g" \
                -e 's/@@repository_tag_name@@/%{repository_tag_name}/g' \
        > %{buildroot}/%{_sysconfdir}/yum.repos.d/%{repository_full_name}.repo
%endif # %if %{?repository_type} == "feature"

sed -i \
    -e 's|@@gpgcheck@@|1|g' \
    -e 's|@@gpgkeyname@@|%{gpgkey_name}|g' \
        %{buildroot}/%{_sysconfdir}/yum.repos.d/*.repo

%clean
rm -rf %{buildroot}

%if %{repository_stage} == "public"
%files -n %{repository_full_name}-community-release
%else
%files -n %{repository_full_name}-release
%endif
%defattr(-,root,root,-)
%dir %{_sysconfdir}/yum.repos.d
%if %{?repository_type} == "feature"
%exclude %{_sysconfdir}/yum.repos.d/*development.repo
%endif
%config(noreplace) %{_sysconfdir}/yum.repos.d/*release.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/*updates.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/*updates-testing.repo
%dir %{_sysconfdir}/pki/rpm-gpg
#%{_sysconfdir}/pki/rpm-gpg/*

%if %{?repository_type} == "feature"
%if %{repository_stage} == "public"
%files -n %{repository_full_name}-community-release-development
%else
%files -n %{repository_full_name}-release-development
%endif
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*development.repo
%endif

%if 0%{?plesk} < 1
%if %{repository_type} == "feature"
%if %{repository_stage} == "private"
%if %{repository_version} >= 14
%files -n %{repository_full_name}-extras-audit
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*extras-audit.repo

%files -n %{repository_full_name}-extras-puppet
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*extras-puppet.repo

%if 0%{?rhel} >= 6
%files -n %{repository_full_name}-extras-fasttrack
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*extras-fasttrack.repo
%endif

%endif
%endif
%endif
%endif

%if %{repository_type} == "feature"
%if %{repository_stage} == "private"
%if 0%{?repository_version} >= 16
%if 0%{?plesk} < 1
%files -n %{repository_full_name}-extras-collab
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*extras-collab.repo
%endif
%endif
%endif
%endif

%changelog
* Mon May 14 2018 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 16.7-10
- Add extras-collab for Plesk 17

* Wed Nov  1 2017 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 16.7-2
- Add extras-collab

* Tue Nov 15 2016 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 16.7-1
- Add extras-fasttrack for RHEL 7 too

* Sat Jan 16 2016 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 16.0-1
- Update for Kolab 16
- Also require pyliblzma
- Add fasttrack repository configuration for kolab-14/el6
- Add repository configuration for extras-audit and extras-puppet

* Thu Oct  2 2014 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 14-1
- Kolab Enterprise 14 repository configuration

* Sun Dec  8 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 6-7
- Drop requirement on yum-plugin-priorities, not available in RHEL

* Mon Oct 14 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 6-5
- Make sure yum-plugin-priorities is a required package, documentation
  clearly is insufficient.
- Make sure the default priority is set.

* Thu Apr 11 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 6-4.1
- Correct yum/curl now using the ca and client certificates configured
  in the kolab repository configuration.

* Sat Dec  1 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 6-4
- Correct base_url for private repository stages

* Fri Nov 30 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 6-3
- Correct requires/provides for sub-package