public inbox for gentoo-amd64@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-amd64] file type not allowed in /usr/lib
@ 2005-08-06 22:36 Will Briggs
  2005-08-07 10:18 ` Simon Stelling
  2005-08-07 13:18 ` [gentoo-amd64] " Duncan
  0 siblings, 2 replies; 15+ messages in thread
From: Will Briggs @ 2005-08-06 22:36 UTC (permalink / raw
  To: gentoo-amd64

G'day everyone,

This is a bit of a "help me" but also a question about how things work.

The _"help me"_ relates to a bug I filed almost a month ago 
(http://bugs.gentoo.org/show_bug.cgi?id=98622) that has yet to gain a 
reply of _any sort_ from anyone.  (I'd be happy with a "go away n00b" or 
even a "not our problem, bug here", but nothing).

The issue happens on an emerge of skencil (a dependency of inkscape with 
USE=plugins I believe):

Compiling
/var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Script/usersguide.py
...
install: `Examples' is a directory
gzip:
/var/tmp/portage/skencil-0.6.16/image/usr/share/doc/skencil-0.6.16//Examples: 
No
such file or directory
install: `Doc' is a directory
gzip: 
/var/tmp/portage/skencil-0.6.16/image/usr/share/doc/skencil-0.6.16//Doc:
No such file or directory
install: `Misc' is a directory
gzip: 
/var/tmp/portage/skencil-0.6.16/image/usr/share/doc/skencil-0.6.16//Misc:
No such file or directory
man:
prepallstrip:
strip: x86_64-pc-linux-gnu-strip --strip-unneeded
strip: x86_64-pc-linux-gnu-strip --strip-unneeded
    usr/lib/skencil-0.6.16/Lib/paxtkinter.so
    usr/lib/skencil-0.6.16/Lib/paxmodule.so
    usr/lib/skencil-0.6.16/Lib/streamfilter.so
    usr/lib/skencil-0.6.16/Lib/intl.so
    usr/lib/skencil-0.6.16/Sketch/Modules/skreadmodule.so
    usr/lib/skencil-0.6.16/Sketch/Modules/_sketchmodule.so
    usr/lib/skencil-0.6.16/Sketch/Modules/_type1module.so
    usr/lib/skencil-0.6.16/Sketch/Modules/pstokenize.so

!!! ERROR: media-gfx/skencil-0.6.16 failed.
!!! Function dyn_install, Line 1114, Exitcode 0
!!! File
/var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Lib/paxtkinter.so
matches a file type that is not allowed in /usr/lib
!!! If you need support, post the topmost build error, NOT this status 
message.

So if anyone can help with a fix, please let me know.

The _question_ relates to the fact that I've seen this sort of error a 
number of times, but by the time I come across it it's been bugged and 
fixed and the next emerge sync fixes it.  Can someone let me know what 
the issue is here - (mainly so I can get a handle on hacking my own 
fixes when bug reports go unanswered)  Why can't a .so file be placed in 
/usr/lib?

I'm assuming there's some AMD64 specificity to this bug.  Because a) it 
hasn't got the attention that x86 bugs get and b) its a /usr/lib issue 
and I'm assuming multilib might be at play somehow.

And besides, I've been subscribed to this list for a while :-)

Point me elsewhere if I'm on another track.

Thanks,

W.



-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64] file type not allowed in /usr/lib
  2005-08-06 22:36 [gentoo-amd64] file type not allowed in /usr/lib Will Briggs
@ 2005-08-07 10:18 ` Simon Stelling
  2005-08-08  2:23   ` Will Briggs
  2005-08-07 13:18 ` [gentoo-amd64] " Duncan
  1 sibling, 1 reply; 15+ messages in thread
From: Simon Stelling @ 2005-08-07 10:18 UTC (permalink / raw
  To: gentoo-amd64

Hi,

Will Briggs wrote:
> !!! ERROR: media-gfx/skencil-0.6.16 failed.
> !!! Function dyn_install, Line 1114, Exitcode 0
> !!! File
> /var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Lib/paxtkinter.so 
> matches a file type that is not allowed in /usr/lib
> !!! If you need support, post the topmost build error, NOT this status 
> message.

This means that there are 64bit shared objects going to /usr/lib instead 
of /usr/lib64, which is wrong, but currently not really a bug, since 
/usr/lib is a link to /usr/lib64.

> So if anyone can help with a fix, please let me know.

Just remove 'multilib-strict' from your FEATURES.

> The _question_ relates to the fact that I've seen this sort of error a 
> number of times, but by the time I come across it it's been bugged and 
> fixed and the next emerge sync fixes it.  Can someone let me know what 
> the issue is here - (mainly so I can get a handle on hacking my own 
> fixes when bug reports go unanswered)  Why can't a .so file be placed in 
> /usr/lib?

It can, but it shouldn't. We want 64bit .sos to go to (/usr)/lib64 and 
32bit to (/usr)/lib32, because *taking a deep breath*:

Generally, we want to provide a fully multilib-capable system. That 
means that you will be able to compile every application for 32bit or 
64bit, depending on your mood ;). 32bit applications require 32bit 
libraries, otherwise they can't be linked against each other, same 
(obviously) for 64bit apps/libs. Now imagine you want appfoo (32bit) and 
appbar (64bit), both depending on libfoobar. So you need libfoobar twice 
-- once 64bit and once 32bit.

Now, if libfoobar would get installed to /usr/lib instead /usr/lib32 and 
/usr/lib64, it'd obviously overwrite itself. Depending on what you 
install first, appfoo or appbar will break, as they both require 
installing libfoobar. Also, if you would emerge -C appfoo && emerge 
depclean, appbar wouldn't work anymore, because they both provide 
exactly the same files.

The simple solution to this is making two directories and making sure 
that no 64bit shared object goes anywhere else than to (/usr)/lib64, and 
vice versa.

Regards,

-- 
Simon Stelling
Gentoo/AMD64 Operational Co-Lead
blubb@gentoo.org
-- 
gentoo-amd64@gentoo.org mailing list



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

* [gentoo-amd64]  Re: file type not allowed in /usr/lib
  2005-08-06 22:36 [gentoo-amd64] file type not allowed in /usr/lib Will Briggs
  2005-08-07 10:18 ` Simon Stelling
@ 2005-08-07 13:18 ` Duncan
  2005-08-07 20:13   ` Simon Stelling
  2005-08-09  8:05   ` [gentoo-amd64] " Jeremy Huddleston
  1 sibling, 2 replies; 15+ messages in thread
From: Duncan @ 2005-08-07 13:18 UTC (permalink / raw
  To: gentoo-amd64

Will Briggs posted <42F53B6D.1080908@burnieanglican.org.au>, excerpted
below,  on Sun, 07 Aug 2005 08:36:29 +1000:

> !!! ERROR: media-gfx/skencil-0.6.16 failed. !!! Function dyn_install,
> Line 1114, Exitcode 0 !!! File
> /var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Lib/paxtkinter.so
> matches a file type that is not allowed in /usr/lib !!! If you need
> support, post the topmost build error, NOT this status message.
> 
> So if anyone can help with a fix, please let me know.
> 
> The _question_ relates to the fact that I've seen this sort of error a
> number of times, but by the time I come across it it's been bugged and
> fixed and the next emerge sync fixes it.  Can someone let me know what
> the issue is here - (mainly so I can get a handle on hacking my own
> fixes when bug reports go unanswered)  Why can't a .so file be placed in
> /usr/lib?
> 
> I'm assuming there's some AMD64 specificity to this bug.  Because a) it
> hasn't got the attention that x86 bugs get and b) its a /usr/lib issue
> and I'm assuming multilib might be at play somehow.

I'm repeating what Simon said, but sometimes it helps to get it said a
couple different ways, and between the two you get the understanding. =8^)
So, here goes...

The immediate user-level fix, as Simon says, is kill the
FEATURES=multilib-strict.  That FEATURE is designed for testing for a
specific situation that works the way things are now, but will cause
serious issues when we go full LSB multilib (Gentoo-amd64 is kindof a
hybrid situation at present).  Those that understand what's going on and
want to test for this issue can set that FEATURE and portage will die
whenever it hits and ebuild or upstream tarball that's making unwarranted
assumptions about the system library locations.  Those who don't want the
hassle should either NOT set FEATURES=multilib-strict, or set
FEATURES=-multilib-strict, and the problem will go away as far as they are
concerned, because it works right now, even if it isn't quite right.

Here's the background.  As Simon explained, in ordered to be able to have
32-bit and 64-bit copies of the same library, they need to be kept in
different directories.  Traditionally, of course, the location has always
been lib, /lib, /usr/lib, etc.  Now, if there are going to be two library
locations, separated by bitness, there are two ways to go. Other archs
previously have gone both ways, some one way, some the other. The old
normal lib location can remain 32-bit, making it easier for legacy 32-bit
programs some of which might be binary-only and therefore not easily
modified, to continue to find their libraries and the like, with 64-bit
libs then put in lib64, if the one way is chosen.  If the other way is
chosen, the old lib location remains the system "main" bitness location,
64-bit on a normal mainly 64-bit distribution, with 32-bit then being
located in lib32.  Therefore, one way, you have a 32-bit lib and also have
lib64, the other, you have a 64-bit lib and also have lib32. One makes it
easier for 32-bit legacy apps that might be difficult to change if they
are binary-only, the other makes it easier (or at least more "natural")
for the system's main 64-bit libraries, so both have their good and bad
points.

As it happens, Gentoo started its amd64 project before there was an agreed
amd64 standard, and originally chose a 64-bit lib, with lib32 as well. In
addition to the "native" lib logic explained above, this is the way ia64
(Intel's Itanium aka "Itanic") handled things, so it did seem totally
logical.

Then they make the standard (LSB/FHS, that's Linux Standard Base, and File
Hierarchy Standard) for amd64, and turn the Gentoo table on its head!

Most of the commercial distributions decide to go with a 32-bit lib and
adding lib64, aiding compatibility with binary-only 32-bit apps, reasoning
that 64-bit is new and will require certain other changes anyway, so it's
easier to just make the change to lib64 at the same time and leave the
legacy location well enough alone, avoiding trouble in 32-bit land.
Additionally, this can be seen as logical as contrasted with ia64, because
with ia64, 64-bit is the ONLY real native bitness, 32-bit being ALWAYS
emulated, and slower, so it only makes sense to make lib the "native"
64-bit libs, with 32-bit libs relegated to the secondary lib32 location.
amd64, OTOH, is actually FULL DUAL BITNESS IN HARDWARE, so whether 64-bit
or 32-bit is "more native" really depends entirely on the approach taken
by the individual OS/distribution platform, NOT the hardware.  Thus, the
legacy issues that amd64 has both the blessing and the curse of being able
to deal with, simply weren't there for ia64, so while lib can be argued
both ways for amd64, the choice was really rather clear for ia64.

So... Gentoo quickly found itself going one way, while pretty much all of
the rest of the Linux world had settled on going the other way, with the
LSB/FHS multilib standard for amd64.  Now, Gentoo is primarily open
source, and there's certainly no law saying we /have/ to do it like
everyone else does, so we /could/ have simply continued doing things the
way we had been doing them.  However, there are two very good reasons to
change, despite the temporary confusion and pain it brings, while we are
in-process.

First, there's the binary compatibility issue, both with legacy apps and
moving forward.  It's simply harder to get binaries from other sources to
work, when they are designed with one set of assumptions about locations,
but installed on a system with a rather different set of assumptions.  As
I said, there's the 32-bit legacy thing, but consider continuing effect
going forward, as well.  If we stayed the way we are, every binary-only
installation a Gentoo-amd64 user ever made, including the new amd64
binaries, when they become common, would be a fight. Despite the temporary
confusion during the switch, therefore, switching will clearly make things
easier for every Gentoo-amd64 user as time moves forward.

Second, there's the upstream compatibility issue.  It has been observed
that despite the freedom to modify that the FLOSS (free, libre, and open
source software) community not only allows but encourages, one of the
major forces keeping the Linux community from splitting into a bunch of
proprietary fiefdoms much as the proprietary UNIX community split, is the
unifying/streamlining effect of open source sharing efficiencies.  While
there are the ever-present forces of differentiation, "my distribution is
better than yours because we have these features you don't" that split the
proprietary Unix community, the balancing force, the reason the same thing
doesn't happen in the open source community, is the fact that for the
mostly duplicated common code, it's ALWAYS more efficient to keep in line
with the rest of the community, so the maintenance and further development
efforts can continue to be shared, so each distribution only carries PART
of the burden, rather than ALL of it, as they do for anything proprietary
or non-standard they offer.  Thus, while there are always differences in
the areas a distribution considers important and valuable enough to be
worth the extra cost to maintain and continue development, the differences
in OTHER "unimportant" areas tend to be rather small, because of the
economics forces favoring sharing the burden, which can only happen if the
differences in the area remain relatively small or non-existent.  It's a
constant balancing act that by natural selection, continuously weeds out
the differences a distribution doesn't consider important enough to
support on its own.

Thus, the upstream compatibility issue resolves to this:  the closer we
are to accepted LSB/FHS standard, the less work we will have to do making
changes so that open source packages which generally target the loose
standards, will work on Gentoo.  Now, consider the fact that there's very
little disagreement that amd64 *IS* the successor to x86.  What
maintenance issues we have now because we choose to do it our own way will
only CONTINUE to increase in the future, as amd64 becomes the default and
VERY widely assumed common platform, against which the changes necessary
for all other platforms are diffed.  There's simply NO good reason to
continue to make all that extra work for ourselves, requiring entirely
unnecessary changes to each new version of each new package, from now,
almost certainly a good decade into the future, very likely a quarter
century into the future, if amd64 has the same run that x86 did, and
assuming of course Gentoo's around that long as well.

Together, these two reasons means the only /possible/ sensible alternative
is to bite that bullet, and exchange some temporary misery now, while the
conversion is in progress, for a /far/ more standards compliant multilib
setup, going forward.

That, then, is the background, how we came to be in the situation we are
in now, and why we are having to change things "in mid stream", as it
were.  The logical next questions are where are we now, and what will it
take to get us where we want to be?

Currently, Gentoo-amd64 has just about finished moving 64-bit libs out of
lib.  We have both a lib32, and a lib64, with lib being a symlink to
lib64, for those remaining packages (such as skencil, apparently) that
have so far fallen thru the cracks, and continue to make the early
Gentoo-amd64 assumption that lib is the 64-bit shared object location.
With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
to finally weed out as many of the few remaining back packages as
possible.  With 2006.0, it's possible that lib -> lib64 symlink can
finally be broken, and any remaining packages then WILL get bugs filed,
when someone tries to use them and has issues.  With luck, by 2006.1, it
should be safe to start doing basically the same thing with the lib32 ->
lib move, as we will have just got thru doing with the lib -> lib64 move.
First, there will be a symlink between the two, in another release or two,
the main packages will be changed and it'll be time to activate the
multilib-strict test for anything still ending up in lib32 instead of lib.
By 2007.0, therefore, if luck holds, that multilib-strict test can be the
default, to catch all the stragglers possible, and 2007.1 should then
hopefully be able to remove lib32, relegating it to the annuls of
Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo continues
with the twice-yearly releases, thus, they mean second-half.)

However, that's really only half the issue.  The other half is portage,
which currently can't track 32-bit dependencies separate from its 64-bit
dependencies.  We had hoped that portage would have dual-bitness support
by 2005.1, but that's now looking impossible, since the new portage
remains only in CVS, there hasn't yet been even the usual hard masked for
testing alpha snapshot releases, let alone the -preX versions, which would
be the first ones that could even theoretically leave hard mask testing,
for ~arch testing.  Thus, it'll be 2006.0 at the earliest, before portage
will be able to handle dual-bitness tracking, keeping the 32-bit
dependencies separate from the 64-bit dependencies.  Until then,
Gentoo-amd64 32-bit support will remain spotty at best, requiring users
either install from tarball, or use a 32-bit chroot with its own portage
tracking 32-bit dependencies, for pretty much anything beyond the core
system libraries (sandbox, gcc, glibc, now from-source supported, other
32-bit core libraries managed as binary-only packages or from the chroot).

So... back to your error and multilib-strict.  So... suppose you've
decided to run multilib-strict and report the bugs you find.  Since
portage's method of notifying you of a multilib-strict violation is to
die, how do you finish the installation once you've gotten the notice,
filed the bug if necessary, and still want the package, before the bug is
fixed?

Well, as mentioned, the simplest, but /not/ necessarily shortest, method,
would be to simply...

FEATURES=-multilib-strict emerge --oneshot <whatever.trouble.pkg>

(Note that --oneshot.  Packages placing libraries incorrectly and
triggering this error will by definition mostly be libraries, that is,
dependencies, not applications you want listed in your world file.  Thus,
the --oneshot, to emerge it without adding it to your world file.)

HOWEVER, multilib-strict errors will normally be triggered ONLY during the
(fake-)install phase -- when the package is doing the fake-install to its
tempdir image directory.  It's at that point sandbox detects the attempt
to install a shared-object to lib, instead of lib64.  The catch is, by
that time, the major work of the emerge, all the compilation stuff, has
already been done.  The binaries should be perfectly fine, as they are the
ones that would normally be installed, if multilib-strict was off, and
would have been installed the way things worked before that feature was
ever added to portage.  However, emerge just died, so it could report the
problem.  Shouldn't there be a way to tell portage to go ahead and finish
the merge using the existing work, now that we know about the bug and have
presumably reported it if necessary, rather than starting ALL over again
with the package emerge, as the above command will do?

As it turns out, there /is/ such a way.  "ebuild" is the command used to
step thru an emerge of a single package.  You can call it specifically, to
merge a single package, or to step thru one step at a time (normally
fetch, unpack, compile, install, qmerge), and in fact, emerge itself calls
ebuild to handle each individual package, one at a time.  I'm not going to
go into detail on ebuild here, because it's all covered quite well in the
Gentoo Handbook and in the ebuild (1) (5) manpages.  However, that's the
command you use.  HOWEVER, you DO have to tweak one little thing, first,
to tell portage not to worry about that multilib-strict that you've
already dealt with.

Emerge dies with the multilib-strict error, as mentioned, during the
install step.  As mentioned, the compile is already done, the binaries
sitting in the tempdir work tree, ready to be moved over to the image dir,
during the install phase.  Portage will also, by that point, have created
a number of additional files in the package's working tempdir, one of
which contains the FEATURES line, which we have to modify, removing the
"multilib-strict" portion, so ebuild won't trigger once again on it, once
it gets to that point.  The file is
$PORTAGE_TMPDIR/portage/<packagename-version>/temp/environment .  Open
that in your favorite text editor and edit the FEATURES line, removing the
multilib-strict.  Save the file.  NOW you can issue your ebuild <pkg>
merge command, and it should quickly figure out the compile step is done,
and jump back into the install step, completing it and then finishing the
merge.

Whether it's worth the hassle of loading that file in your editor,
removing the multilib-strict, saving, and running ebuild to finish the
merge, against simply issuing the emerge command listed above, but going
thru the whole thing including the compile step again, will probably
depend on how big the package is.  For something taking less than five
minutes to emerge from start to finish, it's not worth the hassle, but it
might be, if that compile step takes say an hour...

-- 
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 in
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html


-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: file type not allowed in /usr/lib
  2005-08-07 13:18 ` [gentoo-amd64] " Duncan
@ 2005-08-07 20:13   ` Simon Stelling
  2005-08-08  9:17     ` Simon Stelling
  2005-08-08 15:40     ` [gentoo-amd64] " Duncan
  2005-08-09  8:05   ` [gentoo-amd64] " Jeremy Huddleston
  1 sibling, 2 replies; 15+ messages in thread
From: Simon Stelling @ 2005-08-07 20:13 UTC (permalink / raw
  To: gentoo-amd64

Hi,

Duncan wrote:
> I'm repeating what Simon said, but sometimes it helps to get it said a
[snip]
> The immediate user-level fix, as Simon says, is kill the
[snip]
> Here's the background.  As Simon explained, in ordered to be able to have

Just a personal note on this: What's the point in repeating everything? 
You only bore people with it. I think we can assume that the original 
poster either gets it the first time, or he'll surely ask again and give 
details about what he didn't understand.

> First, there's the binary compatibility issue, both with legacy apps and
> moving forward.  It's simply harder to get binaries from other sources to
> work, when they are designed with one set of assumptions about locations,
> but installed on a system with a rather different set of assumptions.  As
> I said, there's the 32-bit legacy thing, but consider continuing effect
> going forward, as well.  If we stayed the way we are, every binary-only
> installation a Gentoo-amd64 user ever made, including the new amd64
> binaries, when they become common, would be a fight. Despite the temporary

Why? When the binary gets linked, ldd just looks into various places and 
decides which library to take depending on the bitness. There's no 
fight, there's /etc/ld.so.conf. Sorry, but that paragraph is fubar.

> mostly duplicated common code, it's ALWAYS more efficient to keep in line
> with the rest of the community, so the maintenance and further development

I disagree: There are bad standards, which should be replaced by better 
ones. You can't do that by keeping in line with the rest.

> Thus, the upstream compatibility issue resolves to this:  the closer we
> are to accepted LSB/FHS standard, the less work we will have to do making
> changes so that open source packages which generally target the loose

Wrong. Correct would be: the closer we are to UPSTREAM, the less work we 
will have to do. A nice example: QT

> Together, these two reasons means the only /possible/ sensible alternative
> is to bite that bullet, and exchange some temporary misery now, while the
> conversion is in progress, for a /far/ more standards compliant multilib
> setup, going forward.

What misery?

> Currently, Gentoo-amd64 has just about finished moving 64-bit libs out of
> lib.  We have both a lib32, and a lib64, with lib being a symlink to
> lib64, for those remaining packages (such as skencil, apparently) that
> have so far fallen thru the cracks, and continue to make the early
> Gentoo-amd64 assumption that lib is the 64-bit shared object location.
> With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
> to finally weed out as many of the few remaining back packages as
> possible.  With 2006.0, it's possible that lib -> lib64 symlink can
> finally be broken, and any remaining packages then WILL get bugs filed,
> when someone tries to use them and has issues.  With luck, by 2006.1, it
> should be safe to start doing basically the same thing with the lib32 ->
> lib move, as we will have just got thru doing with the lib -> lib64 move.
> First, there will be a symlink between the two, in another release or two,
> the main packages will be changed and it'll be time to activate the
> multilib-strict test for anything still ending up in lib32 instead of lib.
> By 2007.0, therefore, if luck holds, that multilib-strict test can be the
> default, to catch all the stragglers possible, and 2007.1 should then
> hopefully be able to remove lib32, relegating it to the annuls of
> Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo continues
> with the twice-yearly releases, thus, they mean second-half.)

Where do you get this information from? We (read: we, the Gentoo/AMD64 
developer team) never published such a roadmap, nor do we have one 
ourselves. Please, don't cook up a story just to enlarge your 
pen^W^W^Wmails.

> However, that's really only half the issue.  The other half is portage,
> which currently can't track 32-bit dependencies separate from its 64-bit
> dependencies.  We had hoped that portage would have dual-bitness support
> by 2005.1, but that's now looking impossible, since the new portage
> remains only in CVS, there hasn't yet been even the usual hard masked for
> testing alpha snapshot releases, let alone the -preX versions, which would
> be the first ones that could even theoretically leave hard mask testing,
> for ~arch testing.  Thus, it'll be 2006.0 at the earliest, before portage
> will be able to handle dual-bitness tracking, keeping the 32-bit
> dependencies separate from the 64-bit dependencies.  Until then,
> Gentoo-amd64 32-bit support will remain spotty at best, requiring users
> either install from tarball, or use a 32-bit chroot with its own portage
> tracking 32-bit dependencies, for pretty much anything beyond the core
> system libraries (sandbox, gcc, glibc, now from-source supported, other
> 32-bit core libraries managed as binary-only packages or from the chroot).

You can take comfort with the fact that even if portage already had this 
functionality, there wouldn't be real multilib now.

Regards,

-- 
Simon Stelling
Gentoo/AMD64 Operational Co-Lead
blubb@gentoo.org
-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64] file type not allowed in /usr/lib
  2005-08-07 10:18 ` Simon Stelling
@ 2005-08-08  2:23   ` Will Briggs
  0 siblings, 0 replies; 15+ messages in thread
From: Will Briggs @ 2005-08-08  2:23 UTC (permalink / raw
  To: gentoo-amd64



Simon Stelling wrote:
> Hi,
> 
> Will Briggs wrote:
> 
>> !!! ERROR: media-gfx/skencil-0.6.16 failed.
>> !!! Function dyn_install, Line 1114, Exitcode 0
>> !!! File
>> /var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Lib/paxtkinter.so 
>> matches a file type that is not allowed in /usr/lib
>> !!! If you need support, post the topmost build error, NOT this status 
>> message.
> 
> 
> This means that there are 64bit shared objects going to /usr/lib instead 
> of /usr/lib64, which is wrong, but currently not really a bug, since 
> /usr/lib is a link to /usr/lib64.
> 
>> So if anyone can help with a fix, please let me know.
> 
> 
> Just remove 'multilib-strict' from your FEATURES.
> 

Excellent.  I learn some more detail just from that.  Thanks.

I've got my head pretty much around what multilib _should_ do 
eventually.  (Duncan's verbosity in the past has helped with that :-) 
especially in the many threads on the 2005.0 changeover).

I'm always keen on knowing the detail of where things are up to though - 
both wrt 2005.1 and dual-bitness of portage.  If Duncan's roadmap (in 
his post) is an invention does that mean that there isn't one?

I'm hanging out for portage becoming dual-bitness aware.  In the 'other 
issue' - the quest to make all ebuilds multilib-friendly - is there a 
standardised process for the amd64 mob to lodge 
"needs-to-be-multilibbed" bug reports?

W.
-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: file type not allowed in /usr/lib
  2005-08-07 20:13   ` Simon Stelling
@ 2005-08-08  9:17     ` Simon Stelling
  2005-08-08 15:40     ` [gentoo-amd64] " Duncan
  1 sibling, 0 replies; 15+ messages in thread
From: Simon Stelling @ 2005-08-08  9:17 UTC (permalink / raw
  To: gentoo-amd64

I wrote:
>> Currently, Gentoo-amd64 has just about finished moving 64-bit libs out of
>> lib.  We have both a lib32, and a lib64, with lib being a symlink to
>> lib64, for those remaining packages (such as skencil, apparently) that
>> have so far fallen thru the cracks, and continue to make the early
>> Gentoo-amd64 assumption that lib is the 64-bit shared object location.
>> With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
>> to finally weed out as many of the few remaining back packages as
>> possible.  With 2006.0, it's possible that lib -> lib64 symlink can
>> finally be broken, and any remaining packages then WILL get bugs filed,
>> when someone tries to use them and has issues.  With luck, by 2006.1, it
>> should be safe to start doing basically the same thing with the lib32 ->
>> lib move, as we will have just got thru doing with the lib -> lib64 move.
>> First, there will be a symlink between the two, in another release or 
>> two,
>> the main packages will be changed and it'll be time to activate the
>> multilib-strict test for anything still ending up in lib32 instead of 
>> lib.
>> By 2007.0, therefore, if luck holds, that multilib-strict test can be the
>> default, to catch all the stragglers possible, and 2007.1 should then
>> hopefully be able to remove lib32, relegating it to the annuls of
>> Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo continues
>> with the twice-yearly releases, thus, they mean second-half.)
> 
> 
> Where do you get this information from? We (read: we, the Gentoo/AMD64 
> developer team) never published such a roadmap, nor do we have one 
> ourselves. Please, don't cook up a story just to enlarge your 
> pen^W^W^Wmails.

First of all, it should be one ^W ;)
Second, the default FEATURES in 2005.1 will be the same as in 2005.0:

$ diff -u 2005.0/make.defaults 2005.1/make.defaults
--- 2005.0/make.defaults        2005-07-01 23:14:23.000000000 +0200
+++ 2005.1/make.defaults        2005-06-04 23:20:09.000000000 +0200
@@ -1,6 +1,6 @@
  # Copyright 1999-2005 Gentoo Foundation
  # Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/profiles/default-linux/amd64/2005.0/make.defaults,v 
1.15 2005/07/01 21:14:23 blubb Exp $
+# $Header: 
/var/cvsroot/gentoo-x86/profiles/default-linux/amd64/2005.1/make.defaults,v 
1.1 2005/06/04 21:20:09 eradicator Exp $

  #removed because managers vote requires us to do so
  #("when we go nptl, we all go nptl")

Regards,

-- 
Simon Stelling
Gentoo/AMD64 Operational Co-Lead
blubb@gentoo.org
-- 
gentoo-amd64@gentoo.org mailing list



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

* [gentoo-amd64]  Re: Re: file type not allowed in /usr/lib
  2005-08-07 20:13   ` Simon Stelling
  2005-08-08  9:17     ` Simon Stelling
@ 2005-08-08 15:40     ` Duncan
  2005-08-08 19:20       ` Simon Stelling
  1 sibling, 1 reply; 15+ messages in thread
