...
...
https://sgallagh.wordpress.com/2019/08/14/sausage-factory-modules-fake-it-till-you-make-it/
Building a module outside of Fedora
https://pagure.io/modularity/issue/141
> * AGREED: Profiles cannot be removed during the lifetime of the stream in order to avoid breaking scripts. Options may exist for exceptional cases on an individual basis. (contyk, 15:41:06)
Goals
Can the ISO build still reduce packages
Modularity CLI examples
The current state of CentOS 8 createrepo_c + modulemd-tools (EPEL8) allow us to:
Find all modular RPM files that under a directory and print their module
...
headers
This could identify dnf modules that would need to be re-created when shipping modular RPMs independently from their base repos:
...
Code Block |
---|
389-ds-base-1.4.3.8-5.module_el8.3.0+473+53682548.x86_64 389-ds:1.4:8030020200831174107:618f7055 389-ds-base-devel-1.4.3.8-5.module_el8.3.0+473+53682548.x86_64 389-ds:1.4:8030020200831174107:618f7055 389-ds-base-legacy-tools-1.4.3.8-5.module_el8.3.0+473+53682548.x86_64 389-ds:1.4:8030020200831174107:618f7055 389-ds-base-libs-1.4.3.8-5.module_el8.3.0+473+53682548.x86_64 389-ds:1.4:8030020200831174107:618f7055 389-ds-base-snmp-1.4.3.8-5.module_el8.3.0+473+53682548.x86_64 389-ds:1.4:8030020200831174107:618f7055 HdrHistogram-2.1.11-2.module_el8.2.0+460+6583c1d0.noarch jmc:rhel8:8020020200731165725:21dc74c6 HdrHistogram-javadoc-2.1.11-2.module_el8.2.0+460+6583c1d0.noarch jmc:rhel8:8020020200731165725:21dc74c6 Judy-1.0.5-18.module_el8.1.0+217+4d875839.x86_64 mariadb:10.3:8010020191115015915:cdc1202b ant-1.10.5-1.module_el8.0.0+47+197dca37.noarch ant:1.10:8000020190624202340:f7e686af ant-lib-1.10.5-1.module_el8.0.0+47+197dca37.noarch ant:1.10:8000020190624202340:f7e686af aopalliance-1.0-17.module_el8.0.0+39+6a9b6e22.noarch maven:3.5:8000020190624140656:f7e686af aopalliance-1.0-20.module_el8.3.0+568+0c23fd64.noarch maven:3.6:8030020201104064112:a623df05 |
It should may be possible to re-create specific modules module/streams based on the RPM’s unique headers. However, there are will need to be a second data source, because the RPM ModularityLabel
has significant limitations:
...
Note |
---|
By convention, RPMs' |
...
would lose all the original |
...
streams' profiles. |
...
Note |
---|
We can’t rely on RPMs' “The |
...
to indicate from which build the RPM originally came from, but this is not to be relied upon. It may change at any time and it also may not be accurately reflective of the module in which it currently resides, due to component-reuse in the Module Build System.” |
Identify all unique modules/
...
streams from a collection of RPM files
Code Block |
---|
find "$DIR_WITH_RPMS" -name \*.rpm \ -exec rpm -qp {} --qf '%{ModularityLabel}\n' \; \ | grep -v '^(none)' | sort | uniq -c \ | sort -nk1,1 \ | tee unique_rpm_module_streams.txt |
...
Info |
---|
Judging by the bug report at https://bugzilla.redhat.com/show_bug.cgi?id=1547041, It currently resolves from module packages, using default or enabled streams & profiles. |
Code Block |
---|
dnf repoclosure --repofrompath iso,"$PWD" --repo appstream --repo baseos |
...