...
Previously: it downloaded the RPMs in packages.yaml and put them in yum_data/packages and added any one off RPMs from the aux_packages directory. It then copied them over to the SIMP directory and created links from noarch to arch.
Then it creates the staging directory under the build directory and one directory for each ISO it is building. I am calling this the OS staginf direcotry.
The OS staging directory is the top level of what will be the ISO when it is finished. So here it extracts all the OS files from the OS DVD and prunes them. It extracts the DVD_overlay file to
this directory (see above waht is in there). THen it copies the files in yum_data/packages to the SIMP directory in the staging directory according to arch/noarch and links the noarch ones under the arch directory and creates the repo in SIMP/arch.
builddir
yum_data
packages.yaml
packages
RPMs downloaded from the internet
aux_packages
any one off RPMs the user puts here.
SIMP_ISO_STAGING
<OS version name> (This is the top level of the brand new ISO to be created)
(There is a lot more data under here but we are not concerned with this, it will all remain as it.)
OS data
SIMP
noarch
simp noarch RPMs (either built earlier or extracted from tar file)
depenedency noarch RPMs (both one off and packages.yaml)
arch
simp arch RPMs (either built earlier or extracted from tar file)
dependency arch RPMs (both one off and packages.yaml)
links to any RPM in the noarch directory
repodata
New configuration: The RPMs from packages.yaml will be downloaded in the same manner. After they are downloaded the signature of the RPM will be checked against in each of the directories in simp-gpgkeys. The RPM will be placed in appropriate repo. Any RPMs not signed by a key from the known repos will be placed in an UNKNOWN repository. If any RPMs are in the UNKNOWN repository, the build will fail.
One off aux_packages will be checked in the same manner and copied to the appropriate repo under yum_data/packages directory.
Then it will start creating the ISO in the same manner, creating the staging sdirectory and pruning the OS ISO into it. THen extracting the DVD_Overlay file (which it in the new format)
Then it will just merge what is under yum_data/packages into staging directory SIMP
and run repo create for each directory under SIMP.
Problem: If using tarball how do I get GPGKEYS? Maybe extract from the simp-gpgkey RPM in the tarball? Or is just getting it from simp-core/src/assets ok?
The New directory structure will look like:
builddir
yum_data
packages.yaml
packages
simp
GPGKEYS
gpg keys from simp-gpgkeys/simp and the dev key if there was one.
- simp RPMs (arch and no arch)
simp
RPMs downloaded from the internet
aux_packages
any one off RPMs the user puts here.
SIMP
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/simp
puppet
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/
puppet
GPGKEYS
gpg keys from simp-gpgkeys/puppetpostgresql
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/
postgresql
epel
- GPGKEYS
gpg keys from simp-gpgkeys/epel
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/epel
postgresql
GPGKEYS
aux_packages
any one off RPMs the user puts here.
SIMP_ISO_STAGING
<OS Version DIr> (this is the top level of the brand new SIMP ISO to be created)
All the OS data
SIMP
simp
GPGKEYS (dir with gpg keys from simp-gpgkeys/
simp and the dev key if there was one.)
simp RPMs from the DVD_overlay file (arch and no arch)
any RPM merged from yum_data/packages/simp
repodata
puppet
GPGKEYS
any RPM
merged from
yum_data/packages/puppet
repodata
epel
GPGKEYS
any RPM merged from yum_data/packages/epel
repodata
postgresql
GPGKEYS
any RPM merged from yum_data/packages/postgresql
repodata
PROBLEM: aux_packages: what if they have a different key? Should add a feature to allow users to a key?
...