From 52841c34c6aa842d6b47a234f5b69eaae83c691b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 17 Feb 2021 17:47:49 +0100 Subject: [PATCH] Add mc because upstream doesn't compile --- mc/Config.in | 59 ++++++++ mc/Makefile | 128 ++++++++++++++++++ mc/patches/010-subshell.patch | 11 ++ ...20-fix-mouse-handling-newer-terminfo.patch | 11 ++ mc/patches/030-fix-gettext-full-0.21.patch | 13 ++ 5 files changed, 222 insertions(+) create mode 100644 mc/Config.in create mode 100644 mc/Makefile create mode 100644 mc/patches/010-subshell.patch create mode 100644 mc/patches/020-fix-mouse-handling-newer-terminfo.patch create mode 100644 mc/patches/030-fix-gettext-full-0.21.patch diff --git a/mc/Config.in b/mc/Config.in new file mode 100644 index 000000000..fcd8fad33 --- /dev/null +++ b/mc/Config.in @@ -0,0 +1,59 @@ +menu "Configuration" + depends on PACKAGE_mc + +config MC_DIFFVIEWER + bool "Enable internal diff viewer" + default n + help + This option enables the built-in diff viewer. + Disabled by default. + +config MC_EDITOR + bool "Enable internal editor" + default y + help + This option enables the built-in file editor. + Enabled by default. + +config MC_SUBSHELL + bool "Enable concurrent subshell" + default y + help + This option enables concurrent subshell support. + Enabled by default. + +config MC_LARGEFILE + bool "Enable largefile support" + default n + help + This option enables support for large files (> 2 GB). + Disabled by default. + +config MC_BACKGROUND + bool "Enable background operations" + default n + help + This option enables support for background operations which + allow to perform some tasks such as copying files in a + separate background process. Background code is known + to be less stable than the rest of the code. + Disabled by default. + +config MC_CHARSET + bool "Enable charset support" + default y + help + This option adds support for selecting character set of the text in + the internal viewer and editor and converting it on the fly. + Enabled by default. + +config MC_VFS + bool "Enable virtual filesystem support" + default y + help + This option enables the Virtual File System switch code to get + transparent access to the following file systems: + cpio, tar, fish, sfs, ftp, sftp, extfs. + Enabled by default. + +endmenu diff --git a/mc/Makefile b/mc/Makefile new file mode 100644 index 000000000..30814afb0 --- /dev/null +++ b/mc/Makefile @@ -0,0 +1,128 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=mc +PKG_VERSION:=4.8.25 +PKG_RELEASE:=2 +PKG_MAINTAINER:=Dirk Brenken +PKG_LICENSE:=GPL-3.0-or-later +PKG_CPE_ID:=cpe:/a:midnight_commander:midnight_commander + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=http://ftp.midnight-commander.org/ +PKG_HASH:=ffc19617f20ebb23330acd3998b7fd559a042d172fa55746d53d246697b2548a +PKG_BUILD_PARALLEL:=1 +PKG_FIXUP:=autoreconf gettext-version +PKG_BUILD_DEPENDS:=MC_VFS:libtirpc + +PKG_CONFIG_DEPENDS := \ + CONFIG_PACKAGE_MC \ + CONFIG_MC_DIFFVIEWER \ + CONFIG_MC_EDITOR \ + CONFIG_MC_SUBSHELL \ + CONFIG_MC_LARGEFILE \ + CONFIG_MC_BACKGROUND \ + CONFIG_MC_CHARSET \ + CONFIG_MC_VFS + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk + +define Package/mc + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+glib2 +libncurses +libmount +MC_VFS:libssh2 $(ICONV_DEPENDS) + TITLE:=Midnight Commander - a powerful visual file manager + URL:=https://www.midnight-commander.org/ + MENU:=1 +endef + +define Package/mc/config + source "$(SOURCE)/Config.in" +endef + +define Package/mc/description +GNU Midnight Commander is a visual file manager. +It's a feature rich full-screen text mode application that allows you to copy, +move and delete files and whole directory trees, search for files and run commands in the subshell. +Internal viewer and editor are included as well. + +endef + +CONFIGURE_ARGS += \ + --enable-silent-rules \ + --disable-tests \ + --disable-doxygen-doc \ + --with-homedir=/etc/mc \ + --with-screen=ncurses \ + --without-x \ + +CONFIGURE_VARS += \ + ac_cv_search_addwstr=no \ + +ifeq ($(CONFIG_MC_DIFFVIEWER),) +CONFIGURE_ARGS += --without-diff-viewer +endif + +ifeq ($(CONFIG_MC_EDITOR),) +CONFIGURE_ARGS += --without-internal-edit +endif + +ifeq ($(CONFIG_MC_SUBSHELL),) +CONFIGURE_ARGS += --without-subshell +endif + +ifeq ($(CONFIG_MC_LARGEFILE),) +CONFIGURE_ARGS += --disable-largefile +endif + +ifeq ($(CONFIG_MC_BACKGROUND),) +CONFIGURE_ARGS += --disable-background +endif + +ifeq ($(CONFIG_MC_CHARSET),) +CONFIGURE_ARGS += --disable-charset +endif + +ifeq ($(CONFIG_MC_VFS),) +CONFIGURE_ARGS += --disable-vfs +else +TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/tirpc +endif + +define Package/mc/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mc $(1)/usr/bin + $(INSTALL_DIR) $(1)/etc/mc + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.charsets $(1)/etc/mc + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.ext $(1)/etc/mc + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.default.keymap $(1)/etc/mc/mc.keymap + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/filehighlight.ini $(1)/etc/mc + $(INSTALL_DIR) $(1)/usr/share/mc/help + $(INSTALL_DATA) $(PKG_BUILD_DIR)/doc/hlp/mc.hlp $(1)/usr/share/mc/help + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.menu $(1)/etc/mc + $(INSTALL_DIR) $(1)/etc/mc/skins + $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/skins/default.ini $(1)/etc/mc/skins + $(INSTALL_DIR) $(1)/etc/mc/mcedit/Syntax +ifeq ($(CONFIG_MC_DIFFVIEWER),y) + ln -sf mc $(1)/usr/bin/mcdiff +endif +ifeq ($(CONFIG_MC_EDITOR),y) + ln -sf mc $(1)/usr/bin/mcedit +endif +ifeq ($(CONFIG_MC_VFS),y) + $(INSTALL_DATA) $(PKG_BUILD_DIR)/src/vfs/sfs/sfs.ini $(1)/etc/mc + $(INSTALL_DIR) $(1)/usr/lib/mc/extfs.d +endif +endef + +define Package/mc/conffiles +/etc/mc/mc.menu +/etc/mc/skins/default.ini +endef + +$(eval $(call BuildPackage,mc)) diff --git a/mc/patches/010-subshell.patch b/mc/patches/010-subshell.patch new file mode 100644 index 000000000..73d8ca949 --- /dev/null +++ b/mc/patches/010-subshell.patch @@ -0,0 +1,11 @@ +-- a/src/subshell/common.c ++++ b/src/subshell/common.c +@@ -836,7 +836,7 @@ init_subshell_precmd (char *precmd, size + "else " + "[ \"${PWD##$HOME/}\" = \"$PWD\" ] && MC_PWD=\"$PWD\" || MC_PWD=\"~/${PWD##$HOME/}\"; " + "fi; " +- "echo \"$USER@$(hostname -s):$MC_PWD\"; " ++ "echo \"$USER@$HOSTNAME:$MC_PWD\"; " + "pwd>&%d; " + "kill -STOP $$; " + "}; " "PRECMD=precmd; " "PS1='$($PRECMD)$ '\n", subshell_pipe[WRITE]); diff --git a/mc/patches/020-fix-mouse-handling-newer-terminfo.patch b/mc/patches/020-fix-mouse-handling-newer-terminfo.patch new file mode 100644 index 000000000..82543379e --- /dev/null +++ b/mc/patches/020-fix-mouse-handling-newer-terminfo.patch @@ -0,0 +1,11 @@ +--- a/lib/tty/tty.c ++++ b/lib/tty/tty.c +@@ -370,7 +370,7 @@ tty_init_xterm_support (gboolean is_xter + if (xmouse_seq != NULL) + { + if (strcmp (xmouse_seq, ESC_STR "[<") == 0) +- xmouse_seq = ESC_STR "[M"; ++ xmouse_seq = NULL; + + xmouse_extended_seq = ESC_STR "[<"; + } diff --git a/mc/patches/030-fix-gettext-full-0.21.patch b/mc/patches/030-fix-gettext-full-0.21.patch new file mode 100644 index 000000000..af44dcf66 --- /dev/null +++ b/mc/patches/030-fix-gettext-full-0.21.patch @@ -0,0 +1,13 @@ +--- a/po/Makefile.in.in 2020-07-13 04:16:44.000000000 +0800 ++++ b/po/Makefile.in.in 2021-02-17 18:04:44.881887192 +0800 +@@ -8,8 +8,8 @@ + # Please note that the actual code of GNU gettext is covered by the GNU + # General Public License and is *not* in the public domain. + # +-# Origin: gettext-0.18 +-GETTEXT_MACRO_VERSION = 0.18 ++# Origin: gettext-0.20 ++GETTEXT_MACRO_VERSION = 0.20 + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ \ No newline at end of file