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: