From 7c7bd7b427135a73d543d2477140629c42ff23bf Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 4 Oct 2024 16:26:31 +0200 Subject: Initial package from dev-main --- pie.spec | 197 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 pie.spec (limited to 'pie.spec') diff --git a/pie.spec b/pie.spec new file mode 100644 index 0000000..a3bacbd --- /dev/null +++ b/pie.spec @@ -0,0 +1,197 @@ +# remirepo/fedora spec file for pie +# +# Copyright (c) 2024 Remi Collet +# License: CC-BY-SA-4.0 +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +# For compatibility with SCL +%undefine __brp_mangle_shebangs + +%global gh_commit bbb9b6b44b9d9f57d710912e545a4371da2c00e9 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_date 20241003 +%global gh_branch main +%global gh_owner php +%global gh_project pie + +# nightly tarball reports as 0.0.0 +%global upstream_version 0.0.0 +%global upstream_prever dev +%global upstream_lower DEV + +%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) +%global bashcomproot %(dirname %{bashcompdir} 2>/dev/null) + + +Name: pie +Version: %{upstream_version}%{?upstream_prever:~%{upstream_lower}} +Release: 1%{?gh_date:.%{gh_date}.%{gh_short}}%{?dist} +Summary: PHP Installer for Extensions + +# SPDX: pie is BSD-3-Clause, all dependencies are MIT +License: BSD-3-Clause and MIT +URL: https://github.com/php/pie +Source0: %{gh_project}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tgz +Source1: %{name}-bash-completion +# Get a git snapshot to retrieve the test suite +Source9: makesrc.sh + +# Fix autoloader path +Patch0: %{name}-rpm.patch + +BuildArch: noarch +# platform set in makesrc.sh +BuildRequires: php(language) >= 8.1 +BuildRequires: php-cli +BuildRequires: php-json +BuildRequires: php-zip +BuildRequires: pkgconfig(bash-completion) + +# From composer.json, "require": { +# "php": "8.1.*||8.2.*||8.3.*", +# "ext-zip": "*", +Requires: php(language) >= 8.1 +Requires: php-cli +Requires: php-zip +# System certificates +Requires: ca-certificates +# From phpcompatinfo +Requires: php-curl +Requires: php-dom +Requires: php-intl +Requires: php-json +Requires: php-libxml +Requires: php-mbstring +Requires: php-phar +Requires: php-xsl + +# Bundled libraries +# License MIT +Provides: bundled(php-composer-ca-bundle) = 1.5.2 +Provides: bundled(php-composer-class-map-generator) = 1.4.0 +Provides: bundled(php-composer-composer) = dev-main +Provides: bundled(php-composer-metadata-minifier) = 1.0.0 +Provides: bundled(php-composer-pcre) = 3.3.1 +Provides: bundled(php-composer-semver) = 3.4.3 +Provides: bundled(php-composer-spdx-licenses) = 1.5.8 +Provides: bundled(php-composer-xdebug-handler) = 3.0.5 +Provides: bundled(php-guzzlehttp-guzzle) = 7.9.2 +Provides: bundled(php-guzzlehttp-promises) = 2.0.3 +Provides: bundled(php-guzzlehttp-psr7) = 2.7.0 +Provides: bundled(php-illuminate-container) = v10.48.22 +Provides: bundled(php-illuminate-contracts) = v10.48.22 +Provides: bundled(php-justinrainbow-json-schema) = 5.3.0 +Provides: bundled(php-psr-container) = 2.0.2 +Provides: bundled(php-psr-http-client) = 1.0.3 +Provides: bundled(php-psr-http-factory) = 1.1.0 +Provides: bundled(php-psr-http-message) = 2.0 +Provides: bundled(php-psr-log) = 3.0.2 +Provides: bundled(php-psr-simple-cache) = 3.0.0 +Provides: bundled(php-ralouphie-getallheaders) = 3.0.3 +Provides: bundled(php-react-promise) = v3.2.0 +Provides: bundled(php-seld-jsonlint) = 1.11.0 +Provides: bundled(php-seld-phar-utils) = 1.2.1 +Provides: bundled(php-seld-signal-handler) = 2.0.2 +Provides: bundled(php-symfony-console) = v6.4.12 +Provides: bundled(php-symfony-deprecation-contracts) = v3.5.0 +Provides: bundled(php-symfony-filesystem) = v6.4.12 +Provides: bundled(php-symfony-finder) = v6.4.11 +Provides: bundled(php-symfony-polyfill-ctype) = v1.31.0 +Provides: bundled(php-symfony-polyfill-intl-grapheme) = v1.31.0 +Provides: bundled(php-symfony-polyfill-intl-normalizer) = v1.31.0 +Provides: bundled(php-symfony-polyfill-mbstring) = v1.31.0 +Provides: bundled(php-symfony-polyfill-php73) = v1.31.0 +Provides: bundled(php-symfony-polyfill-php80) = v1.31.0 +Provides: bundled(php-symfony-polyfill-php81) = v1.31.0 +Provides: bundled(php-symfony-process) = v6.4.12 +Provides: bundled(php-symfony-service-contracts) = v3.5.0 +Provides: bundled(php-symfony-string) = v6.4.12 +Provides: bundled(php-webmozart-assert) = 1.11.0 + +# Composer library +Provides: php-composer(php/pie) = %{version} + + +%description +PIE (PHP Installer for Extensions). + +PIE can install an extension to any installed PHP version. + +A list of extensions that support PIE can be found on +https://packagist.org/extensions. + +Documentation: /usr/share/doc/pie/docs/usage.md + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch -P0 -p1 -b .rpm +find . \( -name \*.rpm -o -name \*noxdg \) -delete -print + +: Set version +sed -e 's/@pie_version@/%{upstream_version}%{upstream_prever}/' -i bin/pie + +: List bundled libraries and Licenses +php -r ' + $pkgs = file_get_contents("vendor/composer/installed.json"); + $pkgs = json_decode($pkgs, true); + if (!is_array($pkgs) || !isset($pkgs["packages"])) { + echo "cant decode json file\n"; + exit(3); + } + $res = []; + foreach($pkgs["packages"] as $pkg) { + $lic = implode(" and ", $pkg["license"]); + if (!isset($res[$lic])) $res[$lic] = []; + $res[$lic][] = sprintf("Provides: bundled(php-%s) = %s", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]); + } + foreach($res as $lic => $lib) { + sort($lib); + printf("# License %s\n%s\n", $lic, implode("\n", $lib)); + } +' + + +%build +# Nothing + + +%install +: Profile scripts +install -Dpm 644 %{SOURCE1} %{buildroot}%{bashcompdir}/%{name} + +: Library +mkdir -p %{buildroot}%{_datadir}/%{name} +cp -pr src %{buildroot}%{_datadir}/%{name}/src +cp -pr vendor %{buildroot}%{_datadir}/%{name}/vendor + +: Command +install -Dpm 755 bin/%{name} %{buildroot}%{_bindir}/%{name} + +: Licenses +cd vendor +for lic in */*/LICENSE +do dir=$(dirname $lic) + own=$(dirname $dir) + prj=$(basename $dir) + ln -sf ../../pie/vendor/$own/$prj/LICENSE ../$own-$prj-LICENSE +done + + +%files +%license LICENSE.md +%license *LICENSE +%doc *.md docs +%doc composer.json +%{_bindir}/%{name} +%{_datadir}/%{name} +%{bashcomproot} + + +%changelog +* Fri Oct 4 2024 Remi Collet - 0.0.0~DEV-1.20241003.bbb9b6b +- Initial package from dev-main -- cgit