Bug 1343710 - Review Request: chrome-gnome-shell - Support for managing GNOME Shell Extensions through web browsers
Summary: Review Request: chrome-gnome-shell - Support for managing GNOME Shell Extensi...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Chris Sandler
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1418324 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-06-07 18:08 UTC by Pete Walter
Modified: 2017-08-15 06:46 UTC (History)
19 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-07-07 22:57:17 UTC
Type: ---
Embargoed:
chr77: fedora-review+


Attachments (Terms of Use)
Chrome gnome shell vr 8 (3.24 KB, text/plain)
2017-01-04 22:17 UTC, Mark Harfouche
no flags Details
v8 for both 32 and 64 bit (3.34 KB, text/plain)
2017-01-04 22:23 UTC, Mark Harfouche
no flags Details
8-4 (3.41 KB, text/plain)
2017-01-04 22:30 UTC, Mark Harfouche
no flags Details
8-5 different extensions in different packages (5.16 KB, text/plain)
2017-01-04 22:52 UTC, Mark Harfouche
no flags Details
8-6 python-requests runtime dependency (5.29 KB, text/plain)
2017-01-04 23:02 UTC, Mark Harfouche
no flags Details
Now uses Python 3 (5.41 KB, text/plain)
2017-02-22 18:55 UTC, Mark Harfouche
no flags Details
Version 8.2 (5.49 KB, text/plain)
2017-03-02 22:37 UTC, Mark Harfouche
no flags Details

Description Pete Walter 2016-06-07 18:08:21 UTC
Spec URL: https://pwalter.fedorapeople.org/chrome-gnome-shell.spec
SRPM URL: https://pwalter.fedorapeople.org/chrome-gnome-shell-6.1-1.fc24.src.rpm
Description:
Web extension for Google Chrome browser and native connector that provides
integration with GNOME Shell and the corresponding extensions repository
https://extensions.gnome.org.

Fedora Account System Username: pwalter

Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=14410195

Comment 1 Yuri Konotopov 2016-07-31 14:16:53 UTC
Hi Pete,

You missed python-gobject-base dependency. It was recently added in region51/chrome-gnome-shell copr: https://copr.fedorainfracloud.org/coprs/region51/chrome-gnome-shell/build/429413/

Comment 2 Jeremy Newton 2016-12-31 05:38:04 UTC
I'm interested in reviewing this. Can you please update it to the latest (v7.2.1)?

Comment 4 Mark Harfouche 2017-01-04 22:16:50 UTC
Here is an updated spec file.

Unfortunately, something is off with the 32 bit build. I don't really know what to do about it. It creates a file for firefox in /usr/lib64 even on the 32 bit platform.

Comment 5 Mark Harfouche 2017-01-04 22:17:15 UTC
Created attachment 1237368 [details]
Chrome gnome shell vr 8

Comment 7 Mark Harfouche 2017-01-04 22:23:55 UTC
Created attachment 1237372 [details]
v8 for both 32 and 64 bit

probably doesn't work for firefox 32bit

