SPEC URL : http://giverny.tuxette.fr/copr/fusioninventory-agent.spec SRPM URL : http://giverny.tuxette.fr/copr/fusioninventory-agent-2.3.6-0.fc20.src.rpm FusionInventory Agent is an application designed to help a network or system administrator to keep track of the hardware and software configurations of computers that are installed on the network. The package is actually orphaned for Fedora and hold by Remi Collet (remi) in EPEL but if he agree, I will maintain the both. Spec here is only for systemd so it won't work on EPEL 6 without modification. I have only tested on fedora 20 but it should work on fedora 19 without major modification. FAS username : jehane Copr repository : http://copr.fedoraproject.org/coprs/jehane/fusioninventory-agent/ I have voluntary exclude the wake-on-lan support (task-wol) because it requires perl-Net-Write wich has an unacceptable licence ( see https://fedoraproject.org/wiki/Deprecated_packages ) Since this is my first review request, as docs state that i'm asking for a sponsor.
Updated spec for 2.3.7.1 version http://giverny.tuxette.fr/copr/fusioninventory/2.3.7/fusioninventory-agent.spec
New release : updated spec and srpm http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent-2.3.8-0.fc20.src.rpm http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent.spec
Compared with the last official build in koji, http://koji.fedoraproject.org/koji/packageinfo?packageID=12285 you've introduced several packaging mistakes related to "unowned directories" and duplicated files: https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership https://fedoraproject.org/wiki/Packaging:UnownedDirectories The subpackage inter-dependencies are not trivial, so let's see: %files -n perl-FusionInventory-Agent %doc Changes LICENSE THANKS %{_datadir}/fusioninventory The last line in this %files list includes the directory /usr/share/fusioninventory *and* everything in it. That means it includes also the files and subdirs specified in the subpackages -task-esx, -task-network, -task-deploy and -task-inventory. Example: %files task-esx %{_bindir}/fusioninventory-esx %{_mandir}/man1/fusioninventory-esx.1* %{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/ESX.pm %{_datadir}/fusioninventory/lib/FusionInventory/Agent/SOAP One way to avoid that is to either %exclude all those files (included in the subpackages already) in the perl-FusionInventory-Agent package. Or be more specific about what to include in the perl-FusionInventory-Agent package based on including only the %dir %files -n perl-FusionInventory-Agent %doc Changes LICENSE THANKS %dir %{_datadir}/fusioninventory ...add specific files and needed %dir entries here... Note that there are a various subdirs in paths such as %{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/, which must not be "unowned". A related hint: To increase readability of directory entries in %files lists, many packagers append a trailing slash to emphasize that the entry is for a directory tree and not a single file: %{_datadir}/somedirectory/ [...] Your %changelog refers to 2.3.6-1 but the spec file is 2.3.6-0: Version: 2.3.6 Release: 0%{?dist} Consider pointing the fedora-review tool at this ticket (run "fedora-review -b 1090933") to let it perform many tests not limited to running rpmlint on all packages. > find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';' Not needed anymore for many years. > %files > /%{_bindir}/fusioninventory-injector Why the leading slash? $ rpm -E %_bindir /usr/bin
I have updated the spec according to previous (not sure to have correct everything but I will continue working on it) I also add requires I had missed. One of them is not available actually in fedora, so I have created a spec file and open a new review request ( https://bugzilla.redhat.com/show_bug.cgi?id=1100870 ) Spec is http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent.spec src.rpm is http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent-2.3.8-1.fc20.src.rpm
Uptated to latest version : SPEC URL : http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent.spec SRPM URL : http://giverny.tuxette.fr/~jehane/copr/fusioninventory/fusioninventory-agent-2.3.13-1.fc22.src.rpm
Marianne has been sponsored since, dropping the FE-NEEDSPONSOR.
Two things before approving this package: 1. Fix the following unowned directories /usr/share/fusioninventory /usr/share/fusioninventory/lib /usr/share/fusioninventory/lib/FusionInventory /usr/share/fusioninventory/lib/FusionInventory/Agent /usr/share/fusioninventory/lib/FusionInventory/Agent/Task http://fedoraproject.org/wiki/Packaging:UnownedDirectories 2. Add a comment explaining why the wakeonlan plugin is not shipping due to a dependency with problematic licensing (Artistic Perl v1) That is not mandatory, but this will avoid that a comaintainer or provenpackager adds it back by mistake.
I have updated spec according to your review : SPEC URL : http://giverny.tuxette.fr/~jehane/copr/fusioninventory/fusioninventory-agent.spec SRPM URL : http://giverny.tuxette.fr/copr/fusioninventory/fusioninventory-agent-2.3.14-2.fc21.src.rpm
Few things: * clean up tabs in the cron script (the expand command should be enough) before importing the src.rpm * consider enabling unit tests during build time I am confident that you will do that in a timely fashion, not blocking the review for that. I hereby approve this package into Fedora Packages Collection since it complies with our guidelines. Please submit a SCM request. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "GPL (v2 or later)", "Unknown or generated". 259 files have unknown license. Detailed output of licensecheck in /home/haikel/1090933 -fusioninventory-agent/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: Package must own all directories that it creates. Note: Directories without known owners: /etc/cron.hourly [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf %{buildroot} present but not required [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [x]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 133120 bytes in 3 files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: 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]: Package requires other packages for directories it uses. [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: %config files are marked noreplace or the reason is justified. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: No %config files under /usr. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Perl: [x]: Package contains the mandatory BuildRequires and Requires:. ===== SHOULD items ===== Generic: [-]: 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]: Final provides and requires are sane (see attachments). [-]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in perl- FusionInventory-Agent , fusioninventory-agent-task-esx , fusioninventory- agent-yum-plugin , fusioninventory-agent-task-network , fusioninventory- agent-task-deploy , fusioninventory-agent-task-inventory [x]: Package functions as described. [x]: Latest version is packaged. [-]: Package does not include license text files separate from upstream. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: Dist tag is present (not strictly required in GL). [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Uses parallel make %{?_smp_mflags} macro. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: fusioninventory-agent-2.3.14-2.fc22.x86_64.rpm perl-FusionInventory-Agent-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-task-esx-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-yum-plugin-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-task-network-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-task-deploy-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-task-inventory-2.3.14-2.fc22.noarch.rpm fusioninventory-agent-2.3.14-2.fc22.src.rpm fusioninventory-agent.x86_64: W: spelling-error %description -l en_US perl -> Perl, peel, perk fusioninventory-agent.x86_64: W: spelling-error %description -l en_US vCenter -> v Center, center, cementer fusioninventory-agent.x86_64: E: no-binary fusioninventory-agent-task-esx.noarch: W: spelling-error Summary(en_US) vCenter -> v Center, center, cementer fusioninventory-agent-task-esx.noarch: W: spelling-error %description -l en_US vCenter -> v Center, center, cementer fusioninventory-agent-yum-plugin.noarch: W: spelling-error %description -l en_US rpc -> rec, rps, rpm fusioninventory-agent-yum-plugin.noarch: W: spelling-error %description -l en_US localhost -> local host, local-host, holocaust fusioninventory-agent-yum-plugin.noarch: W: only-non-binary-in-usr-lib fusioninventory-agent-yum-plugin.noarch: W: no-documentation fusioninventory-agent-task-network.noarch: W: spelling-error %description -l en_US netdiscovery -> net discovery, net-discovery, discovery fusioninventory-agent-task-network.noarch: W: spelling-error %description -l en_US netinventory -> net inventory, net-inventory, inventory fusioninventory-agent-task-deploy.noarch: W: no-documentation fusioninventory-agent.src: W: spelling-error %description -l en_US perl -> Perl, peel, perk fusioninventory-agent.src: W: spelling-error %description -l en_US vCenter -> v Center, center, cementer fusioninventory-agent.src: W: spelling-error %description -l en_US sysconfig -> configure fusioninventory-agent.src:12: W: macro-in-comment %{name} fusioninventory-agent.src:115: W: macro-in-comment %package fusioninventory-agent.src:119: W: macro-in-comment %{version} fusioninventory-agent.src:119: W: macro-in-comment %{release} fusioninventory-agent.src:121: W: macro-in-comment %description fusioninventory-agent.src:161: W: macro-in-comment %{name} fusioninventory-agent.src:200: E: hardcoded-library-path in %{_prefix}/lib/yum-plugins/%{name}.py fusioninventory-agent.src:236: W: macro-in-comment %exclude fusioninventory-agent.src:236: W: macro-in-comment %{_datadir} fusioninventory-agent.src:246: E: hardcoded-library-path in %{_prefix}/lib/yum-plugins/%{name}.* fusioninventory-agent.src:267: W: macro-in-comment %files 8 packages and 0 specfiles checked; 3 errors, 23 warnings. Rpmlint (installed packages) ---------------------------- Cannot parse rpmlint output: Requires -------- fusioninventory-agent-task-network (rpmlib, GLIBC filtered): /usr/bin/perl fusioninventory-agent perl(Encode) perl(English) perl(Getopt::Long) perl(Net::IP) perl(Pod::Usage) perl(Thread::Queue) perl(Time::localtime) perl(UNIVERSAL::require) perl(XML::TreePP) perl(base) perl(constant) perl(lib) perl(strict) perl(threads) perl(warnings) fusioninventory-agent-yum-plugin (rpmlib, GLIBC filtered): config(fusioninventory-agent-yum-plugin) fusioninventory-agent yum fusioninventory-agent (rpmlib, GLIBC filtered): /bin/bash /bin/sh /usr/bin/perl config(fusioninventory-agent) cronie dmidecode logrotate perl(:MODULE_COMPAT_5.20.1) perl(Compress::Zlib) perl(English) perl(Fcntl) perl(Getopt::Long) perl(LWP::UserAgent) perl(Pod::Usage) perl(lib) perl(strict) perl(warnings) perl-FusionInventory-Agent systemd fusioninventory-agent-task-deploy (rpmlib, GLIBC filtered): fusioninventory-agent perl(Archive::Extract) perl(Compress::Zlib) perl(Cwd) perl(Digest::SHA) perl(Encode) perl(English) perl(Exporter) perl(Fcntl) perl(File::Basename) perl(File::Copy::Recursive) perl(File::Glob) perl(File::Path) perl(File::Spec) perl(HTTP::Request) perl(HTTP::Request::Common) perl(JSON) perl(LWP) perl(Net::IP) perl(POE) perl(UNIVERSAL::require) perl(URI::Escape) perl(base) perl(strict) perl(warnings) fusioninventory-agent-task-inventory (rpmlib, GLIBC filtered): /usr/bin/perl fusioninventory-agent perl(Config) perl(English) perl(File::Basename) perl(File::Find) perl(File::Temp) perl(Getopt::Long) perl(List::Util) perl(MIME::Base64) perl(Net::CUPS) perl(Net::Domain) perl(POSIX) perl(Parse::EDID) perl(Pod::Usage) perl(Sys::Hostname) perl(UNIVERSAL::require) perl(User::pwent) perl(XML::TreePP) perl(base) perl(constant) perl(integer) perl(lib) perl(strict) perl(warnings) perl-FusionInventory-Agent (rpmlib, GLIBC filtered): perl(:MODULE_COMPAT_5.20.1) perl(Compress::Zlib) perl(Config) perl(Cwd) perl(Data::Dumper) perl(Digest::MD5) perl(Digest::SHA) perl(Encode) perl(English) perl(Exporter) perl(Fcntl) perl(File::Basename) perl(File::Copy::Recursive) perl(File::Find) perl(File::Glob) perl(File::Path) perl(File::Spec) perl(File::Temp) perl(File::Which) perl(File::stat) perl(Getopt::Long) perl(HTTP::Cookies) perl(HTTP::Daemon) perl(HTTP::Request) perl(HTTP::Request::Common) perl(HTTP::Status) perl(IO::Handle) perl(IO::Socket::SSL) perl(JSON) perl(LWP) perl(LWP::Protocol::http::SocketMethods) perl(LWP::Protocol::https) perl(LWP::UserAgent) perl(List::Util) perl(MIME::Base64) perl(Memoize) perl(Net::CUPS) perl(Net::Domain) perl(Net::HTTPS) perl(Net::IP) perl(Net::SNMP) perl(Net::SSLeay) perl(Net::hostent) perl(POE) perl(POSIX) perl(Proc::Daemon) perl(Proc::PID::File) perl(Scalar::Util) perl(Socket) perl(Socket::GetAddrInfo) perl(Storable) perl(Sys::Hostname) perl(Sys::Syslog) perl(Text::Template) perl(Thread::Queue) perl(Time::Local) perl(Time::localtime) perl(UNIVERSAL::require) perl(URI) perl(URI::Escape) perl(User::pwent) perl(XML::TreePP) perl(base) perl(constant) perl(integer) perl(strict) perl(threads) perl(threads::shared) perl(utf8) perl(warnings) fusioninventory-agent-task-esx (rpmlib, GLIBC filtered): /usr/bin/perl fusioninventory-agent perl(English) perl(Getopt::Long) perl(HTTP::Cookies) perl(LWP::UserAgent) perl(Pod::Usage) perl(XML::TreePP) perl(base) perl(lib) perl(strict) perl(warnings) Provides -------- fusioninventory-agent-task-network: fusioninventory-agent-task-network fusioninventory-agent-yum-plugin: config(fusioninventory-agent-yum-plugin) fusioninventory-agent-yum-plugin fusioninventory-agent: config(fusioninventory-agent) fusioninventory-agent fusioninventory-agent(x86-64) fusioninventory-agent-task-deploy: fusioninventory-agent-task-deploy fusioninventory-agent-task-inventory: fusioninventory-agent-task-inventory perl-FusionInventory-Agent: perl-FusionInventory-Agent fusioninventory-agent-task-esx: fusioninventory-agent-task-esx Source checksums ---------------- http://search.cpan.org/CPAN/authors/id/G/GR/GROUSSE/FusionInventory-Agent-2.3.14.tar.gz : CHECKSUM(SHA256) this package : cb189faa15297b7b0701e1f11866a95b46288e2df0bbf6dd6b5177276fabb932 CHECKSUM(SHA256) upstream package : cb189faa15297b7b0701e1f11866a95b46288e2df0bbf6dd6b5177276fabb932
New Package SCM Request ======================= Package Name: fusioninventory-agent Short Description: FusionInventory agent Upstream URL: http://fusioninventory.org/ Owners: jehane Branches: devel f20 f21 epel7 InitialCC: perl-sig Package was orphaned and retired, still present in el6
Git done (by process-git-requests).
This is weird, Jehane did not get commit on any of the Fedora branches. She got listed as PoC for master and el6 (that she had before). She got 'Awaiting Review' approveacls on master (she had el6 before). She got all the watch* ACLs on all branches but no commit ACL on any branch. The action from the script can be found there: https://admin.fedoraproject.org/pkgdb/package/fusioninventory-agent/timeline#n21 I will fix things directly in pkgdb, but there is something odd going on here.
(In reply to Pierre-YvesChibon from comment #12) > This is weird, Jehane did not get commit on any of the Fedora branches. > I will fix things directly in pkgdb, but there is something odd going on > here. It might be that a Package Change Request (or similar) is needed instead of a New Package SCM Request. Or it needs to be spotted manually by the process-git-process operator. Nevertheless, it will all get better with the new process. :-).