Compare commits

..

No commits in common. "devel" and "feature/variant-images-download" have entirely different histories.

206 changed files with 3544 additions and 8271 deletions

View File

@ -17,17 +17,17 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v1
# https://github.com/docker/setup-buildx-action # https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v1
with: with:
install: true install: true
- name: Login to ghcr - name: Login to ghcr
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v1
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
@ -35,7 +35,7 @@ jobs:
- name: Build and push - name: Build and push
id: docker_build id: docker_build
uses: docker/build-push-action@v5 uses: docker/build-push-action@v2
with: with:
builder: ${{ steps.buildx.outputs.name }} builder: ${{ steps.buildx.outputs.name }}
platforms: linux/amd64,linux/arm64,linux/s390x,linux/ppc64le platforms: linux/amd64,linux/arm64,linux/s390x,linux/ppc64le
@ -44,4 +44,4 @@ jobs:
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/rocky-linux/sig-core-toolkit:latest tags: ghcr.io/rocky-linux/sig-core-toolkit:latest
cache-from: type=gha cache-from: type=gha
cache-to: type=inline cache-to: type=gha,mode=max

2
.gitignore vendored
View File

@ -1 +1 @@
*.sw[a-z] .swp

View File

@ -13,7 +13,8 @@ What does this have?
* analyze -> Analysis utilities (such as download stats) * analyze -> Analysis utilities (such as download stats)
* chat -> mattermost related utilities * chat -> mattermost related utilities
* func -> (mostly defunct) testing scripts and tools to test base functionality * func -> (mostly defunct) testing scripts and tools to test base functionality
* iso -> Contains `empanadas`, which provides ISO, Compose, and Sync related utilities. * iso -> ISO, Compose, and Sync related utilities, primarily for Rocky Linux 9+
* live -> Live image related utilities
* mangle -> Manglers and other misc stuff * mangle -> Manglers and other misc stuff
* sync -> Sync tools, primarily for Rocky Linux 8 and will eventually be deprecated * sync -> Sync tools, primarily for Rocky Linux 8 and will eventually be deprecated
@ -23,17 +24,13 @@ How can I help?
Fork this repository and open a PR with your changes. Keep these things in mind Fork this repository and open a PR with your changes. Keep these things in mind
when you make changes: when you make changes:
* Your PR should be against the devel branch (not optional) * Have pre-commit installed
* Have pre-commit installed if possible * Have shellcheck installed
* Have shellcheck installed if possible
* Shell Scripts: These must pass a shellcheck test! * Shell Scripts: These must pass a shellcheck test!
* Python scripts: Try your best to follow PEP8 guidelines (even the best linters get things wrong) * Python scripts: Try your best to follow PEP8 guidelines (even the best linters get things wrong)
* Note that not everything has to pass. Just try your best. Your PR should be against the devel branch at all times. PR's against the main
branch will be closed.
PR's against the main branch will be closed.
PR's are preferred at the [RESF Git Service](https://git.resf.org).
Will some of this be moved into separate repositories? Will some of this be moved into separate repositories?
------------------------------------------------------ ------------------------------------------------------

3
func/.gitignore vendored
View File