From: Duncan @ 2005-08-08 15:40 UTC (permalink / raw
  To: gentoo-amd64

Simon Stelling posted <42F66B78.1030708@gentoo.org>, excerpted below,  on
Sun, 07 Aug 2005 22:13:44 +0200:

> Hi,
> 
> Duncan wrote:
>> I'm repeating what Simon said, but sometimes it helps to get it said a
> [snip]
> 
> Just a personal note on this: What's the point in repeating everything?
> You only bore people with it. I think we can assume that the original
> poster either gets it the first time, or he'll surely ask again and give
> details about what he didn't understand.

OK, first, the tone here and below seems to indicate I offended you in
some way.  Let me unconditionally state at the outset, that such was in no
way the intent.   It appears you took my post as somehow implying yours
was incomplete or inadequate in some way.  Again, that couldn't have been
farther from my intentions!  I intended to credit you where appropriate,
acknowledging the overlap in ideas, but would have posted whether you had
or not, because I had some of my own ideas to express, in my own reply, as
is customary on public lists and newsgroups.  I evidently came across in a
way I never intended at all, and for that I unconditionally apologize.

The following, therefore, is simply replying to your question, explaining
(again, I /did/ mention it in the original post) why I did repeat some of
what you had already covered.

Not just repeating, but saying it in different words.  As I explained and
as educators well know, reading something said in two different ways
at minimum reinforces the concept, and will in many cases allow someone to
grasp a concept put in different terms, where they couldn't get it as it
was stated the first time.  I'm sure some find your version easier to
understand, and as a dev, it's closer to the horse's mouth in terms of
official policy, certainly.  However, I /know/ from being directly told so
any number of times, that for whatever reason, many find my explanations
of a concept easier to understand than all the explanations they may have
read before.

Anyway, if I'm boring people, there are always the filters, if they
ultimately find my opinion so objectionable that simply skipping over it
isn't enough.  I know others find my posts useful, because they've said as
much.

>> First, there's the binary compatibility issue, both with legacy apps and
>> moving forward.  It's simply harder to get binaries from other sources
>> to work, when they are designed with one set of assumptions about
>> locations, but installed on a system with a rather different set of
>> assumptions.  As I said, there's the 32-bit legacy thing, but consider
>> continuing effect going forward, as well.  If we stayed the way we are,
>> every binary-only installation a Gentoo-amd64 user ever made, including
>> the new amd64 binaries, when they become common, would be a fight.
>> Despite the temporary
> 
> Why? When the binary gets linked, ldd just looks into various places and
> decides which library to take depending on the bitness. There's no fight,
> there's /etc/ld.so.conf. Sorry, but that paragraph is fubar.

Not necessarily.  You are correct about dynamic linking, but what about
binary only installers?  These may be hard coded to a specific
path, certainly by default, tho it's usually possible to change it if
necessary.  Even if it's changeable on the command line, or from a script,
or even if it's open source, making and maintaining that change thru
multiple versions over time is certainly more difficult than never having
to make it in the first place, because our default happens to be the
standard default.  If it's prepackaged as an ebuild, that's work the
Gentoo developers have to do (or not, if the defaults coincide).  If it's
something a Gentoo user is installing on their own, not from an ebuild,
then having to fiddle with installer configs to get it to go to the right
place is "a fight" that /could/ be avoided, if we were using the defaults
in the first place.

>> mostly duplicated common code, it's ALWAYS more efficient to keep in
>> line with the rest of the community, so the maintenance and further
>> development
> 
> I disagree: There are bad standards, which should be replaced by better
> ones. You can't do that by keeping in line with the rest.

That doesn't alter the truth of the point I made.  It's ALWAYS more
efficient (that is, less work) to keep in line with the rest of the
community.  That does NOT always mean it's BETTER, only that it's MORE
EFFICIENT.  The point I made was that this factor serves as a unifier
within the community, always ensuring that distributions diverge only on
the points they consider IMPORTANT, where the extra work is therefore
worth it, as opposed to any old thing not considered so important, in
which case it makes the most sense to go with the community standard,
since that's less work, and the extra work necessary to deviate isn't
considered worth it, since it's "not important".

By definition, if it's a "bad" standard, it's important enough to make a
difference, to be /worth/ the extra work involved in diverging from that
standard.  Thus, I agree with you, in that there ARE valid reasons to
disagree with a standard, to go your (our) own way.  I'm only saying that
doing so unavoidably incurs an additional cost in terms of resources
required to maintain that change.  It doesn't pay to be different just to
be different.  Because there's an unavoidable cost involved with being
different, do it where it's worth the trouble, don't do it where it's not.

Thus, there are dual but opposing forces, normally keeping each other in
balance, the force leading to differentiation from the competition, on the
one hand, with the avoidable cost of that differentiation on the other,
ensuring that it's /only/ done where the benefits are judged to be worth
more than the costs.  This is one of the strengths of open source, and
the most common reason pointed to when someone asks what's keeping us
together, as contrasted with the fragmentation of proprietary Unix. 
Because they were proprietary, each implementation had to bear far more of
its own weight -- they couldn't (chose not to) share implementation and
support details, so the forces of divergence were NOT balanced by the
forces of commonality of implementation and support as expressed in the
open source community.  The proprietary Unix community was therefore
unstable, due to the fragmentation force not being balance by the unifying
force we have in open source, making us more stable, hopefully and so far,
stable enough to avoid their fate.

>> Thus, the upstream compatibility issue resolves to this:  the closer we
>> are to accepted LSB/FHS standard, the less work we will have to do
>> making changes so that open source packages which generally target the
>> loose
> 
> Wrong. Correct would be: the closer we are to UPSTREAM, the less work we
> will have to do. A nice example: QT

Point taken.  The (possibly wrong) assumption on my part being that as
time moves forward and amd64 becomes the common platform that x86 is
today, UPSTREAM (in the plural) will tend to converge on the LSB/FHS in
reference to its spec for multilib on amd64.

As a matter of fact, this does interest me (as should be pretty obvious
by now <g>). Do you have any evidence of an opposing trend, AWAY from the
LSB/FHS standard, or toward no accepted common standard, in this instance?
To date, everything I've read seems to indicate the trend, possibly slow,
but there none-the-less, is /toward/ the LSB/FHS multilib standard, at
least in the case of amd64.  If there's evidence to the contrary, please
do point me to it!  I'd much rather find out and have to admit I'm wrong
now, and have the truth as my guide in the future, than otherwise.  I
simply haven't yet seen anything that would invalidate my previous
assumption, and certainly what the pro-LSB press would have one believe.

>> Together, these two reasons means the only /possible/ sensible
>> alternative is to bite that bullet, and exchange some temporary misery
>> now, while the conversion is in progress, for a /far/ more standards
>> compliant multilib setup, going forward.
> 
> What misery?

That of those who found the 2004.3 -> 2005.0 upgrade rather more painful
than they would have liked?  That of those that ended up formatting and
reinstalling Gentoo, not entirely a pain free process, because they were
stuck with a half-upgraded system that would no longer work right on
/either/ the 2004.3 /or/ the 2005.0 profile?  That of those that chose to
avoid the issue for the time being and are staying on 2004.3, due to the
horror stories as posted here and in the forums, from those faced with the
situation above?

Presumably, the situation will continue to be less stable for
Gentoo-amd64 users than many of them would prefer, until Gentoo has
finished switching, until portage has dual bitness tracking, and the
lib/lib32/lib64 thing is all straightened out.

>> Currently, Gentoo-amd64 has just about finished moving 64-bit libs out
>> of lib.  We have both a lib32, and a lib64, with lib being a symlink to
>> lib64, for those remaining packages (such as skencil, apparently) that
>> have so far fallen thru the cracks, and continue to make the early
>> Gentoo-amd64 assumption that lib is the 64-bit shared object location.
>> With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
>> to finally weed out as many of the few remaining back packages as
>> possible.  With 2006.0, it's possible that lib -> lib64 symlink can
>> finally be broken, and any remaining packages then WILL get bugs filed,
>> when someone tries to use them and has issues.  With luck, by 2006.1, it
>> should be safe to start doing basically the same thing with the lib32 ->
>> lib move, as we will have just got thru doing with the lib -> lib64
>> move. First, there will be a symlink between the two, in another release
>> or two, the main packages will be changed and it'll be time to activate
>> the multilib-strict test for anything still ending up in lib32 instead
>> of lib. By 2007.0, therefore, if luck holds, that multilib-strict test
>> can be the default, to catch all the stragglers possible, and 2007.1
>> should then hopefully be able to remove lib32, relegating it to the
>> annuls of Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo
>> continues with the twice-yearly releases, thus, they mean second-half.)
> 
> Where do you get this information from? We (read: we, the Gentoo/AMD64
> developer team) never published such a roadmap, nor do we have one
> ourselves. Please, don't cook up a story just to enlarge your
> pen^W^W^Wmails.

