Bug 488174

Summary: Review Request: nimbus-theme-gnome - The Nimbus theme originally from Sun
Product: [Fedora] Fedora Reporter: Matěj Cepl <mcepl>
Component: Package ReviewAssignee: Christoph Wickert <christoph.wickert>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: atorkhov, christoph.wickert, fedora-package-review, jhrozek, mcepl, notting, peter, sundaram
Target Milestone: ---Flags: christoph.wickert: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 0.0.17-6.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-09 15:48:05 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:
Bug Depends On:    
Bug Blocks: 496433    
Attachments:
Description Flags
Patch to separate stock icons from gtk engine
none
modfiied .spec file
none
Fixed patch for stock icons
none
stock icons patch that also inherits Fedora none

Description Matěj Cepl 2009-03-03 00:13:26 UTC
Spec URL: http://mcepl.fedorapeople.org/rpms/nimbus-theme-gnome.spec
SRPM URL: http://mcepl.fedorapeople.org/rpms/nimbus-theme-gnome-0.0.17-1.fc10.src.rpm
Description:
The nimbus theme pack for Gnome make use of nimbus Metacity theme, nimbus
gtk2 theme and Icon set. It originates from Opensolaris.

Comment 1 Matěj Cepl 2009-03-03 00:14:06 UTC
I am not sure about the name of the package -- is there any standard how these should be called?

Comment 2 Jakub Hrozek 2009-03-10 15:50:23 UTC
The URLS throw 404 currently.

As per the name I see $name-theme-gnome and $name-gnome-theme. So IMHO the name you picked is OK.

Comment 3 Jakub Hrozek 2009-03-10 22:30:09 UTC
The links seem to be OK now, so they were either fixed or it was my pebkac..

Anyway, the specfile claims that the license is GPLv2, but in fact it is LGPLv2 (see COPYING in the tarball)

Comment 4 Matěj Cepl 2009-03-12 00:13:48 UTC
Updated
http://mcepl.fedorapeople.org/rpms/nimbus-theme-gnome-0.0.17-2.fc10.src.rpm
(URL of the spec file is the same)

Comment 5 Christoph Wickert 2009-04-16 09:52:49 UTC
I think you should split this into subpackes, so it can be used by other desktop environments as well without installing the Gnome bits.

- gtk-nimbus-engine (arch, includes libnimbus.so and gtkrc, requires gtk-engines for dir ownership)
- nimbus-icon-theme (noarch, contains all the icons, requires hicolor-icon theme for dir ownership)
- nimbus-metacity-theme (noarch, includes %{_datadir}/themes/nimbus/metacity-1, requires metacity)
- nimbus-theme-gnome (noarch, requires all the others and only includes index.theme) 

More issues/suggestions:
- Group should be User Interface/X or UserInterface/Desktops
- %configure --disable-static and drop the devel package
- %{nimbus_dir}/index.theme is listed twice in %files section. Once as %{nimbus_dir}/index.theme and once as content of in %{_datadir}/themes/nimbus/
- don't use a define for %{nimbus_dir} because it makes %files more complicated (as the duplicate index.theme proves), it's only used twice in the spec and will most likely never change.
- preserve timestamp during iconv, see 
https://fedoraproject.org/wiki/PackageMaintainers/PackagingTricks#Convert_encoding_to_UTF-8

