Jelajahi Sumber

package/nnn: new package

nnn is a fast and minimal text-based file manager. It is written in C
and has minimal dependencies, which makes it portable and suitable for
embedded systems.

Project page: https://github.com/jarun/nnn
Wiki: https://en.wikipedia.org/wiki/Nnn_(file_manager)

Signed-off-by: Alexander Shirokov <shirokovalexs@gmail.com>
[Arnout:
 - add missing dependency on BR2_USE_MMU (found with test-pkg);
 - add missing comment in Config.in;
 - add musl-fls dependency when needed (found with test-pkg);
 - add host-pkgconf dependency;
 - add NNN_MAKE_ENV to collect everything in make environment;
 - drop TARGET_MAKE_ENV from environment, it's already in
   TARGET_CONFIGURE_OPTS;
 - add PREFIX to NNN_MAKE_FLAGS: it is currently not used in the
   build step, but in the future it may be used;
 - use NORL=0/1 for readline optional dependency, the Makefile says that
   the "norl" target is legacy;
 - remove comment about readline dependency, it's obvious;
 - indent continuation line with an extra tab.
]
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
Alexander Shirokov 4 bulan lalu
induk
melakukan
7856e41685
5 mengubah file dengan 67 tambahan dan 0 penghapusan
  1. 3 0
      DEVELOPERS
  2. 1 0
      package/Config.in
  3. 20 0
      package/nnn/Config.in
  4. 3 0
      package/nnn/nnn.hash
  5. 40 0
      package/nnn/nnn.mk

+ 3 - 0
DEVELOPERS

@@ -91,6 +91,9 @@ F:	package/modem-manager/
 N:	Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
 F:	package/cpp-httplib/
 
+N:	Alexander Shirokov <shirokovalexs@gmail.com>
+F:	package/nnn/
+
 N:	Alessandro Partesotti <a.partesotti@gmail.com>
 F:	package/oatpp/
 

+ 1 - 0
package/Config.in

@@ -2973,6 +2973,7 @@ menu "Text editors and viewers"
 	source "package/mg/Config.in"
 	source "package/most/Config.in"
 	source "package/nano/Config.in"
+	source "package/nnn/Config.in"
 	source "package/uemacs/Config.in"
 	source "package/vim/Config.in"
 endmenu

+ 20 - 0
package/nnn/Config.in

@@ -0,0 +1,20 @@
+config BR2_PACKAGE_NNN
+	bool "nnn"
+	depends on BR2_USE_MMU # fork
+	# Building nnn without widechar/UTF support is theoretically
+	# possible, but in practice it leads to unstable builds.
+	# That’s why the WCHAR dependency is here.
+	depends on BR2_USE_WCHAR
+	select BR2_PACKAGE_NCURSES
+	select BR2_PACKAGE_NCURSES_WCHAR
+	select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC
+	help
+	  nnn is a lightweight yet powerful terminal file manager.
+	  It is written in C, has minimal dependency, and works
+	  out of the box.
+
+	  https://github.com/jarun/nnn
+
+comment "nnn needs a toolchain with wchar"
+	depends on BR2_USE_MMU # fork
+	depends on !BR2_USE_WCHAR

+ 3 - 0
package/nnn/nnn.hash

@@ -0,0 +1,3 @@
+# Locally computed
+sha256  9faaff1e3f5a2fd3ed570a83f6fb3baf0bfc6ebd6a9abac16203d057ac3fffe3  nnn-5.1.tar.gz
+sha256  829f485dc4f2f51c2471b36a99e22f15ff214966e16b72cd79768b2338b4132b  LICENSE

+ 40 - 0
package/nnn/nnn.mk

@@ -0,0 +1,40 @@
+################################################################################
+#
+# nnn
+#
+################################################################################
+
+NNN_VERSION = 5.1
+NNN_LICENSE = BSD-2-Clause
+NNN_LICENSE_FILES = LICENSE
+NNN_SITE = $(call github,jarun,nnn,v$(NNN_VERSION))
+NNN_DEPENDENCIES = ncurses host-pkgconf
+
+NNN_MAKE_ENV = $(TARGET_CONFIGURE_OPTS)
+NNN_MAKE_FLAGS = \
+	CFLAGS_OPTIMIZATION= \
+	PREFIX=/usr
+
+ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),)
+NNN_DEPENDENCIES += musl-fts
+# Must be passed in env so it can be appended to by the Makefile
+NNN_MAKE_ENV += LDLIBS="-lfts"
+endif
+
+ifeq ($(BR2_PACKAGE_READLINE),y)
+NNN_DEPENDENCIES += readline
+NNN_MAKE_FLAGS += O_NORL=0
+else
+NNN_MAKE_FLAGS += O_NORL=1
+endif
+
+define NNN_BUILD_CMDS
+	$(NNN_MAKE_ENV) $(MAKE) -C $(@D) $(NNN_MAKE_FLAGS)
+endef
+
+define NNN_INSTALL_TARGET_CMDS
+	$(NNN_MAKE_ENV) $(MAKE) -C $(@D) $(NNN_MAKE_FLAGS) \
+		DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))