public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
@ 2016-07-09 21:01 Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 1/4] sys-libs/glibc: Do not reset multilib vars unless cross-compilnig, #588368 Michał Górny
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-09 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

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



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [gentoo-dev] [PATCH 1/4] sys-libs/glibc: Do not reset multilib vars unless cross-compilnig, #588368
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
@ 2016-07-09 21:01 ` Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 2/4] sys-apps/baselayout: Fix SYMLINK_LIB=no to create lib dir instead of sym Michał Górny
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-09 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Do not call multilib_env_reset unless cross-compiling, in order to
prevent the function from redefining profile-defined variables such as
LIBDIR_*.
---
 sys-libs/glibc/files/eblits/common.eblit | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/glibc/files/eblits/common.eblit b/sys-libs/glibc/files/eblits/common.eblit
index e56f10e..370782b 100644
--- a/sys-libs/glibc/files/eblits/common.eblit
+++ b/sys-libs/glibc/files/eblits/common.eblit
@@ -318,8 +318,9 @@ setup_env() {
 	unset LD_RUN_PATH
 	unset LD_ASSUME_KERNEL
 
-	multilib_env ${CTARGET_OPT:-${CTARGET}}
 	if is_crosscompile || tc-is-cross-compiler ; then
+		multilib_env ${CTARGET_OPT:-${CTARGET}}
+
 		if ! use multilib ; then
 			MULTILIB_ABIS=${DEFAULT_ABI}
 		else
-- 
2.9.0



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-dev] [PATCH 2/4] sys-apps/baselayout: Fix SYMLINK_LIB=no to create lib dir instead of sym
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 1/4] sys-libs/glibc: Do not reset multilib vars unless cross-compilnig, #588368 Michał Górny
@ 2016-07-09 21:01 ` Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 3/4] sys-apps/baselayout: Do not complain about lib+lib32 when it is valid Michał Górny
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-09 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Fix the 'else' branch of SYMLINK_LIB=no code to create lib directory
rather than a symlink.
---
 sys-apps/baselayout/baselayout-2.2-r1.ebuild | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sys-apps/baselayout/baselayout-2.2-r1.ebuild b/sys-apps/baselayout/baselayout-2.2-r1.ebuild
