diff --git a/.gitignore b/.gitignore index 73a3e4e..2451128 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,17 @@ /pie-0.3.0-dc299c3.tgz /pie-0.4.0-883447d.tgz /pie-0.5.0-b6e014b.tgz +/pie-0.6.0-e7fcd16.tgz +/pie-0.7.0-8304dd2.tgz +/pie-0.8.0-108707d.tgz +/pie-0.9.0-2c73701.tgz +/pie-0.10.0-453a462.tgz +/pie-0.12.0-6f6ce74.tgz +/pie-1.0.0-6b7bbdd.tgz +/pie-1.1.0-28b3e0d.tgz +/pie-1.2.0-4b20e77.tgz +/pie-1.2.1-8288fd6.tgz +/pie-1.3.0-3a28242.tgz +/pie-1.3.1-2ebd9dc.tgz +/pie-1.3.4-d41c81a.tgz +/pie-1.3.5-90d6d18.tgz diff --git a/pie-bash-completion b/pie-bash-completion index f189bdc..837f518 100644 --- a/pie-bash-completion +++ b/pie-bash-completion @@ -37,7 +37,7 @@ _sf_pie() { local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-a1") for w in ${words[@]}; do - w=$(printf -- '%b' "$w") + w="${w//\\\\/\\}" # remove quotes from typed values quote="${w:0:1}" if [ "$quote" == \' ]; then diff --git a/pie-nocacert.patch b/pie-nocacert.patch index c0b6a45..1d744be 100644 --- a/pie-nocacert.patch +++ b/pie-nocacert.patch @@ -1,12 +1,12 @@ diff -up ./vendor/composer/ca-bundle/src/CaBundle.php.rpm ./vendor/composer/ca-bundle/src/CaBundle.php --- ./vendor/composer/ca-bundle/src/CaBundle.php.rpm 2024-09-25 09:49:53.000000000 +0200 +++ ./vendor/composer/ca-bundle/src/CaBundle.php 2024-10-03 07:11:10.752092401 +0200 -@@ -121,7 +121,7 @@ class CaBundle +@@ -122,7 +122,7 @@ class CaBundle */ public static function getBundledCaBundlePath() { - $caBundleFile = __DIR__.'/../res/cacert.pem'; -+ $caBundleFile = '/etc/pki/tls/certs/ca-bundle.crt'; // System CA, always ++ $caBundleFile = '/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'; // System CA, always // cURL does not understand 'phar://' paths // see https://github.com/composer/ca-bundle/issues/10 diff --git a/pie-noxdg.patch b/pie-noxdg.patch index 896ab51..1ee3f16 100644 --- a/pie-noxdg.patch +++ b/pie-noxdg.patch @@ -1,7 +1,7 @@ -diff -up ./vendor/composer/composer/src/Composer/Factory.php.noxdg ./vendor/composer/composer/src/Composer/Factory.php ---- ./vendor/composer/composer/src/Composer/Factory.php.noxdg 2024-04-20 12:34:54.442117723 +0200 -+++ ./vendor/composer/composer/src/Composer/Factory.php 2024-04-20 12:35:39.497640757 +0200 -@@ -702,6 +702,10 @@ class Factory +diff -up ./src/Platform.php.noxdg ./src/Platform.php +--- ./src/Platform.php.noxdg 2025-11-04 07:41:36.891311937 +0100 ++++ ./src/Platform.php 2025-11-04 07:42:29.282702463 +0100 +@@ -35,6 +35,10 @@ class Platform private static function useXdg(): bool { @@ -12,11 +12,11 @@ diff -up ./vendor/composer/composer/src/Composer/Factory.php.noxdg ./vendor/comp foreach (array_keys($_SERVER) as $key) { if (strpos((string) $key, 'XDG_') === 0) { return true; -diff -up ./src/Platform.php.old ./src/Platform.php ---- ./src/Platform.php.old 2024-12-24 10:01:31.088992537 +0100 -+++ ./src/Platform.php 2024-12-24 10:01:36.394197932 +0100 -@@ -23,6 +23,10 @@ class Platform - { +diff -up ./vendor/composer/composer/src/Composer/Factory.php.noxdg ./vendor/composer/composer/src/Composer/Factory.php +--- ./vendor/composer/composer/src/Composer/Factory.php.noxdg 2025-09-19 13:41:59.000000000 +0200 ++++ ./vendor/composer/composer/src/Composer/Factory.php 2025-11-04 07:41:36.891444253 +0100 +@@ -707,6 +707,10 @@ class Factory + private static function useXdg(): bool { + // As XDG is very partially implemented @@ -24,5 +24,5 @@ diff -up ./src/Platform.php.old ./src/Platform.php + return false; + foreach (array_keys($_SERVER) as $key) { - /** @psalm-suppress RedundantCastGivenDocblockType */ if (strpos((string) $key, 'XDG_') === 0) { + return true; diff --git a/pie-rpm.patch b/pie-rpm.patch index e73d0ab..9d4a8d0 100644 --- a/pie-rpm.patch +++ b/pie-rpm.patch @@ -1,12 +1,42 @@ diff -up ./bin/pie.rpm ./bin/pie ---- ./bin/pie.rpm 2024-10-04 11:40:48.733248660 +0200 -+++ ./bin/pie 2024-10-04 11:42:00.473990273 +0200 -@@ -17,7 +17,7 @@ use Symfony\Component\Console\Input\Inpu - use Symfony\Component\Console\Output\OutputInterface; +--- ./bin/pie.rpm 2025-11-04 07:31:47.045861211 +0100 ++++ ./bin/pie 2025-11-04 07:34:03.568067299 +0100 +@@ -28,13 +28,14 @@ use function error_reporting; - /** @psalm-suppress UnresolvableInclude */ + use const E_DEPRECATED; + +-require_once __DIR__ . '/../src/Util/PieVersion.php'; ++require_once '/usr/share/pie/src/Util/PieVersion.php'; ++ + if (PieVersion::isPharBuild()) { + error_reporting(error_reporting() & ~E_DEPRECATED); + } + + // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps -include $_composer_autoload_path ?? __DIR__ . '/../vendor/autoload.php'; +include $_composer_autoload_path ?? '/usr/share/pie/vendor/autoload.php'; $container = Container::factory(); +diff -up ./src/Command/SelfUpdateCommand.php.rpm ./src/Command/SelfUpdateCommand.php +--- ./src/Command/SelfUpdateCommand.php.rpm 2025-11-04 07:31:47.045962420 +0100 ++++ ./src/Command/SelfUpdateCommand.php 2025-11-04 07:34:56.202111078 +0100 +@@ -85,6 +85,7 @@ final class SelfUpdateCommand extends Co + { + if (! PieVersion::isPharBuild()) { + $this->io->writeError('Aborting! You are not running a PHAR, cannot self-update.'); ++ $this->io->writeError('Update the pie RPM using the package manager (dnf).'); + + return Command::FAILURE; + } +diff -up ./src/Command/SelfVerifyCommand.php.rpm ./src/Command/SelfVerifyCommand.php +--- ./src/Command/SelfVerifyCommand.php.rpm 2025-11-04 07:31:47.046045232 +0100 ++++ ./src/Command/SelfVerifyCommand.php 2025-11-04 07:35:34.439595840 +0100 +@@ -43,6 +43,7 @@ final class SelfVerifyCommand extends Co + { + if (! PieVersion::isPharBuild()) { + $this->io->writeError('Aborting! You are not running a PHAR, cannot self-verify.'); ++ $this->io->writeError('Verify the pie RPM using the package manager (rpm).'); + + return Command::FAILURE; + } diff --git a/pie.spec b/pie.spec index 230d027..baf6373 100644 --- a/pie.spec +++ b/pie.spec @@ -1,35 +1,34 @@ # remirepo/fedora spec file for pie # -# SPDX-FileCopyrightText: Copyright 2024 Remi Collet +# SPDX-FileCopyrightText: Copyright 2024-2026 Remi Collet # SPDX-License-Identifier: CECILL-2.1 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # # Please, preserve the changelog entries # -%bcond_with generators - -%global gh_commit b6e014bdbe790a6cbb83ea0582ac9b6eb8ab31c1 +%global gh_commit 90d6d1850b254540328a8397a9e689ad1bca873e %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 -%global upstream_version 0.5.0 -#global upstream_prever dev -#global upstream_lower DEV +%global upstream_version 1.3.5 +#global upstream_prever rc3 %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}} +Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 1%{?dist} Summary: PHP Installer for Extensions -# SPDX: pie is BSD-3-Clause, all dependencies are MIT +# SPDX: pie is BSD-3-Clause +# thephpf/attestation is BSD-3-Clause +# others dependencies are MIT License: BSD-3-Clause AND MIT URL: https://github.com/php/pie # tarball generated by makesrc.sh @@ -39,6 +38,7 @@ Source1: %{name}-bash-completion Source9: makesrc.sh # Fix autoloader path +# add message about dnf in self-update command Patch0: %{name}-rpm.patch # Don't use XDG directories Patch1: %{name}-noxdg.patch @@ -52,9 +52,7 @@ BuildRequires: php-cli BuildRequires: php-json BuildRequires: php-zip BuildRequires: pkgconfig(bash-completion) -%if %{with generators} BuildRequires: composer-generators -%endif # From composer.json, "require": { # "php": "8.1.*||8.2.*||8.3.*||8.4.*", @@ -63,7 +61,7 @@ Requires: php(language) >= 8.1 Requires: php-cli Requires: php-zip # System certificates -Requires: ca-certificates +Requires: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem # From phpcompatinfo # Ignored: core, date, filter, hash, pcre, random, reflection, spl, standard Requires: php-ctype @@ -74,45 +72,10 @@ Requires: php-json Requires: php-mbstring Requires: php-posix Requires: php-phar +# PECL is now deprecated +# PIE is designed to replace it +Supplements: php-pear -%if %{without generators} -# Bundled libraries -# License MIT -Provides: bundled(php-composer(composer/ca-bundle)) = 1.5.5 -Provides: bundled(php-composer(composer/class-map-generator)) = 1.5.0 -Provides: bundled(php-composer(composer/composer)) = 2.8.4 -Provides: bundled(php-composer(composer/metadata-minifier)) = 1.0.0 -Provides: bundled(php-composer(composer/pcre)) = 3.3.2 -Provides: bundled(php-composer(composer/semver)) = 3.4.3 -Provides: bundled(php-composer(composer/spdx-licenses)) = 1.5.8 -Provides: bundled(php-composer(composer/xdebug-handler)) = 3.0.5 -Provides: bundled(php-composer(fidry/cpu-core-counter)) = 1.2.0 -Provides: bundled(php-composer(illuminate/container)) = 10.48.25 -Provides: bundled(php-composer(illuminate/contracts)) = 10.48.25 -Provides: bundled(php-composer(justinrainbow/json-schema)) = 5.3.0 -Provides: bundled(php-composer(psr/container)) = 2.0.2 -Provides: bundled(php-composer(psr/log)) = 3.0.2 -Provides: bundled(php-composer(psr/simple-cache)) = 3.0.0 -Provides: bundled(php-composer(react/promise)) = 3.2.0 -Provides: bundled(php-composer(seld/jsonlint)) = 1.11.0 -Provides: bundled(php-composer(seld/phar-utils)) = 1.2.1 -Provides: bundled(php-composer(seld/signal-handler)) = 2.0.2 -Provides: bundled(php-composer(symfony/console)) = 6.4.17 -Provides: bundled(php-composer(symfony/deprecation-contracts)) = 3.5.1 -Provides: bundled(php-composer(symfony/filesystem)) = 6.4.13 -Provides: bundled(php-composer(symfony/finder)) = 6.4.17 -Provides: bundled(php-composer(symfony/polyfill-ctype)) = 1.31.0 -Provides: bundled(php-composer(symfony/polyfill-intl-grapheme)) = 1.31.0 -Provides: bundled(php-composer(symfony/polyfill-intl-normalizer)) = 1.31.0 -Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.31.0 -Provides: bundled(php-composer(symfony/process)) = 6.4.15 -Provides: bundled(php-composer(symfony/service-contracts)) = 3.5.1 -Provides: bundled(php-composer(symfony/string)) = 6.4.15 -Provides: bundled(php-composer(webmozart/assert)) = 1.11.0 - -# Composer library -Provides: php-composer(php/pie) = %{version} -%endif %description PIE (PHP Installer for Extensions). @@ -135,30 +98,6 @@ find . \( -name \*.rpm -o -name \*noxdg -o -name \*nocacert \) -delete -print rm vendor/composer/ca-bundle/res/cacert.pem -: Set version -sed -e 's/@pie_version@/%{upstream_version}%{?upstream_prever}/' -i bin/pie - -%if %{without generators} -: 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-composer(%s)) = %s", $pkg["name"], ltrim($pkg["version"], "v")); - } - foreach($res as $lic => $lib) { - sort($lib); - printf("# License %s\n%s\n", $lic, implode("\n", $lib)); - }' -%endif - %build # Nothing @@ -198,6 +137,46 @@ done %changelog +* Wed Jan 7 2026 Remi Collet - 1.3.5-1 +- update to 1.3.5 + +* Sat Jan 3 2026 Remi Collet - 1.3.4-1 +- update to 1.3.4 + +* Wed Nov 26 2025 Remi Collet - 1.3.0-1 +- update to 1.3.0 + +* Wed Sep 10 2025 Remi Collet - 1.2.1-1 +- update to 1.2.1 +- supplements php-pear + +* Wed Sep 3 2025 Remi Collet - 1.2.0-1 +- update to 1.2.0 + +* Fri Aug 8 2025 Remi Collet - 1.1.0-1 +- update to 1.1.0 + +* Wed Jun 18 2025 Remi Collet - 1.0.0-1 +- update to 1.0.0 + +* Sun May 4 2025 Remi Collet - 0.10.0-1 +- update to 0.10.0 + +* Tue Apr 15 2025 Remi Collet - 0.9.0-2 +- update to 0.9.0 +- add notice about dnf in self-update output +- open https://github.com/php/pie/issues/217 broken bash completion + +* Thu Mar 13 2025 Remi Collet - 0.8.0-1 +- update to 0.8.0 + +* Mon Mar 3 2025 Remi Collet - 0.7.0-1 +- update to 0.7.0 + +* Wed Jan 29 2025 Remi Collet - 0.6.0-1 +- update to 0.6.0 +- always use composer-generators + * Thu Jan 9 2025 Remi Collet - 0.5.0-1 - update to 0.5.0 diff --git a/sources b/sources index bbbc230..e29878f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pie-0.5.0-b6e014b.tgz) = e7f28f1d3bb53340711555e30bf118a6e563a45a3fe06da2a67ebcb65046aa24505ddebfecd73b0a898a8d02a2d6de55545777bcd17d9ff15a30256ffe487b0f +SHA512 (pie-1.3.5-90d6d18.tgz) = 26b76820bfb5faa045cc70c832ef85a3f8dba9f2f8b131a67f813ee99614300889111c9f4a61157266c4e8543cdbe757a89daf535733071c56a05ac254f5b706