missing context for the patches?

  • From: tcech@xxxxxxx
  • To: Mike Pall <mike-1502@xxxxxxxxxx>
  • Date: Tue, 10 Feb 2015 00:10:04 +0100

Hi,

I'm a bit fighting with the freelist mailing list so I'm not sure if I
gave you context to the patches I sent or not. In case I have, sorry
to bother again.

I'm trying to add Enlightenment Foundation Libraries into Guix and I
found weird problem with LuaJIT which broke the build.

With help of Quaker66 from EFL world I have found that `make install'
phase doesn't create all the necessary symlinks to libluajit-5.1.so.

This is how it looks on Gentoo:
$ ls /usr/lib64/libluajit-5.1.so* -l
lrwxrwxrwx 1 root root     22 10. bře  2014 /usr/lib64/libluajit-5.1.so -> 
libluajit-5.1.so.2.0.2
lrwxrwxrwx 1 root root     22 10. bře  2014 /usr/lib64/libluajit-5.1.so.2 -> 
libluajit-5.1.so.2.0.2
-rwxr-xr-x 1 root root 454024 10. bře  2014 /usr/lib64/libluajit-5.1.so.2.0.2

(it looks like this thanks to patches present in Gentoo)

On Guix none of the symlinks was created. I have found two reasons for that:

1) INSTALL_SHORT1 and INSTALL_SHORT2 has the same value set:

58  INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
59  INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)

so later, in make's install target:

107  install: $(INSTALL_DEP)
108          @echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
109          $(MKDIR) $(INSTALL_DIRS)
110          cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
111          cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) 
$(INSTALL_STATIC) || :
112          $(RM) $(INSTALL_TSYM) $(INSTALL_DYN) $(INSTALL_SHORT1) 
$(INSTALL_SHORT2)
113          cd src && test -f $(FILE_SO) && \
114            $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
115            $(LDCONFIG) $(INSTALL_LIB) && \
116            $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
117            $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :

it tries to create same symlink twice

that is fixed by the first patch
'Provide two symlinks for dynamic library during install'


2) the other problem was caused by missing ldconfig on Guix (there
  makes not much sense)

If you have a look on the expression in install target, in case that
$(LDCONFIG) fails, it will continue thanks to "|| :" on the end.

I assume that symlink creation doesn't depend on ldconfig command
result so I sent second patch
'Do not silently and prematurely end install when ldconfig is missing'

Please, review.

Thanks in advance,

Tomas Cech

Attachment: pgpjJss0xuuBg.pgp
Description: PGP signature

Other related posts:

  • » missing context for the patches? - tcech