[opensuse-packaging] Questions regarding branding policy
Hi, I've looked at the current implementation of the branding policy in GNOME related packages to see what needs to be done for KDE, and I stumble over various issues: a) some packages (not all) Supplement branding-openSUSE, some of them with the version number 10.2, some with some other version number (some of them even with the correct one). I figured already out that supplementing 10.2 is pointless, but what is the other reason behind that? Doesn't it mean that the branding packages for GNOME will be installed in a pure KDE installation, or vice versa. In addition it means that big parts of GNOME and KDE will be installed for a minimal X installation, or a XFCE installation. What am I missing? b) the branding packages require the base packages, sometimes the base package requires the branding package explicitely. shouldn't it require some meta package that can be provided by any branding implementation? c) why do branding packages require base packages? why do they require other packages? d) as we have this complicated construct with the version numbers based on the distro base version number, how does that add to the game of having to update the versioning during a security update ? the base package has to require an updated version.. can we add the versioning scheme to the policy (I think something like 11.0.X, where X is the incompatibility counter during maintenance updates and 11.0 is the distro base version). e) there was some parts in the wiki that mentioned that branding requirements should be documented as comments alongside the sources in the spec file. isn't there a better solution than that, like for example installing this information alongside so that an actual branding editor can make use of this information? or do we plan to rebuild source packages in the background? f) what about packages all desktops share (like e.g. the wallpapers in desktop-data-SuSE)? do we have to copy them and maintain them in a gnome-session-branding-openSUSE and kdebase4-workspace-branding-openSUSE ? g) what is the list of algorithmic checkable rules of this branding policy ? I believe that we need rpmlint checks for that, otherwise we'll never get it right without a lot of testing. h) what to do about packages where the upstream package would be empty, or where openSUSE is the upstream? should the branding-openSUSE package then provide the upstream package? -- RPMLINT information under http://en.opensuse.org/Packaging/RpmLint --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dirk Mueller wrote:
Hi,
I've looked at the current implementation of the branding policy in GNOME related packages to see what needs to be done for KDE, and I stumble over various issues:
http://en.opensuse.org/SUSE_Package_Conventions/Branding should be up to date and mention all lower mentioned issues except: - RPM and self conflict - possible selecting unwanted supplementary packages to install - old versions of branding - branding comments discussion - checkable rules - desktop-data-SuSE
a) some packages (not all) Supplement branding-openSUSE
All should supplement it. If not, it is a bug. Section "Defining correct version dependencies"
, some of them with the version number 10.2, some with some other version number (some of them even with the correct one). I figured already out that supplementing 10.2 is pointless, but what is the other reason behind that?
Maybe it is a bad idea, but I used version the branding conforms. I expect, that these packages will be reviewed, and artists will either replace branding image to 11.0 one or say that the package is good enough for 11.0. Until that, these packages don't fulfil the dependency.
Doesn't it mean that the branding packages for GNOME will be installed in a pure KDE installation, or vice versa.
It depends, whether libzypp will install supplementary packages automatically, or only if dependencies are already selected. In the first case, I should have to update specs and replace the plain supplement by the packageand(foo:branding-openSUSE). There is also problem with proposed self conflict. It is ignored by libzypp, but it does not work in plain RPM. I don't know any other way, how to say, that foo-branding-openSUSE conflicts with all other foo-branding-*.
In addition it means that big parts of GNOME and KDE will be installed for a minimal X installation, or a XFCE installation. What am I missing?
b) the branding packages require the base packages,
No. It would cause dependency loop. But some of them may conflict with old version of base package. Again section "Defining correct version dependencies"
sometimes the base package requires the branding package explicitely.
It should never require foo-branding-openSUSE or so. It may require meta package foo-branding.
shouldn't it require some meta package that can be provided by any branding implementation?
Optionally. It may require meta package foo-branding, if needed. Only packages, which must have any branding package installed (e. g. splash screen) to work correctly, need to require it. Packages, which don't require branding package physically (e. g. missing branding background may be replaced by solid color), don't need to require it. If it exists, it will be installed using supplements, if not, nothing will happen. Section "Defining correct version dependencies", "If package can work without any branding..."
c) why do branding packages require base packages? why do they require other packages?
They should not require it. Which branding packages do it? Well, logically they should. But it would cause dependency loop and force foo and foo-branding-anyvendor into the same installation medium, so the proposal does not contain it. We will need another solution to remove obsolete branding packages. The same problem will appear for obsolete shared library packages.
d) as we have this complicated construct with the version numbers based on the distro base version number, how does that add to the game of having to update the versioning during a security update ?
Proposal explicitly talks about it. Dependencies are not strictly versioned. Base package may need new enough branding package, branding package conflicts with old incompatible base package. Security update don't allow to do major version update. If we will do anyway, all branding artists will be forced to paint new splash screens ASAP. See section "Defining correct version dependencies".
the base package has to require an updated version.
If programmers are smart enough to not include minor version number in the artwork, then no.
can we add the versioning scheme to the policy (I think something like 11.0.X, where X is the incompatibility counter during maintenance updates and 11.0 is the distro base version).
It is there. Branding package contains something like incompatibility counter. See "Branding packages version dependencies"
e) there was some parts in the wiki that mentioned that branding requirements should be documented as comments alongside the sources in the spec file. isn't there a better solution than that, like for example installing this information alongside so that an actual branding editor can make use of this information? or do we plan to rebuild source packages in the background?
Yes, it may be possible. But it would introduce installation of many files not interesting to ordinary users. As the branding design needs a work on RPM packaging level, not having it installed may be not a big problem. May intention was automatic extraction of all #BRAND comments after OpenSUSE 11.0 release and putting all of the altogether somewhere to the wiki. So the branding artist will have available complete list, not only list for packages installed. I plan to write a tool for it: branding-comments-extract --rpm-sources=/media/SUSE1100.001
f) what about packages all desktops share (like e.g. the wallpapers in desktop-data-SuSE)? do we have to copy them and maintain them in a gnome-session-branding-openSUSE and kdebase4-workspace-branding-openSUSE ?
Rename it to desktop-data-branding-openSUSE or desktop-branding-openSUSE, add branding symbols and require resolvable desktop-data-branding or desktop-branding in relevant patterns.
g) what is the list of algorithmic checkable rules of this branding policy ? I believe that we need rpmlint checks for that, otherwise we'll never get it right without a lot of testing.
Yes. But we should wait for first experiences. I am afraid, that some parts of proposal may require update (see above). Possible rules: - foo-branding-vendor provides foo-branding - foo-branding-vendor supplements branding-vendor - foo-theme-vendor provides foo-theme - foo-theme-vendor supplements branding-vendor - foo-theme-vendor exists => resolvable foo exists - foo-theme-vendor exists => resolvable theme-vendor exists - foo requires foo-branding => #BRAND: comments are present ...
h) what to do about packages where the upstream package would be empty, or where openSUSE is the upstream? should the branding-openSUSE package then provide the upstream package?
Yes, it might be a good solution. But, for example for SuSE specific /etc/gnome_defaults.conf in glib2-branding-openSUSE I used a different solution: glib2-branding-openSUSE prefers programs as we like glib2-branding-upstream prefers only programs in the official GNOME release -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Stanislav Brabec wrote:
Dirk Mueller wrote:
a) some packages (not all) Supplement branding-openSUSE
All should supplement it. If not, it is a bug. Section "Defining correct version dependencies"
To be exact: All foo-branding-openSUSE should supplement branding-openSUSE. There is no such virtual symbol for branding-upstream. But it might exist and may be added to the proposal. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Thursday 10 April 2008, Stanislav Brabec wrote:
Maybe it is a bad idea, but I used version the branding conforms. I expect, that these packages will be reviewed, and artists will either replace branding image to 11.0 one or say that the package is good enough for 11.0. Until that, these packages don't fulfil the dependency.
ah, so you're using it to specify that the branding is not up to date. I see.
It depends, whether libzypp will install supplementary packages automatically, or only if dependencies are already selected.
if branding-openSUSE is installed, then all packages that supplement will be installed as well.
In the first case, I should have to update specs and replace the plain supplement by the packageand(foo:branding-openSUSE).
where foo is.. ?
There is also problem with proposed self conflict. It is ignored by libzypp, but it does not work in plain RPM. I don't know any other way, how to say, that foo-branding-openSUSE conflicts with all other foo-branding-*.
I think selfconflicts are not portable, and a strange concept. it would be possible to solve this via a file conflict, but this is ugly as well. I don't actually understand why they should conflict though (other than if they already do by installing conflicting files)? wouldn't it be better to allow that somebody replaces just foo-branding-openSUSE with foo-branding-mySUSE without having to do anything else?
We will need another solution to remove obsolete branding packages. The same problem will appear for obsolete shared library packages.
Hmm, in case the openSUSE branding is obsolete and we use the closedSUSE branding? I guess that can be solved by a plain obsoletes then.
Proposal explicitly talks about it. Dependencies are not strictly versioned. Base package may need new enough branding package, branding package conflicts with old incompatible base package.
but does not obsolete them?
Yes. But we should wait for first experiences. I am afraid, that some parts of proposal may require update (see above).
thanks. -- RPMLINT information under http://en.opensuse.org/Packaging/RpmLint --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dirk Mueller wrote:
On Thursday 10 April 2008, Stanislav Brabec wrote:
It depends, whether libzypp will install supplementary packages automatically, or only if dependencies are already selected.
if branding-openSUSE is installed, then all packages that supplement will be installed as well.
Then both proposal and packages already done need to move to packageand form. I'll prepare update and fixes.
In the first case, I should have to update specs and replace the plain supplement by the packageand(foo:branding-openSUSE).
where foo is.. ?
The name of the package, which should be branded. gimp-branding-openSUSE.spec: Supplements: packageand(gimp:branding-openSUSE)
There is also problem with proposed self conflict. It is ignored by libzypp, but it does not work in plain RPM. I don't know any other way, how to say, that foo-branding-openSUSE conflicts with all other foo-branding-*.
I think selfconflicts are not portable, and a strange concept. it would be possible to solve this via a file conflict, but this is ugly as well. I don't actually understand why they should conflict though (other than if they already do by installing conflicting files)? Yes, there are file conflicts by definition. I am perfectly OK to stay only at file conflicts. But I got a complain, that file conflicts are not ugly, and we should have package conflicts, probably because libzypp does not evaluate file conflicts and it could lead to installation errors.
I can imagine special handling in libzypp, if it will be required. If foo-branding-a and foo-branding-b conflict by definition, and it could be evaluated by libzypp implicitly.
wouldn't it be better to allow that somebody replaces just foo-branding-openSUSE with foo-branding-mySUSE without having to do anything else?
Yes, somebody could replace it easily. But we should have a proper solution for situation, where somebody wants gimp-branding-upstream: - Installation tool must (either automatically or on request) propose removing of conflicting gimp-branding-openSUSE - Installation tool must not force automatic replacing it back with gimp-branding-openSUSE, even if distro uses openSUSE brand, at least not in standard update mode. In system upgrade mode, it may propose such replacement.
We will need another solution to remove obsolete branding packages. The same problem will appear for obsolete shared library packages.
Hmm, in case the openSUSE branding is obsolete and we use the closedSUSE branding? I guess that can be solved by a plain obsoletes then.
Yes for this problem. But imagine that somebody will create openSUSE 11.0 based Flocke 11.0 and somebody will install it. Later, openSUSE 11.1 will be released and installed on top or Flocke 11.0. I do not see a way, how to prevent file conflicts.
Proposal explicitly talks about it. Dependencies are not strictly versioned. Base package may need new enough branding package, branding package conflicts with old incompatible base package.
but does not obsolete them?
No, gimp-branding-Flocke-2.4 has to conflict with gimp-2.2 (as it it does not provide correct image), but cannot obsolete gimp-2.2. It is a real life conflict, which must be raised by installation tool: gimp-branding-Flocke-2.4 conflicts with gimp-2.2. Proposed solutions: * remove gimp-branding-Flocke-2.4 and install gimp-branding-oldSUSE-2.2 And vice versa: OpenOffice-2.4 requires OpenOffice-branding-2.4, but installed package OpenOffice-branding-Flocke provides only version 2.2. Proposed solutions: * do not update OpenOffice to version 2.4 * remove package OpenOffice-branding-Flocke and install OpenOffice-branding-openSUSE version 2.4 -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Donnerstag, 10. April 2008 schrieb Stanislav Brabec:
Dirk Mueller wrote:
On Thursday 10 April 2008, Stanislav Brabec wrote:
It depends, whether libzypp will install supplementary packages automatically, or only if dependencies are already selected.
if branding-openSUSE is installed, then all packages that supplement will be installed as well.
Then both proposal and packages already done need to move to packageand form. I'll prepare update and fixes.
In the first case, I should have to update specs and replace the plain supplement by the packageand(foo:branding-openSUSE).
where foo is.. ?
The name of the package, which should be branded.
gimp-branding-openSUSE.spec: Supplements: packageand(gimp:branding-openSUSE)
This is pretty urgent to fix. This is the list of packages pulled into a base system - requiring many other packages. bootsplash-branding-openSUSE gfxboot-branding-openSUSE gimp-branding-openSUSE glib2-branding-openSUSE kde4-kio_sysinfo-branding-openSUSE kdebase4-workspace-branding-openSUSE I fixed kde*4 and I think bootsplash-branding is the only one that should stay there. glib2-branding should be fine as long as it's not requring anything and is as tiny as it is. I think gconf-branding-openSUSE wasn't pulled because it supplements 10.3 not 11.0. Greetings, Stephan --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Stephan Kulow wrote:
Am Donnerstag, 10. April 2008 schrieb Stanislav Brabec:
if branding-openSUSE is installed, then all packages that supplement will be installed as well.
Then both proposal and packages already done need to move to packageand form. I'll prepare update and fixes.
In the first case, I should have to update specs and replace the plain supplement by the packageand(foo:branding-openSUSE).
where foo is.. ?
The name of the package, which should be branded.
gimp-branding-openSUSE.spec: Supplements: packageand(gimp:branding-openSUSE)
This is pretty urgent to fix. Conventions updated: http://en.opensuse.org/SUSE_Package_Conventions/Branding#Branding_supplement I see. I will fix all remaining packages today, whenever I will have a solution for rpm self conflict (it works for libzypp but breaks rpm).
This is the list of packages pulled into a base system - requiring many other packages.
It should not except special cases (branding requires default theme package). Proposal does not contain this dependency, as it would cause dependency loop.
bootsplash-branding-openSUSE gfxboot-branding-openSUSE gimp-branding-openSUSE glib2-branding-openSUSE kde4-kio_sysinfo-branding-openSUSE kdebase4-workspace-branding-openSUSE
Supplements: packageand(gimp:branding-openSUSE)
I fixed kde*4 and I think bootsplash-branding is the only one that should stay there.
Even this could be fixed for consistency.
glib2-branding should be fine as long as it's not requring anything and is as tiny as it is. I think gconf-branding-openSUSE wasn't pulled because it supplements 10.3 not 11.0.
I will fix this as well. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (3)
-
Dirk Mueller
-
Stanislav Brabec
-
Stephan Kulow