Hello Jochen,

I think that’s useful with the container. I would shift it relative to the 
source project, then you don’t need the wget and git clone but can use 
copy;mount to provide the source from the current version.

But that’s probably not related to the problems you encounter.

Gruss
Bernd


--
http://bernd.eckenfels.net
________________________________
Von: Jochen Wiedmann <jochen.wiedm...@gmail.com>
Gesendet: Wednesday, May 18, 2022 4:59:43 PM
An: Apache Commons Developers List <dev@commons.apache.org>
Betreff: [Crypto] How to build?

Hi,

I recently had the questionable pleasure to get in touch with Commons
Crypto, and could not build it. There are some instructions in the
BUILDING.txt file, but they aren't really helpful. In case, you don't
know: Crypto is not a simple Java library. Instead, it requires
building some shared libraries from C sources, that are being added to
the jar file.

The main problem here: We do not have something like a fully automated
build procedure, that

  a) ensures that the requirements are met, and then
  b) performs all the necessary steps for building that jar file.

Thinking about that, I came up with the idea, that we could add a
Dockerfile to the sources, that could then be used with some simple
commands, like

    docker image build -t apache/commons-crypto:1.1.1-SNAPSHOT
    docker container run --name mycrypto apache/commons-crypto:1.1.1-SNAPSHOT
    docker container cp
"mycrypto:/usr/local/build/commons-crypto/target/*.jar" .

(Not sure, that these might actually work, Docker beginner.)

So, I started working with the Docker file below: Unfortnately, that fails with
    > [22/23] RUN VERSION=1.1.1-SNAPSHOT
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 make:
    #26 0.624 Error: Could not find or load main class
org.apache.commons.crypto.OsInfo
    #26 0.697 Error: Could not find or load main class
org.apache.commons.crypto.OsInfo
    #26 0.778 Error: Could not find or load main class
org.apache.commons.crypto.OsInfo
    #26 0.790 make: *** No rule to make target
'target/jni-classes/org_apache_commons_crypto_random_OpenSslCryptoRandomNative.h',
needed by 'target/commons-crypto-1.1.1-SNAPSHOT--/OpenSslCryptoRandomNative.o'.
Stop.

And that's, where I could need your help. What's wong?

Thanks,

Jochen



FROM ubuntu:bionic-20220401
RUN dpkg --add-architecture i386
RUN apt update
RUN apt-get -y install gcc
RUN apt-get -y install g++
RUN apt-get -y install make
RUN apt-get -y install wget curl
RUN apt-get -y install git
RUN apt-get -y install openjdk-8-jdk
RUN apt-get -y -oDebug::pkgAcquire::Worker=1 install openjdk-11-jdk
RUN apt-get install -y mingw-w64
# This package is documented in BUILDING.txt, but doesn't appear to be
available.
# RUN apt-get install -y x86_64-w64-mingw32-gcc
RUN apt-get install -y gcc-mingw-w64-i686
RUN apt-get install -y libssl-dev:i386 libssl-dev
RUN apt-get install -y g++-multilib
RUN mkdir -p /usr/local/build
WORKDIR /usr/local/build
RUN wget 
https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
RUN tar xzf apache-maven-3.8.5-bin.tar.gz
RUN ln -s ../build/apache-maven-3.8.5/bin/mvn /usr/local/bin
RUN git clone https://gitbox.apache.org/repos/asf/commons-crypto.git
commons-crypto
WORKDIR /usr/local/build/commons-crypto
RUN VERSION=1.1.1-SNAPSHOT JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 make
RUN mvn
CMD bash




--
Philosophy is useless, theology is worse. (Industrial Desease, Dire Straits)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to