OK, it's quite apparent you have a personal problem with my style, and
possibly with the fact that I paralleled your post, tho I really don't
know why that should be a problem at all.  Perhaps that part should be
taken to private mail, if you wish to continue the discussion.

To answer your question, however, do you see the "I'm expecting" in what
you quoted?  What about the "it's possible that"?  It should be fairly
clear from those and the rest of the context that this part was simply my
speculations, based both on what I know to have happened in the past, and
on the various blogs, meeting logs, and dev and amd64 list comments by
devs, then filling in the gaps and projecting the trend forward.

The key is, it's my speculation, and the phrasing I chose /should/ have
made that quite apparent.

I'm resisting the urge to make stronger snide comments, returning yours in
kind, because I don't see how doing so would be conducive to a more
informed list.  I'll accept your disagreement.  That's fine.  If there's a
different plan and my incorrect post ends up bringing it out, GREAT!  I
and other list participants will be the better informed, and therefore,
better prepared to do our jobs as system admins, aka Gentoo users, because
we know better what to expect ahead.  I don't believe it's necessary,
however, to take things personally, or to make personally cutting comments
like the above, and honestly try to refrain from doing so, myself, tho I
certainly can't and don't claim perfection in that or any other area.

Back to the question...  Can we agree that it's a fact that we (meaning
the devs moving it, and the rest of us continuing our life as Gentoo-amd64
users amidst the mess of "construction", as it were) are most of the way
done with the task of ensuring that 64-bit libs go to lib64, not lib?

I know the reasons given for going to all the trouble, based on previous
dev comments.  Are you saying that has changed?  If so, than certainly,
what I clearly marked as my expectations, are going to be incorrect, as
they obviously are if I got something wrong along the way.  The fact
remains, however, I was writing what "I expect", what I consider
"possible", or even likely, and labeled it as exactly that.  I certainly
did **NOT** label it as any sort of official road map, quite the contrary!

Assuming that we agree on the current status, and that nothing has changed
from previous plans (and of course that I understood said plans
correctly), what's the next reasonable step in the process? Before we
break that lib -> lib64 link, isn't it reasonable to go stable with the
multilib-strict warning, to flush anything out that was missed by those
deliberately testing?  I know I'd rather file a bug about a warning and
failed emerge as a result, with my previous version continuing to function
normally, than I would file a bug because the link was broken and I now
have currently merged programs that no longer work!

The rest of the steps follow, one at a time.  Unless I'm seriously
mistaken, or unless things have changed, we'll follow the general outline,
tho the timing could easily be off, and the individual steps may be
somewhat different.  In any case, even if I AM seriously mistaken, it was
labeled "my expectation", not "official Gentoo roadmap", and who am I,
that someone should trust my predictions over that of Joe Blow?  It's not
as if I'm posting with an @gentoo.org email address or something.  Just
like the speculations of any other Joe Blow, if they find my speculations
reasonable and useful, great, if not, they can take someone else's.  My
opinion was freely given, and I really couldn't force someone to respect
it even if I /wanted/ to, which I don't.  If they want to value it at what
they paid for it, no skin off my nose!  It's their life and their opinion,
which they are certainly as free to have as I am to have mine! <g>

>> However, that's really only half the issue.  The other half is portage,
>> which currently can't track 32-bit dependencies separate from its 64-bit
>> dependencies.
> 
> You can take comfort with the fact that even if portage already had this
> functionality, there wouldn't be real multilib now.

Somewhat of an enigmatic comment.  There are a number of ways it could be
taken.

If "now" is taken to mean "as opposed to previous plans", it /could/ mean
that Gentoo in general, and Gentoo-amd64 in particular, has put on hold
further advances toward multilib, and may in fact reverse course.  Luckily
for me, the only 32-bit stuff I run is the stuff in the 2005.0 normal
profile (along with LILO), since I believe in FLOSS strongly enough to be
uninterested in closed source, even 32-bit only proprietary codecs and
plugins, and open source means 64-bit portable and for my purposes, that
means pretty much already ported.  Thus, personally, 32-bit and therefore
multilib, is more a hassle than anything, meaning double the time
compiling glibc, for instance.  However, I certainly empathize with those
who have 32-bit stuff they still want/need to run.  (If this is the way
"now" is to be read, the tone of the comment could also imply a bit of
bitterness, that this decision was made, as well.  That's not a given, as
it could imply satisfaction at the result, instead, or simply nothing. 
Again, enigmantic...)

OTOH, "now" could mean "currently", in which case, I'd generally agree. 
Gentoo-amd64 is not in the position, currently, to do "real" multilib,
even if portage supported multi-track dependency resolution.  Then of
course, there's the whole question of what defines "real" multilib...

Or it could mean something else.  In any case, I'd welcome any
enlightenment you might be able to provide, on the subject, or for that
matter, on anything else list related.  

-- 
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 in
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html


-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: Re: file type not allowed in /usr/lib
  2005-08-08 15:40     ` [gentoo-amd64] " Duncan
@ 2005-08-08 19:20       ` Simon Stelling
  2005-08-08 23:04         ` Matt Randolph
  2005-08-09 18:48         ` Duncan
  0 siblings, 2 replies; 15+ messages in thread
