[opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Stanislav Brabec
Hallo.

We are just planning to perform changes in GNOME packaging.

It includes:
- Long time planned prefix move from /opt/gnome to /usr.
- New gconf scriptlets finally provide a correct solution of
  https://bugzilla.novell.com/show_bug.cgi?id=48114 using %pre, %preun
  and %posttrans.
- To follow upstream names, pkgconfig will be renamed to pkg-config and
  gtkdoc to gtk-doc. Old names are still available as virtual symbols.
- spec file cleanup. It includes removal of obsolete code, unifying
  packaging scheme, using parallel build, fixing scriptlets, removing
  obsolete configure options,...

Following is optional needs further discussion before starting to do it:
- Remove all unneeded .la files.
- Do not build static libraries at all.

In Build Service:
GNOME:STABLE will diverge from FACTORY.
GNOME:UNSTABLE just now contains upper mentioned changes. After checking
them in, GNOME:UNSTABLE will follow FACTORY. Please don't submit to
GNOME:UNSTABLE any more without requesting SuSE people to include your
change to FACTORY, otherwise you risk, that your change will be lost.

Details:

Move to /usr:

Just now, all core GNOME packages and many other packages are already
moved to /usr in GNOME:UNSTABLE BS project and most problems caused by
it is already fixed. We want to do this in FACTORY ASAP. Long waiting
will cause a lot of divergences between GNOME:UNSTABLE and FACTORY and
will require additional work.

You can experience short term failures caused by inconsistence of .la
files. You must wait for correct rebuild of all lower level packages.

Just now, gnome-filesystem package covers both prefixes, but for
openSuSE 10.3, no package should use /opt/gnome (with one compat package
exception).

It means, that GNOME packages can use %configure to configure all paths
(except --libexecdir, see https://bugzilla.novell.com/show_bug.cgi?id=157894).

I have prepared a small script - prefixfix, which will help to convert
old paths to new ones in the spec file. The rest of changes must be done
manually.

New scriptlets:

As a fix of gconf schemas installation problems, we have a new scriptlet
schemas:
Macros are defined in gconf2-devel, which must be a part of your build
environment.

Preamble:
%gconf_schemas_prereq

%install
...
# if your package installs all schemas to one package:
%find_gconf_schemas
# or
# if your package installs schemas to more subpackages:
%def_gconf_schemas subpackage1
%add_gconf_schemas schemas_name1
%add_gconf_schemas schemas_name2
%def_gconf_schemas subpackage2
%add_gconf_schemas schemas_name3
%add_gconf_schemas schemas_name4
%end_gconf_schemas
# schemas names are without path and suffix

%pre -f %{name}.schemas_pre

%preun -f %{name}.schemas_preun

%posttrans -f %{name}.schemas_posttrans

# NOTE: For package with subpackages include name defined in
# %%def_gconf_schemas

%files -f %{name}.schemas_list
or
%files -f subpacakge.schemas_list


In case of more -f needed for one %files:

%install
...
%find_gconf_schemas
%find_lang %{name}
cat %{name}.schemas_list %{name}.lang >%{name}.lst

%files -f %{name}.lst

-- 
Best Regards / S pozdravem,

Stanislav Brabec
software developer
-
SUSE LINUX, s. r. o.  e-mail: [EMAIL PROTECTED]
Lihovarská 1060/12tel: +420 284 028 966
190 00 Praha 9fax: +420 284 028 951
Czech Republichttp://www.suse.cz/


prefixfix
Description: application/shellscript


Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Richard Bos
Op woensdag 3 januari 2007 13:17, schreef Stanislav Brabec:
> - Long time planned prefix move from /opt/gnome to /usr.

is it possible to explain, why this is done?  What is the advantage of /usr or 
the disadvantage of /opt?

-- 
Richard Bos
Without a home the journey is endless
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Andreas Hanke
Richard Bos schrieb:
> is it possible to explain, why this is done?  What is the advantage of /usr 
> or 
> the disadvantage of /opt?

The /opt/gnome <-> /usr separation simply doesn't work. It worked
reasonably in the past when GNOME was sort of self-contained, but today
GNOME packages install a lot of files (mono libraries, python modules,
dbus services, message catalogs...) that *must* live in /usr.

This means that the packages and spec files became uglier and worse all
the time because packagers had to move parts of the stuff back from
/opt/gnome to /usr. Of course it's very easy to forget that, resulting
in completely broken packages. There were tons of such bugs in the
openSUSE 10.2 preparation period and there are still some of those
floating around, affecting both SUSE and especially 3rd party packages
because some people are not always aware of where stuff has to go.

(That's my main point against /opt/gnome, there are others as well)

Andreas Hanke
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Stanislav Brabec
Andreas Hanke wrote:
> Richard Bos schrieb:
> > is it possible to explain, why this is done?  What is the advantage of /usr 
> > or 
> > the disadvantage of /opt?
> 
> The /opt/gnome <-> /usr separation simply doesn't work. It worked
> reasonably in the past when GNOME was sort of self-contained, but today
> GNOME packages install a lot of files (mono libraries, python modules,
> dbus services, message catalogs...) that *must* live in /usr.
> 
> This means that the packages and spec files became uglier and worse all
> the time because packagers had to move parts of the stuff back from
> /opt/gnome to /usr. Of course it's very easy to forget that, resulting
> in completely broken packages. There were tons of such bugs in the
> openSUSE 10.2 preparation period and there are still some of those
> floating around, affecting both SUSE and especially 3rd party packages
> because some people are not always aware of where stuff has to go.
> 
> (That's my main point against /opt/gnome, there are others as well)

That's the exact technical explanation. Look at Bugzilla and package
changelogs for keyword "prefix clash" or look at extra "mv" commands in
spec files to get a proof.

Additionally installation of distribution packages to /opt:
- Breaks LSB rules.
- Forces third parties to create many distribution specific RPM
  packages.


-- 
Best Regards / S pozdravem,

Stanislav Brabec
software developer
-
SUSE LINUX, s. r. o.  e-mail: [EMAIL PROTECTED]
Lihovarská 1060/12tel: +420 284 028 966
190 00 Praha 9fax: +420 284 028 951
Czech Republichttp://www.suse.cz/

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Gary Ekker
On Wed, 2007-01-03 at 18:26 +0100, Stanislav Brabec wrote:
> Andreas Hanke wrote:
> > Richard Bos schrieb:
> > > is it possible to explain, why this is done?  What is the advantage of 
> > > /usr or 
> > > the disadvantage of /opt?
> > 
> > The /opt/gnome <-> /usr separation simply doesn't work. It worked
> > reasonably in the past when GNOME was sort of self-contained, but today
> > GNOME packages install a lot of files (mono libraries, python modules,
> > dbus services, message catalogs...) that *must* live in /usr.
> > 
> > This means that the packages and spec files became uglier and worse all
> > the time because packagers had to move parts of the stuff back from
> > /opt/gnome to /usr. Of course it's very easy to forget that, resulting
> > in completely broken packages. There were tons of such bugs in the
> > openSUSE 10.2 preparation period and there are still some of those
> > floating around, affecting both SUSE and especially 3rd party packages
> > because some people are not always aware of where stuff has to go.
> > 
> > (That's my main point against /opt/gnome, there are others as well)
> 
> That's the exact technical explanation. Look at Bugzilla and package
> changelogs for keyword "prefix clash" or look at extra "mv" commands in
> spec files to get a proof.
> 
> Additionally installation of distribution packages to /opt:
> - Breaks LSB rules.
> - Forces third parties to create many distribution specific RPM
>   packages.
> 

Fixing these issues makes it much easier to have cross-distro specfiles,
which is a huge win in my opinion. It also allows us to take advantage
of some of the rpm macros that we can't use currently.

-Gary

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Andreas Hanke
Gary Ekker schrieb:
> Fixing these issues makes it much easier to have cross-distro specfiles

And even cross-distro binary packages from 3rd parties (with some
limitations, but possible in principle).

Andreas Hanke
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Richard Bos
Op woensdag 3 januari 2007 17:40, schreef Andreas Hanke:
> > is it possible to explain, why this is done?  What is the advantage of
> > /usr or the disadvantage of /opt?
>
> The /opt/gnome <-> /usr separation simply doesn't work. It worked
> reasonably in the past when GNOME was sort of self-contained, but today
> GNOME packages install a lot of files (mono libraries, python modules,
> dbus services, message catalogs...) that *must* live in /usr.

As kde is dependend on e.g. dbus as well, does that mean that in the future 
kde (kde4) will move to /usr as well?

Op woensdag 3 januari 2007 18:26, schreef Stanislav Brabec:
> Additionally installation of distribution packages to /opt:
> - Breaks LSB rules.
Does the LSB forbid to install packages outside /usr.  I thought that the LSB 
allows packages to be installed /opt, under certain conditions.

> - Forces third parties to create many distribution specific RPM
>   packages.
The same is valid in think for kde (see above).  Does this mean that kde(4) 
will be located in /usr in the future as well?

-- 
Richard Bos
Without a home the journey is endless
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread JP Rosevear
On Wed, 2007-01-03 at 21:30 +0100, Richard Bos wrote:
> Op woensdag 3 januari 2007 17:40, schreef Andreas Hanke:
> > > is it possible to explain, why this is done?  What is the advantage of
> > > /usr or the disadvantage of /opt?
> >
> > The /opt/gnome <-> /usr separation simply doesn't work. It worked
> > reasonably in the past when GNOME was sort of self-contained, but today
> > GNOME packages install a lot of files (mono libraries, python modules,
> > dbus services, message catalogs...) that *must* live in /usr.
> 
> As kde is dependend on e.g. dbus as well, does that mean that in the future 
> kde (kde4) will move to /usr as well?

I believe that is the plan, the KDE team didn't want to move until KDE 4
though.

-JP
-- 
JP Rosevear <[EMAIL PROTECTED]>
Novell, Inc.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Andreas Hanke
Richard Bos schrieb:
> As kde is dependend on e.g. dbus as well, does that mean that in the future 
> kde (kde4) will move to /usr as well?

dbus was just an example. Right now I don't know any KDE package that
would install e.g. a .service file into /usr/share/dbus-1/services and
therefore have to be spread over multiple prefixes. Some GNOME packages
do that, however (and some of them were broken because they used
/opt/gnome/share/dbus-1/services, which is wrong...)

> Does the LSB forbid to install packages outside /usr.  I thought that the LSB 
> allows packages to be installed /opt, under certain conditions.

No, the LSB/FHS does not forbit to install packages outside /usr, but
doing this forces packagers to bend the FHS specifications in sometimes
extreme ways because some files *must* live in /usr because they would
not work otherwise.

Also, the FHS reserves /opt to add-on packages. Maybe you could consider
GNOME an add-on package some years ago, but this is really obsolete now
that glib2 lives in /opt/gnome/lib and e.g. hal (and therefore zypp,
YaST and even KDE) depend on it.

The current idea seems to be that all distro packages should have /usr
as prefix, that's why /usr/X11R6 has been killed as well. (Unfortunately
not complete - it should be killed completely for the next release)

> The same is valid in think for kde (see above).  Does this mean that kde(4) 
> will be located in /usr in the future as well?

The KDE4 build service project uses /opt/kde4 at the moment. There are
no KDE4 packages in Factory yet (at least not public).
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Richard Bos
Op woensdag 3 januari 2007 22:00, schreef Andreas Hanke:
> The current idea seems to be that all distro packages should have /usr
> as prefix, that's why /usr/X11R6 has been killed as well. (Unfortunately
> not complete - it should be killed completely for the next release)

Do you mean with "a distro package", a package that is delivered by opensuse 
via the boxed or online version?

-- 
Richard Bos
Without a home the journey is endless
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] GNOME: planned changes (move to /usr, scriptlets)

2007-01-03 Thread Andreas Hanke
Richard Bos schrieb:
> Do you mean with "a distro package", a package that is delivered by opensuse 
> via the boxed or online version?

Yes.

And 3rd party binary packages that have been built specifically for
openSUSE, and are not meant to be used across different distributions or
to comply with LSB packaging rules [1], are included in this definition
as well. (Packman, build service etc.)

[1] Packages that belong to the distribution themselves don't need to
comply with LSB packaging rules, otherwise *everything* would have to
use /opt, be partially statically linked or ship a copy of half of the
basesystem themselves etc.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] My 2nd spec file; problems with install path using the build script

2007-01-03 Thread Detlef Reichelt
Hi Guenter,

Am Dienstag, 2. Januar 2007 15:56 schrieb Günter Dannoritzer:
> Hi, and Happy New Year,
> + make DESTDIR=/var/tmp/gtkwave-3.0.18 install
> cd bin;\
> install -d /usr/bin;\
> install -m 0755 gtkwave  /usr/bin/gtkwave;\
> install -m 0755 twinwave  /usr/bin/twinwave;\

the makefile doesn't notice DESTDIR, fix it! ;)

Detlef
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] My 2nd spec file; problems with install path using the build script

2007-01-03 Thread Günter Dannoritzer
Detlef Reichelt wrote:
> Hi Guenter,
> 
> Am Dienstag, 2. Januar 2007 15:56 schrieb Günter Dannoritzer:
>> Hi, and Happy New Year,
>> + make DESTDIR=/var/tmp/gtkwave-3.0.18 install
>> cd bin;\
>> install -d /usr/bin;\
>> install -m 0755 gtkwave  /usr/bin/gtkwave;\
>> install -m 0755 twinwave  /usr/bin/twinwave;\
> 
> the makefile doesn't notice DESTDIR, fix it! ;)

I thought when using %configure and %makeinstall those macros are taking
care of placing everything to the proper place in the build environment.
But that was only guessing, I did not find an explanation of those two
macros in the package conventions under:
http://forgeftp.novell.com//library/SUSE%20Package%20Conventions/spc.html

When doing the normal source installation, if I recall right, I specify
the destination directory with the ./configure command. So do I just use
the normal configure like in the gnome spec file example of the build
tutorial http://en.opensuse.org/SUSE_Build_Tutorial and not the
%configure macro then?

Guenter

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [opensuse-packaging] My 2nd spec file; problems with install path using the build script

2007-01-03 Thread Marcus Meissner
On Thu, Jan 04, 2007 at 12:38:09AM +0100, Günter Dannoritzer wrote:
> Detlef Reichelt wrote:
> > Hi Guenter,
> > 
> > Am Dienstag, 2. Januar 2007 15:56 schrieb Günter Dannoritzer:
> >> Hi, and Happy New Year,
> >> + make DESTDIR=/var/tmp/gtkwave-3.0.18 install
> >> cd bin;\
> >> install -d /usr/bin;\
> >> install -m 0755 gtkwave  /usr/bin/gtkwave;\
> >> install -m 0755 twinwave  /usr/bin/twinwave;\
> > 
> > the makefile doesn't notice DESTDIR, fix it! ;)
> 
> I thought when using %configure and %makeinstall those macros are taking
> care of placing everything to the proper place in the build environment.
> But that was only guessing, I did not find an explanation of those two
> macros in the package conventions under:
> http://forgeftp.novell.com//library/SUSE%20Package%20Conventions/spc.html
> 
> When doing the normal source installation, if I recall right, I specify
> the destination directory with the ./configure command. So do I just use
> the normal configure like in the gnome spec file example of the build
> tutorial http://en.opensuse.org/SUSE_Build_Tutorial and not the
> %configure macro then?

The package needs to support DESTDIR too, which it likely does not.

Its not all just magic macros, sometimes you need to fix the package. ;)

Ciao, Marcus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]