Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
mediaconch_plugin4rosetta
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Harbor Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Digital Preservation
mediaconch_plugin4rosetta
Commits
7b5aba34
Commit
7b5aba34
authored
5 years ago
by
Andreas Romeyke
Browse files
Options
Downloads
Plain Diff
Merge branch 'feature_dockerscript_mediaconch_redhat6'
parents
23d2d00d
27f9e8d0
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
deploy_mediaconch/Dockerfile
+172
-0
172 additions, 0 deletions
deploy_mediaconch/Dockerfile
with
172 additions
and
0 deletions
deploy_mediaconch/Dockerfile
0 → 100644
+
172
−
0
View file @
7b5aba34
FROM
centos:6.10
MAINTAINER
Andreas Romeyke <romeyke@slub-dresden.de>
# based on https://hub.docker.com/r/rpmbuild/centos6/
## next steps needed because deprecated certificates
RUN
yum clean all
-y
RUN
yum check
-y
RUN
yum update ca-certificates
-y
RUN
yum upgrade
-y
## install base environment
RUN
yum
install
-v
-y
libtool
RUN
yum
install
-v
-y
libtool-ltdl
RUN
yum
install
-v
-y
make cmake
RUN
yum
install
-v
-y
pkgconfig
RUN
yum
install
-v
-y
sudo
RUN
yum
install
-v
-y
automake autoconf
RUN
yum
install
-v
-y
wget
RUN
yum
install
-v
-y
yum-utils rpm-build
RUN
wget http://people.centos.org/tru/devtools-2/devtools-2.repo
-O
/etc/yum.repos.d/devtools-2.repo
# git [devtools-2] (1.8.4) for "rev-list --count" feature, git [centos6] (1.7.1) too old
RUN
yum
install
-y
devtoolset-2-git
RUN
ln
-s
/opt/rh/devtoolset-2/root/usr/bin/git /usr/bin/git
RUN
yum
install
-y
devtoolset-2-gcc devtoolset-2-binutils
RUN
yum
install
-y
devtoolset-2-gcc-c++ devtoolset-2-libstdc++-devel devtoolset-2-toolchain
#RUN yum install -y devtoolset-2
RUN
scl
enable
devtoolset-2 bash
RUN
yum
install
-v
-y
tree
RUN
yum
install
-v
-y
autoconf automake libtool pkgconfig
RUN
yum
install
-v
-y
zlib-devel libsqlite-devel
RUN
yum
install
-v
-y
python-devel
## add user environment
RUN
useradd builder
-u
1000
-m
-G
users
,wheel
&&
\
echo
"builder ALL=(ALL:ALL) NOPASSWD:ALL"
>>
/etc/sudoers
&&
\
echo
"# macros"
>
/home/builder/.rpmmacros
&&
\
echo
"%_topdir /home/builder/rpm"
>>
/home/builder/.rpmmacros
&&
\
echo
"%_sourcedir %{_topdir}"
>>
/home/builder/.rpmmacros
&&
\
echo
"%_builddir %{_topdir}"
>>
/home/builder/.rpmmacros
&&
\
echo
"%_specdir %{_topdir}"
>>
/home/builder/.rpmmacros
&&
\
echo
"%_rpmdir %{_topdir}"
>>
/home/builder/.rpmmacros
&&
\
echo
"%_srcrpmdir %{_topdir}"
>>
/home/builder/.rpmmacros
&&
\
mkdir
/home/builder/rpm
&&
\
chown
-R
builder /home/builder
USER
builder
RUN
scl
enable
devtoolset-2 bash
ENV
FLAVOR=rpmbuild OS=centos DIST=el6 CC=/opt/rh/devtoolset-2/root/usr/bin/gcc CXX=/opt/rh/devtoolset-2/root/usr/bin/g++
ENV
CXXFLAGS="-O3"
CMD
/srv/pkg
WORKDIR
/home/builder/
ENV
DISTDIR=/home/builder/distribution/usr/local
RUN
mkdir
-p
$DISTDIR
# get and compile libxml2, because RHEL uses outdated and errorneous version
# we disabled python support and building static variants only
RUN
wget
-np
https://gitlab.gnome.org/GNOME/libxml2/-/archive/master/libxml2-master.tar.gz
RUN
tar
xfz libxml2-master.tar.gz
RUN
cd
libxml2-master
&&
./autogen.sh
RUN
cd
libxml2-master
&&
./configure
--help
RUN
cd
libxml2-master
&&
\
./configure
--prefix
=
$DISTDIR
--without-python
--disable-shared
--enable-static
&&
\
make
-j
&&
\
make
install
ENV
PATH=$PATH:$DISTDIR/bin
RUN
echo
$PATH
# get and compile libxslt, because RHEL uses outdated and errorneous version
# the configure-script must be patched, because empty else branch somewhere
# also we disabled python support and crypto and building static variants only
RUN
wget
-np
https://gitlab.gnome.org/GNOME/libxslt/-/archive/master/libxslt-master.tar.gz
RUN
tar
xfz libxslt-master.tar.gz
RUN
cd
libxslt-master
&&
./autogen.sh
RUN
cd
libxslt-master
&&
./configure
--help
# patch errorneous configure
RUN
cd
libxslt-master
&&
sed
-i
-e
"16135s/.*/echo nothing/"
configure
RUN
cd
libxslt-master
&&
(
cat
-n
configure |
head
-n
16143 |
tail
-n
10
)
RUN
cd
libxslt-master
&&
\
./configure
--prefix
=
$DISTDIR
--without-python
--without-crypto
\
--disable-shared
--enable-static
\
--with-libxml-src
=
/home/builder/libxml2-master
\
--with-libxml-prefix
=
$DISTDIR
/bin
\
--with-libxml-include-prefix
=
$DISTDIR
/include
\
--with-libxml-libs-prefix
=
$DISTDIR
/lib
&&
\
make
-j
&&
\
make
install
# get and compile libzen
RUN
git clone https://github.com/MediaArea/ZenLib.git
# next lines only usefull if mediaconch build with cmake
#RUN cd ZenLib && \
# mkdir build &&\
# cd build &&\
# cmake ../Project/CMake -DCMAKE_INSTALL_PREFIX=$DISTDIR &&\
# make -j &&\
# make install
# we patched autogen.sh and configure.ac because precedence of user settings is broken
# also we building static variants only
RUN
cd
ZenLib
&&
\
cd
Project/GNU/Library
&&
\
sed
-e
"s/-O2/-O3/g"
-i
autogen.sh
&&
\
sed
-e
"s/-O2/-O3/g"
-i
configure.ac
&&
\
./autogen.sh
RUN
cd
ZenLib/Project/GNU/Library
&&
\
./configure
--prefix
=
$DISTDIR
--disable-shared
--enable-static
&&
\
make
-j
&&
\
make
install
ENV
ZenLibDir $DISTDIR
# get and compile libmediainfo
RUN
git clone https://github.com/MediaArea/MediaInfoLib.git
# next lines only usefull if mediaconch build with cmake
#RUN cd MediaInfoLib &&\
# mkdir build &&\
# cd build &&\
# cmake ../Project/CMake -DCMAKE_INSTALL_PREFIX=$DISTDIR &&\
# make -j &&\
# make install
# we patched autogen.sh and configure.ac because precedence of user settings is broken
# also we building static variants only
RUN
cd
MediaInfoLib
&&
\
cd
Project/GNU/Library
&&
\
sed
-e
"s/-O2/-O3/g"
-i
autogen.sh
&&
\
sed
-e
"s/-O2/-O3/g"
-i
configure.ac
&&
\
./autogen.sh
RUN
cd
MediaInfoLib/Project/GNU/Library/
&&
\
./configure
--prefix
=
$DISTDIR
--disable-shared
--enable-static
&&
\
make
-j
&&
\
make
install
# because Mediaconch configure script expects libml2 and libxslt as hardcoded
# names, we set symlinks
RUN
ln
-s
libxml2-master libxml2
RUN
ln
-s
libxslt-master libxslt
# get and compile mediaconch
RUN
git clone https://github.com/MediaArea/MediaConch_SourceCode.git
#cmake ../Project/CMake -DCMAKE_INSTALL_PREFIX=$DISTDIR &&\
# we patched autogen.sh and configure.ac because precedence of user settings is broken
# also we building static variants only
# HINT: the -lrt switch is needed for RHEL6, because glibc is outdated
RUN
cd
MediaConch_SourceCode
&&
\
cd
Project/GNU/CLI
&&
\
sed
-e
"s/-O2/-O3/g"
-i
autogen.sh
&&
\
sed
-e
"s/-O2/-O3/g"
-i
configure.ac
&&
\
./autogen.sh
RUN
cd
MediaConch_SourceCode/Project/GNU/CLI/
&&
\
./configure
--help
RUN
cd
MediaConch_SourceCode/Project/GNU/CLI/
&&
\
CXXFLAGS
=
"-O3 -I
$DISTDIR
/include -L/lib -L/lib64 -lrt -L
$DISTDIR
/lib -L
$DISTDIR
/lib64"
\
./configure
--prefix
=
$DISTDIR
--without-sqlite
--without-jansson
\
--without-libevent
--disable-shared
--enable-static
--enable-staticlibs
RUN
cd
MediaConch_SourceCode/Project/GNU/CLI/
&&
\
make
-j
&&
\
make
install
RUN
tree
$DISTDIR
RUN
cd
$DISTDIR
/../../
&&
tar
-cz
-f
/tmp/mediaconch.tgz
*
RUN
ls
-lha
/tmp/
RUN
echo
"Finished, in /tmp/mediaconch.tgz should be the binary found"
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment