9base in Fedora?

Petr Sabata contyk at redhat.com
Wed Jun 1 07:26:50 UTC 2011


On Tue, May 31, 2011 at 05:55:16PM -0700, Toshio Kuratomi wrote:
> On Wed, Jun 01, 2011 at 12:23:42AM +0200, Petr Sabata wrote:
> > On Tue, May 31, 2011 at 10:16:02AM -0700, Toshio Kuratomi wrote:
> > > On Mon, May 30, 2011 at 11:24:08AM +0200, Petr Sabata wrote:
> > > > On Thu, May 26, 2011 at 10:19:43AM -0400, Matthew Miller wrote:
> > > > > On Thu, May 26, 2011 at 02:23:44PM +0200, Jakub Jelinek wrote:
> > > > > > > As I understand it, the best way to do this in Fedora, with respect to
> > > > > > > same ideas in this thread, would be having %{_libexecdir}/plan9 or similar,
> > > > > > > with bin, lib and share (or whatever upstream supplies) subdirectories.
> > > > > > You understood it wrong, %{_libexecdir}/plan9 should contain only binaries
> > > > > > and nothing else, the rest would go into %{_libdir}/plan9.
> > > > > 
> > > > > I don't understand why exactly %{_libexecdir}/plan9/* would be preferable to
> > > > > the more-straightforward /usr/bin/plan9/*. Generally, programs that are in
> > > > > libexec are meant to _not_ be executed directly, which is not the case here.
> > > > > 
> > > > 
> > > > That would indeed be better, I guess.
> > > > It's okay with both FHS 2.3 and our current Guidelines (or maybe I'm just
> > > > missing something), rpmlint complains about %{_bindir} subdirectory, though.
> > > > 
> > > > (...)
> > > > 9base.x86_64: E: subdir-in-bin /usr/bin/plan9/dc
> > > > The package contains a subdirectory in /usr/bin. It's not permitted to create
> > > > a subdir there. Create it in /usr/lib/ instead.
> > > > (...)
> > > > 
> > > > I'm going to update the package review since this more like an rpmlint issue.
> > > > 
> > > I just got back from FUDCon Panama so I may have read a few things too
> > > quickly... What's the use case for these programs?
> > > 
> > > Just for scripts?
> > > 
> > > For users that are used to plan9 behaviour and want to use them from their
> > > shell?
> > 
> > Pretty much those. Plus they are fun to play with.
> > 
> So, to be clear, you're saying this is just for the latter (users that want
> to have plan9 behaviour) and not the former (for scripts)?

No, they are both for users and for scripts.

> 
> I'm sorry I haven't taken a look at your spec file -- does the latest
> incarnation place the binaries in some non-PATH directory and then have
> prefixed symlinks to those binaries in /usr/bin?

The latest version puts binaries in /usr/bin/plan9/ and other stuff in
/usr/lib[64]/plan9/ (etc, lib and share subdirectories, currently).
Having the etc and share directories in %{_libdir} is not all that great...

> 
> > > 
> > > Either %{_libdir}/plan9 or %{_libdir}/plan9 + %{_libexecdir}/plan9 split
> > > seem that they may fit the bill here.  One of those may be more right than
> > > the other depending on what use case we're trying to support.
> > > 
> > > Subdirectories of %{_bindir} really should not be used in Fedora.
> > 
> > But why exactly?
> >
> subdirectories of /bin are prohibited by the FHS.  The subdirectories that
> may be located in /usr/bin by the FHS are there specifically for
> compatibilities sake for two selected subsystems (mh and X11R6).
> Subdirectories of bin directories don't make any more sense than any other
> directory as they are not added to the PATH by default and thus are not
> user invokable progams without further modification to the environment.
> Placing binaries that are not to be in the default PATH are better placed in
> a more standard location (either libexecdir or libdir depending on the
> use-case).  Subdirectories of /usr/bin are just plain non-standard
> locations.

Yes, I'm aware of that restriction for /bin; that doesn't apply to /usr/bin,
though. Users have to adjust their PATH no matter which directory I choose.

I don't find libexec to be a standard directory. Also, as Matthew already
stated, this should be used for non-directly invoked binaries, if at all.

And for %{_libdir}, according to FHS:

"/usr/lib includes object files, libraries, and internal binaries that are
not intended to be executed directly by users or shell scripts."

This says it all.

%{_bindir}/plan9 seems like a perfect location; it's just some people don't feel
it's right...

-- 
# Petr Sabata
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 230 bytes
Desc: not available
Url : http://lists.fedoraproject.org/pipermail/devel/attachments/20110601/d930c392/attachment.bin 


More information about the devel mailing list