From: Simon Stelling @ 2005-08-08 19:20 UTC (permalink / raw
  To: gentoo-amd64

Hi,

Duncan wrote:
>>Just a personal note on this: What's the point in repeating everything?
>>You only bore people with it. I think we can assume that the original
>>poster either gets it the first time, or he'll surely ask again and give
>>details about what he didn't understand.
> 
> 
> OK, first, the tone here and below seems to indicate I offended you in
> some way.  Let me unconditionally state at the outset, that such was in no
> way the intent.   It appears you took my post as somehow implying yours
> was incomplete or inadequate in some way.  Again, that couldn't have been
> farther from my intentions!  I intended to credit you where appropriate,
> acknowledging the overlap in ideas, but would have posted whether you had
> or not, because I had some of my own ideas to express, in my own reply, as
> is customary on public lists and newsgroups.  I evidently came across in a
> way I never intended at all, and for that I unconditionally apologize.

First, I didn't really want to offend you, although I have to admit that 
a few statements were rather harsh. I didn't feel offended, and I know 
you didn't want to say my answer was incompetent. However, if I *were* 
the questioner, I'd feel offended, since I don't need everything 
explained twice, and if I don't get it, I ask further questions. 
Generally explaining it a second time somehow implies that I didn't get 
it the first time, but perhaps that's just me.

> Not necessarily.  You are correct about dynamic linking, but what about
> binary only installers?  These may be hard coded to a specific
> path, certainly by default, tho it's usually possible to change it if
> necessary.  Even if it's changeable on the command line, or from a script,
> or even if it's open source, making and maintaining that change thru
> multiple versions over time is certainly more difficult than never having
> to make it in the first place, because our default happens to be the
> standard default.  If it's prepackaged as an ebuild, that's work the
> Gentoo developers have to do (or not, if the defaults coincide).  If it's
> something a Gentoo user is installing on their own, not from an ebuild,
> then having to fiddle with installer configs to get it to go to the right
> place is "a fight" that /could/ be avoided, if we were using the defaults
> in the first place.

Judging from my experience, the opposite is the case: Most of the 
hardcoded programs just install to /usr/lib without bothering about 
their bitness, so it'd be better to set lib = 64bit as a 
longterm-solution, assuming that amd64 will (at least partly) replace 
x86. Also, most of the "hardcoded programs" aren't closed source but 
open source apps. Also, once these hardcoded paths are made suitable, 
it's quite easy to do the same with the next version: Just bump the ebuild.
There are *very* few configure scripts which try to find out the correct 
place for libraries theirselves, and in most of these very few cases, 
they're broken anyway, as the just grep uname -a for Athlon64 or 
Opteron, which then would break 32bit.

>>>mostly duplicated common code, it's ALWAYS more efficient to keep in
>>>line with the rest of the community, so the maintenance and further
>>>development
>>
>>I disagree: There are bad standards, which should be replaced by better
>>ones. You can't do that by keeping in line with the rest.
> 
> 
> That doesn't alter the truth of the point I made.  It's ALWAYS more
> efficient (that is, less work) to keep in line with the rest of the
> community.  That does NOT always mean it's BETTER, only that it's MORE
> EFFICIENT.  The point I made was that this factor serves as a unifier
> within the community, always ensuring that distributions diverge only on
> the points they consider IMPORTANT, where the extra work is therefore
> worth it, as opposed to any old thing not considered so important, in
> which case it makes the most sense to go with the community standard,
> since that's less work, and the extra work necessary to deviate isn't
> considered worth it, since it's "not important".

'more efficient' is a synonym to 'better', for me, as I consider 
efficiency a 'good' thing. If you mean it's more comfortable, you're 
right, but then this questions pops up: Do we want to make good 
applications, or comfortable ones? (Comfortable to the developer, not 
the user of course.)

> required to maintain that change.  It doesn't pay to be different just to
> be different.  Because there's an unavoidable cost involved with being
> different, do it where it's worth the trouble, don't do it where it's not.

Sure, if that's the point you made, I absolutely agree, I just don't 
think such a self-evident statement is even worth to mention, so I 
thought you wanted to state something different.

> As a matter of fact, this does interest me (as should be pretty obvious
> by now <g>). Do you have any evidence of an opposing trend, AWAY from the
> LSB/FHS standard, or toward no accepted common standard, in this instance?
> To date, everything I've read seems to indicate the trend, possibly slow,
> but there none-the-less, is /toward/ the LSB/FHS multilib standard, at
> least in the case of amd64.  If there's evidence to the contrary, please
> do point me to it!  I'd much rather find out and have to admit I'm wrong
> now, and have the truth as my guide in the future, than otherwise.  I
> simply haven't yet seen anything that would invalidate my previous
> assumption, and certainly what the pro-LSB press would have one believe.

I can't see neither a movement toward LSB/FHS nor away from it. I think 
such standards are generally usefull as they make programming a lot 
easier, but in the end, each user should receive the power to decide 
where which type of file goes. So the ultimate goal shouldn't be to 
adore a certain standard but to make the tool as flexible as possible, 
e.g. by providing Makefiles where you just can reset LIBDIR if you don't 
the default. If every tool would be that flexible, we wouldn't need to 
bother about FH standards at all.

>>What misery?
> 
> 
> That of those who found the 2004.3 -> 2005.0 upgrade rather more painful
> than they would have liked?  That of those that ended up formatting and
> reinstalling Gentoo, not entirely a pain free process, because they were
> stuck with a half-upgraded system that would no longer work right on
> /either/ the 2004.3 /or/ the 2005.0 profile?  That of those that chose to
> avoid the issue for the time being and are staying on 2004.3, due to the
> horror stories as posted here and in the forums, from those faced with the
> situation above?

That's a misery indeed, however, that's not related to the 
lib/lib64/lib32 change. As you can see in the new development guide [1],
the situation is basically the same in 2004.3 and 2005.0. The major 
change which causes problems for many users is that in 2005.0, multilib 
is enabled by default, while on 2004.3 it's not, and to get a 
multilib-capable system, you need a multilib-capable toolchain (well, 
not the whole toolchain, otherwise it'd be impossible without using 
binpkgs). Anyway, the issues caused with the upgrade to 2005.0 would be 
the same if the lib/lib64/lib32 scheme would be the same as in 2004.3.

>>>Currently, Gentoo-amd64 has just about finished moving 64-bit libs out
>>>of lib.  We have both a lib32, and a lib64, with lib being a symlink to
>>>lib64, for those remaining packages (such as skencil, apparently) that
>>>have so far fallen thru the cracks, and continue to make the early
>>>Gentoo-amd64 assumption that lib is the 64-bit shared object location.
>>>With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
>>>to finally weed out as many of the few remaining back packages as
>>>possible.  With 2006.0, it's possible that lib -> lib64 symlink can
>>>finally be broken, and any remaining packages then WILL get bugs filed,
>>>when someone tries to use them and has issues.  With luck, by 2006.1, it
>>>should be safe to start doing basically the same thing with the lib32 ->
>>>lib move, as we will have just got thru doing with the lib -> lib64
>>>move. First, there will be a symlink between the two, in another release
>>>or two, the main packages will be changed and it'll be time to activate
>>>the multilib-strict test for anything still ending up in lib32 instead
>>>of lib. By 2007.0, therefore, if luck holds, that multilib-strict test
>>>can be the default, to catch all the stragglers possible, and 2007.1
>>>should then hopefully be able to remove lib32, relegating it to the
>>>annuls of Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo
>>>continues with the twice-yearly releases, thus, they mean second-half.)
>>
>>Where do you get this information from? We (read: we, the Gentoo/AMD64
>>developer team) never published such a roadmap, nor do we have one
>>ourselves. Please, don't cook up a story just to enlarge your
>>pen^W^W^Wmails.
> 
> 
> OK, it's quite apparent you have a personal problem with my style, and
> possibly with the fact that I paralleled your post, tho I really don't
> know why that should be a problem at all.  Perhaps that part should be
> taken to private mail, if you wish to continue the discussion.

Not at all. The "enlarge your pen^W" shouldn't offend you, it was meant 
as a joke, critisizing the massive amount of spam we all get with this 
topic, not you :D Sorry if it looked like a diparaging remark, that 
really wasn't my intention.

> The key is, it's my speculation, and the phrasing I chose /should/ have
> made that quite apparent.
[snip]
> The fact
> remains, however, I was writing what "I expect", what I consider
> "possible", or even likely, and labeled it as exactly that.  I certainly
> did **NOT** label it as any sort of official road map, quite the contrary!

It rather looked like an official roadmap coming from a dev to me, but 
in that case, I just got it completely wrong. I apologize.

> Assuming that we agree on the current status, and that nothing has changed
> from previous plans (and of course that I understood said plans
> correctly), what's the next reasonable step in the process? Before we
> break that lib -> lib64 link, isn't it reasonable to go stable with the
> multilib-strict warning, to flush anything out that was missed by those
> deliberately testing?  I know I'd rather file a bug about a warning and
> failed emerge as a result, with my previous version continuing to function
> normally, than I would file a bug because the link was broken and I now
> have currently merged programs that no longer work!

What you stated above was correct, but given the fact that many users 
think much of you, i find it risky to issue a complete roadmap with more 
or less precise dates for each step. The main problem I saw here were 
users coming to us in 2007 and asking why the hell we didn't finish the 
whole thing.

> The rest of the steps follow, one at a time.  Unless I'm seriously
> mistaken, or unless things have changed, we'll follow the general outline,
> tho the timing could easily be off, and the individual steps may be
> somewhat different.  In any case, even if I AM seriously mistaken, it was
> labeled "my expectation", not "official Gentoo roadmap", and who am I,
> that someone should trust my predictions over that of Joe Blow?  It's not
> as if I'm posting with an @gentoo.org email address or something.  Just
> like the speculations of any other Joe Blow, if they find my speculations

Well, your not just a random guy like Joe Blow, you're a much 
appreciated user with a lot of knowledge, and that gives you power as 
well as responsibility.

>>>However, that's really only half the issue.  The other half is portage,
>>>which currently can't track 32-bit dependencies separate from its 64-bit
>>>dependencies.
>>
>>You can take comfort with the fact that even if portage already had this
>>functionality, there wouldn't be real multilib now.
> 
> Somewhat of an enigmatic comment.  There are a number of ways it could be
> taken.
> 
> If "now" is taken to mean "as opposed to previous plans", it /could/ mean
> that Gentoo in general, and Gentoo-amd64 in particular, has put on hold
> further advances toward multilib, and may in fact reverse course.  Luckily
> for me, the only 32-bit stuff I run is the stuff in the 2005.0 normal
> profile (along with LILO), since I believe in FLOSS strongly enough to be
> uninterested in closed source, even 32-bit only proprietary codecs and
> plugins, and open source means 64-bit portable and for my purposes, that
> means pretty much already ported.  Thus, personally, 32-bit and therefore
> multilib, is more a hassle than anything, meaning double the time
> compiling glibc, for instance.  However, I certainly empathize with those
> who have 32-bit stuff they still want/need to run.  (If this is the way
> "now" is to be read, the tone of the comment could also imply a bit of
> bitterness, that this decision was made, as well.  That's not a given, as
> it could imply satisfaction at the result, instead, or simply nothing. 
> Again, enigmantic...)

Heh, that really made me laugh. We're not going back, everything is 
going on as planned. The problem I had in mind when writing the above 
statement is following:

Let's say we have appfoo (yes, again :D), which needs various 
X11-libraries, as it has a GUI. We want appfoo to be compiled 32bit, but 
  the huge majority is 64bit, and of course xorg-x11 is 64bit too. Now, 
where we want to install appfoo as a 32bit binary with the portage able 
to track 32bit dependencies, it will install xorg-x11 32bit, because we 
need the libraries in that packages 32bit. But then, the install routine 
would overwrite the xorg binary and we'd end up with a 32bit xorg, which 
we don't want. To solve this issue, we have the following options:

	a) Split up libraries and binaries into seperate packages. This
	is what currently happens to X, thanks to spyderous. See
	eradicator's thoughts on this [2].

	b) Implement a filter to just install the shared objects. This
	has the advantage that we don't have to split up a huge amount
	of packages and keep closer to upstream, which is generally a
	good idea. However, there are still unresolved issues: Portage
	would need another addition, something like a 'only libs' flag,
	and personally, I don't like that idea so much, as it looks a
	bit untidy. Also, you need e.g. headers the first time you
	install a certain library, so things are getting complicated.

