Need EASY for END-USER install of source code
Need EASY for END-USER install of source code
Posted Aug 8, 2009 14:45 UTC (Sat) by dwheeler (guest, #1216)In reply to: Ubuntu's multisearch surprise by drag
Parent article: Ubuntu's multisearch surprise
I agree in principle that a source code install should work with the package manager (so that you can easily remove it later, upgrade, know what you're getting, etc.). And behind-the-scenes, the list of operations seems reasonable in principle.
But what is needed is a trivial point-and-click interface that auto-configures, makes, and installs (working with the distro package manager). One that works well enough automatically so that people don't NEED to read the README file to install it the "usual" way. If developers would simply follow the standard conventions for source distribution, this would work well; it'd be even easier with software that would automate DESTDIR (I intend to release software soon to do the latter). That wouldn't solve all the problems (in particular, there need to be conventions so that dependencies are downloaded and installed), but that would help.
Posted Aug 8, 2009 17:39 UTC (Sat)
by nix (subscriber, #2304)
[Link] (3 responses)
One point though. You said:
Posted Aug 9, 2009 1:35 UTC (Sun)
by dwheeler (guest, #1216)
[Link] (2 responses)
Nice paper.
Thanks.
You forgot the horror which is libtool. That runs the compiler at install time to do a link, so you have to wrap the linker! You may get away without wrapping it if it turns out that it always asks the compiler to put things in the srcdir, and then uses 'install' to move them out.
Ah, libtool.
Well, I'm definitely aware of libtool; I wrote the
Program Library HOWTO, after all.
But from what I've seen, someone who uses libtool will typically support DESTDIR as well (I speculate that if you're a libtool user, you're probably more interested in portability and thus more likely to support DESTDIR).
And even if that's not true, my current approach can accommodate it anyway.
I've ended up deciding that to automate DESTDIR, it's best to simply create "wrappers" of the same name and put their location at the front of the PATH. It seems hackish, but it has absolutely NO security issues, and it runs really quickly. Which means that it is more likely to actually be ACCEPTABLE to distros and users. I haven't tried to wrap libtool (yet), but I think that should work well if it turns out to be necessary. I've already wrapped cp, ln, and so on, and tried them out on several test programs without problems.
Posted Aug 9, 2009 10:26 UTC (Sun)
by nix (subscriber, #2304)
[Link]
Posted Aug 17, 2009 18:25 UTC (Mon)
by dwheeler (guest, #1216)
[Link]
By the way, my "Auto-DESTDIR" program has now been released at
http://www.dwheeler.com/auto-destdir - it supports DESTDIR in source installs, even when the original makefile doesn't support DESTDIR. One you have Auto-DESTDIR install, just run make-redir instead of make when you do an install. I.E., use "DESTDIR=... make-redir install" instead of "make install".
Posted Aug 9, 2009 14:07 UTC (Sun)
by Cyberax (✭ supporter ✭, #52523)
[Link]
In short, you need a PACKAGE system. So back to square 1.
Nice paper.
Need EASY for END-USER install of source code
n most software, the "make install" command only uses a few simple
commands to actually install the software. In my experience, the most
common command by far is "install", which is hardly surprising. Other
common commands used in "make install" that might need redirecting from
privileged directories (like /bin, /usr, and /etc) include cp, mkdir, ln,
mv, touch, chmod, chown, ls, rm, and rmdir.
You forgot the horror which is libtool. That runs the compiler at
install time to do a link, so you have to wrap the linker! You may
get away without wrapping it if it turns out that it always asks the
compiler to put things in the srcdir, and then uses 'install' to move them
out.
Need EASY for END-USER install of source code
Need EASY for END-USER install of source code
But from what I've seen, someone who uses libtool will typically support
DESTDIR as well (I speculate that if you're a libtool user, you're
probably more interested in portability and thus more likely to support
DESTDIR).
True. A quick audit here shows few examples: APR/apr-util/apache are the
primary ones, but we know they're seriously weird to the point of not
supporting biarch building without ugly hacks (and they have INSTALL_ROOT
which you can use instead). (I mean, keeping around a copy of libtool from
your configure process and reusing it in other projects? Ew.)
Auto-DESTDIR released
Need EASY for END-USER install of source code
