Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: Re: Re: Re: file type not allowed in /usr/lib
Date: Wed, 10 Aug 2005 19:57:10
Message-Id: pan.2005.08.10.19.53.36.533680@cox.net
In Reply to: Re: [gentoo-amd64] Re: Re: Re: file type not allowed in /usr/lib by Simon Stelling
1 Simon Stelling posted <42F9FD31.4050307@g.o>, excerpted below, on
2 Wed, 10 Aug 2005 15:12:17 +0200:
3
4 > Well, the problem is, even if you have two different directories for each
5 > bitness, the binaries will still collide, because of $PATH: How do you
6 > decide whether you want the 32bit or 64bit player? There's no real
7 > solution other than having suffixes like e.g. mplayer32 and mplayer64. You
8 > could reset PATH each time you launch a binary of other bitness, but
9 > that's just an ugly workaround and it may not always do what you want. So
10 > you have to use suffixes. But then, you don't need two directories, as the
11 > binaries won't collide anymore... Additionally, what do you do about
12 > scripts? PATH doesn't work there, and so you'd have to first edit the
13 > #!-line before executing it.
14
15 As I've imagined it here, altho I admit there are likely huge holes in it
16 that I'm not aware of given I haven't had to be concerned with the actual
17 implementation process...
18
19 $PATH would include $PREFDIR:$DEFAULTBIN:$SECONDARYBIN. $DEFAULTBIN would
20 be the normal system default, presumably bin64. $PREFDIR would contain
21 symlinks to individual executables in $SECONDARYBIN, where they are
22 preferred over those in $DEFAULTBIN, allowing a system default, with
23 individual application defaults differing from the system default, as
24 necessary.
25
26 In addition, $PREFDIR could contain suffixed or otherwise identified
27 symlinks to both bitness versions specifically. Thus, applications could
28 be referred to by general name to get the locally preferred default in
29 $PREFDIR, suffixed name to get the specific bitness version, or by
30 absolute path, getting the specific bitness version or the locally
31 preferred default as specified in $PREFDIR, as desired/appropriate.
32
33 There'd be a similar config dir setup, with a system default config, and a
34 secondary config dir for those apps that are configured differently
35 between the bitnesses. Again, a general symlink dir could be used to
36 coordinate things, or compliant apps could do the usual mult-dir search
37 until they found a config, searching first their specific bitness
38 config-dir then the system default config-dir.
39
40 Presumably, the suffixed symlinks would be created in $PREFDIR at
41 installation. There's be a helper script similar to *-config that could
42 be used to select between them, or the sysadmin could set the symlinks
43 manually if desired.
44
45 Each distribution could set up its own system, but again, LSB/FHS or the
46 like standardization would be a pretty big benefit, here, such that at
47 least the standard dir locations to search were agreed. Some
48 distributions would then go with the more or less simple symlink
49 infrastructure as outlined above, others may replace the symlinks with
50 more complex wrapper scripts that would "do the right thing" for that
51 specific distribution.
52
53 I don't see scripts as being a huge problem, particularly if the dirs were
54 standardized. Those scripts that needed specific bitness versions would
55 call them, presumably by suffix; those that didn't would call the
56 unsuffixed version, which would automatically find the appropriate
57 default, either picking it up from $PREFDIR, or falling thru to the global
58 system default in $DEFAULTBIN if a prefdir symlink or wrapper wasn't
59 defined, presuming of course, that path was set appropriately. Where such
60 path presumptions couldn't be relied upon, for security or other reasons,
61 absolute paths could be used, using the already common in scripts
62 if-executable type tests except in the case of the #! lines, which would
63 still need tweaked by distributions or sysadmins in some instances.
64
65 Like I said, there's probably huge holes in all that, due to the fact that
66 I've never been in the position of someone having to worry about such
67 implementation details at a distribution level...
68
69
70 > On the other hand, multilib will never be a permanent solution, I see it
71 > as a nice way to keep compatibility with old stuff, but as soon as
72 > companies are starting to provide 64bit binaries, it will slowly
73 > disappear from amd64's sight.
74 >
75 > So the final question is: Is it really worth the effort?
76
77 Well... I suppose it depends on just how "slow" reality defines "slowly"
78 to be.
79
80 We have the precedent of the 16 -> 32-bit transition. I'm not familiar
81 with *ix from back then, but know at least on the proprietaryware aka MS
82 side, the practical transition took a decade or longer, and there are
83 still 16-bit binaries in use today, altho very often run under software,
84 if not hardware, emulation. Think about how long it was before 32-bit
85 virtual 386 mode became common. Then consider how much more society
86 depends on 32-bit x86 today, as compared to 16-bit x86 back then, and the
87 fact that 32-bit is far closer to "good enough" for most folks using it
88 today than 16-bit was back then -- the improvements are more incremental
89 now, because the percentage improvement on the established base is
90 smaller, even if the improvement in the absolute sense is the same or
91 even greater.
92
93 Given that, I think a decade is a realistic estimate. Admittedly, there
94 are quite a few different factors this time around, the far higher degree
95 of computer use in society, and the "good enough" factor, on the one hand,
96 against the possible paradigm shift to FLOSS, and what that might mean to
97 the whole debate, on the other. Still, a decade seems reasonable, and
98 that's a /very/ long time, in computer evolution terms.
99
100 Then there's the whole question as to where to start counting. Where is
101 day zero in that decade? I'd contend that it's in the past, certainly,
102 but do we call the introduction of the Opteron day zero, or do we call the
103 introduction on the desktop, the Athlon 64, day zero, or do we call
104 Intel's introduction day zero? Are we already a couple years into that
105 decade, or only a few months? If it's a couple years, you are correct, by
106 the time we get multilib fully implemented, we may have already passed the
107 half-way mark, and the actual need for multilib, let alone multibin, will
108 be on the decline. If day zero is taken to be when the Intel version
109 actually became available on the streets, it's still fairly early in the
110 game, yet, and it may well be worthwhile considering multibin, even now,
111 particularly since the bulk switch from x86(32) definitely remains ahead,
112 and if the decade timeline proves optimistic. Also throw into that the
113 whole proprietary/open thing. Certainly, those with more freedom to
114 modify the software they run, aren't going to be needing such drastic
115 compatibility measures as those without. (It's for that reason that the
116 entire debate is mostly an intellectual exercise, for me, as I personally
117 come down far closer to the freedom end of things, than, say, those
118 willing to run even proprietary video drivers and games, let alone entire
119 proprietary OSs, and most of the apps on them.)
120
121 So... I'm /definitely/ of the opinion that multilib is worthwhile. I
122 think multibin /could///would/ have been as well, were the momentum for it
123 at the same level as multilib is today. However, I think most will agree
124 that it's definitely rather late to start worrying about multibin at this
125 point, however nice it /might/ have been to have it.
126
127 IOW, as a practical matter, I don't see multilib disappearing from sight
128 any time soon. If anything, its importance is likely to increase
129 DRAMATICALLY over the next few years (three at least), as the mainline x86
130 computing public switches over, bringing with them all that 32-bit
131 binary-only cruft they'll invariably have. That is, after all, one of the
132 big reasons x86_64 has become the success it has, even in the face of
133 Intel's pushing ia64 as the "preferred" alternative. By 2008,
134 multilib importance may begin to decrease, tho I don't see it
135 dropping to something that can really be ignored (unless deliberately so),
136 until 2010 at the earliest.
137
138 Then again, what's this "Joe Blow" know? =8^)
139
140 --
141 Duncan - List replies preferred. No HTML msgs.
142 "Every nonfree program has a lord, a master --
143 and if you use the program, he is your master." Richard Stallman in
144 http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html
145
146
147 --
148 gentoo-amd64@g.o mailing list