index 11326dc..a9e1a65 100644
--- a/sys-apps/baselayout/baselayout-2.2-r1.ebuild
+++ b/sys-apps/baselayout/baselayout-2.2-r1.ebuild
@@ -118,9 +118,7 @@ multilib_layout() {
 			else
 				# nothing exists, so just set it up sanely
 				ewarn "Initializing ${prefix}lib as a dir"
-				mkdir -p "${prefix}" || die
-				rm -f "${prefix}lib" || die
-				ln -s ${def_libdir} "${prefix}lib" || die
+				mkdir -p "${prefix}lib" || die
 			fi
 		fi
 	done
-- 
2.9.0



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-dev] [PATCH 3/4] sys-apps/baselayout: Do not complain about lib+lib32 when it is valid
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 1/4] sys-libs/glibc: Do not reset multilib vars unless cross-compilnig, #588368 Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 2/4] sys-apps/baselayout: Fix SYMLINK_LIB=no to create lib dir instead of sym Michał Górny
@ 2016-07-09 21:01 ` Michał Górny
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile Michał Górny
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-09 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Remove the error on 'lib' directory with SYMLINK_LIB=no multilib layout
if lib32 is a valid directory as well. This fixes the wrong assert
in the new no-lib-symlink profile while preserving the check on regular
lib+lib64 profile.
---
 sys-apps/baselayout/baselayout-2.2-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-apps/baselayout/baselayout-2.2-r1.ebuild b/sys-apps/baselayout/baselayout-2.2-r1.ebuild
index a9e1a65..3c3aa95 100644
--- a/sys-apps/baselayout/baselayout-2.2-r1.ebuild
+++ b/sys-apps/baselayout/baselayout-2.2-r1.ebuild
@@ -99,7 +99,7 @@ multilib_layout() {
 				else
 					mkdir -p "${prefix}lib" || die
 				fi
-			elif [ -d "${prefix}lib" ] ; then
+			elif [ -d "${prefix}lib" ] && ! has lib32 ${libdirs} ; then
 				# make sure the old "lib" ABI location does not exist; we
 				# only symlinked the lib dir on systems where we moved it
 				# to "lib32" ...
-- 
2.9.0



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
                   ` (2 preceding siblings ...)
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 3/4] sys-apps/baselayout: Do not complain about lib+lib32 when it is valid Michał Górny
@ 2016-07-09 21:01 ` Michał Górny
  2016-07-10 16:05   ` William Hubbs
  2016-07-11 16:33 ` [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Mike Gilbert
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Michał Górny @ 2016-07-09 21:01 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Add an amd64 no-symlink profile that removes 'lib' symlink from
the (current) default amd64 profile. Please note that this is not really
a standard configuration (unlike the lib+lib64 model) but a profile
intended to help developers find mispackaged software.

It provides a clean split where lib64 contains 64-bit libraries, lib32
-- 32-bit libraries, and lib -- any other software packages (i.e.
the new-style libexec use).
---
 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 +
 4 files changed, 6 insertions(+)
 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

diff --git a/profiles/arch/amd64/no-lib-symlink/make.defaults b/profiles/arch/amd64/no-lib-symlink/make.defaults
new file mode 100644
index 0000000..a715cf1
--- /dev/null
+++ b/profiles/arch/amd64/no-lib-symlink/make.defaults
@@ -0,0 +1,2 @@
+# do not want lib -> lib64 symlink, let lib be a directory on its own!
+SYMLINK_LIB="no"
diff --git a/profiles/arch/amd64/no-lib-symlink/parent b/profiles/arch/amd64/no-lib-symlink/parent
new file mode 100644
index 0000000..f3229c5
--- /dev/null
+++ b/profiles/arch/amd64/no-lib-symlink/parent
@@ -0,0 +1 @@
+..
diff --git a/profiles/default/linux/amd64/13.0/no-lib-symlink/parent b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
new file mode 100644
index 0000000..2a54eb8
--- /dev/null
+++ b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
@@ -0,0 +1,2 @@
+../../../../../arch/amd64/no-lib-symlink
+..
diff --git a/profiles/profiles.desc b/profiles/profiles.desc
index 2634742..9c4160f 100644
--- a/profiles/profiles.desc
+++ b/profiles/profiles.desc
@@ -26,6 +26,7 @@ amd64           default/linux/amd64/13.0/desktop/kde/systemd       stable
 amd64           default/linux/amd64/13.0/desktop/plasma            stable
 amd64           default/linux/amd64/13.0/desktop/plasma/systemd    stable
 amd64           default/linux/amd64/13.0/developer                 stable
+amd64           default/linux/amd64/13.0/no-lib-symlink            dev
 amd64           default/linux/amd64/13.0/no-multilib               dev
 amd64           default/linux/amd64/13.0/systemd                   stable
 amd64           default/linux/amd64/13.0/x32                       dev
-- 
2.9.0



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile Michał Górny
@ 2016-07-10 16:05   ` William Hubbs
  0 siblings, 0 replies; 14+ messages in thread
From: William Hubbs @ 2016-07-10 16:05 UTC (permalink / raw
  To: gentoo-dev; +Cc: mgorny

[-- Attachment #1: Type: text/plain, Size: 2917 bytes --]

Hold off on this one.

Let me work w/ releng today on this, I think we are going to create new
profiles.

William

On Sat, Jul 09, 2016 at 11:01:28PM +0200, Michał Górny wrote:
> Add an amd64 no-symlink profile that removes 'lib' symlink from
> the (current) default amd64 profile. Please note that this is not really
> a standard configuration (unlike the lib+lib64 model) but a profile
> intended to help developers find mispackaged software.
> 
> It provides a clean split where lib64 contains 64-bit libraries, lib32
> -- 32-bit libraries, and lib -- any other software packages (i.e.
> the new-style libexec use).
> ---
>  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 +
>  4 files changed, 6 insertions(+)
>  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
> 
> diff --git a/profiles/arch/amd64/no-lib-symlink/make.defaults b/profiles/arch/amd64/no-lib-symlink/make.defaults
> new file mode 100644
> index 0000000..a715cf1
> --- /dev/null
> +++ b/profiles/arch/amd64/no-lib-symlink/make.defaults
> @@ -0,0 +1,2 @@
> +# do not want lib -> lib64 symlink, let lib be a directory on its own!
> +SYMLINK_LIB="no"
> diff --git a/profiles/arch/amd64/no-lib-symlink/parent b/profiles/arch/amd64/no-lib-symlink/parent
> new file mode 100644
> index 0000000..f3229c5
> --- /dev/null
> +++ b/profiles/arch/amd64/no-lib-symlink/parent
> @@ -0,0 +1 @@
> +..
> diff --git a/profiles/default/linux/amd64/13.0/no-lib-symlink/parent b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
> new file mode 100644
> index 0000000..2a54eb8
> --- /dev/null
> +++ b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
> @@ -0,0 +1,2 @@
> +../../../../../arch/amd64/no-lib-symlink
> +..
> diff --git a/profiles/profiles.desc b/profiles/profiles.desc
> index 2634742..9c4160f 100644
> --- a/profiles/profiles.desc
> +++ b/profiles/profiles.desc
> @@ -26,6 +26,7 @@ amd64           default/linux/amd64/13.0/desktop/kde/systemd       stable
>  amd64           default/linux/amd64/13.0/desktop/plasma            stable
>  amd64           default/linux/amd64/13.0/desktop/plasma/systemd    stable
>  amd64           default/linux/amd64/13.0/developer                 stable
> +amd64           default/linux/amd64/13.0/no-lib-symlink            dev
>  amd64           default/linux/amd64/13.0/no-multilib               dev
>  amd64           default/linux/amd64/13.0/systemd                   stable
>  amd64           default/linux/amd64/13.0/x32                       dev
> -- 
> 2.9.0
> 
> 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
                   ` (3 preceding siblings ...)
  2016-07-09 21:01 ` [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile Michał Górny
@ 2016-07-11 16:33 ` Mike Gilbert
  2016-07-11 17:46   ` Michał Górny
  2016-09-03 11:06 ` Michał Górny
  2016-09-05 11:47 ` Joshua Kinard
  6 siblings, 1 reply; 14+ messages in thread
From: Mike Gilbert @ 2016-07-11 16:33 UTC (permalink / raw
  To: Gentoo Dev

On Sat, Jul 9, 2016 at 5:01 PM, Michał Górny <mgorny@gentoo.org> wrote:
> 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 baselayout and glibc changes seem like a good idea.

I don't see much value in creating a new profile though; it's easy
enough for a developer to just stick SYMLINK_LIB=no in make.conf.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-11 16:33 ` [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Mike Gilbert
@ 2016-07-11 17:46   ` Michał Górny
  2016-07-11 19:39     ` Mike Gilbert
  2016-07-12  5:29     ` Ulrich Mueller
  0 siblings, 2 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-11 17:46 UTC (permalink / raw
  To: Mike Gilbert; +Cc: Gentoo Dev

[-- Attachment #1: Type: text/plain, Size: 871 bytes --]

On Mon, 11 Jul 2016 12:33:54 -0400
Mike Gilbert <floppym@gentoo.org> wrote:

> On Sat, Jul 9, 2016 at 5:01 PM, Michał Górny <mgorny@gentoo.org> wrote:
> > 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 baselayout and glibc changes seem like a good idea.
> 
> I don't see much value in creating a new profile though; it's easy
> enough for a developer to just stick SYMLINK_LIB=no in make.conf.

I didn't initially wanted to do the profile either but some developers
have refused to support this 'unsupported configuration'. I assume that
having an official profile will ensure better cooperation.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-11 17:46   ` Michał Górny
@ 2016-07-11 19:39     ` Mike Gilbert
  2016-07-12  5:29     ` Ulrich Mueller
  1 sibling, 0 replies; 14+ messages in thread
From: Mike Gilbert @ 2016-07-11 19:39 UTC (permalink / raw
  To: Michał Górny; +Cc: Gentoo Dev

On Mon, Jul 11, 2016 at 1:46 PM, Michał Górny <mgorny@gentoo.org> wrote:
> On Mon, 11 Jul 2016 12:33:54 -0400
> Mike Gilbert <floppym@gentoo.org> wrote:
>
>> On Sat, Jul 9, 2016 at 5:01 PM, Michał Górny <mgorny@gentoo.org> wrote:
>> > 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 baselayout and glibc changes seem like a good idea.
>>
>> I don't see much value in creating a new profile though; it's easy
>> enough for a developer to just stick SYMLINK_LIB=no in make.conf.
>
> I didn't initially wanted to do the profile either but some developers
> have refused to support this 'unsupported configuration'. I assume that
> having an official profile will ensure better cooperation.
>

I'm doubtful that will help with stubborn people, but I guess it can't
hurt to try it.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-11 17:46   ` Michał Górny
  2016-07-11 19:39     ` Mike Gilbert
@ 2016-07-12  5:29     ` Ulrich Mueller
  2016-07-12 10:31       ` Michał Górny
  1 sibling, 1 reply; 14+ messages in thread
From: Ulrich Mueller @ 2016-07-12  5:29 UTC (permalink / raw
  To: gentoo-dev; +Cc: Mike Gilbert

[-- Attachment #1: Type: text/plain, Size: 485 bytes --]

>>>>> On Mon, 11 Jul 2016, Michał Górny wrote:

> I didn't initially wanted to do the profile either but some
> developers have refused to support this 'unsupported configuration'.
> I assume that having an official profile will ensure better
> cooperation.

IMHO we should create additional profiles only if there are valid
technical reasons, but not because of social reasons.

Even more so as the profile in question is intended to be used by
developers only.

Ulrich

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-12  5:29     ` Ulrich Mueller
@ 2016-07-12 10:31       ` Michał Górny
  0 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-07-12 10:31 UTC (permalink / raw
  To: Ulrich Mueller; +Cc: gentoo-dev, Mike Gilbert

[-- Attachment #1: Type: text/plain, Size: 868 bytes --]

On Tue, 12 Jul 2016 07:29:08 +0200
Ulrich Mueller <ulm@gentoo.org> wrote:

> >>>>> On Mon, 11 Jul 2016, Michał Górny wrote:  
> 
> > I didn't initially wanted to do the profile either but some
> > developers have refused to support this 'unsupported configuration'.
> > I assume that having an official profile will ensure better
> > cooperation.  
> 
> IMHO we should create additional profiles only if there are valid
> technical reasons, but not because of social reasons.
> 
> Even more so as the profile in question is intended to be used by
> developers only.

Like the 'developer' profile?

But I guess there's no need for explicit profile when the changes can
be easily done via make.conf. At least for the moment. However,
the three remaining patches still stand.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
                   ` (4 preceding siblings ...)
  2016-07-11 16:33 ` [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Mike Gilbert
@ 2016-09-03 11:06 ` Michał Górny
  2016-09-05 11:47 ` Joshua Kinard
  6 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-09-03 11:06 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2465 bytes --]

On Sat,  9 Jul 2016 23:01:24 +0200
Michał Górny <mgorny@gentoo.org> wrote:

> 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

Committed those three now.

>   profiles: Add an amd64 no-lib-symlink profile

Abandoned this one.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 931 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
                   ` (5 preceding siblings ...)
  2016-09-03 11:06 ` Michał Górny
@ 2016-09-05 11:47 ` Joshua Kinard
  2016-09-05 12:19   ` Michał Górny
  6 siblings, 1 reply; 14+ messages in thread
From: Joshua Kinard @ 2016-09-05 11:47 UTC (permalink / raw
  To: gentoo-dev

On 07/09/2016 17:01, Michał Górny wrote:
> 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).

[snip]

Responding late to this.  This change won't, in the future, affect mips
multilib, will it?  Remember, we've got three ABIs to juggle, and this proposed
change looks like it might clobber one of those ABIs.

o32 - old 32-bit, goes into /lib or /usr/lib.
n32 - hybrid 32-bit/64-bit (like x32), goes into /lib32 or /usr/lib32.
n64 - full 64-bit, goes into /lib64 or /usr/lib64

This basically follows the layout that old IRIX used to use when you had
binaries/libs from all three ABIs mixed into the same root.

-- 
Joshua Kinard
Gentoo/MIPS
kumba@gentoo.org
6144R/F5C6C943 2015-04-27
177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943

"The past tempts us, the present confuses us, the future frightens us.  And our
lives slip away, moment by moment, lost in that vast, terrible in-between."

--Emperor Turhan, Centauri Republic


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers
  2016-09-05 11:47 ` Joshua Kinard
@ 2016-09-05 12:19   ` Michał Górny
  0 siblings, 0 replies; 14+ messages in thread
From: Michał Górny @ 2016-09-05 12:19 UTC (permalink / raw
  To: Joshua Kinard; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1500 bytes --]

On Mon, 5 Sep 2016 07:47:53 -0400
Joshua Kinard <kumba@gentoo.org> wrote:

> On 07/09/2016 17:01, Michał Górny wrote:
> > 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).  
> 
> [snip]
> 
> Responding late to this.  This change won't, in the future, affect mips
> multilib, will it?  Remember, we've got three ABIs to juggle, and this proposed
> change looks like it might clobber one of those ABIs.
> 
> o32 - old 32-bit, goes into /lib or /usr/lib.
> n32 - hybrid 32-bit/64-bit (like x32), goes into /lib32 or /usr/lib32.
> n64 - full 64-bit, goes into /lib64 or /usr/lib64
> 
> This basically follows the layout that old IRIX used to use when you had
> binaries/libs from all three ABIs mixed into the same root.

I don't think the patches I committed should cause any trouble for
mips. If at all, I think they are more likely to fix some imminent
trouble due to buggy transition logic.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 931 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-09-05 12:19 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-09 21:01 [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Michał Górny
2016-07-09 21:01 ` [gentoo-dev] [PATCH 1/4] sys-libs/glibc: Do not reset multilib vars unless cross-compilnig, #588368 Michał Górny
2016-07-09 21:01 ` [gentoo-dev] [PATCH 2/4] sys-apps/baselayout: Fix SYMLINK_LIB=no to create lib dir instead of sym Michał Górny
2016-07-09 21:01 ` [gentoo-dev] [PATCH 3/4] sys-apps/baselayout: Do not complain about lib+lib32 when it is valid Michał Górny
2016-07-09 21:01 ` [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile Michał Górny
2016-07-10 16:05   ` William Hubbs
2016-07-11 16:33 ` [gentoo-dev] [PATCH 0/4] New no-lib-symlink profile for developers Mike Gilbert
2016-07-11 17:46   ` Michał Górny
2016-07-11 19:39     ` Mike Gilbert
2016-07-12  5:29     ` Ulrich Mueller
2016-07-12 10:31       ` Michał Górny
2016-09-03 11:06 ` Michał Górny
2016-09-05 11:47 ` Joshua Kinard
2016-09-05 12:19   ` Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox