diff --git a/.travis.yml b/.travis.yml index 98b23d8..09a447e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,3 +20,6 @@ matrix: - compiler: gcc os: linux env: COVERAGE="--enable-coverage" EXTRA="libpcsclite-dev lcov" + - compiler: gcc + os: linux + env: BUILD_OPENSSL_VERSION="1.1" EXTRA="libpcsclite-dev" diff --git a/build-and-test.sh b/build-and-test.sh index 8f574d7..969e1b2 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -61,6 +61,12 @@ if [ "x$ARCH" != "x" ]; then else make -f mac.mk mac VERSION=$version fi +elif [ "x$BUILD_OPENSSL_VERSION" = "x1.1" ]; then + version=`cat NEWS | grep unreleased | cut -d' ' -f3` + set +e + $TAR --exclude .git --transform="s/^\./yubico-piv-tool-${version}/" -czf yubico-piv-tool-${version}.tar.gz . + set -e + make -f linux.mk VERSION=$version else ./configure $COVERAGE make check diff --git a/configure.ac b/configure.ac index 8817e0d..f67d51f 100644 --- a/configure.ac +++ b/configure.ac @@ -49,7 +49,7 @@ AM_MISSING_PROG(HELP2ADOC, help2adoc, $missing_dir) AM_MISSING_PROG(GENGETOPT, gengetopt, $missing_dir) PKG_PROG_PKG_CONFIG -PKG_CHECK_MODULES(OPENSSL, libcrypto) +PKG_CHECK_MODULES([OPENSSL], [libcrypto], [OPENSSL_VERSION=`$PKG_CONFIG --modversion libcrypto`]) PKG_CHECK_MODULES([CHECK], [check >= 0.9.6]) DX_HTML_FEATURE(ON) @@ -261,6 +261,7 @@ AC_MSG_NOTICE([summary of build options: CPPFLAGS: ${CPPFLAGS} Warnings: ${WARN_CFLAGS} Backend: ${with_backend} + OpenSSL version: ${OPENSSL_VERSION} PCSC CFLAGS: ${PCSC_CFLAGS} LIBS: ${PCSC_LIBS} diff --git a/linux.mk b/linux.mk new file mode 100644 index 0000000..3821aa8 --- /dev/null +++ b/linux.mk @@ -0,0 +1,67 @@ +# Copyright (c) 2014-2017 Yubico AB +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# +# Note: this build script is for testing OpenSSL 1.1 builds. The official +# Linux release builds are handled by the standard Makefile. +# +PACKAGE=yubico-piv-tool +OPENSSLVERSION=1.1.0g + +all: linux + +doit: + rm -rf tmp && mkdir tmp && cd tmp && \ + mkdir -p root/licenses && \ + cp ../openssl-$(OPENSSLVERSION).tar.gz . || \ + curl -L -O "https://www.openssl.org/source/openssl-$(OPENSSLVERSION).tar.gz" && \ + tar xfz openssl-$(OPENSSLVERSION).tar.gz && \ + cd openssl-$(OPENSSLVERSION) && \ + ./Configure linux-x86_64 shared --prefix=$(PWD)/tmp/root $(CFLAGS) && \ + make all install_sw && \ + cp LICENSE $(PWD)/tmp$(ARCH)/root/licenses/openssl.txt && \ + rm -rf $(PWD)/tmp/root/ssl/ && \ + rm -rf $(PWD)/tmp/root/bin/ && \ + rm -rf $(PWD)/tmp/root/lib/engines/ && \ + rm -rf $(PWD)/tmp/root/lib/libssl* && \ + rm $(PWD)/tmp/root/lib/pkgconfig/libssl.pc && \ + rm $(PWD)/tmp/root/lib/pkgconfig/openssl.pc && \ + cd .. && \ + cp ../$(PACKAGE)-$(VERSION).tar.gz . && \ + tar xfz $(PACKAGE)-$(VERSION).tar.gz && \ + cd $(PACKAGE)-$(VERSION)/ && \ + CFLAGS=$(CFLAGS) PKG_CONFIG_PATH=$(PWD)/tmp/root/lib/pkgconfig ./configure --prefix=$(PWD)/tmp/root && \ + make install $(CHECK) && \ + rm $(PWD)/tmp/root/lib/*.la && \ + rm -rf $(PWD)/tmp/root/lib/pkgconfig && \ + cp COPYING $(PWD)/tmp/root/licenses/$(PACKAGE).txt && \ + cd .. && \ + cd root && \ + zip -r ../../$(PACKAGE)-$(VERSION)-linux-openssl-$(OPENSSLVERSION).zip * + +linux: + $(MAKE) -f linux.mk doit CHECK=check