diff --git a/pkg.info b/pkg.info index d7bf974..81fb75b 100644 --- a/pkg.info +++ b/pkg.info @@ -1,8 +1,24 @@ name: readline description: GNU readline library -version: 8.3.1 +version: 8.3.3 +revision: 1 url: https://tiswww.case.edu/php/chet/readline/rltop.html -license: GPL3-only +license: GPL3-or-later architecture: any -depends: ["glibc","ncurses"] type: source +keep: + - etc/inputrc +depends: + - glibc + - ncurses +downloads: + - url: https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}.tar.gz + extract_to: ${BPM_SOURCE} + extract_strip_components: 1 + checksum: fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc + - url: https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}-patches/readline83-001 + checksum: 21f0a03106dbe697337cd25c70eb0edbaa2bdb6d595b45f83285cdd35bac84de + - url: https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}-patches/readline83-002 + checksum: e27364396ba9f6debf7cbaaf1a669e2b2854241ae07f7eca74ca8a8ba0c97472 + - url: https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}-patches/readline83-003 + checksum: 72dee13601ce38f6746eb15239999a7c56f8e1ff5eb1ec8153a1f213e4acdb29 diff --git a/source-files/8.3.0-display-null-prompt.patch b/source-files/8.3.0-display-null-prompt.patch deleted file mode 100644 index 6566539..0000000 --- a/source-files/8.3.0-display-null-prompt.patch +++ /dev/null @@ -1,15 +0,0 @@ -*** ../readline-8.3/display.c Fri May 2 09:20:32 2025 ---- display.c Sun Jul 6 17:16:28 2025 -*************** -*** 784,788 **** - /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */ - #define INVIS_FIRST() (local_prompt_invis_chars[0]) -! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line) ? local_prompt_invis_chars[line] : 0) - - #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) ---- 784,788 ---- - /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */ - #define INVIS_FIRST() (local_prompt_invis_chars[0]) -! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line && local_prompt_invis_chars) ? local_prompt_invis_chars[line] : 0) - - #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) diff --git a/source-files/inputrc b/source-files/inputrc new file mode 100644 index 0000000..fd13a67 --- /dev/null +++ b/source-files/inputrc @@ -0,0 +1,36 @@ +# do not bell on tab-completion +#set bell-style none + +set meta-flag on +set input-meta on +set convert-meta off +set output-meta on + +$if mode=emacs + +# for linux console and RH/Debian xterm +"\e[1~": beginning-of-line +"\e[4~": end-of-line +"\e[5~": beginning-of-history +"\e[6~": end-of-history +"\e[7~": beginning-of-line +"\e[3~": delete-char +"\e[2~": quoted-insert +"\e[5C": forward-word +"\e[5D": backward-word +"\e\e[C": forward-word +"\e\e[D": backward-word +"\e[1;5C": forward-word +"\e[1;5D": backward-word + +# for rxvt +"\e[8~": end-of-line + +# for non RH/Debian xterm, can't hurt for RH/DEbian xterm +"\eOH": beginning-of-line +"\eOF": end-of-line + +# for freebsd console +"\e[H": beginning-of-line +"\e[F": end-of-line +$endif diff --git a/source.sh b/source.sh index e441cdd..ef59840 100644 --- a/source.sh +++ b/source.sh @@ -2,27 +2,17 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT -DOWNLOAD="https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}.tar.gz" -DOWNLOAD_PATCH_BASE="https://ftpmirror.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}-patches/readline$(echo ${BPM_PKG_VERSION%.*} | tr -d '.')" -FILENAME="${DOWNLOAD##*/}" - # The prepare function is executed in the root of the temp directory -# This function is used for downloading files and putting them into the correct location +# This function is used for putting downloaded files to the correct location or applying patches prepare() { - wget "$DOWNLOAD" - tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" - - # Download and apply official patches cd "$BPM_SOURCE" - for patch in $(seq "${BPM_PKG_VERSION##*.}"); do - wget -O "${patch}.patch" "${DOWNLOAD_PATCH_BASE}-$(printf '%03d' ${patch})" - patch -Np0 -i "${patch}.patch" + # Apply official patches + for _patch in "$BPM_WORKDIR"/readline83-*; do + patch -Np0 -i "$_patch" done - # Apply local patches - patch -Np2 < "$BPM_WORKDIR"/8.3.0-display-null-prompt.patch - - autoconf -fiv + # remove RPATH from shared objects + sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf } # The build function is executed in the source directory @@ -46,6 +36,9 @@ check() { package() { make SHLIB_LIBS="-lncursesw" DESTDIR="$BPM_OUTPUT" install + # Install inputrc file from arch linux + install -Dm644 "$BPM_WORKDIR"/inputrc "$BPM_OUTPUT"/etc/inputrc + # Install documentation install -d "$BPM_OUTPUT"/usr/share/doc/readline install -m644 doc/*.{ps,pdf,html,dvi} "$BPM_OUTPUT"/usr/share/doc/