Comment 8 Yuri Konotopov 2017-01-04 22:25:16 UTC
(In reply to Mark Harfouche from comment #4)
> 
> It creates a file for firefox in /usr/lib64 even on the 32 bit platform.

You could specify CMAKE_INSTALL_LIBDIR to force library directory and skip cmake's autodetection:

%cmake . \
    -DBUILD_EXTENSION=OFF \
    -DCMAKE_INSTALL_LIBDIR=%{_lib}

Also jq is build-time dependency [1] and not needed at runtime. I think jq-devel is not needed at all.

[1] https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation#Cmake_installation

Comment 9 Mark Harfouche 2017-01-04 22:30:58 UTC
Created attachment 1237374 [details]
8-4

As Yuri Konotopov's comments.

Comment 10 Mark Harfouche 2017-01-04 22:32:48 UTC
Thanks

Comment 11 Mark Harfouche 2017-01-04 22:34:10 UTC
Once this gets accepted, I don't see why we should have 1 package for chrome chromium and firefox. It should really be split into 3 with 1 base package (and maybe 1 package that requires all 3 browser extensions).

Comment 12 Mark Harfouche 2017-01-04 22:52:40 UTC
Created attachment 1237430 [details]
8-5 different extensions in different packages

Comment 13 Yuri Konotopov 2017-01-04 23:00:31 UTC
Mark, python-requests runtime dependency is missing.
It was added in v8.

Comment 14 Mark Harfouche 2017-01-04 23:02:15 UTC
Created attachment 1237443 [details]
8-6 python-requests runtime dependency

Thanks Yuri

Comment 15 Jeremy Newton 2017-01-05 16:11:30 UTC
Pete, are you still interested in packaging this?

Comment 16 Jeremy Newton 2017-01-13 17:34:54 UTC
Mark, if you can get sponsorship, you're welcome to take this package as it seems to be abandoned.

As well, if anyone is interested in reviewing this, I am willing to take this package from Pete.

I would personally like this package in Fedora, so I am open to being either the packager or reviewer.

Comment 17 Mark Harfouche 2017-01-13 17:39:39 UTC
Jeremy,

I'm not too knowledgeable about all of Fedora's packaging guidelines, especially pertaining to licensing.

In either case, I could probably take this one over until it gets too complicated to package. How would I go about getting sponsorship?

Mark

Comment 18 Jeremy Newton 2017-01-17 15:12:16 UTC
(In reply to Mark Harfouche from comment #17)
> Jeremy,
> 
> I'm not too knowledgeable about all of Fedora's packaging guidelines,
> especially pertaining to licensing.
> 
> In either case, I could probably take this one over until it gets too
> complicated to package. How would I go about getting sponsorship?
> 
> Mark

If you would like to become a fedora packager, please read the following wiki:
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group

If you don't want to be a packager, I can take the package instead and another sponsored packager can review it.

Comment 19 Mark Harfouche 2017-01-17 18:48:28 UTC
Jeremy,

The process requires a little reading on my part. I'll look at it this weekend.

In the mean time, I have no issue if you want to take this on and publish it. There will always be more packages. It seems eventually I can become a co-maintainer.

Mark

Comment 20 jeremy9856 2017-02-22 06:35:46 UTC
Hello,

Firefox 52 come really soon (march 7) and maybe Jeremy should take the package, at least for now, to be in time for Firefox 52 ?

Thanks !

https://wiki.mozilla.org/RapidRelease/Calendar

Comment 21 Mark Harfouche 2017-02-22 08:06:21 UTC
Sure, 

I've been too busy to stay active to find a sponsor. Go for it :D.

Comment 22 Yuri Konotopov 2017-02-22 08:14:27 UTC
I also suggest to use Python 3 for this package.

See also Debian bug https://bugs.debian.org/851479

Comment 23 Mark Harfouche 2017-02-22 18:55:23 UTC
Created attachment 1256677 [details]
Now uses Python 3

Comment 24 Mark Harfouche 2017-02-22 18:56:08 UTC
Note, I had to add `-DPython_ADDITIONAL_VERSIONS=3` to cmake as well as change the dependencies.

Comment 25 Kai Engert (:kaie) (inactive account) 2017-02-27 16:13:04 UTC
*** Bug 1418324 has been marked as a duplicate of this bug. ***

Comment 26 Mark Harfouche 2017-03-02 22:37:21 UTC
Created attachment 1259349 [details]
Version 8.2

Comment 27 Pete Walter 2017-03-03 11:21:25 UTC
(In reply to Jeremy Newton from comment #2)
> I'm interested in reviewing this. Can you please update it to the latest
> (v7.2.1)?

Done, sorry for the delay. I've also incorporated various other suggestions from the comments here.

* Fri Mar 03 2017 Pete Walter <pwalter> - 8.2-1
- Update to 8.2
- Simplify files list
- Build with Python 3 (#1343710)
- Add missing python3-requests dependency (#1343710)
- Update package description

Spec URL: https://pwalter.fedorapeople.org/chrome-gnome-shell.spec
SRPM URL: https://pwalter.fedorapeople.org/chrome-gnome-shell-8.2-1.fc25.src.rpm

Comment 28 Jeremy Newton 2017-03-03 18:29:52 UTC
Sounds good, I'll take a look at reviewing it this weekend.

Comment 29 Jeremy Newton 2017-03-06 03:46:16 UTC
Package Review
==============

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


Issues:
=======
- gtk-update-icon-cache is invoked in %postun and %posttrans if package
  contains icons.
  Note: icons in chrome-gnome-shell
  See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

>Please add the following (explained in the wiki):

%post
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :

%postun
if [ $1 -eq 0 ] ; then
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi

%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :


- Package installs a %{name}.desktop using desktop-file-install or desktop-
  file-validate if there is such a file.

>You need to add this:

%check
desktop-file-validate %{_datadir}/applications/org.gnome.ChromeGnomeShell.desktop


===== 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 (v3 or later)", "Unknown or generated". 73 files have
     unknown license.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/icons/gnome/128x128,
     /usr/share/icons/gnome/128x128/apps
[!]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/icons/gnome/128x128/apps, /usr/share/icons/gnome,
     /usr/share/icons/gnome/16x16/apps, /usr/share/dbus-1,
     /usr/share/icons/gnome/128x128, /usr/share/dbus-1/services,
     /usr/share/icons/gnome/48x48, /usr/share/icons/gnome/16x16,
     /usr/share/icons/gnome/48x48/apps

>This is due to a missing requires, please add:
BuildRequires:  hicolor-icon-theme
BuildRequires:  gnome-icon-theme
BuildRequires:  dbus
Requires:       dbus
Requires:       gnome-icon-theme
Requires:       hicolor-icon-theme

[!]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib64/mozilla(mozilla-
     filesystem), /etc/opt(filesystem)

>Please remove the following line, this dir should not be owned by this package:
%dir %{_sysconfdir}/opt

>And change the following:
%{_sysconfdir}/chromium/
%{_libdir}/mozilla/
%{_sysconfdir}/opt/chrome/
>to:
%{_sysconfdir}/chromium/*
%{_libdir}/mozilla/*
%{_sysconfdir}/opt/chrome/*

[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.
[-]: Development files must be in a -devel package
[-]: 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.
[-]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[!]: Requires correct, justified where necessary.

>See above, some requires are missing.

[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[-]: Package is not known to require an ExcludeArch tag.
[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]: 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]: Package contains desktop file if it is a GUI application.
[x]: Dist tag is present.
[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]: Package does not use a name that already exists.
[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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Sources can be downloaded from URI in Source: tag
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).

>Change the following:
BuildRequires:  /usr/bin/base64
BuildRequires:  /usr/bin/head
BuildRequires:  /usr/bin/jq
BuildRequires:  /usr/bin/sha256sum
BuildRequires:  /usr/bin/tr

>to:
BuildRequires:  coreutils
BuildRequires:  jq

[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[-]: 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.

>Mentioned above, missing %check

[?]: Packages should try to preserve timestamps of original installed
     files.
[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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[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).
[-]: 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: chrome-gnome-shell-8.2-1.fc25.x86_64.rpm
          chrome-gnome-shell-8.2-1.fc25.src.rpm
chrome-gnome-shell.x86_64: E: no-binary
chrome-gnome-shell.x86_64: W: no-documentation
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/chromium/policies/managed/chrome-gnome-shell.json
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
2 packages and 0 specfiles checked; 2 errors, 6 warnings.

>Does the FF plugin have to be placed in /usr/lib64/mozilla for a 64bit system? or will it work just as fine in /usr/lib/mozilla? If it needs the arched folder, you can ignore this error, if it doesn't, please change this to a noarch package.
>Second, files placed in %{_sysconfdir} need to be prefixed with %config like so:

%config %{_sysconfdir}/opt/chrome/

>The other error has been discussed above, and the remaining warnings can be ignored.

Rpmlint (installed packages)
----------------------------
chrome-gnome-shell.x86_64: E: no-binary
chrome-gnome-shell.x86_64: W: no-documentation
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/chromium/policies/managed/chrome-gnome-shell.json
chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
chrome-gnome-shell.x86_64: W: non-conffile-in-etc /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
1 packages and 0 specfiles checked; 2 errors, 6 warnings.

>Same as above

Requires
--------
chrome-gnome-shell (rpmlib, GLIBC filtered):
    /usr/bin/python3
    gnome-shell
    python(abi)
    python3-gobject-base
    python3-requests



Provides
--------
chrome-gnome-shell:
    chrome-gnome-shell
    chrome-gnome-shell(x86-64)
    python3.5dist(chrome-gnome-shell)
    python3dist(chrome-gnome-shell)



Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1343710
Buildroot used: fedora-25-x86_64
Active plugins: Generic, Shell-api
Disabled plugins: Java, C/C++, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 30 Mark Harfouche 2017-03-06 05:02:08 UTC
@Pete, Jeremy, thank you for working on this. 

@Pete, I understand you might have thought that it was better to continue from your own spec file, but there had been some work by Maxim and I that was done to address the issues that Jeremy brought up. In either case, I'm glad that this issue is being worked on.

Comment 31 Pete Walter 2017-03-10 22:48:09 UTC
Thanks Jeremy! I've put my replies inline.


(In reply to Jeremy Newton from comment #29)
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> - gtk-update-icon-cache is invoked in %postun and %posttrans if package
>   contains icons.
>   Note: icons in chrome-gnome-shell
>   See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache
> 
> >Please add the following (explained in the wiki):
> 
> %post
> /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
> 
> %postun
> if [ $1 -eq 0 ] ; then
>     /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
>     /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
> fi
> 
> %posttrans
> /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :

This is not needed these days. gtk3 includes a file trigger that does it automatically.


> - Package installs a %{name}.desktop using desktop-file-install or desktop-
>   file-validate if there is such a file.
> 
> >You need to add this:
> 
> %check
> desktop-file-validate
> %{_datadir}/applications/org.gnome.ChromeGnomeShell.desktop

Done.


> ===== 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 (v3 or later)", "Unknown or generated". 73 files have
>      unknown license.
> [!]: Package requires other packages for directories it uses.
>      Note: No known owner of /usr/share/icons/gnome/128x128,
>      /usr/share/icons/gnome/128x128/apps
> [!]: Package must own all directories that it creates.
>      Note: Directories without known owners:
>      /usr/share/icons/gnome/128x128/apps, /usr/share/icons/gnome,
>      /usr/share/icons/gnome/16x16/apps, /usr/share/dbus-1,
>      /usr/share/icons/gnome/128x128, /usr/share/dbus-1/services,
>      /usr/share/icons/gnome/48x48, /usr/share/icons/gnome/16x16,
>      /usr/share/icons/gnome/48x48/apps
> 
> >This is due to a missing requires, please add:
> BuildRequires:  hicolor-icon-theme
> BuildRequires:  gnome-icon-theme
> BuildRequires:  dbus
> Requires:       dbus
> Requires:       gnome-icon-theme
> Requires:       hicolor-icon-theme

Thanks. I added the Requires. The BuildRequires aren't needed here.


> [!]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by: /usr/lib64/mozilla(mozilla-
>      filesystem), /etc/opt(filesystem)
> 
> >Please remove the following line, this dir should not be owned by this package:
> %dir %{_sysconfdir}/opt

Done.


> >And change the following:
> %{_sysconfdir}/chromium/
> %{_libdir}/mozilla/
> %{_sysconfdir}/opt/chrome/
> >to:
> %{_sysconfdir}/chromium/*
> %{_libdir}/mozilla/*
> %{_sysconfdir}/opt/chrome/*

Sorry, the suggested chrome and chromium directory changes are wrong and would result in unowned directories. Fixed the %{_libdir}/mozilla issue and added a dep on mozilla-filesystem instead.


> [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.
> [-]: Development files must be in a -devel package
> [-]: 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.
> [-]: Package does not generate any conflict.
> [x]: Package obeys FHS, except libexecdir and /usr/target.
> [x]: If the package is a rename of another package, proper Obsoletes and
>      Provides are present.
> [!]: Requires correct, justified where necessary.
> 
> >See above, some requires are missing.
> 
> [x]: Spec file is legible and written in American English.
> [-]: Package contains systemd file(s) if in need.
> [-]: Useful -debuginfo package or justification otherwise.
> [-]: Package is not known to require an ExcludeArch tag.
> [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]: 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]: Package contains desktop file if it is a GUI application.
> [x]: Dist tag is present.
> [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]: Package does not use a name that already exists.
> [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]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 0 bytes in 0 files.
> [x]: Packages must not store files under /srv, /opt or /usr/local
> 
> ===== SHOULD items =====
> 
> Generic:
> [x]: Sources can be downloaded from URI in Source: tag
> [-]: If the source package does not include license text(s) as a separate
>      file from upstream, the packager SHOULD query upstream to include it.
> [!]: Final provides and requires are sane (see attachments).
> 
> >Change the following:
> BuildRequires:  /usr/bin/base64
> BuildRequires:  /usr/bin/head
> BuildRequires:  /usr/bin/jq
> BuildRequires:  /usr/bin/sha256sum
> BuildRequires:  /usr/bin/tr
> 
> >to:
> BuildRequires:  coreutils
> BuildRequires:  jq

Can you elaborate why you want me to change this? The former is much more clear on what is actually being used ...


> [x]: Package functions as described.
> [x]: Latest version is packaged.
> [x]: Package does not include license text files separate from upstream.
> [x]: SourceX tarball generation or download is documented.
>      Note: Package contains tarball without URL, check comments
> [-]: 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.
> 
> >Mentioned above, missing %check
> 
> [?]: Packages should try to preserve timestamps of original installed
>      files.
> [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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
> [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).
> [-]: 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: chrome-gnome-shell-8.2-1.fc25.x86_64.rpm
>           chrome-gnome-shell-8.2-1.fc25.src.rpm
> chrome-gnome-shell.x86_64: E: no-binary
> chrome-gnome-shell.x86_64: W: no-documentation
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/chromium/policies/managed/chrome-gnome-shell.json
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
> chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
> 2 packages and 0 specfiles checked; 2 errors, 6 warnings.
> 
> >Does the FF plugin have to be placed in /usr/lib64/mozilla for a 64bit system? or will it work just as fine in /usr/lib/mozilla? If it needs the arched folder, you can ignore this error, if it doesn't, please change this to a noarch package.

Yes, it needs to be in /usr/lib64/mozilla.


> >Second, files placed in %{_sysconfdir} need to be prefixed with %config like so:
> 
> %config %{_sysconfdir}/opt/chrome/

No, this is incorrect. These files aren't meant to be user editable config files.


> >The other error has been discussed above, and the remaining warnings can be ignored.
> 
> Rpmlint (installed packages)
> ----------------------------
> chrome-gnome-shell.x86_64: E: no-binary
> chrome-gnome-shell.x86_64: W: no-documentation
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/chromium/policies/managed/chrome-gnome-shell.json
> chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
> chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
> 1 packages and 0 specfiles checked; 2 errors, 6 warnings.
> 
> >Same as above
> 
> Requires
> --------
> chrome-gnome-shell (rpmlib, GLIBC filtered):
>     /usr/bin/python3
>     gnome-shell
>     python(abi)
>     python3-gobject-base
>     python3-requests
> 
> 
> 
> Provides
> --------
> chrome-gnome-shell:
>     chrome-gnome-shell
>     chrome-gnome-shell(x86-64)
>     python3.5dist(chrome-gnome-shell)
>     python3dist(chrome-gnome-shell)
> 
> 
> 
> Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> Command line :/usr/bin/fedora-review -b 1343710
> Buildroot used: fedora-25-x86_64
> Active plugins: Generic, Shell-api
> Disabled plugins: Java, C/C++, Python, fonts, SugarActivity, Ocaml, Perl,
> Haskell, R, PHP
> Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 32 Pete Walter 2017-03-10 22:50:19 UTC
* Fri Mar 10 2017 Pete Walter <pwalter> - 8.2-2
- Package review fixes (#1343710)
- Validate the desktop file
- Don't own /etc/opt directory
- Depend on mozilla-filesystem instead of co-owning mozilla directories
- Depend on dbus and gnome-icon-theme/hicolor-icon-theme for directory
  ownership

Spec URL: https://pwalter.fedorapeople.org/chrome-gnome-shell.spec
SRPM URL: https://pwalter.fedorapeople.org/chrome-gnome-shell-8.2-2.fc25.src.rpm

Comment 33 Jeremy Newton 2017-03-11 03:24:11 UTC
More inline comments:

(In reply to Pete Walter from comment #31)
> Thanks Jeremy! I've put my replies inline.
> 
> 
> (In reply to Jeremy Newton from comment #29)
> > Package Review
> > ==============
> > 
> > Legend:
> > [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> > [ ] = Manual review needed
> > 
> > 
> > Issues:
> > =======
> > - gtk-update-icon-cache is invoked in %postun and %posttrans if package
> >   contains icons.
> >   Note: icons in chrome-gnome-shell
> >   See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache
> > 
> > >Please add the following (explained in the wiki):
> > 
> > %post
> > /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
> > 
> > %postun
> > if [ $1 -eq 0 ] ; then
> >     /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
> >     /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
> > fi
> > 
> > %posttrans
> > /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
> 
> This is not needed these days. gtk3 includes a file trigger that does it
> automatically.

Are you not including epel packages? Firefox and chromium should be provided for all branches.

> 
> 
> > - Package installs a %{name}.desktop using desktop-file-install or desktop-
> >   file-validate if there is such a file.
> > 
> > >You need to add this:
> > 
> > %check
> > desktop-file-validate
> > %{_datadir}/applications/org.gnome.ChromeGnomeShell.desktop
> 
> Done.
> 
> 
> > ===== 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 (v3 or later)", "Unknown or generated". 73 files have
> >      unknown license.
> > [!]: Package requires other packages for directories it uses.
> >      Note: No known owner of /usr/share/icons/gnome/128x128,
> >      /usr/share/icons/gnome/128x128/apps
> > [!]: Package must own all directories that it creates.
> >      Note: Directories without known owners:
> >      /usr/share/icons/gnome/128x128/apps, /usr/share/icons/gnome,
> >      /usr/share/icons/gnome/16x16/apps, /usr/share/dbus-1,
> >      /usr/share/icons/gnome/128x128, /usr/share/dbus-1/services,
> >      /usr/share/icons/gnome/48x48, /usr/share/icons/gnome/16x16,
> >      /usr/share/icons/gnome/48x48/apps
> > 
> > >This is due to a missing requires, please add:
> > BuildRequires:  hicolor-icon-theme
> > BuildRequires:  gnome-icon-theme
> > BuildRequires:  dbus
> > Requires:       dbus
> > Requires:       gnome-icon-theme
> > Requires:       hicolor-icon-theme
> 
> Thanks. I added the Requires. The BuildRequires aren't needed here.

Fair enough.

> 
> 
> > [!]: Package does not own files or directories owned by other packages.
> >      Note: Dirs in package are owned also by: /usr/lib64/mozilla(mozilla-
> >      filesystem), /etc/opt(filesystem)
> > 
> > >Please remove the following line, this dir should not be owned by this package:
> > %dir %{_sysconfdir}/opt
> 
> Done.
> 
> 
> > >And change the following:
> > %{_sysconfdir}/chromium/
> > %{_libdir}/mozilla/
> > %{_sysconfdir}/opt/chrome/
> > >to:
> > %{_sysconfdir}/chromium/*
> > %{_libdir}/mozilla/*
> > %{_sysconfdir}/opt/chrome/*
> 
> Sorry, the suggested chrome and chromium directory changes are wrong and
> would result in unowned directories. Fixed the %{_libdir}/mozilla issue and
> added a dep on mozilla-filesystem instead.

Since %{_sysconfdir}/opt/chrome/ is from a thirdparty package, that's probably fine, but %{_sysconfdir}/chromium/ is owned by the fedora chromium package... perhaps we should bug the maintainer to add a "chromium-filesystem" subpackage:

$ dnf whatprovides /etc/chromium
Last metadata expiration check: 5 days, 1:48:38 ago on Sun Mar  5 20:02:08 2017.
chrome-gnome-shell-8.2-1.fc25.x86_64 : Support for managing GNOME Shell
                                     : Extensions through web browsers
Repo        : @System

chromium-56.0.2924.87-3.fc25.x86_64 : A WebKit (Blink) powered web browser
Repo        : updates

chromium-53.0.2785.116-1.fc25.x86_64 : A WebKit (Blink) powered web browser
Repo        : fedora

> 
> 
> > [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.
> > [-]: Development files must be in a -devel package
> > [-]: 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.
> > [-]: Package does not generate any conflict.
> > [x]: Package obeys FHS, except libexecdir and /usr/target.
> > [x]: If the package is a rename of another package, proper Obsoletes and
> >      Provides are present.
> > [!]: Requires correct, justified where necessary.
> > 
> > >See above, some requires are missing.
> > 
> > [x]: Spec file is legible and written in American English.
> > [-]: Package contains systemd file(s) if in need.
> > [-]: Useful -debuginfo package or justification otherwise.
> > [-]: Package is not known to require an ExcludeArch tag.
> > [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]: 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]: Package contains desktop file if it is a GUI application.
> > [x]: Dist tag is present.
> > [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]: Package does not use a name that already exists.
> > [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]: Large documentation must go in a -doc subpackage. Large could be size
> >      (~1MB) or number of files.
> >      Note: Documentation size is 0 bytes in 0 files.
> > [x]: Packages must not store files under /srv, /opt or /usr/local
> > 
> > ===== SHOULD items =====
> > 
> > Generic:
> > [x]: Sources can be downloaded from URI in Source: tag
> > [-]: If the source package does not include license text(s) as a separate
> >      file from upstream, the packager SHOULD query upstream to include it.
> > [!]: Final provides and requires are sane (see attachments).
> > 
> > >Change the following:
> > BuildRequires:  /usr/bin/base64
> > BuildRequires:  /usr/bin/head
> > BuildRequires:  /usr/bin/jq
> > BuildRequires:  /usr/bin/sha256sum
> > BuildRequires:  /usr/bin/tr
> > 
> > >to:
> > BuildRequires:  coreutils
> > BuildRequires:  jq
> 
> Can you elaborate why you want me to change this? The former is much more
> clear on what is actually being used ...

I realize, but the requires are not being generated correctly when probing the binaries built from mock.

$ rpm -qpR chrome-gnome-shell-8.2-1.fc25.x86_64.rpm 
/usr/bin/python3
gnome-shell
python(abi) = 3.5
python3-gobject-base
python3-requests
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

> 
> > [x]: Package functions as described.
> > [x]: Latest version is packaged.
> > [x]: Package does not include license text files separate from upstream.
> > [x]: SourceX tarball generation or download is documented.
> >      Note: Package contains tarball without URL, check comments
> > [-]: 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.
> > 
> > >Mentioned above, missing %check
> > 
> > [?]: Packages should try to preserve timestamps of original installed
> >      files.
> > [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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
> > [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).
> > [-]: 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: chrome-gnome-shell-8.2-1.fc25.x86_64.rpm
> >           chrome-gnome-shell-8.2-1.fc25.src.rpm
> > chrome-gnome-shell.x86_64: E: no-binary
> > chrome-gnome-shell.x86_64: W: no-documentation
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/chromium/policies/managed/chrome-gnome-shell.json
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> > chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
> > chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
> > 2 packages and 0 specfiles checked; 2 errors, 6 warnings.
> > 
> > >Does the FF plugin have to be placed in /usr/lib64/mozilla for a 64bit system? or will it work just as fine in /usr/lib/mozilla? If it needs the arched folder, you can ignore this error, if it doesn't, please change this to a noarch package.
> 
> Yes, it needs to be in /usr/lib64/mozilla.

Alright, this can be ignored then.

> 
> > >Second, files placed in %{_sysconfdir} need to be prefixed with %config like so:
> > 
> > %config %{_sysconfdir}/opt/chrome/
> 
> No, this is incorrect. These files aren't meant to be user editable config
> files.

I guess this is fine then.

> 
> > >The other error has been discussed above, and the remaining warnings can be ignored.
> > 
> > Rpmlint (installed packages)
> > ----------------------------
> > chrome-gnome-shell.x86_64: E: no-binary
> > chrome-gnome-shell.x86_64: W: no-documentation
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/chromium/policies/managed/chrome-gnome-shell.json
> > chrome-gnome-shell.x86_64: E: standard-dir-owned-by-package /etc/opt
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json
> > chrome-gnome-shell.x86_64: W: non-conffile-in-etc
> > /etc/opt/chrome/policies/managed/chrome-gnome-shell.json
> > chrome-gnome-shell.x86_64: W: no-manual-page-for-binary chrome-gnome-shell
> > 1 packages and 0 specfiles checked; 2 errors, 6 warnings.
> > 
> > >Same as above
> > 
> > Requires
> > --------
> > chrome-gnome-shell (rpmlib, GLIBC filtered):
> >     /usr/bin/python3
> >     gnome-shell
> >     python(abi)
> >     python3-gobject-base
> >     python3-requests
> > 
> > 
> > 
> > Provides
> > --------
> > chrome-gnome-shell:
> >     chrome-gnome-shell
> >     chrome-gnome-shell(x86-64)
> >     python3.5dist(chrome-gnome-shell)
> >     python3dist(chrome-gnome-shell)
> > 
> > 
> > 
> > Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> > Command line :/usr/bin/fedora-review -b 1343710
> > Buildroot used: fedora-25-x86_64
> > Active plugins: Generic, Shell-api
> > Disabled plugins: Java, C/C++, Python, fonts, SugarActivity, Ocaml, Perl,
> > Haskell, R, PHP
> > Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 34 Yuri Konotopov 2017-03-11 05:16:36 UTC
(In reply to Pete Walter from comment #31)
> > >Does the FF plugin have to be placed in /usr/lib64/mozilla for a 64bit system? or will it work just as fine in /usr/lib/mozilla? If it needs the arched folder, you can ignore this error, if it doesn't, please change this to a noarch package.
> 
> Yes, it needs to be in /usr/lib64/mozilla.
> 

64 bit Firefox should work fine with manifest file placed in /usr/lib/mozilla

Comment 35 Pete Walter 2017-03-11 09:19:59 UTC
(In reply to Jeremy Newton from comment #33)
> More inline comments:
> 
> (In reply to Pete Walter from comment #31)
> > This is not needed these days. gtk3 includes a file trigger that does it
> > automatically.
> 
> Are you not including epel packages? Firefox and chromium should be provided
> for all branches.

I wasn't planning on, but maybe I should. :) I'll add them when I do, thanks!


> > Sorry, the suggested chrome and chromium directory changes are wrong and
> > would result in unowned directories. Fixed the %{_libdir}/mozilla issue and
> > added a dep on mozilla-filesystem instead.
> 
> Since %{_sysconfdir}/opt/chrome/ is from a thirdparty package, that's
> probably fine, but %{_sysconfdir}/chromium/ is owned by the fedora chromium
> package... perhaps we should bug the maintainer to add a
> "chromium-filesystem" subpackage:

No, I don't think this is necessary. It's perfectly fine and a valid way to have multiple packages owning one directory: https://fedoraproject.org/wiki/Packaging:Guidelines#The_directory_is_owned_by_a_package_which_is_not_required_for_your_package_to_function

mozilla-filesystem exists probably just because it predates that guideline.


> > > >Change the following:
> > > BuildRequires:  /usr/bin/base64
> > > BuildRequires:  /usr/bin/head
> > > BuildRequires:  /usr/bin/jq
> > > BuildRequires:  /usr/bin/sha256sum
> > > BuildRequires:  /usr/bin/tr
> > > 
> > > >to:
> > > BuildRequires:  coreutils
> > > BuildRequires:  jq
> > 
> > Can you elaborate why you want me to change this? The former is much more
> > clear on what is actually being used ...
> 
> I realize, but the requires are not being generated correctly when probing
> the binaries built from mock.
> 
> $ rpm -qpR chrome-gnome-shell-8.2-1.fc25.x86_64.rpm 
> /usr/bin/python3
> gnome-shell
> python(abi) = 3.5
> python3-gobject-base
> python3-requests
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsXz) <= 5.2-1

How do you mean, not being generated correctly? We were talking about BuildRequires and changing them doesn't directly affect binary package requires (which you are querying above) in any way.

Comment 36 Jeremy Newton 2017-03-11 12:24:03 UTC
(In reply to Pete Walter from comment #35)
> (In reply to Jeremy Newton from comment #33)
> > More inline comments:
> > 
> > (In reply to Pete Walter from comment #31)
> > > This is not needed these days. gtk3 includes a file trigger that does it
> > > automatically.
> > 
> > Are you not including epel packages? Firefox and chromium should be provided
> > for all branches.
> 
> I wasn't planning on, but maybe I should. :) I'll add them when I do, thanks!

Please do!

> 
> 
> > > Sorry, the suggested chrome and chromium directory changes are wrong and
> > > would result in unowned directories. Fixed the %{_libdir}/mozilla issue and
> > > added a dep on mozilla-filesystem instead.
> > 
> > Since %{_sysconfdir}/opt/chrome/ is from a thirdparty package, that's
> > probably fine, but %{_sysconfdir}/chromium/ is owned by the fedora chromium
> > package... perhaps we should bug the maintainer to add a
> > "chromium-filesystem" subpackage:
> 
> No, I don't think this is necessary. It's perfectly fine and a valid way to
> have multiple packages owning one directory:
> https://fedoraproject.org/wiki/Packaging:
> Guidelines#The_directory_is_owned_by_a_package_which_is_not_required_for_your
> _package_to_function
> 
> mozilla-filesystem exists probably just because it predates that guideline.

That should be fine then

> 
> 
> > > > >Change the following:
> > > > BuildRequires:  /usr/bin/base64
> > > > BuildRequires:  /usr/bin/head
> > > > BuildRequires:  /usr/bin/jq
> > > > BuildRequires:  /usr/bin/sha256sum
> > > > BuildRequires:  /usr/bin/tr
> > > > 
> > > > >to:
> > > > BuildRequires:  coreutils
> > > > BuildRequires:  jq
> > > 
> > > Can you elaborate why you want me to change this? The former is much more
> > > clear on what is actually being used ...
> > 
> > I realize, but the requires are not being generated correctly when probing
> > the binaries built from mock.
> > 
> > $ rpm -qpR chrome-gnome-shell-8.2-1.fc25.x86_64.rpm 
> > /usr/bin/python3
> > gnome-shell
> > python(abi) = 3.5
> > python3-gobject-base
> > python3-requests
> > rpmlib(CompressedFileNames) <= 3.0.4-1
> > rpmlib(FileDigests) <= 4.6.0-1
> > rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> > rpmlib(PayloadIsXz) <= 5.2-1
> 
> How do you mean, not being generated correctly? We were talking about
> BuildRequires and changing them doesn't directly affect binary package
> requires (which you are querying above) in any way.

Sorry, ignore that last comment, I was very tired and distracted while typing that and for some reason I thought they were requires not build requires.

(In reply to Yuri Konotopov from comment #34)
> (In reply to Pete Walter from comment #31)
> > > >Does the FF plugin have to be placed in /usr/lib64/mozilla for a 64bit system? or will it work just as fine in /usr/lib/mozilla? If it needs the arched folder, you can ignore this error, if it doesn't, please change this to a noarch package.
> > 
> > Yes, it needs to be in /usr/lib64/mozilla.
> > 
> 
> 64 bit Firefox should work fine with manifest file placed in /usr/lib/mozilla

If that's the case, we can probably make it a noarch package, no?

Comment 37 Pete Walter 2017-03-13 18:57:51 UTC
Are there any blockers left I need to address?

I'm happy to change it to noarch if that's the upstream guidance, but at the same time I don't think there's anything wrong if it's archful either. Right now upstream install scripts put the mozilla files in /usr/lib64 and I would like to avoid adding downstream hacks to move this to a different location.

Comment 38 Yuri Konotopov 2017-03-13 19:08:49 UTC
Pete,

Native host manifest location is well documented by Mozilla [1] and "lib" is arch-independent. It should be properly placed to /usr/share (and this location was documented early), but this is not work now - there is a bug in Mozilla's bugtracker [2].

> Right now upstream install scripts put the mozilla files in /usr/lib64

Those files are placed to platform provide libdir because of Mozilla's bug 1318461. I will change location to /usr/share as soon as this bug will be resolved.
If distro rules allow to use "lib" as platform independent directory - I recommend to use it.

[1] https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging#Linux
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1318461

Comment 39 Jeremy Newton 2017-03-16 00:53:52 UTC
(In reply to Yuri Konotopov from comment #38)
> Pete,
> 
> Native host manifest location is well documented by Mozilla [1] and "lib" is
> arch-independent. It should be properly placed to /usr/share (and this
> location was documented early), but this is not work now - there is a bug in
> Mozilla's bugtracker [2].
> 
> > Right now upstream install scripts put the mozilla files in /usr/lib64
> 
> Those files are placed to platform provide libdir because of Mozilla's bug
> 1318461. I will change location to /usr/share as soon as this bug will be
> resolved.
> If distro rules allow to use "lib" as platform independent directory - I
> recommend to use it.
> 
> [1]
> https://developer.mozilla.org/en-US/Add-ons/WebExtensions/
> Native_messaging#Linux
> [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1318461

In my honest opinion, lib should be fine as an interim solution until this is resolved.

(In reply to Pete Walter from comment #37)
> Are there any blockers left I need to address?
> 
> I'm happy to change it to noarch if that's the upstream guidance, but at the
> same time I don't think there's anything wrong if it's archful either. Right
> now upstream install scripts put the mozilla files in /usr/lib64 and I would
> like to avoid adding downstream hacks to move this to a different location.

I would think a noarch would be the "more correct" solution, as it's just for the interim, and isn't "%{_lib}" always /usr/lib for noarch builds? I maybe wrong, but both upstream should resolve it themselves and I would think this would be the lowest maintenance solution for you.

Comment 40 Serge Matveenko 2017-03-17 09:44:21 UTC
Guys, I'm sorry if this is already addressed. I've just noticed that `chrome-gnome-shell` package from `region51-chrome-gnome-shell` repo conflicts with `chrome-remote-desktop` package from `updates`.

chrome-gnome-shell-8.2-1.fc25.noarch
chrome-remote-desktop-56.0.2924.87-3.fc25.x86_64

With chrome-gnome-shell installed I'm getting the following:

$ sudo dnf install chrome-remote-desktop-56.0.2924.87-3.fc25.x86_64 
...
Error: Transaction check error:
  file /etc/opt/chrome/native-messaging-hosts from install of chrome-remote-desktop-56.0.2924.87-3.fc25.x86_64 conflicts with file from package chrome-gnome-shell-8.2-1.fc25.noarch

Comment 41 Jeremy Newton 2017-03-18 21:54:28 UTC
I assume this is because of the double owned dir?

@Pete I guess this would be another blocking issue too.

Comment 42 Pete Walter 2017-04-06 01:19:38 UTC
Not sure what to do with the transaction check error. In chrome-remote-desktop /etc/opt/chrome/native-messaging-hosts is a symlink to ../../chromium/native-messaging-hosts which of course breaks this package here that expects it to be a directory.

I would say it's an issue in chrome-remote-desktop that shouldn't be replacing a valid directory with a symlink.

Jeremy, what is the other blocking issue you are talking about?

Comment 43 jeremy9856 2017-05-01 07:38:34 UTC
Hello,

Do you think the issues can be fixed to make it available in the repo.
It's a fairly important package now that firefox isn't compatible anymore with the old plugin :)

Thanks !

Comment 44 fednuc 2017-06-03 20:07:21 UTC
I'm going to be "that guy" ;) and ask what's happening on this?

GNOME extension management on Fedora has been broken for quite a while now.

Comment 45 Devin Henderson 2017-06-03 21:00:58 UTC
@Stephen,

FYI, it still works in Epiphany (or "Web"), the GNOME web browser. `sudo dnf install epiphany`.

Comment 46 Pete Walter 2017-06-14 06:36:23 UTC
This review is stalled and a response is needed soon, as per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews#Reviewer_not_responding

Is there anything left to address, Jeremy?

Comment 47 Chris Sandler 2017-06-21 11:57:28 UTC
Pete, I went through the review checklist and also checked the earlier unofficial reviews done here and the package seems almost ready. Can you file a ticket for the chrome-remote-desktop symlink issue and I'll then approve this review?

Comment 48 Pete Walter 2017-06-22 07:31:05 UTC
Thanks Chris! I've filed a chromium ticket for the directory symlink issue: https://bugzilla.redhat.com/show_bug.cgi?id=1463967

Comment 49 Chris Sandler 2017-06-22 07:40:16 UTC
Approving the review. Please also update the package to the latest upstream version when importing (currently at version 9 upstream).

Comment 50 Gwyn Ciesla 2017-06-22 11:07:47 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/chrome-gnome-shell

Comment 51 Fedora Update System 2017-06-22 13:19:55 UTC
chrome-gnome-shell-9-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3168b42a6c

Comment 52 Dhruv Paranjape 2017-06-23 02:45:11 UTC
Can this be branched for epel7 also. I have tested it and the same spec file actually works as is for epel. (Checked on centos 7). Would be nice to get the package rather than having to do it myself.

Comment 53 Fedora Update System 2017-06-23 06:26:56 UTC
chrome-gnome-shell-9-1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-3168b42a6c

Comment 54 Fedora Update System 2017-07-07 22:57:17 UTC
chrome-gnome-shell-9-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.