[Tfug] The Joy of OSX, and the friction coefficient of goose droppings.

Bowie J. Poag bpoag at comcast.net
Wed Oct 29 18:22:56 MST 2008


The rate at which libraries change in Linux circles justifies building 
static binaries, imho. The annoyance of playing "hunt the library" with 
every new thing you download gets very old, very fast.

The rate at which *new* libraries appear which have functional overlap 
with existing libs is also obscene. Rather than building off existing 
libs, kids these days (dammit! get off my lawn!) wan't their libs to do 
everything for them, rather than having to think for themselves.. It's 
lame.  I'd say that a good 75% of open source stuff I get through 
apt-get or yum comes with unmet dependencies, new libraries that need to 
be downloaded to do things my system already knows how to do.  Sure, 
from the coder's perspective, you have plenty to choose from. But to the 
end user, the whole point, target, and audience of the programmer's 
efforts, it's maddening to continually have multiple versions of 
multiple libraries to constantly chase after.

Do it once, do it right > Do it 15 different ways, and write "a little 
bit of this, a little bit of that" chinese buffet style code.

Yes, apt-get and yum have gone a long way toward at least easing the 
misery.. But they only do so at the expense of added bloat. Here's a 
good example, on a base install of Fedora 9:

[17:56:01][fire][/usr/lib] root : ls -l libkabc*
-rwxr-xr-x 1 root root   1173 Nov 27  2007 libkabc_dir.la
lrwxrwxrwx 1 root root     20 Jul  5 02:30 libkabc_dir.so -> 
libkabc_dir.so.1.0.0
lrwxrwxrwx 1 root root     20 Jul  5 01:49 libkabc_dir.so.1 -> 
libkabc_dir.so.1.0.0
-rwxr-xr-x 1 root root  61040 Nov 27  2007 libkabc_dir.so.1.0.0
-rwxr-xr-x 1 root root   1179 Nov 27  2007 libkabc_file.la
lrwxrwxrwx 1 root root     21 Jul  5 02:30 libkabc_file.so -> 
libkabc_file.so.1.0.0
lrwxrwxrwx 1 root root     21 Jul  5 01:49 libkabc_file.so.1 -> 
libkabc_file.so.1.0.0
-rwxr-xr-x 1 root root  65100 Nov 27  2007 libkabc_file.so.1.0.0
-rwxr-xr-x 1 root root   1452 Nov 27  2007 libkabc_groupdav.la
lrwxrwxrwx 1 root root     25 Jul  5 03:00 libkabc_groupdav.so -> 
libkabc_groupdav.so.1.0.0
lrwxrwxrwx 1 root root     25 Jul  5 02:56 libkabc_groupdav.so.1 -> 
libkabc_groupdav.so.1.0.0
-rwxr-xr-x 1 root root  40816 Nov 27  2007 libkabc_groupdav.so.1.0.0
-rwxr-xr-x 1 root root   1421 Nov 27  2007 libkabc_groupwise.la
lrwxrwxrwx 1 root root     26 Jul  5 03:00 libkabc_groupwise.so -> 
libkabc_groupwise.so.1.0.0
lrwxrwxrwx 1 root root     26 Jul  5 02:56 libkabc_groupwise.so.1 -> 
libkabc_groupwise.so.1.0.0
-rwxr-xr-x 1 root root  94212 Nov 27  2007 libkabc_groupwise.so.1.0.0
-rwxr-xr-x 1 root root   1369 Nov 27  2007 libkabckolab.la
lrwxrwxrwx 1 root root     21 Jul  5 03:00 libkabckolab.so -> 
libkabckolab.so.0.0.0
lrwxrwxrwx 1 root root     21 Jul  5 02:56 libkabckolab.so.0 -> 
libkabckolab.so.0.0.0
-rwxr-xr-x 1 root root 227856 Nov 27  2007 libkabckolab.so.0.0.0
-rwxr-xr-x 1 root root   1129 Nov 27  2007 libkabc.la
-rwxr-xr-x 1 root root   1197 Nov 27  2007 libkabc_ldapkio.la
lrwxrwxrwx 1 root root     24 Jul  5 02:30 libkabc_ldapkio.so -> 
libkabc_ldapkio.so.1.0.0
lrwxrwxrwx 1 root root     24 Jul  5 01:49 libkabc_ldapkio.so.1 -> 
libkabc_ldapkio.so.1.0.0
-rwxr-xr-x 1 root root 187424 Nov 27  2007 libkabc_ldapkio.so.1.0.0
-rwxr-xr-x 1 root root   1470 Nov 27  2007 libkabc_newexchange.la
lrwxrwxrwx 1 root root     28 Jul  5 03:00 libkabc_newexchange.so -> 
libkabc_newexchange.so.1.0.0
lrwxrwxrwx 1 root root     28 Jul  5 02:56 libkabc_newexchange.so.1 -> 
libkabc_newexchange.so.1.0.0
-rwxr-xr-x 1 root root 139456 Nov 27  2007 libkabc_newexchange.so.1.0.0
-rwxr-xr-x 1 root root   1390 Nov 27  2007 libkabc_slox.la
lrwxrwxrwx 1 root root     21 Jul  5 03:00 libkabc_slox.so -> 
libkabc_slox.so.0.0.0
lrwxrwxrwx 1 root root     21 Jul  5 02:56 libkabc_slox.so.0 -> 
libkabc_slox.so.0.0.0
-rwxr-xr-x 1 root root 110600 Nov 27  2007 libkabc_slox.so.0.0.0
lrwxrwxrwx 1 root root     16 Jul  5 02:30 libkabc.so -> libkabc.so.1.2.0
lrwxrwxrwx 1 root root     16 Jul  5 01:49 libkabc.so.1 -> libkabc.so.1.2.0
-rwxr-xr-x 1 root root 947604 Nov 27  2007 libkabc.so.1.2.0
-rwxr-xr-x 1 root root   1410 Nov 27  2007 libkabc_xmlrpc.la
lrwxrwxrwx 1 root root     23 Jul  5 03:00 libkabc_xmlrpc.so -> 
libkabc_xmlrpc.so.1.0.0
lrwxrwxrwx 1 root root     23 Jul  5 02:56 libkabc_xmlrpc.so.1 -> 
libkabc_xmlrpc.so.1.0.0
-rwxr-xr-x 1 root root 231568 Nov 27  2007 libkabc_xmlrpc.so.1.0.0

