FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Development

 
 
LinkBack Thread Tools
 
Old 08-23-2008, 06:03 PM
"Michel Salim"
 
Default GNUstep filesystem layout discussion

What
===
GNUstep is a Obj-C-based framework, similar to Mac OS X's Cocoa

State of GNUstep in Fedora
================
GNUstep has long been excluded from Fedora due to its non-standard
filesystem layout. Recently, however, its support for being installed
under the FHS layout has improved. gnustep-make is now in Fedora.
There are some problems with the current layout used by Fedora; see
below.

Other distributions
===========
Debian and its derived distributions have the complete GNUstep stack
already packaged. The file system layout they adopted seem to be a
flattened FHS layout.

Current problems
==========
OpenStep/GNUstep/Cocoa allow for application bundles: self-contained
directories that is treated by the application launcher (openapp in
GNUstep) as applications. In GNUstep terminology, a "flattened"
layout, such as used in Debian, makes the application bundles
platform-specific. In an unflattened layout, however, such as used by
default when using the GNUstep layout (as opposed to the FHS layout
that we are constrained to use in Fedora), fat binaries are possible:
binaries are stored under a directory specifying their platform.

for instance:

Hello.app
--- i386
| --- hello
--- x86_64
--- hello

This seems more desirable, in that it will allow an unmodified
'openapp' launcher to work on multilib systems: the default
application path is /usr/lib/GNUstep/Applications, regardless of
whether %{_libdir} is /usr/lib or /usr/lib64.

The problem, right now, is that GNUstep tools are currently installed
in /usr/bin/<arch>. Which conflicts with util-linux-ng, where
/usr/bin/<arch> is an executable wrapper around 'setarch <arch>'.

We would need to settle on our GNUstep layout, before the rest of
GNUstep can be packaged. The main options right now seem to be:
- FHS, flattened (like Debian). We would need to override GNUstep-make
to install under %{_libdir} rather than %{_prefix}/lib. It will
require a customized openapp to handle multilib systems

- FHS, unflattened (like our current gnustep-make). Works well with
multilib. We need to decide where to put GNUstep tools: Axel suggests
/usr/bin/GNUstep/<arch>. Base libraries currently go in
/usr/lib/<arch>, and are probably fine there. Moving them to
/usr/lib/GNUstep/<arch> might cause confusion as the higher-level
frameworks are installed there.

- Pure GNUstep layout. Everything goes in /usr/GNUstep

Thoughts? Once we come up with a consensus I'll probably start a page
on the Wiki. Anyone interested in joining a GNUstep SIG?

Regards,

--
Michel Salim
http://hircus.jaiku.com/

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-23-2008, 06:03 PM
"Michel Salim"
 
Default GNUstep filesystem layout discussion

What
===
GNUstep is a Obj-C-based framework, similar to Mac OS X's Cocoa

State of GNUstep in Fedora
================
GNUstep has long been excluded from Fedora due to its non-standard
filesystem layout. Recently, however, its support for being installed
under the FHS layout has improved. gnustep-make is now in Fedora.
There are some problems with the current layout used by Fedora; see
below.

Other distributions
===========
Debian and its derived distributions have the complete GNUstep stack
already packaged. The file system layout they adopted seem to be a
flattened FHS layout.

Current problems
==========
OpenStep/GNUstep/Cocoa allow for application bundles: self-contained
directories that is treated by the application launcher (openapp in
GNUstep) as applications. In GNUstep terminology, a "flattened"
layout, such as used in Debian, makes the application bundles
platform-specific. In an unflattened layout, however, such as used by
default when using the GNUstep layout (as opposed to the FHS layout
that we are constrained to use in Fedora), fat binaries are possible:
binaries are stored under a directory specifying their platform.

for instance:

Hello.app
--- i386
| --- hello
--- x86_64
--- hello

This seems more desirable, in that it will allow an unmodified
'openapp' launcher to work on multilib systems: the default
application path is /usr/lib/GNUstep/Applications, regardless of
whether %{_libdir} is /usr/lib or /usr/lib64.

The problem, right now, is that GNUstep tools are currently installed
in /usr/bin/<arch>. Which conflicts with util-linux-ng, where
/usr/bin/<arch> is an executable wrapper around 'setarch <arch>'.