In addition, there is still the unresolved issue about the -config 
scripts in /usr/bin, which would get overwritten everytime you install 
the same lib with another bitness. Unfortunately we can't just copy a 
solution from another (binary-based) distro, as they don't have this 
problem. Also, the universally beloved FHS doesn't give us an answer to 
this problem. A really easy solution would be to just create /usr/bin64, 
similiar to /usr/lib and /usr/lib64, but we all know this would lead to 
a massive amount of time-consuming work, and as you said in your 
original mail, it's simply not worth the effort. Of course it wouldn't 
be a problem at all if all applications would have a more flexible build 
system, as I stated above.

All in all, I'm sure we will have a fully multilib-capable system in the 
end, but I'm rather pessimistic about the time schedule.

I'll better finish now, this mail got much longer than I wanted it to 
be, and I hope I don't bore the readers ;)

Kindly regards,

Simon

[1] http://dev.gentoo.org/~plasmaroo/devmanual/archs/amd64/#libdir-links
[2] 
http://ramblings.hudscabin.com/blogs/index.php/2005/05/02/multilib_and_toolchain_thoughts
-- 
Simon Stelling
Gentoo/AMD64 Operational Co-Lead
blubb@gentoo.org
-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: Re: file type not allowed in /usr/lib
  2005-08-08 19:20       ` Simon Stelling
@ 2005-08-08 23:04         ` Matt Randolph
  2005-08-09  0:33           ` Matt Randolph
  2005-08-09 16:48           ` [gentoo-amd64] " Duncan
  2005-08-09 18:48         ` Duncan
  1 sibling, 2 replies; 15+ messages in thread
From: Matt Randolph @ 2005-08-08 23:04 UTC (permalink / raw
  To: gentoo-amd64

Simon Stelling wrote:

>
> First, I didn't really want to offend you, although I have to admit 
> that a few statements were rather harsh. I didn't feel offended, and I 
> know you didn't want to say my answer was incompetent. However, if I 
> *were* the questioner, I'd feel offended, since I don't need 
> everything explained twice, and if I don't get it, I ask further 
> questions. Generally explaining it a second time somehow implies that 
> I didn't get it the first time, but perhaps that's just me.


Google "Active Listening."  Basically, active listening means that you 
repeat everything another person says but you put it in your own words.  
This shows the other person that you're actually paying attention, and 
it helps to reveal any miscommunication the instant it occurs.  It's a 
management technique and a tool used in conflict resolution/avoidance.  
I'm NOT saying that's what happened here, but your words suggest to me 
that you _might_ be unprepared if someone used active listening on you.

-- 
"Pluralitas non est ponenda sine necessitate" - W. of O.

-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: Re: file type not allowed in /usr/lib
  2005-08-08 23:04         ` Matt Randolph
@ 2005-08-09  0:33           ` Matt Randolph
  2005-08-09 16:48           ` [gentoo-amd64] " Duncan
  1 sibling, 0 replies; 15+ messages in thread
From: Matt Randolph @ 2005-08-09  0:33 UTC (permalink / raw
  To: gentoo-amd64

Matt Randolph wrote:

> Simon Stelling wrote:
>
>>
>> First, I didn't really want to offend you, although I have to admit 
>> that a few statements were rather harsh. I didn't feel offended, and 
>> I know you didn't want to say my answer was incompetent. However, if 
>> I *were* the questioner, I'd feel offended, since I don't need 
>> everything explained twice, and if I don't get it, I ask further 
>> questions. Generally explaining it a second time somehow implies that 
>> I didn't get it the first time, but perhaps that's just me.
>
>
Simon Stelling wrote:

>
> Just a personal note on this: What's the point in repeating 
> everything? You only bore people with it. I think we can assume that 
> the original poster either gets it the first time, or he'll surely ask 
> again and give details about what he didn't understand.
>
Oops!  I meant to quote you when you said it the first time.


-- 
"Pluralitas non est ponenda sine necessitate" - W. of O.

-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: file type not allowed in /usr/lib
  2005-08-07 13:18 ` [gentoo-amd64] " Duncan
  2005-08-07 20:13   ` Simon Stelling
@ 2005-08-09  8:05   ` Jeremy Huddleston
  1 sibling, 0 replies; 15+ messages in thread
From: Jeremy Huddleston @ 2005-08-09  8:05 UTC (permalink / raw
  To: gentoo-amd64

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

> With 2005.1, I'm expecting FEATURES=multilib-strict will be the default,
> to finally weed out as many of the few remaining back packages as
> possible.

I don't suspect that will be "default" as I'd rather not burden users
with those problems that should be caught by developers.  Before we make
the switch to eliminating the symlink for good, we'll need to QA every
amd64 marked package to make sure it doesn't break under
multilib-strict... I'm not looking forward to that, but hopefully we'll
be able to break up the burden among the devs, ATs and community.

> With 2006.0, it's possible that lib -> lib64 symlink can
> finally be broken, and any remaining packages then WILL get bugs filed,
> when someone tries to use them and has issues.

You can actually do that now with the 2005.0/no-symlinks profile, but I
haven't done much QA on it yet, but PLEASE file bugs that you come
across with it.

> With luck, by 2006.1, it
> should be safe to start doing basically the same thing with the lib32 ->
> lib move, as we will have just got thru doing with the lib -> lib64 move.

Again, 2005.0/no-symlinks/no-lib32 profile... uh... don't expect this
one to work though ;)  BUG reports welcome... also developer muscle
welcome.  I want to get gcc-config 2.0 done first (see my blog).

> First, there will be a symlink between the two, in another release or two,
> the main packages will be changed and it'll be time to activate the
> multilib-strict test for anything still ending up in lib32 instead of lib.
> By 2007.0, therefore, if luck holds, that multilib-strict test can be the
> default, to catch all the stragglers possible, and 2007.1 should then
> hopefully be able to remove lib32, relegating it to the annuls of
> Gentoo-amd64 history.  (Those .1 mentions assume that Gentoo continues
> with the twice-yearly releases, thus, they mean second-half.)

So yeah, in like many years down the road, this should all be worked out
assuming I get off my ass and get things rolling...

> However, that's really only half the issue.  The other half is portage,
> which currently can't track 32-bit dependencies separate from its 64-bit
> dependencies.  We had hoped that portage would have dual-bitness support
> by 2005.1, but that's now looking impossible, 

Uhm... yeah... did I mention that I don't like python... so that means
this probably won't happen soon or quickly unless someone else steps up
to the task to help out (or someone convinces me to enjoy python)...
the design is pretty much there, but it's not gonna get implemented by
me alone.  If anyone is interested in helping out with this project,
this is a great opportunity to contribute a much needed feature.

> Thus, it'll be 2006.0 at the earliest, before portage
> will be able to handle dual-bitness tracking, keeping the 32-bit
> dependencies separate from the 64-bit dependencies.

And that's very optimistic.

--Jeremy


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* [gentoo-amd64]  Re: Re: Re: file type not allowed in /usr/lib
  2005-08-08 23:04         ` Matt Randolph
  2005-08-09  0:33           ` Matt Randolph
@ 2005-08-09 16:48           ` Duncan
  1 sibling, 0 replies; 15+ messages in thread
From: Duncan @ 2005-08-09 16:48 UTC (permalink / raw
  To: gentoo-amd64

Matt Randolph posted <42F7E516.2030103@erols.com>, excerpted below,  on
Mon, 08 Aug 2005 19:04:54 -0400:

> Simon Stelling wrote:
> 
>> First, I didn't really want to offend you, although I have to admit that
>> a few statements were rather harsh. I didn't feel offended, and I know
>> you didn't want to say my answer was incompetent. However, if I *were*
>> the questioner, I'd feel offended, since I don't need everything
>> explained twice, and if I don't get it, I ask further questions.
>> Generally explaining it a second time somehow implies that I didn't get
>> it the first time, but perhaps that's just me.
> 
> 
> Google "Active Listening."  Basically, active listening means that you
> repeat everything another person says but you put it in your own words.
> This shows the other person that you're actually paying attention, and it
> helps to reveal any miscommunication the instant it occurs.  It's a
> management technique and a tool used in conflict resolution/avoidance. I'm
> NOT saying that's what happened here, but your words suggest to me that
> you _might_ be unprepared if someone used active listening on you.

Hmm...  I've seen "active listening" described before, and even
participated in exercises where we were supposed to /do/ it.  However,
that always seemed frustratingly artificial, to me, and I had difficulty
moving it out of the book/classroom/exercise and into the real world, in
part because the idea seemed natural on the one hand, but, I'm guessing
because of the artificial emphasis on the single technique, something that
really doesn't happen in the real world, entirely artificial in all the
examples and exercises.

Thus, it's very instructive to see someone bring it up in a "real world"
(OK, Gentoo list <g>) situation I was involved in, in post-analysis, so I
wasn't trying to focus on it at the time, only later.

You are correct, it wasn't /exactly/ what was happening here, because it
was a three-party exchange with a fairly large known audience in the form
of the rest of the list, but are also correct in pointing out the
parallels, as, looking back in post-analysis myself, I can see that I was
instinctively using some of the same principles.  While not direct active
listening because it was my own separate response, I did repeat and
acknowledge some of the same concepts, with the implicit understanding
that not only was I reinforcing them as I earlier claimed, but that,
should I get something wrong, I'd be called out on it.  

Actually, it's a bit more than that, because at the same time, there's
also the check on the effectiveness of my delivery, that I wouldn't
necessarily get, if I wasn't paralleling someone else.  Every once in
awhile, something happens to make me aware that the received message from
one of my posts isn't quite what I intended.  In this case, that's
rather an understatement of what happened <g>.  However, in any case,
while the experience isn't usually all that pleasant (another
understatement <g>), the result is a better awareness of how my
communications are received, ultimately resulting in changes to what I
send.  It may not be pleasant, but the end result, therefore, is, I
believe/hope, better and more effective communication from my end.

Anyway... what's really interesting to me about your comment, is how I was
doing this and wasn't really aware of it, nor could I have been, because I
had never been able to successfully translate the book/classroom knowledge
of "active listening" into something approaching reality.  Thus, your
comment provoked a personal Ah-ha! "lightbulb goes on" type moment, for
me.  I was finally able to make that real-world connection, and hopefully,
can now benefit from it, as the consequences of that linking sink in.

I don't know if the above really makes sense to anyone else or not, but
what it all means is that I got something unexpected out of your comment,
that should be of help to me in the future.  So... THANKS! =8^)

-- 
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 in
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html


-- 
gentoo-amd64@gentoo.org mailing list



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

* [gentoo-amd64]  Re: Re: Re: file type not allowed in /usr/lib
  2005-08-08 19:20       ` Simon Stelling
  2005-08-08 23:04         ` Matt Randolph
@ 2005-08-09 18:48         ` Duncan
  2005-08-10 13:12           ` Simon Stelling
  1 sibling, 1 reply; 15+ messages in thread
