mg: add new package/microscopic emacs style editor
authorHirokazu MORIKAWA <redacted>
Fri, 17 May 2019 04:23:37 +0000 (13:23 +0900)
committerHirokazu MORIKAWA <redacted>
Sat, 18 May 2019 12:32:37 +0000 (21:32 +0900)
For Emacsian!

You can use "Dired", which is Emacsian's favorite.
You can also use "re-search".

Signed-off-by: Hirokazu MORIKAWA <redacted>
utils/mg/Makefile [new file with mode: 0644]
utils/mg/patches/001-cross_compile_openwrt.patch [new file with mode: 0644]
utils/mg/patches/900-musl_compatibility.patch [new file with mode: 0644]
utils/mg/patches/901-use_pcre.patch [new file with mode: 0644]

diff --git a/utils/mg/Makefile b/utils/mg/Makefile
new file mode 100644 (file)
index 0000000..c796527
--- /dev/null
@@ -0,0 +1,42 @@
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mg
+PKG_VERSION:=20180927
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/ibara/mg/releases/download/mg-20180927
+PKG_HASH:=99b2fd2cf9d6474153d6c5769c818dd5514c147b8a8ad660a5e114bc1ebd504d
+
+PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>
+PKG_LICENSE:=PUBLICDOMAIN ISC BSD VARIOUS
+PKG_LICENSE_FILES:=README.md
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/mg
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libncurses +libpcre
+  TITLE:=microscopic EMACS style editor
+  URL:=https://github.com/ibara/mg
+  SUBMENU:=Editors
+endef
+
+define Package/mg/description
+ Mg is intended to be a small, fast, and portable editor for people who
+ can't (or don't want to) run emacs for one reason or another, or are not
+ familiar with the vi editor. It is compatible with emacs because there
+ shouldn't be any reason to learn more editor types than emacs or vi.
+endef
+
+define Package/mg/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/mg $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,mg))
diff --git a/utils/mg/patches/001-cross_compile_openwrt.patch b/utils/mg/patches/001-cross_compile_openwrt.patch
new file mode 100644 (file)
index 0000000..dc63ea5
--- /dev/null
@@ -0,0 +1,135 @@
+--- a/configure
++++ b/configure
+@@ -3,53 +3,6 @@
+ # This configure script written by Brian Callahan <bcallah@openbsd.org>
+ # and released into the Public Domain.
+-cccheck() {
+-  if [ ! -z "$CC" ] ; then
+-cat << EOF > conftest.c
+-int main(void){return 0;}
+-EOF
+-    $CC -o conftest conftest.c > /dev/null 2>&1
+-    if [ $? -eq 0 ] ; then
+-      ./conftest
+-      if [ $? -eq 0 ] ; then
+-      rm -f conftest conftest.c
+-      cc="$CC"
+-      return 0
+-      else
+-      echo "could not build working executables"
+-      echo "Please ensure your C compiler is a native compiler"
+-      exit 1
+-      fi
+-    else
+-      rm -f conftest conftest.c
+-    fi
+-  fi
+-
+-  for compiler in cc clang pcc xlc gcc ; do
+-cat << EOF > conftest.c
+-int main(void){return 0;}
+-EOF
+-
+-    $compiler -o conftest conftest.c > /dev/null 2>&1
+-
+-    if [ $? -eq 0 ] ; then
+-      ./conftest
+-      if [ $? -eq 0 ] ; then
+-      rm -f conftest conftest.c
+-      cc="$compiler"
+-      return 0
+-      else
+-      echo "could not build working executables"
+-      echo "Please ensure your C compiler is a native compiler"
+-      exit 1
+-      fi
+-    else
+-      rm -f conftest conftest.c
+-    fi
+-  done
+-  return 1
+-}
+-
+ fgetlncheck() {
+   cat << EOF > conftest.c
+ #include <stdio.h>
+@@ -162,21 +115,6 @@
+   fi
+ }
+-wflagcheck() {
+-  cat << EOF > conftest.c
+-int main(void){return 0;}
+-EOF
+-  $cc -w -o conftest conftest.c > /dev/null 2> conftest.err
+-  grep ':' conftest.err > /dev/null 2>&1
+-  if [ $? -eq 0 ] ; then
+-    rm -f conftest conftest.err conftest.c
+-    return 1
+-  else
+-    rm -f conftest conftest.err conftest.c
+-    return 0
+-  fi
+-}
+-
+ # Option variables
+ if [ ! -z "$PREFIX" ] ; then
+   prefix="$PREFIX"
+@@ -241,53 +179,9 @@
+   ldflags="${ldflags}-static"
+ fi
+-printf "checking for C compiler... "
+-cccheck
+-if [ $? -ne 0 ] ; then
+-  echo "not found"
+-  echo "Please install a C compiler and re-run configure."
+-  exit 1
+-else
+-  echo "$cc"
+-fi
+-
+-printf "checking for -w compiler flag... "
+-wflagcheck
+-if [ $? -ne 0 ] ; then
+-  echo "no"
+-else
+-  cflags="$cflags -w"
+-  echo "yes"
+-fi
+-
+-printf "checking for OS... "
+-libs='-lncurses'
+-os=`uname -s`
+-echo "$os"
+-
+-case "x$os" in
+-  "xLinux"|"xCYGWIN"*)
+-    cflags="$cflags -D_GNU_SOURCE -D__dead=\"__attribute__((__noreturn__))\" -Dst_mtimespec=st_mtim"
+-    ;;
+-  "xDarwin")
+-    cflags="$cflags -DMSG_NOSIGNAL=SO_NOSIGPIPE -DLOGIN_NAME_MAX=MAXLOGNAME"
+-    libs="$libs -lutil"
+-    ;;
+-  "xFreeBSD")
+-    cflags="$cflags -D__dead=__dead2 -DLOGIN_NAME_MAX=MAXLOGNAME"
+-    libs="$libs -lutil"
+-    ;;
+-  "xOpenBSD")
+-    libs="$libs -lutil"
+-    ;;
+-  "xNetBSD")
+-    libs="$libs -lutil"
+-    ;;
+-  "xDragonFly")
+-    cflags="$cflags -D__dead=__dead2 -DLOGIN_NAME_MAX=MAXLOGNAME"
+-    libs="$libs -lutil"
+-    ;;
+-esac
++# OpenWrt
++libs='-lncurses -lpcre'
++cflags="$cflags -D_GNU_SOURCE -D__dead=\"__attribute__((__noreturn__))\" -Dst_mtimespec=st_mtim"
+ cat << EOF > config.h
+ /* This file generated automatically by configure.  */
diff --git a/utils/mg/patches/900-musl_compatibility.patch b/utils/mg/patches/900-musl_compatibility.patch
new file mode 100644 (file)
index 0000000..26aaa98
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/fileio.c
++++ b/fileio.c
+@@ -23,6 +23,10 @@
+ #include <string.h>
+ #include <unistd.h>
++#ifndef DEFFILEMODE
++#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
++#endif
++
+ #include "def.h"
+ #include "kbd.h"
+ #include "pathnames.h"
diff --git a/utils/mg/patches/901-use_pcre.patch b/utils/mg/patches/901-use_pcre.patch
new file mode 100644 (file)
index 0000000..292f2eb
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/re_search.c
++++ b/re_search.c
+@@ -16,7 +16,7 @@
+ #ifdef REGEX
+ #include <sys/queue.h>
+ #include <sys/types.h>
+-#include <regex.h>
++#include <pcreposix.h>
+ #include <signal.h>
+ #include <stdio.h>
+ #include <string.h>
git clone https://git.99rst.org/PROJECT