Skip to content

Commit

Permalink
Add revision: v1.14.0
Browse files Browse the repository at this point in the history
  • Loading branch information
GovernikusAusweisApp2 committed Dec 20, 2017
1 parent ffaa518 commit aa6c4e6
Show file tree
Hide file tree
Showing 2,001 changed files with 55,615 additions and 42,899 deletions.
12 changes: 10 additions & 2 deletions CMakeLists.txt
@@ -1,4 +1,4 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.3.0)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.0)

IF(POLICY CMP0020)
CMAKE_POLICY(SET CMP0020 NEW)
Expand Down Expand Up @@ -33,7 +33,7 @@ ELSE()
ENDIF()


PROJECT(AusweisApp2 VERSION 1.12.4 LANGUAGES ${LANGUAGES})
PROJECT(AusweisApp2 VERSION 1.14.0 LANGUAGES ${LANGUAGES})

# Set TWEAK if not defined in PROJECT_VERSION above to
# have a valid tweak version without propagating it
Expand Down Expand Up @@ -67,6 +67,7 @@ MESSAGE(STATUS "VENDOR: ${VENDOR}")
MESSAGE(STATUS "VERSION: ${PROJECT_VERSION}")

IF(ANDROID)
GET_ANDROID_TOOLCHAIN_VARS(ANDROID_TOOLCHAIN_PREFIX ANDROID_TOOLCHAIN_MACHINE_NAME)
IF(NOT BUILD_PREVIEW)
SET(BUILD_PREVIEW false)
ENDIF()
Expand All @@ -78,6 +79,13 @@ IF(ANDROID)
MESSAGE(STATUS "ANDROID_VERSION_CODE: ${ANDROID_VERSION_CODE}")
ENDIF()

IF(IOS)
IF(NOT USE_DISTRIBUTION_PROFILE)
SET(USE_DISTRIBUTION_PROFILE false)
ENDIF()
MESSAGE(STATUS "USE_DISTRIBUTION_PROFILE: ${USE_DISTRIBUTION_PROFILE}")
ENDIF()

