You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by GitBox <gi...@apache.org> on 2020/08/02 14:39:40 UTC

[GitHub] [commons-crypto] aremily opened a new pull request #103: Standardize the release build process with Docker.

aremily opened a new pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103


   Following up on Marcelo's recommendation to Dockerize the build process, submitted for review is a Dockerfile that automates the following builds:
   
   Linux x86_64
   Linux-arm
   Linux-armfh
   Linux-aarch64
   Windows x86_64
   
   This Dockerfile copies the project directory into the Docker image, so if you run it from a Mac after a successful local build, the resulting image will contain a jar that includes the above builds and the Mac build.  I've tested the Linux x86_64, Windows x86_64 and Mac x86_64 builds.  I have not tested the ARM builds, as I lack the platform to do so.
   
   Note that this doesn't automate the Mac build, but Google suggests that it is possible.  I'll make the effort it if there's interest.
   
   https://github.com/tpoechtrager/osxcross
   https://github.com/multiarch/crossbuild
   
   I included a Maven profile that runs the Dockerfile from Maven after a local build, but the plugin doesn't include much logging.  I'd recommend just running the Dockerfile from the command line, which will give you plenty of log output.
   
   I don't pretend to be a Docker wizard, so feedback is appreciated.  There's probably a more efficient way to do this if anyone wants to give it a go.  The build process takes between ten and fifteen minutes on my machine because I build OpenSSL from source for each architecture to generate the platform-specific opensslconf.h file that's required for each build.  I'm not completely sure that it's necessary for purposes of building the JNI libraries, so if that step can be eliminated it would speed up the build considerably.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667685046


   Looks like some of our Travis builds need work.  Half the builds are failing for environmental reasons unrelated to the application.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-668894440


   I think I just did.
   
   On Tue, Aug 4, 2020 at 5:56 PM Gary Gregory <no...@github.com> wrote:
   >
   > @aremily
   > May you please rebase on master?
   >
   > —
   > You are receiving this because you were mentioned.
   > Reply to this email directly, view it on GitHub, or unsubscribe.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667708876


   On Sun, Aug 2, 2020 at 1:55 PM aremily <no...@github.com> wrote:
   
   > There are. The script installs them and they are used for the Linux x86_64
   > build. While developing this script I discovered that one included header
   > file, opensslconf.h, is platform specific and generated by Make during the
   > OpenSSL build process. Unsure whether or not using the opensslconf.h file
   > from the x86_64 build would matter to the JNI libraries for the other
   > platforms, I decided to cross-compile OpenSSL to the Commons Crypto build's
   > target platform and use the opensslconf.h specific to that platform for
   > each build. If that step is unnecessary it would probably shave at least
   > ten minutes off the build.
   >
   
   When Geoffrey Blake helped me set up an Ubuntu 14.04 docker image, we never
   cross-compiled OpenSSL and we got the following working:
   
   mvn -V -DskipTests package -Plinux-linux64
   mvn -V -DskipTests package -Plinux-linux32
   mvn -V -DskipTests package -Plinux-win64
   mvn -V -DskipTests package -Plinux-win32
   mvn -V -DskipTests package -Plinux-aarch64
   
   
   For the Maven profile linux-aarch64, installing the proper
   g++-4.8-aarch64-linux-gnu removed packages cc-multilib and g++-multilib
   such that you had to be done building other binaries before aarch64.
   
   See my email from earlier this week about what to do for Mac binaries.
   
   Gary
   
   
   > On Sun, Aug 2, 2020 at 1:14 PM Gary Gregory <no...@github.com>
   > wrote:
   >
   > > I thought there were -dev packages that contain openssl C headers that
   > one
   > > can install with apt-get?
   > >
   > > —
   > > You are receiving this because you authored the thread.
   > > Reply to this email directly, view it on GitHub
   > > <
   > https://github.com/apache/commons-crypto/pull/103#issuecomment-667700615>,
   > > or unsubscribe
   > > <
   > https://github.com/notifications/unsubscribe-auth/ABUDY7W26R5M7SYWPQUT3QTR6WNINANCNFSM4PSSOBEQ
   > >
   > > .
   > >
   >
   > —
   > You are receiving this because you commented.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#issuecomment-667705278>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/AAJB6N3UFLVASK2K4DLDVFTR6WSBZANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32630541/badge)](https://coveralls.io/builds/32630541)
   
   Coverage decreased (-0.2%) to 82.867% when pulling **591434cbe1f3e4ff4b9589ea53634094f9d59df1 on aremily:build** into **c2b0e6e736c3d7f8379671ddfb9175f7c7f68283 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667735262


   @aremily 
   For the next release 1.1.0, I'd like to maintain the same binaries we shipped in 1.0.0 but I am not sure that is possible since that included mac32 and mac64 and it is not clear to me if that's possible on Docker. Including aarch64 would be new for 1.1.0.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-670028371


   Let me add that to the list of things to look at.  It may be something I
   forgot to go back and change.
   
   On Thu, Aug 6, 2020 at 12:07 PM Geoffrey Blake <no...@github.com>
   wrote:
   
   > *@geoffreyblake* commented on this pull request.
   > ------------------------------
   >
   > In Makefile.common
   > <https://github.com/apache/commons-crypto/pull/103#discussion_r466522712>:
   >
   > >  Linux-armhf_LINKFLAGS := -shared -static-libgcc
   >  Linux-armhf_LIBNAME   := libcommons-crypto.so
   >  Linux-armhf_COMMONS_CRYPTO_FLAGS:=
   >
   >  Linux-aarch64_CC        := $(CROSS_PREFIX)gcc
   >  Linux-aarch64_CXX       := $(CROSS_PREFIX)g++
   >  Linux-aarch64_STRIP     := $(CROSS_PREFIX)strip
   > -Linux-aarch64_CXXFLAGS  := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
   > -Linux-aarch64_CFLAGS    := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
   > +Linux-aarch64_CXXFLAGS  := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -Wall -Werror
   > +Linux-aarch64_CFLAGS    := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -Wall -Werror
   >
   > Some documentation in here may be required to explain why there's an i368
   > architecture directory specified in the aarch64 compile.
   >
   > —
   > You are receiving this because you were mentioned.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#pullrequestreview-462663495>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/ABUDY7RWHSFS2GMUCLM6PTDR7LIKTANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r465391194



