From: lemonnierk@ulrar.net
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: gnu: Have lua-5.1 compile a .so
Date: Thu, 11 Sep 2014 10:12:59 +0200 [thread overview]
Message-ID: <20140911081259.GH31169@luwin.ulrar.net> (raw)
In-Reply-To: <87r3ziwpof.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 4462 bytes --]
Hi,
According to someone on stackoverflow, "The lua team does not include support for
shared libraries by default because doing so in a portable manner is not simple."
http://stackoverflow.com/questions/20848275/compiling-lua-create-so-files
But I believe all distributions have some kind of way of getting that .so.
Here is the patch :
From 81f659884cf02d0d63846b45be5f93d794a9e092 Mon Sep 17 00:00:00 2001
From: Kevin Lemonnier <lemonnierk@ulrar.net>
Date: Thu, 11 Sep 2014 03:12:39 +0200
Subject: [PATCH] gnu: Have lua-5.1 compile a .so
* gnu/packages/patches/lua51-liblua-so.patch: New file
* gnu/packages/lua.scm: Use of lua51-liblua-so.patch in lua-5.1
---
gnu/packages/lua.scm | 3 +-
gnu/packages/patches/lua51-liblua-so.patch | 65 ++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/lua51-liblua-so.patch
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index a85c120..92ffc22 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -75,7 +75,8 @@ for configuration, scripting, and rapid prototyping.")
(uri (string-append "http://www.lua.org/ftp/lua-"
version ".tar.gz"))
(sha256
- (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16"))))))
+ (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16"))
+ (patches (list (search-patch "lua51-liblua-so.patch")))))))
(define-public luajit
(package
diff --git a/gnu/packages/patches/lua51-liblua-so.patch b/gnu/packages/patches/lua51-liblua-so.patch
new file mode 100644
index 0000000..4442858
--- /dev/null
+++ b/gnu/packages/patches/lua51-liblua-so.patch
@@ -0,0 +1,65 @@
+
+Patch the two Makefile to also create liblua.so
+Original patch by Allan McRae <allan@archlinux.org>
+for Archlinux
+
+
+diff -ruN lua-5.1.5/Makefile lua-5.1.5-new/Makefile
+--- lua-5.1.5/Makefile 2012-02-10 10:50:23.000000000 +0100
++++ lua-5.1.5-new/Makefile 2014-09-10 20:17:28.913951433 +0200
+@@ -43,7 +43,7 @@
+ # What to install.
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.a liblua.so liblua.so.${V}
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -53,7 +53,7 @@
+ all: $(PLAT)
+
+ $(PLATS) clean:
+- cd src && $(MAKE) $@
++ cd src && $(MAKE) $@ V=$(V) R=$(R)
+
+ test: dummy
+ src/lua test/hello.lua
+diff -ruN lua-5.1.5/src/Makefile lua-5.1.5-new/src/Makefile
+--- lua-5.1.5/src/Makefile 2012-02-13 21:41:22.000000000 +0100
++++ lua-5.1.5-new/src/Makefile 2014-09-10 20:16:09.982952152 +0200
+@@ -8,7 +8,7 @@
+ PLAT= none
+
+ CC= gcc
+-CFLAGS= -O2 -Wall $(MYCFLAGS)
++CFLAGS= -O2 -Wall $(MYCFLAGS) -fPIC
+ AR= ar rcu
+ RANLIB= ranlib
+ RM= rm -f
+@@ -34,9 +34,10 @@
+
+ LUAC_T= luac
+ LUAC_O= luac.o print.o
++LUA_SO= liblua.so
+
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
+ ALL_A= $(LUA_A)
+
+ default: $(PLAT)
+@@ -57,6 +58,13 @@
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+
++$(LUA_SO): $(CORE_O) $(LIB_O)
++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO)
++
++
++
+ clean:
+ $(RM) $(ALL_T) $(ALL_O)
+
--
1.8.4
On Thu, Sep 11, 2014 at 10:02:08AM +0200, Ludovic Courtès wrote:
> Hello!
>
> lemonnierk@ulrar.net skribis:
>
> > While working on getting weechat to build with the lua plugin enabled,
> > I noticed the lua package doesn't produce a liblua.so file. So here is
> > a patch to make it do so. It's basically the same patch as in ArchLinux,
> > with a few differences like actually installing the .so file.
>
> I think the comments of Eric and Cyril need to be addressed.
>
> Other than that, I’m wondering: is there a reason why upstream Lua
> doesn’t install a shared library by default? Is it because the normal
> way to use it is to include the source in the package that uses it?
>
> IOW, is it OK to diverge from upstream?
>
> If in doubt, it’s probably fine, IMO, but I just wanted to make sure.
>
> Thanks,
> Ludo’.
--
Kevin Lemonnier
PGP Fingerprint : C123 47CA 9E64 FCF0 3907
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-09-11 8:13 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-10 22:31 gnu: Have lua-5.1 compile a .so lemonnierk
2014-09-10 22:42 ` Cyril Roelandt
2014-09-10 23:09 ` Eric Bavier
2014-09-11 8:02 ` Ludovic Courtès
2014-09-11 8:12 ` lemonnierk [this message]
2014-09-11 10:02 ` Ludovic Courtès
2014-09-11 10:12 ` lemonnierk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140911081259.GH31169@luwin.ulrar.net \
--to=lemonnierk@ulrar.net \
--cc=guix-devel@gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.