diff options
author | Remi Collet <remi@remirepo.net> | 2025-02-04 09:44:22 +0100 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2025-02-04 09:44:22 +0100 |
commit | b5bd2e8183256fbc87bc1934157c3d0389266049 (patch) | |
tree | f56a16e82317e8bf73b087ce36b49fa7f3ffedd8 | |
parent | 139345d0093e3677a2a0fe862cdf02b83c043dab (diff) |
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | composer-generators.spec | 7 | ||||
-rwxr-xr-x | composer.prov | 43 |
3 files changed, 40 insertions, 15 deletions
@@ -1,6 +1,11 @@ composer-generators Release Notes ================================= +# Version 0.1.2 - 2025-02-04 + +* provide bundled library without version + when version is not valid + # Version 0.1.1 - 2024-12-30 * remove 'v' in version number diff --git a/composer-generators.spec b/composer-generators.spec index 8e6d5b8..1e785c0 100644 --- a/composer-generators.spec +++ b/composer-generators.spec @@ -1,6 +1,6 @@ # remirepo/fedora spec file for composer-generators # -# Copyright (c) 2024 Remi Collet +# Copyright (c) 2024-2025 Remi Collet # License: GPL-2.0-or-later # https://www.gnu.org/licenses/gpl-2.0.en.html # @@ -8,7 +8,7 @@ # Name: composer-generators -Version: 0.1.1 +Version: 0.1.2 Release: 1%{?dist} # Use same license than RPM License: GPL-2.0-or-later @@ -59,6 +59,9 @@ install -Dpm 644 composer.attr %{buildroot}%{_fileattrsdir}/composer.attr %changelog +* Tue Feb 4 2025 Remi Collet <remi@remirepo.net> - 0.1.2-1 +- version 0.1.2 + * Mon Dec 30 2024 Remi Collet <remi@remirepo.net> - 0.1.1-1 - version 0.1.1 diff --git a/composer.prov b/composer.prov index d8bb84d..4d92e5e 100755 --- a/composer.prov +++ b/composer.prov @@ -4,7 +4,7 @@ Use this script to generate bundled provides, e.g.: ./composer.prov vendor/composer/installed.php - Copyright (C) 2024 Remi Collet <remi@fedoraproject.org>. + Copyright (C) 2024-2025 Remi Collet <remi@fedoraproject.org>. SPDX-3.0-License-Identifier: GPL-2.0-or-later @@ -15,18 +15,30 @@ <https://www.gnu.org/philosophy/free-sw.en.html>. */ -// Check if composer "pretty_version" is usable in RPM -function isValid(Array $package) { - if (!isset($package['pretty_version']) - || empty($package['pretty_version']) - || strpos($package['pretty_version'], '-') +// Check if composer "name" and "pretty_version" are usable in RPM +function isValid(Array $package, $strict=true) { + // Only vendor/project + if (!isset($package['name']) + || !strpos($package['name'], '/') ) { return false; } + // pretty_version is required + if (!isset($package['pretty_version'])) { + return false; + } + if ($strict) { + // pretty_version is usable + if (empty($package['pretty_version']) + || strpos($package['pretty_version'], '-') + ) { + return false; + } + } return true; } -// Clean"pretty_version" +// Clean "pretty_version" function getVersion(Array $package) { return ltrim($package['pretty_version'], 'v'); } @@ -36,15 +48,20 @@ function run($file) { fputs(STDERR, "Search bundled libraries installed, parsing $file\n"); $installed = include $file; $main = false; - if (isset($installed['root']['name']) - && isValid($installed['root'])) { - + if (isValid($installed['root'], false)) { $main = $installed['root']['name']; - printf("php-composer(%s) = %s\n", $installed['root']['name'], getVersion($installed['root'])); + if (isValid($installed['root'])) { + printf("php-composer(%s) = %s\n", $main, getVersion($installed['root'])); + } } if (isset($installed['versions'])) foreach($installed['versions'] as $name => $v) { - if ($name !== $main && isValid($v)) { - printf("bundled(php-composer(%s)) = %s\n", $name, getVersion($v)); + if ($name !== $main) { + $v['name'] = $name; + if (isValid($v)) { + printf("bundled(php-composer(%s)) = %s\n", $name, getVersion($v)); + } else if (isValid($v, false)) { + printf("bundled(php-composer(%s))\n", $name); + } } } } |