diff options
author | Remi Collet <remi@remirepo.net> | 2018-06-07 08:29:28 +0200 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2018-06-07 08:29:28 +0200 |
commit | d4786556f0f069dd6de5fe26a267a6e0051559af (patch) | |
tree | 895d95db2018c56736fbe43151b0e0217355f2bb /php73.spec |
new package
Diffstat (limited to 'php73.spec')
-rw-r--r-- | php73.spec | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/php73.spec b/php73.spec new file mode 100644 index 0000000..e5963a5 --- /dev/null +++ b/php73.spec @@ -0,0 +1,201 @@ +%global scl_name_base php +%global scl_name_version 73 +%global scl %{scl_name_base}%{scl_name_version} +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_root_sysconfdir}/rpm; echo $d) +%global install_scl 1 +%if 0%{?fedora} >= 20 +# Requires scl-utils v2 for SCL integration +%global with_modules 1 +%global rh_layout 1 +%else +# Works with file installed in /usr/share/Modules/modulefiles/ +%global with_modules 0 +%global nfsmountable 1 +%endif +%scl_package %scl + +# do not produce empty debuginfo package +%global debug_package %{nil} + +Summary: Package that installs PHP 7.3 +Name: %scl_name +Version: 1.0 +Release: 0.1%{?dist} +License: GPLv2+ + +Source0: macros-build +Source1: README +Source2: LICENSE + +BuildRequires: scl-utils-build +BuildRequires: help2man +# Temporary work-around +BuildRequires: iso-codes +BuildRequires: environment-modules + +Requires: %{?scl_prefix}php-common%{?_isa} +Requires: %{?scl_prefix}php-cli%{?_isa} +Requires: %{?scl_name}-runtime%{?_isa} = %{version}-%{release} + +%description +This is the main package for %scl Software Collection, +that install PHP 7.3 language. + + +%package runtime +Summary: Package that handles %scl Software Collection. +Requires: scl-utils +Requires: environment-modules +Requires(post): %{_root_sbindir}/semanage +Requires(post): %{_root_sbindir}/selinuxenabled +Provides: %{?scl_name}-runtime(%{scl_vendor}) +Provides: %{?scl_name}-runtime(%{scl_vendor})%{?_isa} + +%description runtime +Package shipping essential scripts to work with %scl Software Collection. + + +%package build +Summary: Package shipping basic build configuration +Requires: scl-utils-build +Requires: %{?scl_name}-runtime%{?_isa} = %{version}-%{release} + +%description build +Package shipping essential configuration macros +to build %scl Software Collection. + + +%package scldevel +Summary: Package shipping development files for %scl +Requires: %{?scl_name}-runtime%{?_isa} = %{version}-%{release} + +%description scldevel +Package shipping development files, especially usefull for development of +packages depending on %scl Software Collection. + + +%prep +%setup -c -T + +cat <<EOF | tee enable +export PATH=%{_bindir}:%{_sbindir}\${PATH:+:\${PATH}} +export LD_LIBRARY_PATH=%{_libdir}\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}} +export MANPATH=%{_mandir}:\${MANPATH} +EOF + +# Broken: /usr/share/Modules/bin/createmodule.sh enable | tee envmod +# See https://bugzilla.redhat.com/show_bug.cgi?id=1197321 +cat << EOF | tee envmod +#%%Module1.0 +prepend-path X_SCLS %{scl} +prepend-path PATH %{_bindir}:%{_sbindir} +prepend-path LD_LIBRARY_PATH %{_libdir} +prepend-path MANPATH %{_mandir} +prepend-path PKG_CONFIG_PATH %{_libdir}/pkgconfig +EOF + +# generate rpm macros file for depended collections +cat << EOF | tee scldev +%%scl_%{scl_name_base} %{scl} +%%scl_prefix_%{scl_name_base} %{scl_prefix} +EOF + +# This section generates README file from a template and creates man page +# from that file, expanding RPM macros in the template file. +cat >README <<'EOF' +%{expand:%(cat %{SOURCE1})} +EOF + +# copy the license file so %%files section sees it +cp %{SOURCE2} . + +: prefix in %{_prefix} +: config in %{_sysconfdir} +: data in %{_localstatedir} + + +%build +# generate a helper script that will be used by help2man +cat >h2m_helper <<'EOF' +#!/bin/bash +[ "$1" == "--version" ] && echo "%{scl_name} %{version} Software Collection" || cat README +EOF +chmod a+x h2m_helper + +# generate the man page +help2man -N --section 7 ./h2m_helper -o %{scl_name}.7 + + +%install +install -D -m 644 enable %{buildroot}%{_scl_scripts}/enable +%if %{with_modules} +install -D -m 644 envmod %{buildroot}%{_scl_scripts}/%{scl_name} +%else +install -D -m 644 envmod %{buildroot}%{_root_datadir}/Modules/modulefiles/%{scl_name} +%endif +install -D -m 644 scldev %{buildroot}%{macrosdir}/macros.%{scl_name_base}-scldevel +install -D -m 644 %{scl_name}.7 %{buildroot}%{_mandir}/man7/%{scl_name}.7 + +install -d -m 755 %{buildroot}%{_datadir}/licenses +install -d -m 755 %{buildroot}%{_datadir}/doc/pecl +install -d -m 755 %{buildroot}%{_datadir}/tests/pecl +install -d -m 755 %{buildroot}%{_localstatedir}/lib/pear/pkgxml + +%scl_install + +cat %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config + +# Add the scl_package_override macro +sed -e 's/@SCL@/%{scl}/g' %{SOURCE0} \ + | tee -a %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config + +# Move in correct location, if needed +if [ "%{_root_sysconfdir}/rpm" != "%{macrosdir}" ]; then + mv %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config \ + %{buildroot}%{macrosdir}/macros.%{scl}-config +fi + + +%post runtime +# Simple copy of context from system root to SCL root. +semanage fcontext -a -e / %{?_scl_root} &>/dev/null || : +semanage fcontext -a -e %{_root_sysconfdir} %{_sysconfdir} &>/dev/null || : +semanage fcontext -a -e %{_root_localstatedir} %{_localstatedir} &>/dev/null || : +selinuxenabled && load_policy || : +restorecon -R %{?_scl_root} &>/dev/null || : +restorecon -R %{_sysconfdir} &>/dev/null || : +restorecon -R %{_localstatedir} &>/dev/null || : + + +%{!?_licensedir:%global license %%doc} + +%files + + +%if 0%{?fedora} < 19 && 0%{?rhel} < 7 +%files runtime +%else +%files runtime -f filesystem +%endif +%license LICENSE +%doc README +%scl_files +%{_mandir}/man7/%{scl_name}.* +%{?_licensedir:%{_datadir}/licenses} +%{_datadir}/tests +%if ! %{with_modules} +%{_root_datadir}/Modules/modulefiles/%{scl_name} +%endif + + +%files build +%{macrosdir}/macros.%{scl}-config + + +%files scldevel +%{macrosdir}/macros.%{scl_name_base}-scldevel + +%changelog +* Thu Jun 7 2018 Remi Collet <remi@remirepo.net> 1.0-0.1 +- initial packaging + |