Re: [gentoo-dev] Re: RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Mike Frysinger
On Tuesday 20 October 2009 16:47:50 Jonathan Callen wrote:
> Mike Frysinger wrote:
> >> The problem was that Gentoo's early amd64 implementation predated this
> >> standardization, and we had chosen the other way.  While we've defaulted
> >> to lib64 for 64-bit libs for years, it has never been considered
> >> anything but experimental to break the lib --> lib64 link.  AFAIK stable
> >> baselayout still doesn't get its libdir usage consistent, putting files
> >> in one but actually calling them using the other path, and boot breaks
> >> in various frustrating ways if lib and lib64 are not the same directory.
> >> Openrc gets it better now, but I'm not sure it's all fixed either -- it
> >> certainly wasn't last time I tried breaking the link.
> >
> > your "AFAIK" isnt useful.  there are no open bugs about either version
> > and people assume that it's doing the right thing.
> 
> Personally, I do have a ~amd64 Gentoo chroot with LIBDIR_x86="lib".
> There is only one place that I've found that it is still broken, namely
> one line in toolchain.eclass (patch attached). I've been meaning to file
> a bug for quite a while now, but never got around to it.

off the top of my head, that doesnt really look like a correct fix.  please 
open a bug with info on what you're actually doing.

plus, your LIBDIR_x86 isnt really respected.  there are places where 
lib32/lib64 are hardcoded when modifying gcc/binutils (patch or sed).
-mike


signature.asc
Description: This is a digitally signed message part.


[gentoo-dev] Status of 10.0 profiles??

2009-10-20 Thread Jeremy Olexa

Hello,
Since the "10.0 release" there has not been an outward facing announcement
for users to switch profiles.

* Are we deprecating the 2008.0 profiles?
* Are 10.0 profiles "feature complete" ?
* Will there be an announcement?
* Why are only the 2008.0 hardened profiles deprecated? ( %% find
/usr/portage/profiles -name deprecated )

If users are suppose to switch to 10.0, then is anyone from the
t...@gentoo.org team planning on making the announcements? I would expect an
email to gentoo-user, gentoo-announce, gentoo-dev-announce, #gentoo topic,
and finally forums but that is just off the top of my head.

About 10.0: I know it happened, I know there is an irc channel. But, that
is about it. I think it would be nice if someone from the ten team could do
a postmortem of what worked and what didn't.

-Jeremy



[gentoo-dev] Re: RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Jonathan Callen
Mike Frysinger wrote:
> if you read FHS you'll see that both implementations are allowed.  Gentoo 
> isnt 
> violating anything here.  wrt LSB, who knows.  there are a ton of things we 
> dont follow with LSB.

Actually, at first, FHS says that any /lib would be allowed, but
it then goes into specifics in Chapter 6, Operating System Specific
Annex. Under the heading "/lib64 and /lib32 : 64/32-bit libraries
(architecture dependent)", it says, "The 64-bit architectures PPC64,
s390x, sparc64 and AMD64 must place 64-bit libraries in /lib64, and
32-bit (or 31-bit on s390) libraries in /lib."

>> The problem was that Gentoo's early amd64 implementation predated this
>> standardization, and we had chosen the other way.  While we've defaulted
>> to lib64 for 64-bit libs for years, it has never been considered anything
>> but experimental to break the lib --> lib64 link.  AFAIK stable
>> baselayout still doesn't get its libdir usage consistent, putting files
>> in one but actually calling them using the other path, and boot breaks in
>> various frustrating ways if lib and lib64 are not the same directory.
>> Openrc gets it better now, but I'm not sure it's all fixed either -- it
>> certainly wasn't last time I tried breaking the link.
> 
> your "AFAIK" isnt useful.  there are no open bugs about either version and 
> people assume that it's doing the right thing.

Personally, I do have a ~amd64 Gentoo chroot with LIBDIR_x86="lib".
There is only one place that I've found that it is still broken, namely
one line in toolchain.eclass (patch attached). I've been meaning to file
a bug for quite a while now, but never got around to it.