We would need to settle on our GNUstep layout, before the rest of
GNUstep can be packaged. The main options right now seem to be:
- FHS, flattened (like Debian). We would need to override GNUstep-make
to install under %{_libdir} rather than %{_prefix}/lib. It will
require a customized openapp to handle multilib systems

- FHS, unflattened (like our current gnustep-make). Works well with
multilib. We need to decide where to put GNUstep tools: Axel suggests
/usr/bin/GNUstep/<arch>. Base libraries currently go in
/usr/lib/<arch>, and are probably fine there. Moving them to
/usr/lib/GNUstep/<arch> might cause confusion as the higher-level
frameworks are installed there.

- Pure GNUstep layout. Everything goes in /usr/GNUstep

Thoughts? Once we come up with a consensus I'll probably start a page
on the Wiki. Anyone interested in joining a GNUstep SIG?

Regards,

--
Michel Salim
http://hircus.jaiku.com/

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging
 
Old 08-23-2008, 07:12 PM
Axel Thimm
 
Default GNUstep filesystem layout discussion

Hi,

On Sat, Aug 23, 2008 at 02:03:23PM -0400, Michel Salim wrote:
> What
> ===
> GNUstep is a Obj-C-based framework, similar to Mac OS X's Cocoa
>
> State of GNUstep in Fedora
> ================
> GNUstep has long been excluded from Fedora due to its non-standard
> filesystem layout. Recently, however, its support for being installed
> under the FHS layout has improved. gnustep-make is now in Fedora.
> There are some problems with the current layout used by Fedora; see
> below.
>
> Other distributions
> ===========
> Debian and its derived distributions have the complete GNUstep stack
> already packaged. The file system layout they adopted seem to be a
> flattened FHS layout.
>
> Current problems
> ==========
> OpenStep/GNUstep/Cocoa allow for application bundles: self-contained
> directories that is treated by the application launcher (openapp in
> GNUstep) as applications. In GNUstep terminology, a "flattened"
> layout, such as used in Debian, makes the application bundles
> platform-specific. In an unflattened layout, however, such as used by
> default when using the GNUstep layout (as opposed to the FHS layout
> that we are constrained to use in Fedora), fat binaries are possible:
> binaries are stored under a directory specifying their platform.
>
> for instance:
>
> Hello.app
> --- i386
> | --- hello
> --- x86_64
> --- hello
>
> This seems more desirable, in that it will allow an unmodified
> 'openapp' launcher to work on multilib systems: the default
> application path is /usr/lib/GNUstep/Applications, regardless of
> whether %{_libdir} is /usr/lib or /usr/lib64.

Please note that the unflattened layout is not just for different
archs, but even different compilers/libcombos. In a flattened world
one can only support one combo which for example will make
opengroupware conflict with other GNUstep apps.

At least this is my understanding, I don't know how Debian has solved
this, or even if opengroupware is part of Debian, so perhaps they
haven't seen the issue, yet.

> The problem, right now, is that GNUstep tools are currently installed
> in /usr/bin/<arch>. Which conflicts with util-linux-ng, where
> /usr/bin/<arch> is an executable wrapper around 'setarch <arch>'.

What if we simply crop off the <arch> from the path? Would that make
us fully FHS compliant again?

> We would need to settle on our GNUstep layout, before the rest of
> GNUstep can be packaged. The main options right now seem to be:
> - FHS, flattened (like Debian). We would need to override GNUstep-make
> to install under %{_libdir} rather than %{_prefix}/lib. It will
> require a customized openapp to handle multilib systems
>
> - FHS, unflattened (like our current gnustep-make). Works well with
> multilib. We need to decide where to put GNUstep tools: Axel suggests
> /usr/bin/GNUstep/<arch>.

Actually I suggested putting them under %{_libexecdir} with
symlinks/wrappers back to %{_bindir}. I don't think that a
subdirectory under %{_bindir} is really in FHS/Fedora spirit.

But now I think maybe we need to place them directly under %{_bindir}
and let rpm deal with the different archs as it does for all other
%{_bindir} mixing of subarchs with colors etc.

> Base libraries currently go in /usr/lib/<arch>, and are probably
> fine there.

Shouldn't this at least go beneath %{_libdir} instead of /usr/lib?

> Moving them to /usr/lib/GNUstep/<arch> might cause confusion as the
> higher-level frameworks are installed there.
>
> - Pure GNUstep layout. Everything goes in /usr/GNUstep

Thanks for the writeup and if smeone is interested: Some discussion in
context of a bug report happened here:

https://bugzilla.redhat.com/show_bug.cgi?id=437551

I think Fedora's typical way of dealing with this is the following:

o multiarch/multilib binaries are not supported, e.g. all other
instances either hide non consumer binaries under %{_libdir}, or
allow x86_64 to overwrite less colorful cousins like i386.

o libraries need to be placed under %{_libdir}.

> Thoughts? Once we come up with a consensus I'll probably start a
> page on the Wiki. Anyone interested in joining a GNUstep SIG?

I think it is important for many GNUstep app builders to voice in
their experiences with the GNUstep build procedure and see how we can
make sure the layout we will be "setting in stone" by approval by the
FPC will be pleasing all.

A wiki page will be great as we can even ask non Fedorians like the
opengroupware people to have a look and see whether it would fit their
software's need.
--
Axel.Thimm at ATrpms.net
--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging
 
Old 08-23-2008, 07:12 PM
Axel Thimm
 
Default GNUstep filesystem layout discussion

Hi,

On Sat, Aug 23, 2008 at 02:03:23PM -0400, Michel Salim wrote:
> What
> ===
> GNUstep is a Obj-C-based framework, similar to Mac OS X's Cocoa
>
> State of GNUstep in Fedora
> ================
> GNUstep has long been excluded from Fedora due to its non-standard
> filesystem layout. Recently, however, its support for being installed
> under the FHS layout has improved. gnustep-make is now in Fedora.
> There are some problems with the current layout used by Fedora; see
> below.
>
> Other distributions
> ===========
> Debian and its derived distributions have the complete GNUstep stack
> already packaged. The file system layout they adopted seem to be a
> flattened FHS layout.
>
> Current problems
> ==========
> OpenStep/GNUstep/Cocoa allow for application bundles: self-contained
> directories that is treated by the application launcher (openapp in
> GNUstep) as applications. In GNUstep terminology, a "flattened"
> layout, such as used in Debian, makes the application bundles
> platform-specific. In an unflattened layout, however, such as used by
> default when using the GNUstep layout (as opposed to the FHS layout
> that we are constrained to use in Fedora), fat binaries are possible:
> binaries are stored under a directory specifying their platform.
>
> for instance:
>
> Hello.app
> --- i386
> | --- hello
> --- x86_64
> --- hello
>
> This seems more desirable, in that it will allow an unmodified
> 'openapp' launcher to work on multilib systems: the default
> application path is /usr/lib/GNUstep/Applications, regardless of
> whether %{_libdir} is /usr/lib or /usr/lib64.

Please note that the unflattened layout is not just for different
archs, but even different compilers/libcombos. In a flattened world
one can only support one combo which for example will make
opengroupware conflict with other GNUstep apps.

At least this is my understanding, I don't know how Debian has solved
this, or even if opengroupware is part of Debian, so perhaps they
haven't seen the issue, yet.

> The problem, right now, is that GNUstep tools are currently installed
> in /usr/bin/<arch>. Which conflicts with util-linux-ng, where
> /usr/bin/<arch> is an executable wrapper around 'setarch <arch>'.

What if we simply crop off the <arch> from the path? Would that make
us fully FHS compliant again?

> We would need to settle on our GNUstep layout, before the rest of
> GNUstep can be packaged. The main options right now seem to be:
> - FHS, flattened (like Debian). We would need to override GNUstep-make
> to install under %{_libdir} rather than %{_prefix}/lib. It will
> require a customized openapp to handle multilib systems
>
> - FHS, unflattened (like our current gnustep-make). Works well with
> multilib. We need to decide where to put GNUstep tools: Axel suggests
> /usr/bin/GNUstep/<arch>.

Actually I suggested putting them under %{_libexecdir} with
symlinks/wrappers back to %{_bindir}. I don't think that a
subdirectory under %{_bindir} is really in FHS/Fedora spirit.

But now I think maybe we need to place them directly under %{_bindir}
and let rpm deal with the different archs as it does for all other
%{_bindir} mixing of subarchs with colors etc.