IF("${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
MESSAGE(FATAL_ERROR "in tree building is not supported!")
ENDIF()
Expand Down
8 changes: 2 additions & 6 deletions LICENSE.officially.txt
Expand Up @@ -466,7 +466,7 @@ Die verwendeten OpenSource-Bibliotheken unterliegen den folgenden Nutzungsbeding

Qt
Lizenz: LGPL v3
Version: 5.8.0
Version: 5.9.3
Adresse: https://www.qt.io/

http_parser
Expand Down Expand Up @@ -661,11 +661,7 @@ permanent authorization for you to choose that version for the Library.



http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright
Igor Sysoev.

Additional changes are licensed under the same terms as NGINX and
copyright Joyent, Inc. and other Node contributors. All rights reserved.
Copyright Joyent, Inc. and other Node contributors.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
Expand Down
8 changes: 2 additions & 6 deletions LICENSE.txt
Expand Up @@ -416,7 +416,7 @@ Die verwendeten OpenSource-Bibliotheken unterliegen den folgenden Nutzungsbeding

Qt
Lizenz: LGPL v3
Version: 5.8.0
Version: 5.9.3
Adresse: https://www.qt.io/

http_parser
Expand Down Expand Up @@ -611,11 +611,7 @@ permanent authorization for you to choose that version for the Library.



http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright
Igor Sysoev.

Additional changes are licensed under the same terms as NGINX and
copyright Joyent, Inc. and other Node contributors. All rights reserved.
Copyright Joyent, Inc. and other Node contributors.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
Expand Down
20 changes: 20 additions & 0 deletions README.rst
Expand Up @@ -170,3 +170,23 @@ Nachdem die Build-Umgebung eingerichtet ist, kann je nach System ein Package ers

$ make install
$ make apk



Reproduzierbarer Build
----------------------
Wir sind stets bemüht den Build des offiziellen Binaries der AusweisApp2 nachvollziehbar zu gestalten.
Daher haben wir unter anderem eine README in dem Unterordner ``./libs`` hinterlegt, die den Aufbau
der Buildumgebung und den Build der externen Bibliotheken beschreibt.
Anhand dieser Anleitung können Sie nachvollziehen, wie unser internes Buildsystem aufgebaut ist und
welche Compiler bzw. Compiler-Versionen wir verwenden.

Im Unterordner ``./resources/jenkins/`` ist es möglich, unsere Konfiguration des CI-Servers einzusehen.
Die Konfiguration besteht aus mehreren Dockerfiles und JobDSL-Dateien.

Anhand dieser Skripte ist es möglich, den Build der AusweisApp2 zu reproduzieren.
Ein Unterschied zum offiziellen Binary sollte lediglich in eventuellen Pfaden,
einem Datum bzw. Zeitstempel und Signaturen bestehen.

.. seealso::
https://reproducible-builds.org/
6 changes: 3 additions & 3 deletions cmake/Appcast.cmake
Expand Up @@ -47,15 +47,15 @@ IF(MAC OR LINUX OR WIN32)
FILE(GLOB TAR_GZ_FILES ${PROJECT_BINARY_DIR}/*.tar.gz)

IF(DMG_FILES)
ADD_APPCAST_FILE("${DMG_FILES}" "Q_OS_MAC")
ADD_APPCAST_FILE("${DMG_FILES}" "mac")
ENDIF()

IF(MSI_FILES)
ADD_APPCAST_FILE("${MSI_FILES}" "Q_OS_WIN32")
ADD_APPCAST_FILE("${MSI_FILES}" "win")
ENDIF()

IF(TAR_GZ_FILES)
ADD_APPCAST_FILE("${TAR_GZ_FILES}" "SOURCES")
ADD_APPCAST_FILE("${TAR_GZ_FILES}" "src")
ENDIF()

IF(APPCAST_ITEMS)
Expand Down
58 changes: 37 additions & 21 deletions cmake/CompilerFlags.cmake
Expand Up @@ -9,14 +9,12 @@ ADD_DEFINITIONS(-DQT_NO_EXCEPTIONS)

IF(QT_VENDOR STREQUAL "Governikus")
ADD_DEFINITIONS(-DGOVERNIKUS_QT)
ADD_DEFINITIONS(-DQT_DEPRECATED_WARNINGS)
ENDIF()

IF(CMAKE_VERSION VERSION_LESS 3.2)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ELSE()
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
ENDIF()
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS OFF)

IF(NOT DEFINED WARNINGS_ARE_ERRORS AND VENDOR_GOVERNIKUS)
SET(WARNINGS_ARE_ERRORS ON)
Expand All @@ -32,32 +30,46 @@ ELSE()
ADD_DEFINITIONS(-DQT_STRICT_ITERATORS)

STRING(REPLACE "-fexceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Wcast-qual -Wshadow -Wvla")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wcast-qual -Wshadow")

ADD_FLAG(-flto VAR CMAKE_EXE_LINKER_FLAGS_RELEASE CMAKE_SHARED_LINKER_FLAGS_RELEASE LINK -flto)

ADD_FLAG(-fno-exceptions)
ADD_FLAG(-fstack-protector-strong -fstack-protector)
ADD_FLAG(-fuse-ld=gold VAR CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS LINK -fuse-ld=gold)
ADD_FLAG(-Wold-style-cast)
ADD_FLAG(-Wmost)
ADD_FLAG(-Wpedantic)
ADD_FLAG(-Wvla)
ADD_FLAG(-Wconversion)
ADD_FLAG(-Wloop-analysis)
ADD_FLAG(-Wlogical-op)
ADD_FLAG(-Wmisleading-indentation)
ADD_FLAG(-Wduplicated-cond)
ADD_FLAG(-Wweak-vtables)
ADD_FLAG(-Wcovered-switch-default)
ADD_FLAG(-Wduplicated-branches)
ADD_FLAG(-Wdocumentation)
ADD_FLAG(-Wsuggest-override)
ADD_FLAG(-Winconsistent-missing-override)
ADD_FLAG(-Winconsistent-missing-destructor-override)
ADD_FLAG(-Wnon-virtual-dtor)
ADD_FLAG(-Winitializer-overrides)
ADD_FLAG(-Wunreachable-code-aggressive)
ADD_FLAG(-Wnewline-eof)
ADD_FLAG(-Wno-gnu-zero-variadic-macro-arguments) # Qt (qDebug) is not compatible


IF(ANDROID)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -finline-limit=64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffunction-sections -fdata-sections")
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -finline-limit=64 -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
ENDIF()
SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
ENDIF()

IF("${CMAKE_BUILD_TYPE}" STREQUAL "RELEASE")
ADD_FLAG(-flto VAR CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS LINK -flto)
ENDIF()


IF(WARNINGS_ARE_ERRORS AND NOT CMAKE_GENERATOR STREQUAL Xcode)
IF(WARNINGS_ARE_ERRORS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
ENDIF()

Expand All @@ -73,17 +85,21 @@ ELSE()
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")

IF(SANITIZER)
IF(CMAKE_COMPILER_IS_GNUCXX)
ADD_FLAG("-fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls" LINK -fsanitize=address -fsanitize=undefined)
ELSE()
ADD_FLAG("-fsanitize=address -fsanitize=undefined -fsanitize=unsigned-integer-overflow -fsanitize-address-use-after-scope -fno-omit-frame-pointer -fno-optimize-sibling-calls" LINK -fsanitize=address -fsanitize=undefined)
IF(NOT SANITIZER_SKIP_ASAN)
SET(SANITIZER_FLAGS "-fsanitize=address")
SET(SANITIZER_LINK_FLAGS "-fsanitize=address")
ENDIF()
SET(SANITIZER_FLAGS "${SANITIZER_FLAGS} -fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls")
ADD_FLAG("${SANITIZER_FLAGS} -fsanitize=unsigned-integer-overflow -fsanitize-address-use-after-scope" "${SANITIZER_FLAGS}" LINK "${SANITIZER_LINK_FLAGS} -fsanitize=undefined")
ENDIF()

IF(CMAKE_CXX_COMPILER_ID STREQUAL Intel)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd1875,1682,2259,654,177")
ENDIF()
ENDIF()

# enable Objective-C support on MacOS X
IF(APPLE)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ObjC++")
IF(APPLE AND NOT IOS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ObjC++ -mmacosx-version-min=10.9")
ENDIF()


Expand Down
6 changes: 0 additions & 6 deletions cmake/DVCS.cmake
Expand Up @@ -93,12 +93,6 @@ MACRO(GET_DVCS_INFO)
DVCS_CALL("revision" "-" id -i)
ELSEIF(GIT_FOUND)
DVCS_CALL("revision" "-" rev-parse --verify --short HEAD)
DVCS_EXECUTE(dvcs_clean_wc diff-index --quiet HEAD)
IF(NOT DEFINED dvcs_clean_wc)
MESSAGE(STATUS "DVCS: dirty working copy")
SET(dvcs_revision ${dvcs_revision}+)
SET(VERSION_DVCS ${VERSION_DVCS}+)
ENDIF()
ENDIF()
ENDMACRO()

Expand Down
23 changes: 6 additions & 17 deletions cmake/DefaultFiles.cmake
@@ -1,38 +1,27 @@
SET(REMOTE_CONFIG_URL_PROD https://appl.governikus-asp.de/ausweisapp2)
IF(JENKINS_APPCAST)
SET(REMOTE_CONFIG_URL https://buildautentapp/job/${JENKINS_APPCAST}/lastSuccessfulBuild/artifact CACHE STRING "Remote config download URL" FORCE)
SET(REMOTE_CONFIG_URL https://vtf-aajenkins.tf.bos-test.de/job/${JENKINS_APPCAST}/lastSuccessfulBuild/artifact CACHE STRING "Remote config download URL" FORCE)
ELSE()
SET(REMOTE_CONFIG_URL https://appl.governikus-asp.de/ausweisapp2 CACHE STRING "Remote config download URL" FORCE)
SET(REMOTE_CONFIG_URL ${REMOTE_CONFIG_URL_PROD} CACHE STRING "Remote config download URL" FORCE)
ENDIF()

FUNCTION(CONFIGURE_DEFAULT_FILES _destination)
# Set DEFAULT_PROVIDER_FILE to replace this in config.json.in.
IF(IOS)
SET(DEFAULT_PROVIDER_FILE default-providers-ios.json)
ELSE()
SET(DEFAULT_PROVIDER_FILE default-providers.json)
ENDIF()

IF(JENKINS_APPCAST)
SET(REMOTE_CONFIG_PATH_APPCAST /build)
SET(REMOTE_CONFIG_PATH_APPCAST_BETA /build)
SET(REMOTE_CONFIG_PATH_PROVIDERS /source/resources)
SET(REMOTE_CONFIG_PATH_DRIVERS /source/resources)
SET(REMOTE_CONFIG_PATH_READERS /source/resources)
ELSE()
SET(REMOTE_CONFIG_PATH_APPCAST )
SET(REMOTE_CONFIG_PATH_APPCAST_BETA /beta)
SET(REMOTE_CONFIG_PATH_PROVIDERS )
SET(REMOTE_CONFIG_PATH_DRIVERS /driver)
SET(REMOTE_CONFIG_PATH_READERS /reader)
ENDIF()
SET(REMOTE_CONFIG_URL_READER_IMAGES ${REMOTE_CONFIG_URL_PROD}/reader)

# Copy secure storage file, so that the AusweisApp2 can be started from the build directory.
CONFIGURE_FILE(${RESOURCES_DIR}/config.json.in ${_destination}/config.json @ONLY)

# The same with default providers
CONFIGURE_FILE(${RESOURCES_DIR}/${DEFAULT_PROVIDER_FILE} ${_destination}/default-providers.json COPYONLY)

# The same with default supported devices
CONFIGURE_FILE(${RESOURCES_DIR}/default-supported-devices.json ${_destination}/default-supported-devices.json COPYONLY)

# Copy qtlogging.ini file
CONFIGURE_FILE(${RESOURCES_DIR}/qtlogging.ini ${_destination}/qtlogging.ini COPYONLY)
ENDFUNCTION()

0 comments on commit aa6c4e6

Please sign in to comment.