[Mod] First commit

This commit is contained in:
2022-10-31 22:18:58 +08:00
commit 1c8a3d9709
13090 changed files with 526733 additions and 0 deletions

View File

@ -0,0 +1,44 @@
Fix gcc 5.x build failure
Extracted from upstream commit
http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517.
+ modify MKlib_gen.sh to work around change in development version of
gcc introduced here:
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html
(reports by Marcus Shawcroft, Maohui Lei).
Original author: Thomas E. Dickey <dickey@invisible-island.net>
Signed-off-by: Mikhail Peselnik <bas@bmail.ru>
[Adam Duskett: Refresh for 6.1]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
--- a/ncurses/base/MKlib_gen.sh 2015-08-06 20:48:24.000000000 -0400
+++ b/ncurses/base/MKlib_gen.sh 2017-02-07 10:09:01.293962392 -0500
@@ -505,11 +505,22 @@
-e 's/gen_$//' \
-e 's/ / /g' >>$TMP
+cat >$ED1 <<EOF
+s/ / /g
+s/^ //
+s/ $//
+s/P_NCURSES_BOOL/NCURSES_BOOL/g
+EOF
+
+# A patch discussed here:
+# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
+# introduces spurious #line markers. Work around that by ignoring the system's
+# attempt to define "bool" and using our own symbol here.
+sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2
+cat $ED2 >$TMP
+
$preprocessor $TMP 2>/dev/null \
-| sed \
- -e 's/ / /g' \
- -e 's/^ //' \
- -e 's/_Bool/NCURSES_BOOL/g' \
+| sed -f $ED1 \
| $AWK -f $AW2 \
| sed -f $ED3 \
| sed \

34
package/ncurses/Config.in Normal file
View File

@ -0,0 +1,34 @@
config BR2_PACKAGE_NCURSES
bool "ncurses"
help
The Ncurses (new curses) library is a free software
emulation of curses in System V Release 4.0, and more.
This package installs only a few vital termcap entries
http://www.gnu.org/software/ncurses/
if BR2_PACKAGE_NCURSES
config BR2_PACKAGE_NCURSES_WCHAR
bool "enable wide char support"
depends on BR2_USE_WCHAR
help
Enable wide char & UTF-8 support in ncurses libraries
config BR2_PACKAGE_NCURSES_TARGET_PROGS
bool "ncurses programs"
help
Include ncurses programs in target (clear, reset, tput, ...)
config BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO
string "additional terminfo files to install"
help
Whitespace separated list of terminfo files to install on the
target. A small number of vital terminfo files are always
installed. This list is in addition to the vital ones.
The terminfo filenames should have the single letter path
prefix. e.g. t/tmux.
endif

View File

@ -0,0 +1,39 @@
# Locally calculated after checking pgp signature
sha256 aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17 ncurses-6.1.tar.gz
sha256 cf9038be62c49a6b5fe93f33b32f983649b2f4c4c31cc99bd18e1e5871c31443 ncurses-6.1-20190609-patch.sh.bz2
sha256 4b0a4c6abce4543ac4fd4c3389b14825e73b7cddcbb01a687c5dd837f21a3b04 ncurses-6.1-20190615.patch.gz
sha256 b2302625ec2fa6dce79622670452e56ff6130dc02e655b52177264cfeff84c51 ncurses-6.1-20190623.patch.gz
sha256 48b004a3e5409a02a5e751f996fe487f5ce45be1fff38572f7cc8167b22179bf ncurses-6.1-20190630.patch.gz
sha256 faf849eed92161ac09782badf84a19ad6beae472e87d460905865e08a6ed46e4 ncurses-6.1-20190706.patch.gz
sha256 62d4954bf818659105aa1c21cc27cb2c133e02bdc7d3f6aa548caae2d1db7440 ncurses-6.1-20190713.patch.gz
sha256 0c1a54bd5de9c890d1fabcfa92bf5bf46f7eccc54a48051367e82bdb29636450 ncurses-6.1-20190720.patch.gz
sha256 0bbd08d3bd12686d4427c242d6a8fde2e299698039cd597303af713c5f538f17 ncurses-6.1-20190727.patch.gz
sha256 40e5f350a921dbd03e3d9ff93bc477ec4f1f65878f307c534882fba3b0b40507 ncurses-6.1-20190728.patch.gz
sha256 9648104311e209d17db9556d6efc898d5c80ed5fc80e8aa3cd08769544c839b8 ncurses-6.1-20190803.patch.gz
sha256 fa1f583575717b2538d3a4ea59a67bc17dd07ed46cb99fe2beaf23d1b006e9df ncurses-6.1-20190810.patch.gz
sha256 5e9ae4f1b3e2e2d567a01a8fb2c9b7f3804cae97f28cd483d239afee781b8c2b ncurses-6.1-20190817.patch.gz
sha256 7592e5e610b3e9eeca78897da2330b7518f00e0a59d20df873c88a9b26bc4da9 ncurses-6.1-20190824.patch.gz
sha256 1a9800a5ccc4f2cb572b63cdc8f1431642e014a58a30151af73977614d5c4aac ncurses-6.1-20190831.patch.gz
sha256 87685a6b90225efcd03375eb11b124fd9e95ee4b0f36bcbc82e56a70cd466b33 ncurses-6.1-20190907.patch.gz
sha256 4ddebb6e0e5a67028eb3aca2352c9bd48cf122a512719f93e449e00a3c6634f8 ncurses-6.1-20190914.patch.gz
sha256 4c725fa729d754f4e75af78fda4cf67d60e71c1625b5f4f49b7930c95bb8dd36 ncurses-6.1-20190921.patch.gz
sha256 a830b879b57906b1e480e4785b32cec05081b7849c06c4b116459c4d343ba21b ncurses-6.1-20190928.patch.gz
sha256 d5eae35d920409613f565825e1e215fed89828040aab541328455da38e1a9b7c ncurses-6.1-20191005.patch.gz
sha256 136dbd07254810728c1fcb7614b566e7c3cb6af8c0783019bbb6b4b5e3c1e2c6 ncurses-6.1-20191012.patch.gz
sha256 1d5125b20792e9f534432c3ef2aa68984c713416addeb2c4364c5ae897a3b8b7 ncurses-6.1-20191015.patch.gz
sha256 a6475c05312ba0b12b72b83529c1d283a14c4470414c505fa45451e35f3ffcf5 ncurses-6.1-20191019.patch.gz
sha256 f6c7469f33065faf1d04ac9e9bea1a88142b00b82e3db3674cca9ec24920b4af ncurses-6.1-20191026.patch.gz
sha256 0d0443937b9c04663de25b405bb95e658e7c87e1dd7a726b3813aa7f9b55f69a ncurses-6.1-20191102.patch.gz
sha256 f3b75787918d2f02a2005877e81fdc054c45b8249b43aabb531e3b817bcf7576 ncurses-6.1-20191109.patch.gz
sha256 801d138b55986719aea7f42dc8c0cb618fa9a6edf92d1789a6ba5d61678f7761 ncurses-6.1-20191116.patch.gz
sha256 45f447cf2c7a24295c7b9210473e943a238c57ca80581d121c9a1a3aa05332a6 ncurses-6.1-20191123.patch.gz
sha256 ea758e3b0162348c4d5d6dac56f95809da3b7d0589205661a13430eb93f72f75 ncurses-6.1-20191130.patch.gz
sha256 16b5a588c56a53c468d2359b21d5d8a007c4ef7696de12c964a1b661ed185f72 ncurses-6.1-20191207.patch.gz
sha256 8725a2dc8f1cfdab41cb5fe56f930e070f8cdc81a77f303ef2658f65cd0b8edd ncurses-6.1-20191214.patch.gz
sha256 7e2a06fb0af6c84269d23ffe06c689bf1a8a57af39369690ee0698778d4b6cda ncurses-6.1-20191221.patch.gz
sha256 d052bcdb38f8b45a00c0a3190dec7ac1e72d5682f3a16d8accda239308aad62f ncurses-6.1-20191228.patch.gz
sha256 7b6253bae438154a88c7f3e301b872ed7ad71f943c873f4e6c82d8d36a5df72b ncurses-6.1-20200104.patch.gz
sha256 e438f28025c7d97c7f8fabf40eeab68bbf8ca871a0ba349e3fdec9165efe85cb ncurses-6.1-20200111.patch.gz
sha256 06d002c33f727c4a36a0b502c226ea3c3c5b80770703d2f783fffa6a0db04d92 ncurses-6.1-20200118.patch.gz
# Locally computed
sha256 4d1fde61868c73776a539366dccf5d5a4857e7fd7299efb1f02e07c2afe9ea87 COPYING

