summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Clemons <andrew.clemons@gmail.com>2017-06-12 16:01:53 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2017-06-15 18:35:54 +0700
commit0a5a84f7dcd3d9feae3819e4a9026ffb723e8843 (patch)
tree19d33001d4db2747ce4a26d6e235aabffa9b51fc
parentcfa0c5034e90ed10ae1a7d07e2053f3be3e37ead (diff)
downloadslackbuilds-0a5a84f7dcd3d9feae3819e4a9026ffb723e8843.tar.gz
libraries/libreadline-java: Build with getline & optional editline.
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
-rw-r--r--libraries/libreadline-java/README3
-rw-r--r--libraries/libreadline-java/clang.patch24
-rw-r--r--libraries/libreadline-java/libreadline-java.SlackBuild28
-rw-r--r--libraries/libreadline-java/patches/8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80.patch50
-rw-r--r--libraries/libreadline-java/patches/8f1e8f8357c48088f72952860ede68f54dc61d8e.patch117
-rw-r--r--libraries/libreadline-java/patches/c87604b44853663b6d101088db8f894aa4cfb6e3.patch25
6 files changed, 216 insertions, 31 deletions
diff --git a/libraries/libreadline-java/README b/libraries/libreadline-java/README
index c17cb90e56..601f1c25b9 100644
--- a/libraries/libreadline-java/README
+++ b/libraries/libreadline-java/README
@@ -1,2 +1,5 @@
Java Readline is a JNI wrapper for the GNU readline or the editline command
line libraries.
+
+libedit is an optional dependency which is auto-detected. If found, editline
+support will be built into the package.
diff --git a/libraries/libreadline-java/clang.patch b/libraries/libreadline-java/clang.patch
deleted file mode 100644
index eb4d18831a..0000000000
--- a/libraries/libreadline-java/clang.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ru libreadline-java-0.8.0.orig/src/native/Makefile libreadline-java-0.8.0/src/native/Makefile
---- libreadline-java-0.8.0.orig/src/native/Makefile 2003-01-07 10:14:35.000000000 +0000
-+++ libreadline-java-0.8.0/src/native/Makefile 2014-01-05 22:00:43.569763351 +0000
-@@ -51,7 +51,7 @@
- ifeq (cygwin,$(WIN32))
- JavaGetline_LIBS = -lcygwin
- endif
--CC = gcc
-+#CC = gcc
- OBJ_EXT := o
- LIB_PRE := lib
- LIB_EXT := so
-diff -ru libreadline-java-0.8.0.orig/src/native/org_gnu_readline_Readline.c libreadline-java-0.8.0/src/native/org_gnu_readline_Readline.c
---- libreadline-java-0.8.0.orig/src/native/org_gnu_readline_Readline.c 2003-01-07 10:14:35.000000000 +0000
-+++ libreadline-java-0.8.0/src/native/org_gnu_readline_Readline.c 2014-01-05 22:10:54.306920519 +0000
-@@ -430,7 +430,7 @@
- jtext = (*jniEnv)->NewStringUTF(jniEnv,text);
-
- if (jniMethodId == 0) {
-- return;
-+ return 0;
- }
-
- completion = (*jniEnv)->CallObjectMethod(jniEnv, jniObject,
diff --git a/libraries/libreadline-java/libreadline-java.SlackBuild b/libraries/libreadline-java/libreadline-java.SlackBuild
index 1d22a3d55b..682e74888d 100644
--- a/libraries/libreadline-java/libreadline-java.SlackBuild
+++ b/libraries/libreadline-java/libreadline-java.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=libreadline-java
VERSION=${VERSION:-0.8.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -64,14 +64,22 @@ tar xvf $CWD/$PRGNAM-$VERSION-src.tar.gz
cd $PRGNAM-$VERSION
# allow building with clang
-patch -p1 < $CWD/clang.patch
+patch -p1 < $CWD/patches/8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80.patch
+sed -i 's/^CC/#CC/' src/native/Makefile
+
+# fix collision with getline(3)
+patch -p1 < $CWD/patches/8f1e8f8357c48088f72952860ede68f54dc61d8e.patch
+
+# fix building against newer libedit
+patch -p1 < $CWD/patches/c87604b44853663b6d101088db8f894aa4cfb6e3.patch
# make build respect our CFLAGS
-sed -i -e "s/-fPIC -DPOSIX/$SLKCFLAGS/" src/native/Makefile
+sed -i -e "s/\(-fPIC -DPOSIX\)/\1 $SLKCFLAGS/" src/native/Makefile
-# allow running on anything >= jdk1.4
-sed -i -e "s/JC_FLAGS =/JC_FLAGS = -target 1.5 -source 1.5/" Makefile
+# allow running on anything >= jdk1.6
+sed -i -e "s/JC_FLAGS =/JC_FLAGS = -target 1.6 -source 1.6/" Makefile
+# fix building docs with JDK8
sed -i -e 's/\(-version -author org.gnu.readline\)/\1 -Xdoclint:none/' Makefile
chown -R root:root .
@@ -81,12 +89,18 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+T_LIBS="JavaReadline JavaGetline"
+
+if pkg-config --exists libedit ; then
+ T_LIBS="$T_LIBS JavaEditline"
+fi
+
for target in jar build-native apidoc ; do
- make "$target"
+ make "$target" T_LIBS="$T_LIBS"
done
install -Dm644 $PRGNAM.jar $PKG/usr/share/java/$PRGNAM.jar
-install -Dm644 libJavaReadline.so $PKG/usr/lib$LIBDIRSUFFIX/libJavaReadline.so
+find . -name '*.so' | xargs -n1 -I xx install -Dm644 xx $PKG/usr/lib$LIBDIRSUFFIX/xx
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
diff --git a/libraries/libreadline-java/patches/8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80.patch b/libraries/libreadline-java/patches/8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80.patch
new file mode 100644
index 0000000000..108e9d95fb
--- /dev/null
+++ b/libraries/libreadline-java/patches/8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80.patch
@@ -0,0 +1,50 @@
+From 8cf1b175458acd54cf2f4c2eee166dd8cdfe5e80 Mon Sep 17 00:00:00 2001
+From: Andrew Clemons <andrew.clemons@gmail.com>
+Date: Sat, 10 Jun 2017 15:38:14 +1200
+Subject: [PATCH] Fix compilation with clang
+
+---
+ src/native/Makefile | 9 ++++-----
+ src/native/org_gnu_readline_Readline.c | 12 ++++++------
+ 2 files changed, 10 insertions(+), 11 deletions(-)
+
+diff --git a/src/native/org_gnu_readline_Readline.c b/src/native/org_gnu_readline_Readline.c
+index 2877a16..1cf8493 100644
+--- a/src/native/org_gnu_readline_Readline.c
++++ b/src/native/org_gnu_readline_Readline.c
+@@ -341,7 +341,7 @@ JNIEXPORT void JNICALL Java_org_gnu_readline_Readline_initReadlineImpl
+ }
+
+ /* -------------------------------------------------------------------------- */
+-/* Reset readline's internal states and terminal.
++/* Reset readline's internal states and terminal. */
+ /* -------------------------------------------------------------------------- */
+
+ #ifndef JavaGetline
+@@ -356,7 +356,7 @@ JNIEXPORT void JNICALL Java_org_gnu_readline_Readline_cleanupReadlineImpl
+
+
+ /* -------------------------------------------------------------------------- */
+-/* Report, if we have a terminal
++/* Report, if we have a terminal */
+ /* -------------------------------------------------------------------------- */
+
+ #ifndef JavaGetline
+@@ -666,7 +666,7 @@ const char *java_completer(char *text, int state) {
+ jtext = (*jniEnv)->NewStringUTF(jniEnv,text);
+
+ if (jniMethodId == 0) {
+- return;
++ return ((const char *) NULL);
+ }
+
+ completion = (*jniEnv)->CallObjectMethod(jniEnv, jniObject,
+@@ -721,7 +721,7 @@ JNIEXPORT void JNICALL Java_org_gnu_readline_Readline_setCompleterImpl
+ #endif
+
+ /* -------------------------------------------------------------------------- */
+-/* Returns rl_line_buffer
++/* Returns rl_line_buffer */
+ /* -------------------------------------------------------------------------- */
+
+ #ifndef JavaGetline
diff --git a/libraries/libreadline-java/patches/8f1e8f8357c48088f72952860ede68f54dc61d8e.patch b/libraries/libreadline-java/patches/8f1e8f8357c48088f72952860ede68f54dc61d8e.patch
new file mode 100644
index 0000000000..a7ff0efdb0
--- /dev/null
+++ b/libraries/libreadline-java/patches/8f1e8f8357c48088f72952860ede68f54dc61d8e.patch
@@ -0,0 +1,117 @@
+From 8f1e8f8357c48088f72952860ede68f54dc61d8e Mon Sep 17 00:00:00 2001
+From: Andrew Clemons <andrew.clemons@gmail.com>
+Date: Sat, 10 Jun 2017 19:28:41 +1200
+Subject: [PATCH] Fix collision with getline(3).
+
+---
+ src/native/getline.c | 16 ++++++++--------
+ src/native/getline.h | 6 +++---
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/native/getline.c b/src/native/getline.c
+index f9b3304..58e26e3 100644
+--- a/src/native/getline.c
++++ b/src/native/getline.c
+@@ -41,7 +41,7 @@ char* rl_readline_name;
+
+ /********************* exported interface ********************************/
+
+-char *getline(); /* read a line of input */
++char *get_line(); /* read a line of input */
+ void gl_setwidth(); /* specify width of screen */
+ void gl_histadd(); /* adds entries to hist */
+ void gl_strwidth(); /* to bind gl_strlen */
+@@ -387,7 +387,7 @@ gl_init()
+ hist_init();
+ }
+ if (isatty(0) == 0 || isatty(1) == 0)
+- gl_error("\n*** Error: getline(): not interactive, use stdio.\n");
++ gl_error("\n*** Error: get_line(): not interactive, use stdio.\n");
+ gl_char_init();
+ gl_init_done = 1;
+ }
+@@ -414,7 +414,7 @@ int w;
+ }
+
+ char *
+-getline(prompt)
++get_line(prompt)
+ char *prompt;
+ {
+ int c, loc, tmp;
+@@ -585,7 +585,7 @@ int c;
+ int i;
+
+ if (gl_cnt >= BUF_SIZE - 1)
+- gl_error("\n*** Error: getline(): input buffer overflow\n");
++ gl_error("\n*** Error: get_line(): input buffer overflow\n");
+ if (gl_overwrite == 0 || gl_pos == gl_cnt) {
+ for (i=gl_cnt; i >= gl_pos; i--)
+ gl_buf[i+1] = gl_buf[i];
+@@ -608,7 +608,7 @@ gl_yank()
+ if (len > 0) {
+ if (gl_overwrite == 0) {
+ if (gl_cnt + len >= BUF_SIZE - 1)
+- gl_error("\n*** Error: getline(): input buffer overflow\n");
++ gl_error("\n*** Error: get_line(): input buffer overflow\n");
+ for (i=gl_cnt; i >= gl_pos; i--)
+ gl_buf[i+len] = gl_buf[i];
+ for (i=0; i < len; i++)
+@@ -617,7 +617,7 @@ gl_yank()
+ } else {
+ if (gl_pos + len > gl_cnt) {
+ if (gl_pos + len >= BUF_SIZE - 1)
+- gl_error("\n*** Error: getline(): input buffer overflow\n");
++ gl_error("\n*** Error: get_line(): input buffer overflow\n");
+ gl_buf[gl_pos + len] = 0;
+ }
+ for (i=0; i < len; i++)
+@@ -657,7 +657,7 @@ gl_newline()
+ int loc = gl_width - 5; /* shifts line back to start position */
+
+ if (gl_cnt >= BUF_SIZE - 1)
+- gl_error("\n*** Error: getline(): input buffer overflow\n");
++ gl_error("\n*** Error: get_line(): input buffer overflow\n");
+ if (gl_out_hook) {
+ change = gl_out_hook(gl_buf);
+ len = strlen(gl_buf);
+@@ -916,7 +916,7 @@ char *buf;
+ char *p = buf;
+ int len;
+
+- /* in case we call gl_histadd() before we call getline() */
++ /* in case we call gl_histadd() before we call get_line() */
+ if (gl_init_done < 0) { /* -1 only on startup */
+ hist_init();
+ gl_init_done = 0;
+diff --git a/src/native/getline.h b/src/native/getline.h
+index a10bb47..e8dc8b2 100644
+--- a/src/native/getline.h
++++ b/src/native/getline.h
+@@ -9,7 +9,7 @@
+
+ extern char* rl_readline_name; /* unused by getline */
+ #define add_history(buffer) gl_histadd(buffer)
+-#define readline(buffer) getline(buffer)
++#define readline(buffer) get_line(buffer)
+ #define clear_history() hist_init()
+ #define using_history() hist_init()
+
+@@ -18,7 +18,7 @@ extern char* rl_readline_name; /* unused by getline */
+
+ typedef size_t (*gl_strwidth_proc)(char *);
+
+-char *getline(char *); /* read a line of input */
++char *get_line(char *); /* read a line of input */
+ void gl_setwidth(int); /* specify width of screen */
+ void gl_histadd(char *); /* adds entries to hist */
+ void gl_strwidth(gl_strwidth_proc); /* to bind gl_strlen */
+@@ -30,7 +30,7 @@ extern int (*gl_tab_hook)(char *, int, int *);
+
+ #else /* not __STDC__ */
+
+-char *getline();
++char *get_line();
+ void gl_setwidth();
+ void gl_histadd();
+ void gl_strwidth();
diff --git a/libraries/libreadline-java/patches/c87604b44853663b6d101088db8f894aa4cfb6e3.patch b/libraries/libreadline-java/patches/c87604b44853663b6d101088db8f894aa4cfb6e3.patch
new file mode 100644
index 0000000000..16acc2cd43
--- /dev/null
+++ b/libraries/libreadline-java/patches/c87604b44853663b6d101088db8f894aa4cfb6e3.patch
@@ -0,0 +1,25 @@
+From c87604b44853663b6d101088db8f894aa4cfb6e3 Mon Sep 17 00:00:00 2001
+From: Andrew Clemons <andrew.clemons@gmail.com>
+Date: Sat, 10 Jun 2017 16:10:00 +1200
+Subject: [PATCH] Fix building against new libedit
+
+---
+ src/native/org_gnu_readline_Readline.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/native/org_gnu_readline_Readline.c b/src/native/org_gnu_readline_Readline.c
+index 1cf8493..edc246c 100644
+--- a/src/native/org_gnu_readline_Readline.c
++++ b/src/native/org_gnu_readline_Readline.c
+@@ -708,11 +708,7 @@ JNIEXPORT void JNICALL Java_org_gnu_readline_Readline_setCompleterImpl
+ rl_completion_entry_function = NULL;
+ return;
+ }
+-#ifdef JavaEditline
+- rl_completion_entry_function = (CPFunction *) java_completer;
+-#else
+ rl_completion_entry_function = (rl_compentry_func_t *) java_completer;
+-#endif
+ }
+ else {
+ rl_completion_entry_function = NULL;