Add build tools

This includes Docker containers to perform the StarlingX build
and a set of scripts to maintain a local mirror of binary CentOS
and other packages required to populate the final ISO file.

Change-Id: I8140fd8fa2d00e7aa98c895a8e4962ab3748669d
This commit is contained in:
Dean Troyer 2018-06-08 17:00:53 -05:00
parent ff58416b7e
commit 62bd0253f0
50 changed files with 4330 additions and 0 deletions

3
.gitignore vendored
View File

@ -1,2 +1,5 @@
*~
.makeenv
.tox
localrc
toCOPY/.gitconfig

31
Dockerfile.centos73 Normal file
View File

@ -0,0 +1,31 @@
# Basic software build CentOS 7.3
FROM centos:7.3.1611
RUN yum install -y epel-release && \
yum install -y lighttpd lighttpd-fastcgi lighttpd-mod_geoip \
sudo systemd \
anaconda anaconda-help anaconda-runtime bc python-psutil createrepo /usr/bin/yumdownloader \
/usr/bin/mkisofs git quilt pax perl-CPAN gcc expat-devel syslinux udisks2 rpm-build rpm-sign deltarpm \
python-deltarpm rpm-python cpanminus wget \
bind bind-utils squashfs-tools
# cpan modules, installing with cpanminus to avoid stupid questions since cpan is whack
RUN cpanm --notest Fatal && \
cpanm --notest XML::SAX && \
cpanm --notest XML::SAX::Expat && \
cpanm --notest XML::Parser && \
cpanm --notest XML::Simple
# don't know if these need to be after the cpan installs or not. putting here due to order in instructions
RUN yum install -y vim-enhanced openssl-devel gettext mongodb mongodb-server mariadb-devel python-testrepository \
python-tox python-pep8 python-pip postgresql postgresql-devel python-devel libxml2 libxml2-devel libxslt-devel \
libffi-devel sqlite-devel openldap-devel libvirt-devel python-subunit qemu-kvm
# pip installs
RUN pip install python-subunit junitxml --upgrade && \
pip install tox --upgrade
# Install repo tool
RUN curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo && \
chmod a+x /usr/local/bin/repo

View File

