summaryrefslogtreecommitdiffstats
path: root/mkmodular
diff options
context:
space:
mode:
Diffstat (limited to 'mkmodular')
-rwxr-xr-xmkmodular389
1 files changed, 0 insertions, 389 deletions
diff --git a/mkmodular b/mkmodular
deleted file mode 100755
index a5cdf1d8..00000000
--- a/mkmodular
+++ /dev/null
@@ -1,389 +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-json
- - php-mbstring
- - php-xml
- devel:
- rpms:
- - libzip
- - php-cli
- - php-common
- - php-devel
- - php-fpm
- - php-json
- - php-mbstring
- - php-pear
- - php-pecl-zip
- - php-process
- - php-xml
- minimal:
- rpms:
- - php-cli
- - php-common
- api:
- rpms:
- - php-fpm
- artifacts:
- 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/antirez/redis/issues
- profiles:
- common:
- rpms:
- - redis
- api:
- rpms:
- - redis
- artifacts:
- 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:
-
-EOT;
-
-$defaults = <<< EOT
----
-document: modulemd-defaults
-version: 1
-data:
- module: php
- profiles:
- remi-7.1: [common]
- remi-7.2: [common]
- remi-7.3: [common]
-...
----
-document: modulemd-defaults
-version: 1
-data:
- module: glpi
- profiles:
- 9.2: [common]
- 9.3: [common]
- 9.4: [common]
-...
----
-document: modulemd-defaults
-version: 1
-data:
- module: redis
- profiles:
- remi-5.0: [common]
-...
-
-EOT;
-
-function findPackages($from, $dest, $pat) {
- global $oldrpms;
- $rpms = [];
- foreach (glob("$from/$pat") as $file) {
- $info = rpminfo($file);
- $name = basename($file);
- 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 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]";
- }
- $mod = str_replace(
- ['@VERSION@', '@ARCH@', "@DATE@", "@DIST@", "@DEPS@"],
- [$ver, $arch, date("YmdHis"), $deps['platform'], $deptxt],
- $template
- );
- foreach($rpms as $rpm) {
- $mod .= " - $rpm\n";
- }
- $mod .= "...\n";
- 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']) < 2 || in_array('f29', $_SERVER['argv'])) {
- $dest = 'fedora/29/modular/x86_64';
- echo "Populate $dest\n";
- cleanup($dest);
- $deps = ['platform' => 'f29'];
- $mod = genModule('fedora/29/remi/x86_64', $dest, ['unit-php*rpm', 'php-*7.2*.rpm'], '7.2', 'x86_64', $deps, $template_php);
- $mod .= genModule('fedora/29/php73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php);
- $mod .= genModule('fedora/29/glpi92/x86_64', $dest, '*.rpm', '9.2', 'x86_64', $deps, $template_glpi);
- $mod .= genModule('fedora/29/glpi93/x86_64', $dest, '*.rpm', '9.3', 'x86_64', $deps, $template_glpi);
- $mod .= genModule('fedora/29/glpi94/x86_64', $dest, '*.rpm', '9.4', 'x86_64', $deps, $template_glpi);
- $mod .= $defaults;
- createRepo($dest, $mod);
-
- $dest = 'fedora/29/modular-test/x86_64';
- echo "Populate $dest\n";
- cleanup($dest);
- $deps = ['platform' => 'f29'];
- $mod = genModule('fedora/29/test/x86_64', $dest, ['unit-php*rpm', 'php-*7.2*.rpm'], '7.2', 'x86_64', $deps, $template_php);
- $mod .= genModule('fedora/29/test73/x86_64', $dest, '*.rpm', '7.3', 'x86_64', $deps, $template_php);
- $mod .= $defaults;
- createRepo($dest, $mod);
-
- $dest = 'fedora/29/modular/i386';
- echo "Populate $dest\n";
- cleanup($dest);
- $deps = ['platform' => 'f29'];
- $mod = genModule('fedora/29/remi/i386', $dest, ['unit-php*rpm', 'php-*7.2*.rpm'], '7.2', 'i386', $deps, $template_php);
- $mod .= genModule('fedora/29/php73/i386', $dest, '*.rpm', '7.3', 'i386', $deps, $template_php);
- $mod .= genModule('fedora/29/glpi92/i386', $dest, '*.rpm', '9.2', 'i386', $deps, $template_glpi);
- $mod .= genModule('fedora/29/glpi93/i386', $dest, '*.rpm', '9.3', 'i386', $deps, $template_glpi);
- $mod .= genModule('fedora/29/glpi94/i386', $dest, '*.rpm', '9.4', 'i386', $deps, $template_glpi);
- $mod .= $defaults;
- createRepo($dest, $mod);
-
- $dest = 'fedora/29/modular-test/i386';
- echo "Populate $dest\n";
- cleanup($dest);
- $deps = ['platform' => 'f29'];
- $mod = genModule('fedora/29/test/i386', $dest, ['unit-php*rpm', 'php-*7.2*.rpm'], '7.2', 'i386', $deps, $template_php);
- $mod .= genModule('fedora/29/test73/i386', $dest, '*.rpm', '7.3', 'i386', $deps, $template_php);
- $mod .= $defaults;
- createRepo($dest, $mod);
-}
-
-if (count($_SERVER['argv']) < 2 || 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/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 .= $defaults;
- 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 .= $defaults;
- 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/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 .= $defaults;
- 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 .= $defaults;
- 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', 'nginx' => '1.14', 'httpd' => '2.4'];
- $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 .= $defaults;
- createRepo($dest, $mod);
-
- $dest = 'enterprise/8/modular/x86_64';
- echo "Populate $dest\n";
- cleanup($dest);
- $deps = ['platform' => 'el8', 'nginx' => '1.14', 'httpd' => '2.4'];
- $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/remi/x86_64', $dest, 'redis*.rpm', '5.0', 'x86_64', $deps, $template_redis);
- $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 .= $defaults;
- 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 .= $defaults;
- 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/remi/x86_64', $dest, 'redis*.rpm', '5.0', 'x86_64', $deps, $template_redis);
- $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 .= $defaults;
- createRepo($dest, $mod);
-}
-echo "Done\n";