summaryrefslogtreecommitdiffstats
path: root/php-kjdev-bzip3.spec
blob: 9e06497aec46366622b1114f91ffef7a758905fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# remirepo spec file for php-kjdev-bzip3
#
# SPDX-FileCopyrightText:  Copyright 2025 Remi Collet
# SPDX-License-Identifier: CECILL-2.1
# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
#
# Please, preserve the changelog entries
#
%if 0%{?scl:1}
%scl_package        php-kjdev-bzip3
%else
%global pkg_name    %{name}
%endif

%bcond_without tests
%if 0%{?rhel} == 10
%bcond_with    libbzip3
%else
%bcond_without libbzip3
%endif

%global gh_commit   29f20d70e9eef8839b97b98584f8db92306275f6
%global gh_short    %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner    kjdev
%global gh_project  php-ext-bzip3
%global pecl_name   bzip3
%global pie_vend    kjdev
%global pie_proj    bzip3
%global ini_name    40-%{pecl_name}.ini

%global upstream_version 0.1.0
%global upstream_prever  rc
%global sources     %{gh_project}-%{gh_commit}


Summary:       Bzip3 extension for PHP
Name:          %{?scl_prefix}php-%{pie_vend}-%{pie_proj}
Version:       %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
Release:       1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
%if %{with libbzip3}
License:       MIT
%else
License:       MIT AND LGPL-3.0-or-later
%endif
URL:           https://github.com/%{gh_owner}/%{gh_project}
Source0:       %{pkg_name}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tgz
# retrieve a recursive git snapshot with submodule
Source1:       makesrc.sh

BuildRequires: make
BuildRequires: gcc
BuildRequires: %{?scl_prefix}php-devel >= 8.1
%if %{with libbzip3}
BuildRequires: pkgconfig(bzip3)
%else
Provides:      bundled(libbzip3) = 1.5.1
%endif

Requires:      %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires:      %{?scl_prefix}php(api) = %{php_core_api}

Provides:      %{?scl_prefix}php-%{pecl_name}                 = %{version}
Provides:      %{?scl_prefix}php-%{pecl_name}%{?_isa}         = %{version}
Provides:      %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version}


%description
This extension allows bzip3, a compression/decompression library.

Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}.


%prep
%setup -qc

cd %{sources}
%if %{with libbz3}
# Use the system library
rm -r lib
%else
cp -r lib/LICENSE LICENSE.libbzip3
%endif

# Sanity check, really often broken
extver=$(sed -n '/#define PHP_BZIP3_EXT_VERSION/{s/.* "//;s/".*$//;p}' php_bzip3.h)
if test "x${extver}" != "x%{upstream_version}"; then
   : Error: Upstream extension version is ${extver}, expecting %{version}.
   exit 1
fi
cd ..

# Drop in the bit of configuration
cat << 'EOF' | tee %{ini_name}
; Enable '%{summary}' extension module
extension = %{pecl_name}.so
EOF


%build
cd %{sources}
%{__phpize}
sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global

%configure \
    --with-php-config=%{__phpconfig} \
%if %{with libbzip3}
    --with-libbzip3 \
%endif
    --with-libdir=%{_lib} \
    --enable-bzip3

%make_build


%install
cd %{sources}

: Install the extension
%make_install
install -D -m 644 ../%{ini_name} %{buildroot}%{php_inidir}/%{ini_name}


%check
cd %{sources}

: Minimal load test
%{__php} --no-php-ini \
    --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
    --modules | grep '^%{pecl_name}$'

%if %{with tests}
: Upstream test suite
TEST_PHP_EXECUTABLE=%{__php} \
TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
REPORT_EXIT_STATUS=1 \
%{__php} -n run-tests.php -q --show-diff
%endif


%files
#license %%{sources}/LICENSE
%if %{without libbzip3}
%license %{sources}/LICENSE.libbzip3
%endif
%doc %{sources}/composer.json
%doc %{sources}/README.md

%config(noreplace) %{php_inidir}/%{ini_name}
%{php_extdir}/%{pecl_name}.so


%changelog
* Thu Apr 10 2025 Remi Collet <remi@remirepo.net> - 0.1.0~rc-1
- new package, version 0.1.0rc1
- open https://github.com/kjdev/php-ext-bzip3/issues/2 add LICENSE file