Trying to add PHP 8.3.6 RPMs to my local repo using

I’ve cobbled together the PHP 8.3.6 RPMs I need for my kickstart installation from Remi using dnf --downloadonly, but as I’m learning, these are modular RPMs and using my createrepo command:

createrepo -u “http://172.31.255.5/ks” -g /var/www/html/ks/build/rocky9-PHP8.3.xml /var/www/html/ks

is apparently not including the metadata for the modular PHP 8.3 Remi rpms I’ve added. I’d really like the build to include all the packages required and not have to pull them from remi each time.

Here is the anaconda log error:

anaconda 34.25.3.8 exception report
Traceback (most recent call first):
File “/usr/lib64/python3.9/site-packages/pyanaconda/payload/dnf/payload.py”, line 910, in install
raise PayloadError(msg)
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation_tasks.py”, line 458, in run_task
self._task(*self._task_args, **self._task_kwargs)
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation_tasks.py”, line 496, in start
self.run_task()
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation_tasks.py”, line 311, in start
item.start()
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation_tasks.py”, line 311, in start
item.start()
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation_tasks.py”, line 311, in start
item.start()
File “/usr/lib64/python3.9/site-packages/pyanaconda/installation.py”, line 399, in run_installation
queue.start()
File “/usr/lib64/python3.9/threading.py”, line 917, in run
self._target(*self._args, **self._kwargs)
File “/usr/lib64/python3.9/site-packages/pyanaconda/threading.py”, line 275, in run
threading.Thread.run(self)
pyanaconda.payload.errors.PayloadError: Payload error - DNF installation has ended up abruptly: No available modular metadata for modular packageTraceback (most recent call last):
File “/usr/lib64/python3.9/site-packages/pyanaconda/payload/dnf/utils.py”, line 105, in do_transaction
base.do_transaction(display=display)
File “/usr/lib/python3.9/site-packages/dnf/base.py”, line 977, in do_transaction
self.transaction._populate_rpm_ts(self._ts)
File “/usr/lib/python3.9/site-packages/dnf/db/group.py”, line 361, in populate_rpm_ts
raise dnf.exceptions.Error(
(“No available modular metadata for modular package”))
dnf.exceptions.Error: No available modular metadata for modular package

packaging.log:
packaging.log:20:31:57,527 CRT dnf: No available modular metadata for modular package ‘php-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,528 CRT dnf: No available modular metadata for modular package ‘php-cli-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,528 CRT dnf: No available modular metadata for modular package ‘php-common-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,528 CRT dnf: No available modular metadata for modular package ‘php-fpm-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,529 CRT dnf: No available modular metadata for modular package ‘php-intl-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,529 CRT dnf: No available modular metadata for modular package ‘php-ldap-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,529 CRT dnf: No available modular metadata for modular package ‘php-mbstring-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,529 CRT dnf: No available modular metadata for modular package ‘php-mysqlnd-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,530 CRT dnf: No available modular metadata for modular package ‘php-opcache-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,530 CRT dnf: No available modular metadata for modular package ‘php-pdo-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,530 CRT dnf: No available modular metadata for modular package ‘php-pecl-yaml-2.2.3-3.el9.remi.8.3.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,530 CRT dnf: No available modular metadata for modular package ‘php-process-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,530 CRT dnf: No available modular metadata for modular package ‘php-sodium-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system
packaging.log:20:31:57,531 CRT dnf: No available modular metadata for modular package ‘php-xml-8.3.6-1.el9.remi.x86_64’, it cannot be installed on the system

Thanks in advance!

I installed PHP from the module for 8.3.6 on my build server and located the modules yaml file in my dnf cache and then ran the following:

modifyrepo_c --mdtype=module /home/nunya/remi/1c0c71b62fb87dd4bbafd08f78f841f5816a73f217e3bb0789c5d4383b90d06c-modules.yaml /var/www/html/ks/repodata

createrepo_c --update -g /var/www/html/ks/build/rocky9-PHP8.3.xml /var/www/html/ks

It built without errors and introduced the modules.yaml.bz2 into my repodata folder, but it still failed… :frowning:

I went into the shell of the system and noticed it only pulled the following:

-rw-r–r–. 1 root root 1345826 Apr 25 20:31 42d33362a3cf3786264edc286f0ddfd4d3f68629bd7462eaa6f325d9c46db0f4-primary.xml.gz
-rw-r–r–. 1 root root 8685 Apr 25 20:31 b8bc1ff6a384f4a191c4e243d3c25370a766f91d3bbad85c65d9c568770eeb7d-rocky9-PHP8.3.xml.gz
-rw-r–r–. 1 root root 1121432 Apr 25 20:31 d8c89e6caf133b7bda47f5df925fa080c8cb0055fe94d7a6132f8ceee77e53f1-filelists.xml.gz
drwxr-xr-x. 2 root root 60 Apr 25 20:31 gen
-rw-r–r–. 1 root root 4339 Apr 25 20:31 repomd.xml

Do I need to include something in my comps file to include module metadata for those packages?

To generate a proper modular repository, you need to provide the modules.yaml content to modifyrepo_c command.

You also need to run modifyrepo_c AFTER createrepo_c

Have you tried to ignore modularity and it use as a flat repo with the module_hotfixes=1 option ?

1 Like

I was able to get it to build with the modules.yaml retrieved from cache after running:

createrepo --update -u “http://172.31.255.5/ks” -g /var/www/html/ks/build/rocky9-PHP8.3.xml /var/www/html/ks

Directory walk started
Directory walk done - 1629 packages
type group added to list from path: /var/www/html/ks/repodata/fa9c8aafd2b1112822a5809adc56ea611f443ba28af1ece19d634de7c5c001b4-rocky9-PHP8.3.xml
type group_gz added to list from path: /var/www/html/ks/repodata/b8bc1ff6a384f4a191c4e243d3c25370a766f91d3bbad85c65d9c568770eeb7d-rocky9-PHP8.3.xml.gz
type module added to list from path: /var/www/html/ks/repodata/b1643ada15e8d90aaee6b6f96211ef2d6ba7030ea7d291bb9867000781377c32-modules.yaml.gz
type modules added to list from path: /var/www/html/ks/repodata/b1643ada15e8d90aaee6b6f96211ef2d6ba7030ea7d291bb9867000781377c32-modules.yaml.gz
Loaded information about 1629 packages
Using rocky9-PHP8.3.xml from target repo
Using b1643ada15e8d90aaee6b6f96211ef2d6ba7030ea7d291bb9867000781377c32-modules.yaml.gz from target repo
Temporary output repo path: /var/www/html/ks/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

Thanks for your help!