Problem with ProjectRoot and "make DESTDIR=foo"

Mike A. Harris mharris at www.linux.org.uk
Thu Feb 17 02:03:08 PST 2005


I got no replies publically or privately from this.  If anyone
has pointers to documentation that covers this, or knows the
details of how DESTDIR and ProjectRoot interactions are intended
to work, I'd appreciate some feedback.

Thanks in advance.

Mike A. Harris wrote:
> When building X in our rpms, we use the following lines:
> 
> make -C xc DESTDIR=$RPM_BUILD_ROOT install install.man
> make -C xc DESTDIR=$RPM_BUILD_ROOT install.sdk
> 
> Where RPM_BUILD_ROOT gets defined by rpm to a fake root to
> dump the files into prior to packaging.  RPM_BUILD_ROOT on
> my system ends up normally being:
> 
> RPM_BUILD_ROOT=/home/mharris/rpmbuild/tmp/xorg-x11-6.8.1.903-root
> 
> So, the "make .. install" lines above create the installation
> hierarchy underneath RPM_BUILD_ROOT.
> 
> I'm trying to implement developmental/experimental ProjectRoot
> support in my rpm packaging currently, and after the two above
> make install lines execute, the build fails shortly after in
> the rpm script due to directories missing in RPM_BUILD_ROOT.
> 
> I examined the RPM_BUILD_ROOT, and X is still getting installed
> into $RPM_BUILD_ROOT/usr/X11R6 rather than $RPM_BUILD_ROOT/ProjectRoot
> like I expected.  I'm assuming this is due to some misunderstanding
> on my part, as ProjectRoot seems to work if DESTDIR is not used.
> 
> Here are the host.def defines being used to define ProjectRoot:
> 
> #define ProjectRoot                     /usr/local/X11R6
> #define NothingOutsideProjectRoot       YES
> #define EtcX11Directory                 ProjectRoot/etc
> 
> 
> However, I've just tried to do a ProjectRoot build, and after
> the build finishes and the above "make ... install" lines get executed,
> further scripting that tries to install into RPM_BUILD_ROOT into dirs
> that should have been created by "make install", fail unable to find the 
> dirs.  Once I examine the RPM_BUILD_ROOT, directory after the failure, 
> it shows that everything got installed into /usr/X11R6 instead of
> /usr/local/X11R6, making it appear that ProjectRoot is ignored.
> 
> 
> If I'm not mistaken, the last time I used ProjectRoot was with 6.8.0, 
> but outside of rpm building context and it worked ok.  I haven't tested 
> current 6.8.1.903 with a similar build outside of rpm, but I'm assuming 
> nothing has regressed.  My assumption is that DESTDIR does not work 
> exactly how I envisioned it to work, and that my above "make install" 
> lines only worked correctly before because I _wasn't_ using ProjectRoot 
> in the rpm spec file.
> 
> So the question is, when using ProjectRoot, should DESTDIR be installing 
> into ProjectRoot underneath DESTDIR?  If not, how do I get ProjectRoot 
> builds to effectively install themselves into RPM_BUILD_ROOT/ProjectRoot?
> 
> Thanks in advance for any suggestions, etc.
> 
> 
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg




More information about the xorg mailing list