From 2ee1ac366ffe9c0675d820b9a39798b6ce74b159 Mon Sep 17 00:00:00 2001 From: Markham Date: Sun, 25 Mar 2018 22:04:01 +0200 Subject: [PATCH] add target midnight commander (mc); fix ncurses for mc --- archive-patches/libffi-3.2.1.patch | 34 +++++++ .../libglib2-2.54.0-disable-tests.patch | 49 ++++++++++ archive-patches/mc-4.8.20.patch | 32 +++++++ make/applications.mk | 31 ++++++ make/archives.mk | 6 ++ make/environment.mk | 5 +- make/libraries.mk | 94 ++++++++++++++++++- make/neutrino.mk | 3 + make/versions.mk | 5 + 9 files changed, 254 insertions(+), 5 deletions(-) create mode 100644 archive-patches/libffi-3.2.1.patch create mode 100644 archive-patches/libglib2-2.54.0-disable-tests.patch create mode 100644 archive-patches/mc-4.8.20.patch diff --git a/archive-patches/libffi-3.2.1.patch b/archive-patches/libffi-3.2.1.patch new file mode 100644 index 0000000..d2bf723 --- /dev/null +++ b/archive-patches/libffi-3.2.1.patch @@ -0,0 +1,34 @@ +Submitted By: Armin K. +Date: 2012-03-29 +Initial Package Version: 3.0.10 +Upstream Status: Not Submitted +Origin: Self +Description: Makes package install headers into /usr/include instead + of /usr/lib/libffi-3.0.10/include + +--- libffi.orig/include/Makefile.in 2011-08-23 16:28:35.000000000 +0200 ++++ libffi/include/Makefile.in 2012-03-29 19:57:53.919343783 +0200 +@@ -314,7 +314,7 @@ + AUTOMAKE_OPTIONS = foreign + DISTCLEANFILES = ffitarget.h + EXTRA_DIST = ffi.h.in ffi_common.h +-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include ++includesdir = $(includedir) + nodist_includes_HEADERS = ffi.h ffitarget.h + all: all-am + +--- libffi.orig/libffi.pc.in 2011-08-22 20:38:12.000000000 +0200 ++++ libffi/libffi.pc.in 2012-03-29 19:57:18.263549738 +0200 +@@ -2,10 +2,10 @@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ + toolexeclibdir=@toolexeclibdir@ +-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include ++includedir=@includedir@ + + Name: @PACKAGE_NAME@ + Description: Library supporting Foreign Function Interfaces + Version: @PACKAGE_VERSION@ + Libs: -L${toolexeclibdir} -lffi +-Cflags: -I${includedir} ++Cflags diff --git a/archive-patches/libglib2-2.54.0-disable-tests.patch b/archive-patches/libglib2-2.54.0-disable-tests.patch new file mode 100644 index 0000000..0bbcc23 --- /dev/null +++ b/archive-patches/libglib2-2.54.0-disable-tests.patch @@ -0,0 +1,49 @@ +--- a/gio/Makefile.am ++++ b/gio/Makefile.am +@@ -244,7 +244,7 @@ + platform_deps += win32/libgiowin32.la + endif + +-SUBDIRS += . tests ++SUBDIRS += . + + if HAVE_FAM + SUBDIRS += fam +--- a/glib/Makefile.am ++++ b/glib/Makefile.am +@@ -33,8 +33,8 @@ + MAYBE_PCRE = pcre + endif + +-SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests +-DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests ++SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . ++DIST_SUBDIRS = libcharset gnulib pcre update-pcre + + AM_CPPFLAGS = \ + $(glib_INCLUDES) \ +--- a/Makefile.am ++++ b/Makefile.am +@@ -6,8 +6,8 @@ + + ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS} + +-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests +-DIST_SUBDIRS = $(SUBDIRS) build win32 ++SUBDIRS = . m4macros glib gmodule gthread gobject gio ++DIST_SUBDIRS = $(SUBDIRS) build + + bin_SCRIPTS = glib-gettextize + +--- a/configure.ac ++++ b/configure.ac +@@ -63,7 +63,7 @@ + # Save this value here, since automake will set cflags later + cflags_set=${CFLAGS:+set} + +-AM_INIT_AUTOMAKE([1.11 -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) ++AM_INIT_AUTOMAKE([1.15 -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) + AM_MAINTAINER_MODE([enable]) + + # Support silent build rules. Disable + diff --git a/archive-patches/mc-4.8.20.patch b/archive-patches/mc-4.8.20.patch new file mode 100644 index 0000000..9c73fe6 --- /dev/null +++ b/archive-patches/mc-4.8.20.patch @@ -0,0 +1,32 @@ +--- a/src/vfs/extfs/extfs.c ++++ b/src/vfs/extfs/extfs.c +@@ -1568,8 +1568,6 @@ + * appear on screen. */ + if (dir == NULL) + { +- if (!silent) +- fprintf (stderr, _("Warning: cannot open %s directory\n"), dirname); + g_free (dirname); + return FALSE; + } +--- a/src/vfs/sfs/sfs.c ++++ b/src/vfs/sfs/sfs.c +@@ -432,7 +432,6 @@ + + if (cfg == NULL) + { +- fprintf (stderr, _("%s: Warning: file %s not found\n"), "sfs_init()", mc_sfsini); + g_free (mc_sfsini); + return 0; + } +--- a/src/editor/syntax.c ++++ b/src/editor/syntax.c +@@ -1488,8 +1488,6 @@ + if (r == -1) + { + edit_free_syntax_rules (edit); +- message (D_ERROR, _("Load syntax file"), +- _("Cannot open file %s\n%s"), f, unix_error_string (errno)); + } + else if (r != 0) + { diff --git a/make/applications.mk b/make/applications.mk index b392f07..26d7194 100755 --- a/make/applications.mk +++ b/make/applications.mk @@ -740,6 +740,37 @@ $(D)/portmap: $(ARCHIVE)/portmap-$(PORTMAP_VER).tgz $(REMOVE)/portmap_$(PORTMAP_VER) $(TOUCH) +# +# Midnight Commander +# +$(D)/mc: $(D)/libncurses $(D)/libglib2 $(ARCHIVE)/mc-$(MC_VER).tar.xz | $(TARGETPREFIX) + $(START_BUILD) + $(REMOVE)/mc-$(MC_VER) + $(UNTAR)/mc-$(MC_VER).tar.xz + set -e; cd $(BUILD_TMP)/mc-$(MC_VER); \ + $(PATCH)/mc-$(MC_VER).patch; \ + autoreconf -fi; \ + $(CONFIGURE) \ + --prefix= \ + --mandir=/.remove \ + --sysconfdir=/var/etc \ + --with-homedir=/var/tuxbox/config/mc \ + --without-gpm-mouse \ + --disable-doxygen-doc \ + --disable-doxygen-dot \ + --disable-doxygen-html \ + --enable-charset \ + --disable-nls \ + --with-screen=ncurses \ + --without-x \ + ; \ + $(MAKE) all; \ + $(MAKE) install DESTDIR=$(TARGETPREFIX) + rm -rf $(TARGETPREFIX)/usr/share/mc/examples + find $(TARGETPREFIX)/usr/share/mc/skins -type f ! -name default.ini | xargs --no-run-if-empty rm + $(REMOVE)/mc-$(MC_VER) + $(TOUCH) + # # ofgwrite # diff --git a/make/archives.mk b/make/archives.mk index bfe21b6..1b023d4 100755 --- a/make/archives.mk +++ b/make/archives.mk @@ -67,6 +67,9 @@ $(ARCHIVE)/gd-$(GD_VER).tar.gz: $(ARCHIVE)/gettext-$(GETTEXT_VER).tar.xz: $(WGET) http://ftp.gnu.org/pub/gnu/gettext/gettext-$(GETTEXT_VER).tar.xz +$(ARCHIVE)/libffi-$(LIBFFI_VER).tar.gz: + $(WGET) ftp://sourceware.org/pub/libffi/libffi-$(LIBFFI_VER).tar.gz + $(ARCHIVE)/libjpeg-turbo-$(JPEG_TURBO_VER).tar.gz: $(WGET) http://sourceforge.net/projects/libjpeg-turbo/files/$(JPEG_TURBO_VER)/libjpeg-turbo-$(JPEG_TURBO_VER).tar.gz @@ -186,6 +189,9 @@ $(ARCHIVE)/util-linux-2.20.tar.bz2: $(ARCHIVE)/hddtemp-0.3-beta15.tar.bz2: $(WGET) http://www.fhloston-paradise.de/hddtemp-0.3-beta15.tar.bz2 +$(ARCHIVE)/mc-$(MC_VER).tar.xz: + $(WGET) ftp.midnight-commander.org/mc-$(MC_VER).tar.xz + $(ARCHIVE)/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2: $(WGET) ftp.europeonline.com/pub/linux/utils/kernel/module-init-tools/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2 diff --git a/make/environment.mk b/make/environment.mk index 4fd84bb..81cf941 100755 --- a/make/environment.mk +++ b/make/environment.mk @@ -159,8 +159,9 @@ PKG_CONFIG_LIBDIR = $(TARGETPREFIX)/lib PKG_CONFIG_PATH = $(PKG_CONFIG_LIBDIR)/pkgconfig # helper-"functions": -REWRITE_LIBTOOL = sed -i "s,^libdir=.*,libdir='$(TARGETLIB)'," $(TARGETLIB) -REWRITE_PKGCONF = sed -i "s,^prefix=.*,prefix='$(TARGETPREFIX)'," +REWRITE_LIBTOOL = sed -i "s,^libdir=.*,libdir='$(TARGETLIB)'," $(TARGETLIB) +REWRITE_LIBTOOLDEP = sed -i -e "s,\(^dependency_libs='\| \|-L\|^dependency_libs='\)/lib,\ $(TARGETLIB),g" $(TARGETLIB) +REWRITE_PKGCONF = sed -i "s,^prefix=.*,prefix='$(TARGETPREFIX)'," # unpack tarballs, clean up UNTAR = tar -C $(BUILD_TMP) -xf $(ARCHIVE) REMOVE = rm -rf $(BUILD_TMP) diff --git a/make/libraries.mk b/make/libraries.mk index 8b8549c..528a895 100755 --- a/make/libraries.mk +++ b/make/libraries.mk @@ -42,13 +42,16 @@ $(D)/libncurses: $(ARCHIVE)/ncurses-$(NCURSES_VER).tar.gz | ncurses-prereq $(TAR --host=$(TARGET) \ --target=$(TARGET) \ --prefix= \ - --without-manpages \ - --with-terminfo-dirs=/usr/share/terminfo \ + --enable-pc-files \ + --with-pkg-config \ + --with-pkg-config-libdir=/lib/pkgconfig \ + --with-shared \ --disable-big-core \ + --without-manpages \ --without-debug \ --without-progs \ + --without-tests \ --without-ada \ - --with-shared \ --without-profile \ --disable-rpath \ --without-cxx-binding \ @@ -56,6 +59,15 @@ $(D)/libncurses: $(ARCHIVE)/ncurses-$(NCURSES_VER).tar.gz | ncurses-prereq $(TAR $(MAKE) libs HOSTCC=gcc HOSTLDFLAGS="$(TARGET_LDFLAGS)" \ HOSTCCFLAGS="$(TARGET_CFLAGS) -DHAVE_CONFIG_H -I../ncurses -DNDEBUG -D_GNU_SOURCE -I../include" && \ $(MAKE) install.libs DESTDIR=$(TARGETPREFIX) + rm -rf $(HOSTPREFIX)/bin/ncurses* + rm -rf $(TARGETLIB)/libform* $(TARGETLIB)/libmenu* $(TARGETLIB)/libpanel* + rm -rf $(PKG_CONFIG_PATH)/form.pc $(PKG_CONFIG_PATH)/menu.pc $(PKG_CONFIG_PATH)/panel.pc + mv $(TARGETPREFIX)/bin/ncurses6-config $(HOSTPREFIX)/bin + $(REWRITE_PKGCONF) $(HOSTPREFIX)/bin/ncurses6-config + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/ncurses.pc + ln -sf ./ncurses/curses.h $(TARGETPREFIX)/include/curses.h + ln -sf ./ncurses/curses.h $(TARGETPREFIX)/include/ncurses.h + ln -sf ./ncurses/term.h $(TARGETPREFIX)/include/term.h $(REMOVE)/ncurses-$(NCURSES_VER) $(TOUCH) @@ -840,6 +852,82 @@ $(D)/libfribidi: $(ARCHIVE)/fribidi-$(FRIBIDI_VER).tar.bz2 | $(TARGETPREFIX) $(REMOVE)/fribidi-$(FRIBIDI_VER) $(TOUCH) +# +# libffi +# +$(D)/libffi: $(ARCHIVE)/libffi-$(LIBFFI_VER).tar.gz + $(START_BUILD) + $(REMOVE)/libffi-$(LIBFFI_VER) + $(UNTAR)/libffi-$(LIBFFI_VER).tar.gz + set -e; cd $(BUILD_TMP)/libffi-$(LIBFFI_VER); \ + $(PATCH)/libffi-$(LIBFFI_VER).patch; \ + $(CONFIGURE) \ + --target=$(TARGET) \ + --prefix=/ \ + --mandir=/.remove \ + --infodir=/.remove \ + --disable-static \ + --enable-builddir=libffi \ + ; \ + $(MAKE); \ + $(MAKE) install DESTDIR=$(TARGETPREFIX) + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/libffi.pc + $(REWRITE_LIBTOOL)/libffi.la + $(REMOVE)/libffi-$(LIBFFI_VER) + $(TOUCH) + +# +# libglib2 +# +$(D)/libglib2: $(D)/zlib $(D)/libffi $(ARCHIVE)/glib-$(LIBGLIB2_VER).tar.xz + $(START_BUILD) + $(REMOVE)/glib-$(LIBGLIB2_VER) + $(UNTAR)/glib-$(LIBGLIB2_VER).tar.xz + set -e; cd $(BUILD_TMP)/glib-$(LIBGLIB2_VER); \ + echo "glib_cv_va_copy=no" > config.cache; \ + echo "glib_cv___va_copy=yes" >> config.cache; \ + echo "glib_cv_va_val_copy=yes" >> config.cache; \ + echo "ac_cv_func_posix_getpwuid_r=yes" >> config.cache; \ + echo "ac_cv_func_posix_getgrgid_r=yes" >> config.cache; \ + echo "glib_cv_stack_grows=no" >> config.cache; \ + echo "glib_cv_uscore=no" >> config.cache; \ + $(PATCH)/libglib2-$(LIBGLIB2_VER)-disable-tests.patch; \ + $(CONFIGURE) \ + --prefix= \ + --enable-static \ + --mandir=/.remove \ + --cache-file=config.cache \ + --disable-fam \ + --disable-libmount \ + --disable-gtk-doc \ + --disable-gtk-doc-html \ + --with-threads="posix" \ + --with-html-dir=/.remove \ + --with-pcre=internal \ + ; \ + $(MAKE) all; \ + $(MAKE) install DESTDIR=$(TARGETPREFIX) + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/glib-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gmodule-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gio-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gio-unix-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gmodule-export-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gmodule-no-export-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gobject-2.0.pc + $(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/gthread-2.0.pc + $(REWRITE_LIBTOOL)/libglib-2.0.la + $(REWRITE_LIBTOOL)/libgmodule-2.0.la + $(REWRITE_LIBTOOL)/libgio-2.0.la + $(REWRITE_LIBTOOL)/libgobject-2.0.la + $(REWRITE_LIBTOOL)/libgthread-2.0.la + $(REWRITE_LIBTOOLDEP)/libglib-2.0.la + $(REWRITE_LIBTOOLDEP)/libgmodule-2.0.la + $(REWRITE_LIBTOOLDEP)/libgio-2.0.la + $(REWRITE_LIBTOOLDEP)/libgobject-2.0.la + $(REWRITE_LIBTOOLDEP)/libgthread-2.0.la + $(REMOVE)/glib-$(LIBGLIB2_VER) + $(TOUCH) + $(D)/timezone: $(ARCHIVE)/tzdata$(TZ_VER).tar.gz | find-zic $(TARGETPREFIX) $(START_BUILD) mkdir -p $(BUILD_TMP)/timezone $(BUILD_TMP)/timezone/zoneinfo diff --git a/make/neutrino.mk b/make/neutrino.mk index 8de5df6..f1a1c8b 100755 --- a/make/neutrino.mk +++ b/make/neutrino.mk @@ -88,6 +88,9 @@ ifeq ($(BOXTYPE), armbox) --with-stb-hal-includes=$(LH_OBJDIR)/include \ --with-stb-hal-build=$(LH_OBJDIR) endif +ifeq ($(BOXTYPE), armbox) +NEUTRINO_DEPS += $(D)/mc +endif neutrino-deps: $(NEUTRINO_DEPS) diff --git a/make/versions.mk b/make/versions.mk index 20c4e33..f6962c0 100644 --- a/make/versions.mk +++ b/make/versions.mk @@ -82,6 +82,8 @@ LIBASS_VER=0.14.0 # libdvbsi++; libdvbsi++ is a open source C++ library for parsing DVB Service Information and MPEG-2 Program Specific Information. LIBDVBSI_GIT=ff57e5 +LIBFFI_VER = 3.2.1 + # libpng; reference library for reading and writing PNGs LIBPNG_VER=1.6.34 @@ -120,6 +122,9 @@ LUA_FEEDPARSER_TAG=9b284bc LUASOCKET_VER = 2.0.2 LUASOCKET_GIT = 5a17f79 +# Midnight Commander +MC_VER = 4.8.20 + # mtd-utils for the host and target MTD_UTILS_VER = 1.5.2 -- 2.39.5