Add support for LTS versioned sub-packages
This change allows you to use one common spec file for two purposes: 1. If the name is set to "make" you get the same make-X.Y packages as before. 2. If the name is set to "make-latest" you get a make-latest meta-package and a makeXY subpackage on which it depends. The subpackage installs in /opt (or elsewhere) to avoid conflict with an installed make-X.Y. In this case, the user should edit: %global make make43 <-- to match the version being installed %global _prefix /opt/rh/%{make} <-- to where you want it
This commit is contained in:
parent
00a29b7cdd
commit
b3884b6199
52
make.spec
52
make.spec
@ -1,13 +1,31 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
Summary: A GNU tool which simplifies the build process for users
|
# This decides the SRPM name. Set to "make" for a rolling release
|
||||||
|
# (like Fedora) or "make-latest" for a long term release that needs
|
||||||
|
# optional versioned updates.
|
||||||
Name: make
|
Name: make
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 4.3
|
Version: 4.3
|
||||||
Release: 8%{?dist}
|
Release: 9%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: http://www.gnu.org/software/make/
|
URL: http://www.gnu.org/software/make/
|
||||||
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.gz
|
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.gz
|
||||||
|
|
||||||
|
%if "%{name}" != "make"
|
||||||
|
# Set this to the sub-package base name, for "make-latest"
|
||||||
|
%global make make43
|
||||||
|
%if 0%{?rhel} > 0
|
||||||
|
%global _prefix /opt/rh/%{make}
|
||||||
|
%else
|
||||||
|
# We intentionally do not define a case for Fedora, as it should not
|
||||||
|
# need this functionality, and letting it error avoids accidents.
|
||||||
|
%{error:"Each downstream must specify its own /opt namespace"}
|
||||||
|
%endif
|
||||||
|
Summary: Meta package to include latest version of make
|
||||||
|
%else
|
||||||
|
%global make %{name}
|
||||||
|
Summary: A GNU tool which simplifies the build process for users
|
||||||
|
%endif
|
||||||
|
|
||||||
%if 0%{?rhel} > 0
|
%if 0%{?rhel} > 0
|
||||||
# This gives the user the option of saying --with guile, but defaults to WITHOUT
|
# This gives the user the option of saying --with guile, but defaults to WITHOUT
|
||||||
%bcond_with guile
|
%bcond_with guile
|
||||||
@ -46,7 +64,18 @@ BuildRequires: pkgconfig(guile-2.2)
|
|||||||
%endif
|
%endif
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
|
||||||
%description
|
%if "%{name}" != "make"
|
||||||
|
# We're still on the make-latest package
|
||||||
|
Requires: %{make}
|
||||||
|
%description -n make-latest
|
||||||
|
The latest GNU Make, with a version-specific install
|
||||||
|
%files -n make-latest
|
||||||
|
|
||||||
|
%package -n %{make}
|
||||||
|
Summary: A GNU tool which simplifies the build process for users
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n %{make}
|
||||||
A GNU tool for controlling the generation of executables and other
|
A GNU tool for controlling the generation of executables and other
|
||||||
non-source files of a program from the program's source files. Make
|
non-source files of a program from the program's source files. Make
|
||||||
allows users to build and install packages without any significant
|
allows users to build and install packages without any significant
|
||||||
@ -54,14 +83,14 @@ knowledge about the details of the build process. The details about
|
|||||||
how the program should be built are provided for make in the program's
|
how the program should be built are provided for make in the program's
|
||||||
makefile.
|
makefile.
|
||||||
|
|
||||||
%package devel
|
%package -n %{make}-devel
|
||||||
Summary: Header file for externally visible definitions
|
Summary: Header file for externally visible definitions
|
||||||
|
|
||||||
%description devel
|
%description -n %{make}-devel
|
||||||
The make-devel package contains gnumake.h.
|
The %{make}-devel package contains gnumake.h.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -n make-%{version} -p1
|
||||||
|
|
||||||
rm -f tests/scripts/features/parallelism.orig
|
rm -f tests/scripts/features/parallelism.orig
|
||||||
|
|
||||||
@ -83,14 +112,14 @@ ln -sf make ${RPM_BUILD_ROOT}/%{_bindir}/gmake
|
|||||||
ln -sf make.1 ${RPM_BUILD_ROOT}/%{_mandir}/man1/gmake.1
|
ln -sf make.1 ${RPM_BUILD_ROOT}/%{_mandir}/man1/gmake.1
|
||||||
rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
|
rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
|
||||||
|
|
||||||
%find_lang %name
|
%find_lang make
|
||||||
|
|
||||||
%check
|
%check
|
||||||
echo ============TESTING===============
|
echo ============TESTING===============
|
||||||
/usr/bin/env LANG=C make check && true
|
/usr/bin/env LANG=C make check && true
|
||||||
echo ============END TESTING===========
|
echo ============END TESTING===========
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -n %{make} -f make.lang
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%doc NEWS README AUTHORS
|
%doc NEWS README AUTHORS
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
@ -98,10 +127,13 @@ echo ============END TESTING===========
|
|||||||
%{_infodir}/*.info*
|
%{_infodir}/*.info*
|
||||||
%{_includedir}/gnumake.h
|
%{_includedir}/gnumake.h
|
||||||
|
|
||||||
%files devel
|
%files -n %{make}-devel
|
||||||
%{_includedir}/gnumake.h
|
%{_includedir}/gnumake.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 29 2022 DJ Delorie <dj@redhat.com> - 1:4.3-9
|
||||||
|
- Enable long-term supported builds.
|
||||||
|
|
||||||
* Fri Apr 8 2022 DJ Delorie <dj@redhat.com> - 1:4.3-8
|
* Fri Apr 8 2022 DJ Delorie <dj@redhat.com> - 1:4.3-8
|
||||||
- Rewrite filter/filter-out to avoid large stack usage. BZ #2010506
|
- Rewrite filter/filter-out to avoid large stack usage. BZ #2010506
|
||||||
- Require perl core modules for testsuite
|
- Require perl core modules for testsuite
|
||||||
|
Loading…
Reference in New Issue
Block a user