##########
File path: Dockerfile
##########
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
+# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If 
+# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac 
+# build.
+
+FROM ubuntu:18.04

Review comment:
       14.04 is end of life, so I went with the most current LTS version of Ubuntu.  I chose Ubuntu because the comments in the makefile specified the proper packages for cross-compiling.  I opted for the cross-compile approach as opposed to pulling down a new base image for each platform so that each iteration would add an architecture to the existing build.  If I built each architecture on a separate base image I'd have to do a lot of build-dir copying between images.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-668844583


   @aremily 
   May you please rebase on master?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] geoffreyblake commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
geoffreyblake commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-668724245


   I brought up an x86 and aarch64 container and looked at the opensslconf.h's for both.  There appears to be no difference that should affect commons-crypto being able to bind to either OpenSSL 1.1.x or OpenSSL 1.0.x.   I do not think @aremily that you need to build OpenSSL from source.
   
   On the Mac front, considering the license for MacOS prohibits running it on non-Apple hardware, a docker image for it being committed to this repository may be on shaky ground.  


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32489883/badge)](https://coveralls.io/builds/32489883)
   
   Coverage remained the same at 82.456% when pulling **46fb9969ba78fbd2076eb8f04ab7acb56c2be296 on aremily:build** into **51fa279fd5f1168e10f299b3c079da6069843cb7 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] geoffreyblake commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
geoffreyblake commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r466522712



##########
File path: Makefile.common
##########
@@ -163,17 +163,17 @@ Linux-arm_COMMONS_CRYPTO_FLAGS:=
 Linux-armhf_CC        := $(CROSS_PREFIX)gcc
 Linux-armhf_CXX       := $(CROSS_PREFIX)g++
 Linux-armhf_STRIP     := $(CROSS_PREFIX)strip
