From 97049b0674e119c6e6419c131e42ff6ca1302615 Mon Sep 17 00:00:00 2001 From: Charadon Date: Jan 04 2023 20:38:22 +0000 Subject: Added grep --- diff --git a/.gitignore b/.gitignore index f0cda43..9edbdf0 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ less-*/ *.stackdump 7zr.exe gawk-*/ +grep-*/ diff --git a/sh2exe.sh b/sh2exe.sh index 1ab941f..b28313d 100644 --- a/sh2exe.sh +++ b/sh2exe.sh @@ -66,6 +66,8 @@ LESS_SHA512SUM="7945b7f88921832ebb1b45fba8cbb449ee0133342796b654a52c146dfff3d84d LESS_VERSION="608" GAWK_SHA512SUM="1d2aaf90bd074379e13dce65b53e80d449c383ff1f2862bb294644b2053383c19172d3b68bfd9caad82ccd11bea1baf627994280e845da9fdd0e773a000cfe40 *gawk-5.2.1.tar.gz" GAWK_VERSION="5.2.1" +GREP_SHA512SUM="69cf162886770c4ff86f869f78d8a7e291480f576a92f2afa87c42290c7d34c4ca5cf52e47d10c8e310eadd605d209a2701dc714b651d122be9eca1e73130409 *grep-3.8.tar.gz" +GREP_VERSION="3.8" # Speed up compilation times. # Doesn't work: https://github.com/msys2/MSYS2-packages/issues/2492 @@ -80,9 +82,11 @@ if [ "$1" = "clean" ]; then echo "Cleaning... " rm -rvf "$WORKDIR" || true - rm -rvf "coreutils-$COREUTILS_VERSION/" || true - rm -rvf "oksh-$OKSH_VERSION/" || true - rm -rvf "nano-$NANO_VERSION/" || true + rm -rvf "coreutils-*/" || true + rm -rvf "oksh-*/" || true + rm -rvf "nano-*/" || true + rm -rvf "gawk-*/" || true + rm -rvf "grep-*/" || true rm -f ./*.tar.?z || true rm -f ./*.7z || true rm -f 7zip.h || true @@ -233,6 +237,31 @@ build_gawk() { return 0 } +build_grep() { + curl "https://ftp.gnu.org/gnu/grep/grep-$GREP_VERSION.tar.gz" -O + if [ ! "$(sha512sum grep-$GREP_VERSION.tar.gz)" = "$GREP_SHA512SUM" ]; + then + echo "Checksum mismatch for Grep" + exit 2 + fi + if [ -f grep-$GREP_VERSION/DONE ]; + then + cd "grep-$GREP_VERSION" || exit 5 + make DESTDIR="$WORKDIR" install + cd "$STARTING_DIR" || exit 5 + return 0 + fi + tar -xvf "grep-$GREP_VERSION.tar.gz" + cd "grep-$GREP_VERSION" || exit 5 + make clean || true + ./configure --prefix=/usr + make -j "$(nproc)" + make DESTDIR="$WORKDIR" install + touch DONE + cd "$STARTING_DIR" || exit 5 + return 0 +} + build_bin2c() { cd bin2c || exit 5 make @@ -241,7 +270,8 @@ build_bin2c() { cleanup_work() { # Remove man pages and headers. - rm -rf "${WORKDIR:?}/usr/share" + rm -rf "${WORKDIR:?}/usr/share/man" + rm -rf "${WORKDIR:?}/usr/share/info" rm -rf "${WORKDIR:?}/usr/include" # Strip binaries for i in "$WORKDIR/usr/bin"/*.exe; @@ -251,6 +281,9 @@ cleanup_work() { # Add DLLs from MSYS so executables can run. cp "/usr/bin/msys-ncursesw6.dll" "$WORKDIR/usr/bin" cp "/usr/bin/msys-2.0.dll" "$WORKDIR/usr/bin" + cp "/usr/bin/msys-iconv-2.dll" "$WORKDIR/usr/bin" + cp "/usr/bin/msys-intl-8.dll" "$WORKDIR/usr/bin" + cp "/usr/bin/msys-pcre-1.dll" "$WORKDIR/usr/bin" cp "$SCRIPT_NAME" "$WORKDIR/usr/bin" mkdir -p "$WORKDIR/usr/share/terminfo/63/" cp "/usr/share/terminfo/63/cygwin" "$WORKDIR/usr/share/terminfo/63/" @@ -274,7 +307,11 @@ printf "✓\n" printf "Compiling and installing GNU Awk... " build_gawk >> output.log 2>&1 printf "✓\n" -printf "Compiling and installing Nano Editor... " +# Compiling grep and installing it results in segfault. We'll use MSYS2's for now. +printf "Installing GNU Grep... " +install -Dm755 "/usr/bin/grep" "$WORKDIR/usr/bin/grep" +printf "✓\n" +printf "Compiling and installing GNU Nano Text Editor... " build_nano >> output.log 2>&1 printf "✓\n" printf "Compiling and installing GNU Less... "