[Openvas-distro] openvas-libraries: DESTDIR missing

Javier Fernández-Sanguino Peña jfs at computer.org
Wed Apr 16 16:09:50 CEST 2008


On Wed, Apr 16, 2008 at 06:53:11AM -0700, Tim Brown wrote:
> On Wed, 16 Apr 2008, Javier Fernández-Sanguino Peña wrote:
>
>> On Wed, Apr 16, 2008 at 06:51:04AM +0100, Tim Brown wrote:
>>> On Tuesday 15 April 2008 14:09:39 Jan-Oliver Wagner wrote:
>>>> Hi,
>>>>
>>>> I was just working on a RPM package for openvas-libraries and
>>>> stumbled across missing DESTDIR use in some Makefiles of
>>>> this module.
>>>>
>>>> Guess this will hurt the Debian packages as well. Tim?
>>>>
>>>> We use DESTDIR consistently only for openvas-client so far.
>>>> Should we patch all other modules to use it as well?
>>>
>>> The Debian packaging scripts reset prefix during the make install like so:
>>>
>>> $(MAKE) install prefix=$(tmp)/usr
>>
>> This is not correct. The 'prefix' definition gets hardcoded in the built
>> binaries.
>
> From nessus-libraries-2.2.10/debian/rules:
>
> <snip>
> install: build-stamp
>         dh_testdir
>         dh_testroot
>         dh_clean -k
>         $(MAKE) install prefix=$(tmp)/usr
> </snip>
>
> The prefix value at build time will be embedded, it's overridden during  
> install.

That doesn't work. Try it, it will not install the files properly, it broke
in my system.

> I don't disagree, but the nessus build files are pretty awful and the  
> Debian packages spend a lot of time working around this.  It's not a  

I don't agree with your point of view.

> simple example of an autoconf based project IMO.  The server component is 
> even better with direct calls to the BSD install script in the rules 
> file. IIRC it doesn't even attempt to use the make based install routine. 

? You don't seem to understand the install target of the nessus-core package.
The calls to the install script are perfectly legitimate in a debian/rules
script and are there to install files that the nessus' Makefile does not
install itself.

The only calls to 'install' there are these:

     65         install -m 640 debian/nessusd.conf $(nesd)/etc/nessus/
     66         rm -f $(nesd)/var/lib/nessus/nessus-services 
     67         ( cd $(nesd)/var/lib/nessus/ && \
     68           ln -s /etc/nessus/nessus-services )
     69         install -m 640 nessus-services $(nesd)/etc/nessus/
     70         install -m 644 debian/nessus.xpm $(nes)/usr/share/pixmaps
     71         install -m 644 debian/nessus.desktop $(nes)/usr/share/applications

Line 65 is there to install the nessusd configuration file that Nessus does
not install (nor provide). Actually, the Nessus server generates one when it
runs, which makes it difficult for the admin to track changes. The package
provides one, and installs it as default.


lines 66 to 69 are there to install the nessus-service file in /etc, since
Nessus insists on putting it under /var/lib. In order to not patch the Nessus
sources (which is not that maintainable) or its makefiles, the installed file
is removed, symlinked to /etc and the file is installed in /etc

Lines 70 to 71 are there to install Debian-specific files in the proper
directories to register the GUI.

Once again, calls to 'install' for Debian-specific changes in the rules file
are perfectly legitimate.

Regards

Javier
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.wald.intevation.org/pipermail/openvas-distro/attachments/20080416/929d6ceb/attachment-0001.pgp


More information about the Openvas-distro mailing list