|
From: | Richard Stonehouse |
Subject: | Re: install PREFIX during packaging |
Date: | Tue, 13 May 2014 00:16:22 +0100 |
User-agent: | Mutt/1.5.21 (2010-09-15) |
Hi, I'm facing a problem while packaging base (but i start with that, i suppose it will happen with many other packages) When configuring, I specify a certain prefix /xxx/yyy
I'm packaging using RPM, but think the following should be independent of the packaging system used.
The prefix is determined at gnustep-base configure time by the option: --with-installation-domain=(arguments are SYSTEM, LOCAL, NETWORK and USER, which are presumably interpreted in the light of the file system layout specified in the --with-layout= option to gnustep-make configure. You might need to define your own file system layout when you build gnustep-make, e.g. by tweaking one of the existing layouts in the FilesystemLayouts directory to meet your requirements and saving as a new layout.)
I see I'm also specifying GNUSTEP_INSTALLATION_DOMAIN= on the 'make install' for all packages, including gnustep-base, but am not sure it's necessary there.
Then I build the package. Instead of installing direclty, the package wants to install in an directory of its own usage, passed with PREFIX=, I was told this is a standard feature. Currently gnustep-base tries to install directly in its destination directory, which is not allowed (especially because a package gets built as a user and thus cannot install into a system dir)
For this, you need to specify DESTDIR= on the 'make install'. The specified destination directory is prepended to the paths into which things are installed, so you can do the install into a 'staging' directory that you do have access to.
For example, you want to install /usr/bin/fred; you set DESTDIR to /home/myname/mydirectory then the file gets installed into /home/myname/mydirectory/usr/bin/fred. The package is built from an image of the staging directory so your file appears as /usr/bin/fred relative to the package.
DESTDIR differs from PREFIX in that it doesn't affect absolute paths contained in any of the files in the package. You don't want them to have /home/myname/mydirectory prepended to them because then they wouldn't work in the package as finally installed by the package installer.
How can I installa gnustep package in a specific location? I suppose different packaging system might have face a similar scenario. Thanks, Riccardo
-- Richard Stonehouse
[Prev in Thread] | Current Thread | [Next in Thread] |