Comment 6 Matěj Cepl 2009-04-20 14:07:27 UTC
(In reply to comment #5)
> - nimbus-theme-gnome (noarch, requires all the others and only includes
> index.theme) 

Unfortuantely noarch package cannot have arch subpackage, so nimbus-theme-gnome must be arch as well.

Otherwise took all your comments.

Build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1309215
SRC RPM: http://mcepl.fedorapeople.org/rpms/nimbus-theme-gnome-0.0.17-3.fc11.src.rpm

Spec is in the same place.

Comment 7 Christoph Wickert 2009-04-21 03:11:58 UTC
(In reply to comment #5)
> - gtk-nimbus-engine (arch, includes libnimbus.so and gtkrc, requires
> gtk-engines for dir ownership)

Sorry, it's gtk2-engines. And the reqirement for hicolor-icon-theme (not hicolor-icon) can be dropped since %{_datadir}/icons is provided by the filesystem package. My bad.


(In reply to comment #6)
> Unfortuantely noarch package cannot have arch subpackage, so nimbus-theme-gnome
> must be arch as well.

You can easily work around that by renaming spec and srpm to nimbus-theme, nimbus-gnome-theme or whatever, as long as it's not nimbus-theme-gnome. The 'pseudo' base package will have no requirements and no files and the gnome bits will be a new subpackage.

gtk-nimbus-engine, nimbus-icon-theme and nimbus-metacity-theme must not require nimbus-theme-gnome but contrary nimbus-theme-gnome requires them.

Again you have duplicate files in the files section, because you made the icon theme own %{_datadir}/themes/nimbus/ which also includes index.theme and gtk-2.0/{gtkrc,iconrc}. Correct would be
  %dir %{_datadir}/themes/nimbus/
  %dir %{_datadir}/themes/nimbus/gtk-2.0/
  %{_datadir}/themes/nimbus/gtk-2.0/iconrc
  %{_datadir}/themes/nimbus/gtk-2.0/*.png

But IMO this is wrong anyway, because all these icons and iconrc should be installed to %{_datadir}/icons/nimbus/24x24/stock. I will attach a patch to fix that and then you don't need to care for duplicate ownership any longer.

gtk-nimbus-engine and nimbus-metacity-theme also need to own 
  %dir %{_datadir}/themes/nimbus/

The gtk engine would also need to own
  %dir %{_datadir}/themes/nimbus/gtk-2.0/
but with the patch just owning %{_datadir}/themes/nimbus/gtk-2.0/ will be ok, since the icons were moved away.

Drop NEWS ("No News") and README (Sun internal info) from %doc. 

All packages should ship AUTHORS, ChangeLog and COPYING, this is no violation of the duplicate files rule but we need to ship this info with every package (except the gnome one maybe).

The icon theme needs to run the scriptlets from
https://fedoraproject.org/wiki/Packaging/ScriptletSnippets#Icon_Cache
for the nimbus folder and include icon-theme.cache as %ghost.

Regarding index.theme: Is there a nimbus-notification theme?

The license is not clear. Is it LGPLv2 or LGPLv2+? Can you ask upstream for clarification please?

Comment 8 Christoph Wickert 2009-04-21 03:17:43 UTC
Created attachment 340470 [details]
Patch to separate stock icons from gtk engine

Currently changing the gtk engine will also change the stock icons, because they are linked to gtkrc as an include. This patch makes the stock icons depend on the selected icon theme instead and moves them to the correct location, so icon theme and gtk engine can be used separately.

Comment 9 Matěj Cepl 2009-05-16 12:18:56 UTC
Tried to fix all %files and subpackages issues, but I feel pretty lost in this. Please, take a look whether my current solution makes sense.

(In reply to comment #7)
> Regarding index.theme: Is there a nimbus-notification theme?

Not sure about that, cannot find anything. Will check

> The license is not clear. Is it LGPLv2 or LGPLv2+? Can you ask upstream for
> clarification please?

I would say that in doubts I would keep it as strict LGPLv2. I will ask upstream (first I have to ask who actually is upstream maintainer).

What do you think?

Comment 10 Matěj Cepl 2009-05-16 12:25:02 UTC
Scratch build went successfully http://koji.fedoraproject.org/koji/taskinfo?taskID=1357884

Comment 11 Matěj Cepl 2009-05-16 12:45:28 UTC
Created attachment 344264 [details]
modfiied .spec file

Comment 12 Matěj Cepl 2009-05-16 12:46:40 UTC
Sorry, previous scratch-build is unbuildable (typo in Requires). The real scratch build is http://koji.fedoraproject.org/koji/taskinfo?taskID=1357946
(src.rpm is http://koji.fedoraproject.org/scratch/mcepl/task_1357946/nimbus-0.0.17-4.fc11.src.rpm) and the last spec file has been attached to this bug.

Comment 13 Peter Gordon 2009-07-06 05:11:59 UTC
Matej, the Koji link for the src RPM now appears to be dead. Would you please upload it to a more static location and post the link here? I'd very much appreciate that. Thanks. :)

Comment 14 Matěj Cepl 2009-07-06 07:53:59 UTC
OK, I have actually lost my package when switching between computers (one more reason to have the package on fedorapeople), so this is reconstruction from .spec and patch attached to this bug. Built again in koji (to be sure, I haven't screwed up much) and it is at http://koji.fedoraproject.org/koji/taskinfo?taskID=1456205. However, canonical location is

SPEC file: http://mcepl.fedorapeople.org/rpms/nimbus.spec
SRPM: http://mcepl.fedorapeople.org/rpms/nimbus-0.0.17-4.fc11.src.rpm

Comment 15 Peter Gordon 2009-07-06 08:42:32 UTC
(In reply to comment #14)

Thanks very much!

Comment 16 Christoph Wickert 2009-07-26 01:54:00 UTC
Created attachment 355168 [details]
Fixed patch for stock icons

Installs iconrc in proper location

Comment 17 Christoph Wickert 2009-07-26 01:59:55 UTC
Sorry it took so long, but there was a problem with my first patch and I did not find the time to look into this. The iconrc was installed in the wrong location and some icons caused trouble on some sizes.

Two more directories need to be dropped from the files listing:

@@ -116,13 +116,11 @@
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING
 %{_datadir}/icons/nimbus/
-%dir %{_datadir}/themes/nimbus/
 %ghost %{_datadir}/icons/nimbus/icon-theme.cache
 
 %files -n nimbus-theme-gnome
 %defattr(-,root,root,-)
 %{_datadir}/themes/nimbus/index.theme
-%dir %{_datadir}/themes/nimbus/gtk-2.0/
 
 %changelog
 * Sat May 16 2009 matej <mcepl> 0.0.17-4

Then the only remaining warning is:
$ rpmlint ~/fedora/rpmbuild/RPMS/noarch/nimbus-*
nimbus-theme-gnome.noarch: W: no-documentation
OK, already shipped with the other packages.

Did you get any feedback on the license? If not release it strict LGPLv2.

Update the package and consider it APPROVED.

Comment 18 Matěj Cepl 2009-08-04 21:09:10 UTC
New Package CVS Request
=======================
Package Name: nimbus
Short Description:  Desktop theme originally from Sun
Owners: mcepl
Branches: F-10 F-11 EL-5

Comment 19 Matěj Cepl 2009-08-04 21:11:21 UTC
(In reply to comment #17)
> Did you get any feedback on the license? If not release it strict LGPLv2.

No, I haven't.

> Update the package and consider it APPROVED.  

Thanks. New package is on http://mcepl.fedorapeople.org/rpms/nimbus-0.0.17-5.fc11.src.rpm and spec on http://mcepl.fedorapeople.org/rpms/nimbus.spec
Building it in koji as http://koji.fedoraproject.org/koji/taskinfo?taskID=1581664

Comment 20 Christoph Wickert 2009-08-04 23:05:41 UTC
I was wrong, there is another file listed twice, this time in the icon theme: 

%files -n nimbus-icon-theme
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING
%{_datadir}/icons/nimbus/
%ghost %{_datadir}/icons/nimbus/icon-theme.cache

icon-theme.cache is already covered by %{_datadir}/icons/nimbus/. I don't really care about this that much, many other icon theme packages have the same problem, but the proper solution clould look like this:

%files -n nimbus-icon-theme
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING
%{_datadir}/icons/nimbus/
%ghost %{_datadir}/icons/nimbus/icon-theme.cache
%{_datadir}/icons/nimbus/iconrc
%{_datadir}/icons/nimbus/*x*/
%dir %{_datadir}/icons/nimbus/

Comment 21 Rahul Sundaram 2009-08-05 04:42:20 UTC
You should also replace the OpenSolaris logo that replaces the GNOME foot with the Fedora Logo or fall back to the foot one.

Comment 22 Matěj Cepl 2009-08-05 05:35:48 UTC
(In reply to comment #20)
> %files -n nimbus-icon-theme
> %defattr(-,root,root,-)
> %doc AUTHORS ChangeLog COPYING
> %{_datadir}/icons/nimbus/
> %ghost %{_datadir}/icons/nimbus/icon-theme.cache
> %{_datadir}/icons/nimbus/iconrc
> %{_datadir}/icons/nimbus/*x*/
> %dir %{_datadir}/icons/nimbus/  

Now I am really confused ... you said %{_datadir}/icons/nimbus/icon-theme.cache is covered by %{_datadir}/icons/nimbus/, but instead of removing this duplicity, you add two more of them %{_datadir}/icons/nimbus/*x*/ (which is certainly covered) and %dir %{_datadir}/icons/nimbus/  ???

Comment 23 Jason Tibbitts 2009-08-05 06:14:26 UTC
CVS done.

Comment 24 Matěj Cepl 2009-08-05 07:23:16 UTC
(In reply to comment #21)
> You should also replace the OpenSolaris logo that replaces the GNOME foot with
> the Fedora Logo or fall back to the foot one.  

Added to %install

# removing OpenSolaris branding use start-here.png from Fedora
find $RPM_BUILD_ROOT%{_datadir}/icons/nimbus/ -name start-here.png \
    |while read FILENAME ; do
        NEWICON=$(echo $FILENAME \
            |sed -e "s!$RPM_BUILD_ROOT.*nimbus\(.*\)\$!\.\./\.\./\.\./Fedora\1!")
        ln -sf -v $NEWICON $FILENAME
    done

(plus Requires: fedora-logos for nimbus-icon-theme)

Is that what you meant?

Comment 26 Rahul Sundaram 2009-08-05 08:32:58 UTC
Requires system-logos so that Remixes can provide drop in replacement for fedora-logos such as generic-logos. This also means you need to automatically fall back to the generic equivalent if fedora-logos package is not installed. An example:


http://cvs.fedoraproject.org/viewvc/rpms/plymouth/devel/plymouth.spec?view=markup

Comment 27 Christoph Wickert 2009-08-05 09:34:43 UTC
(In reply to comment #22)
> (In reply to comment #20)
> > %files -n nimbus-icon-theme
> > %defattr(-,root,root,-)
> > %doc AUTHORS ChangeLog COPYING
> > %{_datadir}/icons/nimbus/
> > %ghost %{_datadir}/icons/nimbus/icon-theme.cache
> > %{_datadir}/icons/nimbus/iconrc
> > %{_datadir}/icons/nimbus/*x*/
> > %dir %{_datadir}/icons/nimbus/  
> 
> Now I am really confused ... you said %{_datadir}/icons/nimbus/icon-theme.cache
> is covered by %{_datadir}/icons/nimbus/, but instead of removing this
> duplicity, you add two more of them %{_datadir}/icons/nimbus/*x*/ (which is
> certainly covered) and %dir %{_datadir}/icons/nimbus/  ???  

No, %dir %{_datadir}/icons/nimbus/ is just that directory and nothing below it. Everything below is listed explicitly:

%ghost %{_datadir}/icons/nimbus/icon-theme.cache
%{_datadir}/icons/nimbus/iconrc
%{_datadir}/icons/nimbus/*x*/

Got it?


(In reply to comment #21)
> You should also replace the OpenSolaris logo that replaces the GNOME foot with
> the Fedora Logo or fall back to the foot one.  

Rahul, is this really necessary? IMO this is a central part of the theme, just like the GNOME foot. Reading http://opensolaris.org/os/about/faq/trademark_faq/ and http://www.opensolaris.org/os/trademark/ there is nothing that prevents us from shipping it.


(In reply to comment #24)
> # removing OpenSolaris branding use start-here.png from Fedora
> find $RPM_BUILD_ROOT%{_datadir}/icons/nimbus/ -name start-here.png \
>     |while read FILENAME ; do
>         NEWICON=$(echo $FILENAME \
>             |sed -e
> "s!$RPM_BUILD_ROOT.*nimbus\(.*\)\$!\.\./\.\./\.\./Fedora\1!")
>         ln -sf -v $NEWICON $FILENAME
>     done

This is a bad idea, you shouldn't link to Fedora's start-here.png. This link will make the package require fedora-logos, without it you have dangling symlinks.
I suggest: If you want to link to something, link to start-here.png in gnome-icon-theme and require that package.

Comment 28 Rahul Sundaram 2009-08-05 09:44:58 UTC
I haven't looked the legal requirements of the including the OpenSolaris Logo but it doesn't seem right to include a copy of a different operating system by default in a theme in such a prominent place. If you want, I can ask for a legal review.

Comment 29 Christoph Wickert 2009-08-05 10:01:31 UTC
Thanks for the fast response. I can understand your POV, but I don't share it. We also ship Debian's swirl and the OpenSUSE logo, although not in such a prominent place.

Matej, what do you think? Use the GNOME foot or as FE-Legal?

Comment 30 Matěj Cepl 2009-08-05 10:06:18 UTC
(In reply to comment #27)
> Got it?

Shut, yes, I got.

> Rahul, is this really necessary?

Actually, I don't care if it is necessary, but that was my problem with the theme as well ... I don't want to look like OS, when I am Fedora.

> This is a bad idea, you shouldn't link to Fedora's start-here.png. This link
> will make the package require fedora-logos, without it you have dangling
> symlinks.

system-logos (see comment 26), but yes, and why not? system-logos are always present. gnome-foo doesn't have to be (theoretically).

(In reply to comment #26)
> Requires system-logos so that Remixes can provide drop in replacement for
> fedora-logos such as generic-logos. This also means you need to automatically
> fall back to the generic equivalent if fedora-logos package is not installed.

OK, I got changing Requires to system-logos, but I don't know how to find out what is /usr/share/icons/Fedora called when it is not Fedora.

Comment 31 Matěj Cepl 2009-08-05 10:10:29 UTC
(In reply to comment #30)
> OK, I got changing Requires to system-logos, but I don't know how to find out
> what is /usr/share/icons/Fedora called when it is not Fedora.  

and when we are at it, why /usr/share/icons/default/index.theme points to Bluecurve, when default theme for Fedora is Fedora, isn't it?

Comment 32 Christoph Wickert 2009-08-05 10:23:17 UTC
(In reply to comment #30)

> system-logos are always present. 

system-logos is a virtual provides of both fedora-logos and generic-logos. We never know which one is present and therefor cannot use symlinks to one or the other.

> gnome-foo doesn't have to be (theoretically).

I does: gnome-appearance settings is part of control-center which requires gnome-icon-theme

> OK, I got changing Requires to system-logos, but I don't know how to find out
> what is /usr/share/icons/Fedora called when it is not Fedora.

This is why we cannot use symlinks here. We would have to inherit Fedora or Bluecurve in the index.theme. This can be done in my patch.


(In reply to comment #31)
> and when we are at it, why /usr/share/icons/default/index.theme points to
> Bluecurve, when default theme for Fedora is Fedora, isn't it?  

No idea, I guess because we cannot make it point to Fedora.

Comment 33 Christoph Wickert 2009-08-05 10:50:12 UTC
Created attachment 356302 [details]
stock icons patch that also inherits Fedora

Here is a version of the stock-icons.patch that also inherits Fedora. I'm afraid it also inherits other icons and not only start-here. And it doesn't really fix our problem, because if Fedora is not installed, there is no start-here. We would need to also inherit Gnome.

Comment 34 Christoph Wickert 2009-09-09 14:59:45 UTC
Ping?

Comment 35 Matěj Cepl 2009-09-09 15:22:02 UTC
(In reply to comment #33)
> Created an attachment (id=356302) [details]
> stock icons patch that also inherits Fedora
> 
> Here is a version of the stock-icons.patch that also inherits Fedora. I'm
> afraid it also inherits other icons and not only start-here. And it doesn't
> really fix our problem, because if Fedora is not installed, there is no
> start-here. We would need to also inherit Gnome.  

OK, I don't have a patience with this. Let's push -6 into Fedora so that we have at least something there. And we can then meditate about this issue in another bug.

Comment 36 Matěj Cepl 2009-09-09 15:30:26 UTC
Opened bug 522151 for EPEL-5, where we can play with resolving the issue. Currently, EPEL build just have OpenSOlaris icon.

Comment 37 Matěj Cepl 2009-09-09 15:48:05 UTC
Build as http://koji.fedoraproject.org/koji/taskinfo?taskID=1665370

Comment 38 Fedora Update System 2009-09-09 16:43:04 UTC
nimbus-0.0.17-6.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/nimbus-0.0.17-6.fc10

Comment 39 Fedora Update System 2009-09-09 16:44:55 UTC
nimbus-0.0.17-6.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/nimbus-0.0.17-6.fc11

Comment 40 Fedora Update System 2009-09-30 01:34:57 UTC
nimbus-0.0.17-6.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.