Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 19718 - gtk-engines-smooth and stuff
Summary: gtk-engines-smooth and stuff
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
: 19623 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-04-21 11:16 UTC by Artur Brodowski
Modified: 2003-06-20 15:01 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gtk-engines.eclass (gtk-engines.eclass,6.62 KB, text/plain)
2003-04-21 11:16 UTC, Artur Brodowski
Details
gtk-engines-smooth/gtk-engines-smooth-0.5-r1.ebuild (gtk 1.2) (gtk-engines-smooth-0.5-r1.ebuild,73 bytes, text/plain)
2003-04-21 11:17 UTC, Artur Brodowski
Details
gtk-engines-smooth/gtk-engines-smooth-0.5-r2.ebuild (gtk 2+) (gtk-engines-smooth-0.5-r2.ebuild,91 bytes, text/plain)
2003-04-21 11:18 UTC, Artur Brodowski
Details
gtk-engines-cleanice/gtk-engines-cleanice-1.2.5.ebuild (gtk-engines-cleanice-1.2.5.ebuild,332 bytes, text/plain)
2003-04-21 11:18 UTC, Artur Brodowski
Details
gtk-engines.eclass.diff (gtk-engines.eclass.diff,796 bytes, text/plain)
2003-05-05 20:25 UTC, Link M Dupont
Details
dirty gtk-engines.eclass that takes care of installing smooth-themes (gtk-engines.eclass,6.40 KB, text/plain)
2003-05-06 18:42 UTC, Artur Brodowski
Details
New eclass/gtk-engines.eclass (gtk-engines.eclass,1.37 KB, text/plain)
2003-05-23 20:05 UTC, Link M Dupont
Details
x11-themes/gtk-engines-cleanice-1.2.5.ebuild (gtk-engines-cleanice-1.2.5.ebuild,494 bytes, text/plain)
2003-05-23 20:05 UTC, Link M Dupont
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Artur Brodowski 2003-04-21 11:16:10 UTC
smooth is a new theme engine for gtk, you can find few really nice themes
based on it on art.gnome.org.
i'm attaching 0.5-r1 and 0.5-r2 ebuilds for both gtk 1.2 and gtk 2+, also
modified gtk-engines.eclass and latest gtk-engines-cleanice-1.2.5.ebuild.
have fun,
artb.
Comment 1 Artur Brodowski 2003-04-21 11:16:44 UTC
Created attachment 10949 [details]
gtk-engines.eclass
Comment 2 Artur Brodowski 2003-04-21 11:17:29 UTC
Created attachment 10950 [details]
gtk-engines-smooth/gtk-engines-smooth-0.5-r1.ebuild (gtk 1.2)
Comment 3 Artur Brodowski 2003-04-21 11:18:03 UTC
Created attachment 10951 [details]
gtk-engines-smooth/gtk-engines-smooth-0.5-r2.ebuild (gtk 2+)
Comment 4 Artur Brodowski 2003-04-21 11:18:34 UTC
Created attachment 10952 [details]
gtk-engines-cleanice/gtk-engines-cleanice-1.2.5.ebuild
Comment 5 foser (RETIRED) gentoo-dev 2003-05-05 18:11:55 UTC
*** Bug 19623 has been marked as a duplicate of this bug. ***
Comment 6 Link M Dupont 2003-05-05 18:38:37 UTC
If I may make a suggestion about the package of Smooth, the newest engine releases will be coming out of Smooth's SourceForge.net page (http://www.sourceforge.net/projects/smooth-engine). The Smooth tarball on art.gnome.org is not really a real release location. Its a tarball of the 0.5.0 release, and Smooth's been updated since then. There are really two packages that make up Smooth. There's the engine tarball itself (which contains engine code only) and there's a smooth-themes tarball, which contains all the themes. I've written up some ebuilds that behaved that way, and I think in the long run it might be easier to maintain newer Smooth releases that way.

The tarballs on sf.net are designed to build in such a way that gtk and gtk2 can be build simultaneously. The ebuilds I've written up use the gtk and gtk2 USE flags, and I feel that's a more effective method of building Smooth. Its more true to the tarball distribution method too.

That additional bug is the ebuilds I've submitted. I'm willing to help merge Smooth into the gtk-engines.eclass if you decide to use any of my suggestions.
Comment 7 foser (RETIRED) gentoo-dev 2003-05-05 19:00:28 UTC
we want it to use the eclass altough i think the eclass needs a good smoothing itsself, but for now we shouldn't try to go around it. consistency is important.

So please add your work for review.
Comment 8 Link M Dupont 2003-05-05 20:24:55 UTC
Okay, I don't have a working Gentoo installation to test (I will in a couple days) this on unfortunately, but I've attached the diff to the above attached gtk-engines.eclass. I change the package name and download location. And I added --enable-gtk-2=no to the SLOT=1 case, so that SLOT 1 does build only the gtk1 version. You'll need the smooth-themes ebuild in order to get some themes, unless you want to somehow work that into the gtk-engines-smooth ebuild. That seems kind of strange, but that's how Andrew does the release tarballs.

Is there any reason for using SLOTS? In the diff, I've preserved the existing SLOT technique, but it seems more logical to me to look at $USE, and see if it contains gtk and/or gtk2.
Comment 9 Link M Dupont 2003-05-05 20:25:30 UTC
Created attachment 11547 [details]
gtk-engines.eclass.diff
Comment 10 Artur Brodowski 2003-05-06 04:25:16 UTC
we need SLOTS inside ebuilds anyway, so portage wouldn't unmerge 'earlier'
version of the package (f.e. -r1) after installing 'newer' one. so i think
it's good to leave them inside eclass.
i'll try to hack on this in the evening a little, build the latest release
and send here the changes (if any).
foser, should we use one ebuild for the engine _and_ themes?
Comment 11 foser (RETIRED) gentoo-dev 2003-05-06 08:25:43 UTC
i think that's the best thing to do, the themes come with the engine makes sense. Otherwise we should add another package 'smooth-themes' or something.
Depends a bit on how tied themes vs. the engines are, if the themes update much faster than the engine it might become a little troublesome.
Comment 12 Link M Dupont 2003-05-06 12:34:52 UTC
The themes tarball is typically released with the engine tarball. They're versioned the same, and I've yet to see them out of sync (the themes were just recently split off into a seperate package). Combining them into one ebuld probably wouldn't be too frustrating.
Comment 13 foser (RETIRED) gentoo-dev 2003-05-06 13:38:38 UTC
that would be best then engine and themes combined.
Comment 14 Artur Brodowski 2003-05-06 18:41:51 UTC
ok, here it goes, the really-crappy-hacked gtk-engines.eclass.
i know it's dirty, but i was tired ;)
anyway, i've checked it and it works, though has two issues:

1. smooth-engine tarball unpacks to ${WORKDIR}/gtk-smooth-engine-0.5.2,
which is quite ok, but smooth-themes tarball unpacks to ${WORKDIR}/${PN},
where PN="gtk-engines-smooth". this isn't right, since we need to make 
sure, that those two won't unpack to one directory some day.
I don't really know portage does this and how to make smooth-themes 
unpack to smooth-themes dir.
2. second thing is that smooth-themes configure has no --enable-gtk[1,2]
option, recognizing gtk2 is hardcoded and it always installs gtk2 themes
(even if no engine is present).
so we need a patch for Makefile, or temporarily we could just delete
gtkrc's for gtk2 when SLOT==1.

best regards,
artb.
Comment 15 Artur Brodowski 2003-05-06 18:42:56 UTC
Created attachment 11609 [details]
dirty gtk-engines.eclass that takes care of installing smooth-themes
Comment 16 Link M Dupont 2003-05-06 20:06:07 UTC
Okay guys, I've got a few notes from Andrew here that he would like to be taken into consideration when packaging. Smooth is not a theme, and it never will be. Its a library that facilitates good theme design, and should be treated as such.

That's why there's no gtkrc file distributed with gtk-smooth-engine. The smooth-themes package is a collection of themes that have been written both by Andrew and others, that he considers good examples of how themes can be designed using the Smooth engine.

Because of this, he feels that smooth-themes shouldn't be merged into the "gtk-engines-smooth" package. Engines and themes are too often confused, and Andrew makes a big distinction between the two by packaging the engine code and the themes seperately.

The smooth-themes ebuild could use the presence of gtk/gtk2 in the USE variable to install the proper gtk/gtk2 themes. 

