Merge #145 Adding cloud images and docker composes

This commit is contained in:
Dennis Gilmore 2017-02-24 21:58:56 +00:00
commit 884db9de0d
7 changed files with 1072 additions and 0 deletions

84
cloud-nightly.sh Executable file
View File

@ -0,0 +1,84 @@
#!/bin/sh
#set -x
export LC_ALL=C
LABEL=$1
CONFIG="fedora-cloud.conf"
TARGET_DIR="/mnt/koji/compose/"
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
NIGHTLY=""
SKIP_PHASES="--skip-phase=productimg --skip-phase=pkgset --skip-phase=gather --skip-phase=extra_files --skip-phase=creatrepo"
DEST=$(pwd)
DATE=$(date "+%Y%m%d")
DIST="26"
BRANCHED="26"
BRANCH="branched"
COMPSFILE="comps-f26.xml"
GIT_BRANCH="f26"
TMPDIR=`mktemp -d /tmp/$DIST.$DATE.XXXX`
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
FROM="Fedora Branched Report <rawhide@fedoraproject.org>"
RSYNCPREFIX="sudo -u ftpsync"
ATOMIC=$(mktemp -d /tmp/atomic.${DIST}.$DATE.XXXX)
ATOMICREPO="/mnt/koji/compose/atomic/$BRANCHED/"
ATOMICDEST="/mnt/koji/atomic/$BRANCHED/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-26/COMPOSE_ID)
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
# assume a releng dir is a git checkout of the releng repo
# if it does not exist clone it
if [ -d releng ]; then
pushd releng
git pull --rebase
popd
else
git clone https://pagure.io/releng.git
fi
# Set up our fedmsg function, using the releng repo definition
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
FEDMSG_MODNAME="compose"
FEDMSG_CERTPREFIX="releng"
. ./releng/scripts/fedmsg-functions.sh
# Announce that we are starting, even though we don't know the compose_id yet..
send_fedmsg "${fedmsg_json_start}" ${DIST} start
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
if [ -z "$COMPOSE_ID" ]; then
CMD="$CMD --target-dir=$TARGET_DIR"
else
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
fi
time $CMD "$@"
if [ "$?" = "0" ]; then
export mail=0
fi
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-26/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
# Set this to use later for a few items include depcheck
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
$RSYNCPREFIX mkdir -p $DESTDIR
# Tell interested persons that the rsync is starting (zomg!)
send_fedmsg "${fedmsg_json_start}" ${DIST} rsync.start
#for dir in CloudImage metadata ;
# do
# $RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/atomic/testing/$SHORTCOMPOSE_ID/$dir/ ;
# done
# Tell interested persons that the rsync is done.
#send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
# Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
# Tell everyone by email about the compose
SUBJECT='Fedora '$DIST' compose report: '$SHORTCOMPOSE_ID' changes'
#if [ "$mail" = "0" ]; then
# for tomail in $TOMAIL ; do
# cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose $DESTDIR/logs/depcheck | \
# mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
# done
#fi

81
docker-nigthly.sh Executable file
View File

