diff --git a/composer-bash-completion b/composer-bash-completion index 0b6447f..7a9b48d 100644 --- a/composer-bash-completion +++ b/composer-bash-completion @@ -25,7 +25,7 @@ _sf_composer() { local cur prev words cword _get_comp_words_by_ref -n := cur prev words cword - local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S2.9.3") + local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S2.8.2") for w in ${words[@]}; do w=$(printf -- '%b' "$w") # remove quotes from typed values diff --git a/composer-rpm.patch b/composer-rpm.patch index 7323225..fdc97ac 100644 --- a/composer-rpm.patch +++ b/composer-rpm.patch @@ -39,7 +39,7 @@ diff -up ./vendor/composer/ca-bundle/src/CaBundle.php.rpm ./vendor/composer/ca-b public static function getBundledCaBundlePath() { - $caBundleFile = __DIR__.'/../res/cacert.pem'; -+ $caBundleFile = '/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'; // System CA, always ++ $caBundleFile = '/etc/pki/tls/certs/ca-bundle.crt'; // System CA, always // cURL does not understand 'phar://' paths // see https://github.com/composer/ca-bundle/issues/10 diff --git a/composer.spec b/composer.spec index f6de2ad..686d432 100644 --- a/composer.spec +++ b/composer.spec @@ -1,22 +1,24 @@ # remirepo/fedora spec file for composer # -# SPDX-FileCopyrightText: Copyright 2015-2025 Remi Collet -# SPDX-License-Identifier: CECILL-2.1 -# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +# Copyright (c) 2015-2024 Remi Collet +# License: CC-BY-SA-4.0 +# http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # -%global gh_commit fb3bee27676fd852a8a11ebbb1de19b4dada5aba +%bcond_with generators + +%global gh_commit 2a7c71266b2545a3bed9f4860734081963f6e688 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_branch 2.0-dev %global gh_owner composer %global gh_project composer -%global api_version 2.9.0 +%global api_version 2.6.0 %global run_version 2.2.2 -%global upstream_version 2.9.3 +%global upstream_version 2.8.3 #global upstream_prever RC1 #global upstream_lower rc1 @@ -52,54 +54,51 @@ BuildRequires: php(language) >= 7.2.5 BuildRequires: php-cli BuildRequires: php-json BuildRequires: pkgconfig(bash-completion) +%if %{with generators} BuildRequires: composer-generators +%endif # From composer.json, "require": { # "php": "^7.2.5 || ^8.0", -# "ext-json": "*", -# "composer/ca-bundle": "^1.5", -# "composer/class-map-generator": "^1.4.0", +# "composer/ca-bundle": "^1.0", # "composer/metadata-minifier": "^1.0", -# "composer/semver": "^3.3", -# "composer/spdx-licenses": "^1.5.7", +# "composer/semver": "^3.0", +# "composer/spdx-licenses": "^1.2", # "composer/xdebug-handler": "^2.0.2 || ^3.0.3", -# "justinrainbow/json-schema": "^6.5.1", -# "psr/log": "^1.0 || ^2.0 || ^3.0", -# "seld/jsonlint": "^1.4", +# "justinrainbow/json-schema": "^5.2.11", +# "psr/log": "^1.0 || ^2.0 || ^3.0" +# "seld/jsonlint": "~1.4", # "seld/phar-utils": "^1.2", -# "symfony/console": "^5.4.47 || ^6.4.25 || ^7.1.10 || ^8.0", -# "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.1.10 || ^8.0", -# "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.1.10 || ^8.0", -# "symfony/process": "^5.4.47 || ^6.4.25 || ^7.1.10 || ^8.0", -# "react/promise": "^3.3", -# "composer/pcre": "^2.3 || ^3.3", +# "symfony/console": "^5.4.1 || ^6.0", +# "symfony/filesystem": "^5.4 || ^6.0", +# "symfony/finder": "^5.4 || ^6.0", +# "symfony/process": "^5.4 || ^6.0", +# "react/promise": "^2.8", +# "composer/pcre": "^2 || ^3" # "symfony/polyfill-php73": "^1.24", -# "symfony/polyfill-php80": "^1.24", -# "symfony/polyfill-php81": "^1.24", -# "seld/signal-handler": "^2.0" +# "symfony/polyfill-php80": "^1.24" Requires: php(language) >= 7.2.5 -Requires: php-json Requires: php-cli # System certificates -Requires: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem +Requires: ca-certificates # From composer.json, suggest -# "ext-curl": "Provides HTTP support (will fallback to PHP streams if missing)", -# "ext-openssl": "Enables access to repositories and packages over HTTPS", -# "ext-zip": "Allows direct extraction of ZIP archives (unzip/7z binaries will be used instead if available)", -# "ext-zlib": "Enables gzip for HTTP requests" -Requires: php-curl +# "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", +# "ext-zip": "Enabling the zip extension allows you to unzip archives", +# "ext-zlib": "Allow gzip compression of HTTP requests" Requires: php-openssl Requires: php-zip Requires: php-zlib # From phpcompatinfo for version 2.2.5 Requires: php-ctype +Requires: php-curl Requires: php-date Requires: php-dom Requires: php-filter Requires: php-hash Requires: php-iconv Requires: php-intl +Requires: php-json Requires: php-libxml Requires: php-mbstring Requires: php-pcntl @@ -112,14 +111,44 @@ Requires: php-tokenizer Requires: php-xsl Requires: php-zlib +# Bundled libraries +%if %{without generators} +# License MIT +Provides: bundled(php-composer(composer/ca-bundle)) = 1.5.3 +Provides: bundled(php-composer(composer/class-map-generator)) = 1.4.0 +Provides: bundled(php-composer(composer/metadata-minifier)) = 1.0.0 +Provides: bundled(php-composer(composer/pcre)) = 2.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(justinrainbow/json-schema)) = 5.3.0 +Provides: bundled(php-composer(psr/container)) = 1.1.1 +Provides: bundled(php-composer(psr/log)) = 1.1.4 +Provides: bundled(php-composer(react/promise)) = v3.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)) = v5.4.47 +Provides: bundled(php-composer(symfony/deprecation-contracts)) = v2.5.3 +Provides: bundled(php-composer(symfony/filesystem)) = v5.4.45 +Provides: bundled(php-composer(symfony/finder)) = v5.4.45 +Provides: bundled(php-composer(symfony/polyfill-ctype)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-intl-grapheme)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-intl-normalizer)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-mbstring)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-php73)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-php80)) = v1.31.0 +Provides: bundled(php-composer(symfony/polyfill-php81)) = v1.31.0 +Provides: bundled(php-composer(symfony/process)) = v5.4.47 +Provides: bundled(php-composer(symfony/service-contracts)) = v2.5.3 +Provides: bundled(php-composer(symfony/string)) = v5.4.47 +# Composer library +Provides: php-composer(composer/composer) = %{version} +%endif # Special internal for Plugin API Provides: php-composer(composer-plugin-api) = %{api_version} Provides: php-composer(composer-runtime-api) = %{run_version} -# PEAR is now deprecated -# composer is designed to replace it -Supplements: php-pear - %description Composer helps you declare, manage and install dependencies of PHP projects, @@ -137,6 +166,28 @@ find . \( -name \*.rpm -o -name \*noxdg \) -delete -print rm vendor/composer/ca-bundle/res/cacert.pem +%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"], $pkg["version"]); + } + foreach($res as $lic => $lib) { + sort($lib); + printf("# License %s\n%s\n", $lic, implode("\n", $lib)); + } +' +%endif + : fix reported version sed -e '/BRANCH_ALIAS_VERSION/s/@package_branch_alias_version@//' \ -i src/Composer/Composer.php @@ -214,49 +265,6 @@ php -r ' %changelog -* Wed Dec 31 2025 Remi Collet - 2.9.3-1 -- update to 2.9.3 - -* Thu Nov 20 2025 Remi Collet - 2.9.2-1 -- update to 2.9.2 - -* Thu Nov 13 2025 Remi Collet - 2.9.1-1 -- update to 2.9.1 - -* Thu Nov 13 2025 Remi Collet - 2.9.0-1 -- update to 2.9.0 - -* Fri Sep 19 2025 Remi Collet - 2.8.12-1 -- update to 2.8.12 - -* Wed Aug 27 2025 Remi Collet - 2.8.11-1 -- update to 2.8.11 - -* Wed Jul 23 2025 Fedora Release Engineering - 2.8.10-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri Jul 11 2025 Remi Collet - 2.8.10-1 -- update to 2.8.10 - -* Tue May 13 2025 Remi Collet - 2.8.9-1 -- update to 2.8.9 - -* Sat Apr 5 2025 Remi Collet - 2.8.8-1 -- update to 2.8.8 - -* Tue Feb 25 2025 Remi Collet - 2.8.6-1 -- update to 2.8.6 - -* Tue Jan 21 2025 Remi Collet - 2.8.5-1 -- update to 2.8.5 - -* Thu Jan 16 2025 Fedora Release Engineering - 2.8.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Dec 11 2024 Remi Collet - 2.8.4-1 -- update to 2.8.4 -- re-license spec file to CECILL-2.1 - * Mon Nov 18 2024 Remi Collet - 2.8.3-1 - update to 2.8.3 @@ -267,21 +275,12 @@ php -r ' - update to 2.8.2 - fix diagnose command -* Fri Oct 4 2024 Remi Collet - 2.8.1-1 -- update to 2.8.1 - -* Thu Oct 3 2024 Remi Collet - 2.8.0-1 -- update to 2.8.0 - * Wed Sep 4 2024 Remi Collet - 2.7.9-1 - update to 2.7.9 * Fri Aug 23 2024 Remi Collet - 2.7.8-1 - update to 2.7.8 -* Wed Jul 17 2024 Fedora Release Engineering - 2.7.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - * Tue Jun 11 2024 Remi Collet - 2.7.7-1 - update to 2.7.7 @@ -297,12 +296,6 @@ php -r ' * Sat Feb 10 2024 Remi Collet - 2.7.1-1 - update to 2.7.1 -* Wed Jan 24 2024 Fedora Release Engineering - 2.6.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 2.6.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - * Sat Dec 9 2023 Remi Collet - 2.6.6-1 - update to 2.6.6 diff --git a/sources b/sources index 05fc8e8..ec9255c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (composer-2.9.3-fb3bee2.tgz) = b8f9a7bc73a7b765f113a22308e2b4b35c14ebfadadc57047a37f210be4099a49abc72c85c5c9ce200baa3e63ad0c1a97da744277ca1da948b419af40379658c +SHA512 (composer-2.8.3-2a7c712.tgz) = 3fa1687527d531cb83f1f269825ca8d213f59990532542f08021f6bcdb6d56539ac874810e609f541f12e19c26541a44c98f9d39a3757056f2f1c80a4356159e