RPM: add Docker build scripts for el5 and el6

pull/3/head
François Andriot 7 years ago
parent 6750b59465
commit 8a9f8ca470

@ -0,0 +1,50 @@
#!/bin/bash -ex
[ "$(whoami)" = "root" ] || exec sudo $0 $@
[ "$(rpm -E %_arch)" = "x86_64" ] && exec setarch i686 $0 $@
cd "$(dirname "$0")"
NAME="centos32"
VERSION="$1" # E.g: '5'
IMAGE="${NAME}:${VERSION}"
INSTALLROOT="/dev/shm/${IMAGE}"
DIR="el${VERSION}"
REPO="centos-${VERSION}"
# Installation minimale de la distribution
rm -rf "${INSTALLROOT}"
install -m 644 "${DIR}/${REPO}.repo" "/etc/yum.repos.d"
yum install --disablerepo="*" --enablerepo="${REPO}*" --nogpgcheck -y --installroot "${INSTALLROOT}" libselinux yum
rm -f "/etc/yum.repos.d/${REPO}.repo"
touch "${INSTALLROOT}/etc/fstab" "${INSTALLROOT}/etc/mtab"
# Activation des dépôts YUM de l'atelier DEPL-IT (remplace les dépôts Internet)
rm -f "${INSTALLROOT}/etc/yum.repos.d/"*".repo"
install -m 644 "${DIR}/${REPO}.repo" "${INSTALLROOT}/etc/yum.repos.d"
install -m 644 "/etc/resolv.conf" "${INSTALLROOT}/etc/resolv.conf"
rm -f "${INSTALLROOT}/etc/group" "${INSTALLROOT}/etc/passwd" "${INSTALLROOT}/etc/pam.d/system-auth" "${INSTALLROOT}/usr/share/info/dir"
# Ré-installation de la distribution en utilisant le "yum" intégré
rm -rf "${INSTALLROOT}/var/lib/rpm/"*
install -m 644 "${DIR}/"{epel,repoforge}*".repo" "${INSTALLROOT}/etc/yum.repos.d"
cp -a "/dev/urandom" "${INSTALLROOT}/dev/urandom"
chroot "${INSTALLROOT}" yum install --nogpgcheck -y $(<${DIR}/packages.base)
find "${INSTALLROOT}" -name "*.rpmnew" -delete
# Création de l'image Tar
tar -C "${INSTALLROOT}" -c . >"${IMAGE}.tar"
rm -rf "${INSTALLROOT}"
# Création de l'image Docker
if [ "$(docker images -q "${IMAGE}")" != "" ]; then
docker rmi -f "${IMAGE}"
fi
docker import "${IMAGE}.tar" "${IMAGE}"
# Test de l'image
docker run "${IMAGE}" yum repolist
exit 0