-- 
Jonathan
--- /usr/portage/eclass/toolchain.eclass
+++ toolchain.eclass
@@ -1956,8 +1956,7 @@ gcc_movelibs() {
${LIBPATH}/${OS_MULTIDIR} \
${LIBPATH}/../${MULTIDIR} \
${PREFIX}/lib/${OS_MULTIDIR} \
-   ${PREFIX}/${CTARGET}/lib/${OS_MULTIDIR} \
-   ${PREFIX}/lib/${MULTIDIR}
+   ${PREFIX}/${CTARGET}/lib/${OS_MULTIDIR}
do
removedirs="${removedirs} ${FROMDIR}"
FROMDIR=${D}${FROMDIR}


signature.asc
Description: OpenPGP digital signature


[gentoo-dev] KDE Team Meeting - October 2009

2009-10-20 Thread Alex Alexander
Greetings,

The KDE Team will have its usual monthly meeting this Thursday.

Date: Thursday,  2009/10/22
Time: 1900 UTC
Channel: #gentoo-meetings

Late announcement, I know, but I guess better late than never :)

Reply to this email with anything you'd like to have discussed at the meeting.

Everyone should be there so we can celebrate having KDE 4 stable!

Thanks,
-- 
Alex || wired
Gentoo Dev
www.linuxized.com



Re: [gentoo-dev] RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Mike Frysinger
On Tuesday 20 October 2009 09:06:29 Michael Haubenwallner wrote:
> As I'm building the toolchain myself too, I configure it with the
> 32bit host triplet on each platform, usually disabling multilib.

this doesnt make any sense to me

> This simply works for ppc-aix, hppa-hpux, ia64-hpux, sparc-solaris,
> x86-solaris, even if the underlying OS/kernel is 64bit.
> It isn't even necessary to explicitly use --{build,host} at all,
> as config.guess tells the 32bit triplet on these platforms.
> Additionally, even their default compiler output is 32bit.
> 
> But Linux "is not Unix":

you're right, so i'm not terribly concerned with compatibility with non-Linux 
systems.  comparing the native Gentoo/Linux multilib setup to another Linux 
multilib setup is the only useful comparison.

> Configuring both binutils and gcc needs to be done with:
>   $ CC="gcc -m32" /path/to/configure --{build,host}=i686-pc-linux-gnu ...
> This works on 64bit RHEL as well as on 64bit SLES (both have 32bit in /lib,
> 64bit in /lib64, no /lib32), but breaks on amd64+multilib Gentoo Linux.
> 
> Problem is that, as x86-linux isn't a multilib target, both ld and gcc
> search for 32bit libs&objects in /usr/lib:/lib, as they don't know about
> /usr/lib32:/lib32. The error when bootstrapping gcc is:
>   /usr/lib/crti.o: file not recognized: File format not recognized

i dont get it.  why does the i686-pc-linux-gnu toolchain target matter on an 
amd64 multilib system ?  the native x86_64-pc-linux-gnu toolchain should 
already do the right thing when given -m32.

> While it is possible to patch binutils[1] and gcc[2] to search in
> /usr/lib32:/lib32 even with this otherways non-multilib target,
> it doesn't feel like the "right thing" to enable multilib for
> just one multilib option.
> 
> Isn't the intention of multilib to have a new (64bit) system
> be compatible with the corresponding old (32bit) system?

your description of "compatible" is pretty vague.  ignoring /lib -> /lib64 
symlink (which shouldnt matter to any binaries), i'm not aware of any 
differences off the top of my head.
-mike


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay

2009-10-20 Thread Mike Frysinger
On Monday 19 October 2009 16:59:55 Thomas Sachau wrote:
> Mike Frysinger schrieb:
> > the majority of the time, the compiler driver (i.e. `gcc`) should be used
> > for linking.  very few packages should invoke the linker directly.  that
> > is why currently the toolchain-func.eclass has tc-getLD return `ld` -- a
> > few packages need it, but not most.  if we're going to be forcing the
> > setting of the LD env var all the time, then it needs to default to
> > ${CC}.  packages that need funky behavior should still work as they will
> > be calling $(tc-getLD) anyways.
> >
> >>>  - the -L paths to system dirs in LDFLAGS should not be there -- the
> >>> toolchain can handle these just fine
> >>
> >> Last time i tried without, some packages failed to compile, will test it
> >>  again to check, if its still needed
> >
> > if things are failing, then we should look at gcc/binutils to make sure
> > they use the right default search paths when given -m32/-m64
> 
> This is an example from configure failure with ABI=x86 for cvs-1.12.12-r6
> 
> last lines from configure:
> 
> checking for ssh... ssh
> checking for vim... /bin/nano
> checking for temporary directory... /tmp
> checking security/pam_appl.h usability... yes
> checking security/pam_appl.h presence... yes
> checking for security/pam_appl.h... yes
> checking for pam_start in -lpam... no
> configure: error: Could not find PAM libraries but the headers exist.
>   Give the --disable-pam option to compile without PAM support (or fix
>   your broken configuration)
> 
> !!! Please attach the following file when seeking support:
> !!! /var/tmp/portage/dev-util/cvs-1.12.12-r6/work/cvs-1.12.12/config.log
>  * ERROR: dev-util/cvs-1.12.12-r6 failed:
>  *   econf failed
> 
> relevant lines from config.log:
> 
> configure:38697: checking for pam_start in -lpam
> configure:38727: x86_64-pc-linux-gnu-gcc -o conftest -march=nocona -O2
>  -pipe -m32 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib -march=nocona
>  -O2 -pipe  -Wl,--as-needed conftest.c -lpam  -lnsl  -lz >&5
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2/../../../../lib32/libpam.a(pam_dynam
> ic.o): In function `_pam_dlerror':
> (.text+0x1f): undefined reference to `dlerror'
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2/../../../../lib32/libpam.a(pam_dynam
> ic.o): In function `_pam_dlclose':
> (.text+0x5f): undefined reference to `dlclose'
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2/../../../../lib32/libpam.a(pam_dynam
> ic.o): In function `_pam_dlsym':
> (.text+0xa6): undefined reference to `dlsym'
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2/../../../../lib32/libpam.a(pam_dynam
> ic.o): In function `_pam_dlopen':
> (.text+0xf2): undefined reference to `dlopen'
> collect2: ld returned 1 exit status
> configure:38733: $? = 1
> 
> If you need some more lines or complete build.log/config.log, feel free to
>  tell me and i will send them directly.

