recipes: libs/readline: upgraded to version 8.0
[dragora.git] / recipes / libs / readline / recipe
blob7ffb0583a7774b4e9c3434f220f0090e76991908
1 # Build recipe for readline.
3 # Copyright (c) 2016-2019 Matias Fonzo, <selk@dragora.org>.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 #    http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 program=readline
18 version=8.0
19 release=1
21 # Set 'outdir' for a nice and well-organized output directory
22 outdir="${outdir}/${arch}/libs"
24 tarname=${program}-${version}.tar.gz
26 # Remote source(s)
27 fetch=ftp://ftp.gnu.org/gnu/readline/$tarname
29 description="
30 A library with line-editing capabilities.
32 GNU readline is a software library created and maintained by the
33 GNU Project.  It is licensed under the GPL, and used in projects
34 such as GNU bash.  It provides line-editing capabilities.
37 homepage=http://www.gnu.org/software/readline
38 license=GPLv3+
40 # Source documentation
41 docs="CHANGELOG CHANGES COPYING NEWS README USAGE"
42 docsdir="${docdir}/${program}-${version}"
44 build()
46     set -e
48     unpack "${tardir}/$tarname"
50     cd "$srcdir"
52     # Set sane permissions
53     chmod -R u+w,go-w,a+rX-s .
55     # Apply patches from upstream
56     for file in "${worktree}"/patches/readline/readline80-???*
57     do
58         if test -f "$file"
59         then
60             patch -Np0 -i "$file"
61         fi
62     done
64     # Reinstalling Readline will cause the old libraries to be moved to
65     # <libraryname>.old, this avoid printing a harmful message about
66     # the static libraries (thanks to LFS)
67     sed -i '/MV.*old/d' Makefile.in
68     sed -i '/{OLDSUFF}/c:' support/shlib-install
70     ./configure CFLAGS="$QICFLAGS" LDFLAGS="$QILDFLAGS" \
71      $configure_args \
72      --libdir=/usr/lib${libSuffix} \
73      --infodir=$infodir \
74      --mandir=$mandir \
75      --docdir=$docsdir \
76      --enable-multibyte \
77      --enable-static \
78      --enable-shared \
79      --build="$(cc -dumpmachine)"
81     make -j${jobs} V=1 SHLIB_LIBS='-lncursesw'
82     make -j${jobs} DESTDIR="$destdir" install
84     # Copy custom inputrc file
85     mkdir -p "${destdir}/etc"
86     cp -p "${worktree}/archive/readline/etc/inputrc" "${destdir}/etc/"
87     chmod 644 "${destdir}/etc/inputrc"
89     touch "${destdir}/etc/.graft-config"
91     # Compress info documents deleting index file for the package
92     if test -d "${destdir}/$infodir"
93     then
94         rm -f "${destdir}/${infodir}/dir"
95         lzip -9 "${destdir}/${infodir}"/*
96     fi
98     # Compress and link man pages (if needed)
99     if test -d "${destdir}/$mandir"
100     then
101         (
102             cd "${destdir}/$mandir"
103             find . -type f -exec lzip -9 '{}' +
104             find . -type l | while read -r file
105             do
106                 ln -sf "$(readlink -- "$file").lz" "${file}.lz"
107                 rm -- "$file"
108             done
109         )
110     fi
112     # Copy documentation
113     mkdir -p "${destdir}${docsdir}"
115     for file in $docs
116     do
117         cp -p $file "${destdir}${docsdir}"
118     done