-Linux-armhf_CFLAGS    := -include lib/inc_linux/jni_md.h -I"$(JAVA_HOME)/include" -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
-Linux-armhf_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I"$(JAVA_HOME)/include" -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
+Linux-armhf_CFLAGS    := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
+Linux-armhf_CXXFLAGS  := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
 Linux-armhf_LINKFLAGS := -shared -static-libgcc
 Linux-armhf_LIBNAME   := libcommons-crypto.so
 Linux-armhf_COMMONS_CRYPTO_FLAGS:=
 
 Linux-aarch64_CC        := $(CROSS_PREFIX)gcc
 Linux-aarch64_CXX       := $(CROSS_PREFIX)g++
 Linux-aarch64_STRIP     := $(CROSS_PREFIX)strip
-Linux-aarch64_CXXFLAGS  := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
-Linux-aarch64_CFLAGS    := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
+Linux-aarch64_CXXFLAGS  := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -Wall -Werror
+Linux-aarch64_CFLAGS    := -I"$(JAVA_HOME)/include" -I/usr/include/i386-linux-gnu -O2 -fPIC -fvisibility=hidden -Wall -Werror

Review comment:
       Some documentation in here may be required to explain why there's an i368 architecture directory specified in the aarch64 compile.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32543503/badge)](https://coveralls.io/builds/32543503)
   
   Coverage remained the same at 83.114% when pulling **2740d0136074ea1344da0ebba45037873a64f306 on aremily:build** into **c2b0e6e736c3d7f8379671ddfb9175f7c7f68283 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667705278


   There are.  The script installs them and they are used for the Linux x86_64
   build.  While developing this script I discovered that one included header
   file, opensslconf.h, is platform specific and generated by Make during the
   OpenSSL build process.  Unsure whether or not using the opensslconf.h file
   from the x86_64 build would matter to the JNI libraries for the other
   platforms, I decided to cross-compile OpenSSL to the Commons Crypto build's
   target platform and use the opensslconf.h specific to that platform for
   each build.  If that step is unnecessary it would probably shave at least
   ten minutes off the build.
   
   On Sun, Aug 2, 2020 at 1:14 PM Gary Gregory <no...@github.com>
   wrote:
   
   > I thought there were -dev packages that contain openssl C headers that one
   > can install with apt-get?
   >
   > —
   > You are receiving this because you authored the thread.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#issuecomment-667700615>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/ABUDY7W26R5M7SYWPQUT3QTR6WNINANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-668825320


   That being the case the script is basically done.  I'll do a little cleanup
   and check in another version, but unless there are other architectures to
   include it's come about as far as it can go.
   
   On Tue, Aug 4, 2020 at 1:23 PM Geoffrey Blake <no...@github.com>
   wrote:
   
   > I brought up an x86 and aarch64 container and looked at the
   > opensslconf.h's for both. There appears to be no difference that should
   > affect commons-crypto being able to bind to either OpenSSL 1.1.x or OpenSSL
   > 1.0.x. I do not think @aremily <https://github.com/aremily> that you need
   > to build OpenSSL from source.
   >
   > On the Mac front, considering the license for MacOS prohibits running it
   > on non-Apple hardware, a docker image for it being committed to this
   > repository may be on shaky ground.
   >
   > —
   > You are receiving this because you were mentioned.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#issuecomment-668724245>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/ABUDY7WTDJOOLQPPPFSGYWLR7A7YNANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32486253/badge)](https://coveralls.io/builds/32486253)
   
   Coverage remained the same at 82.456% when pulling **8307fc8d617bab2f558fd46299bddcf59093f277 on aremily:build** into **51fa279fd5f1168e10f299b3c079da6069843cb7 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily closed pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily closed pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-669442387


   Fair enough.  I'll make the update.
   
   On Wed, Aug 5, 2020 at 3:14 PM Geoffrey Blake <no...@github.com>
   wrote:
   
   > *@geoffreyblake* commented on this pull request.
   > ------------------------------
   >
   > In Dockerfile
   > <https://github.com/apache/commons-crypto/pull/103#discussion_r465946010>:
   >
   > > +# the License.  You may obtain a copy of the License at
   > +#
   > +#     http://www.apache.org/licenses/LICENSE-2.0
   > +#
   > +# Unless required by applicable law or agreed to in writing, software
   > +# distributed under the License is distributed on an "AS IS" BASIS,
   > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   > +# See the License for the specific language governing permissions and
   > +# limitations under the License.
   > +
   > +# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
   > +# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If
   > +# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac
   > +# build.
   > +
   > +FROM ubuntu:18.04
   >
   > Sure, though for purposes of a release, it'd be best to take a distro that
   > is 'old'. The main concern is libc compatibility as compiling against newer
   > versions *is not* backward compatible to older versions, whereas
   > compiling against an old version of libc *is* forward compatible.
   >
   > Ubuntu 14.04 is still supported by Canonical according to their Docker hub
   > info page, and is old enough for Arm builds, but for x86, it'd be better to
   > go further back to something like CentOS7 or even 6.
   >
   > —
   > You are receiving this because you were mentioned.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#discussion_r465946010>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/ABUDY7QZTZNY6FHIYCNGSPTR7GVQZANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32486590/badge)](https://coveralls.io/builds/32486590)
   
   Coverage remained the same at 82.456% when pulling **fb78877ed1034ebb75b06933157c62026a38d184 on aremily:build** into **51fa279fd5f1168e10f299b3c079da6069843cb7 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] geoffreyblake commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
