Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: Review Request: ptpd-phc - Precision Time Protocol daemon
https://bugzilla.redhat.com/show_bug.cgi?id=807810
Summary: Review Request: ptpd-phc - Precision Time Protocol daemon Product: Fedora Version: rawhide Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: medium Component: Package Review AssignedTo: nobody@fedoraproject.org ReportedBy: jwboyer@redhat.com 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://jwboyer.fedorapeople.org/pub/ptpd-phc.spec SRPM URL: http://jwboyer.fedorapeople.org/pub/ptpd-phc-2.1.0-0.1.20120328git.fc16.src.... Description: This is the PTP daemon (PTPd) implementing the Precision Time Protocol (PTP) version 2 as defined by 'IEEE Std 1588-2008'. PTP provides precise time coordination of Ethernet LAN connected computers. It was designed primarily for instrumentation and control systems.
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=807810
Peter Lemenkov lemenkov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lemenkov@gmail.com
--- Comment #1 from Peter Lemenkov lemenkov@gmail.com 2012-03-30 07:18:03 EDT --- Well, from what info I gathered about PTP so far I'm a bit confused. First I've heard about patent concerns regarding PTP:
* https://bugzilla.redhat.com/show_bug.cgi?id=556611#c9 * http://standards.ieee.org/about/sasb/patcom/pat1390.html (search for 1588 )
There was another review of the PTPd here:
* https://bugzilla.redhat.com/show_bug.cgi?id=658796
Also I don't fully get the motivation for packaging this fork of the original PTPd daemon. There are some other forms as well at github:
* https://github.com/richardcochran/ptpd-phc (this one) * https://github.com/pohly/ptpd (another one fork with hardware timestamps) * https://github.com/audioscience/ptpd2 * https://github.com/astraw/ptpd
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=807810
Tom "spot" Callaway tcallawa@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tcallawa@redhat.com Blocks| |182235(FE-Legal)
--- Comment #2 from Tom "spot" Callaway tcallawa@redhat.com 2012-03-30 09:04:12 EDT --- Blocking FE-Legal, while I check on this.
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=807810
Jon Kent jon.kent@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jon.kent@gmail.com
--- Comment #3 from Jon Kent jon.kent@gmail.com 2012-03-31 16:37:26 EDT --- Hi,
I've tried to package this before and hit the patent issue (it does exist, the ptpd outlines this).
Toying with putting this in via rpmfusion. You are welcome to take this approach.
Would be useful I think to have a black list of binaries that will not make it into Fedora because of issues like this.
My 2c
Jon
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=807810
--- Comment #4 from Tom "spot" Callaway tcallawa@redhat.com 2012-04-03 09:58:45 EDT --- I'm lifting the Legal block on this, after consulting with Red Hat Legal. The review can proceed.
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=807810
Tom "spot" Callaway tcallawa@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks|182235(FE-Legal) |
https://bugzilla.redhat.com/show_bug.cgi?id=807810
Jon Stanley jstanley@rmrf.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |jstanley@rmrf.net Flags| |fedora-review?
--- Comment #5 from Jon Stanley jstanley@rmrf.net --- taking review
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #6 from Jon Stanley jstanley@rmrf.net --- A few quick comments.
The comments in the spec file aren't exactly revealing as to how to reproduce *this exact* tarball. In the event that upstream were to actually update this thing (which seems somewhat unlikely given the git history), What I'd get by following your instructions is whatever the latest thing is - not what's in this package. For example from one of my packages:
# Upstream does not provide tarballs. # To generate: # git clone git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git # cd trace-cmd # git archive --prefix=trace-cmd-%%{version}.%%{checkout}/ -o trace-cmd-%%{version}.%%{checkout}.tar.gz %%{git_commit}
Secondly, the standard %{optflags} aren't used. In the same patch where you drop the kernel includes, you could just as easily add $(CFLAGS) to the Makefile and do make CFLAGS=%{optflags}
Thirdly, the debuginfo that is generated is useless - the binary is compiled without -g.
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #7 from Josh Boyer jwboyer@redhat.com --- OK, all good points.
I'll fix this up tomorrow. Thanks for the comments.
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #8 from Josh Boyer jwboyer@redhat.com --- (In reply to comment #6)
For example from one of my packages:
# Upstream does not provide tarballs. # To generate: # git clone git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git # cd trace-cmd # git archive --prefix=trace-cmd-%%{version}.%%{checkout}/ -o trace-cmd-%%{version}.%%{checkout}.tar.gz %%{git_commit}
I like it. Stole it blatantly.
Secondly, the standard %{optflags} aren't used. In the same patch where you drop the kernel includes, you could just as easily add $(CFLAGS) to the Makefile and do make CFLAGS=%{optflags}
Thirdly, the debuginfo that is generated is useless - the binary is compiled without -g.
Patch wasn't needed to fix these two. CFLAGS is already specified in the make file and I can just pass CFLAGS="%{optflags} -DUSE_LINUX_PHC" and it covers both since optflags contains -g.
Updated:
Spec URL: http://jwboyer.fedorapeople.org/pub/ptpd-phc.spec SRPM URL: http://jwboyer.fedorapeople.org/pub/ptpd-phc-2.1.0-0.1.20120921gitecca20.fc1...
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #9 from Jon Stanley jstanley@rmrf.net --- Package Review ==============
Key: - = N/A x = Pass ! = Fail ? = Not evaluated
==== C/C++ ==== [x]: MUST Header files in -devel subpackage, if present. [x]: 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.
==== Generic ==== [x]: EXTRA Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: EXTRA Spec file according to URL is the same as in SRPM. [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 %build honors applicable compiler flags or justifies otherwise. [x]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: MUST Package contains no bundled libraries. [!]: MUST Changelog in prescribed format. [x]: MUST Sources contain only permissible code or content. [!]: MUST Each %files section contains %defattr if rpm < 4.4 Note: defattr(....) present in %files section. This is OK if packaging for EPEL5. Otherwise not needed [-]: MUST Macros in Summary, %description expandable at SRPM build time. [-]: MUST Package contains desktop file if it is a GUI application. [-]: MUST Development files must be in a -devel package [-]: MUST Package requires other packages for directories it uses. [-]: 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. [x]: MUST Package does not contain duplicates in %files. [x]: MUST Package complies to the Packaging Guidelines [x]: MUST Spec file lacks Packager, Vendor, PreReq tags. [x]: 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 Large documentation files are in a -doc subpackage, if required. [x]: 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. [x]: MUST License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "BSD (2 clause)" For detailed output of licensecheck see file: /home/jstanley/review/ptpd-phc/licensecheck.txt [x]: MUST Package consistently uses macro is (instead of hard-coded directory names). [x]: MUST Package is named using only allowed ascii characters. [x]: MUST Package is named according to the Package Naming Guidelines. [x]: MUST Package does not generate any conflict. Note: Package contains no Conflicts: tag(s) [x]: MUST Package obeys FHS, except libexecdir and /usr/target. [-]: MUST If the package is a rename of another package, proper Obsoletes and Provides are present. [-]: MUST Package must own all directories that it creates. [x]: MUST Package does not own files or directories owned by other packages. [x]: MUST Package installs properly. [x]: MUST Package is not relocatable. [x]: MUST Requires correct, justified where necessary. [!]: MUST Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see below). [x]: MUST Sources used to build the package match the upstream source, as provided in the spec URL. NOTE: This is a git checkout - see below for verification [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 systemd file(s) if in need. [x]: MUST File names are valid UTF-8. [x]: MUST Useful -debuginfo package or justification otherwise. [x]: SHOULD Reviewer should test that the package builds in mock. [x]: SHOULD Buildroot is not present Note: Unless packager wants to package for EPEL5 this is fine [x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: Clean would be needed if support for EPEL5 is required [-]: 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. [x]: SHOULD Latest version is packaged. [x]: SHOULD Package does not include license text files separate from upstream. [x]: SHOULD Patches link to upstream bugs/comments/lists or are otherwise justified.
- The single patch present is for obvious reasons. [x]: SHOULD SourceX tarball generation or download is documented. Note: Package contains tarball without URL, check comments [x]: SHOULD SourceX / PatchY prefixed with %{name}. [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. [?]: SHOULD Package should compile and build into binary rpms on all supported architectures. - Tested on x86_64 [-]: SHOULD %check is present and all tests pass. No tests upstream [ ]: SHOULD Packages should try to preserve timestamps of original installed files. [x]: SHOULD Spec use %global instead of %define.
Issues: [!]: MUST Each %files section contains %defattr if rpm < 4.4 Note: defattr(....) present in %files section. This is OK if packaging for EPEL5. Otherwise not needed See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
The package seems slightly schizophrenic in this regard :). I think that it would be useful on EPEL5, but it's half there and half not. It has a %defattr, but no BuildRoot. Pick one or the other (and I'd suggest the EPEL5 compatible one :D)
[!]: MUST Package contains systemd file(s) if in need.
This is a daemon, and there's no systemd unit packaged for it.
[!]: MUST Changelog in prescribed format. The changelog lacks versioning info.
Also, fix the rpmlint warnings about the non-standard group (I think it's looking for 'System Environment/Daemons' here.
I noted a lack of documentation or default config as well, though the help output is relatively sane.
Rpmlint ------- Checking: ptpd-phc-debuginfo-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm ptpd-phc-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm ptpd-phc-2.1.0-0.1.20120921gitecca20.fc16.src.rpm ptpd-phc-debuginfo.x86_64: W: no-version-in-last-changelog ptpd-phc.x86_64: W: non-standard-group System/Daemon ptpd-phc.x86_64: W: no-version-in-last-changelog ptpd-phc.x86_64: W: no-manual-page-for-binary ptpd2 ptpd-phc.src: W: non-standard-group System/Daemon ptpd-phc.src: W: no-version-in-last-changelog ptpd-phc.src:26: W: setup-not-quiet ptpd-phc.src: W: invalid-url Source0: ptpd-phc-2.1.0.20120921gitecca20.tar.gz 3 packages and 0 specfiles checked; 0 errors, 8 warnings.
Rpmlint (installed packages) ---------------------------- # rpmlint ptpd-phc ptpd-phc.x86_64: I: enchant-dictionary-not-found en_US ptpd-phc.x86_64: W: non-standard-group System/Daemon ptpd-phc.x86_64: W: no-version-in-last-changelog ptpd-phc.x86_64: W: no-manual-page-for-binary ptpd2 1 packages and 0 specfiles checked; 0 errors, 3 warnings. # echo 'rpmlint-done:'
Requires -------- ptpd-phc-debuginfo-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm (rpmlib, GLIBC filtered):
ptpd-phc-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm (rpmlib, GLIBC filtered):
libc.so.6()(64bit) libm.so.6()(64bit) librt.so.1()(64bit) rtld(GNU_HASH)
Provides -------- ptpd-phc-debuginfo-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm:
ptpd-phc-debuginfo = 2.1.0-0.1.20120921gitecca20.fc16 ptpd-phc-debuginfo(x86-64) = 2.1.0-0.1.20120921gitecca20.fc16
ptpd-phc-2.1.0-0.1.20120921gitecca20.fc16.x86_64.rpm:
ptpd-phc = 2.1.0-0.1.20120921gitecca20.fc16 ptpd-phc(x86-64) = 2.1.0-0.1.20120921gitecca20.fc16
MD5-sum check ------------- $ sha256sum ptpd-phc-2.1.0.20120921gitecca20.tar.gz ../../ptpd-phc-upstream/ptpd-phc-2.1.0.20120921gitecca20.tar.gz 77132a417aaae1030bac09c423e1fdf650a36a7e33671c4eb7aa7de40897bcd3 ptpd-phc-2.1.0.20120921gitecca20.tar.gz 77132a417aaae1030bac09c423e1fdf650a36a7e33671c4eb7aa7de40897bcd3 ../../ptpd-phc-upstream/ptpd-phc-2.1.0.20120921gitecca20.tar.gz
Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09 Command line :/usr/bin/fedora-review -n ptpd-phc External plugins:
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #10 from Josh Boyer jwboyer@redhat.com --- (In reply to comment #9)
Issues: [!]: MUST Each %files section contains %defattr if rpm < 4.4 Note: defattr(....) present in %files section. This is OK if packaging for EPEL5. Otherwise not needed See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
The package seems slightly schizophrenic in this regard :). I think that it would be useful on EPEL5, but it's half there and half not. It has a %defattr, but no BuildRoot. Pick one or the other (and I'd suggest the EPEL5 compatible one :D)
I have no interest in doing anything with EPEL5 at all. Ever. If someone wishes to co-maintain this package on that branch then they can fix that up on the branch.
[!]: MUST Package contains systemd file(s) if in need.
This is a daemon, and there's no systemd unit packaged for it.
I'll look into this.
[!]: MUST Changelog in prescribed format. The changelog lacks versioning info.
Erm. Right.
Also, fix the rpmlint warnings about the non-standard group (I think it's looking for 'System Environment/Daemons' here.
OK.
I noted a lack of documentation or default config as well, though the help output is relatively sane.
Yes, well upstream lacks that.
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #11 from Jon Stanley jstanley@rmrf.net --- (In reply to comment #10)
I have no interest in doing anything with EPEL5 at all. Ever. If someone wishes to co-maintain this package on that branch then they can fix that up on the branch.
Then the %defattr can be removed. I might be the sucker^Wperson interested in maintaining this in EPEL5 :)
I noted a lack of documentation or default config as well, though the help output is relatively sane.
Yes, well upstream lacks that.
Yeah, and that's a fairly sad state of affairs :)
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #12 from Josh Boyer jwboyer@redhat.com --- (In reply to comment #11)
(In reply to comment #10)
I have no interest in doing anything with EPEL5 at all. Ever. If someone wishes to co-maintain this package on that branch then they can fix that up on the branch.
Then the %defattr can be removed. I might be the sucker^Wperson interested in maintaining this in EPEL5 :)
Done.
Upon further thinking, I'd check with RHEL before doing anything with this on EPEL[56]. It requires matching kernel functionality which is present in all of Fedora, but wasn't included upstream until the 3.0 kernel or there-abouts.
OK, systemd unit file added. It even appears to work in my brief testing.
rpmlint only warns about the source URL thing.
Updated:
Spec file: http://jwboyer.fedorapeople.org/pub/ptpd-phc.spec SRPM file: http://jwboyer.fedorapeople.org/pub/ptpd-phc-2.1.0-0.2.20120921gitecca20.fc1...
https://bugzilla.redhat.com/show_bug.cgi?id=807810
Jon Stanley jstanley@rmrf.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|fedora-review? | Flags| |fedora-review+
--- Comment #13 from Jon Stanley jstanley@rmrf.net --- OK, this package is APPROVED.
One minor nit that you might want to fix in the systemd unit file though - there's no way to configure in there. I would add an EnvironmentFile and use something like /usr/bin/ptpd2 $OPTIONS as the ExecStart.
But the admin can override the unit file if he wants to as well, so I wouldn't think that this would be a blocker, more of a style thing.
https://bugzilla.redhat.com/show_bug.cgi?id=807810
Josh Boyer jwboyer@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-cvs?
--- Comment #14 from Josh Boyer jwboyer@redhat.com --- New Package SCM Request ======================= Package Name: ptpd-phc Short Description: This is the PTP daemon (PTPd) implementing the Precision Time Protocol (PTP) version 2 Owners: jwboyer Branches: f17 f18 InitialCC:
https://bugzilla.redhat.com/show_bug.cgi?id=807810
--- Comment #15 from Jon Ciesla limburgher@gmail.com --- Git done (by process-git-requests).
Jon, please take ownership of review BZs, thanks!
https://bugzilla.redhat.com/show_bug.cgi?id=807810
Jon Stanley jstanley@rmrf.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|nobody@fedoraproject.org |jstanley@rmrf.net
--- Comment #16 from Jon Stanley jstanley@rmrf.net --- Oops, forgot to do that. Fixed now.
Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=807810
Peter Lemenkov lemenkov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Fixed In Version| |ptpd-phc-2.1.0-0.2.20120921 | |gitecca20.fc18 Resolution|--- |ERRATA Last Closed| |2012-12-02 07:01:44
package-review@lists.fedoraproject.org