[Bug 1882547] Review Request: osslsigncode - OpenSSL based Authenticode signing for PE/MSI/Java CAB files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1882547



--- Comment #4 from Petr Pisar <ppisar@xxxxxxxxxx> ---
> Disagree here, this is normal to use GitHub API for downloading release tarballs like that in Fedora https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_git_tags
> If all sources will named like that ("2.0.tar.gz") there will be a real mess and file naming conflicts in rpmbuild/SOURCES or just hard to find necessary source if there are many.

The guidelines are about a snapshot from a git tree identified by a tag. I can
now see that the upstream actually did not make a regular release. In case of
Githab file names of a regular release are under the upstream's control and
reside on releases/download path in case.

> TODO: I recommend listing ./configure --with-curl --with-gsf options explicitly instead of relying on an autodetection.
Ok.

> FIX: Build-require autoconf (osslsigncode.spec:29).
> FIX: Build-require make (osslsigncode.spec:31).
> FIX: Build-require coreutils (configure.ac:45).
> FIX: Build-require sed (configure.ac:48).
Ok.

> TODO: Constrain 'pkgconfig(libcrypto)' dependency with '>= 1.1.0' (configure.ac:96).
> TODO: Constrain 'pkgconfig(libcurl)' dependency with '>= 7.12.0' (configure.ac:114).
Ok.

> I've added tests now and they are passed. Network not required during tests. But you need to review this and i'm not sure how you feel about it. :) Anyway we can improve this in future.
%if %{with tests}
+# To prevent network access during tests
+Patch0:     %{name}-preventnetwork-access-during-tests.patch
+%endif

FIX: Patch tags must be unconditional. This is to ensure that a source package
will contain all the patches regardless of macros defined when creating the
source package.

+# Required for tests
+#  * https://github.com/mtrojnar/osslsigncode/blob/master/tests/testsign.sh#L5
+Source1:    http://the.earth.li/~sgtatham/putty/0.64/x86/putty.exe

The executable is identential to
<https://the.earth.li/~sgtatham/putty/0.64/x86/putty.exe> (SHA-256:
dc8d3ab6669b0a634de3e48477e7eb1282a770641194de2171ee9f3ec970c088).
License (MIT) verifified from
<https://git.tartarus.org/?p=simon/putty.git;a=blob_plain;f=LICENCE;hb=refs/tags/0.64>.

FIX: Putty license requires that its copyright statement and license are
distributed together with the executable. To resolve it, you need to copy that
text to a file and add it at as another Source tag.

TODO: I don't feel comfortable with including a binary. Although it's only used
as a data and not included into a binary package. We never know what
proprietary code could be inside. It's also a magnitude larger than the
osslsigncode sources. Could you please instead build a PE executable from a
known source using a crosscompiler? The test really does not need care whether
it's Putty or not. Here is a spec that does that:

--- osslsigncode.spec.orig      2020-10-11 05:35:50.000000000 +0200
+++ osslsigncode.spec   2020-10-12 10:38:14.233000000 +0200
@@ -9,14 +9,8 @@
 URL:        https://github.com/mtrojnar/osslsigncode
 Source0:    %{url}/archive/%{version}/%{name}-%{version}.tar.gz

-# Required for tests
-#  * https://github.com/mtrojnar/osslsigncode/blob/master/tests/testsign.sh#L5
-Source1:    http://the.earth.li/~sgtatham/putty/0.64/x86/putty.exe
-
-%if %{with tests}
 # To prevent network access during tests
 Patch0:     %{name}-preventnetwork-access-during-tests.patch
-%endif

 BuildRequires: autoconf
 BuildRequires: automake
@@ -31,6 +25,7 @@

 %if %{with tests}
 BuildRequires: java-1.8.0-openjdk-headless
+BuildRequires: mingw32-gcc
 BuildRequires: openssl >= 1.1.0
 %endif

@@ -61,7 +56,7 @@
 # https://bugzilla.redhat.com/show_bug.cgi?id=1882547#c2
 %if %{with tests}
 pushd tests
-install -Dp -m0644 %{SOURCE1} putty.exe
+echo 'int main(void) {return 0;}' | i686-w64-mingw32-gcc -x c -o putty.exe -
 ./testsign.sh
 popd
 %endif


All test pass. Ok.

$ rpmlint osslsigncode.spec ../SRPMS/osslsigncode-2.0-3.fc34.src.rpm
../RPMS/x86_64/osslsigncode-*2.0-3.fc34.x86_64.rpm 
sh: /usr/bin/python2: No such file or directory
osslsigncode.src: W: spelling-error %description -l en_US signtool -> sign
tool, sign-tool, signatory
osslsigncode.src: W: spelling-error %description -l en_US exe -> ex, exes, exec
osslsigncode.src: W: spelling-error %description -l en_US timestamping -> time
stamping, time-stamping, times tamping
osslsigncode.src: W: spelling-error %description -l en_US cURL -> curl, URL, c
URL
osslsigncode.x86_64: W: spelling-error %description -l en_US signtool -> sign
tool, sign-tool, signatory
osslsigncode.x86_64: W: spelling-error %description -l en_US exe -> ex, exes,
exec
osslsigncode.x86_64: W: spelling-error %description -l en_US timestamping ->
time stamping, time-stamping, times tamping
osslsigncode.x86_64: W: spelling-error %description -l en_US cURL -> curl, URL,
c URL
osslsigncode.x86_64: W: no-manual-page-for-binary osslsigncode
4 packages and 1 specfiles checked; 0 errors, 9 warnings.
rpmlint is Ok.

Package builds in F34
(https://koji.fedoraproject.org/koji/taskinfo?taskID=53276555). OK.

Please correct the 'FIX' items, consider fixing the 'TODO' item, and provide a
new spec file.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux