Hi Paul, Thanks for bringint this alltogheter! I'm new in contributing to Debian and I'm really thinking that this will be a big win!
Comments follows: 2012/7/10 Paul Tagliamonte <paul...@debian.org> > Howdy, y'all, > > Now that we've gone and (for the most part) got wheezy into a shape that's > generally fit for release (granted we have a few things to shine up, etc, > but > the majority of the work is done), I'd like to talk a bit about the plans > for wheezy+1. > > My general plan (please debate) > =============================== > > - Replace desktop-base with a theme-defaults package, which will act as a > stable set of binary metapackages to recommend (or depend on). Rather > then > a single (monolitic) theme package, this will create a "fragmented" > set, > stuff like "theme-default-gdm" "theme-default-plymouth" or > "theme-default-kdm". There's currently an issue with us not dragging > in the > correct deps because depending (or recommending it) will result in all > installs having something that's not really needed in all cases. More > on > this below. As part of this, we'd have to introduce a few virtual > packages > to provide (again, more on that later). > > Great! This would allow a very small install and setup and avoid unecessary code on package install. > The technical implementation of this is a bit more complex and not > totally > thought out, but I plan on spending some of my weekend testing the > ideas > that I'm floating around. > > - Package themes as "first-class" packages. That is to say, we'll > introduce > "theme-debian-joy", "theme-debian-spacefun" and > "theme-debian-moreblue" to > start. Each of these will follow the fragmented setup. I suggest > creating > a packaging team for technical discussions of theme packaging, as well > as > a list of interested sponsors. > > Hopefully this can also act as the theme maintainer with the interested > parties listed as co-maintainers. This will let us ensure we can make > team-uploads to keep everything fresh, and track bugs together. > > Remember, teamwork makes the dream work. > > Please, don't forget this work in progress contributions: https://bitbucket.org/ronoaldo/desktop-theme-growing/src and https://bitbucket.org/uhansen/desktop-theme-elegance-blue/src. Obviously, there are tricky things done there to allow them to work on current theme setup, but some ideas are on the right track. > - Vote for a default theme (in a binding way) 2 months before freeze. > This may > consist of a list-wide vote, or perhaps a committee (at our dear DPL's > discretion) of both primarily technical and primarily artistic folks. > This > way we can pick a theme that not only looks good, but is practical to > implement in the timeframe given. The big changes to the theme shall > be done > with ample time before the freeze (a week at minimum) to ward off > potential > bugs. The idea here is to get the theme into the archive *before* a > vote :) > > Perfect! There should definitelly be something to make rulles clear to everyone involved: both artists, users and the Debian developers who bring the OS to life. Making packaging easy for both artists and developers is a key to achieve that, IMHO. > Implementation Details > ====================== > > OK. Here's some more information on what (exactly) I'm thinking. > > theme-defaults > -------------- > > The name is bad, so we need a better name. My suggestions: desktop-theme-base desktop-theme-common theme-common > I'd like to keep "debian" out of the > name, since this would allow derivatives to update the theme locally (e.g. > upload theme-defaults/7.0distrib1), or just plain blacklist theme-defaults > and re-upload out-of-sync. This would make everyone's life much (much) > easier. > > The way we deal with themes is also very important. To make this go over > like > butter, perhaps we should establish a themes policy. After we get the > method > down, I'd be happy to document and refine said policy. > > I agree that should be a theme policy. Policy is aways good to make everybody work in the same direction, and the changes you suggest really should get into the Debian Policy and manuals. I offer myself to help reviewing if you need! > I'm thinking we'd add themes to a central path (or a sane path, like the > default wallpaper path, etc, etc) and use some handwaving, glitter and > magic > to swap them into canonical locations which packages use (perhaps > update-alternatives and some wrappers? something like vim-addons(1)?), > as well as some lintian checks to make sure no one futzs with dropping > themes > on the system out of policy or anything like that. > > Amazing. Would it make sense to have a "Default" theme, provided by the theme packages itself. > Theme packaging > --------------- > > We should look at creating a dh-themes package with some helper routines > for > theme work. I think we should figure out exactly where we need help before > we go off hacking on some crazy routines. After all, some dh_install might > be > all we need. > > I see a few tooling needed, like a few scripts to transform a source artwork (svg, xcf) into proper imagery (png, animations?) and create the proper resolutions and formats. I like the dh_* style, and maybe some cdbs rule/class to make things very easy when packaging. I really like avoiding boilerplate code. > We should also create a theme-hello package to let people base their work > on, > anyway. Eventually, generating a new theme should be a snap (and fairly > easy to do) > > Virtual Packages > ---------------- > > We might also need a few virtual packages - we would need to set up > a package like theme-default-gdm to depend on theme-gdm (or so), and > recommend > something like "theme-debian-joy-gdm". This way, if some user installs > theme-debian-moreblue-gdm, they will be able to remove theme-debian-joy-gdm > without trouble. > > pabs had the idea of using them as follows: > > Source: tasksel > Package: task-desktop > Depends: gnome, theme-default-gnome | theme-gnome > > Source: gdm3 > Package: gdm3 > Recommends: theme-default-gdm | theme-gdm > > Source: theme-meta > Package: theme-default-gdm > Provides: theme-gdm > > Source: theme-foo > Package: theme-foo-gdm > Provides: theme-gdm > > Source: theme-bar > Package: theme-bar-gdm > Provides: theme-gdm > > While I think it's a pretty great setup, having so many copied Recommends, > I'd > tend to something like: > > Source: gdm3 > Package: gdm3 > Recommends: theme-default-gdm > > Source: theme-meta > Package: theme-default-gdm > Depends: theme-gdm > Recommends: theme-foo-gdm > > Source: theme-foo > Package: theme-foo-gdm > Provides: theme-gdm > > Source: theme-bar > Package: theme-bar-gdm > Provides: theme-gdm > > I like more the second style. Does dpkg/apt likes more one of them when, say, upgrades or updates happen? Wich one is more d-i friendly? > > We would need to flesh out a list of new virtual packages and propose it to > debian-devel for consensus making. I don't think we need to focus too much > on this *just* yet, but feedback here would rock. > > License Concerns > ================ > > We *must* ensure we have *all* sources, for *all* themes in debian/main. We > *must* adhear to very strictly to the DFSG. We *must* define exactly what > this means, well in advance. > > That means lots of SVGs, XCFs etc. I suggest we be very careful about > including > .jpg or .png files (etc) without their sources (except photos, etc that are > actually in jpg / pngs) > > Anyway, best judgement, but we must be strict on this. > > All the files must also be buildable with the packages from debian/main. > > +1 for that > OK, so what does this all mean? > =============================== > > I know I'm suggesting a lot of drastic changes, and I know this is all a > big > exercise in policy-paperwork, but it could introduce some very huge > technical > wins for themes - as well as (officially) supporting switching themes with > simple apt-get usage. > > Keep in mind *none* of this is solidly planned. This is just an idea for > how > we *might* move for wheezy+1. > > I'll be glad to help on packaging, testing, reviewing or whenever is needed. > Ready, go! > Paul > > -- > .''`. Paul Tagliamonte <paul...@debian.org> > : :' : Proud Debian Developer > `. `'` 4096R / 8F04 9AD8 2C92 066C 7352 D28A 7B58 5B30 807C 2A87 > `- http://people.debian.org/~paultag > Best Regards, -- Ronoaldo Pereira http://www.ronoaldo.net/