unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: luajit: install symlinks for libluajit library
@ 2015-02-03  0:08 Tomáš Čech
  2015-02-03 21:03 ` Ludovic Courtès
  0 siblings, 1 reply; 2+ messages in thread
From: Tomáš Čech @ 2015-02-03  0:08 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/lua.scm (luajit): don't require ldconfig - add "LDCONFIG=true"
  to make command line, add luajit-2.0.3-symlink.patch so both symlinks are created
* gnu/packages/patches/luajit-2.0.3-symlink.patch: New file
* gnu-system.am (dist_patch_DATA): Adjust accordingly.

Install phase of luajit contained:

ldconfig /gnu/store/…-luajit-2.0.3/lib && \
ln -sf libluajit-5.1.so.2.0.3 /gnu/store/…-luajit-2.0.3/lib/libluajit-5.1.so && \
ln -sf libluajit-5.1.so.2.0.3 /gnu/store/…-luajit-2.0.3/lib/libluajit-5.1.so || :

1) When ldconfig is missing, symlinks are not created but whole expression
   returns no error. This cause linker not to find proper library when
   building package against luajit and libluajit-5.1.a is used instead. With
   'LDCONFIG=true' it ommits the problem.

2) same symlink is created twice, luajit-2.0.3-symlink.patch fixes that.
---
 gnu-system.am                                   |  1 +
 gnu/packages/lua.scm                            |  7 +++++--
 gnu/packages/patches/luajit-2.0.3-symlink.patch | 12 ++++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/luajit-2.0.3-symlink.patch

diff --git a/gnu-system.am b/gnu-system.am
index 706ad57..45f03fe 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -421,6 +421,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/libssh-CVE-2014-0017.patch		\
   gnu/packages/patches/lm-sensors-hwmon-attrs.patch		\
   gnu/packages/patches/lua51-liblua-so.patch                    \
+  gnu/packages/patches/luajit-2.0.3-symlink.patch               \
   gnu/packages/patches/luit-posix.patch				\
   gnu/packages/patches/m4-gets-undeclared.patch			\
   gnu/packages/patches/make-impure-dirs.patch			\
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index eda69f9..8379419 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -87,12 +87,15 @@ for configuration, scripting, and rapid prototyping.")
               (uri (string-append "http://luajit.org/download/LuaJIT-"
                                   version ".tar.gz"))
               (sha256
-               (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm"))))
+               (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm"))
+              (patches (list (search-patch "luajit-2.0.3-symlink.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ;luajit is distributed without tests
        #:phases (alist-delete 'configure %standard-phases)
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+       ; poorly formulated expression doesn't create symlinks for dynamic library on ldconfig failure
+       ; ldconfig is useless anyway so success always with `true'
+       #:make-flags (list "LDCONFIG=true" (string-append "PREFIX=" (assoc-ref %outputs "out")))))
     (home-page "http://www.luajit.org/")
     (synopsis "Just in time compiler for Lua programming language version 5.1")
     (description
diff --git a/gnu/packages/patches/luajit-2.0.3-symlink.patch b/gnu/packages/patches/luajit-2.0.3-symlink.patch
new file mode 100644
index 0000000..c6b4eec
--- /dev/null
+++ b/gnu/packages/patches/luajit-2.0.3-symlink.patch
@@ -0,0 +1,12 @@
+diff -up LuaJIT-2.0.3/Makefile.orig LuaJIT-2.0.3/Makefile
+--- LuaJIT-2.0.3/Makefile.orig	2014-03-12 13:10:00.000000000 +0100
++++ LuaJIT-2.0.3/Makefile	2015-02-02 23:52:30.774723789 +0100
+@@ -56,7 +56,7 @@ INSTALL_PCNAME= luajit.pc
+ INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
+ INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
+ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+-INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
++INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER)
+ INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
+ INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
+ INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
-- 
2.0.5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] gnu: luajit: install symlinks for libluajit library
  2015-02-03  0:08 [PATCH] gnu: luajit: install symlinks for libluajit library Tomáš Čech
@ 2015-02-03 21:03 ` Ludovic Courtès
  0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2015-02-03 21:03 UTC (permalink / raw)
  To: Tomáš Čech; +Cc: guix-devel

Tomáš Čech <sleep_walker@suse.cz> skribis:

> * gnu/packages/lua.scm (luajit): don't require ldconfig - add "LDCONFIG=true"
>   to make command line, add luajit-2.0.3-symlink.patch so both symlinks are created
> * gnu/packages/patches/luajit-2.0.3-symlink.patch: New file
> * gnu-system.am (dist_patch_DATA): Adjust accordingly.
>
> Install phase of luajit contained:
>
> ldconfig /gnu/store/…-luajit-2.0.3/lib && \
> ln -sf libluajit-5.1.so.2.0.3 /gnu/store/…-luajit-2.0.3/lib/libluajit-5.1.so && \
> ln -sf libluajit-5.1.so.2.0.3 /gnu/store/…-luajit-2.0.3/lib/libluajit-5.1.so || :
>
> 1) When ldconfig is missing, symlinks are not created but whole expression
>    returns no error. This cause linker not to find proper library when
>    building package against luajit and libluajit-5.1.a is used instead. With
>    'LDCONFIG=true' it ommits the problem.
>
> 2) same symlink is created twice, luajit-2.0.3-symlink.patch fixes that.

Good catch, thanks for investigating!

>      (arguments
>       '(#:tests? #f                      ;luajit is distributed without tests
>         #:phases (alist-delete 'configure %standard-phases)
> -       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
> +       ; poorly formulated expression doesn't create symlinks for dynamic library on ldconfig failure
> +       ; ldconfig is useless anyway so success always with `true'
> +       #:make-flags (list "LDCONFIG=true" (string-append "PREFIX=" (assoc-ref %outputs "out")))))

Some nitpicking: please use double-colon for block comments, capitalize
sentences, add periods at the end of sentences, and wrap lines to 80
chars.

s/poorly formulated expression/The Makefile/

And perhaps add something like: “Set LDCONFIG=true to work around it.”,
to make it clear what the solution is and how it relates to the problem.

> diff --git a/gnu/packages/patches/luajit-2.0.3-symlink.patch b/gnu/packages/patches/luajit-2.0.3-symlink.patch
> new file mode 100644
> index 0000000..c6b4eec
> --- /dev/null
> +++ b/gnu/packages/patches/luajit-2.0.3-symlink.patch
> @@ -0,0 +1,12 @@
> +diff -up LuaJIT-2.0.3/Makefile.orig LuaJIT-2.0.3/Makefile
> +--- LuaJIT-2.0.3/Makefile.orig	2014-03-12 13:10:00.000000000 +0100
> ++++ LuaJIT-2.0.3/Makefile	2015-02-02 23:52:30.774723789 +0100
> +@@ -56,7 +56,7 @@ INSTALL_PCNAME= luajit.pc
> + INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
> + INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
> + INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
> +-INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
> ++INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER)

Please add a comment above the hunk explaining what the patch does, why,
and what its upstream status is.

Could you send an updated patch?

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-02-03 21:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-03  0:08 [PATCH] gnu: luajit: install symlinks for libluajit library Tomáš Čech
2015-02-03 21:03 ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).