@ -0,0 +1,135 @@
# This file provides a TC build container
#
# Usage:
#
# $cp ~/.gitconfig toCOPY;
# $docker build --build-arg MYUID=`id -u` -t local/tc-builder:7.3 -f Dockerfile.centos73.TC-builder .
#
# container usage:
# docker run -it --rm --name centos-builder -v `pwd`/localdisk:/localdisk -v `pwd`/mirror:/import/mirrors -v ~/.ssh:/mySSH:ro -p 8088:8088 --net=host -v /sys/fs/cgroup:/sys/fs/cgroup:ro -e "container=docker" --privileged=true --security-opt seccomp=unconfined local/tc-builder:7.3
FROM local/dev-centos:7.3
MAINTAINER brian avery <brian.avery@intel.com>
ARG MYUID=1000
# username you will docker exec into the container as . it should NOT be your host username so you can easily tell
# if you are in our out of the container.
ARG MYUNAME=builder
ENV container=docker
# mock time
# forcing chroots since a couple of packages naughtily insist on network access and
# we dont have nspawn and networks happy together.
RUN groupadd -g 751 cgts && \
echo "mock:x:751:root" >> /etc/group && \
echo "mockbuild:x:9001:" >> /etc/group && \
yum install -y mock epel-release rpm-build && \
useradd -s /sbin/nologin -u 9001 -g 9001 mockbuild && \
rmdir /var/lib/mock && \
ln -s /localdisk/loadbuild/mock /var/lib/mock && \
rmdir /var/cache/mock && \
ln -s /localdisk/loadbuild/mock-cache /var/cache/mock && \
echo "config_opts['use_nspawn'] = False" >> /etc/mock/site-defaults.cfg && \
echo "config_opts['rpmbuild_networking'] = True" >> /etc/mock/site-defaults.cfg && \
echo >> /etc/mock/site-defaults.cfg
# Inherited tools for mock stuff
# we at least need the mock_cache_unlock tool
# they install into /usr/bin
COPY toCOPY/cgcs_overlay /opt/cgcs_overlay
RUN cd /opt/cgcs_overlay && \
make && \
make install
# ENV setup
RUN echo "# Load stx-builder configuration" >> /etc/profile.d/TC.sh && \
echo "if [[ -r \${HOME}/buildrc ]]; then" >> /etc/profile.d/TC.sh && \
echo " source \${HOME}/buildrc" >> /etc/profile.d/TC.sh && \
echo " export PROJECT SRC_BUILD_ENVIRONMENT MYPROJECTNAME MYUNAME" >> /etc/profile.d/TC.sh && \
echo " export MY_BUILD_CFG MY_BUILD_CFG_RT MY_BUILD_CFG_STD MY_BUILD_DIR MY_BUILD_ENVIRONMENT MY_BUILD_ENVIRONMENT_FILE MY_BUILD_ENVIRONMENT_FILE_RT MY_BUILD_ENVIRONMENT_FILE_STD MY_DEBUG_BUILD_CFG_RT MY_DEBUG_BUILD_CFG_STD MY_LOCAL_DISK MY_MOCK_ROOT MY_REPO MY_REPO_ROOT_DIR MY_SRC_RPM_BUILD_DIR MY_TC_RELEASE MY_WORKSPACE" >> /etc/profile.d/TC.sh && \
echo "fi" >> /etc/profile.d/TC.sh && \
echo "export FORMAL_BUILD=0" >> /etc/profile.d/TC.sh && \
echo "export PATH=\$MY_REPO/build-tools:\$PATH" >> /etc/profile.d/TC.sh
# centos locales are broken. this needs to be run after the last yum install/update
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
# setup
RUN mkdir -p /www/run && \
mkdir -p /www/logs && \
mkdir -p /www/home && \
mkdir -p /www/root/htdocs/localdisk && \
chown -R $MYUID:cgts /www && \
ln -s /localdisk/loadbuild /www/root/htdocs/localdisk/loadbuild && \
ln -s /import/mirrors/CentOS /www/root/htdocs/CentOS && \
ln -s /import/mirrors/fedora /www/root/htdocs/fedora && \
ln -s /localdisk/designer /www/root/htdocs/localdisk/designer
# lighthttpd setup
# chmod for /var/log/lighttpd fixes a centos issue
# in place sed for server root since it's expanded soon thereafter
# echo "server.bind = \"localhost\"" >> /etc/lighttpd/lighttpd.conf && \
RUN echo "$MYUNAME ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers && \
mkdir -p /var/log/lighttpd && \
chmod a+rwx /var/log/lighttpd/ && \
sed -i 's%^var\.log_root.*$%var.log_root = "/www/logs"%g' /etc/lighttpd/lighttpd.conf && \
sed -i 's%^var\.server_root.*$%var.server_root = "/www/root"%g' /etc/lighttpd/lighttpd.conf && \
sed -i 's%^var\.home_dir.*$%var.home_dir = "/www/home"%g' /etc/lighttpd/lighttpd.conf && \
sed -i 's%^var\.state_dir.*$%var.state_dir = "/www/run"%g' /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.port/#server.port/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.use-ipv6/#server.use-ipv6/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.username/#server.username/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.groupname/#server.groupname/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.bind/#server.bind/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.document-root/#server.document-root/g" /etc/lighttpd/lighttpd.conf && \
sed -i "s/server.dirlisting/#server.dirlisting/g" /etc/lighttpd/lighttpd.conf && \
echo "server.port = 8088" >> /etc/lighttpd/lighttpd.conf && \
echo "server.use-ipv6 = \"disable\"" >> /etc/lighttpd/lighttpd.conf && \
echo "server.username = \"$MYUNAME\"" >> /etc/lighttpd/lighttpd.conf && \
echo "server.groupname = \"cgts\"" >> /etc/lighttpd/lighttpd.conf && \
echo "server.bind = \"localhost\"" >> /etc/lighttpd/lighttpd.conf && \
echo "server.document-root = \"/www/root/htdocs\"" >> /etc/lighttpd/lighttpd.conf && \
sed -i "s/dir-listing.activate/#dir-listing.activate/g" /etc/lighttpd/conf.d/dirlisting.conf && \
echo "dir-listing.activate = \"enable\"" >> /etc/lighttpd/conf.d/dirlisting.conf
# Systemd Enablement
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*
# Without this, init won't start the enabled services and exec'ing and starting
# them reports "Failed to get D-Bus connection: Operation not permitted".
VOLUME /run /tmp
RUN useradd -r -u $MYUID -g cgts -m $MYUNAME && \
ln -s /home/$MYUNAME/.ssh /mySSH
COPY toCOPY/finishSetup.sh /usr/local/bin
COPY toCOPY/.inputrc /home/$MYUNAME/
COPY toCOPY/.gitconfig /home/$MYUNAME/
# now that we are doing systemd, make the startup script be in bashrc
# also we need to SHADOW the udev centric mkefiboot script with a sudo centric one
RUN echo "bash -C /usr/local/bin/finishSetup.sh" >> /home/$MYUNAME/.bashrc && \
echo "export PATH=/usr/local/bin:/localdisk/designer/$MYUNAME/bin:\$PATH" >> /home/$MYUNAME/.bashrc && \
chmod a+x /usr/local/bin/*
## old way
# USER $MYUID:cgts
#ENTRYPOINT ["/usr/bin/bash"]
# CMD bash -C '/localdisk/start.sh';'bash'
# Don't know if it's possible to run services without starting this
CMD /usr/sbin/init

60
Makefile Normal file
View File

@ -0,0 +1,60 @@
# TC Build container
# Set defaults that may be overridden in the buidrc
MY_TC_RELEASE := tis-r5-pike
UID := $(shell id -u)
USER := $(shell id -un)
MYUNAME := builder
BASE_CONTAINER := centos73
BASE_CONTAINER_TAG := local/dev-centos:7.3
BASE_DOCKERFILE := Dockerfile.centos73
TC_CONTAINER_NAME := $(USER)-centos-builder
TC_CONTAINER_TAG := local/$(USER)-stx-builder:7.3
TC_DOCKERFILE := Dockerfile.centos73.TC-builder
# Import the build config
NULL := $(shell bash -c "source buildrc; set | sed -E '/^[[:alnum:]_]+/s/=/:=/' | sed 's/^//' > .makeenv")
include .makeenv
# Base CentOS container
base-build:
docker build \
--ulimit core=0 \
-t $(BASE_CONTAINER_TAG) \
-f $(BASE_DOCKERFILE) \
.
base-clean:
docker image rm $(BASE_CONTAINER_TAG)
# TC builder container
build:
docker build \
--build-arg MYUID=$(UID) \
--build-arg MYUNAME=$(MYUNAME) \
--ulimit core=0 \
-t $(TC_CONTAINER_TAG) \
-f $(TC_DOCKERFILE) \
.
clean:
docker rm $(TC_CONTAINER_NAME) || true
docker image rm $(TC_CONTAINER_TAG)
env:
@echo "TC_DOCKERFILE=$(TC_DOCKERFILE)"
@echo "TC_CONTAINER_NAME=$(TC_CONTAINER_NAME)"
@echo "TC_CONTAINER_TAG=$(TC_CONTAINER_TAG)"
@echo "SOURCE_REMOTE_NAME=$(SOURCE_REMOTE_NAME)"
@echo "SOURCE_REMOTE_URI=$(SOURCE_REMOTE_URI)"
@echo "HOST_MIRROR_DIR=$(HOST_MIRROR_DIR)"
@echo "MY_TC_RELEASE=$(MY_TC_RELEASE)"
@echo "LOCALDISK=${LOCALDISK}"
@echo "GUEST_LOCALDISK=${GUEST_LOCALDISK}"
.PHONY: base-build base-clean build clean env

209
README.md Normal file
View File

@ -0,0 +1,209 @@
# stx-tools
StarlilngX Build Tools
The StarlingX build process is tightly tied to CentOS in a number of ways,
doing the build inside a Docker container makes this much easier on other
flavors of Linux.
## Container Build Preparation
We will use a copy of your existing `.gitconfig` in the container to pick up existing
configuration. The StarlingX build system also has some specific requirements that
do not need to be in your personal `.gitconfig`. Copy it into `toCOPY` to be picked
up in the container build.
```
cp ~/.gitconfig toCOPY
```
## Configuration
tbuilder uses a two-step configuration process that provides access to certain
configuration values both inside and outside the container. This is extremely
useful for path variables such as `MY_REPO` with have different values inside
and outside but can be set to point to the same place.
The `buildrc` file is a shell script that is used to set the default configuration
values. It is contained in the tbuilder repo and should not need to be modified by
users as it reads a `localrc` file that will not be overwritten by tbuilder updates.
This is where users should alter the default settings.
### Sample `localrc`
```
# tbuilder localrc
MYUNAME=stx-builder
PROJECT=stx-work
HOST_PREFIX=$HOME/work
```
## Makefile
tbuilder contains a Makefile that can be used to automate the build lifecycle
of a container. The commands below are handled by the Makefile and will read the
contents of the `buildrc` file.
The targets commonly used are:
* build - build the Docker images as required (This includes dev-centos, to build
just the base dev image use target `base-build`.)
* clean - remove the stx-builder image (The dev-centos image is not removed, use
`base-clean` to do that)
## Base Container Build
The container build has been split into two parts to simplify iterating on build development.
The basic CentOS image and the nearly 500 required development packages are pre-installed
into a base image (`local/dev-centos:7.3`) that is then used for the StarlingX builder-specific
bits.
```
make base-build
```
will run essentially the following manual build command:
```
docker build \
--ulimit core=0 \
-t local/dev-centos:7.3 \
-f Dockerfile.centos73 \
.
```
## STX Builder Container Build
StarlingX Builder container images are tied to your UID so image names should include your
username.
```
make build
```
#### NOTE:
* Do NOT change the UID to be different from the one you have on your host or things
will go poorly. i.e. do not change `--build-arg MYUID=$(id -u)`
* The Dockerfile needs MYUID and MYUNAME defined, the rest of the configuration is
copied in via buildrc/localrc.
## Use the Builder Container
The `tb.sh` script is used to manage the run/stop lifecycle of working containers.
Copy it to somewhere on your `PATH`, say `$HOME/bin` if you have one, or maybe
`/usr/local/bin`.
The basic workflow is to create a working directory for a particular build,
say a specific branch or whatever. Copy the `buildrc` file from the tbuilder repo
to your work directory and create a `localrc` if you need one. The current
working directory is assumed to be this work directory for all `tb.sh` commands.
You switch projects by switching directories.
By default `LOCALDISK` will be placed under the directory pointed to by `HOST_PREFIX`,
which defaults to `$HOME/starlingx`.
The `tb.sh` script uses sub-commands to select the operation:
* `run` - Runs the container in a shell. This does not return to a shell prompt while
the container is running, you will need another shell window to work inside the
container. This allows systemd and thus mock, to work from within the container.
It will also create `LOCALDISK` if it does not exist.
* `stop` - Kills the running shell.
* `exec` - Starts a shell inside the container.
You should name your running container with your username. tbuilder does this automatically
using the `USER` environment variable.
`tb.sh run` will create `LOCALDISK` if it does not already exist before starting the
container.
Set the mirror directory to the shared mirror pointed to by `HOST_MIRROR_DIR`. The mirror
is LARGE, if you are on a shared machine use the shared mirror. For example you could set
the default value for `HOST_MIRROR_DIR` to
`/home/starlingx/mirror` and share it.
### Running the Container
Start the builder container:
```
tb.sh run
```
or by hand:
```
docker run -it --rm \
--name ${TC_CONTAINER_NAME} \
-v ${LOCALDISK}:${GUEST_LOCALDISK} \
-v ${HOST_MIRROR_DIR}:/import/mirrors:ro \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v ~/.ssh:/mySSH:ro \
-e "container=docker" \
--security-opt seccomp=unconfined \
${TC_CONTAINER_TAG}
```
### Running a Shell Inside the Container
Since running the container does not return to a shell prompt the exec into the container
must be done from a different shell:
```
tb.sh exec
```
or by hand:
```
docker exec -it --user=${MYUNAME} ${USER}-centos-builder bash
```
#### Notes:
* The above will reusult in a running container in systemd mode. It will have NO login.
* I tend to use tmux to keep a group of shells related to the build container
* `--user=${USER}` is the default username, set `MYUNAME` in `buildrc` to change it.
### Stop the Container
```
tb.sh stop
```
or by hand:
```
docker kill ${USER}-centos-builder
```
## What to do to build from WITHIN the container
### To make git cloning less painful
```
$ eval $(ssh-agent)
$ ssh-add
```
### To start a fresh source tree
#### Instructions
# Initialize the source tree.
```
cd $MY_REPO_ROOT_DIR
repo init -u git@git.openstack.org:openstack/stx-manifest.git -m stx-manifest.xml
repo sync
```
### To build all packages:
```
$ cd $MY_REPO
$ build-pkgs or build-pkgs --clean <pkglist>; build-pkgs <pkglist>
```
### To make an iso:
```
$ build-iso
```
### First time build
The entire project builds as a bootable image which means that the resulting ISO needs the boot files (initrd, vmlinuz, etc) that are also built by this build system. The symptom of this issue is that even if the build is successful, the ISO will be unable to boot.
For more specific instructions on how to solve this issue, please the README on `installer` folder in `stx-beas` repository.
## WARNING HACK WARNING
* Due to a lack of full udev support in the current build container, you need to do the following:
```
$ cd $MY_REPO
$ rm build-tools/update-efiboot-image
$ ln -s /usr/local/bin/update-efiboot-image $MY_REPO/build-tools/update-efiboot-image
```
* if you see complaints about udisksctl not being able to setup the loop device or not being able to mount it, you need to make sure the build-tools/update-efiboot-image is linked to the one in /usr/local/bin
## Troubleshooting
* if you see:
```
Unit tmp.mount is bound to inactive unit dev-sdi2.device. Stopping, too.
```
* it's a docker bug. just kill the container and restart the it using a different name.
* I usually switch between <uname>-centos-builder and <uname>-centos-builder2. It's some kind of timeout (bind?) issue.

84
buildrc Normal file
View File

@ -0,0 +1,84 @@
# Common configuration for TC tbuilder
[[ -z "$_BUILDRC" ]] || return 0
declare -r -g _BUILDRC=1
# Find the other rc files
BUILDRC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)
# Allow local overrides of env variables
if [[ -f $BUILDRC_DIR/localrc ]]; then
source $BUILDRC_DIR/localrc
fi
# Source repo base - Intel GitHub
SOURCE_HOST=${SOURCE_HOST:-git.openstack.org}
SOURCE_PORT=${SOURCE_PORT:-}
SOURCE_PROJECT=${SOURCE_PROJECT:-openstack}
SOURCE_REMOTE_URI=${SOURCE_REMOTE_URI:-git@${SOURCE_HOST}:${SOURCE_PROJECT}}
# Host-side prefix
if [[ -n $container && "$container" == "docker" ]]; then
# We are running inside a docker container, do not give HOST_PATH a value
HOST_PREFIX=
else
# Host-side path for user-local /localdisk assumes that all user workspaces are
# in the same directory structure. Override this in localrc if that is
# not the case.
HOST_PREFIX=${HOST_PREFIX:-${HOME}/starlingx}
fi
# Basic build environment configuration
# Real (outside the container) username
export USER=${USER:-$(id -un)}
# Local mirror location
HOST_MIRROR_DIR=${HOST_MIRROR_DIR:-/home/starlingx/mirror}
# The root of an individual build workspace
# GUEST_LOCALDISK is used for the docker run command mapping; don't change this
# until the WRS tooling is gone, it is hard-coded in many places
# We remove a leading '/' as having more than one breaks certain bits of the build
GUEST_LOCALDISK=${LOCALDISK:-localdisk}
GUEST_LOCALDISK=${GUEST_LOCALDISK%/}
# In the docker run command this will be correct for the host side of the mapping
LOCALDISK=${HOST_PREFIX}/${GUEST_LOCALDISK}
# TC vars
export MY_TC_RELEASE=${MY_TC_RELEASE:-tis-r5-pike}
# Default branch to build
export BRANCH=${BRANCH:-intel_r0}
# avoid calling your project 'build' it will break some SRPMs
export PROJECT=${PROJECT:-test}
# These are used in the Dockerfile, not sure where else
export MYUNAME=${MYUNAME:-builder}
export MYPROJECTNAME=${PROJECT:-frog1}
export SRC_BUILD_ENVIRONMENT=${SRC_BUILD_ENVIRONMENT:-$MY_TC_RELEASE}
# All of the below are dependent on variables defined earlier, right now
# we are not going to support directly setting them in localrc
export MY_BUILD_ENVIRONMENT=$MYUNAME-$PROJECT-$SRC_BUILD_ENVIRONMENT
export MY_BUILD_ENVIRONMENT_FILE=${MY_BUILD_ENVIRONMENT}.cfg
export MY_BUILD_ENVIRONMENT_FILE_STD=${MY_BUILD_ENVIRONMENT}-std.cfg
export MY_BUILD_ENVIRONMENT_FILE_RT=${MY_BUILD_ENVIRONMENT}-rt.cfg
export MY_BUILD_DIR=${LOCALDISK}/loadbuild/$MYUNAME/$PROJECT
export MY_WORKSPACE=$MY_BUILD_DIR
export MY_LOCAL_DISK=${LOCALDISK}/designer/$MYUNAME
export MY_REPO_ROOT_DIR=$MY_LOCAL_DISK/$PROJECT
export MY_REPO=$MY_REPO_ROOT_DIR/cgcs-root
export MY_SRC_RPM_BUILD_DIR=$MY_BUILD_DIR/rpmbuild
export MY_BUILD_CFG=$MY_WORKSPACE/$MY_BUILD_ENVIRONMENT_FILE
export MY_BUILD_CFG_STD=$MY_WORKSPACE/std/${MY_BUILD_ENVIRONMENT_FILE_STD}
export MY_BUILD_CFG_RT=${MY_WORKSPACE}/rt/${MY_BUILD_ENVIRONMENT_FILE_RT}
export MY_MOCK_ROOT=$MY_WORKSPACE/mock/root
export MY_DEBUG_BUILD_CFG_STD=${MY_WORKSPACE}/std/configs/${MY_BUILD_ENVIRONMENT}-std/${MY_BUILD_ENVIRONMENT}-std.b0.cfg
export MY_DEBUG_BUILD_CFG_RT=${MY_WORKSPACE}/std/configs/${MY_BUILD_ENVIRONMENT}-std/${MY_BUILD_ENVIRONMENT}-rt.b0.cfg

View File

@ -0,0 +1,21 @@
## mirror download container
FROM centos:7.4.1708
#ENV http_proxy "http://your.actual_http_proxy.com:your_port"
#ENV https_proxy "https://your.actual_https_proxy.com:your_port"
#ENV ftp_proxy "http://your.actual_ftp_proxy.com:your_port"
#RUN echo "proxy=http://your-proxy.com:port" >> /etc/yum.conf
RUN yum install -y epel-release sudo vim-enhanced net-tools
RUN yum install -y /usr/bin/yumdownloader rpm-build rpm-sign deltarpm wget bind bind-utils
RUN rm /etc/yum.repos.d/CentOS-Sources.repo && \
rm /etc/yum.repos.d/epel.repo
COPY StarlingX.repo /etc/yum.repos.d
COPY rpm-gpg-keys/* /etc/pki/rpm-gpg/
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

View File

@ -0,0 +1,64 @@
# Create mirror for Akraino
## Step 0 - Build the container
Build the docker image on your Linux host (with Docker supported). **NOTE**: if necessary you might have to set http/https proxy in your Dockerfile before building the docker image below.
```
$ docker build -t <your_docker_image_name>:<your_image_version> -f Dockerfile .
```
## Step 1 - Run the container
The container shall be run from the same directory where the other scripts are stored.
```
$ docker run -v $(pwd):/localdisk <your_docker_image_name>:<your_image_version> bash
```
As `/localdisk` is defined as the workdir of the container, the same folder name should be used to define the volume. The container will start to run and populate a `logs` and `output` folders in this directory.
The container shall be run from the same directory where the other scripts are stored.
## step 2 - Run the `download_mirror.sh` script
Once inside the container run the downloader script
```
$ cd /localdisk
$ ./download_mirror.sh
```
NOTE: in case there are some downloading failures due to network instability (or timeout),
you should download them manually, to assure you get all RPMs listed in "rpms_from_3rd_parties.lst" and "rpms_from_centos_repo.lst".
## step 3 - Copy the files to the mirror
After all downloading complete, copy the download files to mirror.
```
$ find ./output -name "*.i686.rpm" | xargs rm -f
$ chown 751:751 -R ./output
$ cp -rf output/akraino-r1/ <your_mirror_folder>/CentOS/
```
In this case `<your_mirror_folder>` can be whatever folder you want to use as mirror.
## step 4 - Tweaks in the Akraino build system.
NOTE: step below is not needed if you've synced the latest codebase.
Go into Akraino build system (*another* container which hosts cgcs build system), and follow up below steps:
## Debugging issues
The `download_mirro.sh` script will create log files in the form of `centos_rpms_*.txt`. After the download is complete, it's recommended to check the content of these files to see if everything was downloaded correctly.
A quick look into these files could be:
```
$ cd output/
$ cat *missing*
```
In this case, there shoudn't be any package in the "missing" files.

View File

@ -0,0 +1,357 @@
#### VAULT AKA Unmaintained old Packages
### see http://vault.centos.org/readme.txt
### created by Brian Avery
# 7.2.1511
#
[Starlingx-C7.2.1511-cloud-newton]
name=Starlingx-CentOS-7.2.1511 - Cloud-newton
baseurl=http://vault.centos.org/7.2.1511/cloud/x86_64/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-cloud-newton-source]
name=Starlingx-CentOS-7.2.1511 - Cloud-newton-source
baseurl=http://vault.centos.org/7.2.1511/cloud/Source/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-extras]
name=StarlingX-CentOS-7.2.1511 - extras
baseurl=http://vault.centos.org/7.2.1511/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-extras-source]
name=Starlingx-CentOS-7.2.1511 - extras-source
baseurl=http://vault.centos.org/7.2.1511/extras/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-os]
name=Starlingx-CentOS-7.2.1511 - os
baseurl=http://vault.centos.org/7.2.1511/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-os-source]
name=Starlingx-CentOS-7.2.1511 - os-source
baseurl=http://vault.centos.org/7.2.1511/os/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-updates]
name=Starlingx-CentOS-7.2.1511 - updates
baseurl=http://vault.centos.org/7.2.1511/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-updates-source]
name=Starlingx-CentOS-7.2.1511 - updates-source
baseurl=http://vault.centos.org/7.2.1511/updates/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-virt-kvm]
name=Starlingx-CentOS-7.2.1511 - virt-kvm
baseurl=http://vault.centos.org/7.2.1511/virt/x86_64/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.2.1511-virt-kvm-source]
name=Starlingx-CentOS-7.2.1511 - virt-kvm-source
baseurl=http://vault.centos.org/7.2.1511/virt/Source/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
# 7.3.1611
#
[Starlingx-C7.3.1611-cloud-newton]
name=Starlingx-CentOS-7.3.1611 - Cloud-newton
baseurl=http://vault.centos.org/7.3.1611/cloud/x86_64/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-cloud-newton-source]
name=Starlingx-CentOS-7.3.1611 - Cloud-newton-source
baseurl=http://vault.centos.org/7.3.1611/cloud/Source/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-cloud-pike]
name=Starlingx-CentOS-7.3.1611 - Cloud-pike
baseurl=http://vault.centos.org/7.3.1611/cloud/x86_64/openstack-pike/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-cloud-pike-source]
name=Starlingx-CentOS-7.3.1611 - Cloud-pike-source
baseurl=http://vault.centos.org/7.3.1611/cloud/Source/openstack-pike/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-extras]
name=Starlingx-CentOS-7.3.1611 - extras
baseurl=http://vault.centos.org/7.3.1611/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-extras-source]
name=Starlingx-CentOS-7.3.1611 - extras-source
baseurl=http://vault.centos.org/7.3.1611/extras/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-os]
name=Starlingx-CentOS-7.3.1611 - os
baseurl=http://vault.centos.org/7.3.1611/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-os-source]
name=Starlingx-CentOS-7.3.1611 - os-source
baseurl=http://vault.centos.org/7.3.1611/os/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-rt]
name=Starlingx-CentOS-7.3.1611 - rt
baseurl=http://vault.centos.org/7.3.1611/rt/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-rt-source]
name=Starlingx-CentOS-7.3.1611 - rt-source
baseurl=http://vault.centos.org/7.3.1611/rt/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-updates]
name=Starlingx-CentOS-7.3.1611 - updates
baseurl=http://vault.centos.org/7.3.1611/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-updates-source]
name=Starlingx-CentOS-7.3.1611 - updates-source
baseurl=http://vault.centos.org/7.3.1611/updates/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-virt-kvm]
name=Starlingx-CentOS-7.3.1611 - virt-kvm
baseurl=http://vault.centos.org/7.3.1611/virt/x86_64/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-virt-kvm-source]
name=Starlingx-CentOS-7.3.1611 - virt-kvm-source
baseurl=http://vault.centos.org/7.3.1611/virt/Source/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-virt-libvirt]
name=Starlingx-CentOS-7.3.1611 - virt-libvirt
baseurl=http://vault.centos.org/7.3.1611/virt/x86_64/libvirt-latest
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.3.1611-virt-libvirt-source]
name=Starlingx-CentOS-7.3.1611 - virt-libvirt-source
baseurl=http://vault.centos.org/7.3.1611/virt/Source/libvirt-latest
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
# 7.4.1708
#
[Starlingx-C7.4.1708-cloud-newton]
name=Starlingx-CentOS-7.4.1708 - Cloud-newton
baseurl=http://vault.centos.org/7.4.1708/cloud/x86_64/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-cloud-newton-source]
name=Starlingx-CentOS-7.4.1708 - Cloud-newton-source
baseurl=http://vault.centos.org/7.4.1708/cloud/Source/openstack-newton/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-cloud-pike]
name=Starlingx-CentOS-7.4.1708 - Cloud-pike
baseurl=http://vault.centos.org/7.4.1708/cloud/x86_64/openstack-pike/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-cloud-pike-source]
name=Starlingx-CentOS-7.4.1708 - Cloud-pike-source
baseurl=http://vault.centos.org/7.4.1708/cloud/Source/openstack-pike/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-extras]
name=Starlingx-CentOS-7.4.1708 - extras
baseurl=http://vault.centos.org/7.4.1708/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-extras-source]
name=Starlingx-CentOS-7.4.1708 - extras-source
baseurl=http://vault.centos.org/7.4.1708/extras/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-os]
name=Starlingx-CentOS-7.4.1708 - os
baseurl=http://vault.centos.org/7.4.1708/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-os-source]
name=Starlingx-CentOS-7.4.1708 - os-source
baseurl=http://vault.centos.org/7.4.1708/os/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-rt]
name=Starlingx-CentOS-7.4.1708 - rt
baseurl=http://vault.centos.org/7.4.1708/rt/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-rt-source]
name=Starlingx-CentOS-7.4.1708 - rt-source
baseurl=http://vault.centos.org/7.4.1708/rt/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-updates]
name=Starlingx-CentOS-7.4.1708 - updates
baseurl=http://vault.centos.org/7.4.1708/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-updates-source]
name=Starlingx-CentOS-7.4.1708 - updates-source
baseurl=http://vault.centos.org/7.4.1708/updates/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-virt-kvm]
name=Starlingx-CentOS-7.4.1708 - virt-kvm
baseurl=http://vault.centos.org/7.4.1708/virt/x86_64/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-virt-kvm-source]
name=Starlingx-CentOS-7.4.1708 - virt-kvm-source
baseurl=http://vault.centos.org/7.4.1708/virt/Source/kvm-common
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-C7.4.1708-virt-libvirt]
name=Starlingx-CentOS-7.4.1708 - virt-libvirt
baseurl=http://vault.centos.org/7.4.1708/virt/x86_64/libvirt-latest
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
[Starlingx-C7.4.1708-virt-libvirt-source]
name=Starlingx-CentOS-7.4.1708 - virt-libvirt-source
baseurl=http://vault.centos.org/7.4.1708/virt/Source/libvirt-latest
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
########
#### EPEL -
[Starlingx-epel-7]
name=Starlingx-Epel-7
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/7/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
enabled=1
[Starlingx-epel-7-debug]
name=Starlingx-Epel-7-debug
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/7/x86_64/debug
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-epel-7-source]
name=Starlingx-Epel-7-source
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/7/SRPMS/
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-epel-7-testing]
name=Starlingx-Epel-7
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/testing/7/x86_64/
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-epel-7-testing-debug]
name=Starlingx-Epel-7
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/testing/7/x86_64/debug/
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[Starlingx-epel-7-testing-source]
name=Starlingx-Epel-7-source
baseurl=http://linux-ftp.jf.intel.com/pub/mirrors/fedora-epel/testing/7/SRPMS/
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

View File

@ -0,0 +1,52 @@
#!/bin/bash -e
# download non-RPM files from http://vault.centos.org/7.4.1708/os/x86_64/
if [ $# -lt 2 ]; then
echo "$0 <other_download_list.ini> <save_path> [<force_update>]"
exit -1
fi
download_list=$1
if [ ! -e $download_list ];then
echo "$download_list does not exist, please have a check!!"
exit -1
fi
save_path=$2
url_prefix="http://vault.centos.org/7.4.1708/os/x86_64/"
echo "NOTE: please assure Internet access to $url_prefix !!"
force_update=$3
i=0
all=`cat $download_list`
for ff in $all; do
## skip commented_out item which starts with '#'
if [[ "$ff" =~ ^'#' ]]; then
echo "skip $ff"
continue
fi
_type=`echo $ff | cut -d":" -f1-1`
_name=`echo $ff | cut -d":" -f2-2`
if [ "$_type" == "folder" ];then
mkdir -p $save_path/$_name
else
echo "remote path: $url_prefix/$_name"
echo "local path: $save_path/$_name"
if wget $url_prefix/$_name; then
file_name=`basename $_name`
sub_path=`dirname $_name`
if [ -e "./$file_name" ]; then
let i+=1
echo "$file_name is downloaded successfully"
mv -f ./$file_name $save_path/$_name
ls -l $save_path/$_name
fi
else
echo "ERROR: failed to download $url_prefix/$_name"
fi
fi
done
echo "totally $i files are downloaded!"

152
centos-mirror-tools/dl_rpms.sh Executable file
View File

@ -0,0 +1,152 @@
#!/bin/bash -e
# download RPMs/SRPMs from different sources.
# this script was originated by Brian Avery, and later updated by Yong Hu
if [ $# -lt 3 ]; then
echo "$0 <rpms_list> <match_level> <from_where>"
echo "rpm_list: a list of RPM files to be downloaded."
echo "match_level: value could be L1, L2 or L3:"
echo " L1: use name, major version and minor version, for example, using vim-7.4.160-2.el7 to search vim-7.4.160-2.el7.src.rpm"
echo " L2: use name and major version, for example, using vim-7.4.160 to search vim-7.4.160-2.el7.src.rpm"
echo " L3: use name, for example, using vim to search vim-7.4.160-2.el7.src.rpm"
echo "from_where: where to download the RPMs: 'centos'from CentOS Repos, otherwise from 3rd-party websets"
exit -1
fi
if [ "$1" == "" ]; then
echo "Need to supply the rpm file list"
exit -1;
else
rpms_list=$1
echo "using $rpms_list as the download name lists"
fi
match_level="L1"
if [ ! -z "$2" -a "$2" != " " ];then
match_level=$2
fi
from=$3
timestamp=$(date +%F_%H%M)
echo $timestamp
DESTDIR="output"
MDIR_SRC=$DESTDIR/stx-r1/CentOS/pike/Source
mkdir -p $MDIR_SRC
MDIR_BIN=$DESTDIR/stx-r1/CentOS/pike/Binary
mkdir -p $MDIR_BIN
FAIL_MOVE_SRPMS="$DESTDIR/${from}_srpms_fail_move_${match_level}.txt"
FOUND_SRPMS="$DESTDIR/${from}_srpms_found_${match_level}.txt"
MISSING_SRPMS="$DESTDIR/${from}_srpms_missing_${match_level}.txt"
cat /dev/null > $FAIL_MOVE_SRPMS
cat /dev/null > $FOUND_SRPMS
cat /dev/null > $MISSING_SRPMS
FAIL_MOVE_RPMS="$DESTDIR/${from}_rpms_fail_move_${match_level}.txt"
FOUND_RPMS="$DESTDIR/${from}_rpms_found_${match_level}.txt"
MISSING_RPMS="$DESTDIR/${from}_rpms_missing_${match_level}.txt"
cat /dev/null > $FAIL_MOVE_RPMS
cat /dev/null > $FOUND_RPMS
cat /dev/null > $MISSING_RPMS
#function to download different type of RPMs in different ways
download () {
_list=$1
_level=$2
_from=$3
_type=$4
echo "now the rpm will come from: $_from"
for ff in $_list; do
## download RPM from CentOS repos
if [ "$_from" == "centos" ]; then
rpm_name=$ff
if [ $_level == "L1" ]; then
SFILE=`echo $rpm_name | rev | cut -d'.' -f3- | rev`
elif [ $match_level == "L2" ];then
SFILE=`echo $rpm_name | rev | cut -d'-' -f2- | rev`
else
SFILE=`echo $rpm_name | rev | cut -d'-' -f3- | rev`
fi
echo " ------ using $SFILE to search $rpm_name ------"
if [ "$_type" == "src" ];then
download_cmd="sudo -E yumdownloader -q -C --source $SFILE"
else
download_cmd="sudo -E yumdownloader -q -C $SFILE --archlist=noarch,x86_64"
fi
else
rpm_name=`echo $ff | cut -d"#" -f1-1`
rpm_url=`echo $ff | cut -d"#" -f2-2`
download_cmd="wget $rpm_url"
SFILE=$rpm_name
fi
echo "--> run: $download_cmd"
if [ "$_type" == "src" ]; then
if [ ! -e $MDIR_SRC/$rpm_name ]; then
echo "Looking for $rpm_name"
if $download_cmd ; then
if ! mv -f $SFILE* $MDIR_SRC ; then
echo "FAILED to move $rpm_name"
echo $rpm_name >> $FAIL_MOVE_SRPMS
fi
echo $rpm_name >> $FOUND_SRPMS
else
echo $rpm_name >> $MISSING_SRPMS
fi
else
echo "Already have ${MDIR_BIN}/${_type}/$rpm_name"
echo $rpm_name >> $FOUND_SRPMS
fi
else ## noarch or x86_64
if [ ! -e ${MDIR_BIN}/${_type}/$rpm_name ]; then
echo "Looking for $rpm_name..."
if $download_cmd ; then
mkdir -p $MDIR_BIN/${_type}
if ! mv -f $SFILE* $MDIR_BIN/${_type}/ ; then
echo "FAILED to move $rpm_name"
echo $rpm_name >> $FAIL_MOVE_RPMS
fi
echo $rpm_name >> $FOUND_RPMS
else
echo $rpm_name >> $MISSING_RPMS
fi
else
echo "Already have ${MDIR_BIN}/${_type}/$rpm_name"
echo $rpm_name >> $FOUND_RPMS
fi
fi
done
}
# prime the cache
sudo -E yum makecache
#go to download *.noarch.rpm files
noarch_rpms=`echo "$(cat $rpms_list | grep '.noarch.rpm')"`
if [ ! -z "$noarch_rpms" ];then
echo "--> start searching noarch RPMs ....."
download "$noarch_rpms" $match_level $from "noarch"
fi
#go to download *.x86_64.rpm files
x86_64_rpms=`echo "$(cat $rpms_list | grep '.x86_64.rpm')"`
if [ ! -z "$x86_64_rpms" ];then
echo "--> start searching x86_64 RPMs ....."
download "$x86_64_rpms" $match_level $from "x86_64"
fi
#go to download *.src.rpm files
src_rpms=`echo "$(cat $rpms_list | grep '.src.rpm')"`
if [ ! -z "$src_rpms" ];then
echo "--> start searching source RPMs ....."
download "$src_rpms" $match_level $from "src"
fi
echo "done!!"
exit 0

View File

@ -0,0 +1,108 @@
#!/bin/bash -e
echo "--------------------------------------------------------------"
echo "WARNING: this script HAS TO access internet (http/https/ftp),"
echo "so please make sure your network working properly!!"
mkdir -p ./logs
rpm_downloader="./dl_rpms.sh"
if [ ! -e $rpm_downloader ];then
echo "ERROR: $rpm_downloader does NOT exist!!"
exit -1
fi
#download RPMs/SRPMs from 3rd_party websites (not CentOS repos) by "wget".
echo "step #1: start downloading RPMs/SRPMs from 3rd-party websites..."
if [ ! -e ./rpms_from_3rd_parties.lst ];then
echo "ERROR: ./rpms_from_3rd_parties.lst does NOT exist!!"
exit -1
fi
$rpm_downloader ./rpms_from_3rd_parties.lst L1 3rd | tee ./logs/log_download_rpms_from_3rd_party.txt
if [ $? != 0 ];then
echo "ERROR: something wrong with downloading, please check the log!!"
fi
#download RPMs/SRPMs from CentOS repos by "yumdownloader"
if [ ! -e ./rpms_from_centos_repo.lst ];then
echo "ERROR: ./rpms_from_centos_repo.lst does NOT exist!!"
exit -1
fi
echo "step #2: start 1st round of downloading RPMs and SRPMs with L1 match criteria..."
$rpm_downloader ./rpms_from_centos_repo.lst L1 centos | tee ./logs/log_download_rpms_from_centos_L1.txt
if [ $? == 0 ]; then
echo "finish 1st round of RPM downloading successfully!"
if [ -e "./output/centos_rpms_missing_L1.txt" ]; then
missing_num=`wc -l ./output/centos_rpms_missing_L1.txt | cut -d " " -f1-1`
if [ "$missing_num" != "0" ];then
echo "ERROR: -------RPMs missing $missing_num in yumdownloader wit L1 match ---------------"
fi
#echo "start 2nd round of downloading Binary RPMs with L2 match criteria..."
#$rpm_downloader ./output/centos_rpms_missing_L1.txt L2 centos | tee ./logs/log_download_rpms_from_centos_L2.txt
#if [ $? == 0 ]; then
# echo "finish 2nd round of RPM downloading successfully!"
# if [ -e "./output/rpms_missing_L2.txt" ]; then
# echo "WARNING: we're still missing RPMs listed in ./rpms_missing_L2.txt !"
# fi
#fi
fi
if [ -e "./output/centos_srpms_missing_L1.txt" ]; then
missing_num=`wc -l ./output/centos_srpms_missing_L1.txt | cut -d " " -f1-1`
if [ "$missing_num" != "0" ];then
echo "ERROR: --------- SRPMs missing $missing_num in yumdownloader wit L1 match ---------------"
fi
#echo "start 2nd round of downloading Source RPMs with L2 match criteria..."
#$rpm_downloader ./output/centos_srpms_missing_L1.txt L2 centos | tee ./logs/log_download_srpms_from_centos_L2.txt
#if [ $? == 0 ]; then
# echo "finish 2nd round of SRPM downloading successfully!"
# if [ -e "./srpms_missing_L2.txt" ]; then
# echo "WARNING: we're still missing SRPMs listed in ./rpms_missing_L2.txt !"
# fi
#fi
fi
else
echo "finish 1st round with failures!"
fi
## verify all RPMs SRPMs we download for the GPG keys
find ./output -type f -name "*.rpm" | xargs rpm -K | grep -i "MISSING KEYS" > ./rpm-gpg-key-missing.txt
# remove all i686.rpms to avoid pollute the chroot dep chain
find ./output -name "*.i686.rpm" | tee ./output/all_i686.txt
find ./output -name "*.i686.rpm" | xargs rm -f
line1=`wc -l rpms_from_3rd_parties.lst | cut -d " " -f1-1`
line2=`wc -l rpms_from_centos_repo.lst | cut -d " " -f1-1`
let total_line=$line1+$line2
echo "We expect to download $total_line RPMs!"
num_of_downloaded_rpms=`find ./output -type f -name "*.rpm" | wc -l | cut -d" " -f1-1`
echo "Actually we downloaded $num_of_downloaded_rpms RPMs."
if [ "$total_line" != "$num_of_downloaded_rpms" ];then
echo "ERROR: some RPM downloading failed, need to check outputs and logs"
fi
# change "./output" and sub-folders to 751 (cgcs) group
chown 751:751 -R ./output
other_downloader="./dl_other_from_centos_repo.sh"
if [ ! -e ./other_downloads.lst ];then
echo "ERROR: ./other_downloads.lst does not exist!"
exit -1
fi
echo "step #3: start downloading other files ..."
$other_downloader ./other_downloads.lst ./output/stx-r1/CentOS/pike/Binary/ | tee ./logs/log_download_other_files_centos.txt
if [ $? == 0 ];then
echo "step #3: done successfully"
fi
echo "IMPORTANT: The following 3 files are just bootstrap versions. Based on them, the workable images"
echo "for StarlingX could be generated by running \"update-pxe-network-installer\" command after \"build-iso\""
echo " - out/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img"
echo " - out/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img"
echo " - out/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz"

View File

@ -0,0 +1,29 @@
folder:EFI
folder:EFI/BOOT
#file:EFI/BOOT/mmx64.efi
#file:EFI/BOOT/grubia32.efi
file:EFI/BOOT/grub.cfg
file:EFI/BOOT/BOOTX64.EFI
file:EFI/BOOT/grubx64.efi
#file:EFI/BOOT/BOOTIA32.EFI
#file:EFI/BOOT/mmia32.efi
folder:EFI/BOOT/fonts
file:EFI/BOOT/fonts/unicode.pf2
folder:LiveOS
file:LiveOS/squashfs.img
folder:images
folder:images/pxeboot
file:images/pxeboot/initrd.img
file:images/pxeboot/vmlinuz
file:images/efiboot.img
#file:images/boot.iso
folder:isolinux
file:isolinux/memtest
file:isolinux/grub.conf
file:isolinux/initrd.img
file:isolinux/boot.msg
file:isolinux/vmlinuz
file:isolinux/isolinux.bin
file:isolinux/splash.png
file:isolinux/isolinux.cfg
file:isolinux/vesamenu.c32

View File

@ -0,0 +1,28 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.6 (GNU/Linux)
mQGiBEWfB6MRBACrnYW6yKMT+MwJlCIhoyTxGf3mAxmnAiDEy6HcYN8rivssVTJk
CFtQBlBOpLV/OW2YtKrCO2xHn46eNfnMri8FGT8g+9JF3MUVi7kiV1He4iJynHXB
+F2ZqIvHf3IaUj1ys+p8TK64FDFxDQDrGQfIsD/+pkSGx53/877IrvdwjwCguQcr
Ioip5TH0Fj0OLUY4asYVZH8EAIqFHEqsY+9ziP+2R3/FyxSllKkjwcMLrBug+cYO
LYDD6eQXE9Mq8XKGFDj9ZB/0+JzK/XQeStheeFG75q3noq5oCPVFO4czuKErIRAB
qKbDBhaTj3JhOgM12XsUYn+rI6NeMV2ZogoQCC2tWmDETfRpYp2moo53NuFWHbAy
XjETA/sHEeQT9huHzdi/lebNBj0L8nBGfLN1nSRP1GtvagBvkR4RZ6DTQyl0UzOJ
RA3ywWlrL9IV9mrpb1Fmn60l2jTMMCc7J6LacmPK906N+FcN/Docj1M4s/4CNanQ
NhzcFhAFtQL56SNyLTCk1XzhssGZ/jwGnNbU/aaj4wOj0Uef5LRGQ2VudE9TLTUg
S2V5IChDZW50T1MgNSBPZmZpY2lhbCBTaWduaW5nIEtleSkgPGNlbnRvcy01LWtl
eUBjZW50b3Mub3JnPohkBBMRAgAkBQJFnwekAhsDBQkSzAMABgsJCAcDAgMVAgMD
FgIBAh4BAheAAAoJEKikR9zoViiXKlEAmwSoZDvZo+WChcg3s/SpNoWCKhMAAJwI
E2aXpZVrpsQnInUQWwkdrTiL5YhMBBMRAgAMBQJFnwiSBYMSzAIRAAoJEDjCFhY5
bKCk0hAAn134bIx3wSbq58E6P6U5RT7Z2Zx4AJ9VxnVkoGHkVIgSdsxHUgRjo27N
F7kBDQRFnwezEAQA/HnJ5yiozwgtf6jt+kii8iua+WnjqBKomPHOQ8moxbWdv5Ks
4e1DPhzRqxhshjmub4SuJ93sgMSAF2ayC9t51mSJV33KfzPF2gIahcMqfABe/2hJ
aMzcQZHrGJCEX6ek8l8SFKou7vICzyajRSIK8gxWKBuQknP/9LKsoczV+xsAAwUD
/idXPkk4vRRHsCwc6I23fdI0ur52bzEqHiAIswNfO521YgLk2W1xyCLc2aYjc8Ni
nrMX1tCnEx0/gK7ICyJoWH1Vc7//79sWFtX2EaTO+Q07xjFX4E66WxJlCo9lOjos
Vk5qc7R+xzLDoLGFtbzaTRQFzf6yr7QTu+BebWLoPwNTiE8EGBECAA8FAkWfB7MC
GwwFCRLMAwAACgkQqKRH3OhWKJfvvACfbsF1WK193zM7vSc4uq51XsceLwgAoI0/
9GxdNhGQEAweSlQfhPa3yYXH
=o/Mx
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW
NyPBZRpM2R+Rg5eVqlborp7TmktBP/sSsxc8eJ+3P2aQWSWc5ol74Y0OznJUCrBr
bIdypJllsD9Fe+h7gLBXTh3vdBEWr2lR+xA+Oou8UlO2gFbVFQqMafUgU1s0vqaE
/hHH0TzwD0/tJ6eqIbHwVR/Bu6kHFK4PwePovhfvyYD9Y+C0vOYd5Ict2vbLHz1f
QBDZObv4M6KN3j7nzme47hKtdMd+LwFqxM5cXfM6b5doDulWPmuGV78VoX6OR7el
x1tlfpuiFeuXYnImm5nTawArcQ1UkXUSYcTUKShJebRDLR3BycxR39Q9jtbOQ29R
FumHginovEhdUcinRr22eRXgcmzpR00zFIWoFCwHh/OCtG14nFhefuZ8Z80qbVhW
2J9+/O4tksv9HtQBmQNOK5S8C4HNF2M8AfOWNTr8esFSDc0YA5/cxzdfOOtWam/w
lBpNcUUSSgddRsBwijPuWhVA3NmA/uQlJtAo4Ji5vo8cj5MTPG3+U+rfNqRxu1Yc
ioXRo4LzggPscaTZX6V24n0fzw0J2k7TT4sX007k+7YXwEMqmHpcMYbDNzdCzUer
Zilh5hihJwvGfdi234W3GofttoO+jaAZjic7a3p6cO1ICMgfVqrbZCUQVQARAQAB
tEZDZW50T1MtNiBLZXkgKENlbnRPUyA2IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
Y2VudG9zLTYta2V5QGNlbnRvcy5vcmc+iQI8BBMBAgAmBQJOD9OjAhsDBQkSzAMA
BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCUb8osEFud6ajRAAnb6d+w6Y/v/d
MSy7UEy4rNquArix8xhqBwwjoGXpa37OqTvvcJrftZ1XgtzmTbkqXc+9EFch0C+w
ST10f+H0SPTUGuPwqLkg27snUkDAv1B8laub+l2L9erzCaRriH8MnFyxt5v1rqWA
mVlRymzgXK+EQDr+XOgMm1CvxVY3OwdjdoHNox4TdVQWlZl83xdLXBxkd5IRciNm
sg5fJAzAMeg8YsoDee3m4khg9gEm+/Rj5io8Gfk0nhQpgGGeS1HEXl5jzTb44zQW
qudkfcLEdUMOECbu7IC5Z1wrcj559qcp9C94IwQQO+LxLwg4kHffvZjCaOXDRiya
h8KGsEDuiqwjU9HgGq9fa0Ceo3OyUazUi+WnOxBLVIQ8cUZJJ2Ia5PDnEsz59kCp
JmBZaYPxUEteMtG3yDTa8c8jUnJtMPpkwpSkeMBeNr/rEH4YcBoxuFjppHzQpJ7G
hZRbOfY8w97TgJbfDElwTX0/xX9ypsmBezgGoOvOkzP9iCy9YUBc9q/SNnflRWPO
sMVrjec0vc6ffthu2xBdigBXhL7x2bphWzTXf2T067k+JOdoh5EGney6LhQzcp8m
YCTENStCR+L/5XwrvNgRBnoXe4e0ZHet1CcCuBCBvSmsPHp5ml21ahsephnHx+rl
JNGtzulnNP07RyfzQcpCNFH7W4lXzqM=
=jrWY
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBE4P1EIBEACfrYbqfmCxVzfO3P9NGC2Ul9EyzDNW9WK0yYt1kT45cjybC+vL
8gPl5BlVC9Z5WoSU9YhCwk/RdQ0aQJQRziEyQqwftSgKESrApAqEyHIkcsPNCkjq
55q9MkhJApMn14dwvCJCgubDSj2Ft8b172IlIX3k196uCZl9j5EVUHuyxls4AOUZ
7wuvEXLu01KOi5lqnsGwyRTv+AV74LupL03iZUPQuGUWPuP25J35sC4p33We5Ogx
VrjOv6/e5Z0p9zb2AgBh1hFRwPPgE3wrYJIF5tmJgDDdKIPcNFE1l2QiOlPg/QA4
t0f6gUk0ptgrWlNmAhj8y8ccomf/JgmjfQbjFXWkqIePVzQy9adM6SbmKFm/czJ1
X1Jsy7lCzpxYqz8RYds8EzD455auJ0TeiO4P0PFd+RXncH10mGIESP/DTicWvVdK
0doBLpYcpwyNL4dyQxq28xtneFgYV+Zkazk0HzF3+x+vnD+LZ1Zc9/MXub/Yt5nv
1eaQrSfSkCDvq5rXzzprqVe6Ytl+FK5lwbJGhOUWfsWk0PqChkEhw2n7zgHpQ5Qd
U5oMFFKy3B1ZYQRn581/wB+eL/fgku7icIo/IOU7zeKDmIK7xHuHiAmVtm7L35VL
qAbgSY5B5EBqP6RtBT7AIKzM/+H5uMvnS4xI5PVkJVijL6Fpw8aHEeCDVQARAQAB
tFdDZW50T1MtNiBEZWJ1Z2luZm8gS2V5IChDZW50T1MtNiBEZWJ1Z2luZm8gU2ln
bmluZyBLZXkpIDxjZW50b3MtNi1kZWJ1Zy1rZXlAY2VudG9zLm9yZz6JAjwEEwEC
ACYFAk4P1EICGwMFCRLMAwAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7dc95
0P89FkPID/4w8+3Yg7lZfTkPynWcSX4KOH6NRCSbuUf+5MFmZT4FXVOr7LHOWCRS
QkF3f+tpPIpGLcEFD9r0/9npozsviG/13ZhT31x3mmASvVVGVp9cHN5Ie7Zim2BN
+ALbGQ0YbaO7f7XgBMTKTlw71HQ5V4yCqrUVBL1FicGBsBJ5nfJt/K0WjKA1GGYA
DyW1YP/Oid5lPNqPLyR3Jw2oMHtUtbwZbtgBSq8Ll5gZaYTpap+M4SdQmBXyOMxA
NPXSwJgNuWufKnwp+7qMR/sFRIW9qmRvR30NtonmzOwf+kOtY03USiSK4pneEHTQ
YKAGCEdOgsPOnEwv0jvW3KABIw+rwRzkpfW0IFh0VoyOrQ67Ek0Q3oldQ9Lrjwqu
qsL12YhBgfnMkSM/w7R0HsezOSmPb0wHxjIb6CDv+4r9LIHx5F4YXFytv7pYIUqP
6ATg9jJ/ecMcXVonnwwUG2FtQNhYa4URak1u3u0xJTKsrsvMnYksjCpgosmd4XB4
7651UvR7pgsSscJSuLlh9S4BR3/crsYZMq1O5L9HOywU4l2SN04p+DfH2Vf90VfB
9An1uA2hBa5lB1IuN0QiIH9OMaDqXPk0rVHS0GJ28Jx4rztofDBWHuShgO5YzNUw
A8CKB3t/kH6zutLdF6tS0Mh1wLWuPWfSH4DPd+mSucY/zbbrrAgxFA==
=9b/M
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,20 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
mQENBFirSnoBCADLACfDHfVhgxMImHt7Y6VpUAvg/QXygfvkhmzbcvVTzj0EvP98
V9H+O0+lWupQCoa9J5p/7i5bF74aWqY6KZU9tQnU8Mc+nbyvy63TC4Jb47c9AwPo
Nba3CCmnQs+pfNTbvpwR72akgyx1jCWQApYoo5O0MKQy23Zhm8jz8DoPyOjRSrlV
idRUGLoydLU7u4sC+LiNfl5LoAZ1KygeOK1zHh3ADQTuMdLFMizb19fIhENyN2xm
sfqTW1UZi4R/1s2e/smZtf3P1N9lAwRvWYxy0IeXJXyZpT18nuyXqp1N1Xivcs2r
PW0tpY5Fn2/hauKeJP5DbqEo7o7XAAyy+NUbABEBAAG0YUNlbnRPUyBPcHNUb29s
cyBTSUcgKGh0dHBzOi8vd2lraS5jZW50b3Mub3JnL1NwZWNpYWxJbnRlcmVzdEdy
b3VwL09wc1Rvb2xzKSA8c2VjdXJpdHlAY2VudG9zLm9yZz6JATkEEwECACMFAlir
SnoCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBP2VMnUbwqE6GSB/9r
ViXDUqDAA6xy5TxGZv+JGxFNxRN+srhBLsUeK/DL//kFuONpN+t662V6J1/odP3x
Ho7gE08RJvo8V+QNjfswzseqeVl0texuX9/QNjAbatDFW5GW4w4wFDB9yM1C9GtQ
HZqmNmuP9ZM9smH6uFCVFDhPCAT5uoW+iedJWSjrwHAwfu3nuWMNHX0H1IYAf4Kp
lstDehI0ydMhCEkajBe67M9sdMTfLL0vfnvFzjk4eDdBKrC/aaUYHfLwlBn5zC9W
WaM0qP0zkSYT4C301LsRtYkUDCv4JgojgPZX0lea0fXaEzE5qps+gNFsklNVKhFo
vb7nW8WM0/YHt3XqFILq
=R48J
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,20 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
mQENBFYM/AoBCADR9Q5cb+H5ndx+QkzNBQ88wcD+g112yvnHNlSiBMOnNEGHuKPJ
tujZ+eWXP3K6ucJckT91WxfQ2fxPr9jQ0xpZytcHcZdTfn3vKL9+OwR0npp+qmcz
rK8/EzVz/SWSgBQ5xT/HUvaeoVAbzBHSng0r2njnBAqABKAoTxgyRGKSCWduKD32
7PF2ZpqeDFFhd99Ykt6ar8SlV8ToqH6F7An0ILeejINVbHUxd6+wsbpcOwQ4mGAa
/CPXeqqLGj62ASBv36xQr34hlN/9zQMViaKkacl8zkuvwhuHf4b4VlGVCe6VILpQ
8ytKMV/lcg7YpMfRq4KVWBjCwkvk6zg6KxaHABEBAAG0aENlbnRPUyBTb2Z0d2Fy
ZUNvbGxlY3Rpb25zIFNJRyAoaHR0cHM6Ly93aWtpLmNlbnRvcy5vcmcvU3BlY2lh
bEludGVyZXN0R3JvdXAvU0NMbykgPHNlY3VyaXR5QGNlbnRvcy5vcmc+iQE5BBMB
AgAjBQJWDPwKAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQTrhOcfLu
nVXNewgAg7RVclomjTY4w80XiztUuUaFlCHyR76KazdaGfx/8XckWH2GdQtwii+3
Tg7+PT2H0Xyuj1aod+jVTPXTPVUr+rEHAjuNDY+xyAJrNljoOHiz111zs9pk7PLX
CPwKWQLnmrcKIi8v/51L79FFsUMvhClTBdLUQ51lkCwbcXQi+bOhPvZTVbRhjoB/
a9z0d8t65X16zEzE7fBhnVoj4xye/MPMbTH41Mv+FWVciBTuAepOLmgJ9oxODliv
rgZa28IEWkvHQ8m9GLJ0y9mI6olh0cGFybnd5y4Ss1cMttlRGR4qthLhN2gHZpO9
2y4WgkeVXCj1BK1fzVrDMLPbuNNCZQ==
=UtPD
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBE4P134BEAC+ho3SNeLTnB4VaQHl1MFnsRHPEseN82AGiusUYlu+MR8pZ90P
F9Kv97idgKcEhdG7kGrCqGS5DOvLbv5UOyOEeNf9Zd9bvE2MEQ6XWa6IcffeunAp
RfFo71CAuTfvix7ewCkFf/SvRx28mHVOeCtpjVU6BQ9XXMnXPFiD1YALJEif8YF1
qq3tJbtpzcM+W0b5VyCUqWf44bb4M8WtLmHcTjHmQgoulPWxGqS2rmZ3qM2kqh+Q
QUqsPH8isfp/6WN0A7LtsZ326PV2FuEe/qVaT4+wNgqpI6hYiaYj6BQTuc7dV8gS
xhnVXH5MIDYw9LBIAhiATAr93CQTxcG1Gdk0wdGZaZGtDig+mXD9RsDBF+R1N18t
D98xQ5wpU4buIAcqBj2nC/c1trfO5KoWGepyuABYT0+Dz2DLhr6AwEuWymDhD4zl
PMxU4YsCWh3rhx8kU85ByRQQk/dNmFQ7VdJeKb4ct0nxW+Yi8pMmB3mLXlzo+LqT
CIa71e+lQjQKtJoFUMdIHEk9acMirXdbG0keXUfG/DnNA+dj+egAKlbu0id8Au97
EuZaWyXVSZ8LXapG+wkaMvE+CGY4idvDd3xPDfXhEwRkSQVFe1DPVCL9QV1tUnJK
Zy4kV6u85Pu+4XHlPT26nuKBvfpXwEaDBYoowClj/xz7y2nRlav0CXLG4wARAQAB
tFlDZW50T1MtNiBTZWN1cml0eSBLZXkgKENlbnRPUy02IE9mZmljaWFsIFNlY3Vy
aXR5IEtleSkgPGNlbnRvcy02LXNlY3VyaXR5LWtleUBjZW50b3Mub3JnPokCPAQT
AQIAJgUCTg/XfgIbAwUJEswDAAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEAsT
LD/+g39vajgP/1S17nqnos8aoc17pXMr0u5DKlT4oV/aQp+V8stjmz+geyH91Lax
jNNE9GQdcqXQH8Hyp3xtdLape0kLgPH5mwDk8yL39uzgzoqZpq2iAeHQfkQ8fqt6
6WwADRF9t7rDYNJwmPdVka9kL5oGs1Q7xS56x6zgG1CVPzQOCVIbgXDdD7I8nuHr
9en/5f3FmGJ3yGps6wUWETU9BrApat2Z7kY2ZM2ZiW5M/qY1pA/nxS3oTc90o//l
NQbZC5i1kPz6hCxlc1+41pXwL/IB7yYqbnVsc2ZVEncMegbCwQ7yaBrzrNSM+YuC
+z6wFnokthqK/JzYc1/rEfN3IzsadBW6S5mcFvYHNwyo7eeGtIwgQXOheBvyB/0E
23BdT/XjdWxHGP2eOh6v32WzBiA97dU195SFB8j36qx0mKWJujbxKxo4lWlRxvLk
27XEEW9rox5Tiv7XgNUp47wQHe11ADQ/+iyAVPV7ixCT/JV4r+VPA1o9VMggVnTe
ZjeK2coO1sawX7Gx87HwB36JmmEQ6RKJWHyeUodoUKjDcOZqyC9tanGD1lyZ4Oi1
4CzQlt+gYkRCdYAt2L7KoyjTMp7lde7wF8TuGAM1I9WZs6RACxkAguSbh6L5CtrO
t7DA2xeQfBNNggS4vN018S4qXioeEKMBKrXQTDfsG+tF8DQSyIDQ/pmg
=yuja
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBE4P1/ABEADIZqNdxFdVbHZQo3xGV8Bvdyj3gjaIxru/22a47Ok1HVxYoOny
ad0xib9TgbyKIARnX3nWRZO1migZTs4ptJVeV/KqR6EUh4YS1MyOHYCQ8rYfedZc
Hnh+cOop5M/TMxIG/EThE9kk/DetMOLbzt3RczVqP2xTshWoRq9rMfmMEp3BnlVK
srEnAUgyhPsknvCFVSLJ0g/ZNMDIczRYvAJWeYRD2sc26scSS4tl2YpD7/VkZqXY
8VXx2AunSGe28sVCnDNJSlQSuYMKdRR7Wc8yqZqFkZZEdTB6KIUMwElHevgwNGZj
49cu6suqeuzNXzZAFP/a9K/Rm4jayziumePEhKc0g8zMHkJsDyo4v/pDvLuSMuc7
f+jYS619zdC80bEQ9PdOZTIx23/OHeMmG/h9Gjuqz3SxTM8whAQr0uAsZuLLECEj
MToZ4q3guXSddbzI6j708HFvYhD0YpqWJMQ0S6YS5DXN5GQv8c9YtF5ZOA65oBAp
XAxXQZz1kGxx/8jVC8/2uyaY6r/QAnkfB8sihR4V7jLOJbk640ClX8stsJqMEYBa
7ymWDgK5/x8GsJ+phkQQIRIx7Bbh+ob3lUXimzmRE3rXLBcNUip8+YYPN9qVuyGK
XZXupHQvUiMDXsOWHDIZiHYWPJYdWXety0fHHEdj5Bnd2yw9U11R01eeMQARAQAB
tFtDZW50T1MtNiBUZXN0aW5nIEtleSAoQ2VudE9TLTYgVGVzdCBhbmQgQmV0YSBT
aWduaW5nIEtleSkgPGNlbnRvcy02LXRlc3Rpbmcta2V5QGNlbnRvcy5vcmc+iQI8
BBMBAgAmBQJOD9fwAhsDBQkSzAMABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ
EZwah+8dbbjVlhAAwoDiowLWFdnEUT6fEhF/I/oOqVxZerD2cHwIfXaHpFvUj3rS
51RKOV2XX7Me2R/gFbKJdXyRpPLU+u4825j7Q/yZGZ6r5AAiSuzmnHb4lyMffm+t
QIY9Qzq7OPU2MOoI3CgEsTdm1kO06glyNBT8s+d4DhFPNgUU9MuY6k+PS9dLnmH8
Usr0X3FOzIXv//csIokgrN9HDdpVWWMdyKsEEaskG9psCNEf699Z3MVjz0DQ/KKj
jI9oaRfET2+O9v5maovqPqa9vnY2K6EoX0Kznw5BvpZqmuSxnvDkluqVBphgL6FR
QHRomCln9y/3f+4UoF3/c/QglEXSOH/GhjaasxU1GicPlnmV6Uyd/WadJnjp0tbO
NWtR3iNOc5FCrHiTOjx1ld56xsTw+LUOQZby3rfjAyhT4qz7LrTD48nBICHHA5Gd
Ulslb2alhPygn50cfMIiwg+RG271CkPcYcbcyuLjKinyes9jqDMsZ2aC85oWSmcg
SciA5HOrcHJAl8vNBYT2wZVlwvxbwQU+3C1aYAaQRM6OWHvUZE8A8+R5HKOvRGeC
wASURwPP0NblcQTM5C39Bsc70Ekifkt3TUothca9yrOvURN0y3mlGI5T2NTDYfXd
AIDcXXE93jZYMaasAyypuJw/mbk5By5ZndPh+Dwbmgu/c30+Mv1ZYPBsEYs=
=NsO7
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: keyserver.ntzwrk.org
mQENBFVWcCcBCACfm3eQ0526/I0/p7HpR0NjK7K307XHhnbcbZv1sDUjQABDaqh0N4gnZcov
f+3fj6pcdOmeOpGI0cKE7Fh68RbEIqyjB7l7+j1grjewR0oCFFZ38KGmj+DWQrj1IJW7JU5f
H/G0Cu66ix+dJPcuTB3PJTqXN3ce+4TuG09D+epgwfbHlqaTpH2qHCu2uiGj/AaRSM/ZZzcI
nMaeleHSB+NChvaQ0W/m+kK5d/20d7sfkaTfI/pYSrodCfVTYxfKAd0TLW03kimHs5/Rdz+i
ZWecVKv6aFxzaywbrOjmOsy2q0kEWIwXMTZrq6cBRRuWyiXsI2zT2YHQ4UK44IxINiaJABEB
AAG0WkNlbnRPUyBDbG91ZCBTSUcgKGh0dHA6Ly93aWtpLmNlbnRvcy5vcmcvU3BlY2lhbElu
dGVyZXN0R3JvdXAvQ2xvdWQpIDxzZWN1cml0eUBjZW50b3Mub3JnPokBOQQTAQIAIwUCVVZw
JwIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEPm5/ud2RCnmATUH/3HDtWxpFkmy
FiA3VGkMt5dp3bgCRSd84X6Orfx1LARowpI4LomCGglGBGXVJePBacwcclorbLazuWrW/wU0
efz0aDB5c4NPg/yXfNvujvlda8ADJwZXVBQphzvaIKwl4PqBsEnxC10I93T/0iyphAhfMRJ5
R8AbEHMj7uF+TWTX/JoyQagllMqWTwoP4DFRutPdOmmjwvSVkWItH7hq6z9+M4dhlqeoOvPb
L5oCxX7TVmLck02Q5gI4syULOa7sqntzUQKFkhWp9U0+5KrBQBKezrurrrkq/WZR3WNE1KQf
NQ77f7S2JcXJdOaKgJ7xe7Y2flPq98AqwKXK7l1c3dc=
=W6yF
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,31 @@
pub 4096R/0608B895 2010-04-23 EPEL (6) <epel@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1
JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B
M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn
XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6
pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV
QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp
Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq
3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu
vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar
1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g
YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB
tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS
KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9
qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT
9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP
Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS
WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft
HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF
p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP
x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8
wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J
l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG
iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR
XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ==
=V/6I
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,31 @@
pub 4096R/352C64E5 2013-12-16 Fedora EPEL (7) <epel@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.11.1 (NSS-3)
mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB
OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm
jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP
vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM
jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5
S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ
n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB
9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95
T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj
GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf
uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB
tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB
AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk
5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q
ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu
MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re
9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax
CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv
HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB
VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q
thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc
ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4
vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt
RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw==
=hdPa
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
pub 4096R/F5282EE4 2017-02-21 Fedora 27 (27) <fedora-27@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFiskqMBEADTbsoAXpDPk+FtcwBEPZQVe0YQYdOqavfQQVD/RYAcHnJW/K1b
ZhQusBjUIec9SfGi3uBNNmbziAvpd/ycMKyWHuWQLmBgbImrqnPbBPMXmxeNGnZj
A1hjVDp0pzj2+gZQhqYWSf6kQy9u9A1mSU63Kl/tfw7+hX7Tc3I8feGAFCHcFQgE
SxUib8Mw/OOGR3Am9fKdA+K1kJeQIiZvXMcNFx+3CfoavhFdicuoT2KbcSuzRm76
duKNHlLaP6/IbZxNiDWh8SDVpFaFPlqR/R/+wibA6e9wMf6CZ4vfUY7NKYf4tYBs
0EYdkn3j/KhJJxdb+M46Q/xwq9ovZo7XIhLrIUPuMw91X9cbvkU/a9kE1ffdpNmF
1fDnUcEkuuEqOl+aMVsUBEbAQ86yrwpDfL4XT9vwnDIkggKZyvDTZ6q00XKg3Ger
KuZtQBl/YcHDXuBlB1fzpGl8a8hq/+GeT2sVxjlYwPXjrsKd1NeP6ctQsR6gHuP3
W5ohP4rArtM6ONN8rlTiodDLVGHBpUzIRdgr7RCL1AqB9vrdQ2MVZMasTcUnUvKo
0H4mps+x05jGao0b0Z0TJc6wr6ybHH38NVG06VX5rJZlfZchGwkWzmYxai55/7ln
1vJmk+kbdS7pK0jfmeVJ8A77XLCL36oJFCiCrYjV+ZGgvB+z08Jzwc7sgwARAQAB
tCxGZWRvcmEgMjcgKDI3KSA8ZmVkb3JhLTI3QGZlZG9yYXByb2plY3Qub3JnPokC
OAQTAQIAIgUCWKySowIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ9V50
MPUoLuTcww/+LFPVEyVguMeU/QABEsE5FEN7kcDReZtdwq7p/aKC29mzCxeHggit
YOGlrINkJ26Aq6p+oW6w7JxBWJnKoTBYJDFzNIbp/6GbG4oKcEnWQZfTnRLTr5au
kVdWBFevzC0huraobKz3joYRIX826VUzS/A418zpnDVPtpo3x86V9f292rqi2tn9
Q5cQC5Ck3/cjQDEwkN9gHz4j/c1oa6zBOcHbKkaZdWA2dIs6XOxCIHg78i6VQwMM
s+vfm2vbV3ACCcOVnd3d6NxIQuDLEQwdtdB2zI8R74bjacosrcafK+F2DnkM7WrL
SCiTKLJBMRDx+X2nOjT5pLuts4FC/XYRO23SMtPAMzQ852Z1lkjsaVDsjzNqCasU
B0vDPHLQE8aj0zchNBSzuHoKpXNYTyJztekWL/QXkUsXu0x7N5WhBlZ+lni6LtZU
51l7BJd1n+ZKnQ4gmjQ1ffVLbgzb9Z1MNje0s61FdKmUJQGULYqh32W4GV+RLvtI
6AJV/EmFCUEfRJ3eA8tJiyKe512wiim/WDhvzFuuPBup2Z3TufiaJQOysLlN5+HU
QitTtcd7j8ZgpsIAIZtSWOMxbIAJWbzn8gjfIj4ZDeo0ZZXH0VgDkXtpv1g8R2aR
Az6ob5YYW5VnI2UEr53x1Z7lmUhv/TUZn26IeU16jCJ80k7pJvQSF8Y=
=xpp1
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,32 @@
pub 4096R/64DAB85D 2016-09-09 Fedora 26 Primary (26) <fedora-26-primary@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFfTPiIBEACnRl8tUymlDOBNJWjtICofXNyM4qt2qfGTme3YZ0ZVOay55pK6
1OLiyNLXyJfDH9d2U6dZn5UYLNdE3QXRVua5GXlSituY0+pzs7n9doW/U8kdhm9a
zOfyR1Wh/u/FHUmiXUvuwLVzqee7lSU3Ry1voDzPIyM/3/eXDa4wAkbYuestYV2F
G2VqcMgDIEudYlkz6N1OigMWvkvYXFHVC1A55ydHenWffQzQaPpGuJLA61ARZ5Cu
X46xgOCPc+aSvAm/D0cmOS7xhZcUqs1A5uGtViZqsRt59Bp0HVNxftfBCO/rQx+9
FrV1vYXkbTdzG3unlVCJxxC2dW2W6hb3SNgPbE5fgiG9twvVU+3GsFUwARclRWiZ
HjbWdjlRTkRySzkkdnXalJo3G4UAEDfkvujM2dB4Dt6gVkCPvSKVpK6HTtBdHmDO
scYfazX/j86somO9npHSrb11tYaLbx2PYfEvw6F7rsxr78/GBjzPnKkK3suXxDlS
8q7tT1FYV89EzjME5+ThJOyPxyXHKQQwozIXcB/BUfyWGlfFFh8baD+DA8lNgQvl
/TVFvW6bUV6ll5JoVJJhC87EACL7mlo6AQtwCivUEPxusVXM6u53UKbsc4gVdkZd
WpUyT2YsgKK05/eVDIkMLHXb3efVbJ6NCj88Fq6hYB7+Y5MRbRFJpvS4DQARAQAB
tDxGZWRvcmEgMjYgUHJpbWFyeSAoMjYpIDxmZWRvcmEtMjYtcHJpbWFyeUBmZWRv
cmFwcm9qZWN0Lm9yZz6JAjgEEwECACIFAlfTPiICGw8GCwkIBwMCBhUIAgkKCwQW
AgMBAh4BAheAAAoJEIEqa0tk2rhdFk8P/1WZFEEBfUr9ywRxeVAwiKx9Ggzf8m61
p98spnUGj8N53bKwguKnMqAUtm9/XQPRGYRfqKKuKF/4AySCOmqFP86zHThnbFcb
fMyiJOxBN5N/5dhUxTkZG1M51vFPQx53dnea3w7ypJekTwfEna46PKUD7dTV3HJg
d2YOojD9mxup0iAmi7/3mi0cHwTCZS9FF/A4eBWjuEd4OM3KzPF7HBdY37a1IBLR
k7wruMEGSq6EXcoeqG2sMmU7RnEeQxy3WqMYdRdzUjbfBN7mCAcuv2yKB1FFW4/v
PhP7ObpCCLiaL46APdGFHZ30EC4oaeqSygJ8+zAIFK40t/a0iNNf8ZKKeeuasinr
qNJAep/WoVjIpx/LlF9vw522fhYXJ75LYLBCQNke/4rQ1Rl29io2Dg29aPrEwFPj
+7zDztdvaGmu5wLPvsC+w5pyqOT2LPC19y3D7T+KfXp0gEwyZedviDwZdIXz1PX1
IMytlwRXlrhkp/2WzJvAkJCmRSb8QsxY9Y2A4rfqrNCk6kgjc+3pXNdxumaXEp33
pjm+z61Qrg2XXFHUhQyRiBnEtyo2Hj3tJQdrPxwGIgtKFZCv+oAwewnMw9TFycI6
rYEfS4wdAIOGoSF/PL9Eq2xoUJQw8QFCrURm7sfS0/VmvXoSjqzZLeWI4e+JvId0
QFFBR5ZKOqzo
=DGPs
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,55 @@
pub 4096R/3B921D09 2016-08-08 Fedora 26 Secondary (26) <fedora-26-secondary@fedoraproject.org>
sub 2048g/5F6EB130 2016-08-08
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFeocJYBEAD0YKTqzt0QVgmHkRO0G8HpwdsNEzPANkDWe4KC1YnKTDjl4ojv
BfGc4bzLb+jXM4364DWGxArW6QJFW0DWI9DsK8+5TO+Zi9xtLi5BXKImw2cYh7HK
bCdNtBxT3xI1UVUuAkL8qbschWTUKgLYC1ywwjiFmjY7fEUpr3jzQrhYxazqN0Nv
R/lq9k3VAetXTRfOEOhUrIhrTRQnsK58rspF4nWqZTj6D8jkSGcQqs9D3/btbsx6
9QkFKIIfxvfZxIHccaYfJhjgNU75b4Zl6NQvRm0jB8jpFqMTvG7zvwubRiCku0YS
T+jy5RiZyaL5Yue0RP8dW0xfsVdRE7zsNaTRuvwVOBfXIFuGj81q0JrO7G5HW2Km
o2byOeqidPyrlFtJv1PfByUFKIZ530HM4mnVH8193ZbravjJCpj1Ye07cq0yy0Nt
2rvEpi63EYCBOaOQ9SJaYf77SZlZj/r7W2Hnnn40RqfzRUS3EAIucx1KtqNly5B4
zm56J8I9rPmqf/zfj+0/kGj8YRm8MP2+F7Se836PGF5d3zjazamcf0ORQmG67dwq
ddB+a5JhAxWl8OlFNsNBdRnu4qY3i6jK8jhI4U6NwQYEcWmnEeK5rbU20lEKPKla
+1bK5OlU02JINuS0iXyCMEYyLdheCRQVGXGADVgXy790nTb/IpGVmDj7lQARAQAB
tEBGZWRvcmEgMjYgU2Vjb25kYXJ5ICgyNikgPGZlZG9yYS0yNi1zZWNvbmRhcnlA
ZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMBAgAiBQJXqHCWAhsPBgsJCAcDAgYVCAIJ
CgsEFgIDAQIeAQIXgAAKCRBFYP1NO5IdCWGXD/wOG5fluN233GHQsZ1WQneDaq/z
i/GyyNelbR5TVJhmZ/ifi51EGx4/w6ZdWokmVQ6UejatdeQCQhlFlF1g9Ax/oYoE
bdJVmFRP7HzXqWcENXnCSXcpha3C1N8g12a1B3qew0gbuRbhwnnzcDUQSSrcefS1
XpnhRmDUt7WanbWOWQ6kktYdAkfVd2/k/Y5nHUZp25mnjsNPbsffev6xTdUB4dVk
irBR4quMYwDXzzKKLz5E7pZB94C8WUCAYPOKM5pCuJR3L4pAjHGjUyrSSxAaCepf
iwJcCOQHMJY7CpuRqmhc1o3BaV8nO1HWMzbI78RChYshKCDY38Czh6SoeMJzaKUD
Asvz7tNhOl816s0dbtVw43Ngou7G7tOxmnI47AMNHBuBbA/qKRg6et96lWcjmJiS
1xks4FZFSEoA9BzH2G9o5LgYKKTRZIRPVZ61nsKa+as4E5oyDbXnUmnbanrfUvAL
L+vOYTEeFCB7qif2Ek58ujIQBLczmU+2S74pdQlu7kSYnrqNkkRxFOgFWt5udiOw
5R2vnUO2VAISDlUnkgyHp2SUnHAE2Q4StccvR9JeZUH9IuVioN/nAwzYTTKyOiZX
zipkxwznSjukiS4WPqdnLrTCNQ7WPpyygQDS/Z1DLt/+Rdxz4wkX76JjNVL+8hBF
07H2vzBvtkCoZXEQ17kCDQRXqHCWEAgA6UwG6HiPE0EY3UpaAJDQSibtS5zaId0H
8SXhdAk3ZVtzbskmI8FVuAyi6+Phl9Ps2RjVR88p9Uk6dV2QnRp8DpXQFeGfjMkf
okl5TmnGu5txXWMGdGeiAs/VlMzRuUZI05fJR6eeA8gn4wpBPmuXBgFre/3tuMxu
ahBLIhrLuThMMKZrfV42zaYN9waddnN+upM96aKQziNbmU7CSVGXK1wKtvbSF51B
XeO7w7KdTspKedjVLMhWrlUEAKmdeZDj+9slw4QXpqWMP8vmmIxbrYXm94r6IgYF
KYk1eZ2t8JbNdjFfRKGLKsPI2W9uH8+fI9/Xqw+mSwFMGqruBpmxZwADBQf/R2o8
TOghFlNt90wrfP0XaumUP+aZLvb6ndjESTS7PaX1R1wsHtPaVDWnaTgfA66rrCp/
66vmKf6uHlPeUx0RREaIJ56uKP3n0x8HDn1ZBba83NoriWdVqar6f3+UBoZ0u1GB
K/F8vG70Xj3x0dJ2psFP62yrDg5z+/TCM+o7EnUl5KYOpa3R25W6UEHoEexUIqxZ
p9+4FGH7+aO2LKbslEL3AVgraUBiFknJl7ikH3ZxljiFVigjBq/JN2F5CrmeAhdA
ZedF3lE/epQ+LSQ+TTN7ukGt2l37aJDTRGNHqe6KCy9KqIBr8XAaz9mJ34QF4hB/
tDUSGQP5eg93ecG5PokCHwQYAQIACQUCV6hwlgIbDAAKCRBFYP1NO5IdCQHSEAC4
g0BMaQu5qzLHeh/bFXtxT4vFucXLAenyLH+oIEo43crSUpjQiXzBitUc9sWMX7/m
jj8EWOGbIQNYZO712Ei7fPO7u/auZ7qIlVUKlEHZ+du1ORC5+khKrimgjP/ZIhTY
KHiIJD3BLs2rEGXdx3TQCYRIgRm066KKZ2gQy3YHngqipmOzvz9j4ctpmD6NabgX
3eWjUCzxofd3m67c6sQVKxUNQzujCgtaLIClYQEMO0E7Xq9auq9LOvD+40dLE63j
fYKSIvsQ+3qUmT0CEfk5K3GDYC30xQU4cvqCybOreSTQR0L/f/wUbTYt7Iyj/8eZ
wfi9wh2zVY2MOoe2zT6XIW2oKJFD9ka7IZsezMR4PBhEGCg69uWbPXbwIP3har1p
zIrwR1Uto9qCosupnkz3+ILQOiGxY5vtKXUr/0ulQ3gjZiLNL12m5MvnAUg4aoms
0W76wYUQG/NnccBzKE9hUAlgSak8n0gZPSRbG0wjOIcbE/arSpQ2k8WkwxkcUuHf
OnBq/2ME1njWkNp+h+F/ifZcwcBiRNZ+S8Y/kV2kh36pjkic4mCc4JjoNLxMic3J
pbf15Q8X0mgDbp1RVPtm4QTagq3kXRGjFpVaUfJF6ZdzPBm5qJ6F7ZX9p/av2zCp
Aw7ZjY7u8pfCZttaiaHYd6KYgPX5LEQK5QSTxy/JNA==
=P9ev
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
pub 4096R/9DB62FB1 2017-08-14 Fedora 28 (28) <fedora-28@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFmSAVYBEADakUeJgNnAP2CE3vw+iI0Um9XvuBP6NdESRiJIEPgXhKWM058J
PZDkpRETS4pbB3xUyPLoogoO76lheBEOPEAGp5mb/7vEcwlYqjtuetFi9hcsbNPx
DeOLQ9KR7Xs2idU+DlCJW1WyU9UiLoyZpQgAqF7Y50MoxPKJtfDuM52YkulYLU+M
leRtxJzHYcXArU3x3Czz1FnemVtol3/1/BvmGQPIyj2HdG4vxWbiX79AUSlchh+M
bNqOOpVVK16lLEbJCxCbPdCsKCTOI+FsdQsB4bnX5ddNcvxxACwHNUifVD/1XH8A
x77DHohRbccRtIZqZEIKecHxVyFdr2mAl9mEXSzaFvRzWa+5seCgGoV0INBhj6NE
tHhSxBYzLmr5noQ8JNPa6eRipPvYTle2vstq2YUJ8D0ZbKbxaCPstemCQZrQKzh0
tgezIgVXKc2U0i3ZOEYf4ISMHeBnH36nRMBnaH/HkLyZyHXNE4vswJpwPjNtaofz
QDD+TmCe2ObKei8iUqfLo/8Je8IvnodS9C5l0fyEaMmo5BWc+SYRSTR9libNruwu
4j6Kuoxge9SbRuD2S0qzKK2LYRZrlkxjP8REnpvXxUfeSvNYHrbjzYDv677S6pqW
dNqyoPduKiZWy6Vg4g+pYmk5T7vrpNizGK6exKiYZ5tAUaO3lrdpHOolUwARAQAB
tCxGZWRvcmEgMjggKDI4KSA8ZmVkb3JhLTI4QGZlZG9yYXByb2plY3Qub3JnPokC
OAQTAQIAIgUCWZIBVgIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ4I5+
Yp22L7GMDhAAwwQhpXFXxegkgi0pFbA98Om3UBiQtcDemQSls0HEJh+J9sm4g0Sj
2K7khFnJCKsQNVnJDVxvxJ9j/AFZErRMjudUF7ACZfKDtNxq3gkH7qICPKk/DzeX
blrzPc/RX+kkl9I5jFBhapypsExa2yilfk8IiKq6nd2Ro7K+gEh/CMhfe7YBGInZ
3FmZWsq1+WKTZCUNmA8++eWIbmukrAoieTHTvIcOmc+dfaUAmjWtOnc69E9UmTCw
EMEbPVMSmZv0qnp0kByWUeV5cZR7NoXmaMaTr5aUY6wJuLshbWzgmudorf1udUwq
YlpxZJtQCxlHezulrDJG19d4dC5vGdYbnpeq01s9L9yieccKafWfldBU+YBZbo9e
9Uzu/766pxEAtqYYSyZboiqsj5NCoq2fRc4DjfCDVEaK7HSPcQpQFA+p18sD2qcc
EPPo+F2+M8PZLf4khipGRH1nm9AmM/v25a/9w22bDuUUvpcWwW45YsNToTTM4d6T
s750lCw/4K3jHnrQWxL7VfwLw0H1xlxnVqIXlL3HeOIn9EoaygxV2gJtPjB/Gwr2
z/K+HoibAxvo7VcpxD+N38LaPtrx/ERMxeYBJvMgSqGaC3MXj36/qv0zTyyTItYX
9JfbOrikoJa+aKQGmTWLrcuKaYl6Jzsq3vRTbNRRi4SpXwTwMyuW4pU=
=fo1W
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
pub 4096R/429476B4 2018-02-17 Fedora 29 (29) <fedora-29@fedoraproject.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFqIZTcBEACjh0DKywPd0Hx9I4nGYsbUbqIU7TGZgxaT9jnVSRgkcdfRqt2C
P7EdtRbyqkMUKyL23CLwAz+YSmf9Ff9nxBSl8FiKUCNNWUYO3faEAZkZ5reDr6h6
W4a0niBMWfVLqmYjpZmkcBqgLgl+2wVq9/E9Fq9SzDktzczUF7wwAWrsKW5rwEEq
+i8jk6FSUTNMqWZq69y7Dvox8k8QIxtou5dIL3Z8qQdkc/0ynTs4bdac94FsJBM6
0qKSHP23MY7ppwOl7wttAsnaIzBaCD0UIM5qtfFBNFaYfeJ5kH1rf+NzgFjJ8y1D
xiZdEX2t4OyXvhuAQSvYyotDrJzCbusjXQYMYYqnfGcqMmTCkgGxYbdfVGbMs3x1
mMObZWMQbb9HGN0KTBaFdwA7EnMBrCGy3I9WxngGIGATOPWkPPUUxlaI9jwxT3tq
bwYY5Kn2RhD4CZyj4VIaQvGdMaop01O78QVFHhdH24abqNuPrYqEDZ+aSTgnYFKJ
cpGSsRVL+Kw/x1wik8PYzpC9tNzU1LRCi9jsX0pk9gODSgbKLWryZEgZaIdcBcJD
4U3slDjdBeTDY8pJV9z9r7z+gFPAHLqStGKj2icbv80dMGTfgUm3HqWES/XXomX9
ZWA1tV0ZlNOM8/IunmISz9MNpc3LChpcccffjrfvWBfokDKaXO9qCUgctwARAQAB
tCxGZWRvcmEgMjkgKDI5KSA8ZmVkb3JhLTI5QGZlZG9yYXByb2plY3Qub3JnPokC
OAQTAQIAIgUCWohlNwIbDwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQogql
a0KUdrR7axAAluNHQ93T7u/yIQaTCs4uGb/jEg7qbm6hRx5nsqrdm3qKNqnyXK61
nnPNoDJNk1WhZww4RdrvxCDOGyyNhGSejjvXM6RBDEOY/KmD6huPo8xN5i7JVG+E
2mlwTGe7HSg47d0wHydDNTRLQqT0VZnpkxRe3puQ4DNNHJZG1SsRl/Sf2VI1XyB/
hHbFGbLS9KvH32lCIAAtt6dbGTRZC9gsGL6XR/6o7EU5fpj7U5rYiDTFaYqmqG21
LZZV9xtqCoHcKElY7jX7Rfmk8Wn1G2zC2XR0LX7eVH7GBeXw6JbmLZjxSgd235zE
1lNSaSLMHOHMcgSHWoEC9ULzLYJuTagjK3cjk0VkKLocakRcsb9dtFcxgZGdQHfM
X7mD9epuJmqB4a6TOZoL/tiq28ORakUbjYfLz9ngnqd/pJkn9MNWcxy3yBtOdTYq
ce+61/XQk4cR2tH8V2eP7fL8YMboNkPPbcbKlcvKG/TgaS0tVrFMUmA1xmDihzf6
gupAANlcMkYo0hm+z1hLvgqosp14oTocJeXLAFVw5dxnb9bmqjBy+77u/rqrY0Ek
LQd9XnXgowUQl0RSNXgcIIfEkVBipL/2YB+MFBmMQKcTDXX7lc/hl6W4BFmVj2KH
kPdZzUOJQVYfe90Rt3hfXHViUw118hkTaJhrCPVwkFbaUWscEA2OaFI=
=QzSY
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,149 @@
adwaita-cursor-theme-3.22.0-1.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/adwaita-cursor-theme-3.22.0-1.el7.noarch.rpm
adwaita-icon-theme-3.22.0-1.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/adwaita-icon-theme-3.22.0-1.el7.noarch.rpm
alsa-lib-1.1.3-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/alsa-lib-1.1.3-3.el7.x86_64.rpm
alsa-lib-devel-1.1.3-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/alsa-lib-devel-1.1.3-3.el7.x86_64.rpm
copy-jdk-configs-2.2-3.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/copy-jdk-configs-2.2-3.el7.noarch.rpm
cups-libs-1.6.3-29.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/cups-libs-1.6.3-29.el7.x86_64.rpm
device-mapper-1.02.140-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/device-mapper-1.02.140-8.el7.x86_64.rpm
device-mapper-devel-1.02.140-8.el7.x86_64.rpm#http://buildlogs-seed.centos.org/c7.1708.00/lvm2/20170805150537/2.02.171-8.el7.x86_64/device-mapper-devel-1.02.140-8.el7.x86_64.rpm
device-mapper-event-1.02.140-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/device-mapper-event-1.02.140-8.el7.x86_64.rpm
device-mapper-event-libs-1.02.140-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/device-mapper-event-libs-1.02.140-8.el7.x86_64.rpm
device-mapper-libs-1.02.140-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/device-mapper-libs-1.02.140-8.el7.x86_64.rpm
device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64.rpm
elfutils-0.168-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-0.168-8.el7.x86_64.rpm
elfutils-default-yama-scope-0.168-8.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-default-yama-scope-0.168-8.el7.noarch.rpm
elfutils-devel-0.168-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-devel-0.168-8.el7.x86_64.rpm
elfutils-libelf-0.168-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-libelf-0.168-8.el7.x86_64.rpm
elfutils-libelf-devel-0.168-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-libelf-devel-0.168-8.el7.x86_64.rpm
elfutils-libs-0.168-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/elfutils-libs-0.168-8.el7.x86_64.rpm
glib2-2.50.3-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glib2-2.50.3-3.el7.x86_64.rpm
glib2-devel-2.50.3-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glib2-devel-2.50.3-3.el7.x86_64.rpm
glib2-doc-2.50.3-3.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glib2-doc-2.50.3-3.el7.noarch.rpm
glusterfs-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-api-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-api-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-api-devel-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-api-devel-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-cli-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-cli-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-client-xlators-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-client-xlators-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-devel-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-devel-3.8.4-18.4.el7.centos.x86_64.rpm
glusterfs-libs-3.8.4-18.4.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/glusterfs-libs-3.8.4-18.4.el7.centos.x86_64.rpm
gsettings-desktop-schemas-3.22.0-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gsettings-desktop-schemas-3.22.0-1.el7.x86_64.rpm
gssproxy-0.7.0-4.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gssproxy-0.7.0-4.el7.x86_64.rpm
gtk3-3.22.10-4.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gtk3-3.22.10-4.el7.x86_64.rpm
gtk3-devel-3.22.10-4.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gtk3-devel-3.22.10-4.el7.x86_64.rpm
gtk3-devel-docs-3.22.10-4.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gtk3-devel-docs-3.22.10-4.el7.x86_64.rpm
gtk-update-icon-cache-3.22.10-4.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/gtk-update-icon-cache-3.22.10-4.el7.x86_64.rpm
ima-evm-utils-1.0-1.el7.x86_64.rpm#http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7Server/x86_64/i/ima-evm-utils-1.0-1.el7.x86_64.rpm
ima-evm-utils-devel-1.0-1.el7.x86_64.rpm#http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7Server/x86_64/i/ima-evm-utils-devel-1.0-1.el7.x86_64.rpm
initscripts-9.49.39-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/initscripts-9.49.39-1.el7.x86_64.rpm
iprutils-2.4.14.1-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/iprutils-2.4.14.1-1.el7.x86_64.rpm
iptables-1.4.21-18.0.1.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/iptables-1.4.21-18.0.1.el7.centos.x86_64.rpm
java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64.rpm
java-1.8.0-openjdk-devel-1.8.0.144-0.b01.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/java-1.8.0-openjdk-devel-1.8.0.144-0.b01.el7_4.x86_64.rpm
java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el7_4.x86_64.rpm
kexec-tools-2.0.14-17.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/kexec-tools-2.0.14-17.el7.x86_64.rpm
libblkid-2.23.2-43.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libblkid-2.23.2-43.el7.x86_64.rpm
libcom_err-1.42.9-10.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libcom_err-1.42.9-10.el7.x86_64.rpm
libcom_err-devel-1.42.9-10.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libcom_err-devel-1.42.9-10.el7.x86_64.rpm
libdrm-2.4.74-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libdrm-2.4.74-1.el7.x86_64.rpm
libdrm-devel-2.4.74-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libdrm-devel-2.4.74-1.el7.x86_64.rpm
libguestfs-1.36.3-6.el7_4.3.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/libguestfs-1.36.3-6.el7_4.3.x86_64.rpm
libldb-1.1.29-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libldb-1.1.29-1.el7.x86_64.rpm
libmount-2.23.2-43.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libmount-2.23.2-43.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-devel-2.5-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libsemanage-devel-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libsemanage-python-2.5-8.el7.x86_64.rpm
libtalloc-2.1.9-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libtalloc-2.1.9-1.el7.x86_64.rpm
libtdb-1.3.12-2.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libtdb-1.3.12-2.el7.x86_64.rpm
libtevent-0.9.31-1.el7.x86_64.rpm#http://koozali.groenz.co.nz/releases/testing/10.0.alpha3/smeupdates/x86_64/RPMS/libtevent-0.9.31-1.el7.x86_64.rpm
libuuid-2.23.2-43.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/libuuid-2.23.2-43.el7.x86_64.rpm
libvirt-python-3.5.0-1.fc24.src.rpm#https://libvirt.org/sources/python/libvirt-python-3.5.0-1.fc24.src.rpm
libwbclient-4.6.2-12.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/libwbclient-4.6.2-12.el7_4.x86_64.rpm
lighttpd-1.4.45-1.el7.src.rpm#http://epel.blizoo.mk/epel/7/SRPMS/l/lighttpd-1.4.45-1.el7.src.rpm
linux-firmware-20170606-56.gitc990aae.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/linux-firmware-20170606-56.gitc990aae.el7.noarch.rpm
lvm2-2.02.171-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/lvm2-2.02.171-8.el7.x86_64.rpm
lvm2-libs-2.02.171-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/lvm2-libs-2.02.171-8.el7.x86_64.rpm
mesa-libEGL-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libEGL-17.0.1-6.20170307.el7.x86_64.rpm
mesa-libEGL-devel-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libEGL-devel-17.0.1-6.20170307.el7.x86_64.rpm
mesa-libgbm-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libgbm-17.0.1-6.20170307.el7.x86_64.rpm
mesa-libGL-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libGL-17.0.1-6.20170307.el7.x86_64.rpm
mesa-libglapi-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libglapi-17.0.1-6.20170307.el7.x86_64.rpm
mesa-libGL-devel-17.0.1-6.20170307.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mesa-libGL-devel-17.0.1-6.20170307.el7.x86_64.rpm
mokutil-12-1.el7.centos.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/mokutil-12-1.el7.centos.x86_64.rpm
NetworkManager-glib-1.8.0-9.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/NetworkManager-glib-1.8.0-9.el7.x86_64.rpm
NetworkManager-glib-devel-1.8.0-9.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/NetworkManager-glib-devel-1.8.0-9.el7.x86_64.rpm
novnc-0.6.2-1.el7.src.rpm#http://cbs.centos.org/kojifiles/packages/novnc/0.6.2/1.el7/src/novnc-0.6.2-1.el7.src.rpm
nss-softokn-3.28.3-8.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/nss-softokn-3.28.3-8.el7_4.x86_64.rpm
nss-softokn-devel-3.28.3-8.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/nss-softokn-devel-3.28.3-8.el7_4.x86_64.rpm
nss-softokn-freebl-3.28.3-8.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/nss-softokn-freebl-3.28.3-8.el7_4.x86_64.rpm
nss-softokn-freebl-devel-3.28.3-8.el7_4.x86_64.rpm#http://ftp.ksu.edu.tw/FTP/CentOS/7.4.1708/updates/x86_64/Packages/nss-softokn-freebl-devel-3.28.3-8.el7_4.x86_64.rpm
openldap-2.4.44-5.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/openldap-2.4.44-5.el7.x86_64.rpm
openscap-1.2.14-2.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/openscap-1.2.14-2.el7.x86_64.rpm
openscap-scanner-1.2.14-2.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/openscap-scanner-1.2.14-2.el7.x86_64.rpm
openstack-tempest-17.0.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/openstack-tempest/17.0.0/1.el7/noarch/openstack-tempest-17.0.0-1.el7.noarch.rpm
osinfo-db-20170423-2.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/osinfo-db-20170423-2.el7.noarch.rpm
OVMF-20150414-2.gitc9e5618.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/ovmf/20150414/2.gitc9e5618.el7/noarch/OVMF-20150414-2.gitc9e5618.el7.noarch.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-devel-2.5-17.1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/policycoreutils-devel-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/policycoreutils-python-2.5-17.1.el7.x86_64.rpm
pulseaudio-libs-10.0-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/pulseaudio-libs-10.0-3.el7.x86_64.rpm
pulseaudio-libs-devel-10.0-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/pulseaudio-libs-devel-10.0-3.el7.x86_64.rpm
pulseaudio-libs-glib2-10.0-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/pulseaudio-libs-glib2-10.0-3.el7.x86_64.rpm
pykickstart-1.99.66.12-1.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/pykickstart-1.99.66.12-1.el7.noarch.rpm
python-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-2.7.5-58.el7.x86_64.rpm
python2-google-api-client-1.6.3-1.el7.noarch.rpm#https://www.rpmfind.net/linux/epel/7/x86_64/Packages/p/python2-google-api-client-1.6.3-1.el7.noarch.rpm
python2-httpbin-0.5.0-6.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-httpbin/0.5.0/6.el7/noarch/python2-httpbin-0.5.0-6.el7.noarch.rpm
python2-ironicclient-1.17.0-1.el7.noarch.rpm#http://mirror.centos.org/centos/7/cloud/x86_64/openstack-pike/python2-ironicclient-1.17.0-1.el7.noarch.rpm
python2-manilaclient-1.17.2-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-manilaclient/1.17.2/1.el7/noarch/python2-manilaclient-1.17.2-1.el7.noarch.rpm
python2-mistralclient-3.1.3-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-mistralclient/3.1.3/1.el7/noarch/python2-mistralclient-3.1.3-1.el7.noarch.rpm
python2-msgpack-0.4.8-1.el7.x86_64.rpm#http://epel.blizoo.mk/epel/7Server/x86_64/p/python2-msgpack-0.4.8-1.el7.x86_64.rpm
python2-os-brick-1.15.4-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-os-brick/1.15.4/1.el7/noarch/python2-os-brick-1.15.4-1.el7.noarch.rpm
python2-pysocks-1.5.7-1.el7.noarch.rpm#http://epel.blizoo.mk/epel/7Server/x86_64/p/python2-pysocks-1.5.7-1.el7.noarch.rpm
python2-pytest-httpbin-0.2.3-6.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-pytest-httpbin/0.2.3/6.el7/noarch/python2-pytest-httpbin-0.2.3-6.el7.noarch.rpm
python2-pytest-mock-1.6.0-2.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-pytest-mock/1.6.0/2.el7/noarch/python2-pytest-mock-1.6.0-2.el7.noarch.rpm
python2-storops-0.4.7-2.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-storops/0.4.7/2.el7/noarch/python2-storops-0.4.7-2.el7.noarch.rpm
python2-sushy-1.1.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-sushy/1.1.0/1.el7/noarch/python2-sushy-1.1.0-1.el7.noarch.rpm
python2-tempestconf-1.1.3-1.el7.noarch.rpm#http://mirror.centos.org/centos/7/cloud/x86_64/openstack-pike/python2-tempestconf-1.1.3-1.el7.noarch.rpm
python2-urllib3-1.21.1-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-urllib3/1.21.1/1.el7/noarch/python2-urllib3-1.21.1-1.el7.noarch.rpm
python-debug-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-debug-2.7.5-58.el7.x86_64.rpm
python-devel-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-devel-2.7.5-58.el7.x86_64.rpm
python-gobject-3.22.0-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-gobject-3.22.0-1.el7.x86_64.rpm
python-gobject-base-3.22.0-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-gobject-base-3.22.0-1.el7.x86_64.rpm
python-gunicorn-19.7.1-1.fc27.src.rpm#https://kojipkgs.fedoraproject.org/packages/python-gunicorn/19.7.1/1.fc27/src/python-gunicorn-19.7.1-1.fc27.src.rpm
python-ironic-inspector-client-2.1.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-ironic-inspector-client/2.1.0/1.el7/noarch/python-ironic-inspector-client-2.1.0-1.el7.noarch.rpm
python-ironic-lib-2.10.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-ironic-lib/2.10.0/1.el7/noarch/python-ironic-lib-2.10.0-1.el7.noarch.rpm
python-libguestfs-1.36.3-6.el7_4.3.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/python-libguestfs-1.36.3-6.el7_4.3.x86_64.rpm
python-libs-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-libs-2.7.5-58.el7.x86_64.rpm
python-pyngus-2.2.1-1.el7.noarch.rpm#http://epel.blizoo.mk/epel/7Server/x86_64/p/python-pyngus-2.2.1-1.el7.noarch.rpm
python-qpid-proton-0.17.0-4.el7.x86_64.rpm#http://cbs.centos.org/kojifiles/packages/qpid-proton/0.17.0/4.el7/x86_64/python-qpid-proton-0.17.0-4.el7.x86_64.rpm
python-requests-mock-1.3.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/python-requests-mock/1.3.0/1.el7/noarch/python-requests-mock-1.3.0-1.el7.noarch.rpm
python-setuptools-22.0.5-1.el7.src.rpm#http://cbs.centos.org/kojifiles/packages/python-setuptools/22.0.5/1.el7/src/python-setuptools-22.0.5-1.el7.src.rpm
python-tempest-17.0.0-1.el7.noarch.rpm#http://cbs.centos.org/kojifiles/packages/openstack-tempest/17.0.0/1.el7/noarch/python-tempest-17.0.0-1.el7.noarch.rpm
python-test-2.7.5-58.el7.x86_64.rpm#http://dedic.sh/centos/7.3.1611/cr/x86_64/Packages/python-test-2.7.5-58.el7.x86_64.rpm
python-tools-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-tools-2.7.5-58.el7.x86_64.rpm
python-virtualenv-1.10.1-4.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-virtualenv-1.10.1-4.el7.noarch.rpm
qpid-proton-c-0.17.0-4.el7.x86_64.rpm#http://cbs.centos.org/kojifiles/packages/qpid-proton/0.17.0/4.el7/x86_64/qpid-proton-c-0.17.0-4.el7.x86_64.rpm
rest-0.8.0-1.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/rest-0.8.0-1.el7.x86_64.rpm
samba-client-libs-4.6.2-12.el7_4.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/samba-client-libs-4.6.2-12.el7_4.x86_64.rpm
samba-common-4.6.2-12.el7_4.noarch.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/samba-common-4.6.2-12.el7_4.noarch.rpm
scapy-2.3.3-1.el7.src.rpm#http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/SRPMS/s/scapy-2.3.3-1.el7.src.rpm
selinux-policy-3.13.1-166.el7_4.4.noarch.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/selinux-policy-3.13.1-166.el7_4.4.noarch.rpm
selinux-policy-devel-3.13.1-166.el7_4.4.noarch.rpm#https://buildlogs.centos.org/c7.1708.u.i386/selinux-policy/20170906231652/3.13.1-166.el7_4.4.x86_64/selinux-policy-devel-3.13.1-166.el7_4.4.noarch.rpm
spice-protocol-0.12.12-2.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/spice-protocol-0.12.12-2.el7.noarch.rpm
spice-server-0.12.8-2.el7.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/spice-server-0.12.8-2.el7.1.x86_64.rpm
spice-server-devel-0.12.8-2.el7.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/spice-server-devel-0.12.8-2.el7.1.x86_64.rpm
systemd-219-42.el7_4.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/systemd-219-42.el7_4.1.x86_64.rpm
systemd-devel-219-42.el7_4.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/systemd-devel-219-42.el7_4.1.x86_64.rpm
systemd-libs-219-42.el7_4.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/systemd-libs-219-42.el7_4.1.x86_64.rpm
systemd-sysv-219-42.el7_4.1.x86_64.rpm#http://vault.centos.org/7.4.1708/updates/x86_64/Packages/systemd-sysv-219-42.el7_4.1.x86_64.rpm
systemtap-3.1-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/systemtap-3.1-3.el7.x86_64.rpm
systemtap-client-3.1-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/systemtap-client-3.1-3.el7.x86_64.rpm
systemtap-devel-3.1-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/systemtap-devel-3.1-3.el7.x86_64.rpm
systemtap-runtime-3.1-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/systemtap-runtime-3.1-3.el7.x86_64.rpm
systemtap-sdt-devel-3.1-3.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/systemtap-sdt-devel-3.1-3.el7.x86_64.rpm
tcpdump-4.9.0-5.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/tcpdump-4.9.0-5.el7.x86_64.rpm
tkinter-2.7.5-58.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/tkinter-2.7.5-58.el7.x86_64.rpm
tuned-2.8.0-5.el7.noarch.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/tuned-2.8.0-5.el7.noarch.rpm
tuned-profiles-realtime-2.8.0-5.el7.noarch.rpm#http://ftp.iij.ad.jp/pub/linux/centos/7/rt/x86_64/Packages/tuned-profiles-realtime-2.8.0-5.el7.noarch.rpm
util-linux-2.23.2-43.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/util-linux-2.23.2-43.el7.x86_64.rpm
valgrind-3.12.0-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/valgrind-3.12.0-8.el7.x86_64.rpm
valgrind-devel-3.12.0-8.el7.x86_64.rpm#http://vault.centos.org/7.4.1708/os/x86_64/Packages/valgrind-devel-3.12.0-8.el7.x86_64.rpm

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
echo "!! This script dumps all GPG keys added by \"rpm --import\"."
echo "!! it also lists out all keys' fingerprints, so that you can "
echo "!! cross-check with info at \"https://www.centos.org/keys/\""
echo ""
echo "-------------------- Start ----------------------------"
all_imported_keys="./all_imported_keys.txt"
echo "dump imported keys into $all_imported_keys"
# dump all RPM GPG keys we've already imported.
rpm -qi gpg-pubkey-\* > $all_imported_keys
# list fingerprint for each of keys we've imported
all_keys="`find /etc/pki/rpm-gpg -type f -name "RPM-GPG-KEY*"`"
for key in $all_keys;do
gpg --quiet --with-fingerprint $key
done
echo "-------------------- Done ----------------------------"

93
tb.sh Executable file
View File

@ -0,0 +1,93 @@
#!/bin/bash
# tb.sh - tbuilder commands
#
# Subcommands:
# env - Display a selection of configuration values
# exec - Starts a shell inside a running container
# run - Starts a container
# stop - Stops a running container
#
# Configuration
# tb.sh expects to find its configuration file buildrc in the current
# directory, like Vagrant looks for Vagrantfile.
SCRIPT_DIR=$(cd $(dirname "$0") && pwd)
WORK_DIR=$(pwd)
# Load tbuilder configuration
if [[ -r ${WORK_DIR}/buildrc ]]; then
source ${WORK_DIR}/buildrc
fi
CMD=$1
TC_CONTAINER_NAME=${USER}-centos-builder
TC_CONTAINER_TAG=local/${USER}-stx-builder:7.3
TC_DOCKERFILE=Dockerfile.centos73.TC-builder
function exec_container {
docker cp ${WORK_DIR}/buildrc ${TC_CONTAINER_NAME}:/home/${MYUNAME}
docker cp ${WORK_DIR}/localrc ${TC_CONTAINER_NAME}:/home/${MYUNAME}
docker exec -it --user=${MYUNAME} -e MYUNAME=${MYUNAME} ${TC_CONTAINER_NAME} script -q -c "/bin/bash" /dev/null
}
function run_container {
# create localdisk
mkdir -p ${LOCALDISK}/designer/${USER}/${PROJECT}
docker run -it --rm \
--name ${TC_CONTAINER_NAME} \
-v ${LOCALDISK}:/${GUEST_LOCALDISK} \
-v ${HOST_MIRROR_DIR}:/import/mirrors:ro \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v ~/.ssh:/mySSH:ro \
-e "container=docker" \
-e MYUNAME=${MYUNAME} \
--privileged=true \
--security-opt seccomp=unconfined \
${TC_CONTAINER_TAG}
}
function stop_container {
docker stop ${TC_CONTAINER_NAME}
}
function kill_container {
docker kill ${TC_CONTAINER_NAME}
}
function usage {
echo "$0 [run|exec|env|stop|kill]"
}
case $CMD in
env)
echo "LOCALDISK=${LOCALDISK}"
echo "GUEST_LOCALDISK=${GUEST_LOCALDISK}"
echo "TC_DOCKERFILE=${TC_DOCKERFILE}"
echo "TC_CONTAINER_NAME=${TC_CONTAINER_NAME}"
echo "TC_CONTAINER_TAG=${TC_CONTAINER_TAG}"
echo "SOURCE_REMOTE_NAME=${SOURCE_REMOTE_NAME}"
echo "SOURCE_REMOTE_URI=${SOURCE_REMOTE_URI}"
echo "HOST_MIRROR_DIR=${HOST_MIRROR_DIR}"
echo "MY_TC_RELEASE=${MY_TC_RELEASE}"
echo "MY_REPO_ROOT_DIR=${MY_REPO_ROOT_DIR}"
;;
exec)
exec_container
;;
run)
run_container
;;
stop)
stop_container
;;
kill)
kill_container
;;
*)
echo "Unknown command: $CMD"
usage
exit 1
;;
esac

3
toCOPY/.inputrc Normal file
View File

@ -0,0 +1,3 @@
"\e[A": history-search-backward
"\e[B": history-search-forward
"\C-x\C-r": re-read-init-file

9
toCOPY/WhatAreThese.md Normal file
View File

@ -0,0 +1,9 @@
# This lists what we copy into the container and what they are
## To replace/update these, rebuild the container with new ones:
* .inputrc
* Allows up arrows to work with history
* finishSetup.sh
* a shell script run when doing a docker exec into the container. It relies on a number of things being set up so it is done at run, rather than build time. It is run based on .bashrc, so make sure you use that shell!
* .gitconfig
* NOT in the repo, this needs to be copied in from YOUR personal gitconfig

View File

@ -0,0 +1,8 @@
all:
make -C mount_wrappers all
clean:
make -C mount_wrappers clean
install: all
make -C mount_wrappers install

View File

@ -0,0 +1,26 @@
all: overlay_mount overlay_umount mock_cache_umount mock_cache_unlock mock_tmpfs_umount mock_tmpfs_mount
clean:
rm -rf overlay_mount overlay_umount mock_cache_umount mock_cache_unlock mock_tmpfs_umount mock_tmpfs_mount
mock_tmpfs_mount: mock_tmpfs_mount.c
gcc -o mock_tmpfs_mount mock_tmpfs_mount.c
mock_tmpfs_umount: mock_tmpfs_umount.c
gcc -o mock_tmpfs_umount mock_tmpfs_umount.c
overlay_mount: overlay_mount.c
gcc -o overlay_mount overlay_mount.c
overlay_umount: overlay_umount.c
gcc -o overlay_umount overlay_umount.c
mock_cache_umount: mock_cache_umount.c
gcc -o mock_cache_umount mock_cache_umount.c
mock_cache_unlock: mock_cache_unlock.c
gcc -o mock_cache_unlock mock_cache_unlock.c
install: all
install --owner=root --group=root --mode=6755 overlay_mount overlay_umount mock_cache_umount mock_cache_unlock mock_tmpfs_umount mock_tmpfs_mount /usr/bin
install --owner=root --group=root --mode=0744 overlay_mount.sh overlay_umount.sh mock_cache_umount.sh mock_cache_unlock.sh mock_tmpfs_umount.sh mock_tmpfs_mount.sh /usr/bin

View File

@ -0,0 +1,4 @@
INSTALL
=======
make
sudo make install

View File

@ -0,0 +1,18 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/mock_cache_umount.sh", argv);
}

View File

@ -0,0 +1,60 @@
#!/bin/bash
MOUNT_POINT=$1
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "USER=$USER"
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ ! -d $MOUNT_POINT ]
then
echo "'$MOUNT_POINT' is not a directory"
exit 1
fi
echo "$MOUNT_POINT" | grep -e '/mock/.*root/' > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' does not match pattern 'mock*root'"
exit 1
fi
mount | grep "$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' is not mounted by $USER"
exit 1
fi
# echo "umount $MOUNT_POINT"
umount $MOUNT_POINT
if [ $? -ne 0 ]
then
echo "failed to unmount '$MOUNT_POINT'"
exit 1
fi
echo "'$MOUNT_POINT' unmounted"
exit 0

View File

@ -0,0 +1,18 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/mock_cache_unlock.sh", argv);
}

View File

@ -0,0 +1,53 @@
#!/bin/bash
LOCK_FILE=$1
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "USER=$USER"
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ ! -f $LOCK_FILE ]
then
echo "'$LOCK_FILE' is not a file"
exit 1
fi
echo "$LOCK_FILE" | grep "[/]localdisk[/]loadbuild[/]$USER[/].*[/]yumcache[.]lock" > /dev/null
if [ $? -ne 0 ]
then
echo "'$LOCK_FILE' does not match pattern '/localdisk/loadbuild/$USER/*/yumcache.lock'"
exit 1
fi
echo "rm -f $LOCK_FILE"
\rm -f $LOCK_FILE
if [ $? -ne 0 ]
then
echo "failed to rm '$LOCK_FILE'"
exit 1
fi
echo "'$LOCK_FILE' deleted"
exit 0

View File

@ -0,0 +1,18 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/mock_tmpfs_mount.sh", argv);
}

View File

@ -0,0 +1,77 @@
#!/bin/bash
MOUNT_POINT=$1
SIZE_IN_GB=$2
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "USER=$USER"
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ "$SIZE_IN_GB" == "" ] || [ $SIZE_IN_GB -le 0 ]; then
echo "Invalid size: '$SIZE_IN_GB'"
exit 1
fi
if [ ! -d $MOUNT_POINT ]
then
echo "'$MOUNT_POINT' is not a directory"
exit 1
fi
echo "$MOUNT_POINT" | grep -e "/$USER/.*/mock/" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' does not match pattern '/$USER/.*/mock/'"
exit 1
fi
MIN_AVAIL_GB=8
AVAIL_GB=$(free -m -h | grep '^Mem:' | awk '{ print $7 }' | sed 's/G$//')
if [ $AVAIL_GB -lt $MIN_AVAIL_GB ]; then
echo "Below minimum available memory: $AVAIL_GB vs $MIN_AVAIL_GB"
exit 1
fi
if [ $SIZE_IN_GB -gt $AVAIL_GB ]; then
echo "Insufficient memory"
exit 1
fi
REMAINDER_GB=$((AVAIL_GB-SIZE_IN_GB))
if [ $REMAINDER_GB -lt $MIN_AVAIL_GB ]; then
echo "System would be driven below minimum available memory: ($AVAIL_GB - $SIZE_IN_GB) < $MIN_AVAIL_GB"
exit 1
fi
# echo "mount -t tmpfs -o size=${SIZE_IN_GB}G tmpfs $MOUNT_POINT"
mount -t tmpfs -o size=${SIZE_IN_GB}G tmpfs $MOUNT_POINT
if [ $? -ne 0 ]
then
echo "failed to mount '$MOUNT_POINT'"
exit 1
fi
echo "'$MOUNT_POINT' mounted"
exit 0

View File

@ -0,0 +1,18 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/mock_tmpfs_umount.sh", argv);
}

View File

@ -0,0 +1,62 @@
#!/bin/bash
MOUNT_POINT=$1
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "USER=$USER"
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ ! -d $MOUNT_POINT ]
then
echo "'$MOUNT_POINT' is not a directory"
exit 1
fi
echo "$MOUNT_POINT" | grep -e "/$USER/.*/mock" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' does not match pattern '/$USER/.*/mock'"
exit 1
fi
mount | grep "$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' is not mounted by $USER"
exit 1
fi
# echo "umount $MOUNT_POINT"
for m in $(mount | grep "$USER" | grep "$MOUNT_POINT" | awk '{ print $3 }' | sort --reverse); do
umount $m
if [ $? -ne 0 ]
then
echo "failed to unmount '$m'"
exit 1
fi
done
echo "'$MOUNT_POINT' unmounted"
exit 0

View File

@ -0,0 +1,19 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/overlay_mount.sh", argv);
}

View File

@ -0,0 +1,100 @@
#!/bin/bash
LOWER=$1
UPPER=$2
MOUNT_POINT=$3
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ ! -d $LOWER ]
then
echo "'$LOWER' is not a directory"
exit 1
fi
if [ ! -d $UPPER ]
then
echo "'$UPPER' is not a directory"
exit 1
fi
if [ ! -d $MOUNT_POINT ]
then
echo "'$MOUNT_POINT' is not a directory"
exit 1
fi
echo "$LOWER" | grep "^/localdisk/loadbuild/jenkins" > /dev/null
if [ $? -ne 0 ]
then
echo "$LOWER" | grep "^/localdisk/sscache/jenkins" > /dev/null
if [ $? -ne 0 ]
then
echo "'$LOWER' does not match pattern '/localdisk/(loadbuild|sscache)/jenkins'"
exit 1
fi
fi
echo "$UPPER" | grep "^/localdisk/loadbuild/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "$UPPER" | grep "^/localdisk/sscache/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "'$UPPER' does not match pattern '/localdisk/(loadbuild|sscache)/$USER'"
exit 1
fi
fi
echo "$MOUNT_POINT" | grep "^/localdisk/loadbuild/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "$MOUNT_POINT" | grep "^/localdisk/sscache/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' does not match pattern '/localdisk/(loadbuild|sscache)/$USER'"
exit 1
fi
fi
mount -l -t overlayfs_uid | grep "$MOUNT_POINT" > /dev/null
if [ $? -eq 0 ]
then
echo "'$MOUNT_POINT' is already mounted."
exit 1
fi
mount -t overlayfs_uid -o lowerdir=$LOWER,upperdir=$UPPER,uid=$MY_UID,gid=$MY_GID overlayfs_uid $MOUNT_POINT
if [ $? -ne 0 ]
then
echo "failed to mount '$MOUNT_POINT'"
exit 1
fi
echo "'$MOUNT_POINT' mounted"
exit 0