@ -1,5 +1,2 @@
log/*.log log/*.log
log/*.log.* log/*.log.*
clone_again/
cloned/
tftptest

View File

@ -5,20 +5,22 @@ These are a set of scripts that are designed to test the core functionality
of a Rocky Linux system. They are designed to work on current versions of of a Rocky Linux system. They are designed to work on current versions of
Rocky and are used to test a system as a Release Engineering self-QA but Rocky and are used to test a system as a Release Engineering self-QA but
can be used by others for their own personal testing (under the assumption can be used by others for their own personal testing (under the assumption
that you just want to see what happens, we don't judge. that you just want to see what happens, we don't judge :).
These tests *must* pass for a X.0 release to be considered "Core Validated". These tests *must* pass for a release to be considered "Core Validated"
Checking against the upstream repositories for package matches are not enough
and are/will be addressed by other tools.
* common -> Functions that our scripts and tests may or may not use. Templates * common -> Functions that our scripts and tests may or may not use. Templates
and other files should come here too under common/files and and other files should come here too under common/files and
scripts that use them should reference them as `./common/files/...` scripts that use them should reference them as `./common/files/...`
* core -> Core functionality and testing. For example, packages and service * core -> Core functionality and testing. For example, packages and service
functionality. functionality.
* lib -> Library tests (these may be done elsewhere, such as openqa) * lib -> Library tests (these may be done elsewhere)
* log -> Log output. This repository has example logs of running on Rocky * log -> Log output. This repository has example logs of running on Rocky
Linux. Linux.
* modules -> Tests for module streams and their basic tests * modules -> Tests for module streams and their basic tests
* stacks -> Software stacks, think like LAMP (may be done elsewhere, such as openqa) * stacks -> Software stacks, think like LAMP.
How to Run How to Run
---------- ----------
@ -148,13 +150,6 @@ security is important, actually work and function correctly.
With that said, There is no reason to disable integral security layers on your With that said, There is no reason to disable integral security layers on your
system. system.
### Should EPEL be enabled?
No. The point is to test Rocky packages, not EPEL. There are also package
differences that will break (eg: nc -> nmap-ncat vs netcat).
### What about CRB or extras?
It may say it's a failure, but it will continue anyway.
Current Tree Current Tree
------------ ------------
``` ```

View File

@ -36,25 +36,11 @@ function r_processor() {
if [[ "$(basename ${file})" =~ README|^\.|^_ ]]; then if [[ "$(basename ${file})" =~ README|^\.|^_ ]]; then
continue continue
fi fi
[ -x "${file}" ] && echo "Begin processing script: ${file}" && "${file}" [ -x "${file}" ] && "${file}"
done done
return 0 return 0
} }
function r_checkEPELEnabled() {
/usr/bin/dnf repolist | grep -q '^epel'
return $?
}
function r_checkTmpNoExec() {
grep 'tmp' /etc/fstab | grep -q noexec
tmpexec=$?
if [ "$tmpexec" -eq "0" ]; then
r_log "internal" "WARN: noexec is set for temporary directories. Some tests may fail."
fi
}
################################################################################ ################################################################################
# Functions that deal with (p)ackages # Functions that deal with (p)ackages
@ -113,11 +99,7 @@ function p_getPackageArch() {
} }
function p_getDist() { function p_getDist() {
rpm -q --whatprovides redhat-release --queryformat '%{version}\n' | cut -d'.' -f1 rpm -q "$(rpm -qf /etc/redhat-release)" --queryformat '%{version}\n' | cut -d'.' -f1
}
function p_getMinorVersion() {
rpm -q --whatprovides redhat-release --queryformat '%{version}\n' | cut -d'.' -f2
} }
################################################################################ ################################################################################
@ -222,16 +204,12 @@ function m_recycleLog() {
rl_ver=$(p_getDist) rl_ver=$(p_getDist)
rl_arch=$(m_getArch) rl_arch=$(m_getArch)
rl_minor_ver=$(p_getMinorVersion)
export rl_ver export rl_ver
export rl_arch export rl_arch
export rl_minor_ver
export -f r_log export -f r_log
export -f r_checkExitStatus export -f r_checkExitStatus
export -f r_processor export -f r_processor
export -f r_checkEPELEnabled
export -f r_checkTmpNoExec
export -f p_installPackageNormal export -f p_installPackageNormal
export -f p_installPackageNoWeaks export -f p_installPackageNoWeaks
export -f p_removePackage export -f p_removePackage
@ -240,7 +218,6 @@ export -f p_resetModule
export -f p_getPackageRelease export -f p_getPackageRelease
export -f p_getPackageArch export -f p_getPackageArch
export -f p_getDist export -f p_getDist
export -f p_getMinorVersion
export -f m_serviceCycler export -f m_serviceCycler
export -f m_checkForPort export -f m_checkForPort
export -f m_assertCleanExit export -f m_assertCleanExit

View File

@ -1 +0,0 @@
Basic tests, such as repos

View File

@ -1,56 +0,0 @@
#!/usr/bin/env python3
# label <label@rockylinux.org>
import datetime
import sys
import dnf
import dnf.exceptions
# pylint: disable=unnecessary-lambda-assignment
now = datetime.datetime.today().strftime("%m-%d-%Y %T")
class DnfQuiet(dnf.Base):
"""
DNF object
This is in the event we need special functions
"""
def __init__(self):
dnf.Base.__init__(self)
def main():
"""
Main run
"""
dnfobj = DnfQuiet()
releasever = dnfobj.conf.releasever
try:
dnfobj.read_all_repos()
# pylint: disable=bare-except
except:
print(f'[-] {now} -> Could not read repos', file=sys.stderr)
sys.exit(1)
rocky_default_repos = {
'8': ['baseos', 'appstream', 'extras'],
'9': ['baseos', 'appstream', 'extras']
}.get(releasever, None)
if not rocky_default_repos:
print(f'[-] {now} -> Not a Rocky Linux system')
sys.exit(1)
print(f'[-] {now} -> Checking if non-default repo is enabled')
_not_allowed=False
for repo in list(dnfobj.repos.iter_enabled()):
if not repo.id in rocky_default_repos:
print(f'[-] {now} -> {repo.id} is enabled and should be disabled')
_not_allowed=True
if _not_allowed:
print(f'[-] {now} -> FAIL - There are extra repos enabled')
sys.exit(1)
print(f'[-] {now} -> PASS')
sys.exit(0)
if __name__ == "__main__":
main()

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "acl" "Install the acl package" r_log "acl" "Install the acl package"
p_installPackageNormal acl p_installPackageNormal acl
p_installPackageNormal attr r_log "acl" "Remount filesystems with ACL support (this normally should not be needed)"
# This normally is not needed. mount -o remount,acl /
#r_log "acl" "Remount filesystems with ACL support"
#mount -o remount,acl /
sleep 3 sleep 3

View File

@ -2,7 +2,6 @@
ACLFILE=/tmp/testfile_acl ACLFILE=/tmp/testfile_acl
r_log "acl" "Test that the acl get and set functions work" r_log "acl" "Test that the acl get and set functions work"
touch "${ACLFILE}" touch "${ACLFILE}"
trap '/bin/rm -f ${ACLFILE}' EXIT
# Use setfacl for readonly # Use setfacl for readonly
r_log "acl" "Set readonly ACL for the user nobody" r_log "acl" "Set readonly ACL for the user nobody"
@ -13,3 +12,4 @@ r_log "acl" "Verifying that the nobody user is set to read only"
getfacl "${ACLFILE}" | grep -q 'user:nobody:r--' getfacl "${ACLFILE}" | grep -q 'user:nobody:r--'
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm -f "${ACLFILE}"

View File

@ -1,22 +0,0 @@
#!/bin/bash
ACLIMG=/tmp/testacl.img
r_log "acl" "Test the use of xattr"
touch "${ACLIMG}"
trap '/bin/rm -f ${ACLIMG}' EXIT
# Use setfacl for readonly
r_log "acl" "Create image"
dd if=/dev/zero of=${ACLIMG} bs=1024000 count=100
echo -e 'y\n' | mkfs.ext3 "${ACLIMG}"
mkdir /mnt/xattr
mount -t ext3 -o loop,user_xattr "${ACLIMG}" /mnt/xattr
touch /mnt/xattr/testfile
r_log "acl" "Apply attrs as needed"
setfattr -n user.nobody /mnt/xattr/testfile
getfattr /mnt/xattr/testfile | grep -q 'user.nobody'
final_status=$?
umount /mnt/xattr
r_checkExitStatus $final_status

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "archive" "Test bzip/bzcat/bunzip" r_log "archive" "Test bzip/bzcat/bunzip"
FILE=/var/tmp/bziptest.txt FILE=/var/tmp/bziptest.txt
trap '/bin/rm -f ${FILE}' EXIT
cat > "$FILE" <<EOF cat > "$FILE" <<EOF
testing text testing text
@ -24,3 +23,5 @@ fi
grep -q 'testing text' "${FILE}" grep -q 'testing text' "${FILE}"
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm -f "${FILE}*"

View File

@ -1,9 +1,8 @@
#!/bin/bash #!/bin/bash
r_log "archive" "Verifying gzip binaries" r_log "archive" "Verifying gzip binaries"
echo -n "Processing; "
for bin in gunzip gzexe gzip zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew; do for bin in gunzip gzexe gzip zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew; do
echo -n "$bin " echo -n "$bin"
r_log "archive" "$bin" r_log "archive" "$bin"
$bin --version &> /dev/null || r_checkExitStatus 1 $bin --version &> /dev/null || r_checkExitStatus 1
done done

View File

@ -4,9 +4,6 @@ r_log "archive" "Test gzip/zcat/gunzip"
FILE=/var/tmp/gzip-test.txt FILE=/var/tmp/gzip-test.txt
MD5HASH=e6331c582fbad6653832860f469f7d1b MD5HASH=e6331c582fbad6653832860f469f7d1b
# clean up
trap '/bin/rm $FILE* &> /dev/null && /bin/rm -rf /var/tmp/gziptest &> /dev/null' EXIT
# Double check that stuff is cleared out # Double check that stuff is cleared out
/bin/rm $FILE* &> /dev/null /bin/rm $FILE* &> /dev/null
/bin/rm -rf /var/tmp/gziptest &> /dev/null /bin/rm -rf /var/tmp/gziptest &> /dev/null
@ -110,3 +107,7 @@ tar -czf $FILE.tgz $FILE &> /dev/null
gunzip $FILE.tgz gunzip $FILE.tgz
[ -e $FILE.tar ] [ -e $FILE.tar ]
r_checkExitStatus $? r_checkExitStatus $?
# clean up
/bin/rm $FILE* &> /dev/null
/bin/rm -rf /var/tmp/gziptest &> /dev/null

View File

@ -2,8 +2,6 @@
r_log "archive" "Checking gzexe" r_log "archive" "Checking gzexe"
r_log "archive" "Creating archive" r_log "archive" "Creating archive"
FILE=/var/tmp/gzexe-test-script FILE=/var/tmp/gzexe-test-script
trap '/bin/rm -f $FILE* 2>/dev/null' EXIT
/bin/rm -f $FILE* &>/dev/null /bin/rm -f $FILE* &>/dev/null
cat > $FILE <<EOF cat > $FILE <<EOF
@ -20,3 +18,5 @@ r_log "archive" "Test gzexe"
r_log "archive" "Check that it actually runs" r_log "archive" "Check that it actually runs"
$FILE | grep -q "Hello!" $FILE | grep -q "Hello!"
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm -f $FILE* 2>/dev/null

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "archive" "Check zcmp and zdiff" r_log "archive" "Check zcmp and zdiff"
BASEFILE="/var/tmp/gziptest" BASEFILE="/var/tmp/gziptest"
trap '/bin/rm -f ${BASEFILE}*' EXIT
/bin/rm -f ${BASEFILE} /bin/rm -f ${BASEFILE}
cat > ${BASEFILE}.1 <<EOF cat > ${BASEFILE}.1 <<EOF
@ -16,3 +15,5 @@ r_log "archive" "Check zcmp"
r_log "archive" "Check zdiff" r_log "archive" "Check zdiff"
/bin/zdiff ${BASEFILE}.1.gz ${BASEFILE}.2.gz || r_checkExitStatus 1 /bin/zdiff ${BASEFILE}.1.gz ${BASEFILE}.2.gz || r_checkExitStatus 1
/bin/rm -f ${BASEFILE}*

View File

@ -2,7 +2,6 @@
r_log "archive" "Testing zforce" r_log "archive" "Testing zforce"
BASEFILE="/var/tmp/abcdefg" BASEFILE="/var/tmp/abcdefg"
trap '/bin/rm "$BASEFILE.gz"' EXIT
/bin/rm $BASEFILE* &>/dev/null /bin/rm $BASEFILE* &>/dev/null
cat > $BASEFILE <<EOF cat > $BASEFILE <<EOF
@ -15,3 +14,5 @@ mv $BASEFILE.gz $BASEFILE
zforce $BASEFILE || r_checkExitStatus 1 zforce $BASEFILE || r_checkExitStatus 1
[ -e "$BASEFILE.gz" ] [ -e "$BASEFILE.gz" ]
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm "$BASEFILE.gz"

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "archive" "Testing zgrep" r_log "archive" "Testing zgrep"
BASEFILE=/var/tmp/zgreptest BASEFILE=/var/tmp/zgreptest
trap '/bin/rm $BASEFILE*' EXIT
/bin/rm $BASEFILE* &> /dev/null /bin/rm $BASEFILE* &> /dev/null
cat > $BASEFILE <<EOF cat > $BASEFILE <<EOF
@ -12,3 +11,5 @@ gzip $BASEFILE
zgrep -q 'Green Obsidian' $BASEFILE.gz zgrep -q 'Green Obsidian' $BASEFILE.gz
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm $BASEFILE*

0
func/core/pkg_archive/27-znew.sh Normal file → Executable file
View File

View File

@ -4,7 +4,6 @@ r_log "archive" "Test tar create and extract"
TARDIR="/var/tmp/tartest" TARDIR="/var/tmp/tartest"
FILE1="$TARDIR/test.1.txt" FILE1="$TARDIR/test.1.txt"
FILE2="$TARDIR/test.2.txt" FILE2="$TARDIR/test.2.txt"
trap '/bin/rm -rf /var/tmp/tarfile.tar $TARDIR' EXIT
mkdir -p $TARDIR mkdir -p $TARDIR
cat > $FILE1 <<EOF cat > $FILE1 <<EOF
@ -33,3 +32,5 @@ if [ $RES1 == 0 ] && [ $RES2 == 0 ]; then
fi fi
r_checkExitStatus $ret_val r_checkExitStatus $ret_val
/bin/rm -rf /var/tmp/tarfile.tar $TARDIR

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "archive" "Check xzcmp and xzdiff" r_log "archive" "Check xzcmp and xzdiff"
BASEFILE="/var/tmp/xztest" BASEFILE="/var/tmp/xztest"
trap '/bin/rm -f ${BASEFILE}*' EXIT
/bin/rm -f ${BASEFILE} /bin/rm -f ${BASEFILE}
cat > ${BASEFILE}.1 <<EOF cat > ${BASEFILE}.1 <<EOF
@ -16,3 +15,5 @@ r_log "archive" "Check xzcmp"
r_log "archive" "Check xzdiff" r_log "archive" "Check xzdiff"
/bin/zdiff ${BASEFILE}.1.xz ${BASEFILE}.2.xz || r_checkExitStatus 1 /bin/zdiff ${BASEFILE}.1.xz ${BASEFILE}.2.xz || r_checkExitStatus 1
/bin/rm -f ${BASEFILE}*

View File

@ -4,7 +4,6 @@ r_log "archive" "Test zip create and extract"
ZIPDIR="/var/tmp/ziptest" ZIPDIR="/var/tmp/ziptest"
FILE1="$ZIPDIR/test.1.txt" FILE1="$ZIPDIR/test.1.txt"
FILE2="$ZIPDIR/test.2.txt" FILE2="$ZIPDIR/test.2.txt"
trap '/bin/rm -rf /var/tmp/zipfile.zip $ZIPDIR' EXIT
mkdir -p $ZIPDIR mkdir -p $ZIPDIR
cat > $FILE1 <<EOF cat > $FILE1 <<EOF
@ -32,4 +31,6 @@ if [ $RES1 == 0 ] && [ $RES2 == 0 ]; then
ret_val=0 ret_val=0
fi fi
r_checkExitStatus "$ret_val" r_checkExitStatus $ret_val
/bin/rm -rf /var/tmp/zipfile.zip $ZIPDIR

View File

@ -2,7 +2,6 @@
r_log "archive" "Testing lzop compress and decompress" r_log "archive" "Testing lzop compress and decompress"
LZOFILE=/var/tmp/obsidian.txt LZOFILE=/var/tmp/obsidian.txt
trap '/bin/rm ${LZOFILE}' EXIT
echo 'Green Obsidian is the release name' > ${LZOFILE} echo 'Green Obsidian is the release name' > ${LZOFILE}
@ -14,5 +13,5 @@ lzop -d ${LZOFILE}.lzo -o ${LZOFILE}
/bin/rm ${LZOFILE}.lzo /bin/rm ${LZOFILE}.lzo
grep -q 'Green Obsidian' ${LZOFILE} grep -q 'Green Obsidian' ${LZOFILE}
ret_val="$?"
r_checkExitStatus "$ret_val" /bin/rm ${LZOFILE}

View File

@ -2,8 +2,6 @@
ATTRTEST="/var/tmp/attrtest.img" ATTRTEST="/var/tmp/attrtest.img"
ATTRMNT="/mnt/attrtest" ATTRMNT="/mnt/attrtest"
trap 'umount /mnt/attrtest ; /bin/rm -f ${ATTRTEST} ; /bin/rm -rf ${ATTRMNT}' EXIT
r_log "attr" "Checking that *attr works" r_log "attr" "Checking that *attr works"
dd if=/dev/zero of="${ATTRTEST}" bs=1024000 count=100 &>/dev/null dd if=/dev/zero of="${ATTRTEST}" bs=1024000 count=100 &>/dev/null
r_checkExitStatus $? r_checkExitStatus $?
@ -16,3 +14,8 @@ setfattr -n user.test "${ATTRMNT}/testfile"
getfattr "${ATTRMNT}/testfile" | grep -oq "user.test" getfattr "${ATTRMNT}/testfile" | grep -oq "user.test"
r_checkExitStatus $? r_checkExitStatus $?
# Cleanup
umount /mnt/attrtest
/bin/rm -f "${ATTRTEST}"
/bin/rm -rf "${ATTRMNT}"

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "coreutils" "Testing cat" r_log "coreutils" "Testing cat"
trap "/bin/rm /var/tmp/cattest" EXIT
cat > /var/tmp/cattest <<EOF cat > /var/tmp/cattest <<EOF
Green Obsidian Green Obsidian
@ -8,3 +7,5 @@ EOF
grep -q "Green Obsidian" /var/tmp/cattest grep -q "Green Obsidian" /var/tmp/cattest
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /var/tmp/cattest

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "coreutils" "Testing readlink" r_log "coreutils" "Testing readlink"
trap "/bin/rm /var/tmp/listen" EXIT
ln -s /var/tmp/talk /var/tmp/listen ln -s /var/tmp/talk /var/tmp/listen
readlink /var/tmp/listen | grep -q "/var/tmp/talk" readlink /var/tmp/listen | grep -q "/var/tmp/talk"
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /var/tmp/listen

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "coreutils" "Test hash sum tools" r_log "coreutils" "Test hash sum tools"
trap '/bin/rm ${HASHFILE}' EXIT
HASHFILE=/var/tmp/obsidian HASHFILE=/var/tmp/obsidian
echo "Green Obsidian is our release name" > ${HASHFILE} echo "Green Obsidian is our release name" > ${HASHFILE}
@ -23,3 +22,5 @@ r_checkExitStatus $?
r_log "coreutils" "Test sha512sum" r_log "coreutils" "Test sha512sum"
/usr/bin/sha512sum ${HASHFILE} | grep -q e50554c29a5cb7bd04279d3c0918e486024c79c4b305a2e360a97d4021dacf56ce0d17fa6e6a0e81ad03d5fb74fbe2d50cce6081c2c277f22b958cdae978a2f5 /usr/bin/sha512sum ${HASHFILE} | grep -q e50554c29a5cb7bd04279d3c0918e486024c79c4b305a2e360a97d4021dacf56ce0d17fa6e6a0e81ad03d5fb74fbe2d50cce6081c2c277f22b958cdae978a2f5
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm ${HASHFILE}

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "coreutils" "Testing touch and ls" r_log "coreutils" "Testing touch and ls"
trap '/bin/rm /tmp/touch-?' EXIT
r_log "coreutils" "Touch files with specific dates" r_log "coreutils" "Touch files with specific dates"
touch -t 199104230420 /tmp/touch-1 touch -t 199104230420 /tmp/touch-1
@ -11,3 +10,5 @@ r_log "coreutils" "Verify that the oldest file is last"
ls -lt /tmp/touch-? | tail -n 1 | grep -q 'touch-1' ls -lt /tmp/touch-? | tail -n 1 | grep -q 'touch-1'
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /tmp/touch-?

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "coreutils" "Ensure uniq works as expected" r_log "coreutils" "Ensure uniq works as expected"
trap '/bin/rm /var/tmp/uniq' EXIT
cat > /var/tmp/uniq <<EOF cat > /var/tmp/uniq <<EOF
Rocky Rocky
@ -15,3 +14,4 @@ EOF
uniq -d /var/tmp/uniq | wc -l | grep -q 2 && uniq -u /var/tmp/uniq | wc -l | grep -q 4 uniq -d /var/tmp/uniq | wc -l | grep -q 2 && uniq -u /var/tmp/uniq | wc -l | grep -q 4
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /var/tmp/uniq

View File

@ -2,7 +2,6 @@
r_log "coreutils" "Ensure wc works as expected" r_log "coreutils" "Ensure wc works as expected"
r_log "coreutils" "This should have already been done with uniq" r_log "coreutils" "This should have already been done with uniq"
# Context: we should probably test some switches... # Context: we should probably test some switches...
trap "/bin/rm /var/tmp/wc" EXIT
cat > /var/tmp/wc <<EOF cat > /var/tmp/wc <<EOF
Rocky Rocky
@ -22,3 +21,5 @@ wc -L /var/tmp/wc | grep -q 8 && \
wc -w /var/tmp/wc | grep -q 8 wc -w /var/tmp/wc | grep -q 8
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /var/tmp/wc

View File

@ -5,18 +5,14 @@ OUTTER=/var/tmp/cpio/out
INNER=/var/tmp/cpio/in INNER=/var/tmp/cpio/in
PASSER=/var/tmp/cpio/pass PASSER=/var/tmp/cpio/pass
trap '/bin/rm -rf /var/tmp/cpio' EXIT
# Nothing should be here. Clean up first. # Nothing should be here. Clean up first.
[ -d /var/tmp/cpio ] && /bin/rm -rf /var/tmp/cpio [ -d /var/tmp/cpio ] && /bin/rm -rf /var/tmp/cpio
r_log "cpio" "Test basic copy out" r_log "cpio" "Test basic copy out"
mkdir -p "$OUTTER" "$INNER" "$PASSER" mkdir -p "$OUTTER" "$INNER" "$PASSER"
# Ensure at least one file exists in /tmp to prevent errors.
echo 1 > $(mktemp)
# shellcheck disable=2012 # shellcheck disable=2012
find /tmp -type f | cpio -o > "$OUTTER"/cpio.out 2> /dev/null ls /tmp | cpio -o > "$OUTTER"/cpio.out
r_checkExitStatus $? r_checkExitStatus $?
r_log "cpio" "Test basic copy in" r_log "cpio" "Test basic copy in"
@ -27,7 +23,7 @@ popd || exit 1
r_log "cpio" "Test basic passthrough" r_log "cpio" "Test basic passthrough"
pushd "$INNER" || exit 1 pushd "$INNER" || exit 1
find . | cpio -pd "$PASSER" find /tmp | cpio -pd "$PASSER"
r_checkExitStatus $? r_checkExitStatus $?
popd || exit 1 popd || exit 1

View File

@ -15,4 +15,3 @@ r_checkExitStatus $?
r_log "cracklib" "Testing a complicated password" r_log "cracklib" "Testing a complicated password"
echo -e "2948_Obaym-" | cracklib-check | grep -q "OK" echo -e "2948_Obaym-" | cracklib-check | grep -q "OK"
r_checkExitStatus $?

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/bin/bash
r_log "cron" "Testing hourly cron jobs" r_log "cron" "Testing hourly cron jobs"
trap '/bin/rm /etc/cron.{weekly,daily,hourly}/rocky.sh' EXIT
cat > /etc/cron.hourly/rocky.sh <<EOF cat > /etc/cron.hourly/rocky.sh <<EOF
#!/bin/bash #!/bin/bash
echo "obsidian" echo "obsidian"
@ -36,3 +34,5 @@ chmod +x /etc/cron.weekly/rocky.sh
run-parts /etc/cron.weekly | grep -q "obsidian" run-parts /etc/cron.weekly | grep -q "obsidian"
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /etc/cron.{weekly,daily,hourly}/rocky.sh

View File

@ -1,8 +1,9 @@
#!/bin/bash #!/bin/bash
r_log "file" "Check that we can see a symlink" r_log "file" "Check that we can see a symlink"
FILE_PATH=/var/tmp/linktest FILE_PATH=/var/tmp/linktest
trap '/bin/rm ${FILE_PATH}' EXIT
MIME="inode/symlink" MIME="inode/symlink"
ln -s /etc/issue $FILE_PATH ln -s /etc/issue $FILE_PATH
file -i $FILE_PATH | grep -q "${MIME}" file -i $FILE_PATH | grep -q "${MIME}"
r_checkExitStatus $? r_checkExitStatus $?
/bin/rm /var/tmp/linktest

View File

@ -2,7 +2,6 @@
r_log "findutils" "Testing basic find stuff" r_log "findutils" "Testing basic find stuff"
TMPDIR=/var/tmp/find TMPDIR=/var/tmp/find
trap '/bin/rm -rf $TMPDIR' EXIT
[ -e $TMPDIR ] && rm -rf "$TMPDIR" [ -e $TMPDIR ] && rm -rf "$TMPDIR"
@ -38,8 +37,8 @@ r_log "findutils" "Perform for xargs test: fails with spaces in the name"
# shellcheck disable=SC2038 # shellcheck disable=SC2038
find "$TMPDIR" -type f | xargs ls &> /dev/null && { r_log "findutils" "Why did this get a 0 exit?"; exit "$FAIL"; } find "$TMPDIR" -type f | xargs ls &> /dev/null && { r_log "findutils" "Why did this get a 0 exit?"; exit "$FAIL"; }
ret_val=$? ret_val=$?
if [ "$ret_val" -ne "0" ]; then if [ "$ret_val" -ne 0 ]; then
r_checkExitStatus 0 r_checkExitStatus $?
else
r_checkExitStatus 1
fi fi
rm -rf "$TMPDIR"

View File

@ -1,14 +1,7 @@
#!/bin/bash #!/bin/bash
function cleanup() {
cp /etc/raddb/users.backup /etc/raddb/users
rm -rf /etc/raddb/users.backup
systemctl stop radiusd.service
}
r_log "freeradius" "Test basic freeradius functionality" r_log "freeradius" "Test basic freeradius functionality"
r_log "freeradius" "Configure freeradius"
trap cleanup EXIT
r_log "freeradius" "Configure freeradius"
cp /etc/raddb/users /etc/raddb/users.backup cp /etc/raddb/users /etc/raddb/users.backup
cat >> /etc/raddb/users << EOF cat >> /etc/raddb/users << EOF
rocky Cleartext-Password := "rocky" rocky Cleartext-Password := "rocky"
@ -20,3 +13,7 @@ systemctl start radiusd.service
sleep 1 sleep 1
echo "User-Name=rocky,User-Password=rocky " | radclient -x localhost:1812 auth testing123 | grep -q 'Access-Accept' echo "User-Name=rocky,User-Password=rocky " | radclient -x localhost:1812 auth testing123 | grep -q 'Access-Accept'
r_checkExitStatus $? r_checkExitStatus $?
cp /etc/raddb/users.backup /etc/raddb/users
rm -rf /etc/raddb/users.backup
systemctl stop radiusd.service

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "git" "Test basic git clones" r_log "git" "Test basic git clones"
trap 'rm -rf $TMPREPO' EXIT
WORKDIR=$(pwd) WORKDIR=$(pwd)
TMPREPO=/var/tmp/repo TMPREPO=/var/tmp/repo

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "httpd" "Test basic authentication functionality" r_log "httpd" "Test basic authentication functionality"
trap "rm /etc/httpd/conf.d/test-basic-auth.conf ; m_serviceCycler httpd reload" EXIT
cat > /etc/httpd/conf.d/test-basic-auth.conf <<EOF cat > /etc/httpd/conf.d/test-basic-auth.conf <<EOF
## Core basic auth test ## Core basic auth test
@ -16,8 +15,9 @@ EOF
htpasswd -c -b /etc/httpd/htpasswd tester tester htpasswd -c -b /etc/httpd/htpasswd tester tester
mkdir -p /var/www/html/basic_auth mkdir -p /var/www/html/basic_auth
echo "Basic Auth Test" > /var/www/html/basic_auth/index.html echo "Basic Auth Test" > /var/www/html/basic_auth/index.html
# This isn't normally needed, it should just work
restorecon -R /var/www/html
m_serviceCycler httpd cycle m_serviceCycler httpd cycle
curl -s -u tester:tester http://localhost/basic_auth/ | grep -q 'Basic Auth Test' > /dev/null 2>&1 curl -s -u tester:tester http://localhost/basic_auth/ | grep -q 'Basic Auth Test' > /dev/null 2>&1
r_checkExitStatus $? r_checkExitStatus $?
rm /etc/httpd/conf.d/test-basic-auth.conf
m_serviceCycler httpd reload

View File

@ -1,12 +1,5 @@
#!/bin/bash #!/bin/bash
function cleanup() {
rm /etc/httpd/conf.d/vhost.conf
sed -i '/127.0.0.1 coretest/d' /etc/hosts
m_serviceCycler httpd reload
}
r_log "httpd" "Test basic vhost functionality" r_log "httpd" "Test basic vhost functionality"
trap cleanup EXIT
echo "127.0.0.1 coretest" >> /etc/hosts echo "127.0.0.1 coretest" >> /etc/hosts
cat > /etc/httpd/conf.d/vhost.conf << EOF cat > /etc/httpd/conf.d/vhost.conf << EOF
@ -21,10 +14,12 @@ EOF
mkdir -p /var/www/vhost/coretest mkdir -p /var/www/vhost/coretest
echo "core vhost test page" > /var/www/vhost/coretest/index.html echo "core vhost test page" > /var/www/vhost/coretest/index.html
# This isn't normally needed, it should just work
restorecon -R /var/www/vhost
m_serviceCycler httpd cycle m_serviceCycler httpd cycle
curl -s http://coretest/ | grep -q 'core vhost test page' > /dev/null 2>&1 curl -s http://coretest/ | grep -q 'core vhost test page' > /dev/null 2>&1
r_checkExitStatus $? r_checkExitStatus $?
rm /etc/httpd/conf.d/vhost.conf
sed -i '/127.0.0.1 coretest/d' /etc/hosts
m_serviceCycler httpd reload

View File

@ -2,8 +2,6 @@
r_log "httpd" "Test basic php" r_log "httpd" "Test basic php"
echo "<?php echo phpinfo(); ?>" > /var/www/html/test.php echo "<?php echo phpinfo(); ?>" > /var/www/html/test.php
# This isn't normally needed, it should just work
restorecon -R /var/www/html
curl -s http://localhost/test.php | grep -q 'PHP Version' > /dev/null 2>&1 curl -s http://localhost/test.php | grep -q 'PHP Version' > /dev/null 2>&1
r_checkExitStatus $? r_checkExitStatus $?

0
func/core/pkg_network/30-test-arpwatch.sh Normal file → Executable file
View File

View File

@ -1,3 +0,0 @@
#!/bin/bash
r_log "openssh" "Install openssh"
p_installPackageNormal openssh-clients openssh-server sshpass

View File

@ -1,5 +0,0 @@
#!/bin/bash
r_log "openssh" "Ensure ssh is listening"
echo "" > /dev/tcp/localhost/22
r_checkExitStatus $?

View File

@ -1,16 +0,0 @@
#!/bin/bash
r_log "openssh" "Testing basic login (using sshpass)"
trap 'userdel -rf sshpasstest; unset SSHPASS' EXIT
if sshd -T | grep -q "passwordauthentication yes"; then
r_log "openssh" "Creating test user"
export SSHPASS="Blu30nyx!"
useradd sshpasstest
echo "${SSHPASS}" | passwd --stdin sshpasstest
r_log "openssh" "Testing login"
sshpass -e ssh sshpasstest@localhost echo 'hello'
r_checkExitStatus $?
else
r_log "openssh" "Skipping test"
exit 0
fi

View File

@ -1,32 +0,0 @@
#!/bin/bash
r_log "openssh" "Testing key login (using sshpass)"
case $RL_VER in
8)
KEYTYPES="rsa ecdsa ed25519"
;;
9)
KEYTYPES="rsa ecdsa ed25519"
;;
*)
KEYTYPES="ed25519"
;;
esac
r_log "openssh" "Creating test user"
useradd sshkeytest
echo "Blu30nyx!" | passwd --stdin sshkeytest
for KEYTYPE in $KEYTYPES; do
r_log "openssh" "Creating key: ${KEYTYPE}"
runuser -l sshkeytest -c "echo | ssh-keygen -q -t ${KEYTYPE} -b 4096 -f ~/.ssh/id_${KEYTYPE}" > /dev/null
runuser -l sshkeytest -c "cat ~/.ssh/*pub > ~/.ssh/authorized_keys && chmod 600 ~/.ssh/*keys" > /dev/null
STRINGTEST=$(mktemp -u)
echo "${STRINGTEST}" > /home/sshkeytest/test_file
r_log "openssh" "Testing key: ${KEYTYPE}"
runuser -l sshkeytest -c "ssh -i ~/.ssh/id_${KEYTYPE} localhost | grep -q ${STRINGTEST} /home/sshkeytest/test_file"
ret_val=$?
r_checkExitStatus $ret_val
done
userdel -rf sshkeytest

View File

@ -1,4 +0,0 @@
#!/bin/bash
#
r_log "podman" "Installing podman"
p_installPackageNormal podman

View File

@ -1,32 +0,0 @@
#!/bin/bash
r_log "podman" "Testing podman"
test_to_run=(
"podman version"
"podman info"
"podman run --rm quay.io/rockylinux/rockylinux:${RL_VER}"
"podman system service -t 1"
"touch ${HOME}/test.txt && \
podman run --rm --privileged -v ${HOME}/test.txt:/test.txt quay.io/rockylinux/rockylinux:${RL_VER} bash -c 'echo HELLO > /test.txt' && \
grep -qe 'HELLO' ${HOME}/test.txt && \
rm -f ${HOME}/test.txt"
"printf \"FROM quay.io/rockylinux/rockylinux:${RL_VER}\nCMD echo 'HELLO'\n\" > ${HOME}/Containerfile && \
podman build -t test:latest -f ${HOME}/Containerfile && \
podman image rm localhost/test:latest && \
rm -rf ${HOME}/Containerfile"
)
tmpoutput="$(mktemp)"
trap 'rm -f ${tmpoutput}' EXIT
for command in "${test_to_run[@]}"; do
r_log "podman" "Running $0: ${command}"
if ! eval "${command}" > "${tmpoutput}" 2>&1; then
r_log "podman" "${command} has failed."
cat "${tmpoutput}"
exit 1
else
r_checkExitStatus 0
fi
done

View File

@ -1,31 +0,0 @@
#!/bin/bash
r_log "podman" "Testing podman sockets"
useradd podman-remote
loginctl enable-linger podman-remote
tmpoutput="$(mktemp)"
trap 'loginctl terminate-user podman-remote && loginctl disable-linger podman-remote && sleep 1 && userdel -r podman-remote && rm -f ${tmpoutput}' EXIT
sleep 3
su -l podman-remote > "${tmpoutput}" 2>&1 <<EOF
set -e
export XDG_RUNTIME_DIR=/run/user/\$(id -u)
systemctl --user enable --now podman.socket
podman --url unix://run/user/\$(id -u)/podman/podman.sock run --name port-mapping-test -d -p 8080:80 docker.io/nginx
pid=\$(systemctl --user show --property MainPID --value podman.service)
while [ "\${pid}" -ne 0 ] && [ -d /proc/\${pid} ]; do sleep 1; echo "Waiting for podman to exit"; done
podman --url unix://run/user/\$(id -u)/podman/podman.sock ps | grep -q -e port-mapping-test
podman --url unix://run/user/\$(id -u)/podman/podman.sock container rm -f port-mapping-test
systemctl --user disable --now podman.socket
EOF
ret_val=$?
if [ "$ret_val" -ne 0 ]; then
cat "${tmpoutput}"
r_checkExitStatus 1
fi
r_checkExitStatus 0

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
r_log "postfix" "Install postfix (requires stop of other pieces)" r_log "postfix" "Install postfix (requires stop of other pieces)"
# This is OK if it fails - This is also not logged except in stderr
m_serviceCycler sendmail stop m_serviceCycler sendmail stop
p_installPackageNormal postfix nc dovecot openssl p_installPackageNormal postfix nc dovecot openssl
m_serviceCycler postfix enable m_serviceCycler postfix enable

View File

@ -18,3 +18,6 @@ mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
mv /etc/postfix/main.cf.backup /etc/postfix/main.cf mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
r_checkExitStatus $ret_val r_checkExitStatus $ret_val
cp -a /etc/postfix/main.cf.backup /etc/postfix/main.cf
cp -a /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf

View File

@ -2,17 +2,6 @@
r_log "postfix" "Test postfix with TLS" r_log "postfix" "Test postfix with TLS"
DROPDIR=/var/tmp/postfix DROPDIR=/var/tmp/postfix
function cleanup() {
mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
rm /etc/pki/tls/certs/mail.crt
rm /etc/pki/tls/private/mail.key
rm -rf $DROPDIR/mail.*
rm -rf /var/tmp/postfix
}
trap cleanup EXIT
cp -a /etc/postfix/main.cf /etc/postfix/main.cf.backup cp -a /etc/postfix/main.cf /etc/postfix/main.cf.backup
cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.backup cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.backup
@ -70,4 +59,11 @@ r_log "postfix" "Testing that postfix offers STARTTLS"
echo "ehlo test" | nc -w 3 127.0.0.1 25 | grep -q "STARTTLS" echo "ehlo test" | nc -w 3 127.0.0.1 25 | grep -q "STARTTLS"
ret_val=$? ret_val=$?
r_checkExitStatus $ret_val mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
rm /etc/pki/tls/certs/mail.crt
rm /etc/pki/tls/certs/mail.key
rm -rf $DROPDIR/mail.*
rm -rf /var/tmp/postfix
r_checkExitStatus $?

View File

@ -1,19 +0,0 @@
#!/bin/bash
# Check that the release package is 1.X
r_log "rocky release" "Checking that the package is at least X.Y-1.B"
RELEASE_VER="$(rpm -q rocky-release --qf '%{RELEASE}')"
RELNUM="${RELEASE_VER:0:1}"
if [ "${RELNUM}" -ge "1" ]; then
if [[ "${RELEASE_VER:0:3}" =~ ^${RELNUM}.[[:digit:]] ]]; then
ret_val="0"
else
r_log "rocky release" "FAIL: The release package is not in X.Y-A.B format"
ret_val="1"
fi
else
r_log "rocky release" "FAIL: The release package likely starts with 0 and is not considered production ready."
ret_val="1"
fi
r_checkExitStatus $ret_val

View File

@ -8,12 +8,7 @@ if [ ! -d /sys/firmware/efi ]; then
exit 0 exit 0
fi fi
else else
if [[ "$rl_arch" == "x86_64" ]]; then p_installPackageNormal pesign
p_installPackageNormal pesign pesign --show-signature --in /boot/efi/EFI/rocky/shim.efi | grep -Eq "Microsoft Windows UEFI Driver Publisher"
pesign --show-signature --in /boot/efi/EFI/rocky/shim.efi | grep -Eq "Microsoft Windows UEFI Driver Publisher" r_checkExitStatus $?
r_checkExitStatus $?
else
r_log "secureboot" "x86_64 is the only supported secureboot arch at this time"
exit 0
fi
fi fi

View File

@ -1,11 +1,4 @@
#!/bin/bash #!/bin/bash
function cleanup() {
pwconv
rm -rf /var/tmp/pwunconv /var/tmp/pwconv
}
trap cleanup EXIT
r_log "shadow" "Check that pwck can use correct files" r_log "shadow" "Check that pwck can use correct files"
pwck -rq ./common/files/correct-passwd ./common/files/correct-shadow pwck -rq ./common/files/correct-passwd ./common/files/correct-shadow
r_checkExitStatus $? r_checkExitStatus $?
@ -15,11 +8,9 @@ pwck -rq ./common/files/incorrect-passwd ./common/files/incorrect-shadow
ret_val=$? ret_val=$?
if [ "$ret_val" -eq 0 ]; then if [ "$ret_val" -eq 0 ]; then
r_log "shadow" "They're correct." r_log "shadow" "They're correct."
r_checkExitStatus 1 exit 1
else
r_log "shadow" "They're incorrect."
r_checkExitStatus 0
fi fi
r_checkExitStatus 0
r_log "shadow" "Check that pwconv is functional" r_log "shadow" "Check that pwconv is functional"
mkdir -p /var/tmp/pwconv mkdir -p /var/tmp/pwconv

View File

@ -6,5 +6,5 @@ echo "rocky func" > /var/lib/tftpboot/tftptest
tftp 127.0.0.1 -c get tftptest tftp 127.0.0.1 -c get tftptest
grep -q "rocky func" tftptest grep -q "rocky func" tftptest
r_checkExitStatus $? r_checkExitStatus
/bin/rm tftptest /bin/rm tftptest

View File

@ -1,3 +0,0 @@
#!/bin/bash
r_log "pdf" "Install enscript, ghostscript, and poppler"
p_installPackageNormal fontconfig @fonts enscript ghostscript poppler-utils

View File

@ -1,23 +0,0 @@
#!/bin/bash
r_log "pdf" "Create a PDF from postscript from text, convert it back to text and check"
trap 'rm -rf $PSFILE $PDFFILE $TESTFILE' EXIT
TOFIND="BlueOnyx"
PSFILE="/var/tmp/test.ps"
PDFFILE="/var/tmp/test.pdf"
TESTFILE="/var/tmp/psresult"
encript -q -p $PSFILE /etc/rocky-release
r_log "pdf" "Check created file"
grep -q $TOFIND $PSFILE
pdf_ret_val=$?
r_checkExitStatus $pdf_ret_val
ps2pdf $PSFILE $PDFFILE
pdftotext -q $PDFFILE $TESTFILE
r_log "pdf" "Checking after conversion to text"
grep -q $TOFIND $TESTFILE
text_ret_val=$?
r_checkExitStatus $text_ret_val

View File

@ -30,16 +30,6 @@ if [ "$SELINUX" != "Enforcing" ]; then
exit 1 exit 1
fi fi
r_checkEPELEnabled
is_epel=$?
if [[ "$is_epel" == "0" ]]; then
echo "EPEL enabled. Stop."
r_log "internal" "EPEL enabled. Stop."
exit 1
fi
r_checkTmpNoExec
r_log "internal" "Starting Release Engineering Core Tests" r_log "internal" "Starting Release Engineering Core Tests"
################################################################################ ################################################################################
@ -62,7 +52,7 @@ fi
# TODO: get some stacks and lib in there # TODO: get some stacks and lib in there
r_processor <(/usr/bin/find ./core -type f | sort -t'/') r_processor <(/usr/bin/find ./core -type f | sort -t'/')
r_processor <(/usr/bin/find ./lib -type f | sort -t'/') #r_processor <(/usr/bin/find ./lib -type f | sort -t'/')
#r_processor <(/usr/bin/find ./stacks -type f | sort -t'/') #r_processor <(/usr/bin/find ./stacks -type f | sort -t'/')
r_log "internal" "Core Tests completed" r_log "internal" "Core Tests completed"

View File

@ -1,2 +1,7 @@
While not considered a "stack", it's a combination of many things at once. So While not considered a "stack", it's a combination of many things at once. So
it is being tested as a stack. it is being tested as a stack.
We will be testing mainly against EL8. It is not clear if EL9 will keep idm as
a module in 9. However, certain tests will be checking for the release just in
case that the modules will disappear. (I can only hope that it does and that
it just goes back to what Fedora is doing and what EL7 does). -label

View File

@ -1 +1 @@
__version__ = '0.6.1' __version__ = '0.5.0'

View File

@ -1,17 +1,17 @@
# All imports are here # All imports are here
import glob
import hashlib
import logging
import os import os
import platform import platform
import time import time
from collections import defaultdict import glob
from typing import Tuple
import rpm import rpm
import yaml import yaml
import logging
import hashlib
from collections import defaultdict
from typing import Tuple
# An implementation from the Fabric python library # An implementation from the Fabric python library
class AttributeDict(defaultdict): class AttributeDict(defaultdict):
def __init__(self): def __init__(self):
@ -26,31 +26,29 @@ class AttributeDict(defaultdict):
def __setattr__(self, key, value): def __setattr__(self, key, value):
self[key] = value self[key] = value
# These are a bunch of colors we may use in terminal output # These are a bunch of colors we may use in terminal output
class Color: class Color:
RED = "\033[91m" RED = '\033[91m'
GREEN = "\033[92m" GREEN = '\033[92m'
PURPLE = "\033[95m" PURPLE = '\033[95m'
CYAN = "\033[96m" CYAN = '\033[96m'
DARKCYAN = "\033[36m" DARKCYAN = '\033[36m'
BLUE = "\033[94m" BLUE = '\033[94m'
YELLOW = "\033[93m" YELLOW = '\033[93m'
UNDERLINE = "\033[4m" UNDERLINE = '\033[4m'
BOLD = "\033[1m" BOLD = '\033[1m'
END = "\033[0m" END = '\033[0m'
INFO = "[" + BOLD + GREEN + "INFO" + END + "] " INFO = '[' + BOLD + GREEN + 'INFO' + END + '] '
WARN = "[" + BOLD + YELLOW + "WARN" + END + "] " WARN = '[' + BOLD + YELLOW + 'WARN' + END + '] '
FAIL = "[" + BOLD + RED + "FAIL" + END + "] " FAIL = '[' + BOLD + RED + 'FAIL' + END + '] '
STAT = "[" + BOLD + CYAN + "STAT" + END + "] " STAT = '[' + BOLD + CYAN + 'STAT' + END + '] '
# vars and additional checks # vars and additional checks
rldict = AttributeDict() rldict = AttributeDict()
sigdict = AttributeDict() sigdict = AttributeDict()
config = { config = {
"rlmacro": rpm.expandMacro("%rhel"), "rlmacro": rpm.expandMacro('%rhel'),
"dist": "el" + rpm.expandMacro("%rhel"), "dist": 'el' + rpm.expandMacro('%rhel'),
"arch": platform.machine(), "arch": platform.machine(),
"date_stamp": time.strftime("%Y%m%d.%H%M%S", time.localtime()), "date_stamp": time.strftime("%Y%m%d.%H%M%S", time.localtime()),
"compose_root": "/mnt/compose", "compose_root": "/mnt/compose",
@ -68,29 +66,28 @@ config = {
"aarch64": "arm64", "aarch64": "arm64",
"ppc64le": "ppc64le", "ppc64le": "ppc64le",
"s390x": "s390x", "s390x": "s390x",
"i686": "386", "i686": "386"
}, },
"aws_region": "us-east-2", "aws_region": "us-east-2",
"bucket": "resf-empanadas", "bucket": "resf-empanadas",
"bucket_url": "https://resf-empanadas.s3.us-east-2.amazonaws.com", "bucket_url": "https://resf-empanadas.s3.us-east-2.amazonaws.com"
} }
# Importing the config from yaml # Importing the config from yaml
import importlib_resources import importlib_resources
_rootdir = importlib_resources.files("empanadas") _rootdir = importlib_resources.files("empanadas")
for conf in glob.iglob(f"{_rootdir}/configs/*.yaml"): for conf in glob.iglob(f"{_rootdir}/configs/*.yaml"):
with open(conf, "r", encoding="utf-8") as file: with open(conf, 'r', encoding="utf-8") as file:
rldict.update(yaml.safe_load(file)) rldict.update(yaml.safe_load(file))
# Import all SIG configs from yaml # Import all SIG configs from yaml
for conf in glob.iglob(f"{_rootdir}/sig/*.yaml"): for conf in glob.iglob(f"{_rootdir}/sig/*.yaml"):
with open(conf, "r", encoding="utf-8") as file: with open(conf, 'r', encoding="utf-8") as file:
sigdict.update(yaml.safe_load(file)) sigdict.update(yaml.safe_load(file))
# The system needs to be a RHEL-like system. It cannot be Fedora or SuSE. # The system needs to be a RHEL-like system. It cannot be Fedora or SuSE.
# if "%rhel" in config['rlmacro']: #if "%rhel" in config['rlmacro']:
# raise SystemExit(Color.BOLD + 'This is not a RHEL-like system.' + Color.END # raise SystemExit(Color.BOLD + 'This is not a RHEL-like system.' + Color.END
# + '\n\nPlease verify you are running on a RHEL-like system that is ' # + '\n\nPlease verify you are running on a RHEL-like system that is '
# 'not Fedora nor SuSE. This means that the %rhel macro will be ' # 'not Fedora nor SuSE. This means that the %rhel macro will be '
@ -99,25 +96,21 @@ for conf in glob.iglob(f"{_rootdir}/sig/*.yaml"):
# These will be set in their respective var files # These will be set in their respective var files
# REVISION = rlvars['revision'] + '-' + rlvars['rclvl'] #REVISION = rlvars['revision'] + '-' + rlvars['rclvl']
# rlvars = rldict[rlver] #rlvars = rldict[rlver]
# rlvars = rldict[rlmacro] #rlvars = rldict[rlmacro]
# COMPOSE_ISO_WORKDIR = COMPOSE_ROOT + "work/" + arch + "/" + date_stamp #COMPOSE_ISO_WORKDIR = COMPOSE_ROOT + "work/" + arch + "/" + date_stamp
ALLOWED_TYPE_VARIANTS = { ALLOWED_TYPE_VARIANTS = {
"Azure": ["Base", "LVM"], "Azure": ["Base", "LVM"],
"Container": ["Base", "Minimal", "UBI", "WSL"], "Container": ["Base", "Minimal", "UBI"],
"EC2": ["Base", "LVM"], "EC2": ["Base", "LVM"],
"GenericCloud": ["Base", "LVM"], "GenericCloud": ["Base", "LVM"],
"Vagrant": ["Libvirt", "Vbox", "VMware"], "Vagrant": ["Libvirt", "Vbox"],
"OCP": ["Base"], "OCP": None
"RPI": ["Base"],
"GenericArm": ["Minimal"],
} }
def valid_type_variant(_type: str, variant: str="") -> bool:
def valid_type_variant(_type: str, variant: str = "") -> bool:
if _type not in ALLOWED_TYPE_VARIANTS: if _type not in ALLOWED_TYPE_VARIANTS:
raise Exception(f"Type is invalid: ({_type}, {variant})") raise Exception(f"Type is invalid: ({_type}, {variant})")
if ALLOWED_TYPE_VARIANTS[_type] == None: if ALLOWED_TYPE_VARIANTS[_type] == None:
@ -125,19 +118,12 @@ def valid_type_variant(_type: str, variant: str = "") -> bool:
raise Exception(f"{_type} Type expects no variant type.") raise Exception(f"{_type} Type expects no variant type.")
return True return True
if variant not in ALLOWED_TYPE_VARIANTS[_type]: if variant not in ALLOWED_TYPE_VARIANTS[_type]:
if variant and variant.capitalize() in ALLOWED_TYPE_VARIANTS[_type]: if variant.capitalize() in ALLOWED_TYPE_VARIANTS[_type]:
raise Exception( raise Exception(f"Capitalization mismatch. Found: ({_type}, {variant}). Expected: ({_type}, {variant.capitalize()})")
f"Capitalization mismatch. Found: ({_type}, {variant}). Expected: ({_type}, {variant.capitalize()})" raise Exception(f"Type/Variant Combination is not allowed: ({_type}, {variant})")
)
raise Exception(
f"Type/Variant Combination is not allowed: ({_type}, {variant})"
)
return True return True
from attrs import define, field from attrs import define, field
@define(kw_only=True) @define(kw_only=True)
class Architecture: class Architecture:
name: str = field() name: str = field()

View File

@ -1,220 +0,0 @@
---
'10':
fullname: 'Rocky Linux 10.0'
revision: '10.0'
rclvl: 'RC1'
major: '10'
minor: '0'
profile: '10'
disttag: 'el10'
code: "Red Quartz"
bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256'
fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10/SOURCES/RPM-GPG-KEY-Rocky-10'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10/SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
provide_multilib: False
project_id: 'e7b83c0a-b514-4903-b739-6943bbb307f7'
repo_symlinks:
NFV: 'nfv'
renames:
all: 'devel'
all_repos:
- 'all'
- 'BaseOS'
- 'AppStream'
- 'CRB'
- 'HighAvailability'
- 'ResilientStorage'
- 'RT'
- 'NFV'
- 'SAP'
- 'SAPHANA'
- 'extras'
- 'plus'
extra_repos: []
structure:
packages: 'os/Packages'
repodata: 'os/repodata'
iso_map:
xorrisofs: True
iso_level: False
images:
dvd:
disc: True
variant: 'AppStream'
repos:
- 'BaseOS'
- 'AppStream'
minimal:
disc: True
isoskip: True
repos:
- 'minimal'
- 'BaseOS'
variant: 'minimal'
volname: 'dvd'
BaseOS:
disc: False
isoskip: True
variant: 'BaseOS'
repos:
- 'BaseOS'
- 'AppStream'
lorax:
noupgrade: False
squashfs_only: True
repos:
- 'BaseOS'
- 'AppStream'
variant: 'BaseOS'
lorax_removes: []
required_pkgs:
- 'lorax'
- 'isomd5sum'
- 'lorax-templates-rhel'
- 'lorax-templates-generic'
- 'xorriso'
cloudimages:
images:
Azure:
format: vhd
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2:
format: qcow2
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud:
format: qcow2
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container:
format: tar.xz
variants: [Base, Minimal, Toolbox, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP:
format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r10'
ksentry:
Workstation: rocky-live-workstation.ks
Workstation-Lite: rocky-live-workstation-lite.ks
XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches:
- x86_64
- aarch64
required_pkgs:
- 'lorax-lmc-novirt'
- 'vim-minimal'
- 'pykickstart'
- 'git'
kiwimap:
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
branch: 'r9'
required_pkgs:
- dracut-kiwi-live
- git
- kiwi
- kiwi-cli
- kiwi-systemdeps-bootloaders
- kiwi-systemdeps-containers
- kiwi-systemdeps-core
- kiwi-systemdeps-disk-images
- kiwi-systemdeps-filesystems
- kiwi-systemdeps-image-validation
- kiwi-systemdeps-iso-media
repoclosure_map:
arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch'
ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch'
s390x: '--forcearch=s390x --arch=s390x --arch=noarch'
repos:
devel: []
BaseOS: []
AppStream:
- BaseOS
CRB:
- BaseOS
- AppStream
HighAvailability:
- BaseOS
- AppStream
ResilientStorage:
- BaseOS
- AppStream
RT:
- BaseOS
- AppStream
NFV:
- BaseOS
- AppStream
SAP:
- BaseOS
- AppStream
- HighAvailability
SAPHANA:
- BaseOS
- AppStream
- HighAvailability
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10/'
branch: 'r10'
list:
- 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER'
- 'SOURCES/EULA'
- 'SOURCES/LICENSE'
- 'SOURCES/RPM-GPG-KEY-Rocky-10'
- 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
...

View File

@ -1,220 +0,0 @@
---
'10-lookahead':
fullname: 'Rocky Linux 10.0'
revision: '10.0'
rclvl: 'LH1'
major: '10'
minor: '0'
profile: '10-lookahead'
disttag: 'el10'
code: "Red Quartz"
bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256'
fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10s/SOURCES/RPM-GPG-KEY-Rocky-10'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10s/SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
provide_multilib: False
project_id: 'e7b83c0a-b514-4903-b739-6943bbb307f7'
repo_symlinks:
NFV: 'nfv'
renames:
all: 'devel'
all_repos:
- 'all'
- 'BaseOS'
- 'AppStream'
- 'CRB'
- 'HighAvailability'
- 'ResilientStorage'
- 'RT'
- 'NFV'
- 'SAP'
- 'SAPHANA'
- 'extras'
- 'plus'
extra_repos: []
structure:
packages: 'os/Packages'
repodata: 'os/repodata'
iso_map:
xorrisofs: True
iso_level: False
images:
dvd:
disc: True
variant: 'AppStream'
repos:
- 'BaseOS'
- 'AppStream'
minimal:
disc: True
isoskip: True
repos:
- 'minimal'
- 'BaseOS'
variant: 'minimal'
volname: 'dvd'
BaseOS:
disc: False
isoskip: True
variant: 'BaseOS'
repos:
- 'BaseOS'
- 'AppStream'
lorax:
noupgrade: False
squashfs_only: True
repos:
- 'BaseOS'
- 'AppStream'
variant: 'BaseOS'
lorax_removes: []
required_pkgs:
- 'lorax'
- 'isomd5sum'
- 'lorax-templates-rhel'
- 'lorax-templates-generic'
- 'xorriso'
cloudimages:
images:
Azure:
format: vhd
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2:
format: qcow2
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud:
format: qcow2
variants: [Base, LVM]
primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container:
format: tar.xz
variants: [Base, Minimal, Toolbox, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP:
format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r10'
ksentry:
Workstation: rocky-live-workstation.ks
Workstation-Lite: rocky-live-workstation-lite.ks
XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches:
- x86_64
- aarch64
required_pkgs:
- 'lorax-lmc-novirt'
- 'vim-minimal'
- 'pykickstart'
- 'git'
kiwimap:
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
branch: 'r9'
required_pkgs:
- dracut-kiwi-live
- git
- kiwi
- kiwi-cli
- kiwi-systemdeps-bootloaders
- kiwi-systemdeps-containers
- kiwi-systemdeps-core
- kiwi-systemdeps-disk-images
- kiwi-systemdeps-filesystems
- kiwi-systemdeps-image-validation
- kiwi-systemdeps-iso-media
repoclosure_map:
arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch'
ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch'
s390x: '--forcearch=s390x --arch=s390x --arch=noarch'
repos:
devel: []
BaseOS: []
AppStream:
- BaseOS
CRB:
- BaseOS
- AppStream
HighAvailability:
- BaseOS
- AppStream
ResilientStorage:
- BaseOS
- AppStream
RT:
- BaseOS
- AppStream
NFV:
- BaseOS
- AppStream
SAP:
- BaseOS
- AppStream
- HighAvailability
SAPHANA:
- BaseOS
- AppStream
- HighAvailability
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10s/'
branch: 'r10s'
list:
- 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER'
- 'SOURCES/EULA'
- 'SOURCES/LICENSE'
- 'SOURCES/RPM-GPG-KEY-Rocky-10'
- 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
...

View File

@ -7,13 +7,9 @@
minor: '7' minor: '7'
profile: '8' profile: '8'
disttag: 'el8' disttag: 'el8'
code: "Green Obsidian"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockyofficial'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockytesting'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -83,7 +79,7 @@
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
GenericCloud: GenericCloud:
@ -95,7 +91,6 @@
variants: [Base, Minimal, UBI] variants: [Base, Minimal, UBI]
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
livemap: livemap:
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r8' branch: 'r8'
@ -111,6 +106,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
variantmap:
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r8-beta'
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8-beta/'
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -140,6 +139,9 @@
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-rockyofficial'
testing: 'SOURCES/RPM-GPG-KEY-rockytesting'
list: list:
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'
- 'SOURCES/EULA' - 'SOURCES/EULA'

View File

@ -1,19 +1,15 @@
--- ---
'8': '8':
fullname: 'Rocky Linux 8' fullname: 'Rocky Linux 8'
revision: '8.10' revision: '8.7'
rclvl: 'RC1' rclvl: 'RC1'
major: '8' major: '8'
minor: '10' minor: '7'
profile: '8' profile: '8'
disttag: 'el8' disttag: 'el8'
code: "Green Obsidian"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockyofficial'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockytesting'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -82,59 +78,20 @@
format: vhd format: vhd
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud: GenericCloud:
format: qcow2 format: qcow2
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container: Container:
format: tar.xz format: tar.xz
variants: [Base, Minimal, Toolbox, UBI] variants: [Base, Minimal, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap: livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r8' branch: 'r8'
ksentry: ksentry:
@ -149,6 +106,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
variantmap:
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r8'
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8/'
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -178,6 +139,9 @@
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-rockyofficial'
testing: 'SOURCES/RPM-GPG-KEY-rockytesting'
list: list:
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'
- 'SOURCES/EULA' - 'SOURCES/EULA'

View File

@ -7,13 +7,9 @@
minor: '8' minor: '8'
profile: '8' profile: '8'
disttag: 'el8' disttag: 'el8'
code: "Green Obsidian"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockyofficial'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/SOURCES/RPM-GPG-KEY-rockytesting'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -83,7 +79,7 @@
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
GenericCloud: GenericCloud:
@ -95,7 +91,6 @@
variants: [Base, Minimal, UBI] variants: [Base, Minimal, UBI]
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
livemap: livemap:
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r8' branch: 'r8'
@ -111,6 +106,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
variantmap:
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r8s'
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8s/'
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -140,6 +139,9 @@
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-rockyofficial'
testing: 'SOURCES/RPM-GPG-KEY-rockytesting'
list: list:
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'
- 'SOURCES/EULA' - 'SOURCES/EULA'

View File

@ -1,26 +1,22 @@
--- ---
'9-beta': '9-beta':
fullname: 'Rocky Linux 9.4' fullname: 'Rocky Linux 9.2'
revision: '9.4' revision: '9.2'
rclvl: 'BETA1' rclvl: 'BETA1'
major: '9' major: '9'
minor: '4' minor: '2'
profile: '9-beta' profile: '9-beta'
disttag: 'el9' disttag: 'el9'
code: "Blue Onyx"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9-beta/SOURCES/RPM-GPG-KEY-Rocky-9'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9-beta/SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
- ppc64le - ppc64le
- s390x - s390x
provide_multilib: True provide_multilib: True
project_id: 'df5bcbfc-ba83-4da8-84d6-ae0168921b4d' project_id: '0048077b-1573-4cb7-8ba7-cce823857ba5'
repo_symlinks: repo_symlinks:
NFV: 'nfv' NFV: 'nfv'
renames: renames:
@ -38,13 +34,6 @@
- 'SAPHANA' - 'SAPHANA'
- 'extras' - 'extras'
- 'plus' - 'plus'
extra_repos:
- name: 'core-common'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
priority: '100'
- name: 'core-infra'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
priority: '100'
structure: structure:
packages: 'os/Packages' packages: 'os/Packages'
repodata: 'os/repodata' repodata: 'os/repodata'
@ -65,7 +54,6 @@
- 'minimal' - 'minimal'
- 'BaseOS' - 'BaseOS'
variant: 'minimal' variant: 'minimal'
volname: 'dvd'
BaseOS: BaseOS:
disc: False disc: False
isoskip: True isoskip: True
@ -74,13 +62,12 @@
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
lorax: lorax:
noupgrade: False
squashfs_only: True
repos: repos:
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
variant: 'BaseOS' variant: 'BaseOS'
lorax_removes: [] lorax_removes:
- 'libreport-rhel-anaconda-bugzilla'
required_pkgs: required_pkgs:
- 'lorax' - 'lorax'
- 'genisoimage' - 'genisoimage'
@ -94,68 +81,28 @@
format: vhd format: vhd
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud: GenericCloud:
format: qcow2 format: qcow2
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container: Container:
format: tar.xz format: tar.xz
variants: [Base, Minimal, Toolbox, UBI] variants: [Base, Minimal, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap: livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r9' branch: 'r9-beta'
ksentry: ksentry:
Workstation: rocky-live-workstation.ks Workstation: rocky-live-workstation.ks
Workstation-Lite: rocky-live-workstation-lite.ks Workstation-Lite: rocky-live-workstation-lite.ks
XFCE: rocky-live-xfce.ks XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -164,21 +111,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
kiwimap: variantmap:
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git' git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r9' branch: 'r9-beta'
required_pkgs: git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9-beta/'
- dracut-kiwi-live
- git
- kiwi
- kiwi-cli
- kiwi-systemdeps-bootloaders
- kiwi-systemdeps-containers
- kiwi-systemdeps-core
- kiwi-systemdeps-disk-images
- kiwi-systemdeps-filesystems
- kiwi-systemdeps-image-validation
- kiwi-systemdeps-iso-media
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -216,7 +152,10 @@
extra_files: extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
branch: 'r9-beta' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
list: list:
- 'SOURCES/Contributors' - 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'

View File

@ -1,26 +1,22 @@
--- ---
'9': '9':
fullname: 'Rocky Linux 9.4' fullname: 'Rocky Linux 9.1'
revision: '9.4' revision: '9.1'
rclvl: 'RC1' rclvl: 'RC1'
major: '9' major: '9'
minor: '4' minor: '1'
profile: '9' profile: '9'
disttag: 'el9' disttag: 'el9'
code: "Blue Onyx"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-9'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
- ppc64le - ppc64le
- s390x - s390x
provide_multilib: True provide_multilib: True
project_id: 'df5bcbfc-ba83-4da8-84d6-ae0168921b4d' project_id: '0048077b-1573-4cb7-8ba7-cce823857ba5'
repo_symlinks: repo_symlinks:
NFV: 'nfv' NFV: 'nfv'
renames: renames:
@ -38,13 +34,6 @@
- 'SAPHANA' - 'SAPHANA'
- 'extras' - 'extras'
- 'plus' - 'plus'
extra_repos:
- name: 'core-common'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
priority: '100'
- name: 'core-infra'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
priority: '100'
structure: structure:
packages: 'os/Packages' packages: 'os/Packages'
repodata: 'os/repodata' repodata: 'os/repodata'
@ -74,13 +63,12 @@
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
lorax: lorax:
noupgrade: False
squashfs_only: True
repos: repos:
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
variant: 'BaseOS' variant: 'BaseOS'
lorax_removes: [] lorax_removes:
- 'libreport-rhel-anaconda-bugzilla'
required_pkgs: required_pkgs:
- 'lorax' - 'lorax'
- 'genisoimage' - 'genisoimage'
@ -94,59 +82,20 @@
format: vhd format: vhd
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud: GenericCloud:
format: qcow2 format: qcow2
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container: Container:
format: tar.xz format: tar.xz
variants: [Base, Minimal, Toolbox, UBI] variants: [Base, Minimal, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap: livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r9' branch: 'r9'
ksentry: ksentry:
@ -155,7 +104,6 @@
XFCE: rocky-live-xfce.ks XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -164,21 +112,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
kiwimap: variantmap:
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git' git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r9' branch: 'r9'
required_pkgs: git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9/'
- dracut-kiwi-live
- git
- kiwi
- kiwi-cli
- kiwi-systemdeps-bootloaders
- kiwi-systemdeps-containers
- kiwi-systemdeps-core
- kiwi-systemdeps-disk-images
- kiwi-systemdeps-filesystems
- kiwi-systemdeps-image-validation
- kiwi-systemdeps-iso-media
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -217,6 +154,9 @@
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
list: list:
- 'SOURCES/Contributors' - 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'

View File

@ -8,13 +8,9 @@
minor: '0' minor: '0'
profile: '9' profile: '9'
disttag: 'el9' disttag: 'el9'
code: "Blue Onyx"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-9'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
allowed_arches: allowed_arches:
- armv7hl - armv7hl
- riscv64 - riscv64
@ -50,6 +46,9 @@
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
list: list:
- 'SOURCES/Contributors' - 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'

View File

@ -1,19 +1,15 @@
--- ---
'9-lookahead': '9-lookahead':
fullname: 'Rocky Linux 9.5' fullname: 'Rocky Linux 9.2'
revision: '9.5' revision: '9.2'
rclvl: 'LH1' rclvl: 'LH1'
major: '9' major: '9'
minor: '5' minor: '2'
profile: '9-lookahead' profile: '9-lookahead'
disttag: 'el9' disttag: 'el9'
code: "Blue Onyx"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20' fedora_major: '20'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9s/SOURCES/RPM-GPG-KEY-Rocky-9'
- 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9s/SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -38,13 +34,6 @@
- 'SAPHANA' - 'SAPHANA'
- 'extras' - 'extras'
- 'plus' - 'plus'
extra_repos:
- name: 'core-common'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
priority: '100'
- name: 'core-infra'
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
priority: '100'
structure: structure:
packages: 'os/Packages' packages: 'os/Packages'
repodata: 'os/repodata' repodata: 'os/repodata'
@ -65,7 +54,6 @@
- 'minimal' - 'minimal'
- 'BaseOS' - 'BaseOS'
variant: 'minimal' variant: 'minimal'
volname: 'dvd'
BaseOS: BaseOS:
disc: False disc: False
isoskip: True isoskip: True
@ -74,13 +62,12 @@
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
lorax: lorax:
noupgrade: False
squashfs_only: True
repos: repos:
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
variant: 'BaseOS' variant: 'BaseOS'
lorax_removes: [] lorax_removes:
- 'libreport-rhel-anaconda-bugzilla'
required_pkgs: required_pkgs:
- 'lorax' - 'lorax'
- 'genisoimage' - 'genisoimage'
@ -94,68 +81,28 @@
format: vhd format: vhd
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-Azure-Base
- Cloud-Azure-LVM
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-EC2-Base
- Cloud-EC2-LVM
GenericCloud: GenericCloud:
format: qcow2 format: qcow2
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
kiwi:
type: "oem"
profile_names:
- Cloud-GenericCloud-Base
- Cloud-GenericCloud-LVM
Container: Container:
format: tar.xz format: tar.xz
variants: [Base, Minimal, Toolbox, UBI] variants: [Base, Minimal, UBI]
kiwi:
type: "oci"
profile_names:
- Container-Base
- Container-Minimal
- Container-Toolbox
- Container-UBI
RPI:
format: raw.xz
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
kiwi:
type: "oem"
profile_names:
- Cloud-OCP-Base
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
kiwi:
type: "oem"
profile_names:
- Vagrant-Libvirt
- Vagrant-Vbox
- Vagrant-VMware
livemap: livemap:
builder: "lorax"
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'r9' branch: 'r9lh'
ksentry: ksentry:
Workstation: rocky-live-workstation.ks Workstation: rocky-live-workstation.ks
Workstation-Lite: rocky-live-workstation-lite.ks Workstation-Lite: rocky-live-workstation-lite.ks
XFCE: rocky-live-xfce.ks XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -164,21 +111,10 @@
- 'vim-minimal' - 'vim-minimal'
- 'pykickstart' - 'pykickstart'
- 'git' - 'git'
kiwimap: variantmap:
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git' git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
branch: 'r9' branch: 'r9lh'
required_pkgs: git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9lh/'
- dracut-kiwi-live
- git
- kiwi
- kiwi-cli
- kiwi-systemdeps-bootloaders
- kiwi-systemdeps-containers
- kiwi-systemdeps-core
- kiwi-systemdeps-disk-images
- kiwi-systemdeps-filesystems
- kiwi-systemdeps-image-validation
- kiwi-systemdeps-iso-media
repoclosure_map: repoclosure_map:
arches: arches:
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
@ -216,7 +152,10 @@
extra_files: extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
branch: 'r9s' branch: 'r9lh'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
list: list:
- 'SOURCES/Contributors' - 'SOURCES/Contributors'
- 'SOURCES/COMMUNITY-CHARTER' - 'SOURCES/COMMUNITY-CHARTER'

View File

@ -2,15 +2,12 @@
'rln': 'rln':
fullname: 'Rocky Linux New' fullname: 'Rocky Linux New'
revision: '10' revision: '10'
rclvl: 'RLN134' rclvl: 'RLN120'
major: '10' major: '10'
minor: '0' minor: '0'
profile: 'rln' profile: 'rln'
disttag: 'rln134'
code: "Silver Magma"
bugurl: 'https://bugs.rockylinux.org' bugurl: 'https://bugs.rockylinux.org'
checksum: 'sha256' checksum: 'sha256'
fedora_major: '20'
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64
@ -53,9 +50,7 @@
isoskip: True isoskip: True
repos: repos:
- 'minimal' - 'minimal'
- 'BaseOS'
variant: 'minimal' variant: 'minimal'
volname: 'dvd'
BaseOS: BaseOS:
disc: False disc: False
isoskip: True isoskip: True
@ -64,7 +59,6 @@
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
lorax: lorax:
noupgrade: False
repos: repos:
- 'BaseOS' - 'BaseOS'
- 'AppStream' - 'AppStream'
@ -85,7 +79,7 @@
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
EC2: EC2:
format: qcow2 format: raw
variants: [Base, LVM] variants: [Base, LVM]
primary_variant: 'Base' primary_variant: 'Base'
GenericCloud: GenericCloud:
@ -95,14 +89,8 @@
Container: Container:
format: tar.xz format: tar.xz
variants: [Base, Minimal, UBI] variants: [Base, Minimal, UBI]
RPI:
format: raw.xz
OCP: OCP:
format: qcow2 format: qcow2
variants: [Base]
Vagrant:
format: box
variants: [Libvirt, Vbox, VMware]
livemap: livemap:
git_repo: 'https://git.resf.org/sig_core/kickstarts.git' git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
branch: 'rln' branch: 'rln'
@ -111,8 +99,6 @@
Workstation-Lite: rocky-live-workstation-lite.ks Workstation-Lite: rocky-live-workstation-lite.ks
XFCE: rocky-live-xfce.ks XFCE: rocky-live-xfce.ks
KDE: rocky-live-kde.ks KDE: rocky-live-kde.ks
MATE: rocky-live-mate.ks
Cinnamon: rocky-live-cinnamon.ks
allowed_arches: allowed_arches:
- x86_64 - x86_64
- aarch64 - aarch64

View File

@ -31,7 +31,6 @@ parser.add_argument('--type', type=str, help="Image type (container, genclo, azu
parser.add_argument('--variant', type=str, help="", required=False) parser.add_argument('--variant', type=str, help="", required=False)
parser.add_argument('--release', type=str, help="Image release for subsequent builds with the same date stamp (rarely needed)", required=False) parser.add_argument('--release', type=str, help="Image release for subsequent builds with the same date stamp (rarely needed)", required=False)
parser.add_argument('--kube', action='store_true', help="output as a K8s job(s)", required=False) parser.add_argument('--kube', action='store_true', help="output as a K8s job(s)", required=False)
parser.add_argument('--timeout', type=str, help="change timeout for imagefactory build process (default 3600)", required=False, default='3600')
results = parser.parse_args() results = parser.parse_args()
@ -81,7 +80,6 @@ class ImageBuild:
target_uuid: Optional[str] = field(default="") target_uuid: Optional[str] = field(default="")
tdl_path: pathlib.Path = field(init=False) tdl_path: pathlib.Path = field(init=False)
template: Template = field() template: Template = field()
timeout: str = field(default='3600')
type_variant: str = field(init=False) type_variant: str = field(init=False)
variant: Optional[str] = field() variant: Optional[str] = field()
@ -96,13 +94,46 @@ class ImageBuild:
self.package_args = self._package_args() self.package_args = self._package_args()
self.common_args = self._common_args() self.common_args = self._common_args()
self.metadata = pathlib.Path(self.outdir, ".imagefactory-metadata.json") self.metadata = pathlib.Path(self.outdir, "metadata.json")
self.kickstart_path = pathlib.Path(f"{KICKSTART_PATH}/Rocky-{self.architecture.major}-{self.type_variant}.ks") self.kickstart_path = pathlib.Path(f"{KICKSTART_PATH}/Rocky-{self.architecture.major}-{self.type_variant}.ks")
self.checkout_kickstarts() self.checkout_kickstarts()
self.kickstart_arg = self.kickstart_imagefactory_args() self.kickstart_arg = self.kickstart_imagefactory_args()
# Yes, this is gross. I'll fix it later.
if self.image_type in ["Container"]:
self.stage_commands = [
["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"],
["xz", f"{self.outdir}/layer.tar"]
]
if self.image_type in ["GenericCloud", "OCP"]:
self.stage_commands = [
["qemu-img", "convert", "-c", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
]
if self.image_type in ["EC2"]:
self.stage_commands = [
["qemu-img", "convert", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
]
if self.image_type in ["Azure"]:
self.stage_commands = [
["/prep-azure.sh", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{STORAGE_DIR}"],
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.vhd", f"{self.outdir}/{self.outname}.vhd"]
]
if self.image_type in ["Vagrant"]:
_map = {
"Vbox": "vmdk",
"Libvirt": "qcow2"
}
output = f"{_map[self.variant]}" #type: ignore
self.stage_commands = [
["qemu-img", "convert", "-c", "-f", "raw", "-O", output, lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.{output}"]
]
if self.stage_commands:
self.stage_commands.append(["cp", "-v", lambda: f"{STORAGE_DIR}/{self.target_uuid}.meta", f"{self.outdir}/build.meta"])
try: try:
os.mkdir(self.outdir) os.mkdir(self.outdir)
except FileExistsError as e: except FileExistsError as e:
@ -122,82 +153,6 @@ class ImageBuild:
finally: finally:
f.flush() f.flush()
# Yes, this is gross. I'll fix it later.
if self.image_type in ["Container"]:
self.stage_commands = [
["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"],
["xz", f"{self.outdir}/layer.tar"]
]
if self.image_type in ["RPI"]:
self.stage_commands = [
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.raw"],
["xz", f"{self.outdir}/{self.outname}.raw"]
]
if self.image_type in ["GenericCloud", "OCP", "GenericArm"]:
self.stage_commands = [
["qemu-img", "convert", "-c", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
]
if self.image_type in ["EC2"]:
self.stage_commands = [
["qemu-img", "convert", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
]
if self.image_type in ["Azure"]:
self.stage_commands = [
["/prep-azure.sh", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{STORAGE_DIR}"],
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.vhd", f"{self.outdir}/{self.outname}.vhd"]
]
if self.image_type in ["Vagrant"]:
_map = {
"Vbox": {"format": "vmdk", "provider": "virtualbox"},
"Libvirt": {"format": "qcow2", "provider": "libvirt", "virtual_size": 10},
"VMware": {"format": "vmdk", "provider": "vmware_desktop"}
}
output = f"{_map[self.variant]['format']}" #type: ignore
provider = f"{_map[self.variant]['provider']}" # type: ignore
# pop from the options map that will be passed to the vagrant metadata.json
convert_options = _map[self.variant].pop('convertOptions') if 'convertOptions' in _map[self.variant].keys() else '' #type: ignore
self.stage_commands = [
["qemu-img", "convert", "-c", "-f", "raw", "-O", output, *convert_options, lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.{output}"],
["tar", "-C", self.outdir, "-czf", f"/tmp/{self.outname}.box", '.'],
["mv", f"/tmp/{self.outname}.box", self.outdir]
]
self.prepare_vagrant(_map[self.variant])
if self.stage_commands:
self.stage_commands.append(["cp", "-v", lambda: f"{STORAGE_DIR}/{self.target_uuid}.meta", f"{self.outdir}/build.meta"])
def prepare_vagrant(self, options):
"""Setup the output directory for the Vagrant type variant, dropping templates as required"""
file_loader = FileSystemLoader(f"{_rootdir}/templates")
tmplenv = Environment(loader=file_loader)
templates = {}
templates['Vagrantfile'] = tmplenv.get_template(f"vagrant/Vagrantfile.{self.variant}")
templates['metadata.json'] = tmplenv.get_template('vagrant/metadata.tmpl.json')
templates['info.json'] = tmplenv.get_template('vagrant/info.tmpl.json')
if self.variant == "VMware":
templates[f"{self.outname}.vmx"] = tmplenv.get_template('vagrant/vmx.tmpl')
if self.variant == "Vbox":
templates['box.ovf'] = tmplenv.get_template('vagrant/box.tmpl.ovf')
if self.variant == "Libvirt":
# Libvirt vagrant driver expects the qcow2 file to be called box.img.
qemu_command_index = [i for i, d in enumerate(self.stage_commands) if d[0] == "qemu-img"][0]
self.stage_commands.insert(qemu_command_index+1, ["mv", f"{self.outdir}/{self.outname}.qcow2", f"{self.outdir}/box.img"])
for name, template in templates.items():
self.render_template(f"{self.outdir}/{name}", template,
name=self.outname,
arch=self.architecture.name,
options=options
)
def checkout_kickstarts(self) -> int: def checkout_kickstarts(self) -> int:
cmd = ["git", "clone", "--branch", f"r{self.architecture.major}", rlvars['livemap']['git_repo'], f"{KICKSTART_PATH}"] cmd = ["git", "clone", "--branch", f"r{self.architecture.major}", rlvars['livemap']['git_repo'], f"{KICKSTART_PATH}"]
ret, out, err, _ = self.runCmd(cmd, search=False) ret, out, err, _ = self.runCmd(cmd, search=False)
@ -231,20 +186,20 @@ class ImageBuild:
def _command_args(self): def _command_args(self):
args_mapping = { args_mapping = {
"debug": "--debug", "debug": "--debug"
} }
return [param for name, param in args_mapping.items() if getattr(self.cli_args, name)] return [param for name, param in args_mapping.items() if getattr(self.cli_args, name)]
def _package_args(self) -> List[str]: def _package_args(self) -> List[str]:
if self.image_type in ["Container"]: if self.image_type == "Container":
return ["--parameter", "compress", "xz"] return ["--parameter", "compress", "xz"]
return [""] return [""]
def _common_args(self) -> List[str]: def _common_args(self) -> List[str]:
args = [] args = []
if self.image_type in ["Container"]: if self.image_type == "Container":
args = ["--parameter", "offline_icicle", "true"] args = ["--parameter", "offline_icicle", "true"]
if self.image_type in ["GenericCloud", "EC2", "Vagrant", "Azure", "OCP", "RPI", "GenericArm"]: if self.image_type in ["GenericCloud", "EC2", "Vagrant", "Azure", "OCP"]:
args = ["--parameter", "generate_icicle", "false"] args = ["--parameter", "generate_icicle", "false"]
return args return args
@ -257,27 +212,19 @@ class ImageBuild:
def kickstart_imagefactory_args(self) -> List[str]: def kickstart_imagefactory_args(self) -> List[str]:
if not self.kickstart_path.is_file(): if not self.kickstart_path.is_file():
log.warning(f"Kickstart file is not available: {self.kickstart_path}") log.warn(f"Kickstart file is not available: {self.kickstart_path}")
if not debug: if not debug:
log.warning("Exiting because debug mode is not enabled.") log.warn("Exiting because debug mode is not enabled.")
exit(2) exit(2)
return ["--file-parameter", "install_script", str(self.kickstart_path)] return ["--file-parameter", "install_script", str(self.kickstart_path)]
def render_template(self, path, template, **kwargs) -> pathlib.Path:
with open(path, "wb") as f:
_template = template.render(**kwargs)
f.write(_template.encode())
f.flush()
output = pathlib.Path(path)
if not output.exists():
log.error("Failed to write template")
raise Exception("Failed to template")
return output
def render_icicle_template(self) -> pathlib.Path: def render_icicle_template(self) -> pathlib.Path:
output = tempfile.NamedTemporaryFile(delete=False).name handle, output = tempfile.mkstemp()
return self.render_template(output, self.template, if not handle:
exit(3)
with os.fdopen(handle, "wb") as tmp:
_template = self.template.render(
architecture=self.architecture.name, architecture=self.architecture.name,
iso8601date=BUILDTIME.strftime("%Y%m%d"), iso8601date=BUILDTIME.strftime("%Y%m%d"),
installdir="kickstart" if self.cli_args.kickstartdir else "os", installdir="kickstart" if self.cli_args.kickstartdir else "os",
@ -289,15 +236,27 @@ class ImageBuild:
utcnow=BUILDTIME, utcnow=BUILDTIME,
version_variant=self.architecture.version if not self.variant else f"{self.architecture.version}-{self.variant}", version_variant=self.architecture.version if not self.variant else f"{self.architecture.version}-{self.variant}",
) )
tmp.write(_template.encode())
tmp.flush()
output = pathlib.Path(output)
if not output.exists():
log.error("Failed to write TDL template")
raise Exception("Failed to write TDL template")
return output
def build_command(self) -> List[str]: def build_command(self) -> List[str]:
build_command = ["imagefactory", "--timeout", self.timeout, *self.command_args, "base_image", *self.common_args, *self.kickstart_arg, self.tdl_path] build_command = ["imagefactory", *self.command_args, "base_image", *self.common_args, *self.kickstart_arg, self.tdl_path
# "|", "tee", "-a", f"{outdir}/logs/base_image-{outname}.out",
# "|", "tail", "-n4", ">", f"{outdir}/base.meta", "||", "exit", "2"
]
return build_command return build_command
def package_command(self) -> List[str]: def package_command(self) -> List[str]:
package_command = ["imagefactory", *self.command_args, "target_image", self.out_type, *self.common_args, package_command = ["imagefactory", *self.command_args, "target_image", self.out_type, *self.common_args,
"--id", f"{self.base_uuid}", "--id", f"{self.base_uuid}",
*self.package_args, *self.package_args,
"--parameter", "repository", self.outname, "--parameter", "repository", self.outname,
# "|", "tee", "-a", f"{outdir}/base_image-{outname}.out",
# "|", "tail", "-n4", ">", f"{outdir}/target.meta", "||", "exit", "3"
] ]
return package_command return package_command
@ -324,7 +283,7 @@ class ImageBuild:
def package(self) -> int: def package(self) -> int:
# Some build types don't need to be packaged by imagefactory # Some build types don't need to be packaged by imagefactory
# @TODO remove business logic if possible # @TODO remove business logic if possible
if self.image_type in ["GenericCloud", "EC2", "Azure", "Vagrant", "OCP", "RPI", "GenericArm"]: if self.image_type in ["GenericCloud", "EC2", "Azure", "Vagrant", "OCP"]:
self.target_uuid = self.base_uuid if hasattr(self, 'base_uuid') else "" self.target_uuid = self.base_uuid if hasattr(self, 'base_uuid') else ""
if self.target_uuid: if self.target_uuid:
@ -440,7 +399,7 @@ class ImageBuild:
return template return template
def save(self): def save(self):
with open(self.metadata, "w") as f: with open(pathlib.Path(self.outdir, "metadata.json"), "w") as f:
try: try:
o = { name: getattr(self, name) for name in ["base_uuid", "target_uuid"] } o = { name: getattr(self, name) for name in ["base_uuid", "target_uuid"] }
log.debug(o) log.debug(o)

View File

@ -11,15 +11,12 @@ parser = argparse.ArgumentParser(description="Live ISO Compose")
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True) parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
parser.add_argument('--isolation', type=str, help="Mock Isolation") parser.add_argument('--isolation', type=str, help="Mock Isolation")
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here") parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
parser.add_argument('--peridot', action='store_true', help="Use peridot repos")
parser.add_argument('--image', type=str, help="Granular choice in which live image is built") parser.add_argument('--image', type=str, help="Granular choice in which live image is built")
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
parser.add_argument('--live-iso-mode', type=str, default='local') parser.add_argument('--live-iso-mode', type=str, default='local')
parser.add_argument('--hashed', action='store_true') parser.add_argument('--hashed', action='store_true')
parser.add_argument('--just-copy-it', action='store_true', help="Just copy the images to the compose dir") parser.add_argument('--just-copy-it', action='store_true', help="Just copy the images to the compose dir")
parser.add_argument('--force-build', action='store_true', help="Just build and overwrite the images") parser.add_argument('--force-build', action='store_true', help="Just build and overwrite the images")
parser.add_argument('--builder', type=str, help="Choose a builder type and override the set value in the configs")
parser.add_argument('--increment', type=str, help="Changes the default increment of 0 to a number of your choice", default="0")
results = parser.parse_args() results = parser.parse_args()
rlvars = rldict[results.release] rlvars = rldict[results.release]
major = rlvars['major'] major = rlvars['major']
@ -32,12 +29,9 @@ a = LiveBuild(
live_iso_mode=results.live_iso_mode, live_iso_mode=results.live_iso_mode,
image=results.image, image=results.image,
compose_dir_is_here=results.local_compose, compose_dir_is_here=results.local_compose,
peridot=results.peridot,
hashed=results.hashed, hashed=results.hashed,
justcopyit=results.just_copy_it, justcopyit=results.just_copy_it,
force_build=results.force_build, force_build=results.force_build,
builder=results.builder,
image_increment=results.increment,
logger=results.logger logger=results.logger
) )

View File

@ -12,7 +12,6 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
# All of our options # All of our options
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True) parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
parser.add_argument('--arch', type=str, help="Architecture") parser.add_argument('--arch', type=str, help="Architecture")
parser.add_argument('--fpsync', type=str, help="Use fpsync instead of rsync")
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
# Parse them # Parse them
@ -29,7 +28,6 @@ a = RepoSync(
config, config,
major=major, major=major,
arch=results.arch, arch=results.arch,
fpsync=results.fpsync,
logger=results.logger, logger=results.logger,
) )

View File

@ -1,6 +1,5 @@
# This script can be called to do single syncs or full on syncs. # This script can be called to do single syncs or full on syncs.
import os
import argparse import argparse
import logging import logging
import sys import sys
@ -17,7 +16,6 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True) parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
parser.add_argument('--sig', type=str, help="SIG Name if applicable") parser.add_argument('--sig', type=str, help="SIG Name if applicable")
parser.add_argument('--symlink', action='store_true', help="symlink to latest") parser.add_argument('--symlink', action='store_true', help="symlink to latest")
parser.add_argument('--copy-old-compose', action='store_true', help="Runs an rsync from previous compose")
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
# Parse them # Parse them
@ -61,21 +59,16 @@ def run():
date_stamp, date_stamp,
logger logger
) )
compose_latest_dir = os.path.join(
config['compose_root'],
major,
"latest-{}-{}".format(
shortname,
profile,
)
)
if results.copy_old_compose:
if os.path.exists(compose_latest_dir):
previous_compose_path = os.path.realpath(compose_latest_dir)
else:
log.warning('No symlink exists; we cannot copy from the old compose')
if results.symlink: if results.symlink:
compose_latest_dir = os.path.join(
config['compose_root'],
major,
"latest-{}-{}".format(
shortname,
profile,
)
)
if os.path.exists(compose_latest_dir): if os.path.exists(compose_latest_dir):
os.remove(compose_latest_dir) os.remove(compose_latest_dir)

View File

@ -16,7 +16,6 @@ parser.add_argument('--rc', action='store_true', help="Release Candidate, Beta,
results = parser.parse_args() results = parser.parse_args()
rlvars = rldict[results.release] rlvars = rldict[results.release]
major = rlvars['major'] major = rlvars['major']
minor = rlvars['minor']
EXTARCH=["s390x", "ppc64le"] EXTARCH=["s390x", "ppc64le"]
EKSARCH=["amd64", "arm64"] EKSARCH=["amd64", "arm64"]
@ -32,18 +31,16 @@ def run():
elif results.env == "all": elif results.env == "all":
arches = EKSARCH+EXTARCH arches = EKSARCH+EXTARCH
command = ["build-iso", "--release", f"{results.release}", "--isolation", "simple"] command = ["build-iso", "--release", f"{results.release}", "--isolation", "simple", "--hashed"]
if results.rc: if results.rc:
command += ["--rc"] command += ["--rc"]
else:
command += ["--hashed"]
buildstamp = datetime.datetime.utcnow() buildstamp = datetime.datetime.utcnow()
out = "" out = ""
for architecture in arches: for architecture in arches:
copy_command = (f"aws s3 cp --recursive --exclude=* --include=lorax* " copy_command = (f"aws s3 cp --recursive --exclude=* --include=lorax* "
f"/var/lib/mock/rocky-{ major }.{ minor }-$(uname -m)/root/builddir/ " f"/var/lib/mock/rocky-{ major }-$(uname -m)/root/builddir/ "
f"s3://resf-empanadas/buildiso-{ major }-{ architecture }/{ buildstamp.strftime('%s') }/" f"s3://resf-empanadas/buildiso-{ major }-{ architecture }/{ buildstamp.strftime('%s') }/"
) )
out += job_template.render( out += job_template.render(
@ -55,7 +52,6 @@ def run():
jobname="buildiso", jobname="buildiso",
namespace="empanadas", namespace="empanadas",
major=major, major=major,
minor=minor,
restartPolicy="Never", restartPolicy="Never",
) )

View File

@ -13,9 +13,6 @@ parser.add_argument('--s3', action='store_true', help="S3")
parser.add_argument('--arch', type=str, help="Architecture") parser.add_argument('--arch', type=str, help="Architecture")
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here") parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
parser.add_argument('--force-download', action='store_true', help="Force a download") parser.add_argument('--force-download', action='store_true', help="Force a download")
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
results = parser.parse_args() results = parser.parse_args()
rlvars = rldict[results.release] rlvars = rldict[results.release]
@ -29,9 +26,6 @@ a = IsoBuild(
arch=results.arch, arch=results.arch,
force_download=results.force_download, force_download=results.force_download,
compose_dir_is_here=results.local_compose, compose_dir_is_here=results.local_compose,
s3_region=results.s3_region,
s3_bucket=results.s3_bucket,
s3_bucket_url=results.s3_bucket_url,
logger=results.logger, logger=results.logger,
) )

View File

@ -1,39 +0,0 @@
# builds ISO's
import argparse
from empanadas.common import *
from empanadas.util import Checks
from empanadas.util import IsoBuild
parser = argparse.ArgumentParser(description="ISO Artifact Builder")
parser.add_argument('--release', type=str, help="Major Release Version", required=True)
parser.add_argument('--s3', action='store_true', help="S3")
parser.add_argument('--arch', type=str, help="Architecture")
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
parser.add_argument('--force-download', action='store_true', help="Force a download")
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
parser.add_argument('--logger', type=str)
results = parser.parse_args()
rlvars = rldict[results.release]
major = rlvars['major']
a = IsoBuild(
rlvars,
config,
major=major,
s3=results.s3,
arch=results.arch,
force_download=results.force_download,
compose_dir_is_here=results.local_compose,
s3_region=result.s3_region,
s3_bucket=result.s3_bucket,
s3_bucket_url=result.s3_bucket_url,
logger=results.logger,
)
def run():
a.run_pull_iso_images()

View File

@ -15,9 +15,6 @@ parser.add_argument('--arch', type=str, help="Architecture")
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here") parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
parser.add_argument('--force-unpack', action='store_true', help="Force an unpack") parser.add_argument('--force-unpack', action='store_true', help="Force an unpack")
parser.add_argument('--force-download', action='store_true', help="Force a download") parser.add_argument('--force-download', action='store_true', help="Force a download")
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
results = parser.parse_args() results = parser.parse_args()
rlvars = rldict[results.release] rlvars = rldict[results.release]
@ -33,9 +30,6 @@ a = IsoBuild(
force_unpack=results.force_unpack, force_unpack=results.force_unpack,
force_download=results.force_download, force_download=results.force_download,
compose_dir_is_here=results.local_compose, compose_dir_is_here=results.local_compose,
s3_region=results.s3_region,
s3_bucket=results.s3_bucket,
s3_bucket_url=results.s3_bucket_url,
logger=results.logger, logger=results.logger,
) )

View File

@ -1,33 +0,0 @@
# This script can be called to do single syncs or full on syncs.
import argparse
from empanadas.common import *
from empanadas.util import Checks
from empanadas.util import RepoSync
# Start up the parser baby
parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
# All of our options
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
parser.add_argument('--logger', type=str)
# Parse them
results = parser.parse_args()
rlvars = rldict[results.release]
major = rlvars['major']
r = Checks(rlvars, config['arch'])
r.check_validity()
# Send them and do whatever I guess
a = RepoSync(
rlvars,
config,
major=major,
logger=results.logger,
)
def run():
a.refresh_compose_treeinfo()

View File

@ -29,7 +29,6 @@ parser.add_argument('--refresh-extra-files', action='store_true')
# I am aware this is confusing, I want podman to be the default option # I am aware this is confusing, I want podman to be the default option
parser.add_argument('--simple', action='store_false') parser.add_argument('--simple', action='store_false')
parser.add_argument('--logger', type=str) parser.add_argument('--logger', type=str)
parser.add_argument('--log-level', type=str, default='INFO')
parser.add_argument('--disable-gpg-check', action='store_false') parser.add_argument('--disable-gpg-check', action='store_false')
parser.add_argument('--disable-repo-gpg-check', action='store_false') parser.add_argument('--disable-repo-gpg-check', action='store_false')
parser.add_argument('--clean-old-packages', action='store_true') parser.add_argument('--clean-old-packages', action='store_true')
@ -61,7 +60,6 @@ a = SigRepoSync(
nofail=results.no_fail, nofail=results.no_fail,
refresh_extra_files=results.refresh_extra_files, refresh_extra_files=results.refresh_extra_files,
logger=results.logger, logger=results.logger,
log_level=results.log_level,
gpg_check=results.disable_gpg_check, gpg_check=results.disable_gpg_check,
repo_gpg_check=results.disable_repo_gpg_check, repo_gpg_check=results.disable_repo_gpg_check,
reposync_clean_old=results.clean_old_packages, reposync_clean_old=results.clean_old_packages,

View File

@ -3,8 +3,6 @@ altarch:
'8': '8':
profile: 'altarch' profile: 'altarch'
project_id: 'a1aac235-dd66-4d5b-8ff0-87467732f322' project_id: 'a1aac235-dd66-4d5b-8ff0-87467732f322'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
repo: repo:
altarch-common: altarch-common:
allowed_arches: allowed_arches:
@ -12,22 +10,19 @@ altarch:
altarch-rockyrpi: altarch-rockyrpi:
allowed_arches: allowed_arches:
- aarch64 - aarch64
altarch-devel:
allowed_arches:
- aarch64
additional_dirs: additional_dirs:
- 'images' - 'images'
extra_files: extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
'9': '9':
profile: 'altarch' profile: 'altarch'
project_id: '6047887d-a395-4bc7-a0bd-fc1873b5d13d' project_id: '6047887d-a395-4bc7-a0bd-fc1873b5d13d'
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
repo: repo:
altarch-common: altarch-common:
allowed_arches: allowed_arches:
@ -35,15 +30,14 @@ altarch:
altarch-rockyrpi: altarch-rockyrpi:
allowed_arches: allowed_arches:
- aarch64 - aarch64
altarch-devel:
allowed_arches:
- aarch64
additional_dirs: additional_dirs:
- 'images' - 'images'
extra_files: extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch'
... ...

View File

@ -4,8 +4,6 @@ cloud:
profile: 'cloud' profile: 'cloud'
project_id: 'f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c' project_id: 'f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
repo: repo:
cloud-kernel: cloud-kernel:
allowed_arches: allowed_arches:
@ -19,14 +17,14 @@ cloud:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
'9': '9':
profile: 'cloud' profile: 'cloud'
project_id: '15016370-1410-4459-a1a2-a1576041fd19' project_id: '15016370-1410-4459-a1a2-a1576041fd19'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
repo: repo:
cloud-kernel: cloud-kernel:
allowed_arches: allowed_arches:
@ -42,6 +40,8 @@ cloud:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud'
... ...

View File

@ -2,10 +2,8 @@
core: core:
'8': '8':
profile: 'core' profile: 'core'
project_id: '91e0dd2f-448e-4b75-9066-3946aceb60db' project_id: ''
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
repo: repo:
core-common: core-common:
allowed_arches: allowed_arches:
@ -19,14 +17,14 @@ core:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
'9': '9':
profile: 'core' profile: 'core'
project_id: '47e0b4a8-84ba-43a9-bb94-eb99dde4cf14' project_id: ''
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
repo: repo:
core-common: core-common:
allowed_arches: allowed_arches:
@ -44,6 +42,8 @@ core:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
... ...

View File

@ -4,8 +4,6 @@ desktop:
profile: 'desktop' profile: 'desktop'
project_id: '8b3c9b53-0633-47bd-98a3-1ca3ec141278' project_id: '8b3c9b53-0633-47bd-98a3-1ca3ec141278'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
repo: repo:
desktop-common: desktop-common:
allowed_arches: allowed_arches:
@ -15,14 +13,14 @@ desktop:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
'9': '9':
profile: 'desktop' profile: 'desktop'
project_id: 'b0460c25-22cf-496c-a3a3-067b9a2af14a' project_id: 'b0460c25-22cf-496c-a3a3-067b9a2af14a'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
repo: repo:
desktop-common: desktop-common:
allowed_arches: allowed_arches:
@ -32,6 +30,8 @@ desktop:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop'
... ...

View File

@ -1,39 +0,0 @@
---
fasttrack:
'8':
profile: 'fasttrack'
project_id: ''
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
repo:
fasttrack-common:
allowed_arches:
- x86_64
- aarch64
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r8/'
branch: 'r8'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
'9':
profile: 'fasttrack'
project_id: ''
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
repo:
fasttrack-common:
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r9/'
branch: 'r9'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
...

View File

@ -1,49 +0,0 @@
---
hpc:
'8':
profile: 'hpc'
project_id: '78a2db02-ebe5-4654-9a04-6482eb9c8b84'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
repo:
hpc-common:
allowed_arches:
- x86_64
- aarch64
hpc-core:
allowed_arches:
- x86_64
- aarch64
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-hpc.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r8/'
branch: 'r8'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
'9':
profile: 'hpc'
project_id: 'aee28795-e163-4a99-935d-f0a78cf33e75'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
repo:
hpc-common:
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
hpc-core:
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-hpc.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r9/'
branch: 'r9'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
...

View File

@ -1,59 +0,0 @@
---
kernel:
'8':
profile: 'kernel'
project_id: '13172560-6e5d-4e65-ae71-750f99096856'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
repo:
kernel-lts:
allowed_arches:
- aarch64
- x86_64
kernel-drivers:
allowed_arches:
- aarch64
- x86_64
kernel-mainline:
allowed_arches:
- aarch64
- x86_64
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-kernel.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r8/'
branch: 'r8'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
'9':
profile: 'kernel'
project_id: '708f99fe-7e89-4241-959a-4ff259786b4a'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
repo:
kernel-lts:
allowed_arches:
- aarch64
- x86_64
- ppc64le
- s390x
kernel-drivers:
allowed_arches:
- aarch64
- x86_64
- ppc64le
- s390x
kernel-mainline:
allowed_arches:
- aarch64
- x86_64
- ppc64le
- s390x
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-kernel.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r9/'
branch: 'r9'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
...

View File

@ -1,39 +0,0 @@
---
security:
'8':
profile: 'security'
project_id: '41baa8a8-7dbe-46fe-9f0b-4e2420372bbc'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
repo:
security-common:
allowed_arches:
- x86_64
- aarch64
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-security.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r8/'
branch: 'r8'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
'9':
profile: 'security'
project_id: '041a90b2-51f5-44a4-8be8-b2905c1ad95b'
addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
repo:
security-common:
allowed_arches:
- x86_64
- aarch64
- ppc64le
- s390x
extra_files:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-security.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r9/'
branch: 'r9'
list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
...

View File

@ -4,8 +4,6 @@ virt:
profile: 'virt' profile: 'virt'
project_id: 'd911867a-658e-4f41-8343-5ceac6c41f67' project_id: 'd911867a-658e-4f41-8343-5ceac6c41f67'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r8/SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
repo: repo:
virt-common: virt-common:
allowed_arches: allowed_arches:
@ -15,14 +13,14 @@ virt:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r8/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r8/'
branch: 'r8' branch: 'r8'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
'9': '9':
profile: 'virt' profile: 'virt'
project_id: '925ceece-47ce-4f51-90f7-ff8689e4fe5e' project_id: '925ceece-47ce-4f51-90f7-ff8689e4fe5e'
addtional_dirs: [] addtional_dirs: []
gpg_key:
- 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r9/SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
repo: repo:
virt-common: virt-common:
allowed_arches: allowed_arches:
@ -33,6 +31,8 @@ virt:
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git' git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git'
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r9/' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r9/'
branch: 'r9' branch: 'r9'
gpg:
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
list: list:
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt'
... ...

View File

@ -4,7 +4,6 @@ that match the given ISO. You will see the following formats:
* Rocky-X.Y-ARCH-TYPE (ISO File) * Rocky-X.Y-ARCH-TYPE (ISO File)
* Rocky-X.Y-DATE-ARCH-TYPE (ISO File) * Rocky-X.Y-DATE-ARCH-TYPE (ISO File)
* Rocky-X-latest-ARCH-TYPE (Symlink)
* Rocky-ARCH-TYPE (Symlink) * Rocky-ARCH-TYPE (Symlink)
X will be the major release. X will be the major release.
@ -19,15 +18,19 @@ The second format is in the case of rebuilt ISO's, in the case of addressing
a bug or providing an updated image (eg for a newer kernel, a newer secure a bug or providing an updated image (eg for a newer kernel, a newer secure
boot shim, and so on). boot shim, and so on).
The third format is also in the case of a rebuilt ISO. This will always point The third format in the list is a symlink to the "latest" ISO. Currently, this
to the absolute latest ISO of its type. This is used for osinfo and may be is not advertised on the main site, but there may be potential for this in
used on our main website. This serves as a predictable method to download the future as a value add.
the latest ISO whether from curl/wget or using libvirt that relies on osinfo
to provide the download URL.
The fourth format in the list is a symlink to the "latest" ISO. This was This is "unversioned" ISO symlink is for these cases:
originally used as part of osinfo and has been carried over for backwards
compatibility reasons. * A pre-determined download location for users/mirrors/service providers who
want an always available and deterministic download location, which can be
easier to script
* osinfo database / libvirt use where if a user selects Rocky Linux X, it
should be aware of and be able to download from that location. This should
be fully supported in Rocky Linux 8.7 and 9.1, and future Fedora versions.
If you have any questions, please reach out to us: If you have any questions, please reach out to us:

View File

@ -1,46 +1,20 @@
#!/bin/bash #!/bin/bash
set -ex set -ex
# funtions
function podman_setup_dirs() {
{{ lorax_pkg_cmd }}
mkdir -p {{ compose_work_iso_dir }}/{{ arch }}
cd {{ compose_work_iso_dir }}/{{ arch }}
set +e
test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 32; }
set -e
}
function podman_create_links() {
# symlink to unversioned image name
ln -sf {{ isoname }} {{ generic_isoname }}
ln -sf {{ isoname }} {{ latest_isoname }}
ln -sf {{ isoname }}.manifest {{ generic_isoname }}.manifest
ln -sf {{ isoname }}.manifest {{ latest_isoname }}.manifest
}
function local_setup_env() {
cd /builddir
if ! TEMPLATE="$($(head -n1 $(which lorax) | cut -c3-) -c 'import pylorax; print(pylorax.find_templates())')"; then
TEMPLATE="/usr/share/lorax"
fi
}
function check_for_sorry() {
if xorriso -indev {{ isoname }} -report_el_torito as_mkisofs 2>&1 | grep -q SORRY; then
echo "IMAGE WAS NOT BUILT CORRECTLY"
exit 23
else
return 0
fi
}
{% if extra_iso_mode == "podman" %} {% if extra_iso_mode == "podman" %}
podman_setup_dirs {{ lorax_pkg_cmd }}
mkdir -p {{ compose_work_iso_dir }}/{{ arch }}
cd {{ compose_work_iso_dir }}/{{ arch }}
test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 1; }
{% else %} {% else %}
local_setup_env cd /builddir
if ! TEMPLATE="$($(head -n1 $(which lorax) | cut -c3-) -c 'import pylorax; print(pylorax.find_templates())')"; then
TEMPLATE="/usr/share/lorax"
fi
{% endif %} {% endif %}
{{ make_image }} {{ make_image }}
{{ isohybrid }} {{ isohybrid }}
@ -49,11 +23,9 @@ local_setup_env
{{ make_manifest }} {{ make_manifest }}
## Check that the ISO came out fine
set +e
check_for_sorry
set -e
{% if extra_iso_mode == "podman" %} {% if extra_iso_mode == "podman" %}
podman_create_links # symlink to unversioned image name
ln -sf {{ isoname }} {{ generic_isoname }}
ln -sf {{ isoname }}.manifest {{ generic_isoname }}.manifest
{% endif %} {% endif %}

View File

@ -24,9 +24,6 @@ lorax --product="${PRODUCT}" \
{%- for repo in repos %} {%- for repo in repos %}
--source={{ repo.url }} \ --source={{ repo.url }} \
{%- endfor %} {%- endfor %}
{%- if squashfs_only %}
--squashfs-only \
{%- endif %}
--bugurl="${BUGURL}" \ --bugurl="${BUGURL}" \
--variant="${VARIANT}" \ --variant="${VARIANT}" \
--nomacboot \ --nomacboot \

View File

@ -1,17 +1,6 @@
#!/bin/bash #!/bin/bash
set -ex set -ex
# functions
function check_for_container() {
[[ -f /run/.containerenv ]]; container_ec=$?
grep -q "0::/$" /proc/1/cgroup; pid_ec=$?
grep -q "0::/$" /proc/self/cgroup; self_ec=$?
if [[ "$pid_ec" == "0" ]] || [[ "$self_ec" == 0 ]]; then
exit 23
fi
}
{% if live_iso_mode == "podman" %} {% if live_iso_mode == "podman" %}
{{ live_pkg_cmd }} {{ live_pkg_cmd }}
mkdir -p {{ compose_live_work_dir }}/{{ arch }} mkdir -p {{ compose_live_work_dir }}/{{ arch }}
@ -20,32 +9,19 @@ test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 1; }
major=$(grep loop /proc/devices | cut -c3) major=$(grep loop /proc/devices | cut -c3)
for index in 0 1 2 3 4 5; do for index in 0 1 2 3 4 5; do
mknod /dev/loop$index b $major $index mknod /dev/loop$index $major $index
done done
{% else %} {% else %}
# This section is typically for mock. It is possible to run mock within a
# container, but we generally don't like this. Even though we can do this,
# it does not mean that livemedia-creator is going to work. There are ways
# around this, such as making sure the container is privileged to have loop
# devices, and the loop devices should exist on the host. After, the loop
# devices have to be cleaned up.
#
# The lorax devs have a way of doing this, but it requires privleges and
# the containers cannot be root, as far as I understand it. Having root
# containers is bad practice IMO.
#
# Even so, we don't support it. These checks are to prevent (you) from
# getting needless headaches.
set +e
check_for_container
set -e
cd /builddir cd /builddir
{% endif %} {% endif %}
{{ git_clone }} {{ git_clone }}
pushd /builddir/ks/live/{{ major }}/{{ arch }}/{{ kloc }} || { echo "Could not change directory"; exit 1; } if [ -d "/builddir/ks/live/{{ major }}/peridot" ]; then
pushd /builddir/ks/live/{{ major }}/{{ arch }}/peridot || { echo "Could not change directory"; exit 1; }
else
pushd /builddir/ks/live/{{ major }}/{{ arch }}/stage || { echo "Could not change directory"; exit 1; }
fi
ksflatten -c {{ ks_file }} -o /builddir/ks.cfg ksflatten -c {{ ks_file }} -o /builddir/ks.cfg
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error flattening kickstart" echo "Error flattening kickstart"

View File

@ -6,8 +6,8 @@
set -o pipefail set -o pipefail
# Vars # Vars
MOCK_CFG="/var/tmp/lorax-{{ releasever }}.cfg" MOCK_CFG="/var/tmp/lorax-{{ major }}.cfg"
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}" MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}"
MOCK_RESL="${MOCK_ROOT}/result" MOCK_RESL="${MOCK_ROOT}/result"
MOCK_CHRO="${MOCK_ROOT}/root" MOCK_CHRO="${MOCK_ROOT}/root"
MOCK_LOG="${MOCK_RESL}/mock-output.log" MOCK_LOG="${MOCK_RESL}/mock-output.log"
@ -40,7 +40,7 @@ mock \
mock_ret_val=$? mock_ret_val=$?
if [ $mock_ret_val -eq 0 ]; then if [ $mock_ret_val -eq 0 ]; then
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}/result # Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}/result
mkdir -p "${MOCK_RESL}" mkdir -p "${MOCK_RESL}"
cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}" "${MOCK_RESL}" cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}" "${MOCK_RESL}"
cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}.manifest" "${MOCK_RESL}" cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}.manifest" "${MOCK_RESL}"

View File

@ -10,9 +10,6 @@
<icicle> <icicle>
<extra_command>rpm -qa --qf '%{NAME},%{VERSION},%{RELEASE},%{ARCH},%{EPOCH},%{SIZE},%{SIGMD5},%{BUILDTIME}\n'</extra_command> <extra_command>rpm -qa --qf '%{NAME},%{VERSION},%{RELEASE},%{ARCH},%{EPOCH},%{SIZE},%{SIGMD5},%{BUILDTIME}\n'</extra_command>
</icicle> </icicle>
{%- if architecture == 'ppc64le' -%}
<kernelparam>ip=::::::dhcp:1450</kernelparam>
{%- endif -%}
</os> </os>
<description>Rocky-{{major}}-{{type}}-{{version_variant}}.{{iso8601date}}.{{release}}.{{architecture}} Generated on {{utcnow}}</description> <description>Rocky-{{major}}-{{type}}-{{version_variant}}.{{iso8601date}}.{{release}}.{{architecture}} Generated on {{utcnow}}</description>
<disk> <disk>

View File

@ -5,8 +5,8 @@
set -o pipefail set -o pipefail
# Vars # Vars
MOCK_CFG="/var/tmp/lorax-{{ releasever }}.cfg" MOCK_CFG="/var/tmp/lorax-{{ major }}.cfg"
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}" MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}"
MOCK_RESL="${MOCK_ROOT}/result" MOCK_RESL="${MOCK_ROOT}/result"
MOCK_CHRO="${MOCK_ROOT}/root" MOCK_CHRO="${MOCK_ROOT}/root"
MOCK_LOG="${MOCK_RESL}/mock-output.log" MOCK_LOG="${MOCK_RESL}/mock-output.log"
@ -39,7 +39,7 @@ mock \
mock_ret_val=$? mock_ret_val=$?
if [ $mock_ret_val -eq 0 ]; then if [ $mock_ret_val -eq 0 ]; then
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}/result # Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}/result
mkdir -p "${MOCK_RESL}" mkdir -p "${MOCK_RESL}"
cp "${MOCK_CHRO}${BUILDDIR}/${LORAX_TAR}" "${MOCK_RESL}" cp "${MOCK_CHRO}${BUILDDIR}/${LORAX_TAR}" "${MOCK_RESL}"
else else

View File

@ -1,4 +1,4 @@
config_opts['root'] = '{{ shortname|lower }}-{{ releasever }}-{{ arch }}' config_opts['root'] = '{{ shortname|lower }}-{{ major }}-{{ arch }}'
config_opts['description'] = '{{ fullname }}' config_opts['description'] = '{{ fullname }}'
config_opts['target_arch'] = '{{ arch }}' config_opts['target_arch'] = '{{ arch }}'
config_opts['legal_host_arches'] = ('{{ arch }}',) config_opts['legal_host_arches'] = ('{{ arch }}',)
@ -9,7 +9,6 @@ config_opts['releasever'] = '{{ major }}'
config_opts['package_manager'] = '{{ pkgmanager|default("dnf") }}' config_opts['package_manager'] = '{{ pkgmanager|default("dnf") }}'
config_opts['extra_chroot_dirs'] = [ '/run/lock', ] config_opts['extra_chroot_dirs'] = [ '/run/lock', ]
# config_opts['bootstrap_image'] = 'quay.io/{{ shortname|lower }}/{{ shortname|lower }}:{{ major }}' # config_opts['bootstrap_image'] = 'quay.io/{{ shortname|lower }}/{{ shortname|lower }}:{{ major }}'
config_opts['use_bootstrap_image'] = False
# If compose is local, the bind mounts will be here # If compose is local, the bind mounts will be here
{% if compose_dir_is_here %} {% if compose_dir_is_here %}
@ -43,7 +42,6 @@ name={{ repo.name }}
baseurl={{ repo.url }} baseurl={{ repo.url }}
enabled=1 enabled=1
gpgcheck=0 gpgcheck=0
priority={{ repo.priority | default(100) }}
{% endfor %} {% endfor %}

View File

@ -2,7 +2,7 @@
apiVersion: batch/v1 apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: {{ jobname }}-{{ major }}-{{ architecture }}-{{ buildTime }} name: {{ jobname }}-{{ major }}-{{ architecture }}
namespace: {{ namespace }} namespace: {{ namespace }}
spec: spec:
template: template:
@ -13,7 +13,6 @@ spec:
containers: containers:
- name: {{ jobname }}-{{ major }}-{{ architecture }} - name: {{ jobname }}-{{ major }}-{{ architecture }}
image: {{ imageName }} image: {{ imageName }}
imagePullPolicy: Always
command: ["/bin/bash", "-c"] command: ["/bin/bash", "-c"]
args: args:
- | - |
@ -53,8 +52,6 @@ spec:
key: peridot.rockylinux.org/workflow-tolerates-arch key: peridot.rockylinux.org/workflow-tolerates-arch
operator: Equal operator: Equal
value: {{ architecture }} value: {{ architecture }}
nodeSelector:
kubernetes.io/arch: {{ architecture }}
restartPolicy: {{ restartPolicy }} restartPolicy: {{ restartPolicy }}
volumes: volumes:
- name: resolv-conf - name: resolv-conf

Some files were not shown because too many files have changed in this diff Show More