please open a bug about this for the toolchain guys.  i dont know when i'll 
get to researching this.
-mike


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] Re: RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Mike Frysinger
On Tuesday 20 October 2009 12:25:15 Duncan wrote:
> Thomas Sachau posted on Tue, 20 Oct 2009 17:29:25 +0200 as excerpted:
> > Michael Haubenwallner schrieb:
> >> Isn't the intention of multilib to have a new (64bit) system be
> >> compatible with the corresponding old (32bit) system?
> >>
> >> Please comment, thank you!
> >> /haubi/
> >
> > If you have a 64bit system, the default should be 64bit, both for libs
> > and for binaries. The additional multilib support allows to install and
> > use additional 32bit libs and binaries. Since they are not the system
> > dafault, they shouldnt be in some default place like lib, but instead a
> > different, but clearly labeled dir like lib32. So the Gentoo way looks
> > like the right way to me.
> 
> Except... it isn't, at least not if Gentoo is at all concerned about
> standards, especially when they'll make things far easier for it.
> 
> What you just described was the logic applied with, for example, ia64,
> which is true 64-bit (only) native.  However (as I understand it), the
> Linux FHS and LSB used somewhat different logic for x86_64.

if you read FHS you'll see that both implementations are allowed.  Gentoo isnt 
violating anything here.  wrt LSB, who knows.  there are a ton of things we 
dont follow with LSB.

> See, x86_64 is hardware native dual-bitness, so both 32-bit and 64-bit
> can be said to be true native hardware bitness (this is NOT the case with
> ia64).

you can word "true native hardware bitness" (i dont even know what that means) 
however you like.  fact is, first ia64 gen had hardware support for x86.  no 
software levels needed.  we decided to not support ia64 multilib because (1) 
the hardware sucked so bad and (2) no one actually wanted it and (3) none of 
the mainline packages were/are doing it and (4) newer ia64 gens dropped 
support for it.

> Apparently due to that and to the vast number of legacy 32-bit
> apps around, many binary-only apps doing obscure and unpredictable things
> that could well break if assumptions about lib proved invalid, they
> decided to keep the 32-bit lib location just as it was, believing it
> easier to create the new lib64 for 64-bit, then to worry about whatever
> obscure and exotic stuff various binary-only apps might be doing. Since
> this was just one more change to add to the list of changes already being
> made to port apps to amd64, it was considered easier than the other way,
> and thus became the standard.

the only binary encoded 32bit /lib/ path is the ldso which is why we symlinked 
that too

> The problem was that Gentoo's early amd64 implementation predated this
> standardization, and we had chosen the other way.  While we've defaulted
> to lib64 for 64-bit libs for years, it has never been considered anything
> but experimental to break the lib --> lib64 link.  AFAIK stable
> baselayout still doesn't get its libdir usage consistent, putting files
> in one but actually calling them using the other path, and boot breaks in
> various frustrating ways if lib and lib64 are not the same directory.
> Openrc gets it better now, but I'm not sure it's all fixed either -- it
> certainly wasn't last time I tried breaking the link.