@ -0,0 +1,81 @@
#!/bin/sh
export LC_ALL=C
LABEL=$1
CONFIG="fedora-docker.conf"
TARGET_DIR="/mnt/koji/compose/"
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
NIGHTLY=""
SKIP_PHASES="--skip-phase=productimg --skip-phase=pkgset --skip-phase=gather --skip-phase=extra_files --skip-phase=creatrepo"
DEST=$(pwd)
DATE=$(date "+%Y%m%d")
DIST="26"
BRANCHED="26"
BRANCH="branched"
COMPSFILE="comps-f26.xml"
GIT_BRANCH="f26"
TMPDIR=`mktemp -d /tmp/$DIST.$DATE.XXXX`
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
FROM="Fedora Branched Report <rawhide@fedoraproject.org>"
RSYNCPREFIX="sudo -u ftpsync"
ATOMIC=$(mktemp -d /tmp/atomic.${DIST}.$DATE.XXXX)
ATOMICREPO="/mnt/koji/compose/atomic/$BRANCHED/"
ATOMICDEST="/pub/fedora/linux/atomic/$BRANCHED/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora_Docker-26/COMPOSE_ID)
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
# assume a releng dir is a git checkout of teh releng repo
# if it does not exist clone it
if [ -d releng ]; then
pushd releng
git pull --rebase
popd
else
git clone https://pagure.io/releng.git
fi
# Set up our fedmsg function, using the releng repo definition
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
FEDMSG_MODNAME="compose"
FEDMSG_CERTPREFIX="releng"
. ./releng/scripts/fedmsg-functions.sh
# Announce that we are starting...
send_fedmsg "${fedmsg_json_start}" ${DIST} start
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
if [ -z "$COMPOSE_ID" ]; then
CMD="$CMD --target-dir=$TARGET_DIR"
else
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
fi
time $CMD "$@"
if [ "$?" = "0" ]; then
export mail=0
fi
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora_Docker-26/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
$RSYNCPREFIX mkdir -p $DESTDIR
# Tell interested persons that the rsync is starting (zomg!)
send_fedmsg "${fedmsg_json_start}" ${DIST} rsync.start
#for dir in Docker metadata ;
# do
# $RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/atomic/testing/$SHORTCOMPOSE_ID/$dir/ ;
# done
# Tell interested persons that the rsync is done.
#send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
# Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
SUBJECT='Fedora '$DIST' compose report: '$SHORTCOMPOSE_ID' changes'
#if [ "$mail" = "0" ]; then
# for tomail in $TOMAIL ; do
# cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose $DESTDIR/logs/depcheck | \
# mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
# done
#fi

284
fedora-atomic.conf Normal file
View File

@ -0,0 +1,284 @@
# PRODUCT INFO
release_name = 'Fedora-Atomic'
release_short = 'Fedora-Atomic'
release_version = '26'
release_is_layered = False
# GENERAL SETTINGS
bootable = True
buildinstall_method = 'lorax'
lorax_options = [
('^.*$', {
'x86_64': {
'nomacboot': True
}
'*': {
'noupgrade': True
}
})
]
comps_file = 'comps-f26.xml' #{
# 'scm': 'git',
# 'repo': 'git://git.fedorahosted.org/git/comps.git',
# 'branch': None, # defaults to cvs/HEAD or git/master
# 'file': 'comps-f23.xml',
#}
variants_file='variants-fedora.xml'
sigkeys = ['FDB19C98', 'E372E838'] # None = unsigned
# limit tree architectures
# if undefined, all architectures from variants.xml will be included
tree_arches = ['x86_64']
# limit tree variants
# if undefined, all variants from variants.xml will be included
tree_variants = ['Atomic', 'Cloud', 'CloudImages']
hashed_directories = True
# RUNROOT settings
runroot = True
#runroot_channel = 'fedora_compose'
runroot_channel = 'compose'
runroot_tag = 'f26-build'
# PKGSET
pkgset_source = 'koji' # koji, repos
pkgset_koji_tag = 'f26-atomic'
pkgset_koji_inherit = True
filter_system_release_packages = False
# GATHER
gather_source = 'comps'
gather_method = 'deps'
check_deps = False
greedy_method = 'build'
# fomat: [(variant_uid_regex, {arch|*: [repos]})]
# gather_lookaside_repos = []
# GATHER - JSON
# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}}
#gather_source_mapping = '/path/to/mapping.json'
# CREATEREPO
createrepo_c = True
createrepo_checksum = 'sha256'
# CHECKSUMS
media_checksums = ['sha256']
media_checksum_one_file = True
media_checksum_base_filename = 'Fedora-%(variant)s-%(version)s-%(date)s.%(respin)s-%(arch)s'
#jigdo
create_jigdo = False
#extra_packages = [
# '/mnt/packages/foo*',
#]
# fomat: [(variant_uid_regex, {arch|*: [packages]})]
additional_packages = [
('.*', {
'*': [
'kernel.*',
'dracut.*',
'autocorr-.*',
'eclipse-nls-.*',
'hunspell-.*',
'hyphen-.*',
'calligra-l10n-.*',
'kde-l10n-.*',
'libreoffice-langpack-.*',
'man-pages-.*',
'mythes-.*',
],
}),
('^Everything$', {
'*': [
'*',
],
}),
('^Server$', {
'*': [
],
}),
('^Workstation$', {
'*': [
],
}),
('^Cloud$', {
'*': [
],
}),
]
multilib = [
('^Everything$', {
'x86_64': ['devel', 'runtime'],
's390x': ['devel', 'runtime']
})
]
filter_packages = [
('(Workstation|Server|Cloud)$', {
'*': [
'^kernel.*debug.*',
'^kernel-kdump.*',
'^kernel-tools.*',
'^syslog-ng.*',
'^astronomy-bookmarks',
'^generic.*',
'^GConf2-dbus.*',
'^bluez-gnome',
#Periods cause problems in paterns, so replace with *s
'^java-1.8.0-openjdk',
'^community-mysql.*',
'^jruby.*',
'^gimp-help-.*',
]
}),
]
# format: {arch|*: [packages]}
multilib_blacklist = {
'*': ['kernel*', 'kernel-PAE*', 'kernel*debug*',
'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel',
'java-1.5.0-gcj-devel', 'java-1.7.0-icedtea-devel',
'php-devel', 'java-1.6.0-openjdk-devel',
'java-1.7.0-openjdk-devel', 'java-1.8.0-openjdk-devel',
'httpd-devel', 'tomcat-native', 'php*', 'httpd',
'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*'
],
}
# format: {arch|*: [packages]}
multilib_whitelist = {
'*': ['libgnat', 'wine*', 'lmms-vst', 'nspluginwrapper',
'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb',
'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux',
'syslinux-tftpboot', 'nosync', '*-static'
],
}
createiso_skip = [
('^Workstation$', {
'*': True,
'src': True
}),
('^Server$', {
'src': True
}),
('^Cloud$', {
'*': True,
'src': True
}),
('^Everything$', {
'*': True,
'src': True
}),
]
# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})]
#extra_files = [
# ('^(Server|Workstation|Cloud)$', {
# '*': [
# {
# 'scm': 'rpm',
# 'repo': 'fedora-release-%(variant_id_lower)s',
# 'branch': None,
# 'file': [
# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release',
# ],
# 'target': '',
# },
# ],
# }),
#]
# Image name respecting Fedora's image naming policy
image_name_format = 'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s.%(respin)s.iso'
# # Use the same format for volume id
image_volid_formats = [
'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s'
]
# No special handling for layered products, use same format as for regular images
image_volid_layered_product_formats = []
# Replace 'Cloud' with 'C' in volume id etc.
volume_id_substitutions = {
'Rawhide': 'rawh',
'Images': 'img',
'MATE_Compiz': 'MATE',
'Security': 'Sec',
'Electronic_Lab': 'Elec',
'Robotics': 'Robo',
'Scientific_KDE': 'SciK',
'Astronomy_KDE': 'AstK',
'Design_suite': 'Dsgn',
'Games': 'Game',
'Jam_KDE': 'Jam',
'Workstation': 'WS',
'Everything': 'E',
'Server': 'S',
'Cloud': 'C',
'Alpha': 'A',
'Beta': 'B',
'TC': 'T',
}
disc_types = {
'boot': 'netinst',
'live': 'Live',
}
translate_paths = [
('/mnt/koji/compose/', 'http://kojipkgs.fedoraproject.org/compose/'),
]
image_build = {
'^CloudImages$': [
{
'image-build': {
'format': [('qcow2','qcow2'), ('raw-xz','raw.xz')]
'name': 'Fedora-Atomic',
'target': 'f26',
'version': '26',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f26',
'kickstart': 'fedora-atomic.ks',
'distro': 'Fedora-20',
'disk_size': 6,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/26/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Atomic'
}
},
{
'image-build': {
'format': [('vagrant-libvirt','vagrant-libvirt.box'), ('vagrant-virtualbox','vagrant-virtualbox.box')]
'name': 'Fedora-Atomic-Vagrant',
'target': 'f26',
'version': '26',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f26',
'kickstart': 'fedora-atomic-vagrant.ks',
'distro': 'Fedora-20',
'disk_size': 40,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/26/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Atomic'
}
}
],
}
ostree_installer = [
("^Atomic$", {
"x86_64": {
"source_repo_from": [ "Cloud",
"https://kojipkgs.fedoraproject.org/pub/fedora/linux/releases/26/Everything/$arch/os/"],
"release": None,
"installpkgs": ["fedora-productimg-atomic"],
"add_template": ["atomic-installer/lorax-configure-repo.tmpl"],
"add_template_var": [
"ostree_repo=https://kojipkgs.fedoraproject.org/atomic/26/",
"ostree_osname=fedora-atomic",
"ostree_install_ref=fedora-atomic/26/x86_64/updates/docker-host",
"ostree_update_ref=fedora-atomic/26/x86_64/docker-host",
],
"add_arch_template": ["atomic-installer/lorax-embed-repo.tmpl"],
"add_arch_template_var": [
"ostree_repo=https://kojipkgs.fedoraproject.org/atomic/26/",
"ostree_osname=fedora-atomic",
"ostree_install_ref=fedora-atomic/26/x86_64/updates/docker-host",
"ostree_update_ref=fedora-atomic/26/x86_64/docker-host",
]
'template_repo': 'https://pagure.io/fedora-lorax-templates.git',
'template_branch': 'f26',
}
})
]
koji_profile = 'compose_koji'

284
fedora-cloud.conf Normal file
View File

@ -0,0 +1,284 @@
# PRODUCT INFO
release_name = 'Fedora-Atomic'
release_short = 'Fedora-Atomic'
release_version = '26'
release_is_layered = False
# GENERAL SETTINGS
bootable = True
buildinstall_method = 'lorax'
lorax_options = [
('^.*$', {
'x86_64': {
'nomacboot': True
}
'*': {
'noupgrade': True
}
})
]
comps_file = 'comps-f26.xml' #{
# 'scm': 'git',
# 'repo': 'git://git.fedorahosted.org/git/comps.git',
# 'branch': None, # defaults to cvs/HEAD or git/master
# 'file': 'comps-f23.xml',
#}
variants_file='variants-fedora.xml'
sigkeys = ['FDB19C98', 'E372E838'] # None = unsigned
# limit tree architectures
# if undefined, all architectures from variants.xml will be included
tree_arches = ['x86_64']
# limit tree variants
# if undefined, all variants from variants.xml will be included
tree_variants = ['Atomic', 'Cloud', 'CloudImages']
hashed_directories = True
# RUNROOT settings
runroot = True
#runroot_channel = 'fedora_compose'
runroot_channel = 'compose'
runroot_tag = 'f26-build'
# PKGSET
pkgset_source = 'koji' # koji, repos
pkgset_koji_tag = 'f26-atomic'
pkgset_koji_inherit = True
filter_system_release_packages = False
# GATHER
gather_source = 'comps'
gather_method = 'deps'
check_deps = False
greedy_method = 'build'
# fomat: [(variant_uid_regex, {arch|*: [repos]})]
# gather_lookaside_repos = []
# GATHER - JSON
# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}}
#gather_source_mapping = '/path/to/mapping.json'
# CREATEREPO
createrepo_c = True
createrepo_checksum = 'sha256'
# CHECKSUMS
media_checksums = ['sha256']
media_checksum_one_file = True
media_checksum_base_filename = 'Fedora-%(variant)s-%(version)s-%(date)s.%(respin)s-%(arch)s'
#jigdo
create_jigdo = False
#extra_packages = [
# '/mnt/packages/foo*',
#]
# fomat: [(variant_uid_regex, {arch|*: [packages]})]
additional_packages = [
('.*', {
'*': [
'kernel.*',
'dracut.*',
'autocorr-.*',
'eclipse-nls-.*',
'hunspell-.*',
'hyphen-.*',
'calligra-l10n-.*',
'kde-l10n-.*',
'libreoffice-langpack-.*',
'man-pages-.*',
'mythes-.*',
],
}),
('^Everything$', {
'*': [
'*',
],
}),
('^Server$', {
'*': [
],
}),
('^Workstation$', {
'*': [
],
}),
('^Cloud$', {
'*': [
],
}),
]
multilib = [
('^Everything$', {
'x86_64': ['devel', 'runtime'],
's390x': ['devel', 'runtime']
})
]
filter_packages = [
('(Workstation|Server|Cloud)$', {
'*': [
'^kernel.*debug.*',
'^kernel-kdump.*',
'^kernel-tools.*',
'^syslog-ng.*',
'^astronomy-bookmarks',
'^generic.*',
'^GConf2-dbus.*',
'^bluez-gnome',
#Periods cause problems in paterns, so replace with *s
'^java-1.8.0-openjdk',
'^community-mysql.*',
'^jruby.*',
'^gimp-help-.*',
]
}),
]
# format: {arch|*: [packages]}
multilib_blacklist = {
'*': ['kernel*', 'kernel-PAE*', 'kernel*debug*',
'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel',
'java-1.5.0-gcj-devel', 'java-1.7.0-icedtea-devel',
'php-devel', 'java-1.6.0-openjdk-devel',
'java-1.7.0-openjdk-devel', 'java-1.8.0-openjdk-devel',
'httpd-devel', 'tomcat-native', 'php*', 'httpd',
'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*'
],
}
# format: {arch|*: [packages]}
multilib_whitelist = {
'*': ['libgnat', 'wine*', 'lmms-vst', 'nspluginwrapper',
'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb',
'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux',
'syslinux-tftpboot', 'nosync', '*-static'
],
}
createiso_skip = [
('^Workstation$', {
'*': True,
'src': True
}),
('^Server$', {
'src': True
}),
('^Cloud$', {
'*': True,
'src': True
}),
('^Everything$', {
'*': True,
'src': True
}),
]
# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})]
#extra_files = [
# ('^(Server|Workstation|Cloud)$', {
# '*': [
# {
# 'scm': 'rpm',
# 'repo': 'fedora-release-%(variant_id_lower)s',
# 'branch': None,
# 'file': [
# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release',
# ],
# 'target': '',
# },
# ],
# }),
#]
# Image name respecting Fedora's image naming policy
image_name_format = 'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s.%(respin)s.iso'
# # Use the same format for volume id
image_volid_formats = [
'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s'
]
# No special handling for layered products, use same format as for regular images
image_volid_layered_product_formats = []
# Replace 'Cloud' with 'C' in volume id etc.
volume_id_substitutions = {
'Rawhide': 'rawh',
'Images': 'img',
'MATE_Compiz': 'MATE',
'Security': 'Sec',
'Electronic_Lab': 'Elec',
'Robotics': 'Robo',
'Scientific_KDE': 'SciK',
'Astronomy_KDE': 'AstK',
'Design_suite': 'Dsgn',
'Games': 'Game',
'Jam_KDE': 'Jam',
'Workstation': 'WS',
'Everything': 'E',
'Server': 'S',
'Cloud': 'C',
'Alpha': 'A',
'Beta': 'B',
'TC': 'T',
}
disc_types = {
'boot': 'netinst',
'live': 'Live',
}
translate_paths = [
('/mnt/koji/compose/', 'http://kojipkgs.fedoraproject.org/compose/'),
]
image_build = {
'^CloudImages$': [
{
'image-build': {
'format': [('qcow2','qcow2'), ('raw-xz','raw.xz')]
'name': 'Fedora-Atomic',
'target': 'f26',
'version': '26',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f26',
'kickstart': 'fedora-atomic.ks',
'distro': 'Fedora-20',
'disk_size': 6,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/26/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Atomic'
}
},
{
'image-build': {
'format': [('vagrant-libvirt','vagrant-libvirt.box'), ('vagrant-virtualbox','vagrant-virtualbox.box')]
'name': 'Fedora-Atomic-Vagrant',
'target': 'f26',
'version': '26',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f26',
'kickstart': 'fedora-atomic-vagrant.ks',
'distro': 'Fedora-20',
'disk_size': 40,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/26/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Atomic'
}
}
],
}
ostree_installer = [
("^Atomic$", {
"x86_64": {
"source_repo_from": [ "Cloud",
"https://kojipkgs.fedoraproject.org/pub/fedora/linux/releases/26/Everything/$arch/os/"],
"release": None,
"installpkgs": ["fedora-productimg-atomic"],
"add_template": ["atomic-installer/lorax-configure-repo.tmpl"],
"add_template_var": [
"ostree_repo=https://kojipkgs.fedoraproject.org/atomic/26/",
"ostree_osname=fedora-atomic",
"ostree_install_ref=fedora-atomic/26/x86_64/updates/docker-host",
"ostree_update_ref=fedora-atomic/26/x86_64/docker-host",
],
"add_arch_template": ["atomic-installer/lorax-embed-repo.tmpl"],
"add_arch_template_var": [
"ostree_repo=https://kojipkgs.fedoraproject.org/atomic/26/",
"ostree_osname=fedora-atomic",
"ostree_install_ref=fedora-atomic/26/x86_64/updates/docker-host",
"ostree_update_ref=fedora-atomic/26/x86_64/docker-host",
]
'template_repo': 'https://pagure.io/fedora-lorax-templates.git',
'template_branch': 'f26',
}
})
]
koji_profile = 'compose_koji'