From: Duncan @ 2005-08-09 18:48 UTC (permalink / raw
  To: gentoo-amd64

Simon Stelling posted <42F7B071.7060603@gentoo.org>, excerpted below,  on
Mon, 08 Aug 2005 21:20:17 +0200:

> Duncan wrote:
>>>Just a personal note on this: What's the point in repeating everything?
>>>You only bore people with it. I think we can assume that the original
>>>poster either gets it the first time, or he'll surely ask again and
>>>give details about what he didn't understand.
>> 
>> OK, first, the tone here and below seems to indicate I offended you in
>> some way.  Let me unconditionally state at the outset, that such was in
>> no way the intent.
> 
> First, I didn't really want to offend you, although I have to admit that
> a few statements were rather harsh. I didn't feel offended, and I know
> you didn't want to say my answer was incompetent. However, if I *were*
> the questioner, I'd feel offended, since I don't need everything
> explained twice, and if I don't get it, I ask further questions.
> Generally explaining it a second time somehow implies that I didn't get
> it the first time, but perhaps that's just me.

Hmm...  Maybe it's because I've been quite active on USENET (and public
mailing lists like this one, now) for some time, but to me, that's just
the nature of the medium.  Two or sometimes five or ten replies all
stating the same thing or sometimes wildly different things <g>, just
comes with the territory.  Sometimes folks build on what others have said,
sometimes they disagree and say why, sometimes the posts don't have any
relation but say essentially the same thing, because neither poster saw
the other's post before they posted.

IMO, it's one of the strengths of the medium that each poster says it his
own way, most rather briefly, some (like myself) taking hundreds of lines
to explain (their view of) why things work as they do, the implications,
and some of the exceptions to watch out for and what to do to avoid or
work around them, all to the Nth degree! <g>  Basically, it allows the
original poster (aka OP) to pick and choose the replies that meet their
needs.  If they want a quick solution, the five line "do this" is perfect!
If they want to know the background and what to do to prevent the issue
again, and/or how to fix similar but not identical issues, without having
to post another query, the next time, then the 200-liners <g> come in
handy.

So... yes, occasionally someone gets offended.  However, once they
understand the medium, they generally don't any more, and, as always with
the medium, for those seriously offended, there's always the kill
file/filter option, the exercise of which does not require notice or
reason be given.

>> [W]hat about binary only installers?
>
> Judging from my experience, the opposite is the case: Most of the
> hardcoded programs just install to /usr/lib without bothering about
> their bitness, so it'd be better to set lib = 64bit as a
> longterm-solution, assuming that amd64 will (at least partly) replace
> x86. Also, most of the "hardcoded programs" aren't closed source but
> open source apps. Also, once these hardcoded paths are made suitable,
> it's quite easy to do the same with the next version: Just bump the
> ebuild. There are *very* few configure scripts which try to find out the
> correct place for libraries theirselves, and in most of these very few
> cases, they're broken anyway, as the just grep uname -a for Athlon64 or
> Opteron, which then would break 32bit.

Hmm.. surprised me on the hardcoding being mostly open source...  I guess
it makes sense, tho, as the OS folks figure it's open, so folks can change
it if need be, while the closed source folks don't /want/ folks examining
their stuff, so have reason to make it configurable.

However, the real point is dealt with below...

>>>>mostly duplicated common code, it's ALWAYS more efficient to keep in
>>>>line with the rest of the community, so the maintenance and further
>>>>development
> 
> 'more efficient' is a synonym to 'better', for me, as I consider
> efficiency a 'good' thing. If you mean it's more comfortable, you're
> right, but then this questions pops up: Do we want to make good
> applications, or comfortable ones? (Comfortable to the developer, not
> the user of course.)

Ah...  I see your viewpoint, now!  It never occurred to me...

I was using "efficient" as in "getting as far as possible using the least
amount of work and resources possible".  Thus, "efficiency" is usually
thought of as having a good effect, but is actually neutral, in that
something can be "ruthlessly efficient", or "an efficient killing
machine", or the like, in which case the effect can be bad, depending of
course on one's viewpoint, whether one is doing the killing or being
killed (or watching it occur, with approval or disapproval), in the case
of the "efficient killing machine", for instance.

Thus, here, I was saying it's "less work and requires less resources" to
go with the community common standard.  That's ALWAYS the case.  Whether
it's actually worth spending the extra work and resources, therefore,
depends on just what value is assigned to the proposed difference from
standard, in question.

>> Because there's an unavoidable cost involved with being different, do
>> it where it's worth the trouble, don't do it where it's not.
> 
> Sure, if that's the point you made, I absolutely agree, I just don't
> think such a self-evident statement is even worth to mention, so I
> thought you wanted to state something different.

The trouble is... what's self-evident to one person, isn't always so
evident to another!  I've unfortunately had to find this out the hard way
on more than /one/ occasion!  <g>

Anyway, here, the context was in how that forms the unifying force that
keeps (GNU/)Linux from fragmenting into incompatibility, as proprietary
Unix did, and how that forms a counter-balance to the forces of
fragmentation.  The argument is quite familiar to those who've been around
open source for some time, certainly, but evidently, it isn't quite
self-evident to everyone, as the question of fragmentation does continue
to come up.

> So the ultimate goal shouldn't be to adore a certain standard but to
> make the tool as flexible as possible, e.g. by providing Makefiles where
> you just can reset LIBDIR if you don't the default. If every tool would
> be that flexible, we wouldn't need to bother about FH standards at all.

It /would/ be nice...

[snipping a section I entirely agree with, post was getting too long...]

>>>Where do you get this information from? We (read: we, the Gentoo/AMD64
>>>developer team) never published such a roadmap, nor do we have one
>>>ourselves. Please, don't cook up a story just to enlarge your
>>>pen^W^W^Wmails.
>> 
>> OK, it's quite apparent you have a personal problem with my style, and
>> possibly with the fact that I paralleled your post, tho I really don't
>> know why that should be a problem at all.  Perhaps that part should be
>> taken to private mail, if you wish to continue the discussion.
> 
> Not at all. The "enlarge your pen^W" shouldn't offend you, it was meant
> as a joke, critisizing the massive amount of spam we all get with this
> topic, not you :D Sorry if it looked like a diparaging remark, that
> really wasn't my intention.

OK, got it!  The case of the missing smiley chalked up another victim,
here, I must admit!  (See next for content comment.)

>> The key is, it's my speculation, and the phrasing I chose /should/ have
>> made that quite apparent. [snip]
> 
> It rather looked like an official roadmap coming from a dev to me, but
> in that case, I just got it completely wrong. I apologize.
> 
>> Assuming that we agree on the current status, and that nothing has
>> changed from previous plans (and of course that I understood said plans
>> correctly), what's the next reasonable step in the process? [snip]
> 
> What you stated above was correct, but given the fact that many users
> think much of you, i find it risky to issue a complete roadmap with more
> or less precise dates for each step. The main problem I saw here were
> users coming to us in 2007 and asking why the hell we didn't finish the
> whole thing.

OK, it's clearer now what you were referring to, and indeed, I agree,
I could have been clearer in specifically stating it was NOT a devs
roadmap.

I'll plead the "I'm still learning" excuse, here. You make a
decent point. I've been personally in the process of coming to terms with
what it might mean for me to be a Gentoo AT, and the implications that
should/will have for my posting. I've been a user, only a user, if perhaps
a somewhat influential one, in 100% of my USENET and mailing list rolls,
for as long as I've had such rolls. As such, I've not had the
responsibility of representing someone else, and could speak my mind,
because it was /only/ me I was representing.  I take seriously the advice
in the AT guide, and have been considering the implications that will have
on my posting style, as well as whether I'll choose to post with my Gentoo
identity (once I get it, let me be absolutely clear lest anyone be in any
way confused, I don't have it nor do I claim to have it yet) as part of my
regular sig, only some of the time, or if I'll only use it with the devs
and on bugzilla.

Quite apart from AT, however, it just happens to fit in there too, you are
correct in that it would have been possible, indeed, preferable, that I
made it a bit more clear that the "we" I mentioned several times was NOT
"we" as in Gentoo-amd64 devs, but "we" as in the commonality of
Gentoo-amd64 users AND devs -- and that I was speaking as the "user" side
of that "we".  Specifically in this "roadmap", while I DID mention "I
expect", and "possible" and other such qualifiers, I COULD and SHOULD have
also specifically stated this was NOT a devs provided roadmap.  Again, I'm
still learning, but you've persuaded me.  =8^)

> Well, your not just a random guy like Joe Blow, you're a much
> appreciated user with a lot of knowledge, and that gives you power as
> well as responsibility.

Aye.  Sometimes I'd rather be just a Joe Blow!  <g>

>>>>However, that's really only half the issue.  The other half is
>>>>portage, which currently can't track 32-bit dependencies separate from
>>>>its 64-bit dependencies.
>>>
>>>You can take comfort with the fact that even if portage already had
>>>this functionality, there wouldn't be real multilib now.
>> 
>> Somewhat of an enigmatic comment.  There are a number of ways it could
>> be taken.
>> 
[snip speculation that proved /not/ to be the case, thankfully! <g>]
> 
> Heh, that really made me laugh. We're not going back, everything is
> going on as planned. The problem I had in mind when writing the above
> statement is following:
> 
> Let's say we have appfoo (yes, again :D), which needs various
> X11-libraries, as it has a GUI. We want appfoo to be compiled 32bit, but
> the huge majority is 64bit, and of course xorg-x11 is 64bit too. Now,
> where we want to install appfoo as a 32bit binary with the portage able
> to track 32bit dependencies, it will install xorg-x11 32bit, because we
> need the libraries in that packages 32bit. But then, the install routine
> would overwrite the xorg binary and we'd end up with a 32bit xorg, which
> we don't want. To solve this issue, we have the following options:
> 
> 	a) Split up libraries and binaries into seperate packages. This is what
> 	currently happens to X, thanks to spyderous. See eradicator's thoughts
> 	on this [2].
> 
> 	b) Implement a filter to just install the shared objects. This has the
> 	advantage that we don't have to split up a huge amount of packages and
> 	keep closer to upstream, which is generally a good idea. However, there
> 	are still unresolved issues: Portage would need another addition,
> 	something like a 'only libs' flag, and personally, I don't like that
> 	idea so much, as it looks a bit untidy. Also, you need e.g. headers the
> 	first time you install a certain library, so things are getting
> 	complicated.
> 
> In addition, there is still the unresolved issue about the -config
> scripts in /usr/bin, which would get overwritten everytime you install
> the same lib with another bitness. Unfortunately we can't just copy a
> solution from another (binary-based) distro, as they don't have this
> problem. Also, the universally beloved FHS doesn't give us an answer to
> this problem. A really easy solution would be to just create /usr/bin64,
> similiar to /usr/lib and /usr/lib64, but we all know this would lead to
> a massive amount of time-consuming work, and as you said in your
> original mail, it's simply not worth the effort. Of course it wouldn't
> be a problem at all if all applications would have a more flexible build
> system, as I stated above.
> 
> All in all, I'm sure we will have a fully multilib-capable system in the
> end, but I'm rather pessimistic about the time schedule.

Very, /very/ good point.  It's one I'd thought of, but not really in this
context, and certainly not with all the implications, so there's some
rather new info for me here.  That's what I was hoping for!  =8^)

So, rather than the two aspects I had outlined, there are /three/, and
when I said that was only half, it was only a third.  MORE challenges to
work thru!