Do you know what libkabc is? An address book. A simple damn address book 
lib. For some reason, handling an address book in KDE requires no less 
than 40 files in /usr/lib. No doubt, there's probably an equivalent in 
GNOME somewhere, and an equivalent for endless other niche purposes.

I'd rather have a platform where there's an agreement among developers 
for the platform as to which libraries are relied upon for a given 
common purpose. Uncommon libraries should be the *exception*, not the 
norm. Thats why i'm digging OSX these days. It's a sane, consolidated, 
consistent, and rational environment in which to develop, versus an 
unstable, loosely organized, inconsistent and arbitrary environment.





Robert Hunter wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Wed, Oct 29, 2008 at 02:49:15PM -0700, Bowie J. Poag wrote:
>   
>> I think you've got it backwards.
>>
>> Debian's policy is to ensure that packages fail the same way for  
>> everyone across the board.
>>
>> Static binaries, kids. Friends don't let friends release code with  
>> f@(#*ng undeclared dependencies on obscure libs in the package that only  
>> the original coder and his damned cat have access to.
>>     
>
> Bowie, I think you may have slipped in the goose poo and hit your
> head.  Either that, or you've been hitting crack pipe. :-P
>
> First of all, properly packaged software will declare all
> dependencies.  Software that resides in the Debian archive must meet
> this requirement, and the dependencies should also be resolvable.  If
> you find an exception to this rule, you've found a bug, and filing a
> report is next step.  On the other hand, if you've found your package
> at some random site on teh intarnets, you may end up eating a few
> kitty hair balls, but don't blame that on the project, silly.
>
> Second of all, if all the binaries were statically linked, the
> memory requirements of an average desktop machine would increase by
> some obscene factor.  What happened to the just-say-no-to-code-bloat
> Bowie we once knew? ;-)
>
> PS.  Congrats on your "Compaqitosh".  I sounds like a sweet rig.
>
>
> - --Rob
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFJCPVfJ1pz6tWxufARAgygAKCEG4ufM9wfgOmqVB/BANuve+hRsgCfXdix
> xBk/UUacy7ef5s1z/MNjves=
> =PNyp
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Tucson Free Unix Group - tfug at tfug.org
> Subscription Options:
> http://www.tfug.org/mailman/listinfo/tfug_tfug.org
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tfug.org/pipermail/tfug_tfug.org/attachments/20081029/fdb25984/attachment-0002.html>


More information about the tfug mailing list