Closed JK-STFC closed 7 years ago
You can find the dependencies in http://packages.onedata.org/, http://repo.indigo-datacloud.eu/repository/indigo/1/centos7/x86_64/third-party/, and soon also i nINDIGO-2 repositories.
@JK-STFC did you manage to resolve your issue thanks to @caifti suggestion?
Not yet, no. I've been busy trying to install the various OneData components with Matt Viljoen today and yesterday.
I might be able to take a look next week, but I did take a quick look and I wasn't certain how the reply helps. The reply gave 3 locations where I could download things from.
The message from the SWAMP guys stated that they couldn't find it in any of the standard repositories – which are used when building things inside SWAMP.
What commands would be used to download the bits that were missing in my message? There might be a chance of putting them in a preamble or something like that. SWAMP normally takes dependencies as a list of packages and it installs them from the most appropriate place for the chosen OS, but it might be possible to put them in a preamble or something like that – but I'd need to know the commands for each of the platforms – CentOS and Ubuntu 16.04. Maybe if these are non-standard packages they could be included with Oneclient.
Cheers
JK
From: Michal Orzechowski [mailto:notifications@github.com] Sent: Tuesday, April 25, 2017 7:04 AM To: indigo-dc/onedata Cc: Kewley, John (STFC,DL,SC); Mention Subject: Re: [indigo-dc/onedata] Building onceclient for SWAMP (#18)
@JK-STFChttps://github.com/JK-STFC did you managed to resolve your issue thanks to @caiftihttps://github.com/caifti suggestion?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/indigo-dc/onedata/issues/18#issuecomment-296921301, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQwk2VYoCvSn3-4kfbjVL35pRvtOmBfFks5rzYzRgaJpZM4NB9Q5.
As suggested just deploy the INDIGO repositories, either installing the indigodc-release
package (centos7 [1], ubuntu [2]) or via ansible [3] or puppet [4]. Double check that the third-party repository is enabled.
[1] rpm -ivh http://repo.indigo-datacloud.eu/repository/indigo/1/centos7/x86_64/base/indigodc-release-1.0.0-1.el7.centos.noarch.rpm
[2] wget http://repo.indigo-datacloud.eu/repository/indigo/1/ubuntu/dists/trusty/main/binary-amd64/indigodc-release_1.0.0-1_amd64.deb && dpkg -i indigodc-release_1.0.0-1_amd64.deb
[3] https://github.com/indigo-dc/ansible-role-indigo-repo
[4] https://github.com/indigo-dc/puppet-indigo-repo
SWAMP is building from source to help its static analyses - it doesn't run the s/w so installing from a repository isn't what is needed, unless I misunderstand what you are saying.
And BTW sorry to Cristina and Michel for not responding earlier, but the responses to this ticket have been going in my Junk Email folder (probably because it looks like it is coming from a robot [because it is], but pretending to come from a person's name).
Dear John,
below is a complete Dockerfile for creating a container which we use in our CI to compile Oneclient, including commands to add our development repositories at :
FROM ubuntu:16.04
# Get the image up to date
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get install -y apt-transport-https curl && \
apt-get clean
# Add additional package sources (couchbase, docker, onedata official repo and deps ppa)
RUN curl -L http://packages.couchbase.com/ubuntu/couchbase.key | apt-key add - && \
curl -o /etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1404.list && \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > /etc/apt/sources.list.d/docker.list && \
curl -L http://onedata-dev-packages.cloud.plgrid.pl/onedata.gpg.key | apt-key add - && \
echo "deb http://onedata-dev-packages.cloud.plgrid.pl/apt/ubuntu/xenial xenial main" >> /etc/apt/sources.list.d/onedata.list && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C211375C && \
echo "deb http://ppa.launchpad.net/onedata/ceph/ubuntu xenial main" >> /etc/apt/sources.list.d/onedata.list && \
echo "deb http://ppa.launchpad.net/onedata/build-deps/ubuntu xenial main" >> /etc/apt/sources.list.d/onedata.list
# Install basic packages
RUN apt-get update && \
apt-get install -y bindfs build-essential coffeescript curl dnsutils \
docker-engine=1.12.0-0~xenial erlang erlang-base-hipe \
fuse gdb git iputils-ping lcov libcurl4-openssl-dev \
libdouble-conversion1v5 libboost-context1.58.0 \
libboost-filesystem1.58.0 libboost-iostreams1.58.0 \
libboost-log1.58.0 libboost-program-options1.58.0 \
libboost-random1.58.0 libboost-system1.58.0 \
libboost-thread1.58.0 libbotan1.10 libcouchbase-dev \
libgflags2v5 libglobus-common0 libglobus-gsi-callback0 \
libglu1 libgoogle-glog0v5 libnspr4 libnss3 libpoco-dev \
libpocofoundation9v5 libpoconetssl9v5 libpocoutil9v5 \
libpocoxml9v5 libprotobuf9v5 librados2 libsodium18 \
libtbb2 nodejs openssl python python-dev \
python-protobuf python-rados python-setuptools rsync \
rrdtool unzip nfs-common && \
apt-get clean
# Sidestep an error of Erlang's reltool
RUN rm /usr/lib/erlang/man
# Install required Python packages
RUN easy_install dnspython Flask Flask-SQLAlchemy pytest==2.9.1 \
pytest-bdd==2.18.0 requests boto rpyc
# Install npm, Ember-CLI and all required packages
RUN npm install -g bower ember-cli jsdoc livereload phantomjs-prebuilt && \
npm cache clean
# Install rebar3
RUN curl -L https://github.com/erlang/rebar3/releases/download/3.2.0/rebar3 \
-o /usr/local/bin/rebar3 && \
chmod +x /usr/local/bin/rebar3
# Add cert bundle (required for server cert validation)
ADD ca-bundle.pem /etc/ssl/cert.pem
# Use caches
RUN mkdir /var/cache/rebar3 && chmod 777 /var/cache/rebar3
VOLUME ["/var/cache/rebar3"]
ADD rebar.config /etc/skel/.config/rebar3/rebar.config
ADD rebar.config /root/.config/rebar3/rebar.config
# Set up the environment
ENV HOME /root
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Install development packages
RUN apt-get update && \
apt-get install -y autoconf aws-sdk-cpp-s3 bash-completion bc \
build-essential ccache cmake debhelper devscripts \
doxygen folly-dev g++ golang-go libboost-all-dev \
libbotan1.10-dev libfuse-dev libgflags-dev \
libglobus-common-dev libglobus-gsi-callback-dev \
libgoogle-glog-dev libiberty-dev libltdl-dev \
libnspr4-dev libnss3-dev libprotobuf-dev libpython-dev \
librados-dev libstdc++-4.9-dev libsodium-dev libtbb-dev \
nano ninja-build pkg-config protobuf-compiler \
python-sphinx vim rpm subversion swift-sdk-cpp jekyll && \
apt-get clean
# Use caches
RUN mkdir /var/cache/ccache && chmod 777 /var/cache/ccache
VOLUME ["/var/cache/ccache"]
ENV CCACHE_DIR /var/cache/ccache
ENV CCACHE_UMASK 000
RUN ln -s `which ccache` /usr/local/bin/gcc && \
ln -s `which ccache` /usr/local/bin/g++ && \
ln -s `which ccache` /usr/local/bin/cc && \
ln -s `which ccache` /usr/local/bin/c++
Then to compile Oneclient, you need to follow these steps:
export ONEDATA_GIT_URL=https://github.com/onedata
git clone https://github.com/onedata/oneclient.git
cd oneclient
make release # or debug
Hope this helps...
Bartosz
Yet again it ended up in my Junk Email folder so I missed it.
Wow that is a LOT of setup!
The other services I've been testing you just need to do something like
Is all that stuff below what we do to push oneclient through the other tests we do on Jenkins?
You can add add a few commands to SWAMP to get it to download additional stuff, but it is basically a one-liner and putting all that stuff below on one line might be challenging.
Cheers
JK
From: Bartek Kryza [mailto:notifications@github.com] Sent: Wednesday, April 26, 2017 12:19 PM To: indigo-dc/onedata Cc: Kewley, John (STFC,DL,SC); Mention Subject: Re: [indigo-dc/onedata] Building onceclient for SWAMP (#18)
Dear John, below is a complete Dockerfile for creating a container which we use in our CI to compile Oneclient, including commands to add our development repositories at : FROM ubuntu:16.04
RUN apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y apt-transport-https curl && \ apt-get clean
RUN curl -L http://packages.couchbase.com/ubuntu/couchbase.key | apt-key add - && \ curl -o /etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1404.list && \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > /etc/apt/sources.list.d/docker.list && \
curl -L http://onedata-dev-packages.cloud.plgrid.pl/onedata.gpg.key | apt-key add - && \
echo "deb http://onedata-dev-packages.cloud.plgrid.pl/apt/ubuntu/xenial xenial main" >> /etc/apt/sources.list.d/onedata.list && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C211375C && \
echo "deb http://ppa.launchpad.net/onedata/ceph/ubuntu xenial main" >> /etc/apt/sources.list.d/onedata.list && \
echo "deb http://ppa.launchpad.net/onedata/build-deps/ubuntu xenial main" >> /etc/apt/sources.list.d/onedata.list
RUN apt-get update && \ apt-get install -y bindfs build-essential coffeescript curl dnsutils \ docker-engine=1.12.0-0~xenial erlang erlang-base-hipe \ fuse gdb git iputils-ping lcov libcurl4-openssl-dev \ libdouble-conversion1v5 libboost-context1.58.0 \ libboost-filesystem1.58.0 libboost-iostreams1.58.0 \ libboost-log1.58.0 libboost-program-options1.58.0 \ libboost-random1.58.0 libboost-system1.58.0 \ libboost-thread1.58.0 libbotan1.10 libcouchbase-dev \ libgflags2v5 libglobus-common0 libglobus-gsi-callback0 \ libglu1 libgoogle-glog0v5 libnspr4 libnss3 libpoco-dev \ libpocofoundation9v5 libpoconetssl9v5 libpocoutil9v5 \ libpocoxml9v5 libprotobuf9v5 librados2 libsodium18 \ libtbb2 nodejs openssl python python-dev \ python-protobuf python-rados python-setuptools rsync \ rrdtool unzip nfs-common && \ apt-get clean
RUN rm /usr/lib/erlang/man
RUN easy_install dnspython Flask Flask-SQLAlchemy pytest==2.9.1 \ pytest-bdd==2.18.0 requests boto rpyc
RUN npm install -g bower ember-cli jsdoc livereload phantomjs-prebuilt && \ npm cache clean
RUN curl -L https://github.com/erlang/rebar3/releases/download/3.2.0/rebar3 \ -o /usr/local/bin/rebar3 && \ chmod +x /usr/local/bin/rebar3
ADD ca-bundle.pem /etc/ssl/cert.pem
RUN mkdir /var/cache/rebar3 && chmod 777 /var/cache/rebar3 VOLUME ["/var/cache/rebar3"]
ADD rebar.config /etc/skel/.config/rebar3/rebar.config ADD rebar.config /root/.config/rebar3/rebar.config
ENV HOME /root RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8
RUN apt-get update && \ apt-get install -y autoconf aws-sdk-cpp-s3 bash-completion bc \ build-essential ccache cmake debhelper devscripts \ doxygen folly-dev g++ golang-go libboost-all-dev \ libbotan1.10-dev libfuse-dev libgflags-dev \ libglobus-common-dev libglobus-gsi-callback-dev \ libgoogle-glog-dev libiberty-dev libltdl-dev \ libnspr4-dev libnss3-dev libprotobuf-dev libpython-dev \ librados-dev libstdc++-4.9-dev libsodium-dev libtbb-dev \ nano ninja-build pkg-config protobuf-compiler \ python-sphinx vim rpm subversion swift-sdk-cpp jekyll && \ apt-get clean
RUN mkdir /var/cache/ccache && chmod 777 /var/cache/ccache
VOLUME ["/var/cache/ccache"]
ENV CCACHE_DIR /var/cache/ccache
ENV CCACHE_UMASK 000
RUN ln -s which ccache
/usr/local/bin/gcc && \
ln -s which ccache
/usr/local/bin/g++ && \
ln -s which ccache
/usr/local/bin/cc && \
ln -s which ccache
/usr/local/bin/c++
Then to compile Oneclient, you need to follow these steps:
export ONEDATA_GIT_URL=https://github.com/onedata
git clone https://github.com/onedata/oneclient.git
cd oneclient
make release # or debug
Hope this helps...
Bartosz
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
I'm closing this issue, hoping it was resolved. Please file another and reference it, if needed.
I'm having trouble building oneclient for the SWAMP analysis (as described in Lisbon).
The SWAMP guys have given me this info - is this correct? If so, how do we normally build it under Jenkins?
JK
The package 'oneclient' from github does not build trivially; it requires that other software, not commonly available in standard repositories, be installed and available on a system.
Details follow:
oneclient requires one mandatory package
and two optional packages to build
I've omitted the additional (quite recent) version constraints on those packages.
These packages are not available from standard repositories; they need to be configured and installed on a system before oneclient can be compiled.
I've examined this package on several of our more recent platforms:
I have not located the necessary packages in the standard repositories for those platforms, nor in common alternate repositories.