commit c485eca3ce61bb278c47c291e354098b270bdf67 Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 11:16:14 2019 -0400 Package init diff --git a/Readline-7.0-patch-1.patch b/Readline-7.0-patch-1.patch new file mode 100644 index 0000000..6a35f7f --- /dev/null +++ b/Readline-7.0-patch-1.patch @@ -0,0 +1,46 @@ +From acf3951d483e7b3478db4d731f4a8af99d27327d Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Wed, 16 Nov 2016 12:57:31 -0500 +Subject: [PATCH] Readline-7.0 patch 1 + +--- + history.c | 6 +++++- + patchlevel | 2 +- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/history.c b/history.c +index 3b8dbc5..9ff25a7 100644 +--- a/history.c ++++ b/history.c +@@ -57,6 +57,8 @@ extern int errno; + /* How big to make the_history when we first allocate it. */ + #define DEFAULT_HISTORY_INITIAL_SIZE 502 + ++#define MAX_HISTORY_INITIAL_SIZE 8192 ++ + /* The number of slots to increase the_history by. */ + #define DEFAULT_HISTORY_GROW_SIZE 50 + +@@ -307,7 +309,9 @@ add_history (string) + if (history_size == 0) + { + if (history_stifled && history_max_entries > 0) +- history_size = history_max_entries + 2; ++ history_size = (history_max_entries > MAX_HISTORY_INITIAL_SIZE) ++ ? MAX_HISTORY_INITIAL_SIZE ++ : history_max_entries + 2; + else + history_size = DEFAULT_HISTORY_INITIAL_SIZE; + the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *)); +diff --git a/patchlevel b/patchlevel +index d8c9df7..fdf4740 100644 +--- a/patchlevel ++++ b/patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch + +-0 ++1 +-- +2.9.3 + diff --git a/Readline-7.0-patch-2.patch b/Readline-7.0-patch-2.patch new file mode 100644 index 0000000..5246dda --- /dev/null +++ b/Readline-7.0-patch-2.patch @@ -0,0 +1,77 @@ +From e3f5a97bfa54db0d4e4fe67e406e64f1a58508ea Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Sun, 29 Jan 2017 13:55:34 -0500 +Subject: [PATCH] Readline-7.0 patch 2 + +--- + history.c | 16 +++++++--------- + patchlevel | 2 +- + 2 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/history.c b/history.c +index 9ff25a7..129c57a 100644 +--- a/history.c ++++ b/history.c +@@ -279,6 +279,7 @@ add_history (string) + const char *string; + { + HIST_ENTRY *temp; ++ int new_length; + + if (history_stifled && (history_length == history_max_entries)) + { +@@ -295,13 +296,9 @@ add_history (string) + + /* Copy the rest of the entries, moving down one slot. Copy includes + trailing NULL. */ +-#if 0 +- for (i = 0; i < history_length; i++) +- the_history[i] = the_history[i + 1]; +-#else + memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *)); +-#endif + ++ new_length = history_length; + history_base++; + } + else +@@ -315,7 +312,7 @@ add_history (string) + else + history_size = DEFAULT_HISTORY_INITIAL_SIZE; + the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *)); +- history_length = 1; ++ new_length = 1; + } + else + { +@@ -325,14 +322,15 @@ add_history (string) + the_history = (HIST_ENTRY **) + xrealloc (the_history, history_size * sizeof (HIST_ENTRY *)); + } +- history_length++; ++ new_length = history_length + 1; + } + } + + temp = alloc_history_entry ((char *)string, hist_inittime ()); + +- the_history[history_length] = (HIST_ENTRY *)NULL; +- the_history[history_length - 1] = temp; ++ the_history[new_length] = (HIST_ENTRY *)NULL; ++ the_history[new_length - 1] = temp; ++ history_length = new_length; + } + + /* Change the time stamp of the most recent history entry to STRING. */ +diff --git a/patchlevel b/patchlevel +index fdf4740..7cbda82 100644 +--- a/patchlevel ++++ b/patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch + +-1 ++2 +-- +2.13.6 + diff --git a/Readline-7.0-patch-3.patch b/Readline-7.0-patch-3.patch new file mode 100644 index 0000000..a79536a --- /dev/null +++ b/Readline-7.0-patch-3.patch @@ -0,0 +1,34 @@ +From 6c32f81cd66bbe86218469063690c84205661a5e Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Sun, 29 Jan 2017 13:55:51 -0500 +Subject: [PATCH] Readline-7.0 patch 3 + +--- + input.c | 1 + + patchlevel | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/input.c b/input.c +index 286897d..24126ea 100644 +--- a/input.c ++++ b/input.c +@@ -513,6 +513,7 @@ rl_getc (stream) + result = 0; + #if defined (HAVE_PSELECT) + sigemptyset (&empty_set); ++ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &empty_set); + FD_ZERO (&readfds); + FD_SET (fileno (stream), &readfds); + result = pselect (fileno (stream) + 1, &readfds, NULL, NULL, NULL, &empty_set); +diff --git a/patchlevel b/patchlevel +index 7cbda82..ce3e355 100644 +--- a/patchlevel ++++ b/patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch + +-2 ++3 +-- +2.13.6 + diff --git a/Readline-7.0-patch-4.patch b/Readline-7.0-patch-4.patch new file mode 100644 index 0000000..526d9cf --- /dev/null +++ b/Readline-7.0-patch-4.patch @@ -0,0 +1,37 @@ +From 457e4fbeb977ffe065dc2ba05a0ebc4000b32065 Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Fri, 1 Jun 2018 10:17:06 -0400 +Subject: [PATCH] readline-7.0 patch 4 + +--- + display.c | 4 +++- + patchlevel | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/display.c b/display.c +index 41fb053..2d2e768 100644 +--- a/display.c ++++ b/display.c +@@ -771,7 +771,9 @@ rl_redisplay () + appear in the first and last lines of the prompt */ + wadjust = (newlines == 0) + ? prompt_invis_chars_first_line +- : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line); ++ : ((newlines == prompt_lines_estimate) ++ ? (wrap_offset - prompt_invis_chars_first_line) ++ : 0); + + /* fix from Darin Johnson for prompt string with + invisible characters that is longer than the screen width. The +diff --git a/patchlevel b/patchlevel +index ce3e355..626a945 100644 +--- a/patchlevel ++++ b/patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch + +-3 ++4 +-- +2.14.4 + diff --git a/Readline-7.0-patch-5.patch b/Readline-7.0-patch-5.patch new file mode 100644 index 0000000..e1b225b --- /dev/null +++ b/Readline-7.0-patch-5.patch @@ -0,0 +1,44 @@ +From 57ea39840aebbb34571df1586acc66783b3368d0 Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Fri, 1 Jun 2018 10:17:53 -0400 +Subject: [PATCH] readline-7.0 patch 5 + +--- + patchlevel | 2 +- + readline.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/patchlevel b/patchlevel +index 626a945..e0ba09d 100644 +--- a/patchlevel ++++ b/patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch + +-4 ++5 +diff --git a/readline.c b/readline.c +index e51df4f..a05b35e 100644 +--- a/readline.c ++++ b/readline.c +@@ -1057,7 +1057,7 @@ _rl_subseq_result (r, map, key, got_subseq) + /* We probably shadowed a keymap, so keep going. */ + r = _rl_dispatch (ANYOTHERKEY, m); + } +- else if (r && map[ANYOTHERKEY].function) ++ else if (r < 0 && map[ANYOTHERKEY].function) + { + /* We didn't match (r is probably -1), so return something to + tell the caller that it should try ANYOTHERKEY for an +@@ -1069,7 +1069,7 @@ _rl_subseq_result (r, map, key, got_subseq) + _rl_dispatching_keymap = map; + return -2; + } +- else if (r && got_subseq) ++ else if (r < 0 && got_subseq) /* XXX */ + { + /* OK, back up the chain. */ + if (RL_ISSTATE (RL_STATE_MACROINPUT)) +-- +2.14.4 + diff --git a/readline-7.0-shlib.patch b/readline-7.0-shlib.patch new file mode 100644 index 0000000..52b054b --- /dev/null +++ b/readline-7.0-shlib.patch @@ -0,0 +1,58 @@ +From 5f7f73a57b16ef58769004fe2f4111baf1c81690 Mon Sep 17 00:00:00 2001 +From: Jan Chaloupka +Date: Mon, 21 Jul 2014 13:50:01 +0200 +Subject: [PATCH] shlib + +--- + shlib/Makefile.in | 2 +- + support/shlib-install | 2 +- + support/shobj-conf | 5 +++-- + 3 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/shlib/Makefile.in b/shlib/Makefile.in +index eb16211..3a34840 100644 +--- a/shlib/Makefile.in ++++ b/shlib/Makefile.in +@@ -178,7 +178,7 @@ $(SHARED_READLINE): $(SHARED_OBJ) + + $(SHARED_HISTORY): $(SHARED_HISTOBJ) xmalloc.so xfree.so + $(RM) $@ +- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so $(SHLIB_LIBS) ++ $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so + + # Since tilde.c is shared between readline and bash, make sure we compile + # it with the right flags when it's built as part of readline +diff --git a/support/shlib-install b/support/shlib-install +index cfec3bd..f4eea27 100755 +--- a/support/shlib-install ++++ b/support/shlib-install +@@ -73,7 +73,7 @@ fi + case "$host_os" in + hpux*|darwin*|macosx*|linux*|solaris2*) + if [ -z "$uninstall" ]; then +- chmod 555 ${INSTALLDIR}/${LIBNAME} ++ chmod 755 ${INSTALLDIR}/${LIBNAME} + fi ;; + cygwin*|mingw*) + IMPLIBNAME=`echo ${LIBNAME} \ +diff --git a/support/shobj-conf b/support/shobj-conf +index 1f64433..40827a4 100644 +--- a/support/shobj-conf ++++ b/support/shobj-conf +@@ -126,10 +126,11 @@ sunos5*|solaris2*) + linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' ++ SHOBJ_LDFLAGS='$(CFLAGS) -shared -Wl,-soname,$@' + +- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' ++ SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`' + SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ++ SHLIB_LIBS='-ltinfo' + ;; + + freebsd2*) +-- +1.9.3 + diff --git a/readline-7.0.tar.gz b/readline-7.0.tar.gz new file mode 100644 index 0000000..c46dd68 Binary files /dev/null and b/readline-7.0.tar.gz differ diff --git a/readline.spec b/readline.spec new file mode 100644 index 0000000..8855c8b --- /dev/null +++ b/readline.spec @@ -0,0 +1,87 @@ +Name: readline +Version: 7.0 +Release: 13 +Summary: Readline library for editing typed command lines + +License: GPLv3+ +URL: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html +Source0: http://git.savannah.gnu.org/cgit/readline.git/snapshot/%{name}-%{version}.tar.gz + +Patch1: Readline-7.0-patch-1.patch +Patch2: Readline-7.0-patch-2.patch +Patch3: Readline-7.0-patch-3.patch +Patch4: Readline-7.0-patch-4.patch +Patch5: Readline-7.0-patch-5.patch +Patch6: readline-7.0-shlib.patch + +BuildRequires: gcc gcc-c++ ncurses-devel + +%description +The GNU Readline library provides a set of functions for use by +applications that allow users to edit command lines as they are +typed in. Both Emacs and vi editing modes are available.The Readline +library includes additional functions to maintain a list of +previously-entered command lines, to recall and perhaps reedit those +lines, and perform csh-like history expansion on previous commands. + +%package devel +Summary: Development Header files for readline library +Requires: %{name} = %{version}-%{release} +Requires: ncurses-devel +Provides: %{name}-static +Obsoletes: %{name}-static + +%description devel +The GNU Readline library provides a set of functions for use by +applications that allow users to edit command lines as they are +typed in. + +This package contains Development header files for the readline +library. + +%package help +Summary: Documents for %{name} +Buildarch: noarch +Requires: man info + +%description help +Man pages and other related documents for %{name}. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +export CPPFLAGS="-I%{_includedir}/ncurses" +%configure +%make_build + +%install +%make_install + +%ldconfig_scriptlets + +%files +%doc +%license COPYING USAGE +%{_libdir}/libhistory.so.* +%{_libdir}/libreadline.so.* + +%files devel +%{_includedir}/%{name}/*.h +%{_libdir}/libhistory.so +%{_libdir}/libreadline.so +%{_docdir}/%{name}/* +%{_datadir}/%{name} +%{_libdir}/*.a + +%files help +%{_infodir}/history.info* +%{_infodir}/rluserman.info* +%{_infodir}/readline.info* +%exclude %{_infodir}/dir* +%{_mandir}/man3/*.3.gz + + +%changelog +* Thu Aug 22 2019 openEuler Buildteam - 7.0-13 +- Package init