> Base libraries currently go in /usr/lib/<arch>, and are probably
> fine there.

Shouldn't this at least go beneath %{_libdir} instead of /usr/lib?

> Moving them to /usr/lib/GNUstep/<arch> might cause confusion as the
> higher-level frameworks are installed there.
>
> - Pure GNUstep layout. Everything goes in /usr/GNUstep

Thanks for the writeup and if smeone is interested: Some discussion in
context of a bug report happened here:

https://bugzilla.redhat.com/show_bug.cgi?id=437551

I think Fedora's typical way of dealing with this is the following:

o multiarch/multilib binaries are not supported, e.g. all other
instances either hide non consumer binaries under %{_libdir}, or
allow x86_64 to overwrite less colorful cousins like i386.

o libraries need to be placed under %{_libdir}.

> Thoughts? Once we come up with a consensus I'll probably start a
> page on the Wiki. Anyone interested in joining a GNUstep SIG?

I think it is important for many GNUstep app builders to voice in
their experiences with the GNUstep build procedure and see how we can
make sure the layout we will be "setting in stone" by approval by the
FPC will be pleasing all.

A wiki page will be great as we can even ask non Fedorians like the
opengroupware people to have a look and see whether it would fit their
software's need.
--
Axel.Thimm at ATrpms.net
--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-23-2008, 10:20 PM
Kevin Kofler
 
Default GNUstep filesystem layout discussion

Michel Salim <michel.sylvan <at> gmail.com> writes:
> - FHS, flattened (like Debian). We would need to override GNUstep-make
> to install under %{_libdir} rather than %{_prefix}/lib. It will
> require a customized openapp to handle multilib systems

I consider this to be the only way to really comply with the FHS as required by
the Fedora Packaging Guidelines.

And as Axel rightly pointed out, binaries do not belong to /usr/bin/GNUstep/:
if they're intended to be run directly, they should be directly under /usr/bin,
otherwise they should be under /usr/libexec/GNUstep.

Disclaimer: I am not an FPC member.

I hope this helps,
Kevin Kofler

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-23-2008, 10:26 PM
Kevin Kofler
 
Default GNUstep filesystem layout discussion

Axel Thimm <Axel.Thimm <at> ATrpms.net> writes:
> Please note that the unflattened layout is not just for different
> archs, but even different compilers/libcombos. In a flattened world
> one can only support one combo which for example will make
> opengroupware conflict with other GNUstep apps.

Yuck! IMHO the answer there is the same as for other packages which think they
are a distro: they need to be fixed to work with the system libraries instead
(or the system libraries fixed to work with the packages, if that's where the
problem lies).

Kevin Kofler

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-23-2008, 10:41 PM
"Dominik 'Rathann' Mierzejewski"
 
Default GNUstep filesystem layout discussion

On Sunday, 24 August 2008 at 00:20, Kevin Kofler wrote:
> Michel Salim <michel.sylvan <at> gmail.com> writes:
> > - FHS, flattened (like Debian). We would need to override GNUstep-make
> > to install under %{_libdir} rather than %{_prefix}/lib. It will
> > require a customized openapp to handle multilib systems
>
> I consider this to be the only way to really comply with the FHS as required by
> the Fedora Packaging Guidelines.
>
> And as Axel rightly pointed out, binaries do not belong to /usr/bin/GNUstep/:
> if they're intended to be run directly, they should be directly under /usr/bin,
> otherwise they should be under /usr/libexec/GNUstep.

Sounds reasonable, +1.

Regards,
R.

--
Fedora http://fedoraproject.org/wiki/User:Rathann
Livna http://rpm.livna.org | MPlayer http://mplayerhq.hu
"Faith manages."
-- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-23-2008, 10:41 PM
"Dominik 'Rathann' Mierzejewski"
 
Default GNUstep filesystem layout discussion

On Sunday, 24 August 2008 at 00:20, Kevin Kofler wrote:
> Michel Salim <michel.sylvan <at> gmail.com> writes:
> > - FHS, flattened (like Debian). We would need to override GNUstep-make
> > to install under %{_libdir} rather than %{_prefix}/lib. It will
> > require a customized openapp to handle multilib systems
>
> I consider this to be the only way to really comply with the FHS as required by
> the Fedora Packaging Guidelines.
>
> And as Axel rightly pointed out, binaries do not belong to /usr/bin/GNUstep/:
> if they're intended to be run directly, they should be directly under /usr/bin,
> otherwise they should be under /usr/libexec/GNUstep.

