You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
3.3 KiB
139 lines
3.3 KiB
# While we are in package playing with packaging principles, why about having |
|
# this solved in redhat-rpm-config too? (Also for RHELs which are alive, or |
|
# EPELs otherwise). |
|
%{!?_licensedir:%global license %doc} |
|
|
|
# https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_of_Additional_RPM_Macros |
|
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) |
|
|
|
%global rrcdir %_libexecdir |
|
|
|
Summary: Multilib packaging helpers |
|
Name: multilib-rpm-config |
|
Version: 1 |
|
Release: 6%{?dist} |
|
License: GPLv2+ |
|
URL: https://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks |
|
|
|
BuildRequires: gcc |
|
|
|
Source0: multilib-fix |
|
Source1: macros.ml |
|
Source2: README |
|
Source3: COPYING |
|
Source4: multilib-library |
|
Source5: multilib-info |
|
|
|
BuildArch: noarch |
|
|
|
# Most probably we want to move everything here? |
|
Requires: powerel-rpm-config |
|
|
|
%description |
|
Set of tools (shell scripts, RPM macro files) to help with multilib packaging |
|
issues. |
|
|
|
|
|
%prep |
|
%setup -c -T |
|
install -m 644 %{SOURCE2} %{SOURCE3} . |
|
|
|
|
|
%build |
|
%global ml_fix %rrcdir/multilib-fix |
|
%global ml_info %rrcdir/multilib-info |
|
|
|
lib_sed_pattern='/@LIB@/ { |
|
r %{SOURCE4} |
|
d |
|
}' |
|
|
|
sed -e 's|@ML_FIX@|%ml_fix|g' \ |
|
-e 's|@ML_INFO@|%ml_info|g' \ |
|
%{SOURCE1} > macros.multilib |
|
sed -e "$lib_sed_pattern" \ |
|
%{SOURCE0} > multilib-fix |
|
sed -e "$lib_sed_pattern" \ |
|
%{SOURCE5} > multilib-info |
|
|
|
|
|
%install |
|
mkdir -p %{buildroot}%{rrcdir} |
|
mkdir -p %{buildroot}%{macrosdir} |
|
install -m 644 -p macros.multilib %{buildroot}/%{macrosdir} |
|
install -m 755 -p multilib-fix %{buildroot}/%{ml_fix} |
|
install -m 755 -p multilib-info %{buildroot}/%{ml_info} |
|
|
|
|
|
%check |
|
mkdir tests ; cd tests |
|
ml_fix="sh `pwd`/../multilib-fix --buildroot `pwd`" |
|
capable="sh `pwd`/../multilib-info --multilib-capable" |
|
|
|
mkdir template |
|
cat > template/main.c <<EOF |
|
#include "header.h" |
|
int main () { call (); return 0; } |
|
EOF |
|
cat > template/header.h <<EOF |
|
#include <stdio.h> |
|
void call (void) { printf ("works!\n"); } |
|
EOF |
|
|
|
cp -r template basic |
|
gcc ./basic/main.c |
|
./a.out |
|
|
|
pwd |
|
if `$capable`; then |
|
cp -r template really-works |
|
$ml_fix --file /really-works/header.h |
|
gcc really-works/main.c |
|
./a.out |
|
test -f really-works/header-*.h |
|
fi |
|
|
|
cp -r template other_arch |
|
$ml_fix --file /other_arch/header.h --arch ppc64 |
|
test -f other_arch/header-*.h |
|
|
|
cp -r template other_arch_fix |
|
$ml_fix --file /other_arch_fix/header.h --arch ppc64p7 |
|
test -f other_arch_fix/header-ppc64.h |
|
|
|
cp -r template aarch64-no-change |
|
$ml_fix --file /aarch64-no-change/header.h --arch aarch64 |
|
test ! -f aarch64-no-change/header-*.h |
|
|
|
test `$capable --arch x86_64` = true |
|
test `$capable --arch aarch64` = false |
|
test `$capable --arch ppc64p7` = true |
|
|
|
|
|
%files |
|
%license COPYING |
|
%doc README |
|
%{rrcdir}/* |
|
%{macrosdir}/* |
|
|
|
|
|
%changelog |
|
* Fri Jul 01 2016 Yaakov Selkowitz <yselkowi@redhat.com> - 1-6 |
|
- Fix testsuite on non-multilib arches (#1352164) |
|
|
|
* Wed Jun 22 2016 Pavel Raiskup <praiskup@redhat.com> - 1-5 |
|
- document why there is no need for '#else' in the replacement header |
|
- add basic testsuite |
|
|
|
* Mon Jun 13 2016 Pavel Raiskup <praiskup@redhat.com> - 1-4 |
|
- use '-' as a field separator by default |
|
|
|
* Thu Jun 09 2016 Pavel Raiskup <praiskup@redhat.com> - 1-3 |
|
- package separately from redhat-rpm-config |
|
|
|
* Fri Nov 27 2015 Pavel Raiskup <praiskup@redhat.com> - 1-2 |
|
- fix licensing in Sources |
|
- allow undefined %%namespace |
|
|
|
* Wed Nov 18 2015 Pavel Raiskup <praiskup@redhat.com> - 1-1 |
|
- initial packaging
|
|
|