Bug 1241919

Summary: Review Request: python-line_profiler - Line-by-line profiler for Python.
Product: [Fedora] Fedora Reporter: Jackson Isaac <jacksonisaac2008>
Component: Package ReviewAssignee: Michel Lind <michel>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: michel, mrunge, orion, package-review, panemade
Target Milestone: ---Flags: michel: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-line_profiler-1.0-6.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-13 16:55:39 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jackson Isaac 2015-07-10 12:15:51 UTC
This is my first package and I would like someone to sponsor me.

Spec URL: https://github.com/JacksonIsaac/line_profiler-rpm/blob/master/python-line_profiler.spec

SRPM URL: https://github.com/JacksonIsaac/line_profiler-rpm/blob/master/SRPMS/python-line_profiler-1.0-1.fc22.src.rpm

Description: line_profiler is a module for doing line-by-line profiling of python functions. kernprof is a convenient script for running either line_profiler or the Python standard library's cProfile or profile modules, depending on what is available.

Fedora Account System Username: jacksonisaac

Koji Build URL: http://koji.fedoraproject.org/koji/taskinfo?taskID=10330684

Comment 1 Matthias Runge 2015-07-10 13:12:22 UTC
fedora-review -b 1241919
INFO: Processing bugzilla bug: 1241919
INFO: Getting .spec and .srpm Urls from : 1241919
INFO:   --> SRPM url: https://github.com/JacksonIsaac/line_profiler-rpm/blob/master/SRPMS/python-line_profiler-1.0-1.fc22.src.rpm
INFO:   --> Spec url: https://github.com/JacksonIsaac/line_profiler-rpm/blob/master/python-line_profiler.spec
INFO: Using review directory: /home/mrunge/review/1241919-python-line_profiler
INFO: Downloading .spec and .srpm files
error: line 4: Unknown tag: <!DOCTYPE html>


Please put your spec file somewhere, where it can be wget'ed.