228
fedora-docker.conf Normal file
View File

@ -0,0 +1,228 @@
# PRODUCT INFO
release_name = 'Fedora-Docker'
release_short = 'Fedora-Docker'
release_version = '26'
release_is_layered = False
# GENERAL SETTINGS
bootable = False
comps_file = 'comps-f26.xml' #{
# 'scm': 'git',
# 'repo': 'git://git.fedorahosted.org/git/comps.git',
# 'branch': None, # defaults to cvs/HEAD or git/master
# 'file': 'comps-f23.xml',
#}
variants_file='variants-fedora.xml'
sigkeys = ['FDB19C98', 'E372E838'] # None = unsigned
# limit tree architectures
# if undefined, all architectures from variants.xml will be included
tree_arches = ['x86_64', 'armhfp']
# limit tree variants
# if undefined, all variants from variants.xml will be included
tree_variants = ['Docker']
hashed_directories = True
# RUNROOT settings
runroot = True
#runroot_channel = 'fedora_compose'
runroot_channel = 'compose'
runroot_tag = 'f26-build'
# PKGSET
pkgset_source = 'koji' # koji, repos
pkgset_koji_tag = 'f25-updates'
pkgset_koji_inherit = True
filter_system_release_packages = False
# GATHER
gather_source = 'comps'
gather_method = 'deps'
check_deps = False
greedy_method = 'build'
# fomat: [(variant_uid_regex, {arch|*: [repos]})]
# gather_lookaside_repos = []
# GATHER - JSON
# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}}
#gather_source_mapping = '/path/to/mapping.json'
# CREATEREPO
createrepo_c = True
createrepo_checksum = 'sha256'
# CHECKSUMS
media_checksums = ['sha256']
media_checksum_one_file = True
media_checksum_base_filename = 'Fedora-%(variant)s-%(version)s-%(date)s.%(respin)s-%(arch)s'
#jigdo
create_jigdo = False
#extra_packages = [
# '/mnt/packages/foo*',
#]
# fomat: [(variant_uid_regex, {arch|*: [packages]})]
additional_packages = [
('.*', {
'*': [
'kernel.*',
'dracut.*',
'autocorr-.*',
'eclipse-nls-.*',
'hunspell-.*',
'hyphen-.*',
'calligra-l10n-.*',
'kde-l10n-.*',
'libreoffice-langpack-.*',
'man-pages-.*',
'mythes-.*',
],
}),
('^Everything$', {
'*': [
'*',
],
}),
('^Server$', {
'*': [
],
}),
('^Workstation$', {
'*': [
],
}),
('^Cloud$', {
'*': [
],
}),
]
multilib = [
('^Everything$', {
'x86_64': ['devel', 'runtime'],
's390x': ['devel', 'runtime']
})
]
filter_packages = [
('(Workstation|Server|Cloud)$', {
'*': [
'^kernel.*debug.*',
'^kernel-kdump.*',
'^kernel-tools.*',
'^syslog-ng.*',
'^astronomy-bookmarks',
'^generic.*',
'^GConf2-dbus.*',
'^bluez-gnome',
#Periods cause problems in paterns, so replace with *s
'^java-1.8.0-openjdk',
'^community-mysql.*',
'^jruby.*',
'^gimp-help-.*',
]
}),
]
# format: {arch|*: [packages]}
multilib_blacklist = {
'*': ['kernel*', 'kernel-PAE*', 'kernel*debug*',
'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel',
'java-1.5.0-gcj-devel', 'java-1.7.0-icedtea-devel',
'php-devel', 'java-1.6.0-openjdk-devel',
'java-1.7.0-openjdk-devel', 'java-1.8.0-openjdk-devel',
'httpd-devel', 'tomcat-native', 'php*', 'httpd',
'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*'
],
}
# format: {arch|*: [packages]}
multilib_whitelist = {
'*': ['libgnat', 'wine*', 'lmms-vst', 'nspluginwrapper',
'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb',
'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux',
'syslinux-tftpboot', 'nosync', '*-static'
],
}
createiso_skip = [
('^Workstation$', {
'*': True,
'src': True
}),
('^Server$', {
'src': True
}),
('^Cloud$', {
'*': True,
'src': True
}),
('^Everything$', {
'*': True,
'src': True
}),
]
# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})]
#extra_files = [
# ('^(Server|Workstation|Cloud)$', {
# '*': [
# {
# 'scm': 'rpm',
# 'repo': 'fedora-release-%(variant_id_lower)s',
# 'branch': None,
# 'file': [
# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release',
# ],
# 'target': '',
# },
# ],
# }),
#]
# Image name respecting Fedora's image naming policy
image_name_format = 'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s.%(respin)s.iso'
# # Use the same format for volume id
image_volid_formats = [
'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s'
]
# No special handling for layered products, use same format as for regular images
image_volid_layered_product_formats = []
# Replace 'Cloud' with 'C' in volume id etc.
volume_id_substitutions = {
'Rawhide': 'rawh',
'Images': 'img',
'MATE_Compiz': 'MATE',
'Security': 'Sec',
'Electronic_Lab': 'Elec',
'Robotics': 'Robo',
'Scientific_KDE': 'SciK',
'Astronomy_KDE': 'AstK',
'Design_suite': 'Dsgn',
'Games': 'Game',
'Jam_KDE': 'Jam',
'Workstation': 'WS',
'Everything': 'E',
'Server': 'S',
'Cloud': 'C',
'Alpha': 'A',
'Beta': 'B',
'TC': 'T',
}
disc_types = {
'boot': 'netinst',
'live': 'Live',
}
translate_paths = [
('/mnt/koji/compose/', 'http://kojipkgs.fedoraproject.org/compose/'),
]
image_build = {
'^Docker$': [
{
'image-build': {
'format': [('docker', 'tar.xz')]
'name': 'Fedora-Docker-Base',
'target': 'f26',
'version': '26',
'release': None,
# correct SHA1 hash will be put into the URL below automatically
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f26',
'kickstart': 'fedora-docker-base.ks',
'distro': 'Fedora-20',
'disk_size': 3,
'arches': ['x86_64', 'armhfp'],
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/26/$arch/',
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/releases/26/Everything/$arch/os/',
],
'install_tree_from': 'http://kojipkgs.fedoraproject.org/pub/fedora/linux/releases/26/Everything/$arch/os/',
'subvariant': 'Docker_Base'
}
}
],
}
koji_profile = 'compose_koji'

29
release-candidate.sh Executable file
View File

@ -0,0 +1,29 @@
#!/bin/sh
export LC_ALL=C
LABEL=$1
CONFIG="fedora-final.conf"
TARGET_DIR="/mnt/koji/compose/26"
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
NIGHTLY=""
SKIP_PHASES="--skip-phase=productimg"
DEST=$(pwd)
DATE=$(date "+%Y%m%d")
COMPSFILE="comps-f26.xml"
TMPDIR=`mktemp -d /tmp/fedoraRC.$DATE.XXXX`
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
if [ -z "$COMPOSE_ID" ]; then
CMD="$CMD --target-dir=$TARGET_DIR"
else
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
fi
time $CMD "$@"

82
twoweek-nightly.sh Executable file
View File

@ -0,0 +1,82 @@
#!/bin/sh
export LC_ALL=C
LABEL=$1
CONFIG="fedora-atomic.conf"
TARGET_DIR="/mnt/koji/compose/twoweek"
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
NIGHTLY=""
SKIP_PHASES="--skip-phase=productimg --skip-phase=extra_files"
DEST=$(pwd)
DATE=$(date "+%Y%m%d")
DIST="26"
BRANCHED="26"
BRANCH="branched"
COMPSFILE="comps-f26.xml"
GIT_BRANCH="f26"
TMPDIR=`mktemp -d /tmp/$DIST.$DATE.XXXX`
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
FROM="Fedora Branched Report <rawhide@fedoraproject.org>"
RSYNCPREFIX="sudo -u ftpsync"
ATOMIC=$(mktemp -d /tmp/atomic.${DIST}.$DATE.XXXX)
ATOMICREPO="/mnt/koji/compose/atomic/$BRANCHED/"
ATOMICDEST="/pub/fedora/linux/atomic/$BRANCHED/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-Atomic-26/COMPOSE_ID)
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
# assume a releng dir is a git checkout of teh releng repo
# if it does not exist clone it
if [ -d releng ]; then
pushd releng
git pull --rebase
popd
else
git clone https://pagure.io/releng.git
fi
# Set up our fedmsg function, using the releng repo definition
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
FEDMSG_MODNAME="compose"
FEDMSG_CERTPREFIX="releng"
. ./releng/scripts/fedmsg-functions.sh
# Announce that we are starting...
send_fedmsg "${fedmsg_json_start}" ${DIST} start
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
if [ -z "$COMPOSE_ID" ]; then
CMD="$CMD --target-dir=$TARGET_DIR"
else
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
fi
time $CMD "$@"
if [ "$?" = "0" ]; then
export mail=0
fi
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-Atomic-26/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
$RSYNCPREFIX mkdir -p $DESTDIR
# Tell interested persons that the rsync is starting (zomg!)
send_fedmsg "${fedmsg_json_start}" ${DIST} rsync.start
for dir in Atomic CloudImages Docker metadata ;
do
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/atomic/testing/$SHORTCOMPOSE_ID/$dir/ ;
$RSYNCPREFIX ./releng/scripts/build_composeinfo /pub/alt/atomic/testing/$SHORTCOMPOSE_ID/ --name $NEWCOMPOSE_ID
done
# Tell interested persons that the rsync is done.
send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
# Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
SUBJECT='Fedora '$DIST' compose report: '$SHORTCOMPOSE_ID' changes'
#if [ "$mail" = "0" ]; then
# for tomail in $TOMAIL ; do
# cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose $DESTDIR/logs/depcheck | \
# mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
# done
#fi