geoffreyblake commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r465946010



##########
File path: Dockerfile
##########
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
+# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If 
+# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac 
+# build.
+
+FROM ubuntu:18.04

Review comment:
       Sure, though for purposes of a release, it'd be best to take a distro that is 'old'.  The main concern is libc compatibility as compiling against newer versions **is not** backward compatible to older versions, whereas compiling against an old version of libc **is** forward compatible.  
   
   Ubuntu 14.04 is still supported by Canonical according to their Docker hub info page, and is old enough for Arm builds, but for x86, it'd be better to go further back to something like CentOS7 or even 6.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667685046


   Looks like some of our Travis builds need work.  Half the builds are failing for environmental reasons unrelated to the application.  The other half pass.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] coveralls edited a comment on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667682795


   
   [![Coverage Status](https://coveralls.io/builds/32627702/badge)](https://coveralls.io/builds/32627702)
   
   Coverage decreased (-0.2%) to 82.867% when pulling **35d1cc33a48e6b490a131ef71414a81676e409d5 on aremily:build** into **c2b0e6e736c3d7f8379671ddfb9175f7c7f68283 on apache:master**.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667742519


   Gary,
   
   I'll take a look at Dockerizing the Mac64 build.  Do you have any
   heartburn with omitting the Win32 and Mac32 builds?  I'm not sure
   they're relevant anymore.
   
   Alex
   
   On Sun, Aug 2, 2020 at 6:57 PM Gary Gregory <no...@github.com> wrote:
   >
   > @aremily
   > For the next release 1.1.0, I'd like to maintain the same binaries we shipped in 1.0.0 but I am not sure that is possible since that included mac32 and mac64 and it is not clear to me if that's possible on Docker. Including aarch64 would be new for 1.1.0.
   >
   > —
   > You are receiving this because you were mentioned.
   > Reply to this email directly, view it on GitHub, or unsubscribe.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667748675


   Well, I would be ok with that.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] geoffreyblake commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
geoffreyblake commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r465202229



##########
File path: Dockerfile
##########
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
+# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If 
+# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac 
+# build.
+
+FROM ubuntu:18.04

Review comment:
       For building binaries to be used in a release, this should be ubuntu:14.04 or even centos:7 to retain as much compatibility as possible.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667700615


   I thought there were -dev packages that contain openssl C headers that one can install with apt-get?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] aremily commented on pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