Comment 2 Jackson Isaac 2015-07-10 14:01:28 UTC
(In reply to Matthias Runge from comment #1)

> Please put your spec file somewhere, where it can be wget'ed.

Adding it to sites.google.com

Spec URL: https://sites.google.com/site/jacksonisaac2008/python-line_profiler.spec

SRPM URL: https://sites.google.com/site/jacksonisaac2008/python-line_profiler-1.0-1.fc22.src.rpm

I tried these links by using wget and it can be wget'ed. I hope the links work fine.

Comment 3 Michel Lind 2015-07-11 15:41:30 UTC
Your package is not buildable due to missing dependencies. As communicated earlier, try running fedora-review on it:

fedora-review -b 1241919

The reason it's advisable to build in a clean environment (using mock) is because otherwise the package might build on *your* machine with all sorts of Python libs already installed, but fail on a build server where we only include the libraries you specify as dependencies.

relevant result:
Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    import setuptools
ImportError: No module named setuptools
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.8H1jOo (%build)
    Bad exit status from /var/tmp/rpm-tmp.8H1jOo (%build)
Child return code was: 1
EXCEPTION: Command failed. See logs for output.
 # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps  /builddir/build/SPECS/python-line_profiler.spec 
Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.4/site-packages/mockbuild/util.py", line 494, in do
    raise exception.Error("Command failed. See logs for output.\n # %s" % (command,), child.returncode)
mockbuild.exception.Error: Command failed. See logs for output.
 # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps  /builddir/build/SPECS/python-line_profiler.spec 
LEAVE do --> EXCEPTION RAISED

Comment 4 Jackson Isaac 2015-07-12 11:48:12 UTC
(In reply to Michel Alexandre Salim from comment #3)
> Your package is not buildable due to missing dependencies. As communicated
> earlier, try running fedora-review on it:
> 
> fedora-review -b 1241919
> 
> The reason it's advisable to build in a clean environment (using mock) is
> because otherwise the package might build on *your* machine with all sorts
> of Python libs already installed, but fail on a build server where we only
> include the libraries you specify as dependencies.
> 

I ran mock on the SRPM file "mock --verbose rpmbuild/SRPMS/python-line_profiler-1.0-1.fc22.src.rpm" and it didn't give any errors, though it downloaded some dependency packages like python-setuptools, etc., here is my log: http://pastie.org/10287803

Also attaching my fedora-review.txt: http://pastie.org/10287808

I notice a RPMlint error in the review.txt, whereas when I run "rpmlint python-line_profiler.spec ../SRPMS/python-line_profiler-1.0-1.fc22.src.rpm ../RPMS/x86_64/python3-line_profiler-* ../RPMS/x86_64/python-line_profiler-*" I do not get any error.

Am I running some command incorrectly ?

Comment 5 Orion Poplawski 2015-07-13 21:56:14 UTC
The problem is mock does not disable network access by default, but the koji builders do not have network access to enforce build reproducibility.  You can:

- do test builds in koji
- Disable networking in mock by setting in you mock configs:

 config_opts['use_host_resolv'] = False


.so files are expected to be 0755.

Comment 6 Michel Lind 2015-07-14 06:54:07 UTC
Could be an intermittent problem on Rawhide, I'll check when I have access to my Fedora machine.

Comment 7 Jackson Isaac 2015-07-14 13:32:45 UTC
Depending on the dependencies built during mock, add more BuildRequires to .spec file.

For rpmlint error, add a %attr under %files. Also set 'with_python3 1' for fedora.

Spec URL: https://sites.google.com/site/jacksonisaac2008/home/rpm-files/python-line_profiler.spec

SRPM URL: https://sites.google.com/site/jacksonisaac2008/home/rpm-files/python-line_profiler-1.0-1.fc22.src.rpm

Koji build test links:
f22: https://koji.fedoraproject.org/koji/taskinfo?taskID=10352971
rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=10352963

Comment 8 Michel Lind 2015-07-14 15:49:23 UTC
Turns out my original build was done using Fedora 21 -- on a system upgraded from F21 to F22, turns out mock doesn't update where /etc/mock/default.cfg points. Heh. That being said, the latest spec builds fine in mock / F22 so I'll do a review.

For some reason fedora-review also thinks there is an existing python-line_profiler package, which is really odd, that looks like an interesting mystery to debug.

Comment 9 Jackson Isaac 2015-07-14 16:12:33 UTC
(In reply to Michel Alexandre Salim from comment #8)
> Turns out my original build was done using Fedora 21 -- on a system upgraded
> from F21 to F22, turns out mock doesn't update where /etc/mock/default.cfg
> points. Heh. That being said, the latest spec builds fine in mock / F22 so
> I'll do a review.
> 
> For some reason fedora-review also thinks there is an existing
> python-line_profiler package, which is really odd, that looks like an
> interesting mystery to debug.

Here is my review.txt: http://pastie.org/10292343

I guess, you meant the Issues in review.txt, it might be because python-line_profiler was packaged long back (~6 years ago) which is now orphaned.

I notice a failure in Extra Items (generic) "Note: Spec file as given by url is not the same as in SRPM (see attached diff)." Maybe I accidentally uploaded the old SRPM, and also the permissions are not yet set correctly for .so files

Comment 10 Michel Lind 2015-07-14 16:16:35 UTC
Yes, could you make sure both spec and SRPM are the latest version and let me know when I can try again?

fedora-review generated an incorrect PkgDB URL for the old (now retired) line_profiler package, which caused some confusion on my part. It should probably also distinguish between a clash with an actively maintained package and a retired package, but that's another issue.

FYI --
https://fedorahosted.org/FedoraReview/ticket/263

Comment 11 Jackson Isaac 2015-07-14 17:18:53 UTC
(In reply to Michel Alexandre Salim from comment #10)
> Yes, could you make sure both spec and SRPM are the latest version and let
> me know when I can try again?

I have uploaded the latest files and the links for them remain the same, so you can run fedora-review on the same links again.

Comment 12 Jackson Isaac 2015-07-15 11:11:16 UTC
Adding Spec and SRPMS files to jacksonisaac.fedorapeople.org

Latest changes made on 15th July, 2015. As Michel previously mentioned, I will be putting my files under a dated folder so that it is easy to differentiate between the files and there is less confusion in future.

Spec URL: https://jacksonisaac.fedorapeople.org/packaging/python-line_profiler/15-July-2015/python-line_profiler.spec

SRPM URL: https://jacksonisaac.fedorapeople.org/packaging/python-line_profiler/15-July-2015/python-line_profiler-1.0-1.fc22.src.rpm

Comment 13 Matthias Runge 2015-07-15 14:20:06 UTC
It would be good to document changes directly in the spec file. This way, a reviewer doesn't have to pull older versions.

That being said, it makes sense to increment release number in this process.

Comment 14 Matthias Runge 2015-07-15 14:33:32 UTC
more comments:

- drop python2 related macros, afaik they are not required, even on rhel6.
- an example for a more renovated py2/py3 building is here: https://fedoraproject.org/wiki/Packaging:Python#Example_spec_file
- your package needs to provide python2-line_profiler and python3-line_profiler
- I would name the package python-line-profiler: https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators
- drop requires on python2, python3 and python-libs
-second sed foo in %prep is not useful (it's already deleted by the first one)
- be more specific on file list (other than just including everything)
- you shouldn't need %attr at all
- please take care to use compiler flags in build

Comment 15 Orion Poplawski 2015-07-15 14:46:33 UTC
(In reply to Matthias Runge from comment #14)
> more comments:
> 
> - drop python2 related macros, afaik they are not required, even on rhel6.

They are still needed on rhel6.

> - I would name the package python-line-profiler:
> https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators

NO - the _ is fine if it's part of the name, as it is.  Read the whole section.

> - you shouldn't need %attr at all

Apparently the .so gets installed with 775 (see comment #5)

Comment 16 Jackson Isaac 2015-07-15 15:08:00 UTC
(In reply to Matthias Runge from comment #14)
> more comments:
> 
> - your package needs to provide python2-line_profiler and
> python3-line_profiler

This can be done by adding Provides: python2-%{pkgname} and inside python3 if block Provides: python3-%{pkgname} ?

Also, the script placed in /usr/bin would be of same name, so I would have to add %{_bindir}/kernprof2 and %{_bindir}/kernprof3 under %files so that py2/py3 versions of it can be used along each other. Should I add a '-' between kernprof and version too ?

> - drop requires on python2, python3 and python-libs
Aren't they required while building as such ? or rather they are shipped along with the installation CD ?

> - be more specific on file list (other than just including everything)
Do you mean the %{python2_sitelib}/* and %{python3_sitearch}/* ?

> - please take care to use compiler flags in build
I referred to various spec and was confused about it, will take care of that.

Comment 17 Orion Poplawski 2015-07-15 15:12:46 UTC
(In reply to Jackson Isaac from comment #16)
> (In reply to Matthias Runge from comment #14)
> > more comments:
> > 
> > - your package needs to provide python2-line_profiler and
> > python3-line_profiler
> 
> This can be done by adding Provides: python2-%{pkgname} and inside python3
> if block Provides: python3-%{pkgname} ?

You don't need to explicitly provide python3-%{pkgname} as that is the name of the sub-package.

> Also, the script placed in /usr/bin would be of same name, so I would have
> to add %{_bindir}/kernprof2 and %{_bindir}/kernprof3 under %files so that
> py2/py3 versions of it can be used along each other. Should I add a '-'
> between kernprof and version too ?

Custom is to use %{_bindir}/kernprof-%{python2_version} (and python3_version).

> > - drop requires on python2, python3 and python-libs
> Aren't they required while building as such ? or rather they are shipped
> along with the installation CD ?

Automatically brought in by python2-devel/python3-devel

Comment 19 Michael Schwendt 2015-07-19 12:19:01 UTC
Using %py3dir is unclean.

See https://fedoraproject.org/w/index.php?title=Packaging%3APython&diff=405394&oldid=404468
[ https://fedorahosted.org/fpc/ticket/435 ]



> %attr(0755, root, root) %{python2_sitearch}/*.so

These are very ordinary permissions for such a *.so file. Especially "root,root" is a default.

If the %install section doesn't get the permissions within the %buildroot right, it ought to get fixed upstream (e.g. via "install -m…")and temporarily in %install. In the same way you would chmod -x files not meant to be executed, such as source files, README files, license texts. If the %install section gets it right already, it's overuse of %attr here.

Please restrict %attr usage to really _special_ cases, such as setuid/setgid, and non-root ownership. Those are the cases when you want special attributes to _stick out_ when displaying the spec file. In addition to that, if it were a larger package with lots of files in several subpackages, having to add %attr everywhere would be a burden and would decrease readability.

Comment 21 Michel Lind 2015-07-20 14:53:06 UTC
Heh, that reference to fastcache's spec threw fedora-review into a loop, it assumed the last spec mentioned is the one to use.

Comment 23 Jackson Isaac 2015-07-22 03:30:10 UTC
I am symlinking the kernprof binary to kernprof-%{python2_version} and similarly for %{python3_version}.

But I think, we should cp kernprof to kernprof-%{python2_version} for py2 and for py3 we can keep a symlink.

While building for py3, kernprof binary is built for the py3 version, so kernprof-py2 will also point to the py3 version as both symlink links to the same kernprof. Hence, the dangling symlink warning in rpmlint I believe.

Any thoughts on this ?

Comment 24 Michel Lind 2015-07-22 07:20:48 UTC
I think you should rename kernprof to kernprof-%{python2_version} (or kernprof-%{python3_version} for the Python 3 build) instead of symlinking.

You might then symlink back the versioned binary to kernprof, but this would cause problem if both packages are installed.

Probably either pick a default (either Python 2 or Python 3 gets the symlink, probably depending on which version of Fedora -- F23 aims to have Python 3 as default), or better, use the alternatives system.

https://fedoraproject.org/wiki/Packaging:Alternatives

Comment 25 Jackson Isaac 2015-07-22 11:43:21 UTC
Revbump to release v4.

Copied the versioned binary of kernprof. I tried to use alternatives system but it was quite confusing with the post and postun stuff.

Spec URL: https://jacksonisaac.fedorapeople.org/packaging/python-line_profiler/release-v4/python-line_profiler.spec

SRPM URL: https://jacksonisaac.fedorapeople.org/packaging/python-line_profiler/release-v4/python-line_profiler-1.0-4.fc22.src.rpm

Comment 26 Michel Lind 2015-07-22 16:36:06 UTC
yeah, I think you don't need the alternatives just yet.

If you look at the default Python template (rpmdev-newspec -t python bla), it basically does the installation twice, Python 3 first, to make sure that the Python 2 binary that is installed later wins.

So in your case you can just make the symlink point to the Python2 version if you want, but not having it is probably not a big deal. I'll check the guidelines again just to make sure.

Comment 27 Michel Lind 2015-07-23 17:54:10 UTC
Looking good -- several observations:

- you don't need to define python2_sitelib, since this is an arch-dependent package and you're installing the files to python2_sitearch
- in fact, if you're only targeting newer Fedora releases you can assume python2_sitearch is defined anyway (rpmdev-newspec -t python doesn't define it anymore)

- no need to ghost %{_bindir}/kernprof if it's never going to be created

- there are some test files available in tests/ ; you should run them in a %check section:

%check
pushd %{pkgname}-%{version}
%{__python2} -m unittest discover -s tests -v
popd

%if 0%{?with_python3}
pushd python3
%{__python3} -m unittest discover -s tests -v
popd
%endif

(by convention the %check section is placed after the %install section)

- use the unittest module in discovery mode
- start looking for tests in the tests directory
- verbose output (one line per test)

Comment 28 Jackson Isaac 2015-07-23 18:09:56 UTC
(In reply to Michel Alexandre Salim from comment #27)

> - no need to ghost %{_bindir}/kernprof if it's never going to be created
>

%{_bindir}/kernprof does get created I guess because I am just cp'ing over kernprof to kernprof-%{py_version}. I am not sure if it is created in %{_bindir} or %{buildroot}%{_bindir}

Comment 29 Michel Lind 2015-07-24 02:49:37 UTC
It does not end up packaged because you use %ghost in the file listing. (Try examining the python-line_profiler RPM)

Also, if you compare with the python spec generated using rpmdev-newspec, you'll see that over there they do install of the python3 variant first, followed by python2, to ensure the Python 2 binaries win. Since you didn't do that, *if* you ended up with kernprof that kernprof will be the Python 3 version.

If you want kernprof I'd suggest
1) install the Python 3 variant first, then mv its kernprof binary to add the
   version suffix
2) install the Python 2 variant, then mv instead of cp, them symlink the versioned file back, and
3) remove %ghost, just list %{_bindir}/kernprof itself in the main %files listing

Comment 31 Michel Lind 2015-07-25 04:44:52 UTC
Ah, turns out I did miss one thing. There are two license files, you need to include them both as one of the files is under the Python license (see below)

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated". 22 files have unknown license. Detailed
     output of licensecheck in /home/michel/sources/fedora/reviews/1241919
     -python-line_profiler/licensecheck.txt
     => Missing license declaration - should be BSD and Python
        add a comment above License: to specify which file is which
	(per LICENSE_Python.txt, timers.c is under Python license)
        see https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios
[x]: License file installed when any subpackage combination is installed.
     note - need to install LICENSE_Python.txt as well

Also, before I forget, since this package was previously retired, once this review is approved the next step is a bit different:

https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers#Claiming_Ownership_of_a_Retired_Package

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Permissions on files are set properly.
  Note: See rpmlint output
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions

  => False positive, when building under mock somehow the permission on
     executables is 775 instead of 755

- Package does not use a name that already exists.
  Note: A package with this name already exists. Please check
  https://admin.fedoraproject.org/pkgdb/acls/name/python-line_profiler
  See:

https://fedoraproject.org/wiki/Packaging/NamingGuidelines#Conflicting_Package_Names

  => Known, that package was retired


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated". 22 files have unknown license. Detailed
     output of licensecheck in /home/michel/sources/fedora/reviews/1241919
     -python-line_profiler/licensecheck.txt
     => Missing license declaration - should be BSD and Python
        add a comment above License: to specify which file is which
	(per LICENSE_Python.txt, timers.c is under Python license)
        see https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios
[x]: License file installed when any subpackage combination is installed.
     note - need to install LICENSE_Python.txt as well
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib64/python3.4/site-
     packages/__pycache__(python3-libs)
     => should be OK, this is because the Py3 subpackage puts files in
        site-packages directly, not under its own module with its
	__init__.py
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[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.
[-]: 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 40960 bytes in 2 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 %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[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]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[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

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== 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).
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: 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.
[x]: %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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[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: python-line_profiler-1.0-5.fc22.x86_64.rpm
          python3-line_profiler-1.0-5.fc22.x86_64.rpm
          python-line_profiler-1.0-5.fc22.src.rpm
python-line_profiler.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python-line_profiler.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
python-line_profiler.x86_64: W: spelling-error %description -l en_US cProfile -> c Profile, profile, profiterole
python-line_profiler.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/_line_profiler.so 775
python-line_profiler.x86_64: W: no-manual-page-for-binary kernprof-2.7
python-line_profiler.x86_64: W: no-manual-page-for-binary kernprof
python3-line_profiler.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python3-line_profiler.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
python3-line_profiler.x86_64: W: spelling-error %description -l en_US kernprof -> ovenproof
python3-line_profiler.x86_64: W: spelling-error %description -l en_US cProfile -> c Profile, profile, profiterole
python3-line_profiler.x86_64: E: non-standard-executable-perm /usr/lib64/python3.4/site-packages/_line_profiler.cpython-34m.so 775
python3-line_profiler.x86_64: W: no-manual-page-for-binary kernprof-3.4
python-line_profiler.src: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python-line_profiler.src: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
python-line_profiler.src: W: spelling-error %description -l en_US kernprof -> ovenproof
python-line_profiler.src: W: spelling-error %description -l en_US cProfile -> c Profile, profile, profiterole
3 packages and 0 specfiles checked; 2 errors, 14 warnings.




Rpmlint (debuginfo)
-------------------
Checking: python-line_profiler-debuginfo-1.0-5.fc22.x86_64.rpm
python-line_profiler-debuginfo.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python-line_profiler-debuginfo.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
1 packages and 0 specfiles checked; 0 errors, 2 warnings.





Rpmlint (installed packages)
----------------------------
python3-line_profiler.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python3-line_profiler.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
python3-line_profiler.x86_64: W: spelling-error %description -l en_US kernprof -> ovenproof
python3-line_profiler.x86_64: W: spelling-error %description -l en_US cProfile -> c Profile, profile, profiterole
python3-line_profiler.x86_64: E: non-standard-executable-perm /usr/lib64/python3.4/site-packages/_line_profiler.cpython-34m.so 775
python3-line_profiler.x86_64: W: no-manual-page-for-binary kernprof-3.4
python-line_profiler.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python-line_profiler.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
python-line_profiler.x86_64: W: spelling-error %description -l en_US cProfile -> c Profile, profile, profiterole
python-line_profiler.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/_line_profiler.so 775
python-line_profiler.x86_64: W: no-manual-page-for-binary kernprof-2.7
python-line_profiler.x86_64: W: no-manual-page-for-binary kernprof
python-line_profiler-debuginfo.x86_64: W: spelling-error Summary(en_US) profiler -> profile, profiles, profiled
python-line_profiler-debuginfo.x86_64: W: spelling-error %description -l en_US profiler -> profile, profiles, profiled
3 packages and 0 specfiles checked; 2 errors, 12 warnings.



Requires
--------
python3-line_profiler (rpmlib, GLIBC filtered):
    /usr/bin/python3
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    libpython3.4m.so.1.0()(64bit)
    python(abi)
    python3
    rtld(GNU_HASH)

python-line_profiler (rpmlib, GLIBC filtered):
    /usr/bin/python2
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    libpython2.7.so.1.0()(64bit)
    python(abi)
    python2
    rtld(GNU_HASH)



Provides
--------
python3-line_profiler:
    python3-line_profiler
    python3-line_profiler(x86-64)

python-line_profiler:
    python-line_profiler
    python-line_profiler(x86-64)
    python2-line_profiler



Unversioned so-files
--------------------
python-line_profiler: /usr/lib64/python2.7/site-packages/_line_profiler.so
python3-line_profiler: /usr/lib64/python3.4/site-packages/_line_profiler.cpython-34m.so

Source checksums
----------------
https://pypi.python.org/packages/source/l/line_profiler/line_profiler-1.0.tar.gz :
  CHECKSUM(SHA256) this package     : a9e0c9ffa814f1215107c86c890afa8e63bec5a37d951f6f9d3668c1df2b1900
  CHECKSUM(SHA256) upstream package : a9e0c9ffa814f1215107c86c890afa8e63bec5a37d951f6f9d3668c1df2b1900


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/usr/bin/fedora-review -b 1241919
Buildroot used: fedora-22-x86_64
Active plugins: Python, Generic, Shell-api, C/C++
Disabled plugins: Java, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 32 Michel Lind 2015-07-25 08:35:56 UTC
Ah, and one more thing:

in the file listing for the python3 subpackage

%{python3_sitearch}/*

would end up including %{python3_sitearch}/__pycache__ which is already owned by python3-libs. You want to package everything in that dir but __pycache__ itself, so exclude it using:

%exclude %dir %{python3_sitearch}/__pycache__
%{python3_sitearch}/*

Comment 34 Michel Lind 2015-07-25 14:41:53 UTC
Everything looks good now - package is APPROVED

I'll add you to the packager group in a moment.

Comment 35 Jackson Isaac 2015-07-25 14:45:53 UTC
(In reply to Michel Alexandre Salim from comment #34)
> Everything looks good now - package is APPROVED
> 
> I'll add you to the packager group in a moment.

Okay thanks :) It wouldn't have been possible without all the comments and reviews from you, mrunge and orion.

I guess some more work is to be done to get the package unblocked by the Release Engineering team.

Comment 36 Michel Lind 2015-07-25 14:48:16 UTC
No problem, and feel free to ask if you have other packaging questions.

Next step:

https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers#Claiming_Ownership_of_a_Retired_Package

Comment 37 Jackson Isaac 2015-07-25 15:42:26 UTC
New Package SCM Request
=======================
Package Name: python-line_profiler
Short Description: Line-by-line profiler for python2 and python3
Upstream URL: https://github.com/rkern/line_profiler
Owners: jacksonisaac
Branches: f21 f22 f23 epel7
InitialCC: salimma

Comment 38 Jackson Isaac 2015-07-25 16:36:36 UTC
Package Change Request
======================
Package Name: python-line_profiler
New Branches: master
Owners: jacksonisaac

Comment 39 Gwyn Ciesla 2015-07-27 19:37:04 UTC
Complete.

Comment 40 Jackson Isaac 2015-07-27 19:47:12 UTC
(In reply to Jon Ciesla from comment #39)
> Complete.

Thank You.

Comment 41 Till Maas 2015-07-30 18:48:06 UTC
FYI: InitialCC: salimma was not specified in the package change request, therefore it is not honoured. Also you needed to specify all the branches you wanted to unretire. I tried to create them now manually. So if something did not work, please file a Package Change Request again.

Comment 42 Fedora Update System 2015-08-02 15:33:33 UTC
python-line_profiler-1.0-6.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/python-line_profiler-1.0-6.fc21

Comment 43 Fedora Update System 2015-08-02 15:45:01 UTC
python-line_profiler-1.0-6.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/python-line_profiler-1.0-6.fc22

Comment 44 Fedora Update System 2015-08-02 15:55:53 UTC
python-line_profiler-1.0-6.fc23 has been submitted as an update for Fedora 23.
https://admin.fedoraproject.org/updates/python-line_profiler-1.0-6.fc23

Comment 45 Fedora Update System 2015-08-02 15:56:43 UTC
python-line_profiler-1.0-6.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/python-line_profiler-1.0-6.el7

Comment 46 Fedora Update System 2015-08-02 18:17:08 UTC
python-line_profiler-1.0-6.fc23 has been pushed to the Fedora 23 testing repository.

Comment 47 Fedora Update System 2015-08-13 16:55:39 UTC
python-line_profiler-1.0-6.fc22 has been pushed to the Fedora 22 stable repository.

Comment 48 Fedora Update System 2015-08-13 16:55:48 UTC
python-line_profiler-1.0-6.fc21 has been pushed to the Fedora 21 stable repository.

Comment 49 Fedora Update System 2015-08-15 02:15:26 UTC
python-line_profiler-1.0-6.fc23 has been pushed to the Fedora 23 stable repository.

Comment 50 Parag AN(पराग) 2015-08-16 07:08:44 UTC
Please don't block on FE-NEEDSPONSOR for a finished review/bug.

Comment 51 Fedora Update System 2015-08-18 16:58:34 UTC
python-line_profiler-1.0-6.el7 has been pushed to the Fedora EPEL 7 stable repository.