202
package/ncurses/ncurses.mk Normal file
View File

@ -0,0 +1,202 @@
################################################################################
#
# ncurses
#
################################################################################
NCURSES_VERSION = 6.1
NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses
NCURSES_INSTALL_STAGING = YES
NCURSES_DEPENDENCIES = host-ncurses
NCURSES_LICENSE = MIT with advertising clause
NCURSES_LICENSE_FILES = COPYING
NCURSES_CPE_ID_VENDOR = gnu
# Commit 4b21273d71d09 added upstream (security) patches up to 20200118
NCURSES_IGNORE_CVES += CVE-2018-10754
NCURSES_IGNORE_CVES += CVE-2018-19211
NCURSES_IGNORE_CVES += CVE-2018-19217
NCURSES_IGNORE_CVES += CVE-2019-17594
NCURSES_IGNORE_CVES += CVE-2019-17595
NCURSES_CONFIG_SCRIPTS = ncurses$(NCURSES_LIB_SUFFIX)6-config
NCURSES_PATCH = \
$(addprefix https://invisible-mirror.net/archives/ncurses/$(NCURSES_VERSION)/, \
ncurses-6.1-20190609-patch.sh.bz2 \
ncurses-6.1-20190615.patch.gz \
ncurses-6.1-20190623.patch.gz \
ncurses-6.1-20190630.patch.gz \
ncurses-6.1-20190706.patch.gz \
ncurses-6.1-20190713.patch.gz \
ncurses-6.1-20190720.patch.gz \
ncurses-6.1-20190727.patch.gz \
ncurses-6.1-20190728.patch.gz \
ncurses-6.1-20190803.patch.gz \
ncurses-6.1-20190810.patch.gz \
ncurses-6.1-20190817.patch.gz \
ncurses-6.1-20190824.patch.gz \
ncurses-6.1-20190831.patch.gz \
ncurses-6.1-20190907.patch.gz \
ncurses-6.1-20190914.patch.gz \
ncurses-6.1-20190921.patch.gz \
ncurses-6.1-20190928.patch.gz \
ncurses-6.1-20191005.patch.gz \
ncurses-6.1-20191012.patch.gz \
ncurses-6.1-20191015.patch.gz \
ncurses-6.1-20191019.patch.gz \
ncurses-6.1-20191026.patch.gz \
ncurses-6.1-20191102.patch.gz \
ncurses-6.1-20191109.patch.gz \
ncurses-6.1-20191116.patch.gz \
ncurses-6.1-20191123.patch.gz \
ncurses-6.1-20191130.patch.gz \
ncurses-6.1-20191207.patch.gz \
ncurses-6.1-20191214.patch.gz \
ncurses-6.1-20191221.patch.gz \
ncurses-6.1-20191228.patch.gz \
ncurses-6.1-20200104.patch.gz \
ncurses-6.1-20200111.patch.gz \
ncurses-6.1-20200118.patch.gz \
)
# ncurses-6.1-20191012.patch.gz
NCURSES_IGNORE_CVES += CVE-2019-17594 CVE-2019-17595
NCURSES_CONF_OPTS = \
--without-cxx \
--without-cxx-binding \
--without-ada \
--without-tests \
--disable-big-core \
--without-profile \
--disable-rpath \
--disable-rpath-hack \
--enable-echo \
--enable-const \
--enable-overwrite \
--enable-pc-files \
--disable-stripping \
--with-pkg-config-libdir="/usr/lib/pkgconfig" \
$(if $(BR2_PACKAGE_NCURSES_TARGET_PROGS),,--without-progs) \
--without-manpages
ifeq ($(BR2_STATIC_LIBS),y)
NCURSES_CONF_OPTS += --without-shared --with-normal
else ifeq ($(BR2_SHARED_LIBS),y)
NCURSES_CONF_OPTS += --with-shared --without-normal
else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
NCURSES_CONF_OPTS += --with-shared --with-normal
endif
# configure can't find the soname for libgpm when cross compiling
ifeq ($(BR2_PACKAGE_GPM),y)
NCURSES_CONF_OPTS += --with-gpm=libgpm.so.2
NCURSES_DEPENDENCIES += gpm
else
NCURSES_CONF_OPTS += --without-gpm
endif
NCURSES_TERMINFO_FILES = \
a/ansi \
d/dumb \
l/linux \
p/putty \
p/putty-256color \
p/putty-vt100 \
s/screen \
s/screen-256color \
v/vt100 \
v/vt100-putty \
v/vt102 \
v/vt200 \
v/vt220 \
x/xterm \
x/xterm+256color \
x/xterm-256color \
x/xterm-color \
x/xterm-xfree86 \
$(call qstrip,$(BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO))
ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y)
NCURSES_CONF_OPTS += --enable-widec
NCURSES_LIB_SUFFIX = w
NCURSES_LIBS = ncurses menu panel form
define NCURSES_LINK_LIBS_STATIC
$(foreach lib,$(NCURSES_LIBS:%=lib%), \
ln -sf $(lib)$(NCURSES_LIB_SUFFIX).a $(STAGING_DIR)/usr/lib/$(lib).a
)
ln -sf libncurses$(NCURSES_LIB_SUFFIX).a \
$(STAGING_DIR)/usr/lib/libcurses.a
endef
define NCURSES_LINK_LIBS_SHARED
$(foreach lib,$(NCURSES_LIBS:%=lib%), \
ln -sf $(lib)$(NCURSES_LIB_SUFFIX).so $(STAGING_DIR)/usr/lib/$(lib).so
)
ln -sf libncurses$(NCURSES_LIB_SUFFIX).so \
$(STAGING_DIR)/usr/lib/libcurses.so
endef
define NCURSES_LINK_PC
$(foreach pc,$(NCURSES_LIBS), \
ln -sf $(pc)$(NCURSES_LIB_SUFFIX).pc \
$(STAGING_DIR)/usr/lib/pkgconfig/$(pc).pc
)
endef
NCURSES_LINK_STAGING_LIBS = \
$(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC);) \
$(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_SHARED))
NCURSES_LINK_STAGING_PC = $(call NCURSES_LINK_PC)
NCURSES_CONF_OPTS += --enable-ext-colors
NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_LIBS
NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_PC
endif # BR2_PACKAGE_NCURSES_WCHAR
ifneq ($(BR2_ENABLE_DEBUG),y)
NCURSES_CONF_OPTS += --without-debug
endif
# ncurses breaks with parallel build, but takes quite a while to
# build single threaded. Work around it similar to how Gentoo does
define NCURSES_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) sources
rm -rf $(@D)/misc/pc-files
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR)
endef
ifeq ($(BR2_PACKAGE_NCURSES_TARGET_PROGS),y)
define NCURSES_TARGET_SYMLINK_RESET
ln -sf tset $(TARGET_DIR)/usr/bin/reset
endef
NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_SYMLINK_RESET
endif
define NCURSES_TARGET_CLEANUP_TERMINFO
$(RM) -rf $(TARGET_DIR)/usr/share/terminfo $(TARGET_DIR)/usr/share/tabset
$(foreach t,$(NCURSES_TERMINFO_FILES), \
$(INSTALL) -D -m 0644 $(STAGING_DIR)/usr/share/terminfo/$(t) \
$(TARGET_DIR)/usr/share/terminfo/$(t)
)
endef
NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_CLEANUP_TERMINFO
HOST_NCURSES_CONF_ENV = \
ac_cv_path_LDCONFIG=""
HOST_NCURSES_CONF_OPTS = \
--with-shared \
--without-gpm \
--without-manpages \
--without-cxx \
--without-cxx-binding \
--without-ada \
--with-default-terminfo-dir=/usr/share/terminfo \
--disable-db-install \
--without-normal
$(eval $(autotools-package))
$(eval $(host-autotools-package))