# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package # 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://ftp.gnu.org/gnu/readline/readline-${BPM_PKG_VERSION%.*}.tar.gz" DOWNLOAD_PATCH_BASE="https://ftp.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 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" done # Apply local patches patch -Np2 < "$BPM_WORKDIR"/8.3.0-display-null-prompt.patch autoconf -fiv } # The build function is executed in the source directory # This function is used to compile the source code build() { ./configure --prefix=/usr \ --disable-static \ --with-curses \ --docdir=/usr/share/doc/readline make SHLIB_LIBS="-lncursesw" } # The check function is executed in the source directory # This function is used to run tests to verify the package has been compiled correctly check() { make check } # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package() { make SHLIB_LIBS="-lncursesw" DESTDIR="$BPM_OUTPUT" install # Install documentation install -d "$BPM_OUTPUT"/usr/share/doc/readline install -m644 doc/*.{ps,pdf,html,dvi} "$BPM_OUTPUT"/usr/share/doc/ # Install package license install -Dm644 COPYING "$BPM_OUTPUT"/usr/share/licenses/readline/COPYING }