Files
buildroot/package/screen/screen.mk
Julien Olivain 4769724ee2 package/screen: bump to version 5.0.0
See release announce [1].

License hash changed, due to url updates from http to https in [2].

Package patches were reworked for this new version:

- Patch 0001 is removed. It is no longer needed with upstream
  commit [3] and [4].

- Patches 0002 to 0004 are rebased to the new version, and are now
  named 0001 to 0003.

- Patch 0005 is regenerated to rename all occurrences of the renamed
  header file. It is now named 0004.

- Patch 0006 is removed. It is included in the new version,
  in commit [5].

- Patch 0007 is removed. It is fixed alternatively upstream in
  commit [6], included in this version.

Also, the patch entries in ".checkpackageignore" were updated
accordingly.

Since upstream commit [7], included in version 5.0.0, screen needs
wchar support. This change is reflected in the Kconfig Config.in file.

Since upstream commit [8], included in version 5.0.0, screen needs
a C17 compiler. This support was introduced in Gcc 8.1.0, see [9].
This requirement is reflected in the Kconfig Config.in file.

This new version also fixes build failures with GCC 14 originally due
to implicit function declarations which became an error. For the
record, screen 4.9.1 builds were failing with error message:

    pty.c: In function 'OpenPTY':
    pty.c:338:7: error: implicit declaration of function 'openpty'; did you mean 'OpenPTY'? [-Wimplicit-function-declaration]
      338 |   if (openpty(&f, &s, TtyName, NULL, NULL) != 0)
          |       ^~~~~~~
          |       OpenPTY

Fixes:
https://autobuild.buildroot.org/results/d33751d88af521f0e09d74e86d94d3ce20976c20/

[1] https://lists.gnu.org/archive/html/screen-users/2024-08/msg00000.html
[2] https://git.savannah.gnu.org/cgit/screen.git/diff/src/COPYING?id=f66377f9927bf5a1857b1106b28008f3802e1f7b
[3] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=46df054064dce87049eca427b7e778a42674a85c
[4] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=725d8ee4fd4fa75cf9d2d6c2f9c7e13920f6c41e
[5] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=39c5f1c76f1fcef4b5958bf828a63f53426b6984
[6] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=84092e65f95dd2a00aa4cc2ba75682297f33dfea
[7] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=9e8e20596f508da866a1e1469b7e6216810dd7f8
[8] https://git.savannah.gnu.org/cgit/screen.git/commit/?id=35f50657c2d09c9995ccac6d68bfd9e2ee7109b2
[9] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/C-Dialect-Options.html#index-std-1

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-10-24 21:52:48 +02:00

44 lines
1.3 KiB
Makefile

################################################################################
#
# screen
#
################################################################################
SCREEN_VERSION = 5.0.0
SCREEN_SITE = $(BR2_GNU_MIRROR)/screen
SCREEN_LICENSE = GPL-3.0+
SCREEN_LICENSE_FILES = COPYING
SCREEN_CPE_ID_VENDOR = gnu
SCREEN_SELINUX_MODULES = screen
SCREEN_DEPENDENCIES = ncurses
SCREEN_AUTORECONF = YES
SCREEN_CONF_ENV = CFLAGS="$(TARGET_CFLAGS)"
SCREEN_CONF_OPTS = --enable-colors256
SCREEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin
ifeq ($(BR2_PACKAGE_LIBXCRYPT),y)
SCREEN_DEPENDENCIES += libxcrypt
endif
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
SCREEN_DEPENDENCIES += linux-pam
SCREEN_CONF_OPTS += --enable-pam
else
SCREEN_CONF_OPTS += --disable-pam
endif
define SCREEN_INSTALL_SCREENRC
$(INSTALL) -m 0755 -D $(@D)/etc/screenrc $(TARGET_DIR)/etc/screenrc
endef
SCREEN_POST_INSTALL_TARGET_HOOKS += SCREEN_INSTALL_SCREENRC
# Add /usr/bin/screen to /etc/shells otherwise some login tools like dropbear
# can reject the user connection. See man shells.
define SCREEN_ADD_SCREEN_TO_SHELLS
grep -qsE '^/usr/bin/screen$$' $(TARGET_DIR)/etc/shells \
|| echo "/usr/bin/screen" >> $(TARGET_DIR)/etc/shells
endef
SCREEN_TARGET_FINALIZE_HOOKS += SCREEN_ADD_SCREEN_TO_SHELLS
$(eval $(autotools-package))