[Buildroot] [PATCH] system: add options for /bin /sbin and /lib to be symlinks into /usr

Yann E. MORIN yann.morin.1998 at free.fr
Wed Sep 2 22:07:42 UTC 2015


Arnout, All,

On 2015-09-02 22:59 +0200, Arnout Vandecappelle spake thusly:
> On 02-09-15 00:55, Yann E. MORIN wrote:
> > systemd is incresaingly expected things to live in /usr/bin or
>  increasingly

Yup, as noted by Baruch.

> > /usr/sbin.
> > 
> > However, a lot of packages stil install stuff directly into /bin or
>  still

Yup.

> > /sbin.
> > 
> > Add an option so that /bin and /sbin be symlinks to /usr/bin and
>  be -> are

Nope, this is subjunctive. ;-)

    https://en.wikipedia.org/wiki/Subjunctive_mood

    Subjunctives occur most often, although not exclusively, in
    subordinate clauses, particularly that-clauses. Examples of subjunctive
    use can be found in the English sentences "I suggest that you be
    careful" [...]

> > /usr/sbin. Ditto for .lib for consistency.
>  .lib -> /lib

Yup.

>  In reality, this option is only tangentially related to systemd. Rather, it's a
> Fedora feature [1] that was taken over by Lennart P. and therefore by systemd
> [2]. A better name for the feature is "merged /usr".

ACK, thanks for the history lesson. :-)

/me has laways been pretty bad in history.
/me is ready to trade history lessons for grammatical lessons. But not
ortograph, as it seems, nor typing lessons. ;-)

[--SNIP--]
> > +ifeq ($(BR2_ROOTFS_USR_SYMLINKS),y)
> > +define SKELETON_USR_SYMLINKS
> > +	ln -snf usr/bin $(TARGET_DIR)/bin
> > +	ln -snf usr/sbin $(TARGET_DIR)/sbin
> > +	ln -snf usr/lib $(TARGET_DIR)/lib
> > +endef
> > +else
> > +define SKELETON_NO_USR_SYMLINKS
> 
>  I would define only a single variable: SKELETON_USR_SYMLINKS_OR_DIRECTORIES.

Yeah, I wandered between the two options: a single variable or two.
Since I could not find a good name for the single-variable solution, I
went for two variables.

I'll switch (and maybe rename the variable to SKELETON_USR_SYMLINKS_OR_DIRS.

[--SNIP--]
> > @@ -178,6 +179,18 @@ endif
> >  
> >  if BR2_ROOTFS_SKELETON_DEFAULT
> >  
> > +config BR2_ROOTFS_USR_SYMLINKS
> > +	bool "Use symlinks to /usr for /bin, /sbin and /lib"
> 
>  I like this summary!

Thanks! ;-)

> > +	help
> > +	  If you say 'n' here, then /bin /sbin and /lib and their
> > +	  counterparts in /usr will be separate directories. This
> > +	  is the traditional UNIX way. In this case, /usr can be a
> > +	  partition separate from / .
> > +
> > +	  If you say 'y' here, then /bin /sbin and /lib will be symlinks
> 
>  If you say 'y' here, then /bin, /sbin and /lib will be merged to their
> counterparts in /usr and replaced by symlinks.

It's not that they will be merged, since we do not install things in
/bin and /sbin, and them merge the two; they are one from the beginning.

So, I'm a bit uneasy at using 'merge' in this case.

> > +	  to their counterparts in /usr. This is the new systemd way. In
> 
>  There's not much point to refer to systemd here, since it is forcibly selected
> in the systemd case.

After reading what you said above: ACK.

> > +	  this case, /usr has to be on the / partition.
> 
>  /usr cannot be a separate filesystem.

ACK.

>  BTW I wouldn't mind if this option would default to y eventually. I've been
> doing this (using a custom skeleton) for quite a while now.

Well, I certainly know some caes where /usr is a separate partition, and
defaulting that option to 'y' would break the unsuspecting users.

I'd rather we keep it 'n' at least for the foreseeable future (1 year?)

> [1] https://fedoraproject.org/wiki/Features/UsrMove
> [2] http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge

Thanks! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list