diff options
author | Remi Collet <remi@remirepo.net> | 2020-12-22 12:32:52 +0100 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2020-12-22 12:32:52 +0100 |
commit | 297d2a9f27e496e30b67434034d14b2847e51c58 (patch) | |
tree | 52ef1274dd5306b96888f3c33e5e2a75174a0a7b | |
parent | d19368393011b060146dcbfca9a4dc135b9147df (diff) |
move mkmodular to tools
-rwxr-xr-x | mkmodular | 522 |
1 files changed, 0 insertions, 522 deletions
diff --git a/mkmodular b/mkmodular deleted file mode 100755 index 5e9f03dd..00000000 --- a/mkmodular +++ /dev/null @@ -1,522 +0,0 @@ -#!/usr/bin/php -<?php -chdir(__DIR__); - -$template_php = <<< EOT ---- -document: modulemd -version: 2 -data: - name: php - stream: remi-@VERSION@ - version: @DATE@ - context: 00000000 - arch: @ARCH@ - summary: PHP scripting language - description: >- - Alternative php @VERSION@ module. - The remi-@VERSION@ stream provides more recent versions - and more packages than default @VERSION@ stream. - license: - module: - - GPLv2+ - content: - - BSD - - BSD and LGPLv3+ - - PHP - - PHP and BSD - - PHP and LGPLv2 and OpenLDAP - - PHP and LGPLv2+ - - PHP and Zend and BSD and MIT and ASL 1.0 - dependencies: - - buildrequires: - platform: [@DIST@] - requires: -@DEPS@ - references: - documentation: http://php.net/ - tracker: https://bugs.php.net/ - profiles: - common: - rpms: - - php-cli - - php-common - - php-fpm - - php-mbstring - - php-xml - devel: - rpms: - - libzip - - php-cli - - php-common - - php-devel - - php-fpm - - php-mbstring - - php-pear - - php-pecl-zip - - php-process - - php-xml - minimal: - rpms: - - php-cli - - php-common - api: - rpms: - - php-fpm - artifacts: - rpms: -@RPMS@ -... - -EOT; - -$template_phpextras = <<< EOT ---- -document: modulemd -version: 2 -data: - name: php-extras - stream: @VERSION@ - version: @DATE@ - context: 00000000 - arch: @ARCH@ - summary: PHP scripting language - description: >- - Additional package for php @VERSION@ module. - license: - module: - - GPLv2+ - content: - - BSD - - BSD and LGPLv3+ - - PHP - - PHP and BSD - - PHP and LGPLv2 and OpenLDAP - - PHP and LGPLv2+ - - PHP and Zend and BSD and MIT and ASL 1.0 - dependencies: - - buildrequires: - platform: [@DIST@] - requires: -@DEPS@ - references: - documentation: http://php.net/ - tracker: https://bugs.php.net/ - profiles: - common: - rpms: - - php-sodium - artifacts: - rpms: -@RPMS@ -... - -EOT; - -$template_redis = <<< EOT ---- -document: modulemd -version: 2 -data: - name: redis - stream: remi-@VERSION@ - version: @DATE@ - context: 00000000 - arch: @ARCH@ - summary: Redis persistent key-value database - description: >- - Alternative redis @VERSION@ module. - The remi-@VERSION@ stream provides more recent versions - and than default @VERSION@ stream. - license: - module: - - GPLv2+ - content: - - BSD and MIT - - CC-BY-SA - dependencies: - - buildrequires: - platform: [@DIST@] - requires: -@DEPS@ - references: - documentation: https://redis.io/documentation - tracker: https://github.com/redis/redis/issues - profiles: - common: - rpms: - - redis - api: - rpms: - - redis - artifacts: - rpms: -@RPMS@ -... - -EOT; - -$template_glpi = <<< EOT ---- -document: modulemd -version: 2 -data: - name: glpi - stream: @VERSION@ - version: @DATE@ - context: 00000000 - arch: @ARCH@ - summary: Free IT asset management software - description: >- - glpi @VERSION@ module - license: - module: - - GPLv2+ - content: - - GPLv2+ and GPLv3+ and MIT - dependencies: - - buildrequires: - platform: [@DIST@] - requires: -@DEPS@ - references: - documentation: https://glpi-project.org/ - tracker: https://github.com/glpi-project/glpi/issues - profiles: - common: - rpms: - - glpi - api: - rpms: - - glpi - artifacts: - rpms: -@RPMS@ -... - -EOT; - -$template_comp = <<< EOT ---- -document: modulemd -version: 2 -data: - name: composer - stream: @VERSION@ - version: @DATE@ - context: 00000000 - arch: @ARCH@ - summary: Dependency Manager for PHP - description: >- - Composer @VERSION@ module - license: - module: - - MIT - content: - - MIT - dependencies: - - buildrequires: - platform: [@DIST@] - requires: -@DEPS@ - references: - documentation: https://getcomposer.org/ - tracker: https://github.com/composer/composer/issues - profiles: - common: - rpms: - - composer - api: - rpms: - - composer - artifacts: - rpms: -@RPMS@ -... - -EOT; - - -function findPackages($from, $dest, $pat) { - global $oldrpms; - $excl = ['php-amqplib', 'php-jsonlint', 'php-laminas-mime']; - $rpms = []; - foreach (glob("$from/$pat") as $file) { - $info = rpminfo($file); - $name = basename($file); - if (in_array($info['Name'], $excl)) { - continue; - } - if (!file_exists("$dest/$name")) { - if (link($file, "$dest/$name")) { - $k = array_search(basename($file), $oldrpms); - if ($k === false) { - printf("\r\t+ %-70s\n", basename($file)); - } else { - unset($oldrpms[$k]); - } - } - } - $rpms[] = - $info['Name'] . '-' . - ($info['Epoch'] ?? '0') . ':' . - $info['Version'] . '-' . - $info['Release'] . '.' . - $info['Arch']; - } - return $rpms; -} - -function genDefaults($name, $def, Array $vers) { - $meta = "---\n" . - "document: modulemd-defaults\n" . - "version: 1\n" . - "data:\n" . - " module: $name\n"; - if ($def) { - $meta .= " stream: $def\n"; - } - $meta .= " profiles:\n"; - foreach ($vers as $ver) { - $meta .= " $ver: [common]\n"; - } - $meta .= "...\n"; - - return $meta; -} -function genModule($srce, $dest, $pats, $ver, $arch, $deps, $template) { - - $rpms = []; - foreach ((array)$pats as $pat) { - $rpms += findPackages($srce, $dest, $pat); - } - $deptxt = ''; - foreach($deps as $n => $v) { - $deptxt .= ($deptxt ? "\n" : '') . " $n: [$v]"; - } - if (empty($rpms)) { - return ''; - } - $rpmstxt = ''; - foreach($rpms as $rpm) { - $rpmstxt .= ($rpmstxt ? "\n" : '') . " - $rpm"; - } - $mod = str_replace( - ['@VERSION@', '@ARCH@', "@DATE@", "@DIST@", "@DEPS@", '@RPMS@'], - [$ver, $arch, date("YmdHis"), $deps['platform'], $deptxt, $rpmstxt], - $template - ); - return $mod; -} - -function cleanup($dest) { - global $oldrpms; - - $oldrpms = array(); - foreach (glob("$dest/*rpm") as $file) { - unlink($file); - $oldrpms[] = basename($file); - } -} - -function createRepo($dest, $mod) { -chdir($dest); - -exec("mkrepo nocheck noclean"); -$data = '/tmp/modules.yaml'; -file_put_contents($data, $mod); -$hash = hash('sha256', $mod); -exec("modifyrepo_c --mdtype=modules $data repodata >/dev/null"); -$arch = basename($dest); -rename($data, "$data.$arch"); - -chdir(__DIR__); -} - -if (count($_SERVER['argv']) > 1 && in_array('f30', $_SERVER['argv'])) { - $dest = 'fedora/30/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f30']; - $mod = genModule('fedora/30/remi/x86_64', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/30/php74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', 'remi-7.3', ['remi-7.3', 'remi-7.4']); - $mod .= genModule('fedora/30/glpi93/x86_64', $dest, '*.rpm', '9.3', 'x86_64', $deps, $template_glpi); - $mod .= genModule('fedora/30/glpi94/x86_64', $dest, '*.rpm', '9.4', 'x86_64', $deps, $template_glpi); - $mod .= genDefaults('glpi', '9.4', ['9.3', '9.4']); - createRepo($dest, $mod); - - $dest = 'fedora/30/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f30']; - $mod = genModule('fedora/30/test/x86_64', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/30/test74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); - - $dest = 'fedora/30/modular/i386'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f30']; - $mod = genModule('fedora/30/remi/i386', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'i386', $deps, $template_php); - $mod .= genModule('fedora/30/php74/i386', $dest, '*.rpm', '7.4', 'i386', $deps, $template_php); - $mod .= genDefaults('php', 'remi-7.3', ['remi-7.3', 'remi-7.4']); - $mod .= genModule('fedora/30/glpi93/i386', $dest, '*.rpm', '9.3', 'i386', $deps, $template_glpi); - $mod .= genModule('fedora/30/glpi94/i386', $dest, '*.rpm', '9.4', 'i386', $deps, $template_glpi); - $mod .= genDefaults('glpi', '9.4', ['9.3', '9.4']); - createRepo($dest, $mod); - - $dest = 'fedora/30/modular-test/i386'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f30']; - $mod = genModule('fedora/30/test/i386', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'i386', $deps, $template_php); - $mod .= genModule('fedora/30/test74/i386', $dest, '*.rpm', '7.4', 'i386', $deps, $template_php); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) < 2 || in_array('f31', $_SERVER['argv'])) { - $dest = 'fedora/31/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f31']; - $mod = genModule('fedora/31/remi/x86_64', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/31/php74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/31/php80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', 'remi-7.3', ['remi-7.3', 'remi-7.4', 'remi-8.0']); - $mod .= genModule('fedora/31/glpi93/x86_64', $dest, '*.rpm', '9.3', 'x86_64', $deps, $template_glpi); - $mod .= genModule('fedora/31/glpi94/x86_64', $dest, '*.rpm', '9.4', 'x86_64', $deps, $template_glpi); - $mod .= genDefaults('glpi', '9.4', ['9.3', '9.4']); - createRepo($dest, $mod); - - $dest = 'fedora/31/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f31']; - $mod = genModule('fedora/31/test/x86_64', $dest, ['unit-php*rpm', 'php-*7.3*.rpm'], '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/31/test74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/31/test80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) < 2 || in_array('f32', $_SERVER['argv'])) { - $dest = 'fedora/32/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f32']; - $mod = genModule('fedora/32/remi/x86_64', $dest, ['unit-php*rpm', 'php-*7.4*.rpm'], '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/32/php80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', 'remi-7.4', ['remi-7.4', 'remi-8.0']); - createRepo($dest, $mod); - - $dest = 'fedora/32/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f32']; - $mod = genModule('fedora/32/test/x86_64', $dest, ['unit-php*rpm', 'php-*7.4*.rpm'], '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/32/test80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) < 2 || in_array('f33', $_SERVER['argv'])) { - $dest = 'fedora/33/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f33']; - $mod = genModule('fedora/33/remi/x86_64', $dest, ['unit-php*rpm', 'php-*7.4*.rpm'], '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/33/php80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', 'remi-7.4', ['remi-7.4', 'remi-8.0']); - createRepo($dest, $mod); - - $dest = 'fedora/33/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'f33']; - $mod = genModule('fedora/33/test/x86_64', $dest, ['unit-php*rpm', 'php-*7.4*.rpm'], '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('fedora/33/test80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) < 2 || in_array('el8', $_SERVER['argv'])) { - $dest = 'enterprise/8/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'el8']; - $mod = genModule('enterprise/8/test72/x86_64', $dest, '*.rpm', '7.2', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/test73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/test74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/test80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); - - $dest = 'enterprise/8/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'el8']; - $mod = genModule('enterprise/8/php72/x86_64', $dest, '*.rpm', '7.2', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/php73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/php74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/8/php80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', '7.2', ['remi-7.2', 'remi-7.3', 'remi-7.4', 'remi-8.0']); - $deps = ['platform' => 'el8']; - $mod .= genModule('enterprise/8/redis50/x86_64', $dest, 'redis*.rpm', '5.0', 'x86_64', $deps, $template_redis); - $mod .= genModule('enterprise/8/redis60/x86_64', $dest, 'redis*.rpm', '6.0', 'x86_64', $deps, $template_redis); - $mod .= genModule('enterprise/8/redis62/x86_64', $dest, 'redis*.rpm', '6.2', 'x86_64', $deps, $template_redis); - $mod .= genDefaults('redis', '5', ['remi-5.0', 'remi-6.0', 'remi-6.2']); - $deps = ['platform' => 'el8', 'php' => '']; - $mod .= genModule('enterprise/8/glpi93/x86_64', $dest, '*.rpm', '9.3', 'x86_64', $deps, $template_glpi); - $mod .= genModule('enterprise/8/glpi94/x86_64', $dest, '*.rpm', '9.4', 'x86_64', $deps, $template_glpi); - $mod .= genDefaults('glpi', '9.4', ['9.3', '9.4']); - $deps = ['platform' => 'el8', 'php' => '']; - $mod .= genModule('enterprise/8/composer1/x86_64', $dest, '*.rpm', '1', 'x86_64', $deps, $template_comp); - $mod .= genModule('enterprise/8/composer2/x86_64', $dest, '*.rpm', '2', 'x86_64', $deps, $template_comp); - $mod .= genDefaults('composer', '2', ['1', '2']); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) > 1 && in_array('epel', $_SERVER['argv'])) { - $dest = 'temp/epel-8-modular'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'el8', 'php' => '7.2']; - $mod = genModule('temp/epel-8-php-7.2', $dest, '*.rpm', '7.2', 'x86_64', $deps, $template_phpextras); - $deps = ['platform' => 'el8', 'php' => '7.3']; - $mod .= genModule('temp/epel-8-php-7.3', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_phpextras); - $deps = ['platform' => 'el8', 'php' => '7.4']; - $mod .= genModule('temp/epel-8-php-7.4', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_phpextras); - $mod .= genDefaults('php-extras', '7.2', ['7.2', '7.3', '7.4']); - createRepo($dest, $mod); -} - -if (count($_SERVER['argv']) < 2 || in_array('el7', $_SERVER['argv'])) { - $dest = 'enterprise/7/modular-test/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'el7']; - $mod = genModule('enterprise/7/test71/x86_64', $dest, '*.rpm', '7.1', 'x86_64', $deps, $template_php); - $mod = genModule('enterprise/7/test72/x86_64', $dest, '*.rpm', '7.2', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/test73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/test74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/test80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - createRepo($dest, $mod); - - $dest = 'enterprise/7/modular/x86_64'; - echo "Populate $dest\n"; - cleanup($dest); - $deps = ['platform' => 'el7']; - $mod = genModule('enterprise/7/php71/x86_64', $dest, '*.rpm', '7.1', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/php72/x86_64', $dest, '*.rpm', '7.2', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/php73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/php74/x86_64', $dest, '*.rpm', '7.4', 'x86_64', $deps, $template_php); - $mod .= genModule('enterprise/7/php80/x86_64', $dest, '*.rpm', '8.0', 'x86_64', $deps, $template_php); - $mod .= genDefaults('php', '7.2', ['remi-7.1', 'remi-7.2', 'remi-7.3', 'remi-7.4']); - $mod .= genModule('enterprise/7/remi/x86_64', $dest, 'redis*5.0*.rpm', '5.0', 'x86_64', $deps, $template_redis); - $mod .= genModule('enterprise/7/remi/x86_64', $dest, 'redis*6.0*.rpm', '6.0', 'x86_64', $deps, $template_redis); - $mod .= genDefaults('redis', '5', ['remi-5.0', 'remi-6.0']); - $deps = ['platform' => 'el7', 'php' => '']; - $mod .= genModule('enterprise/7/glpi92/x86_64', $dest, '*.rpm', '9.2', 'x86_64', $deps, $template_glpi); - $mod .= genModule('enterprise/7/glpi93/x86_64', $dest, '*.rpm', '9.3', 'x86_64', $deps, $template_glpi); - $mod .= genModule('enterprise/7/glpi94/x86_64', $dest, '*.rpm', '9.4', 'x86_64', $deps, $template_glpi); - $mod .= genDefaults('glpi', '9.4', ['9.2', '9.3', '9.4']); - createRepo($dest, $mod); -} -echo "Done\n"; |