%global __brp_strip %{nil} %global __brp_strip_comment_note %{nil} %global __brp_strip_lto %{nil} %global __brp_strip_static_archive %{nil} %global dl_host https://get.webpkiplugin.com %global dl_file setup-rpm-64 %global nspace com.lacunasoftware.webpki %global ff_uuid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} %global xpifile webpki-beta@lacunasoftware.com.xpi Name: lacuna-webpki Version: 2.16.0 Release: 1%{?dist} Summary: The Lacuna Web PKI component browser extension. License: MIT Url: https://lacunasoftware.com/en/pki-suite/ BuildRequires: cpio BuildRequires: jq Source0: %{dl_host}/Downloads/%{version}/%{dl_file}#/%{name}-%{version}-0.x86_64.rpm Source1: %{dl_host}/firefox-extensions/%(echo %{version}|sed 's/./_/g')#/%{xpifile} # curl -sSL https://get.webpkiplugin.com/firefox-extensions | jq ".addons[].updates[-1]" Source2: %{dl_host}/firefox-extensions#/%{name}-updates.json Recommends: firefox %description The Lacuna Web PKI component enables web applications to interact with digital certificates through javascript. %prep %{__rm} -rf %{name}-%{version} %{__mkdir_p} %{name}-%{version} cd %{name}-%{version} rpm2cpio %{SOURCE0} | cpio -idmv %{__mv} ./opt/lacuna-webpki/* . %{__rm} -rf ./opt # update binary path in manifests sed -i 's#/opt/lacuna-webpki#%{_bindir}#g' *.json # verify extension integrity pushd %{_sourcedir} cat %{SOURCE2} | \ jq ".update_hash" | \ sed 's/\"//g' | \ awk -F: '{print $2, " %{xpifile}"}' | \ sha256sum -c popd %build # nothing to build %install cd %{name}-%{version} # install binary extension %{__mkdir_p} %{buildroot}%{_bindir} %{__install} -D -m0755 webpki %{buildroot}%{_bindir}/ # install extension %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{ff_uuid} %{__install} -D -m0644 %{SOURCE1} %{buildroot}%{_datadir}/mozilla/extensions/%{ff_uuid} # ensure that browsers extension manifest dirs exists CHROME_MANIFEST_DIR=%{_sysconfdir}/opt/chrome/native-messaging-hosts/ CHROMIUM_MANIFEST_DIR=%{_sysconfdir}/chromium/native-messaging-hosts/ EDGE_MANIFEST_DIR=%{_sysconfdir}/opt/edge/native-messaging-hosts/ MOZILLA_DIR=%{_prefix}/lib/mozilla/native-messaging-hosts/ MOZILLA_DIR64=%{_libdir}/mozilla/native-messaging-hosts/ MOZILLA_DIR_SHARE=%{_datadir}/mozilla/native-messaging-hosts/ %{__mkdir_p} %{buildroot}${CHROME_MANIFEST_DIR} %{__mkdir_p} %{buildroot}${CHROMIUM_MANIFEST_DIR} %{__mkdir_p} %{buildroot}${EDGE_MANIFEST_DIR} %{__mkdir_p} %{buildroot}${MOZILLA_DIR} %{__mkdir_p} %{buildroot}${MOZILLA_DIR64} %{__mkdir_p} %{buildroot}${MOZILLA_DIR_SHARE} %{__install} -D -m0644 manifest.json %{buildroot}${CHROME_MANIFEST_DIR}/%{nspace}.json %{__install} -D -m0644 manifest.json %{buildroot}${CHROMIUM_MANIFEST_DIR}/%{nspace}.json %{__install} -D -m0644 manifest-edge.json %{buildroot}${EDGE_MANIFEST_DIR}/%{nspace}.json %{__install} -D -m0644 manifest-firefox.json %{buildroot}${MOZILLA_DIR}/%{nspace}.json %{__install} -D -m0644 manifest-firefox.json %{buildroot}${MOZILLA_DIR64}/%{nspace}.json %{__install} -D -m0644 manifest-firefox.json %{buildroot}${MOZILLA_DIR_SHARE}/%{nspace}.json %files %{_bindir}/webpki %dir %{_datadir}/mozilla/native-messaging-hosts %{_datadir}/mozilla/extensions/%{ff_uuid}/%{xpifile} %{_datadir}/mozilla/native-messaging-hosts/%{nspace}.json %{_libdir}/mozilla/native-messaging-hosts/%{nspace}.json %{_prefix}/lib/mozilla/native-messaging-hosts/%{nspace}.json %{_sysconfdir}/chromium/native-messaging-hosts/%{nspace}.json %{_sysconfdir}/opt/chrome/native-messaging-hosts/%{nspace}.json %{_sysconfdir}/opt/edge/native-messaging-hosts/%{nspace}.json %changelog * Fri Sep 09 2022 Christian Tosta - 2.16.0-1 - Initial package