RPM packaging: add docker build scripts for PCLinuxOS

pull/3/head
François Andriot 7 years ago
parent df20fa92cb
commit 86cba2fbb6

@ -0,0 +1,173 @@
#!/bin/bash
NAME="pclinuxos"
VERSION="$1" # E.g: '26'
IMAGE="${NAME}:${VERSION}"
INSTALLROOT="/dev/shm/${IMAGE}"
sudo rm -rf "${INSTALLROOT}"
sudo mkdir -p "${INSTALLROOT}"
MIRROR="http://distrib-coffee.ipsl.jussieu.fr/pub/linux/pclinuxos/pclinuxos/apt/pclinuxos/64bit"
cd /dev/shm
wget -c \
"${MIRROR}/RPMS.x86_64/bash-4.3-48.1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/glibc-2.20-10pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rpm-4.8.1-10pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64readline6-6.3-4pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ncurses5-5.9-9pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rpm-helper-0.23.5-1pclos2015.noarch.rpm" \
"${MIRROR}/RPMS.x86_64/mktemp-1.7-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/setup-2.7.17-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/findutils-4.6.0-3pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/run-parts-3.2.1-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/shadow-utils-4.1.4.2-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/coreutils-8.27-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/chkconfig-1.3.37-4pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ncursesw5-5.9-9pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/gawk-4.1.2-1pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64rpm1-4.8.1-10pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/cpio-2.11-3pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/gawk-4.1.2-1pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/grep-2.28-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rpm-rambo-setup-1.1-2pclos2017.noarch.rpm" \
"${MIRROR}/RPMS.x86_64/rpm-pclinuxos-setup-1.135-4pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64popt0-1.16-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64tcb0-1.0.3-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64pam_userpass1-1.0.2-2pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/pam_tcb-1.0.3-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64lzma5-5.2.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/bzip2-1.0.6-2pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64audit1-2.1.2-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/update-alternatives-1.9.0-1pclos2011.noarch.rpm" \
"${MIRROR}/RPMS.x86_64/zlib1-1.2.10-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64bzip2_1-1.0.6-2pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/util-linux-ng-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64acl1-2.2.51-1pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64attr1-2.4.46-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64cap2-2.25-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64gmp10-6.1.2-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/info-install-5.0-2pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rmt-0.4b46-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64mpfr4-3.1.4-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64sigsegv2-2.10-2pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/dash-static-0.5.6.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/filesystem-2.1.9-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/dash-static-0.5.6.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64pcre2_0-10.23-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64pcre1-8.36-1pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/xz-5.2.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/ncurses-5.9-9pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/libgcc1-4.9.2-2pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/libstdc++6-4.9.2-2pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64uuid1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64udev0-168-6pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64smartcols1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64mount1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64fdisk1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64libcap-ng0-0.7.7-1pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64blkid1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/udev-168-6pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64iso9660_7-0.93-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64blkid1-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/diffutils-3.3-1pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64usb1.0_0-1.0.21-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/openssl-1.0.2l-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64cdio12-0.93-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64pcre-compatible0-8.21-1pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/popt-data-1.16-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64db4.8-4.8.30-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64elfutils1-0.166-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64lua5.1-5.1.5-1pclos2012.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64magic1-5.31-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64nspr4-4.14-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64nss3-3.28.4-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64sqlite3_0-3.1070-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rootcerts-20170401.00-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/ldetect-lst-0.2.8-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/nss-3.28.4-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/perl-base-5.22.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/gzip-1.8-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/usbutils-007-1pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64notify4-0.7.7-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/less-487-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64glib2.0_0-2.52.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64gio2.0_0-2.52.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/gdk-pixbuf2.0-2.36.7-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/tcb-1.0.3-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/pkgconfig-0.29-1pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64openssl1.0.0-1.0.2l-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/common-licenses-1.0-14pclos2017.noarch.rpm" \
"${MIRROR}/RPMS.x86_64/lib64gdk_pixbuf2.0_0-2.36.7-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64notify4-0.7.7-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/file-5.31-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ffi6-3.2.1-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/perl-5.22.3-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64tiff3-3.9.5-2pclos2012.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/libnotify-0.7.7-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64x11_6-1.6.5-2.1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64jasper1-1.900.1-3pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64jpeg8-1.4.2-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64png3-1.2.57-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/libxcb-1.12-3.1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64gdbm3-1.8.3-5pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/nss_tcb-1.0.3-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64usb-compat0.1_4-0.1.5-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64tiff5-4.0.6-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64openssl-engines1.0.0-1.0.2l-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64xau6-1.0.8-3.1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64xdmcp6-1.1.2-3.1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64jbig1-2.0-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64bsd0-0.8.3-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64icu56-56.1-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/icu56-data-56.1-1pclos2016.noarch.rpm" \
"${MIRROR}/RPMS.x86_64/lib64jpeg62-6b-48pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/cracklib-dicts-2.9.1-1pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64crack2-2.9.1-1pclos2014.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64dbnss4.8-4.8.30-1pclos2011.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/apt-0.5.15lorg3.95-10pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/gnupg-1.4.22-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64apt-pkg0-0.5.15lorg3.95-10pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/apt-sources-list-1.2-7pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64curl4-7.54.0-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ldap2.4_2-2.4.23-3pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/apt-common-0.5.15lorg3.95-10pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64xml2_2-2.9.4-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64rtmp1-2.4-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ssh2_1-1.6.0-1pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/openldap-2.4.23-3pclos2015.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64sasl2-2.1.23-3pclos2013.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64krb53-1.15.1-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/krb5-1.15.1-2pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64keyutils1-1.2-6pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64verto1-0.2.6-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64ext2fs2-1.43.1-2pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/e2fsprogs-1.43.1-2pclos2016.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/uuidd-2.30.1-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/lib64audit-devel-2.1.2-3pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/glibc-devel-2.20-10pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/glibc-headers-devel-4.9.4-1pclos2017.x86_64.rpm" \
"${MIRROR}/RPMS.x86_64/rpm-pclinuxos-setup-1.135-5pclos2017.x86_64.rpm" \
"http://ftp.nluug.nl/pub/os/Linux/distr/pclinuxos/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64/lib64pam0-1.1.4-1pclos2011.x86_64.rpm" \
"http://ftp.nluug.nl/pub/os/Linux/distr/pclinuxos/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64/pam-1.1.4-1pclos2011.x86_64.rpm" \
"http://ftp.nluug.nl/pub/os/Linux/distr/pclinuxos/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64/lib64pam-devel-1.1.4-1pclos2011.x86_64.rpm" \
"http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/6/x86_64/media/core/release//fdupes-1.51-6.mga6.x86_64.rpm" \
sudo mkdir -p "${INSTALLROOT}/var/lib/rpm"
sudo rpmdb --initdb --root="${INSTALLROOT}"
sudo rpm -Uvh \
--root="${INSTALLROOT}" \
*.rpm
cd -
sudo chroot "${INSTALLROOT}" rpmdb --rebuilddb
sudo chroot "${INSTALLROOT}" rpmdb --rebuilddb
sudo tar -C "${INSTALLROOT}" -c . >"${IMAGE}.tar"
sudo rm -rf "${INSTALLROOT}"
docker rmi -f "${IMAGE}"
docker import "${IMAGE}.tar" "${IMAGE}"

