Hello, everyone.

I've finally gotten around to wrapping up my multilib setup
in a profile, and providing necessary patches to system packages
to make it possible to use it without having to hack their mistaken
logic around.

The profile is called 'no-lib-symlink', and is provided as an alternate
amd64 variant. Unlike the common profiles, it is based on three lib*
directories: lib32 for 32-bit binaries, lib64 for 64-bit binaries
and lib as a directory for software packages only (the new-style
libexec).

Please note that this is not the goal layout Gentoo should be working
towards. In that layout, 'lib' needs to be used for 32-bit binaries for
ABI compatibility's sake. My layout is rather targeted at developers who
can benefit from having a clear split on where packages install files,
and therefore being able to catch mistakes such as using 'lib' and
$(get_libdir) interchangeably.

This batch of patches includes also three patches for base system
packages:

a. a patch to prevent glibc from overriding LIBDIR* variables set by
profiles. The logic used there is probably used for cross-compiling,
and so it is moved into cross-compiling branch of code.

b. a patch to fix 'else' branch of baselayout for SYMLINK_LIB=no
systems. For some reason, this branch created 'lib' symlink when 'lib'
did not exist -- therefore triggering another branch of code on next
baselayout installation that replaced the symlink with a directory.
The patch changes it to create the directory instead.

c. a patch to prevent baselayout from complaining when both lib
and lib32 are separate directories. In order to cover that case while
preserving compatibility with the original intent, it skips
the complaint when lib32 is considered a valid directory as well as lib.


--
Best regards,
Michał Górny

---

Michał Górny (4):
  sys-libs/glibc: Do not reset multilib vars unless cross-compilnig,
    #588368
  sys-apps/baselayout: Fix SYMLINK_LIB=no to create lib dir instead of
    sym
  sys-apps/baselayout: Do not complain about lib+lib32 when it is valid
  profiles: Add an amd64 no-lib-symlink profile

 profiles/arch/amd64/no-lib-symlink/make.defaults        | 2 ++
 profiles/arch/amd64/no-lib-symlink/parent               | 1 +
 profiles/default/linux/amd64/13.0/no-lib-symlink/parent | 2 ++
 profiles/profiles.desc                                  | 1 +
 sys-apps/baselayout/baselayout-2.2-r1.ebuild            | 6 ++----
 sys-libs/glibc/files/eblits/common.eblit                | 3 ++-
 6 files changed, 10 insertions(+), 5 deletions(-)
 create mode 100644 profiles/arch/amd64/no-lib-symlink/make.defaults
 create mode 100644 profiles/arch/amd64/no-lib-symlink/parent
 create mode 100644 profiles/default/linux/amd64/13.0/no-lib-symlink/parent

-- 
2.9.0


Reply via email to