@ -0,0 +1,32 @@
FROM centos32:5
ARG TDE_VERSION=14.0.4
ARG ARCH=i686
# Add local repositories
RUN rm -f /etc/yum.repos.d/*.repo
ADD centos-5.repo /etc/yum.repos.d/centos-5.repo
ADD epel-5.repo /etc/yum.repos.d/epel-5.repo
ADD repoforge-5.repo /etc/yum.repos.d/repoforge-5.repo
# Install Trinity build dependencies
ADD packages.trinity /etc/yum.repos.d/packages
#RUN yum install -y setarch
RUN setarch ${ARCH} yum update -y
RUN setarch ${ARCH} yum install -y $(</etc/yum.repos.d/packages) || :
# Avoid conflict with gnome-screensaver
RUN setarch ${ARCH} yum remove -y gnome-screensaver
RUN setarch ${ARCH} yum install -y --disablerepo="*" --enablerepo="centos-5-extras" xscreensaver
# Add YUM repository for locally built packages
ADD rpmbuild.repo /etc/yum.repos.d/rpmbuild.repo
RUN sed -i "/etc/yum.repos.d/rpmbuild.repo" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
# Add non-root user to build packages
RUN useradd -m -s /bin/bash -u 1000 trinity
RUN echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
ADD rpmmacros /home/trinity/.rpmmacros
# Distro-specific patches
RUN sed -i "/usr/include/jasper/jas_math.h" -e "/#include <stdint.h>/ s|$|\n#ifndef SIZE_MAX\n#define SIZE_MAX ((size_t) -1)\n#endif\n|"

@ -0,0 +1,33 @@
FROM centos:5
ARG TDE_VERSION=14.0.4
ARG ARCH=x86_64
# Add local repositories
RUN rm -f /etc/yum.repos.d/*.repo
ADD centos-5.repo /etc/yum.repos.d/centos-5.repo
ADD epel-5.repo /etc/yum.repos.d/epel-5.repo
ADD repoforge-5.repo /etc/yum.repos.d/repoforge-5.repo
# Install Trinity build dependencies
ADD packages.trinity /etc/yum.repos.d/packages
RUN echo "multilib_policy=best" >>"/etc/yum.conf"
RUN yum install -y setarch
RUN setarch ${ARCH} yum update -y
RUN setarch ${ARCH} yum install -y $(</etc/yum.repos.d/packages) || :
# Avoid conflict with gnome-screensaver
RUN setarch ${ARCH} yum remove -y gnome-screensaver
RUN setarch ${ARCH} yum install -y --disablerepo="*" --enablerepo="centos-5-extras" xscreensaver
# Add YUM repository for locally built packages
ADD rpmbuild.repo /etc/yum.repos.d/rpmbuild.repo
RUN sed -i "/etc/yum.repos.d/rpmbuild.repo" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
# Add non-root user to build packages
RUN useradd -m -s /bin/bash -u 1000 trinity
RUN echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
ADD rpmmacros /home/trinity/.rpmmacros
# Distro-specific patches
RUN sed -i "/usr/include/jasper/jas_math.h" -e "/#include <stdint.h>/ s|$|\n#ifndef SIZE_MAX\n#define SIZE_MAX ((size_t) -1)\n#endif\n|"

@ -0,0 +1,30 @@
[centos-5-base]
name=CentOS-5 - Base
baseurl=http://repo/repo/archives/centos/5/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#released updates
[centos-5-updates]
name=CentOS-5 - Updates
baseurl=http://repo/repo/archives/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#additional packages that may be useful
[centos-5-extras]
name=CentOS-5 - Extras
baseurl=http://repo/repo/archives/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#additional packages that extend functionality of existing packages
[centos-5-centosplus]
name=CentOS-5 - Plus
baseurl=http://repo/repo/archives/centos/5/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1

@ -0,0 +1,5 @@
[epel]
name=epel
baseurl=http://repo/repo/archives/epel/5/$basearch/
enabled=1
gpgcheck=0

@ -0,0 +1,5 @@
bash
perl
setarch
vim-enhanced
yum

@ -0,0 +1,199 @@
alsa-lib-devel
aspell
aspell-devel
audiofile-devel
autotrace
avahi-devel
bind-devel
binutils-devel
bison
boost-devel
bzip2-devel
ccache
ccrtp-devel
cdparanoia
cdparanoia-devel
chmlib-devel
chrpath
clamav
clamav-devel
clucene-core-devel
cmake
commoncpp2-devel
compat-gcc-34-g77
cpp
cppunit-devel
createrepo
cryptsetup-luks-devel
cups-devel
curl-devel
db4-devel
dbus-glib-devel
dejagnu
doxygen
emacs
esound-devel
exiv2-devel
expect
fdupes
ffmpeg-devel
fftw-devel
flac-devel
fontpackages-devel
fribidi-devel
gamin-devel
gcc
gcc-c++
gcc-gfortran
gcc-java
gettext-devel
glib-devel
gmime-devel
gmp-devel
gnokii-devel
gperf
gpgme-devel
gphoto2-devel
GraphicsMagick-devel
gsl-devel
gstreamer-devel
gstreamer-plugins-base-devel
gtk2-devel
gtk+-devel
gtk-doc
guile-devel
hal-devel
heimdal-devel
hspell-devel
htdig
html2ps
icu
ImageMagick-devel
imake
imlib-devel
jack-audio-connection-kit-devel
jasper-devel
java-1.4.2-gcj-compat-devel
java-1.7.0-openjdk-devel
java-devel
java-openjdk
lame-devel
lcms-devel
libacl-devel
libarchive-devel
libart_lgpl-devel
libcap-devel
libcdio-devel
libdrm-devel
libdvdread-devel
libfontenc-devel
libgcj-devel
libgpod-devel
libgsf-devel
libgssapi-devel
libical-devel
libicu-devel
libidn-devel
liblrdf-devel
libmad-devel
libmng-devel
libmp4v2-devel
libmpcdec-devel
libmusicbrainz-devel
libofx-devel
libogg-devel
libotr-devel
libpaper-devel
libpqxx-devel
libraw1394-devel
librsvg2-devel
libsamplerate-devel
libsmbclient-devel
libsndfile-devel
libssh2-devel
libtheora-devel
libtiff-devel
libtool
libtool-ltdl-devel
libtunepimp-devel
libutempter-devel
libvisual-devel
libvorbis-devel
libwmf-devel
libwpd-devel
libXaw-devel
libXcomposite-devel
libXdamage-devel
libXdmcp-devel
libxkbfile-devel
libXScrnSaver-devel
libxslt-devel
libXtst-devel
libXv-devel
libXxf86dga-devel
libXxf86vm-devel
libzrtpcpp-devel
lm_sensors-devel
meanwhile-devel
mysql-devel
nas-devel
ncurses-devel
neon-devel
netpbm-progs
net-snmp-devel
NetworkManager-glib-devel
ocaml
OpenEXR-devel
openldap-devel
openldap24-libs-devel
opensc
openslp-devel
opensp-devel
pam-devel
pciutils-devel
pcre-devel
pcsc-lite-devel
perl
perl(ExtUtils::MakeMaker)
perl(XML::Parser)
pilot-link-devel
pkcs11-helper-devel
poppler-devel
postgresql-devel
pth-devel
python-docutils
recode
redhat-rpm-config
rpm-build
rsh
ruby
ruby-devel
sane-backends-devel
scons
SDL-devel
setarch
sip-devel
speex-devel
sqlite-devel
sudo
subversion-devel
t1lib-devel
t1utils
taglib-devel
texinfo
texinfo-tex
transfig
unixODBC-devel
usbutils
valgrind
wireless-tools-devel
xine-lib-devel
xmlto
xorg-x11-font-utils
xorg-x11-server-utils
xscreensaver
xscreensaver-gl-base
xscreensaver-gl-extras
xscreensaver-extras
xulrunner-devel
xz-devel

@ -0,0 +1,5 @@
[dag]
name=dag
baseurl=http://repo/repo/repoforge/redhat/el5/en/$basearch/dag/
enabled=1
gpgcheck=0

@ -0,0 +1,11 @@
[rpmbuild.${ARCH}]
name=rpmbuild.${ARCH}
baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/${ARCH}
enabled=1
gpgcheck=0
[rpmbuild.noarch]
name=rpmbuild.noarch
baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/noarch
enabled=1
gpgcheck=0

@ -0,0 +1,5 @@
%dist .el5
%rhel 5
%_smp_mflags -j8
%jobs 8
%_topdir /home/trinity/rpmbuild

@ -0,0 +1,27 @@
FROM centos32:6
ARG TDE_VERSION=14.0.4
ARG ARCH=i686
# Add EPEL repository
RUN yum install -y epel-release
# Add NUX repository
RUN rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
# Install Trinity build dependencies
ADD packages.trinity /etc/yum.repos.d/packages
RUN setarch ${ARCH} yum update -y
RUN setarch ${ARCH} yum install -y $(</etc/yum.repos.d/packages) || :
# Add YUM repository for locally built packages
ADD rpmbuild.repo /etc/yum.repos.d/rpmbuild.repo
RUN sed -i "/etc/yum.repos.d/rpmbuild.repo" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
# Add non-root user to build packages
RUN useradd -m -s /bin/bash -u 1000 trinity
RUN echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
ADD rpmmacros /home/trinity/.rpmmacros
# Distro-specific patches
RUN sed -i "/usr/include/jasper/jas_math.h" -e "/#include <stdint.h>/ s|$|\n#ifndef SIZE_MAX\n#define SIZE_MAX ((size_t) -1)\n#endif\n|"

@ -0,0 +1,27 @@
FROM centos:6
ARG TDE_VERSION=14.0.4
ARG ARCH=x86_64
# Add EPEL repository
RUN yum install -y epel-release
# Add NUX repository
RUN rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
# Install Trinity build dependencies
ADD packages.trinity /etc/yum.repos.d/packages
RUN yum update -y
RUN yum install -y $(</etc/yum.repos.d/packages) || :
# Add YUM repository for locally built packages
ADD rpmbuild.repo /etc/yum.repos.d/rpmbuild.repo
RUN sed -i "/etc/yum.repos.d/rpmbuild.repo" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
# Add non-root user to build packages
RUN useradd -m -s /bin/bash -u 1000 trinity
RUN echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
ADD rpmmacros /home/trinity/.rpmmacros
# Distro-specific patches
RUN sed -i "/usr/include/jasper/jas_math.h" -e "/#include <stdint.h>/ s|$|\n#ifndef SIZE_MAX\n#define SIZE_MAX ((size_t) -1)\n#endif\n|"

@ -0,0 +1,30 @@
[centos-6-base]
name=CentOS-6 - Base
baseurl=http://repo/repo/centos/6/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
#released updates
[centos-6-updates]
name=CentOS-6 - Updates
baseurl=http://repo/repo/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
#additional packages that may be useful
[centos-6-extras]
name=CentOS-6 - Extras
baseurl=http://repo/repo/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
#additional packages that extend functionality of existing packages
[centos-6-centosplus]
name=CentOS-6 - Plus
baseurl=http://repo/repo/centos/6/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1

@ -0,0 +1,5 @@
[epel]
name=epel
baseurl=http://repo/repo/epel/6/$basearch/
enabled=1
gpgcheck=0

@ -0,0 +1,5 @@
bash
perl
setarch
vim-enhanced
yum

@ -0,0 +1,206 @@
alsa-lib-devel
aspell
aspell-devel
audiofile-devel
autotrace
avahi-devel
bind-devel
binutils-devel
bison
boost-devel
bzip2-devel
ccache
ccrtp-devel
cdparanoia
cdparanoia-devel
chmlib-devel
chrpath
clamav
clamav-devel
clucene-core-devel
cmake
commoncpp2-devel
cpp
cppunit-devel
createrepo
cryptsetup-luks-devel
cups-devel
db4-devel
dbus-glib-devel
djvulibre
djvulibre-devel
doxygen
e2fsprogs-devel
emacs
esound-devel
exempi-devel
exiv2-devel
fdupes
ffmpeg-devel
fftw-devel
file-devel
flac-devel
flex-devel
fontpackages-devel
fribidi-devel
gamin-devel
gcc
gcc-c++
gcc-gfortran
gcc-java
gettext-devel
glib-devel
gmp-devel
gnokii-devel
gperf
gpgme-devel
gphoto2-devel
GraphicsMagick-devel
gsl-devel
gstreamer-devel
gstreamer-plugins-base-devel
gtk2-devel
gtk+-devel
gtk-doc
guile-devel
hal-devel
heimdal-devel
hspell-devel
htdig
html2ps
icu
ImageMagick-devel
imake
imlib-devel
imlib2-devel
intltool
jack-audio-connection-kit-devel
jasper-devel
java-1.4.2-gcj-compat-devel
java-1.6.0-openjdk-devel
java-1.7.0-openjdk-devel
java-devel
java-openjdk
lame-devel
lcms-devel
libacl-devel
libarchive-devel
libart_lgpl-devel
libblkid-devel
libcap-devel
libcdio-devel
libconfig-devel
libcurl-devel
libdvdread-devel
libfontenc-devel
libgcj-devel
libgpod-devel
libgsf-devel
libgssapi-devel
libical-devel
libidn-devel
liblo-devel
libmad-devel
libmng-devel
libmp4v2-devel
libmpcdec-devel
libmtp-devel
libmusicbrainz-devel
libofx-devel
libogg-devel
libotr-devel
libpaper-devel
libraw1394-devel
libsamplerate-devel
libsmbclient-devel
libsndfile-devel
libssh2-devel
libtheora-devel
libtiff-devel
libtool
libtool-ltdl-devel
libudev-devel
libutempter-devel
libv4l-devel
libvisual-devel
libvorbis-devel
libwmf-devel
libwpd-devel
libXaw-devel
libXcomposite-devel
libXdamage-devel
libXdmcp-devel
libxkbfile-devel
libXScrnSa
libXScrnSaver-devel
libxslt-devel
libXtst-devel
libXv-devel
libXxf86dga-devel
libXxf86vm-devel
libzrtpcpp-devel
lirc-devel
lm_sensors-devel
meanwhile-devel
mysql-devel
nas-devel
neon-devel
netpbm-progs
net-snmp-devel
net-tools
NetworkManager-glib-devel
ocaml
ocaml(compiler)
OpenEXR-devel
openldap-devel
opensc
openslp-devel
opensp-devel
pam-devel
pciutils-devel
pcre-devel
pcsc-lite-devel
perl
perl-devel
perl(ExtUtils::MakeMaker)
perl(XML::Parser)
pilot-link-devel
pkcs11-helper-devel
poppler-devel
postgresql-devel
pth-devel
pulseaudio-libs-devel
recode
redhat-rpm-config
rpm-build
ruby
ruby-devel
sane-backends-devel
scons
SDL-devel
sip-devel
speex-devel
sqlite-devel
subversion-devel
sudo
sword-devel
t1lib-devel
t1utils
taglib-devel
tar
texinfo
texlive-utils
transfig
udisks-devel
unixODBC-devel
usbutils
valgrind
ver-devel
wireless-tools-devel
xine-lib-devel
xmlto
xorg-x11-font-utils
xscreensaver
xscreensaver-extras
xulrunner-devel
xz-devel

@ -0,0 +1,5 @@
[dag]
name=dag
baseurl=http://repo/repo/repoforge/redhat/el6/en/$basearch/dag/
enabled=1
gpgcheck=0

@ -0,0 +1,11 @@
[rpmbuild.${ARCH}]
name=rpmbuild.${ARCH}
baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/${ARCH}
enabled=1
gpgcheck=0
[rpmbuild.noarch]
name=rpmbuild.noarch
baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/noarch
enabled=1
gpgcheck=0

@ -0,0 +1,5 @@
%dist .el6
%rhel 6
%_smp_mflags -j8
%jobs 8
%_topdir /home/trinity/rpmbuild
Loading…
Cancel
Save