summaryrefslogtreecommitdiffstats
path: root/pie.spec
diff options
context:
space:
mode:
Diffstat (limited to 'pie.spec')
-rw-r--r--pie.spec197
1 files changed, 197 insertions, 0 deletions
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 <remi@remirepo.net> - 0.0.0~DEV-1.20241003.bbb9b6b
+- Initial package from dev-main