summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore9
-rw-r--r--Makefile4
-rw-r--r--PHPINFO6
-rw-r--r--REFLECTION19
-rwxr-xr-xmakesrc.sh29
-rw-r--r--php-kjdev-bzip3.spec155
6 files changed, 222 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..01f0400
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+clog
+package-*.xml
+*.tgz
+*.tar.bz2
+*.tar.gz
+*.tar.xz
+*.tar.xz.asc
+*.src.rpm
+*/*rpm
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..91b0fd5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+SRCDIR := $(shell pwd)
+NAME := $(shell basename $(SRCDIR))
+include ../../common/Makefile
+
diff --git a/PHPINFO b/PHPINFO
new file mode 100644
index 0000000..7ca7040
--- /dev/null
+++ b/PHPINFO
@@ -0,0 +1,6 @@
+
+bzip3
+
+Bzip3 support => enabled
+Extension Version => 0.1.0
+Library Version => 1.4.0
diff --git a/REFLECTION b/REFLECTION
new file mode 100644
index 0000000..7e4b2d4
--- /dev/null
+++ b/REFLECTION
@@ -0,0 +1,19 @@
+Extension [ <persistent> extension #72 bzip3 version 0.1.0 ] {
+
+ - Functions {
+ Function [ <internal:bzip3> function Bzip3\compress ] {
+
+ - Parameters [2] {
+ Parameter #0 [ <required> $data ]
+ Parameter #1 [ <optional> $block_size = <default> ]
+ }
+ }
+ Function [ <internal:bzip3> function Bzip3\uncompress ] {
+
+ - Parameters [1] {
+ Parameter #0 [ <required> $data ]
+ }
+ }
+ }
+}
+
diff --git a/makesrc.sh b/makesrc.sh
new file mode 100755
index 0000000..5246a95
--- /dev/null
+++ b/makesrc.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+NAME=$(basename $PWD)
+OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec)
+PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec)
+VER1=$(sed -n '/^%global upstream_version/{s/.* //;p}' $NAME.spec)
+VER2=$(sed -n '/^%global upstream_prever/{s/.* //;p}' $NAME.spec)
+COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec)
+SHORT=${COMMIT:0:7}
+VERSION=${VER1}${VER2}
+
+echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n"
+
+echo "Cloning..."
+rm -rf $PROJECT-$COMMIT
+git clone --recursive https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
+
+echo "Getting commit..."
+pushd $PROJECT-$COMMIT
+git checkout $COMMIT
+popd
+
+echo "Archiving..."
+tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
+
+echo "Cleaning..."
+rm -rf $PROJECT-$COMMIT
+
+echo "Done."
diff --git a/php-kjdev-bzip3.spec b/php-kjdev-bzip3.spec
new file mode 100644
index 0000000..9e06497
--- /dev/null
+++ b/php-kjdev-bzip3.spec
@@ -0,0 +1,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