[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#280880: gcc-3.4: Please add missing symlinks in 'libgnat-3.4'



Thank you for your reply to my bug report.

On 04-Nov-12 17:14, Ludovic Brenta wrote:
> The symbolic link should not be part of package `libgnat-3.4', because
> `libgnat-3.4' is a runtime-only package (used by end users) and the
> symbolic link is only used at link time (by developers).  The proper
> package for the symbolic links is `gnat-3.4', as mandated by the
> Debian Policy and, as of 3.4.2-2, the package `gnat-3.4' does provide
> the following symbolic links:
> 
> /usr/lib/gcc/i486-linux/3.4.2/adalib/libgnarl-3.4.so
>     -> ../../../../libgnarl-3.4.so.1
> /usr/lib/gcc/i486-linux/3.4.2/adalib/libgnarl.so
>     -> ../../../../libgnarl-3.4.so.1
> /usr/lib/gcc/i486-linux/3.4.2/adalib/libgnat-3.4.so
>     -> ../../../../libgnat-3.4.so.1
> /usr/lib/gcc/i486-linux/3.4.2/adalib/libgnat.so
>     -> ../../../../libgnat-3.4.so.1

Many of the Ada packages (e.g. 'asis', 'libopentoken', 'libtexttools'
and others) have a hardcoded library search path

-L/usr/lib/gcc-lib/`gcc -dumpmachine`/`gnat -dumpversion`/adalib

in 'debian/rules'. This looks very ugly in itself and I do not 
understand why this should be necessary. With the symlinks in 
'/usr/lib' this would not be necessary.

Moreover, the hardcoded path fails when using gnat-3.4, because
the 'gcc-lib' part of that path has to be replaced with 'gcc' for 
gnat-3.4.

> I am closing this bug because the problem is not in the packages; it
> is elsewhere and maybe I can help you solve it.  Could you provide
> some details about the "many Ada packages" that FTBFS?  I maintain
> most Ada packages in Debian and I know for a fact that they build
> (with gnat, not gnat-3.4, as per my Debian Policy for Ada).  Have you
> got gnat-3.4 installed?

I have compiled most of the Ada packages for the amd64/gcc-3.4 port 
where only gnat-3.4 is available. 'gnat' does not build at all on amd64.

Unfortunately most Ada packages have to be patched to build with 
gnat-3.4 because of the missing symlinks.

I still cannot see why it would be wrong to install the symlinks
in /usr/lib. To use the hardcoded library path just to access these
symlinks is definitely very ugly.

You are right, of course, that the symlinks belong in the 'gnat-3.4' 
package and not in 'libgnat-3.4'. I have attached an amended patch
which corrects this. 

Please reconsider to put the symlinks in '/usr/lib' where they can be 
found without any ugly hardcoded library path option.

Regards
Andreas Jochens

diff -urN ../tmp-orig/gcc-3.4-3.4.2/debian/rules.d/binary-ada.mk ./debian/rules.d/binary-ada.mk
--- ../tmp-orig/gcc-3.4-3.4.2/debian/rules.d/binary-ada.mk	2004-11-12 19:10:39.492809448 +0000
+++ ./debian/rules.d/binary-ada.mk	2004-11-12 19:10:33.339744856 +0000
@@ -108,8 +108,8 @@
 	for lib in lib{gnat,gnarl}; do \
 	  vlib=$$lib-$(GNAT_VERSION); \
 	  dh_link -p$(p_gnat) \
-	    /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$vlib.so \
-	    /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$lib.so; \
+	    /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$vlib.so \
+	    /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$lib.so; \
 	done
 endif
 



Reply to: