# # Spec file for package zuluCrypt # # Copyright © 2011-2015 Francis Banyikwa # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . %bcond_with bundle_lxqtwallet %bcond_without bundle_tcplay %global srcname zuluCrypt %global srcurl https://github.com/mhogomchungu/%{srcname} %global commit0 064e9db3a81f0c3e2030eabc1931914461c7a829 %global gitdate 20160802 Name: zulucrypt Version: 5.0.0 %if 0%{?gitdate} Release: 2.%{gitdate}git%(c=%{commit0}; echo ${c:0:7} )%{?dist} %else Release: 2%{?dist} %endif Summary: Qt GUI front end to cryptsetup # major license is GPLv3+ (but GPLv2+ for some source files) # BSD for lxqt_wallet and tcplay (both bundled) # Public Domain for bundled md5-openssl License: GPLv3+ and GPLv2+ and BSD and Public Domain URL: https://mhogomchungu.github.io/%{srcname} %if 0%{?gitdate} Source0: %{srcurl}/archive/%{commit0}/%{name}-%{commit0}.tar.gz %else Source0: %{srcurl}/archive/%{version}/%{name}-%{version}.tar.gz %endif # polkit policy stolen from debian, https://github.com/marciosouza20/zulucrypt Source10: zulucrypt-gui.policy Source11: zulumount-gui.policy BuildRequires: gcc gcc-c++ BuildRequires: kf5-rpm-macros BuildRequires: cmake(KF5Wallet) BuildRequires: cmake(KF5Notifications) BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(devmapper) BuildRequires: pkgconfig(blkid) BuildRequires: pkgconfig(pwquality) BuildRequires: pkgconfig(libcryptsetup) BuildRequires: libgcrypt-devel BuildRequires: desktop-file-utils # bundling md5-openssl, okay with guidelines Provides: bundled(md5-openssl) # upstream: 'extended my "personal" copy of the library in incompatible ways' %if %{with bundle_tcplay} Provides: bundled(tcplay) = 2.0 %else #BuildRequires: tcplay-devel >= 2.0 %endif %if %{with bundle_lxqtwallet} Provides: bundled(lxqt-wallet) = 2.0.0 %else BuildRequires: pkgconfig(lxqt-wallet) >= 2.0.0 %endif Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-console%{?_isa} = %{version}-%{release} Requires: polkit Requires: hicolor-icon-theme %description zuluCrypt is a front end to cryptsetup. It makes it easier to use cryptsetup by providing a Qt-based GUI and a simpler to use CLI frontend to cryptsetup. It does the same thing truecrypt does but without licensing problems or requiring a user to setup sudo for it or presenting root's password. This package contains the applications. %package console Summary: Console tools of %{name} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description console This package contains the console (CLI) frontends of zuluCrypt. Those got split into an own subpackage to provide possible independence from Qt as some minimum. %package libs Summary: Library for %{name} %description libs This package contains libraries that provide higher level access to cryptsetup API and provide mounting/unmounting API to easy opening and closing of volume. %package devel Summary: Development files for %{name} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel This package contains development files and libraries necessary to build programs around zuluCrypt. %package doc Summary: Additional documentation files for %{name} BuildArch: noarch %description doc %{summary}. ########################################################################################### %prep %if 0%{?gitdate} %autosetup -n%{srcname}-%{commit0} %else %autosetup -n%{srcname}-%{version} %endif # documentation later with %%doc mv 'ABOUT ME' AUTHORS sed -i /docs/d CMakeLists.txt # drop rpath, https://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath find . -name CMakeLists.txt |xargs sed -i /INSTALL_RPATH/d # handle zuluSafe as a GUI application, binary needs Qt sed -i -r 's:(zuluSafe)-cli:\1:g' CMakeLists.txt zuluSafe/CMakeLists.txt zuluSafe-cli.1 mv zuluSafe-cli.1 zuluSafe.1 %if %{without bundle_lxqtwallet} rm -rf %{srcname}-gui/lxqt_wallet %endif %if %{without bundle_tcplay} rm -rf external_libraries/tc-play #ln -s %{_includedir}/*.h external_libraries/tc-play #sed -i -r 's:(STATIC_TCPLAY ").*":\1false":' CMakeLists.txt %endif %build mkdir -p %{_target_platform} pushd %{_target_platform} %{cmake_kf5} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \ -DREUSEMOUNTPOINT=false \ -DUDEVSUPPORT=true \ -DNOGUI=false \ -DQT5=true \ -DHOMEMOUNTPREFIX=false \ -DNOGNOME=false \ -DNOKDE=false \ .. popd %make_build -C %{_target_platform} %install %make_install -C %{_target_platform} %find_lang %{name} --with-qt --all-name # use polkit sed -i -r 's:(Exec=)(.*):\1pkexec "\2":'\ %{buildroot}%{_datadir}/applications/zulu*.desktop install -m0644 -t %{buildroot}%{_datadir}/polkit-1/actions -D %{SOURCE10} %{SOURCE11} %check desktop-file-validate %{buildroot}%{_datadir}/applications/zulu*.desktop ########################################################################################### %post /usr/bin/update-desktop-database &> /dev/null || : /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null ||: ; %postun /usr/bin/update-desktop-database &> /dev/null || : 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 /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null ||: ; # rpmlint does not like -p option for a subpackage %post libs /sbin/ldconfig %postun libs /sbin/ldconfig ########################################################################################### %files -f %{name}.lang %{_bindir}/zuluCrypt-gui %{_bindir}/zuluMount-gui %{_bindir}/zuluSafe # specific GUI plugins stored to libdir, need Qt %{_libdir}/%{srcname}/ %{_datadir}/applications/zulu*.desktop %{_datadir}/icons/hicolor/*/apps/zulu*.png %{_datadir}/pixmaps/zulu*.png %{_mandir}/man1/zulu*-gui.1* %{_mandir}/man1/zuluSafe.1* %{_datadir}/polkit-1/actions/*.policy # find_lang does not care about subfolders %dir %{_datadir}/%{srcname} %dir %{_datadir}/%{srcname}/translations %dir %{_datadir}/%{srcname}/translations/zulu*-gui %files console %{_bindir}/zuluCrypt-cli %{_bindir}/zuluMount-cli %{_mandir}/man1/zulu*-cli.1* %files libs %license COPYING GPLv* LICENSE %doc AUTHORS *README* TODO changelog %{_libdir}/lib%{srcname}*.so.* %files devel %{_includedir}/%{srcname}/ %{_libdir}/lib%{srcname}*.so %{_libdir}/pkgconfig/libzulu*.pc %files doc %license COPYING GPLv* LICENSE %doc docs/*.pdf %doc docs/README docs/*.jpg images/*.jpeg ########################################################################################### %changelog * Fri Jul 22 2016 Raphael Groner - 5.0.0-2.20160802git064e9db.fc25 - switch to git snapshot to include all latest upstream patches - unbundle lxqt-wallet - prepare to unbundle tcplay - drop hack for desktop-file-validate, upstream issue#42 - add polkit - split cli into console subpackage - move licenses and general documentation into libs subpackage - fix incorrect desktop files - use BR: pkgconfig() where applicable - drop default dependencies - add scriptlets for MimeType key - drop scriptlets option -p to not confuse rpmlint - note Public Domain for bundled md5-openssl - note GPLv3+ and GPLv2+ partly in source files - fix find_lang - drop chrpath (previously commented) * Thu Jul 14 2016 Raphael Groner - 5.0.0-1 - adjust for Fedora, based on upstream spec file - unbundle tcplay - try to unbundle lxqtwallet (unfinished) * Thu May 1 2014 Francis Banyikwa - 5.0.0-0 - version 5.0.0 * Fri Mar 15 2013 Francis Banyikwa - 4.6.2-0 - upate to version 4.6.2 * Sat Jan 14 2012 Francis Banyikwa - 4.6.0-0 - update to version 4.6.0