This has gotten my mind thinking about possible alternate implementations for gtk-engines.eclass (it doesn't seem very abstract as far as gtk-engine building, but that's primarily due to the different build methods for engines). This is rather off the topic of this bug I think, but a re-write of gtk-engine.eclass might be a good thing. With a little more information about engines stored in the engine's ebuild itself.
Comment 17 foser (RETIRED) gentoo-dev 2003-05-06 21:38:37 UTC
i do too, but currently it is just that we do not package any theme really alone and probably never will (it's imho too much work to keep up with). To have a few standard or example themes go with an engine is a good idea to give the users at  least something to start with. We basicly try to only provide the engines at the moment, not themes (yes we do have a few basic theme packs, but thats it).

as far as the eclass goes, yes it probably needs a rewrite. But it isn't so easy with useflags and all, if you really want to burn your hands on rewriting it you should contact me on IRC and talk it over a bit before you plunge in.

Artur : could you provide a diff for the eclass ? thats easier to spot changes
Comment 18 Link M Dupont 2003-05-23 20:04:39 UTC
Okay guys, its been a while, but I've got a re-write of the gtk-engines.eclass. I've got some comments within the file itself. But I will mention them here to. I don't believe the eclass is neccessary at all. After removing all the engine specific code from the current eclass we're basically left with my eclass code. Which is basically the default process defined within ebuild.sh. Why then, do we need an eclass? Each engine is buildable on its own anyway. The shared code is shared by nearly every application too (./configure && make && make install).

I've also attached an ebuild for gtk-engines-cleanice which uses the newer eclass (and I'm using the theme right now. One thing I can definitely see changing is maybe including some more defaults in the eclass (like default HOMEPAGE, etc). And moving the dependencies RDEPENDS and DEPENDS into the eclass.

About the GTK+ 1.2.x vs. GTK+ 2.x issue: every engine except Wonderland and Smooth have different version numbers for their GTK+ 1.2.x and their GTK+ 2.x versions. I believe that using SLOTs for these is the proper way to do it. Just like any other application that can have concurrent versions installed (GIMP and Evolution come to mind), the GTK+ engines have different versions that can be concurrently installed, and the individual ebuilds should reflect this in their SLOT and RDEPENDS variables. Combining the building of GTK+ 1.2.x versions in with the GTK+ 2.x versions doesn't properly package the engines, in my opinion. They are different versions, and should be treated as such.

I'm not sure what's up with the whole grabbing packages off Debian servers either. I don't think I've overlooked anything, and I feel like this is a very valid method of maintained engines.
Comment 19 Link M Dupont 2003-05-23 20:05:19 UTC
Created attachment 12353 [details]
New eclass/gtk-engines.eclass
Comment 20 Link M Dupont 2003-05-23 20:05:55 UTC
Created attachment 12354 [details]
x11-themes/gtk-engines-cleanice-1.2.5.ebuild

Uses the new eclass
Comment 21 Alastair Tse (RETIRED) gentoo-dev 2003-05-24 07:17:25 UTC
Link,

Exactly what I had in mind. I actually have something very similar sitting in my local portage that I'm testing. The thing is we have to go through all the current installed engines and port them over to this new format. I've been sidetracked into do some other things so i don't think i'll get a chance until next week to look at this further. When I do, I'll look into incorporating some additions to your eclass.

I definately agree with you view on debian sources. I think we could do better than fetching from debian :) I think the eclass is not particular necessary too. The current implementation is just a mess and totally not in the spirit of OO programming!

I was also thinking of using USE flags rather than SLOTs for gtk-engines. I have an extreme dislike of the way that we have to use -r1 -r2 for engines with both gtk+1 and gtk+2.
Comment 22 Link M Dupont 2003-05-24 13:34:44 UTC
I was talking with foser on IRC and he mentioned how using USE flags is not such a great idea. The way the gtk2 flag works is that it overrides the gtk flag. So if a program such as say gFTP (which has both gtk1 and gtk2 interfaces) gets called for an emerge, if USE contains gtk2, it builds the gtk2 version, otherwise it builds gtk. This allows for the possibility of a user having both 'gtk' and 'gtk2' in their USE variable, but not actually having the gtk 1.2.x libraries built. A very rare possibility in reality, but a situation that must be considered nonetheless.

I still think SLOTs are the right way to handled different versioned engines though. They are different versions, and different codebases, so they should be treated individually. Smooth, Galaxy and Wonderland(Bluecurve) are the 3 exceptions, and they could be handled as such.

I have no problem porting over the existing ebuilds. I can make the time for this. ;) One thing I'd like to get finalized though is the eclass. Whether we use it or not. And in what capacity. I suppose it does serve some usefullness, but most engines need some sort of custom building/downloading.
Comment 23 Alastair Tse (RETIRED) gentoo-dev 2003-06-20 15:01:20 UTC
after much discussion and back and forth, i've committed gtk-engines2.eclass as a replacement. all the engines have been ported. those that haven't are going under the axe when testing is complete. there's further explaination in the eclass itself. but we've elected not to use SLOTs and just make one particular theme install both the GTK1 and GTK2 version, depending on whether GTK1 and/or GTK2 is installed.

gtk-engines-smooth also has been added in the overhaul.