# Add generation of HMAC checksums of the final stripped binaries. # %%define with lazy expansion is used here intentionally, because # this needs to be expanded inside of a higher level macro that # gets expanded itself. %define __spec_install_post \ %{?__debug_package:%{__debug_install_post}} \ %{__arch_install_post} \ %{__os_install_post} \ bindir="%{buildroot}%{_bindir}" \ fipsdir="%{buildroot}%{_libdir}/fipscheck" \ mkdir -p "$fipsdir" \ fipshmac -d "$fipsdir" "$bindir/%{name}" \ %{nil} # Build and package Doxygen documentation? %bcond_without doxy # Enable full binary hardening by default. %global _hardened_build 1 # Init forge packaging helpers. %global forgeurl https://github.com/Governikus/%{name} # Package summary. Gets overwritten by subpackages otherwise. %global pkg_sum Online identification with German ID card (Personalausweis) Name: AusweisApp2 Version: 1.14.3 Release: 2%{?dist} Summary: %{pkg_sum} License: EUPL 1.2 URL: https://www.ausweisapp.bund.de/en Source0000: %{forgeurl}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source0001: %{name}-%{version}-notes_html.tar.xz Source0002: %{name}-%{version}-sdk_html.tar.xz Source0003: %{name}.metainfo.xml Source0004: https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/2020-03/EUPL-1.2%%20EN.txt#/EUPL-12_EN.txt # Upstreamed. Patch00001: %{forgeurl}/pull/28.patch#/%{name}-1.14.3-doxygen_exclude_build_dir.patch # Downstream. Patch01000: %{name}-1.14.3-CMake_warning.patch Patch01001: %{name}-1.14.3-config_h_fix_static_assert_base_file.patch Patch01002: %{name}-1.14.3-use_datadir.patch Patch01003: %{name}-1.14.3-disable_online_update.patch Patch01004: %{name}-1.14.3-desktop_file.patch BuildRequires: cmake3 BuildRequires: desktop-file-utils BuildRequires: devtoolset-9 BuildRequires: fipscheck BuildRequires: help2man BuildRequires: http-parser-devel BuildRequires: java-openjdk-headless BuildRequires: libappstream-glib BuildRequires: libudev-devel BuildRequires: ninja-build BuildRequires: openssl-devel BuildRequires: pcsc-lite-devel BuildRequires: qt5-linguist BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtconnectivity-devel BuildRequires: qt5-qtdeclarative-devel BuildRequires: qt5-qtquickcontrols2-devel BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qtwebsockets-devel # Lowercase package name. %global lc_name %{lua:print(string.lower(rpm.expand("%{name}")))} # Provide the lowercase name for convenience as well. Provides: %{lc_name} = %{version}-%{release} Provides: %{lc_name}%{?_isa} = %{version}-%{release} Requires: %{name}-data = %{version}-%{release} %description The AusweisApp2 is a software to identify yourself online with your ID card (Personalausweis) or your electronic residence permit (Aufenthalts- / Niederlassungserlaubis). The AusweisApp2 also offers you an integrated self-assessment in which you are able to view your data that is stored on the online ID. %package data Summary: Architecture-independent files used by %{name} BuildArch: noarch Requires: %{name} = %{version}-%{release} Requires: hicolor-icon-theme %description data This package contains the architecture-independent files used by %{name}. %package doc Summary: User and API-documentation for %{name} BuildArch: noarch %if %{with doxy} BuildRequires: doxygen BuildRequires: graphviz %endif BuildRequires: hardlink Requires: %{name} = %{version}-%{release} %description doc This package contains the User and API-documentation for %{name}. %prep %autosetup -p 1 install -pm 0644 %{SOURCE4} LICENSE.en.txt %build # We need GCC >= 4.9 for building. source /opt/rh/devtoolset-9/enable # The project does not ship any libraries that are meant to be # consumed externally. Thus we disable shared libs explicitly. # See: https://github.com/Governikus/AusweisApp2/pull/24 # and: https://github.com/Governikus/AusweisApp2/pull/26 %cmake3 \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DBUILD_TESTING:BOOL=OFF \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DFORCE_LEGACY_OPENSSL:BOOL=ON \ -DSELFPACKER:BOOL=OFF \ -G Ninja \ -S . -B %{_vpath_builddir} %ninja_build -C %{_vpath_builddir} # Documentation. %if %{with doxy} %ninja_build -C %{_vpath_builddir} doxy %endif %install %ninja_install -C %{_vpath_builddir} # Move installed files to proper locations. mkdir -p %{buildroot}%{_datadir}/%{name} %{buildroot}%{_qt5_translationdir} mv %{buildroot}%{_bindir}/%{name}.rcc %{buildroot}%{_bindir}/config.json \ %{buildroot}%{_bindir}/qtlogging.ini %{buildroot}%{_datadir}/%{name} mv %{buildroot}%{_prefix}/translations/* %{buildroot}%{_qt5_translationdir} rm -fr %{buildroot}%{_prefix}/translations # Install the icon-theme file. mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps install -pm 0644 resources/images/npa.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg # Install the metainfo.xml file. mkdir -p %{buildroot}%{_metainfodir} install -pm 0644 %{SOURCE3} %{buildroot}%{_metainfodir} # Generate man-page. mkdir -p %{buildroot}%{_mandir}/man1 help2man \ --no-discard-stderr --no-info \ --manual="%{name}" --name="%{pkg_sum}" --section=1 \ --help-option="--platform offscreen --help" \ --version-option="--platform offscreen --version" \ --output=%{buildroot}%{_mandir}/man1/%{name}.1 \ %{buildroot}%{_bindir}/%{name} # Excessive docs. mkdir -p %{buildroot}%{_pkgdocdir}/notes \ %{buildroot}%{_pkgdocdir}/sdk cp -p README.rst %{buildroot}%{_pkgdocdir} %if %{with doxy} mkdir -p %{buildroot}%{_pkgdocdir}/doxy cp -a %{_vpath_builddir}/doc/html/* %{buildroot}%{_pkgdocdir}/doxy %endif tar xf %{SOURCE1} -C %{buildroot}%{_pkgdocdir}/notes tar xf %{SOURCE2} -C %{buildroot}%{_pkgdocdir}/sdk find %{buildroot}%{_pkgdocdir} -type d -print0 | xargs -0 chmod -c 0755 find %{buildroot}%{_pkgdocdir} -type f -print0 | xargs -0 chmod -c 0644 find %{buildroot}%{_pkgdocdir} -type f -name '.*' -delete -print hardlink -cfv %{buildroot}%{_pkgdocdir} # Find translation files. %find_lang %{lc_name} --with-qt %check appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %post data /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun data if [ $1 -eq 0 ]; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi %posttrans data /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files %dir %{_libdir}/fipscheck %dir %{_pkgdocdir} %doc %{_pkgdocdir}/README.rst %license AUTHORS %license LICENSE.en.txt %license LICENSE.txt %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_libdir}/fipscheck/%{name}.hmac %{_mandir}/man1/%{name}.1* %{_metainfodir}/%{name}.metainfo.xml %files data -f %{lc_name}.lang %{_datadir}/%{name} %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %files doc %doc %{_pkgdocdir} %changelog * Tue Aug 25 2020 Björn Esser - 1.14.3-2 - Add pre-built user documentation to the doc package * Thu Aug 20 2020 Björn Esser - 1.14.3-1 - Initial import (#1851205)