As an aside, I'd often wondered at the implications of having a
"multibin", similar to "multilib", and why, with all the work going into
multilib, nobody seemed to be doing anything with multibin.  I had
wondered why having a 64-bit mplayer for most stuff, and a 32-bit mplayer,
for 32-bit-only binary-only codecs, wasn't as reasonable a solution as
it seemed to be for libraries.  Your comments just touch on that, but
it's the first time I've seen /any/ sort of comments on the subject, from
anyone who'd be in a position to know the issues involved, from any of the
distributions.


> [1] http://dev.gentoo.org/~plasmaroo/devmanual/archs/amd64/#libdir-links
> [2]
> http://ramblings.hudscabin.com/blogs/index.php/2005/05/02/multilib_and_toolchain_thoughts

I'll probably go over these tonight, after work.  (I /did/ see and
read with interest the thread on dev about modular xorg, tho I
haven't gotten to the that link either, to see how it's comming
along.)  Thanks for the additional links to read thru!

...  Anyway, /very/ glad to get this whole thing straightened out, again. 
I must admit, I refreshed the group this morning with a bit of
trepidation.  Feels good to be at peace with my world, once again! =8^)

-- 
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 in
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html


-- 
gentoo-amd64@gentoo.org mailing list



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

* Re: [gentoo-amd64]  Re: Re: Re: file type not allowed in /usr/lib
  2005-08-09 18:48         ` Duncan
@ 2005-08-10 13:12           ` Simon Stelling
  2005-08-10 19:53             ` [gentoo-amd64] " Duncan
  0 siblings, 1 reply; 15+ messages in thread
From: Simon Stelling @ 2005-08-10 13:12 UTC (permalink / raw
  To: gentoo-amd64

Duncan wrote:
> As an aside, I'd often wondered at the implications of having a
> "multibin", similar to "multilib", and why, with all the work going into
> multilib, nobody seemed to be doing anything with multibin.  I had
> wondered why having a 64-bit mplayer for most stuff, and a 32-bit mplayer,
> for 32-bit-only binary-only codecs, wasn't as reasonable a solution as
> it seemed to be for libraries.  Your comments just touch on that, but
> it's the first time I've seen /any/ sort of comments on the subject, from
> anyone who'd be in a position to know the issues involved, from any of the
> distributions.

Well, the problem is, even if you have two different directories for 
each bitness, the binaries will still collide, because of $PATH: How do 
you decide whether you want the 32bit or 64bit player? There's no real 
solution other than having suffixes like e.g. mplayer32 and mplayer64. 
You could reset PATH each time you launch a binary of other bitness, but 
that's just an ugly workaround and it may not always do what you want. 
So you have to use suffixes. But then, you don't need two directories, 
as the binaries won't collide anymore... Additionally, what do you do 
about scripts? PATH doesn't work there, and so you'd have to first edit 
the #!-line before executing it.

On the other hand, multilib will never be a permanent solution, I see it 
as a nice way to keep compatibility with old stuff, but as soon as 
companies are starting to provide 64bit binaries, it will slowly 
disappear from amd64's sight.

So the final question is: Is it really worth the effort?

Regards,

-- 
Simon Stelling
Gentoo/AMD64 Operational Co-Lead
blubb@gentoo.org
-- 
gentoo-amd64@gentoo.org mailing list



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

* [gentoo-amd64]  Re: Re: Re: Re: file type not allowed in /usr/lib
  2005-08-10 13:12           ` Simon Stelling
@ 2005-08-10 19:53             ` Duncan
  0 siblings, 0 replies; 15+ messages in thread
From: Duncan @ 2005-08-10 19:53 UTC (permalink / raw
  To: gentoo-amd64

Simon Stelling posted <42F9FD31.4050307@gentoo.org>, excerpted below,  on
Wed, 10 Aug 2005 15:12:17 +0200:

> Well, the problem is, even if you have two different directories for each
> bitness, the binaries will still collide, because of $PATH: How do you
> decide whether you want the 32bit or 64bit player? There's no real
> solution other than having suffixes like e.g. mplayer32 and mplayer64. You
> could reset PATH each time you launch a binary of other bitness, but
> that's just an ugly workaround and it may not always do what you want. So
> you have to use suffixes. But then, you don't need two directories, as the
> binaries won't collide anymore... Additionally, what do you do about
> scripts? PATH doesn't work there, and so you'd have to first edit the
> #!-line before executing it.

As I've imagined it here, altho I admit there are likely huge holes in it
that I'm not aware of given I haven't had to be concerned with the actual
implementation process...

$PATH would include $PREFDIR:$DEFAULTBIN:$SECONDARYBIN.  $DEFAULTBIN would
be the normal system default, presumably bin64.  $PREFDIR would contain
symlinks to individual executables in $SECONDARYBIN, where they are
preferred over those in $DEFAULTBIN, allowing a system default, with
individual application defaults differing from the system default, as
necessary.

In addition, $PREFDIR could contain suffixed or otherwise identified
symlinks to both bitness versions specifically.  Thus, applications could
be referred to by general name to get the locally preferred default in
$PREFDIR, suffixed name to get the specific bitness version, or by
absolute path, getting the specific bitness version or the locally
preferred default as specified in $PREFDIR, as desired/appropriate.

There'd be a similar config dir setup, with a system default config, and a
secondary config dir for those apps that are configured differently
between the bitnesses.  Again, a general symlink dir could be used to
coordinate things, or compliant apps could do the usual mult-dir search
until they found a config, searching first their specific bitness
config-dir then the system default config-dir.

Presumably, the suffixed symlinks would be created in $PREFDIR at
installation.  There's be a helper script similar to *-config that could
be used to select between them, or the sysadmin could set the symlinks
manually if desired.

Each distribution could set up its own system, but again, LSB/FHS or the
like standardization would be a pretty big benefit, here, such that at
least the standard dir locations to search were agreed.  Some
distributions would then go with the more or less simple symlink
infrastructure as outlined above, others may replace the symlinks with
more complex wrapper scripts that would "do the right thing" for that
specific distribution.

I don't see scripts as being a huge problem, particularly if the dirs were
standardized.  Those scripts that needed specific bitness versions would
call them, presumably by suffix; those that didn't would call the
unsuffixed version, which would automatically find the appropriate
default, either picking it up from $PREFDIR, or falling thru to the global
system default in $DEFAULTBIN if a prefdir symlink or wrapper wasn't
defined, presuming of course, that path was set appropriately.  Where such
path presumptions couldn't be relied upon, for security or other reasons,
absolute paths could be used, using the already common in scripts
if-executable type tests except in the case of the #! lines, which would
still need tweaked by distributions or sysadmins in some instances.

Like I said, there's probably huge holes in all that, due to the fact that
I've never been in the position of someone having to worry about such
implementation details at a distribution level...


> On the other hand, multilib will never be a permanent solution, I see it
> as a nice way to keep compatibility with old stuff, but as soon as
> companies are starting to provide 64bit binaries, it will slowly
> disappear from amd64's sight.
> 
> So the final question is: Is it really worth the effort?

Well...  I suppose it depends on just how "slow" reality defines "slowly"
to be.

We have the precedent of the 16 -> 32-bit transition.  I'm not familiar
with *ix from back then, but know at least on the proprietaryware aka MS
side, the practical transition took a decade or longer, and there are
still 16-bit binaries in use today, altho very often run under software,
if not hardware, emulation.  Think about how long it was before 32-bit
virtual 386 mode became common.  Then consider how much more society
depends on 32-bit x86 today, as compared to 16-bit x86 back then, and the
fact that 32-bit is far closer to "good enough" for most folks using it
today than 16-bit was back then -- the improvements are more incremental
now, because the percentage improvement on the established base is
smaller, even if the improvement in the absolute sense is the same or
even greater.

Given that, I think a decade is a realistic estimate.  Admittedly, there
are quite a few different factors this time around, the far higher degree
of computer use in society, and the "good enough" factor, on the one hand,
against the possible paradigm shift to FLOSS, and what that might mean to
the whole debate, on the other.  Still, a decade seems reasonable, and
that's a /very/ long time, in computer evolution terms.

Then there's the whole question as to where to start counting.  Where is
day zero in that decade?  I'd contend that it's in the past, certainly,
but do we call the introduction of the Opteron day zero, or do we call the
introduction on the desktop, the Athlon 64, day zero, or do we call
Intel's introduction day zero?  Are we already a couple years into that
decade, or only a few months?  If it's a couple years, you are correct, by
the time we get multilib fully implemented, we may have already passed the
half-way mark, and the actual need for multilib, let alone multibin, will
be on the decline.  If day zero is taken to be when the Intel version
actually became available on the streets, it's still fairly early in the
game, yet, and it may well be worthwhile considering multibin, even now,
particularly since the bulk switch from x86(32) definitely remains ahead,
and if the decade timeline proves optimistic.  Also throw into that the
whole proprietary/open thing.  Certainly, those with more freedom to
modify the software they run, aren't going to be needing such drastic
compatibility measures as those without.  (It's for that reason that the
entire debate is mostly an intellectual exercise, for me, as I personally
come down far closer to the freedom end of things, than, say, those
willing to run even proprietary video drivers and games, let alone entire
proprietary OSs, and most of the apps on them.)

So... I'm /definitely/ of the opinion that multilib is worthwhile.  I
think multibin /could///would/ have been as well, were the momentum for it
at the same level as multilib is today.  However, I think most will agree
that it's definitely rather late to start worrying about multibin at this
point, however nice it /might/ have been to have it.

IOW, as a practical matter, I don't see multilib disappearing from sight
any time soon.  If anything, its importance is likely to increase
DRAMATICALLY over the next few years (three at least), as the mainline x86
computing public switches over, bringing with them all that 32-bit
binary-only cruft they'll invariably have.  That is, after all, one of the
big reasons x86_64 has become the success it has, even in the face of
Intel's pushing ia64 as the "preferred" alternative.  By 2008,
multilib importance may begin to decrease, tho I don't see it
dropping to something that can really be ignored (unless deliberately so),
until 2010 at the earliest.

Then again, what's this "Joe Blow" know? =8^)

-- 
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 in
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html


-- 
gentoo-amd64@gentoo.org mailing list



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

end of thread, other threads:[~2005-08-10 19:57 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-06 22:36 [gentoo-amd64] file type not allowed in /usr/lib Will Briggs
2005-08-07 10:18 ` Simon Stelling
2005-08-08  2:23   ` Will Briggs
2005-08-07 13:18 ` [gentoo-amd64] " Duncan
2005-08-07 20:13   ` Simon Stelling
2005-08-08  9:17     ` Simon Stelling
2005-08-08 15:40     ` [gentoo-amd64] " Duncan
2005-08-08 19:20       ` Simon Stelling
2005-08-08 23:04         ` Matt Randolph
2005-08-09  0:33           ` Matt Randolph
2005-08-09 16:48           ` [gentoo-amd64] " Duncan
2005-08-09 18:48         ` Duncan
2005-08-10 13:12           ` Simon Stelling
2005-08-10 19:53             ` [gentoo-amd64] " Duncan
2005-08-09  8:05   ` [gentoo-amd64] " Jeremy Huddleston

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