Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: Review Request: torsocks - A transparent socks proxy for use with tor
https://bugzilla.redhat.com/show_bug.cgi?id=787561
Summary: Review Request: torsocks - A transparent socks proxy for use with tor Product: Fedora Version: rawhide Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: medium Component: Package Review AssignedTo: nobody@fedoraproject.org ReportedBy: eric@christensenplace.us QAContact: extras-qa@fedoraproject.org CC: notting@redhat.com, package-review@lists.fedoraproject.org Classification: Fedora Story Points: --- Type: --- Regression: --- Mount Type: --- Documentation: ---
Spec URL: http://sparks.fedorapeople.org/Packages/torsocks.spec
SRPM URL: http://sparks.fedorapeople.org/Packages/torsocks-1.2-1.fc16.src.rpm
Description: Torsocks allows you to use most socks-friendly applications in a safe way with Tor. It ensures that DNS requests are handled safely and explicitly rejects UDP traffic from the application you're using.
$ rpmlint /home/christensene/rpmbuild/SRPMS/torsocks-1.2-1.fc16.src.rpm /home/christensene/rpmbuild/RPMS/x86_64/torsocks-1.2-1.fc16.x86_64.rpm /home/christensene/rpmbuild/RPMS/x86_64/torsocks-debuginfo-1.2-1.fc16.x86_64.rpm /home/christensene/rpmbuild/RPMS/x86_64/torsocks-devel-1.2-1.fc16.x86_64.rpm torsocks.src: W: invalid-url Source0: https://torsocks.googlecode.com/files/torsocks-1.2.tar.gz HTTP Error 404: Not Found torsocks-devel.x86_64: W: spelling-error Summary(en_US) libtsocks -> flintlocks torsocks-devel.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 3 warnings.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
Petr Šabata psabata@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |psabata@redhat.com AssignedTo|nobody@fedoraproject.org |psabata@redhat.com Flag| |fedora-review?
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #1 from Petr Šabata psabata@redhat.com 2012-02-06 11:32:10 EST --- Package Review ==============
Key: - = N/A x = Pass ! = Fail ? = Not evaluated
==== C/C++ ==== [x]: MUST Header files in -devel subpackage, if present. [!]: MUST Package does not contain any libtool archives (.la) [x]: MUST Package does not contain kernel modules. [x]: MUST Package contains no static executables. [x]: MUST Rpath absent or only used for internal libs. [x]: MUST Package is not relocatable. [x]: MUST Development .so files in -devel subpackage, if present. [!]: MUST Static libraries in -static subpackage, if present.
==== Generic ==== [x]: MUST Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: MUST Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [!]: MUST Buildroot is not present Note: Buildroot is not needed unless packager plans to package for EPEL5 [x]: MUST Package contains no bundled libraries. [!]: MUST Changelog in prescribed format. [!]: MUST Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: Clean would be needed if support for EPEL is required [x]: MUST Sources contain only permissible code or content. [x]: MUST %config files are marked noreplace or the reason is justified. [!]: MUST Each %files section contains %defattr if rpm < 4.4 Note: defattr(....) present in %files devel section. This is OK if packaging for EPEL5. Otherwise not needed [-]: MUST Macros in Summary, %description expandable at SRPM build time. [-]: MUST Package requires other packages for directories it uses. [x]: MUST Package uses nothing in %doc for runtime. [x]: MUST Package is not known to require ExcludeArch. [x]: MUST Permissions on files are set properly. [!]: MUST Package does not contain duplicates in %files. [x]: MUST Spec file lacks Packager, Vendor, PreReq tags. [!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf would be needed if support for EPEL5 is required [!]: MUST If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [!]: MUST License field in the package spec file matches the actual license. [!]: MUST License file installed when any subpackage combination is installed. [!]: MUST Package consistently uses macros (instead of hard-coded directory names). [!]: MUST Package meets the Packaging Guidelines. [x]: MUST Package is named according to the Package Naming Guidelines. [!]: MUST No %config files under /usr. [!]: MUST Package does not generates any conflict. [!]: MUST Package obeys FHS, except libexecdir and /usr/target. [!]: MUST Package must own all directories that it creates. [!]: MUST Package does not own files or directories owned by other packages. [?]: MUST Package installs properly. [!]: MUST Requires correct, justified where necessary. [x]: MUST Rpmlint output is silent. [x]: MUST Sources used to build the package match the upstream source, as provided in the spec URL. /home/contyk/src/review/787561/torsocks-1.2.tar.gz : MD5SUM this package : 9bdc8786951e7eec6915433f324f22a4 MD5SUM upstream package : 9bdc8786951e7eec6915433f324f22a4
[x]: MUST Spec file is legible and written in American English. [x]: MUST Spec file name must match the spec package %{name}, in the format %{name}.spec. [-]: MUST Package contains a SysV-style init script if in need of one. [x]: MUST File names are valid UTF-8. [x]: SHOULD Reviewer should test that the package builds in mock. [-]: SHOULD If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: SHOULD Dist tag is present. [x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q --requires). [?]: SHOULD Package functions as described. [-]: SHOULD Package does not include license text files separate from upstream. [x]: SHOULD SourceX is a working URL. [-]: SHOULD Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: SHOULD Package should compile and build into binary rpms on all supported architectures. [-]: SHOULD %check is present and all tests pass. [-]: SHOULD Packages should try to preserve timestamps of original installed files. [-]: SHOULD Spec use %global instead of %define.
--- FIX: Don't package static libraries and libtool archives. Put them into a static subpackage if you really have a reason to ship those. (I guess you'll just correct line 34 to remove the rest :) ) TODO: BuildRoot tag, buildroot cleaning in %install and the $clean section aren't needed anymore. Remove them unless you plan to use this package in EPELs. TODO: The same applies to %defattr in your $files sections. FIX: Remove the extra '- ' before your name in the %changelog. FIX: The devel subpackage contains the same files as the base package. RPM possible handles that but it would be better if you shipped them just once. FIX: The %doc macro handles files in the current build directory; don't list bogus absolute paths. Consider the following simple replacement: %doc ChangeLog COPYING README doc/socks And possibly this for the devel subpackage: %doc doc/notes/DEBUG FIX: Include the license in the %doc (see above) FIX: Correct the License tag; it should be GPLv2+; see the source files. FIX: Don't use hardcoded paths in %files. Change /etc to %{_sysconfdir} FIX: The devel subpackage should have an arch-specific base package dependency, e.g. Requires: %{name}%{?_isa} = %{version}-%{release} FIX: Drop the pkgconfig dependency from the devel subpackage. There are no pkgconfig files. TIP: Use the %{name} macro in URL and Source.
Not approving yet.
Generated by fedora-review 0.1.1 External plugins:
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #2 from Eric Christensen eric@christensenplace.us 2012-02-07 22:24:01 EST --- This package will be going into EPEL for el5 so disregard all that other jazz.
Fixed the license and the /etc.
I've never had to deal with a static library before so I'm not sure what I'm doing with that portion. I'm getting a no-binary error from rpmlint, now.
Spec URL: http://sparks.fedorapeople.org/Packages/torsocks.spec
SRPM URL: http://sparks.fedorapeople.org/Packages/torsocks-1.2-1.fc16.src.rpm
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #3 from Petr Šabata psabata@redhat.com 2012-02-08 05:17:29 EST ---
FIX: Don't package static libraries and libtool archives. Put them into a static subpackage if you really have a reason to ship those. (I guess you'll just correct line 34 to remove the rest :) )
Ah, not like this. See the my SPEC patch below for suggestions.
TODO: BuildRoot tag, buildroot cleaning in %install and the $clean section aren't needed anymore. Remove them unless you plan to use this package in EPELs. TODO: The same applies to %defattr in your $files sections.
Ok, EPEL5.
FIX: Remove the extra '- ' before your name in the %changelog.
The dash between the date and your name is still there. https://fedoraproject.org/wiki/Packaging/Guidelines#Changelogs
FIX: The devel subpackage contains the same files as the base package. RPM possible handles that but it would be better if you shipped them just once.
Again, see the patch below.
FIX: The %doc macro handles files in the current build directory; don't list bogus absolute paths. Consider the following simple replacement: %doc ChangeLog COPYING README doc/socks And possibly this for the devel subpackage: %doc doc/notes/DEBUG
Still needs to be fixed.
FIX: Include the license in the %doc (see above)
Still needs to be fixed.
FIX: Correct the License tag; it should be GPLv2+; see the source files.
Ok.
FIX: Don't use hardcoded paths in %files. Change /etc to %{_sysconfdir}
Ok.
FIX: The devel subpackage should have an arch-specific base package dependency, e.g. Requires: %{name}%{?_isa} = %{version}-%{release}
Ok.
FIX: Drop the pkgconfig dependency from the devel subpackage. There are no pkgconfig files.
Ok.
TIP: Use the %{name} macro in URL and Source.
Ok.
And now the promised tip/patch. This puts libtorsocks.so.1 and libtorsocks.so.1.0.0 in the base package and the unversioned libtorsocks.so in the devel subpackage. That's the way to go.
Note you still need to fix the changelog and your %doc macros. Those are MUST items.
diff --git a/torsocks.spec b/torsocks.spec index 3b53fc4..7d59edc 100644 --- a/torsocks.spec +++ b/torsocks.spec @@ -30,8 +30,7 @@ rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT
# remove static libraries and libtool droppings -rm -f $RPM_BUILD_ROOT/%{_libdir}/torsocks/lib%{name}.{a,la,so} -rm -f $RPM_BUILD_ROOT/%{_libdir}/torsocks/lib%{name}.{so} +rm -f $RPM_BUILD_ROOT/%{_libdir}/torsocks/lib%{name}.{a,la}* rm -f $RPM_BUILD_ROOT/usr/share/*.patch
%clean @@ -54,14 +53,13 @@ rm -rf $RPM_BUILD_ROOT %doc /usr/share/expectedresults.txt %doc /usr/share/run_tests.sh %doc /usr/share/socks-extensions.txt -#%{_libdir}/torsocks/lib%{name}.so.* +%{_libdir}/torsocks/lib%{name}.so.* %config(noreplace) %{_sysconfdir}/torsocks.conf
%package devel Group: Development/Libraries Summary: The libtsocks library Requires: %{name}%{?_isa} = %{version}-%{release} -Provides: torsocks-static = %{version}-%{release}
%description devel Torsocks allows you to use most socks-friendly applications in a safe way with @@ -71,7 +69,7 @@ These are the files used for development.
%files devel %defattr(-,root,root,-) -%{_libdir}/torsocks/lib* +%{_libdir}/torsocks/lib*.so
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #4 from Eric Christensen eric@christensenplace.us 2012-02-10 00:28:21 EST --- Spec URL: http://sparks.fedorapeople.org/Packages/torsocks.spec
SRPM URL: http://sparks.fedorapeople.org/Packages/torsocks-1.2-1.fc16.src.rpm
Got all that other stuff cleaned up.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #5 from Petr Šabata psabata@redhat.com 2012-02-10 05:17:04 EST --- You've corrected the devel package Summary, +1.
The static libraries are gone and the rest is packaged correctly, good.
Documentation is not the case, though. Why do you insist on hardcoded and absolute paths? How do you know what files are chosen this way? For example, there are three README files in your project.
This is wrong.
The %doc macro does all the work for you. Just give it relative paths (in your build directory) to the files you want to package as documentation and it will do everything you need. Currently it means it places your files into %{_datadir}%{name}-%{version}-%{release} but don't count on that.
So, how to fix this?
1. Don't override datadir. It's defined by rpmbuild. 2. Replace your current %doc macros with builddir relative ones. Examples follow:
# This packages ./README and puts it to /usr/share/torsocks-1.2-1/README %doc README # This packages ./doc/patches/README and puts it to the same location as the above %doc doc/patches/README # This packages the whole ./doc directory and puts its files to /usr/share/torsocks-1.2-1/doc/ %doc doc # You can put specify more files %doc doc/socks/SOCKS4.protocol doc/socks/SOCKS5
See my suggestions in the first comment and/or how other packages do this if you're still unsure.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #6 from Eric Christensen eric@christensenplace.us 2012-02-10 23:12:54 EST --- With your %doc suggestions I still get this error when I build the package:
RPM build errors: Installed (but unpackaged) file(s) found: /usr/share/DEBUG /usr/share/README /usr/share/README.TORDNS /usr/share/SOCKS4.protocol /usr/share/SOCKS5 /usr/share/expectedresults.txt /usr/share/run_tests.sh /usr/share/socks-extensions.txt
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #7 from Petr Šabata psabata@redhat.com 2012-02-13 11:38:05 EST --- Aha, it's THIS broken :)
Well, the best thing to do would be to patch the (auto)Makefiles not to install directly to datadir and send the fix upstream. Or better -- they shouldn't install these files (except for manpages) at all and let distributions handle it. I think it's worth it.
The easier way would be to remove those files in %{buildroot} in install them as I suggested. Or move them to %{buildroot}%{_datadir}%{name}-%{version}-%{release} and mark as %doc. Your choice :)
Whatever you choose, this should be fixed upstream. Please report it.
Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=787561
--- Comment #8 from Petr Šabata psabata@redhat.com --- Ping?
Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=787561
Petr Šabata psabata@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jamielinux@fedoraproject.or | |g
--- Comment #9 from Petr Šabata psabata@redhat.com --- *** Bug 877705 has been marked as a duplicate of this bug. ***
Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=787561
Eric Christensen eric@christensenplace.us changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Resolution|--- |CANTFIX Last Closed| |2012-11-19 14:41:55
--- Comment #10 from Eric Christensen eric@christensenplace.us --- It would appear that Bug 877705 is better prepared than my package. I really haven't had the time to really work on mine with upstream so I'll happily withdraw my package. I'll even see if I can get time to do the review of the other package.
package-review@lists.fedoraproject.org