@ -0,0 +1,32 @@
FROM pclinuxos:2017
ARG TDE_VERSION=14.0.4
ARG ARCH=x86_64
# Update distribution
RUN apt-get -y update
RUN apt-get -y dist-upgrade
# Install Trinity build dependencies
ADD packages.${ARCH} /etc/apt/packages
RUN apt-get -y install $(</etc/apt/packages)
# Add rpmbuild repositories
ADD rpmbuild.list /etc/apt/sources.list.d/rpmbuild.list
RUN sed -i "/etc/apt/sources.list.d/rpmbuild.list" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
# Add non-root user to build packages
RUN rm -rf /home/trinity
RUN useradd -m -s /bin/bash -u 1000 trinity
RUN echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
ADD rpmmacros /home/trinity/.rpmmacros
# Fix SUDO configuration
RUN sed -i "/etc/pam.d/sudo" -e "/pam_limits.so/ s|^|#|"
# Fix missing '.la' files
ADD genla.sh /usr/bin/genla.sh
RUN genla.sh libbluetooth && mv /usr/lib64/libbluetooth.la /lib64
RUN genla.sh libjpeg
RUN genla.sh liblcms
RUN genla.sh libusb-1.0 && mv /usr/lib64/libusb-1.0.la /lib64 && cp /lib64/libusb-1.0.la /lib64/libusb.la

@ -6,14 +6,19 @@ binutils-devel
bison
boost-devel
ccache
cdparanoia
chmlib-devel
chrpath
cmake
cups-devel
desktop-file-utils
djvulibre
docbook-style-xsl
doxygen
drakconf
dssi-devel
esound-devel
exempi-devel
fdupes
file-devel
firebird-devel
@ -38,6 +43,7 @@ htdig
ImageMagick-devel
imake
java-devel
lib64cryptsetup-devel
lib64dvdread-devel
lib64exiv2-devel
lib64gif-devel
@ -45,6 +51,7 @@ lib64inotifytools-devel
lib64iw29-devel
lib64mpcdec-devel
lib64OpenSP5-devel
lib64pkcs11-helper-devel
lib64poppler-devel
lib64readline-devel
lib64sane1-devel
@ -52,6 +59,7 @@ lib64usb1.0-devel
lib64usb-compat0.1-devel
lib64wv2-devel
lib64xaw-devel
lib64xine1.2-devel
lib64yaz-devel
libcap-devel
libcdda-devel
@ -79,14 +87,18 @@ libmtp-devel
libmusicbrainz-devel
libnjb-devel
libnm-util-devel
libofa-devel
libofx-devel
libotr-devel
libpaper-devel
libpng-devel
libpqxx-devel
libpthread-stubs
libpulseaudio-devel
libqalculate-devel
libraw1394-devel
librsvg
librsync-devel
libsmbclient-devel
libsm-devel
libt1lib-devel
@ -103,7 +115,7 @@ libxcursor-devel
libxext-devel
libxft-devel
libxi-devel
libxine-devel
lib64xine1.2-devel
libxinerama-devel
libxkbfile-devel
libxmu-devel
@ -123,6 +135,7 @@ NetworkManager-glib-devel
ocaml
OpenEXR-devel
openldap-devel
opensc
openslp-devel
pam-devel
perl-devel
@ -131,6 +144,9 @@ postgresql
postgresql-devel
pth-devel
python-devel
python-rpm
recode
rpm-build
rpm-devel
ruby-devel
scons
@ -139,6 +155,7 @@ speex-devel
sqlite3-devel
sqlite-devel
subversion-devel
sudo
sword-devel
taglib-devel
transfig
@ -146,7 +163,9 @@ udisks2-devel
unixODBC-devel
utempter-devel
valgrind
vim-enhanced
x11-font-util
xscreensaver
xscreensaver-base
xscreensaver-extrusion
xscreensaver-gl

@ -0,0 +1 @@
rpm file:/home/trinity/rpmbuild RPMS.tde-${TDE_VERSION} ${ARCH} noarch

@ -0,0 +1,4 @@
%dist .pclos2017
%_smp_mflags -j8
%jobs 8
%pclinuxos 2017
Loading…
Cancel
Save