# original upstream name: chrome-token-signing
# it is a native messaging solution for firefox/chrome signing support
# chrome and firefox dropped legacy npapi support form browsers
# https://developer.chrome.com/apps/nativeMessaging
# and Estonia ID card software now use native messaging to talk with smartcards
# over javascript to create digital signatures.
# Information source user zomps from #esteid Freenode IRC channel
%global upstream_name chrome-token-signing
Name: webextension-token-signing
Version: 1.0.7
Release: 1%{?dist}
Summary: Firefox extension for signing with your eID on the web
License: LGPLv2+
URL: https://github.com/open-eid/chrome-token-signing
Source0: %{url}/archive/v%{version}.tar.gz#/%{upstream_name}-%{version}.tar.gz
BuildRequires: qt5-qtbase-devel
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(libpcsclite)
Requires: opensc%{?_isa}
Requires: pcsc-lite%{?_isa}
Requires: pcsc-lite-ccid%{?_isa}
# mozilla-filesystem is required to install files into
# %%_prefix/lib/mozilla and
# %%{_datadir}/mozilla/extensions/
Requires: mozilla-filesystem
%description
Firefox extension for signing with your eID on the web
%prep
%setup -q -n %{upstream_name}-%{version}
sed -i "s|qmake|%{_qt5_bindir}/qmake \
QMAKE_CFLAGS_DEBUG=\"%optflags\" \
QMAKE_CFLAGS_RELEASE=\"%optflags\" \
LIBPATH=\"%{_libdir}\" \
QMAKE_CXXFLAGS_DEBUG=\"%optflags\" \
QMAKE_CXXFLAGS_RELEASE=\"%optflags\" \
QMAKE_LFLAGS_DEBUG=\"%{?__global_ldflags}\" \
QMAKE_LFLAGS_RELEASE=\"%{?__global_ldflags}\" \
QMAKE_STRIP=|" host-linux/GNUmakefile
%build
make %{?_smp_mflags} LIBPATH=%{_libdir}
%install
# make -C host-linux install DESTDIR=%%{buildroot}
make -C host-linux install INSTALL_ROOT=%{buildroot}
# Firefox is the browser installed by default on Fedora
# Chromium is available in the repository
# Chrome extension is supported as an exception
# because it's identicall to Chromium's
mkdir -p $RPM_BUILD_ROOT/usr/share/chromium/extensions
cp $RPM_BUILD_ROOT/opt/google/chrome/extensions/ckjefchnfjhjfedoccjbhjpbncimppeg.json $RPM_BUILD_ROOT/usr/share/chromium/extensions/ckjefchnfjhjfedoccjbhjpbncimppeg.json
mkdir -p $RPM_BUILD_ROOT/usr/share/google-chrome/extensions
mv $RPM_BUILD_ROOT/opt/google/chrome/extensions/ckjefchnfjhjfedoccjbhjpbncimppeg.json $RPM_BUILD_ROOT/usr/share/google-chrome/extensions/ckjefchnfjhjfedoccjbhjpbncimppeg.json
mkdir -p $RPM_BUILD_ROOT/etc/chromium/native-messaging-hosts
cp $RPM_BUILD_ROOT/etc/opt/chrome/native-messaging-hosts/ee.ria.esteid.json $RPM_BUILD_ROOT/etc/chromium/native-messaging-hosts/ee.ria.esteid.json
%files
%{_bindir}/chrome-token-signing
# %%{_datadir} is a macro for /usr/share
%{_datadir}/mozilla/extensions/*
%{_datadir}/chromium/extensions/*
%{_datadir}/google-chrome/extensions/*
# %% dir creates a directory under a specific path
%dir %{_libdir}/mozilla/native-messaging-hosts/
%{_libdir}/mozilla/native-messaging-hosts/ee.ria.esteid.json
%dir %{_sysconfdir}/chromium/native-messaging-hosts/
%{_sysconfdir}/chromium/native-messaging-hosts/ee.ria.esteid.json
%dir %{_sysconfdir}/opt/chrome/native-messaging-hosts/
%{_sysconfdir}/opt/chrome/native-messaging-hosts/ee.ria.esteid.json
%doc README.md AUTHORS RELEASE-NOTES.md
%license LICENSE.LGPL
%changelog
* Mon Jun 25 2018 Dmitri Smirnov <dmitri@smirnov.ee> - 1.0.7-1
- 1.0.7 upstream release
* Sun Jun 03 2018 Dmitri Smirnov <dmitri@smirnov.ee> - 1.0.6-7
- Added install hint and native messaging host files for Chrome
* Sat May 05 2018 Dmitri Smirnov <dmitri@smirnov.ee> - 1.0.6-6
- Added install hint and native messaging host files for Chromium
- Minor whitespace consistency changes in spec file
* Thu Mar 29 2018 Germano Massullo <germano.massullo@gmail.com> - 1.0.6-5
- removed Requires: esteidcerts
* Wed Mar 21 2018 Germano Massullo <germano.massullo@gmail.com> - 1.0.6-4
- added LIBPATH=\"%%{_libdir}\" in sed command
* Thu Mar 15 2018 Germano Massullo <germano.massullo@gmail.com> - 1.0.6-3
- added libpath patch
* Tue Mar 06 2018 Germano Massullo <germano.massullo@gmail.com> - 1.0.6-2
- improved qmake flags
* Thu Feb 22 2018 Germano Massullo <germano.massullo@gmail.com> - 1.0.6-1
- first release