your "AFAIK" isnt useful.  there are no open bugs about either version and 
people assume that it's doing the right thing.

> So before Gentoo can switch to the FHS/LSB 32-bit lib on amd64 multilib,
> it must first fix those last inconsistent usages, and make it possible to
> break the lib --> lib64 link.  Then in theory at least, after awhile with
> no bugs, or at least no big ones related to this issue, it might be
> considered safe to move 32-bit back to lib, where the LSB/FHS says it
> should be.

we've already switched to the FHS implementation
-mike


signature.asc
Description: This is a digitally signed message part.


[gentoo-dev] Re: RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Duncan
Thomas Sachau posted on Tue, 20 Oct 2009 17:29:25 +0200 as excerpted:

> Michael Haubenwallner schrieb:
>> Isn't the intention of multilib to have a new (64bit) system be
>> compatible with the corresponding old (32bit) system?
>> 
>> Please comment, thank you!
>> /haubi/
> 
> If you have a 64bit system, the default should be 64bit, both for libs
> and for binaries. The additional multilib support allows to install and
> use additional 32bit libs and binaries. Since they are not the system
> dafault, they shouldnt be in some default place like lib, but instead a
> different, but clearly labeled dir like lib32. So the Gentoo way looks
> like the right way to me.

Except... it isn't, at least not if Gentoo is at all concerned about 
standards, especially when they'll make things far easier for it.

What you just described was the logic applied with, for example, ia64, 
which is true 64-bit (only) native.  However (as I understand it), the 
Linux FHS and LSB used somewhat different logic for x86_64.

See, x86_64 is hardware native dual-bitness, so both 32-bit and 64-bit 
can be said to be true native hardware bitness (this is NOT the case with 
ia64).  Apparently due to that and to the vast number of legacy 32-bit 
apps around, many binary-only apps doing obscure and unpredictable things 
that could well break if assumptions about lib proved invalid, they 
decided to keep the 32-bit lib location just as it was, believing it 
easier to create the new lib64 for 64-bit, then to worry about whatever 
obscure and exotic stuff various binary-only apps might be doing. Since 
this was just one more change to add to the list of changes already being 
made to port apps to amd64, it was considered easier than the other way, 
and thus became the standard.

The problem was that Gentoo's early amd64 implementation predated this 
standardization, and we had chosen the other way.  While we've defaulted 
to lib64 for 64-bit libs for years, it has never been considered anything 
but experimental to break the lib --> lib64 link.  AFAIK stable 
baselayout still doesn't get its libdir usage consistent, putting files 
in one but actually calling them using the other path, and boot breaks in 
various frustrating ways if lib and lib64 are not the same directory.  
Openrc gets it better now, but I'm not sure it's all fixed either -- it 
certainly wasn't last time I tried breaking the link.

So before Gentoo can switch to the FHS/LSB 32-bit lib on amd64 multilib, 
it must first fix those last inconsistent usages, and make it possible to 
break the lib --> lib64 link.  Then in theory at least, after awhile with 
no bugs, or at least no big ones related to this issue, it might be 
considered safe to move 32-bit back to lib, where the LSB/FHS says it 
should be.

> And better support for this part is my current multilib-portage project,
> which allows compilation and installation of additional 32bit libs and
> binaries.

While I'm a no-multilib user here, I'm glad someone's finally getting 
that close enough to mainline merge to talk about it!  There's a lot of 
folks for whom it will make life far easier. =:^)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




Re: [gentoo-dev] RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Thomas Sachau
Michael Haubenwallner schrieb:
> Isn't the intention of multilib to have a new (64bit) system
> be compatible with the corresponding old (32bit) system?
> 
> Please comment, thank you!
> /haubi/

If you have a 64bit system, the default should be 64bit, both for libs and for 
binaries. The
additional multilib support allows to install and use additional 32bit libs and 
binaries. Since they
are not the system dafault, they shouldnt be in some default place like lib, 
but instead a
different, but clearly labeled dir like lib32. So the Gentoo way looks like the 
right way to me.

And better support for this part is my current multilib-portage project, which 
allows compilation
and installation of additional 32bit libs and binaries.

-- 
Thomas Sachau

Gentoo Linux Developer



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Re: RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Nikos Chantziaras

On 10/20/2009 04:06 PM, Michael Haubenwallner wrote:


Isn't the intention of multilib to have a new (64bit) system
be compatible with the corresponding old (32bit) system?


I'm not sure I understand the whole procedure you use to build this app. 
 Why not simply use -m32 when building it?  Why build a whole toolchain?


Anyway, as for the question of multilib's intention, yes, it's to have a 
64-bit and 32-bit userland at the same time.  But it doesn't work fully 
on Gentoo, which is why the effort for real multilib support has started 
in the first place.





[gentoo-dev] virtualx.eclass changes

2009-10-20 Thread Jonathan Callen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Recently, virtualx.eclass changed how it adds dependencies.  Previously,
it always added IUSE=X, and added "X? ( x11-base/xorg-server
x11-apps/xhost )" to both DEPEND and RDEPEND (the RDEPEND part appears
to have been unintentional).  This has been changed to instead be in the
control of the ebuild inheriting virtualx.

If you always need an X server to build, set VIRTUALX_REQUIRED=always
before inheriting virtualx, and the dependencies will be added to DEPEND
unconditionally.

If you only need an X server to run tests, just inherit virtualx. The
dependencies will be added with "test? ( )" around them, and "test" will
be added to IUSE.

If you need the X server under other conditions, set
VIRTUALX_REQUIRED=manual before inheriting virtualx, then use
${VIRTUALX_DEPEND} in DEPEND as needed.



This change has effectively removed the "X" USE flag from the following
packages where it should have been "test":

app-accessibility/gnome-mag
app-accessibility/gok
dev-libs/libunique
dev-python/gnome-python-desktop
dev-python/gnome-python-extras
dev-python/pygobject
dev-python/pygtk
gnome-base/eel
gnome-base/gnome-keyring
gnome-base/libbonoboui
gnome-base/libgnomecanvas
gnome-base/nautilus
gnome-extra/at-spi
gnome-extra/gnome-games
gnome-extra/gnome-power-manager
media-sound/rhythmbox
net-libs/webkit-gtk
sci-astronomy/wcslib
sci-mathematics/freemat
x11-libs/gtk+:2
x11-libs/guile-gtk
xfce-base/thunar

The following other packages also had changes for this:
app-crypt/heimdal:
the X server dep is now controlled by "test? ( X? ( ... ) )"
media-sound/rubyripper
the X server dep is now unconditional, and the package's X flag is
no longer in package.use.force.

- --
Jonathan
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkrduS8ACgkQOypDUo0oQOrdGACeOajNxjLLoqw8A6aRC7G4vcTt
++wAn0qjITRs+V5tN0YZXjKkfLYs/lco
=edMH
-END PGP SIGNATURE-



[gentoo-dev] RFC: multilib and the compatibility to singlelib

2009-10-20 Thread Michael Haubenwallner
Hi devs,

while there is the appreciated multiple ABI portage support going on,
a thought on the intentions of the multilib profiles.

Some background:
I do have to support building an older, but still maintained large
application software, that simply does not work when built as 64bit.
As it does not have the need itself for >32bit pointers, and all
the 64bit target platforms do support 32bit binaries too, the plan
to fix the code for 64bits has been cancelled.

I'm using gcc to build the application on all the target unices,
as well as autotools for build management.

As I'm building the toolchain myself too, I configure it with the
32bit host triplet on each platform, usually disabling multilib.

This simply works for ppc-aix, hppa-hpux, ia64-hpux, sparc-solaris,
x86-solaris, even if the underlying OS/kernel is 64bit.
It isn't even necessary to explicitly use --{build,host} at all,
as config.guess tells the 32bit triplet on these platforms.
Additionally, even their default compiler output is 32bit.

But Linux "is not Unix":
Configuring both binutils and gcc needs to be done with:
  $ CC="gcc -m32" /path/to/configure --{build,host}=i686-pc-linux-gnu ...
This works on 64bit RHEL as well as on 64bit SLES (both have 32bit in /lib,
64bit in /lib64, no /lib32), but breaks on amd64+multilib Gentoo Linux.

Problem is that, as x86-linux isn't a multilib target, both ld and gcc
search for 32bit libs&objects in /usr/lib:/lib, as they don't know about
/usr/lib32:/lib32. The error when bootstrapping gcc is:
  /usr/lib/crti.o: file not recognized: File format not recognized

While it is possible to patch binutils[1] and gcc[2] to search in
/usr/lib32:/lib32 even with this otherways non-multilib target,
it doesn't feel like the "right thing" to enable multilib for
just one multilib option.

Isn't the intention of multilib to have a new (64bit) system
be compatible with the corresponding old (32bit) system?

Please comment, thank you!
/haubi/

[1] http://overlays.gentoo.org/proj/alt/changeset/51324
[2] http://overlays.gentoo.org/proj/alt/changeset/51325