View File

@ -0,0 +1,18 @@
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *const argv[])
{
int rc;
rc = setuid(0);
if ( rc != 0 )
{
printf("setuid returned %d\n", rc);
exit(1);
}
return execv("/usr/bin/overlay_umount.sh", argv);
}

View File

@ -0,0 +1,70 @@
#!/bin/bash
MOUNT_POINT=$1
id $USER | grep '(cgts)\|751(mock)' > /dev/null
if [ $? -ne 0 ]
then
echo "Only members of group cgts may use this tool."
exit 1
fi
MY_UID=`id -u $USER`
if [ $? -ne 0 ]
then
echo "failed to determine UID."
exit 1
fi
MY_GID=`getent group cgts | cut -d: -f3`
if [ $? -ne 0 ]
then
echo "failed to determine GID."
exit 1
fi
# echo "UID=$UID"
# echo "MY_UID=$MY_UID"
# echo "MY_GID=$MY_GID"
if [ ! -d $MOUNT_POINT ]
then
echo "'$MOUNT_POINT' is not a directory"
exit 1
fi
mount -l -t overlayfs_uid | grep "$MOUNT_POINT" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' is not mounted as overlayfs_uid."
exit 1
fi
mount -l -t overlayfs_uid | grep "uid=$MY_UID" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' is not mounted by $USER"
exit 1
fi
echo "$MOUNT_POINT" | grep "^/localdisk/loadbuild/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "$MOUNT_POINT" | grep "^/localdisk/sscache/$USER" > /dev/null
if [ $? -ne 0 ]
then
echo "'$MOUNT_POINT' does not match pattern '/localdisk/(loadbuild|sscache)/$USER'"
exit 1
fi
fi
# echo "umount $MOUNT_POINT"
umount $MOUNT_POINT
if [ $? -ne 0 ]
then
echo "failed to unmount '$MOUNT_POINT'"
exit 1
fi
echo "'$MOUNT_POINT' unmounted"
exit 0

55
toCOPY/finishSetup.sh Executable file
View File

@ -0,0 +1,55 @@
#!/bin/bash
# Load tbuilder configuration
if [[ -r ${HOME}/buildrc ]]; then
source ${HOME}/buildrc
fi
# start the web server
# this was done before I reallized I needed to have systemd
# running in the container. could revert to systemd startup but
# will leave that task for later
if [[ ! `ps augxww | grep lighttpd | grep conf` ]]; then
echo "starting lighttpd up...";
sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
else
echo "not starting up lighttpd, it's already running"
fi
# make sure the mock directories are there
# and have the right settings
mkdir -p /localdisk/loadbuild/mock
sudo chmod 775 /localdisk/loadbuild/mock
sudo chown root:mock /localdisk/loadbuild/mock
mkdir -p /localdisk/loadbuild/mock-cache
sudo chmod 775 /localdisk/loadbuild/mock-cache
sudo chown root:mock /localdisk/loadbuild/mock-cache
### may need to add these later. once it works will try on clean localdisk setup
# [builder@bavery-WS-DESK cgcs-root]$ history | grep mkdir
# 55 mkdir -p $MY_WORKSPACE/results
# 66 mkdir -p $MY_WORKSPACE/std/results/$MY_BUILD_ENVIRONMENT-std
# 78 mkdir -p $MY_WORKSPACE/rt/rpmbuild/RPMS
# make the place we will clone into
. /etc/profile.d/TC.sh
echo "MY_REPO=$MY_REPO"
mkdir -p $MY_REPO
mkdir -p $MY_WORKSPACE
cat <<EOF
Using ${SOURCE_REMOTE_URI} for build
To ease checkout do:
eval \$(ssh-agent)
ssh-add
To start a fresh source tree:
cd \$MY_REPO_ROOT_DIR
repo init -u git@github.com:starlingx-staging/stx-manifest.git stx-manifest.xml
To build all packages:
cd \$MY_REPO
build-pkgs or build-pkgs <pkglist>
To make an iso:
build-iso
EOF