aremily commented on pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#issuecomment-667731506


   Thanks for the response, Gary.  I know you've been busy lately with all the
   builds I've seen going out and I appreciate your time.  I'll modify the
   script to use the opensslconf.h from the base system for all the cross
   builds.
   
   Regarding the Mac build, the only related email I've seen is one from you
   to the community inquiring into the process of obtaining binaries from
   outside sources.  If the Mac build is still an open issue I'll look into
   including it in the Dockerfile.
   
   Alex
   
   On Sun, Aug 2, 2020 at 2:31 PM Gary Gregory <no...@github.com>
   wrote:
   
   > On Sun, Aug 2, 2020 at 1:55 PM aremily <no...@github.com> wrote:
   >
   > > There are. The script installs them and they are used for the Linux
   > x86_64
   > > build. While developing this script I discovered that one included header
   > > file, opensslconf.h, is platform specific and generated by Make during
   > the
   > > OpenSSL build process. Unsure whether or not using the opensslconf.h file
   > > from the x86_64 build would matter to the JNI libraries for the other
   > > platforms, I decided to cross-compile OpenSSL to the Commons Crypto
   > build's
   > > target platform and use the opensslconf.h specific to that platform for
   > > each build. If that step is unnecessary it would probably shave at least
   > > ten minutes off the build.
   > >
   >
   > When Geoffrey Blake helped me set up an Ubuntu 14.04 docker image, we never
   > cross-compiled OpenSSL and we got the following working:
   >
   > mvn -V -DskipTests package -Plinux-linux64
   > mvn -V -DskipTests package -Plinux-linux32
   > mvn -V -DskipTests package -Plinux-win64
   > mvn -V -DskipTests package -Plinux-win32
   > mvn -V -DskipTests package -Plinux-aarch64
   >
   >
   > For the Maven profile linux-aarch64, installing the proper
   > g++-4.8-aarch64-linux-gnu removed packages cc-multilib and g++-multilib
   > such that you had to be done building other binaries before aarch64.
   >
   > See my email from earlier this week about what to do for Mac binaries.
   >
   > Gary
   >
   >
   > > On Sun, Aug 2, 2020 at 1:14 PM Gary Gregory <no...@github.com>
   > > wrote:
   > >
   > > > I thought there were -dev packages that contain openssl C headers that
   > > one
   > > > can install with apt-get?
   > > >
   > > > —
   > > > You are receiving this because you authored the thread.
   > > > Reply to this email directly, view it on GitHub
   > > > <
   > > https://github.com/apache/commons-crypto/pull/103#issuecomment-667700615
   > >,
   > > > or unsubscribe
   > > > <
   > >
   > https://github.com/notifications/unsubscribe-auth/ABUDY7W26R5M7SYWPQUT3QTR6WNINANCNFSM4PSSOBEQ
   > > >
   > > > .
   > > >
   > >
   > > —
   > > You are receiving this because you commented.
   > > Reply to this email directly, view it on GitHub
   > > <
   > https://github.com/apache/commons-crypto/pull/103#issuecomment-667705278>,
   > > or unsubscribe
   > > <
   > https://github.com/notifications/unsubscribe-auth/AAJB6N3UFLVASK2K4DLDVFTR6WSBZANCNFSM4PSSOBEQ
   > >
   > > .
   > >
   >
   > —
   > You are receiving this because you authored the thread.
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/commons-crypto/pull/103#issuecomment-667708876>,
   > or unsubscribe
   > <https://github.com/notifications/unsubscribe-auth/ABUDY7UTLWL27YUVZB3CR4LR6WWGRANCNFSM4PSSOBEQ>
   > .
   >
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] geoffreyblake commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
geoffreyblake commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r465203933



##########
File path: Dockerfile
##########
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
+# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If 
+# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac 
+# build.
+
+FROM ubuntu:18.04

Review comment:
       If we want to simplify the docker files to not cross-compile, we could also add this to the FROM clause: `--platform=linux/aarch64`




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [commons-crypto] garydgregory commented on a change in pull request #103: Standardize the release build process with Docker.

Posted by GitBox <gi...@apache.org>.
garydgregory commented on a change in pull request #103:
URL: https://github.com/apache/commons-crypto/pull/103#discussion_r465948671



##########
File path: Dockerfile
##########
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file builds the Linux-x86_64, Linux-arm, Linux-armfh. Linux aarch64 and Win64 jnilibs.  It copies the contents of
+# the build host's project directory (commons-crypto) into the docker image and cross compiles the remaining builds. If 
+# you run this script from a Mac after a successful build, the build in the resuing Docker image will include the Mac 
+# build.
+
+FROM ubuntu:18.04

Review comment:
       FWIW, what I have working now for my local builds is based on 14.04 which is what I'll use to cut a release candidate hopefully soon(ish).




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org