Sounds reasonable, +1.

Regards,
R.

--
Fedora http://fedoraproject.org/wiki/User:Rathann
Livna http://rpm.livna.org | MPlayer http://mplayerhq.hu
"Faith manages."
-- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging
 
Old 08-24-2008, 12:26 AM
"Michel Salim"
 
Default GNUstep filesystem layout discussion

On Sat, Aug 23, 2008 at 6:41 PM, Dominik 'Rathann' Mierzejewski
<dominik@greysector.net> wrote:
> On Sunday, 24 August 2008 at 00:20, Kevin Kofler wrote:
>> Michel Salim <michel.sylvan <at> gmail.com> writes:
>> > - FHS, flattened (like Debian). We would need to override GNUstep-make
>> > to install under %{_libdir} rather than %{_prefix}/lib. It will
>> > require a customized openapp to handle multilib systems
>>
>> I consider this to be the only way to really comply with the FHS as required by
>> the Fedora Packaging Guidelines.
>>
>> And as Axel rightly pointed out, binaries do not belong to /usr/bin/GNUstep/:
>> if they're intended to be run directly, they should be directly under /usr/bin,
>> otherwise they should be under /usr/libexec/GNUstep.
>
> Sounds reasonable, +1.
>
So the consensus so far seems to be for using a flattened layout.
Removing --disable-flattened from gnustep-make actually causes a much
tighter adherence to the FHS, with %{_bindir} and %{_libdir} not
containing any subdirectories.

The one problem I foresee is that application bundles also contain
data files. Putting them in %{_libdir}/GNUstep/Applications would mean
that installing 32-bit and 64-bit versions of a bundle result in the
data files being duplicated. This is probably acceptable, though.

I've summarized the discussion on the Wiki:
https://fedoraproject.org/wiki/PackagingDrafts/GNUstep

Axel, what do you think? Seems like keeping the unflattened layout
might be too much trouble; if we are already flattening /usr/bin and
/usr/lib*, might as well stick with a flattened layout after all.

--
Michel Salim
http://hircus.jaiku.com/

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 
Old 08-24-2008, 12:26 AM
"Michel Salim"
 
Default GNUstep filesystem layout discussion

On Sat, Aug 23, 2008 at 6:41 PM, Dominik 'Rathann' Mierzejewski
<dominik@greysector.net> wrote:
> On Sunday, 24 August 2008 at 00:20, Kevin Kofler wrote:
>> Michel Salim <michel.sylvan <at> gmail.com> writes:
>> > - FHS, flattened (like Debian). We would need to override GNUstep-make
>> > to install under %{_libdir} rather than %{_prefix}/lib. It will
>> > require a customized openapp to handle multilib systems
>>
>> I consider this to be the only way to really comply with the FHS as required by
>> the Fedora Packaging Guidelines.
>>
>> And as Axel rightly pointed out, binaries do not belong to /usr/bin/GNUstep/:
>> if they're intended to be run directly, they should be directly under /usr/bin,
>> otherwise they should be under /usr/libexec/GNUstep.
>
> Sounds reasonable, +1.
>
So the consensus so far seems to be for using a flattened layout.
Removing --disable-flattened from gnustep-make actually causes a much
tighter adherence to the FHS, with %{_bindir} and %{_libdir} not
containing any subdirectories.

The one problem I foresee is that application bundles also contain
data files. Putting them in %{_libdir}/GNUstep/Applications would mean
that installing 32-bit and 64-bit versions of a bundle result in the
data files being duplicated. This is probably acceptable, though.

I've summarized the discussion on the Wiki:
https://fedoraproject.org/wiki/PackagingDrafts/GNUstep

Axel, what do you think? Seems like keeping the unflattened layout
might be too much trouble; if we are already flattening /usr/bin and
/usr/lib*, might as well stick with a flattened layout after all.

--
Michel Salim
http://hircus.jaiku.com/

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging
 

Thread Tools




All times are GMT. The time now is 01:38 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org