Re: PKGNAME for install

Bram Moolenaar <[email protected]>
Newsgroups gmane.comp.tools.aap.devel
Message-ID <[email protected]>
Adriaan de Groot wrote:

> AAP enforces that PKGNAME needs to be set in order to install data.
> Why? Not every application follows the orderly
> /usr/local/share/<pkgname>/ idiom - KDE, for one, dumps everything in
> (16) directories right under /usr/local/share.

That probably explains why I had so much trouble upgrading KDE...  These
days I only do it while at the same time upgrading the whole system.

> I suppose that goes against hier(7) in FreeBSD, but that 
> isn't really important. What _is_ important, is that every KDE application 
> (just like every GNOME application, I might add) expects to install
> data into the kde share (/usr/local/share) or the gnome share
> (/usr/local/share/gnome) .. doing that right for gnome requires all
> gnome apps to set PKGDIR to gnome, which seems somewhat bogus.

I think that what you want to say is that the package name is used at a
lower level.  A KDE application doesn't dump its data files into the
same directory as other applications, right?  That would become a real
mess.

If there are files shared with other applications you can't use
INSTALL_DATA and must write your own install commands.  This is often
difficult, since you must handle versions properly (otherwise you get
the equivalent of the "DLL hell" on MS-Windows).

You might argue that this isn't easy.  Well, then use $PKGNAME, that's
why it was supposed to be used.

> For KDE things, there's really no way to tell AAP that you definitely
> want to install data in directories based directly off of 
> $PREFIX and not in $PREFIX/$PKGNAME.

Doesn't it work when setting PKGNAME to "./"?

> The attached patch aap-pkgname.diff adds a special case for PKGNAME ==
> ".". Of course, if you use this, then it's essential that you use the
> {keepdir} attribute of data files, so that they end up in the right
> places and not straight in $PREFIX.

What goes wrong without this code?  I would think files are installed in
the "." directory, which would work.

> [As an aside, Python's os.makedirs() has a bug if you pass it weird
> paths like /usr/local/share/., since it tries to create . as well, and
> fails.]

Did you report that to the Python bug tracking system?  We need to work
around it anyway, since Aap should work with Python 1.5 and later.

-- 
hundred-and-one symptoms of being an internet addict:
154. You fondle your mouse.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///          Creator of Vim - Vi IMproved -- http://www.Vim.org          \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
 \\\  Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html  ///


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.