diff --git a/.gitignore b/.gitignore
index 73a3e4e..907e518 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,13 @@
/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
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..e0a2703 100644
--- a/pie-noxdg.patch
+++ b/pie-noxdg.patch
@@ -1,7 +1,21 @@
+diff -up ./src/Platform.php.noxdg ./src/Platform.php
+--- ./src/Platform.php.noxdg 2025-08-29 11:49:32.251927241 +0200
++++ ./src/Platform.php 2025-08-29 11:50:18.737674445 +0200
+@@ -37,6 +37,10 @@ class Platform
+
+ private static function useXdg(): bool
+ {
++ // As XDG is very partially implemented
++ // resulting in command/code in ~/.config
++ return false;
++
+ foreach (array_keys($_SERVER) as $key) {
+ /** @psalm-suppress RedundantCastGivenDocblockType */
+ if (strpos((string) $key, 'XDG_') === 0) {
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
+--- ./vendor/composer/composer/src/Composer/Factory.php.noxdg 2025-08-21 11:29:39.000000000 +0200
++++ ./vendor/composer/composer/src/Composer/Factory.php 2025-08-29 11:49:32.251858889 +0200
+@@ -707,6 +707,10 @@ class Factory
private static function useXdg(): bool
{
@@ -12,17 +26,3 @@ 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
- {
- private static function useXdg(): bool
- {
-+ // As XDG is very partially implemented
-+ // resulting in command/code in ~/.config
-+ return false;
-+
- foreach (array_keys($_SERVER) as $key) {
- /** @psalm-suppress RedundantCastGivenDocblockType */
- if (strpos((string) $key, 'XDG_') === 0) {
diff --git a/pie-rpm.patch b/pie-rpm.patch
index e73d0ab..8203644 100644
--- a/pie-rpm.patch
+++ b/pie-rpm.patch
@@ -1,8 +1,8 @@
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-08-29 11:47:51.021892397 +0200
++++ ./bin/pie 2025-08-29 11:48:46.211987817 +0200
+@@ -27,7 +27,7 @@ use Symfony\Component\EventDispatcher\Ev
+ error_reporting(error_reporting() & ~E_DEPRECATED);
/** @psalm-suppress UnresolvableInclude */
-include $_composer_autoload_path ?? __DIR__ . '/../vendor/autoload.php';
@@ -10,3 +10,25 @@ diff -up ./bin/pie.rpm ./bin/pie
$container = Container::factory();
+diff -up ./src/Command/SelfUpdateCommand.php.rpm ./src/Command/SelfUpdateCommand.php
+--- ./src/Command/SelfUpdateCommand.php.rpm 2025-08-29 11:47:45.000000000 +0200
++++ ./src/Command/SelfUpdateCommand.php 2025-08-29 11:47:51.022050330 +0200
+@@ -65,6 +65,7 @@ final class SelfUpdateCommand extends Co
+ {
+ if (! PieVersion::isPharBuild()) {
+ $output->writeln('Aborting! You are not running a PHAR, cannot self-update.');
++ $output->writeln('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-08-29 11:47:45.000000000 +0200
++++ ./src/Command/SelfVerifyCommand.php 2025-08-29 11:47:51.022201509 +0200
+@@ -51,6 +51,7 @@ final class SelfVerifyCommand extends Co
+ {
+ if (! PieVersion::isPharBuild()) {
+ $output->writeln('Aborting! You are not running a PHAR, cannot self-verify.');
++ $output->writeln('Verify the pie RPM using the package manager (rpm).');
+
+ return Command::FAILURE;
+ }
diff --git a/pie.spec b/pie.spec
index 230d027..7dc20e0 100644
--- a/pie.spec
+++ b/pie.spec
@@ -1,31 +1,28 @@
# remirepo/fedora spec file for pie
#
-# SPDX-FileCopyrightText: Copyright 2024 Remi Collet
+# SPDX-FileCopyrightText: Copyright 2024-2025 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 8288fd6ed643c9fa8422a7a9b49cecd60bf444be
%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.2.1
+#global upstream_prever RC1
%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
@@ -39,6 +36,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 +50,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 +59,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 +70,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).
@@ -138,27 +99,6 @@ 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 +138,37 @@ done
%changelog
+* 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..6687b84 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pie-0.5.0-b6e014b.tgz) = e7f28f1d3bb53340711555e30bf118a6e563a45a3fe06da2a67ebcb65046aa24505ddebfecd73b0a898a8d02a2d6de55545777bcd17d9ff15a30256ffe487b0f
+SHA512 (pie-1.2.1-8288fd6.tgz) = e97e72ac583a00dd9047f95938554d24150c980cf5f34502876916db6ecef79f79abcdcbbdf8304274841f677309fbfb5ef67585c80fd79ca9eb775450dd5929