From b39672ac80d536bdce30b2a3efb0c7f41a4f6942e391a3c85eb77bd859698772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Thu, 30 Jan 2025 10:31:15 +0000 Subject: [PATCH 1/4] - Disable libutempter, it doesn't work anymore with the switch from utmp to systemd-logind and only creates error messages OBS-URL: https://build.opensuse.org/package/show/Base:System/screen?expand=0&rev=107 --- .gitattributes | 23 ++ .gitignore | 1 + global_screenrc.patch | 9 + libtinfo.diff | 15 + screen-4.9.1.tar.gz | 3 + screen-4.9.1.tar.gz.sig | 7 + screen.changes | 716 ++++++++++++++++++++++++++++++++++++++++ screen.conf | 4 + screen.keyring | 14 + screen.pam | 5 + screen.spec | 143 ++++++++ 11 files changed, 940 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 global_screenrc.patch create mode 100644 libtinfo.diff create mode 100644 screen-4.9.1.tar.gz create mode 100644 screen-4.9.1.tar.gz.sig create mode 100644 screen.changes create mode 100644 screen.conf create mode 100644 screen.keyring create mode 100644 screen.pam create mode 100644 screen.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/global_screenrc.patch b/global_screenrc.patch new file mode 100644 index 0000000..d3a5a68 --- /dev/null +++ b/global_screenrc.patch @@ -0,0 +1,9 @@ +Index: screenrc +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ screenrc 2011-11-21 15:47:46.649112381 +0100 +@@ -0,0 +1,4 @@ ++# this is the global screenrc file. Handle with care. ++ ++termcapinfo xterm* G0:is=\E[?4l\E>:ti@:te@ ++termcapinfo linux me=\E[m:AX diff --git a/libtinfo.diff b/libtinfo.diff new file mode 100644 index 0000000..4709dc5 --- /dev/null +++ b/libtinfo.diff @@ -0,0 +1,15 @@ +Index: configure.ac +=================================================================== +--- configure.ac.orig ++++ configure.ac +@@ -689,8 +689,8 @@ AC_TRY_LINK([ + ],[ + tgetent((char *)0, (char *)0); + ],, +-LIBS="-ltermlib $olibs" +-AC_CHECKING(libtermlib) ++LIBS="-ltinfo $olibs" ++AC_CHECKING(libtinfo) + AC_TRY_LINK([ + #include + #include diff --git a/screen-4.9.1.tar.gz b/screen-4.9.1.tar.gz new file mode 100644 index 0000000..cf2c906 --- /dev/null +++ b/screen-4.9.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69 +size 1040785 diff --git a/screen-4.9.1.tar.gz.sig b/screen-4.9.1.tar.gz.sig new file mode 100644 index 0000000..80d0ba3 --- /dev/null +++ b/screen-4.9.1.tar.gz.sig @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYIAB0WIQRQuGGz6TDsM3UNkO2RCDKXSpKhHAUCZN4mxAAKCRCRCDKXSpKh +HE8FAP9o9aDPuc/grybmgFZDF3pJloelr0ABS4fHcCHPJ4PaPAD+PE2xBYrCcG/T +pSvdNInaYr3lRbN9iQkIAYFh66bLmQo= +=izsm +-----END PGP SIGNATURE----- diff --git a/screen.changes b/screen.changes new file mode 100644 index 0000000..a2aa073 --- /dev/null +++ b/screen.changes @@ -0,0 +1,716 @@ +------------------------------------------------------------------- +Thu Jan 16 10:49:16 UTC 2025 - Thorsten Kukuk + +- Disable libutempter, it doesn't work anymore with the switch + from utmp to systemd-logind and only creates error messages + +------------------------------------------------------------------- +Mon Feb 26 13:12:12 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Wed Sep 13 12:01:14 UTC 2023 - Dirk Müller + +- update to 4.9.1 (bsc#1210272, CVE-2023-24626): + * Support stop/parity bits on serial port + * Add needed system headers in checks and return values + for implicit function declarations + * Avoid zombies after shell exit + * Missed signal sending permission check on failed + query messages (CVE-2023-24626) + * manpage fixes + * source code fixes during cleanup + * UTF-8 encoding can emit invalid UTF-8 sequences + * for out of range unicode values + +------------------------------------------------------------------- +Fri Dec 16 22:18:05 UTC 2022 - Callum Farmer + +- Use %_pam_vendordir + +------------------------------------------------------------------- +Mon Dec 12 14:28:14 UTC 2022 - Stefan Schubert + +- Migration PAM settings to /usr/etc: Saving user changed + configuration files in /etc and restoring them while an RPM + update. + +------------------------------------------------------------------- +Sat Feb 26 11:08:20 UTC 2022 - Andreas Stieger + +- GNU Screen 4.9.0: + * Hardstatus option for used encoding (escape string '%e') + * fix combining char handling that could lead to a segfault + * CVE-2021-26937: possible denial of service via a crafted UTF-8 + character sequence, upstream fix replacing dropped combchar.diff + (boo#1182092) + * make screen exit code be 0 when checking --help + * session names limit is 80 symbols + * option -X ignores specified user in multiuser env +- remove deprecated texinfo packaging macros + +------------------------------------------------------------------- +Fri Feb 12 15:37:48 CET 2021 - mls@suse.de + +- Fix double width combining char handling that could lead + to a segfault [bnc#1182092] + new patch: combchar.diff + +------------------------------------------------------------------- +Mon Nov 30 13:38:31 UTC 2020 - Dominique Leuenberger + +- Use %_tmpfilesdir instead of hardcoding a path for + systemd-tmpfiles config files. +- Do not create directories before uninstalling (?) the package. + The /run/(u)screen diretories are created in the %post section. +- Do not ghost package /run/uscreens: the directory is dynamically + created during boot. Of course it would be nice to be able to + identify what package creates this, but for that we should rather + have a rpm/systemd-tmpfiles integration hook. The main problem + with the ghost is the suid flag, which breaks rpm -V. permissions + no longer lists /run/uscreens, so verify_permission cannot apply. +- Add %systemd_ordering: give zypp a hint that screen shall be + installed after systemd, so that systemd-tmpfiles already exists. + +------------------------------------------------------------------- +Tue Sep 8 13:30:58 UTC 2020 - Matthias Gerstner + +- no longer invoke permissions/chkstat for directory handled by + systemd-tmpfiles (bsc#1171879) + +------------------------------------------------------------------- +Thu Feb 06 21:44:38 UTC 2020 - alexander_naumov@opensuse.org + +- GNU Screen 4.8.0: + * Improves startup time by only polling for already open + files to close + * Fixes: + - Fix for segfault if termcap doesn't have Km entry + - Make screen exit code be 0 when checking --version + - Fix potential memory corruption + +------------------------------------------------------------------- +Wed Oct 02 09:09:20 UTC 2019 - alexander_naumov@opensuse.org + +- GNU Screen 4.7.0: + * Adds support for SGR (1006) mouse mode + * Adds support for OSC 11 + * Updates Unicode ambiguous and wide tables to 12.1.0 + * Fix: cross-compilation support (bug #43223) + * Fix: a lot of manpage fixes and cleanups + +------------------------------------------------------------------- +Fri Feb 15 23:31:00 UTC 2019 - Jan Engelhardt + +- Use proper Requires(*), ticking off a FIXME as fixed. + +------------------------------------------------------------------- +Tue Apr 3 15:00:27 CEST 2018 - kukuk@suse.de + +- Use %license instead of %doc [bsc#1082318] + +------------------------------------------------------------------- +Thu Dec 21 14:23:56 CET 2017 - mls@suse.de + +- install pam file to make screen locking work again [bnc#1056192] + new file: screen.pam + +------------------------------------------------------------------- +Mon Oct 23 15:22:10 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.2: + * revert changes to cursor position restore behavour + * set freed pointer to NULL + * documentation fixes + * fix windowlist crashes + +------------------------------------------------------------------- +Thu Jul 11 15:03:24 UTC 2017 - alexander_naumov@opensuse.org + +- adding %set_permissions and %verify_permissions macros + for /run/uscreens/ +- adding %tmpfiles_create macro for /usr/lib/tmpfiles.d/screen.conf + +------------------------------------------------------------------- +Thu Jul 11 14:30:37 UTC 2017 - alexander_naumov@opensuse.org + +- spec file: adding PreReq for permissions + +------------------------------------------------------------------- +Thu Jul 11 13:59:01 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.1: bugfix release + * problems with starting session in some cases + * parallel make install + * segfault when querying info on nonUTF locale + +------------------------------------------------------------------- +Thu Jun 29 12:24:55 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.0: + * Update Unicode wide tables to 9.0 + * Support more serial speeds + * Improved namespaces support + * Migrate from fifos to sockets + * Start viewing scrollback at first line of output + +- drop upstreamed 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Thu May 11 15:46:12 UTC 2017 - jengelh@inai.de + +- Ensure /usr/share/terminfo/s/screen is present when screen is + [boo#812067]. + +------------------------------------------------------------------- +Sat Feb 25 20:34:40 UTC 2017 - astieger@suse.com + +- GNU Screen 4.5.1: + * logfile permissions problem (CVE-2017-5618) bsc#1021743 + This issues does not affect the SUSE package as setuid/setid + is not used. +- drop upstreamed fix_enable_logfile.patch +- add 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Fri Jan 27 22:32:17 UTC 2017 - alexander_naumov@opensuse.org + +- Add fix_enable_logfile.patch + * fix loging screen API (bnc#1020870) + * fix privilege escalation + +------------------------------------------------------------------- +Thu Jan 17 23:11:38 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.5.0: + * It's possible to specify logfile's name via command line + parameter '-L'. + + Fixes: + * broken handling of "bind u digraph U+" + * crash with long $TERM + * crash when bumping blank window + * build for AIX + * %x improperly separating arguments + * install with custom DESTDIR + +------------------------------------------------------------------- +Wed Aug 17 14:02:33 UTC 2016 - alexander_naumov@opensuse.org + +- Remove %postun - it tried to delete "screen.info.gz" file + second time. + +------------------------------------------------------------------- +Thu Aug 11 17:32:44 UTC 2016 - alexander_naumov@opensuse.org + +- GNU screen 4.4.0: + * Support up to 24 function keys + * 'logfile' command, starts logging into new file upon changing + * Fix runtime issues + +------------------------------------------------------------------- +Wed Aug 19 08:35:03 UTC 2015 - meissner@suse.com + +- enable pam support, so screenlocking uses the password of the + current user. + +------------------------------------------------------------------- +Wed Jul 1 10:13:31 UTC 2015 - trenn@suse.de + +- Add license file as documentation + +------------------------------------------------------------------- +Wed Jul 01 09:48:45 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.1 + * This is a bug fix release. + * Visible content get messed up after window resize + +------------------------------------------------------------------- +Mon Jun 15 09:28:15 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.0: + * Introduce Xx string escape showing the executed command of a window + * Implement dead/zombie window polling, allowing for auto reconnecting + * Allow setting hardstatus on first line + * 'sort' command sorting windows by title + * 'bumpleft', 'bumpright' - manually move windows on window list + * 'collapse' removing numbering 'gaps' between windows, by renumbering + * 'windows' command now accepts arguments for use with querying + +- packaging changes: + * move screen-poll-zombies.patch to savannah git + * move screen-4.0.3-ipv6.patch to savannah git + * move sort_command.patch to savannah git + * move xX_string_escape.patch to savannah git + * move screen_enhance_windows_list.patch to savannah git + +------------------------------------------------------------------- +Fri May 2 19:42:12 UTC 2014 - andreas.stieger@gmx.de + +- GNU screen 4.2.1: + * allow for terminal with long $TERM (up to 32 characters) + (already patched in this package previously) + * allow to use long logins + * documentation fixes + * runtime fixes +- packaging changes: + * use source URLs + * verify source signatures + * drop screen-man-loginshell.diff, equivalent change upstream + * drop term_too_long.diff, equivalent change upstream + * drop use_locale.diff, applied upstream + * drop msg_version_3.patch, obsolete after upstream changes + +------------------------------------------------------------------- +Thu Apr 17 10:23:40 UTC 2014 - jw@suse.com + +- Update to 4.2.0 as released on screen-devel@gnu.org yesterday. + Thank you Amadeusz! + * keep libtinfo.diff (from coolo 2011, why exactly?) + * keep global_screenrc.patch (renamed from screen-4.0.2.dif) + * keep screen-man-loginshell.diff (to be upstreamed) + * dropped screen-__P.diff (not needed) + * keep term_too_long.diff (savannah#30880, to be upstreamed) + * keep use_locale.diff (from lnt-sysadmin@lists.lrz.de 2012, check?) + * keep screen-4.0.3-ipv6.patch (builtin telnet, to be upstreamed) + * keep screen_enhance_windows_list.patch (to be upstreamed) + * keep screen-poll-zombies.patch (to be upstreamed) + * keep xX_string_escape.patch (renamed from show_all_active.patch, to be upstreamed) + * keep sort_command.patch (from trenn 2011, to be upstreamed) + * added msg_version_3.patch (ouch, incompatible protocol, to be upstreamed) + +- added %rundir with /var/run for 1310 and before; but /run afterwards. + aj advocates /run for Factory; for 1310 it was banned by + suse-filelist-forbidden-fhs23 + +------------------------------------------------------------------- +Tue Apr 15 14:27:09 UTC 2014 - aj@suse.com + +- Fix comment. + +------------------------------------------------------------------- +Tue Apr 15 10:04:14 UTC 2014 - aj@suse.com + +- Use /run instead of /var/run. + +------------------------------------------------------------------- +Fri Sep 13 15:17:12 CEST 2013 - mls@suse.de + +- update to current 4.0.4 git to get support for non-bmp unicode + * remove no longer needed mappedcmd.diff + * remove no longer needed styroptcrash.diff +- fix potential buffer overrun in show_all_active.patch +- redo combine screen_enhance_windows_list_1_3.patch, + screen_enhance_windows_list_2_3.patch, + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + into screen_enhance_windows_list.patch. + Do not mess with the old %w behaviour, just add support for the + windows command argument. Fixes bnc#808565. + +------------------------------------------------------------------- +Sun Mar 24 10:57:09 UTC 2013 - trenn@suse.de + +- Patch screen_enhance_windows_list_1_3.patch changed wW string escapes + in an unintended way. + Fix this by ignoring longflg and behave the way wW string esacpes + behaved with adding addtional L escape. (So %w is now what %Lw was before + all these changes. This should be a minor, acceptable change as it was + undocumented and it buys quite some code cleanup with it.). Patch is: + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + +------------------------------------------------------------------- +Mon Feb 18 09:04:34 UTC 2013 - trenn@suse.de + +- Introduce Xx string escape showing the executed command of a window + patch: show_all_active.patch + +------------------------------------------------------------------- +Tue Feb 5 19:06:46 UTC 2013 - trenn@suse.de + +- Add zombie and enhance windows commands + screen-poll-zombies.patch: Dead windows will be restarted after + a specified timeout (if enabled) + screen_enhance_windows_list_1_3.patch: + Cleanup window flags processing. This leads to a slight + output change in "Ww" string escapes (window list), but these + should be rather seldom used and flags are still shown. + screen_enhance_windows_list_2_3.patch: + Enhance windows command with an optional string escape based + parameter which also removes the output size (1024 bytes) + restriction (only if param is passed) of the windows command. + If you used captions with "%w" before, you can simulate the old + behaviour with "%-w%n* %t%+w". +- Only Require makeinfo for openSUSE versions 11.4 and above. + This requirement did not exist in earlier versions, now the package + builds again for example against SLES 11 (11.4 based). + +------------------------------------------------------------------- +Thu Oct 25 13:11:20 UTC 2012 - trenn@suse.de + +- Fix sort command to not stop at window gaps. + That can happen if windows got deleted and the window numbers do not + increment sequentially anymore. + +------------------------------------------------------------------- +Tue Oct 9 07:47:52 UTC 2012 - lnt-sysadmin@lists.lrz.de + +- add use_locale.diff to fix --enable-use-locale configure option + +------------------------------------------------------------------- +Thu Sep 13 13:52:04 CEST 2012 - mls@suse.de + +- add prereq coreutils so that mkdir works [bnc#780033] + +------------------------------------------------------------------- +Sat Sep 8 11:07:44 UTC 2012 - idonmez@suse.com + +- Add build dependency on makeinfo + +------------------------------------------------------------------- +Wed Aug 8 19:56:19 CEST 2012 - mls@suse.de + +- fix crash when doing 'screen -d -r' inside of screen + +------------------------------------------------------------------- +Tue Aug 7 17:08:55 CEST 2012 - mls@suse.de + +- add mappedcmd.diff to make ^A DEL work again + +------------------------------------------------------------------- +Fri Jun 8 18:03:57 CEST 2012 - mls@suse.de + +- update to screen-4.0.4devel + * support for multiple layouts + * no more stuck screen sessions + +------------------------------------------------------------------- +Mon Nov 21 14:55:17 UTC 2011 - coolo@suse.com + +- fix build with latest ncurses (split tinfo) + +------------------------------------------------------------------- +Fri Nov 18 13:09:57 UTC 2011 - jw@suse.com + +- mkdir /var/run/*screen both immediatly and via systemd. + +------------------------------------------------------------------- +Mon Sep 19 14:00:10 UTC 2011 - trenn@suse.de + +- Add sort command +- convert maxwin99bug.patch into a patch format quilt understands + +------------------------------------------------------------------- +Wed Jul 6 08:13:07 UTC 2011 - aj@suse.de + +- Use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d. + +------------------------------------------------------------------- +Mon Jan 31 15:14:38 UTC 2011 - jw@novell.com + +- bugfix bnc#668306, a buffer overflow with '%d'. + Added maxwin99bug.patch + This is already upstream, but was never released. + +------------------------------------------------------------------- +Fri Dec 10 19:40:12 UTC 2010 - jw@novell.com + +- term_too_long.patch added. + corresponds to savannah#30880 + +------------------------------------------------------------------- +Wed Nov 3 14:54:47 UTC 2010 - aj@suse.de + +- Add /etc/tmpfiles.d/screen.conf for /var/run on tmpfs. + +------------------------------------------------------------------- +Thu Sep 9 18:43:01 UTC 2010 - aj@suse.de + +- BuildRequire utempter-devel + +------------------------------------------------------------------- +Sun May 2 13:06:35 UTC 2010 - aj@suse.de + +- /var/run directories are created by /etc/tmpdirs.d/01_aaa_base. + +------------------------------------------------------------------- +Mon Feb 15 09:43:22 CET 2010 - dimstar@opensuse.org + +- Update to version 4.0.3 +- Dropped screen-4.0.2-comb.diff, upstream merged. + +------------------------------------------------------------------- +Wed Dec 16 00:26:00 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Fri Jul 31 02:17:31 CEST 2009 - crrodriguez@suse.de + +- add fedora patch for IPv6 support, this removes usage + of gethostbyname(3) + +------------------------------------------------------------------- +Tue May 26 14:22:07 CEST 2009 - mls@suse.de + +- re-add lost maxwin definition [fate#301190] + +------------------------------------------------------------------- +Wed May 14 15:31:04 CEST 2008 - jw@suse.de + +- A few lines added to docu explaining login-shells and + starting with '-' trick. + +------------------------------------------------------------------- +Thu Mar 29 13:18:47 CEST 2007 - dmueller@suse.de + +- add ncurses-devel BuildRequires + +------------------------------------------------------------------- +Mon Oct 23 16:11:47 CEST 2006 - mls@suse.de + +- fix two bugs in handling of combining characters [#214412] + +------------------------------------------------------------------- +Fri Feb 10 17:45:47 CET 2006 - mls@suse.de + +- enable support for 256 colors [#136684] + +------------------------------------------------------------------- +Thu Jan 26 15:51:26 CET 2006 - sbrabec@suse.cz + +- Added %install_info_prereq. + +------------------------------------------------------------------- +Wed Jan 25 21:41:29 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Oct 29 00:03:15 CEST 2005 - mls@suse.de + +- fix ut_time aliasing problem + +------------------------------------------------------------------- +Fri Apr 8 14:41:08 CEST 2005 - meissner@suse.de + +- execl 0 -> (char*)0. + +------------------------------------------------------------------- +Tue Sep 28 12:23:06 CEST 2004 - mls@suse.de + +- clear ti/te for xterms so that users can use xterm's scrollbar + +------------------------------------------------------------------- +Sun Sep 12 09:26:52 CEST 2004 - kukuk@suse.de + +- Don't use __P from glibc + +------------------------------------------------------------------- +Mon Feb 16 15:49:57 CET 2004 - mls@suse.de + +- fix socketdir quoting + +------------------------------------------------------------------- +Thu Feb 12 18:08:47 CET 2004 - mls@suse.de + +- update to 4.0.2 +- move sockdirs to /var/run and include them in package + +------------------------------------------------------------------- +Sat Jan 10 18:29:42 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Thu Sep 18 15:00:12 CEST 2003 - mls@suse.de + +- update to 4.0.1 (fixes another bug of the parser) + +------------------------------------------------------------------- +Fri Sep 12 15:55:41 CEST 2003 - mls@suse.de + +- fix off by one error in variable expansion + +------------------------------------------------------------------- +Fri Sep 12 14:15:04 CEST 2003 - mls@suse.de + +- don't resize xterms on startup + +------------------------------------------------------------------- +Mon Sep 8 16:53:47 CEST 2003 - mls@suse.de + +- update to 4.0.0final + +------------------------------------------------------------------- +Wed Aug 27 17:14:21 CEST 2003 - mls@suse.de + +- update to 4.0.0beta2 + +------------------------------------------------------------------- +Fri Aug 1 15:04:22 CEST 2003 - mls@suse.de + +- update to 4.0.0beta1 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Thu Mar 13 12:21:34 CET 2003 - mls@suse.de + +- update to 3.9.15: changing the window title could append + junk to the title + +------------------------------------------------------------------- +Wed Mar 12 16:25:58 CET 2003 - mls@suse.de + +- update to 3.9.14: one small docu change and a small improvement + in the windowlist command + +------------------------------------------------------------------- +Mon Feb 24 21:06:54 CET 2003 - mls@suse.de + +- update to 3.9.14beta1 +- build screen with buildroot +- remove xf86 dependency, use configure option instead +- use install-info macro to install info page + +------------------------------------------------------------------- +Tue Oct 1 14:30:55 MEST 2002 - mls@suse.de + +- fix WrapChar() scrolling region reset code to always use a + valid scrolling region (#20367) + +------------------------------------------------------------------- +Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de + +- removed bogus self-provides + +------------------------------------------------------------------- +Thu Sep 5 14:11:31 MEST 2002 - mls@suse.de + +- update to official screen-3.9.13, contains one small bug + fix + +------------------------------------------------------------------- +Thu Aug 29 14:47:42 MEST 2002 - mls@suse.de + +- update to official screen-3.9.12 + +------------------------------------------------------------------- +Mon Aug 19 15:47:22 MEST 2002 - mls@suse.de + +- update to screen-3.9.12beta2 + +------------------------------------------------------------------- +Fri Mar 8 13:44:15 CET 2002 - kukuk@suse.de + +- Add /usr/share/screen to filelist + +------------------------------------------------------------------- +Wed Mar 6 12:58:25 MET 2002 - mls@suse.de + +- disable pam support again +- fix segmentation fault in screen's reattach password check + +------------------------------------------------------------------- +Fri Feb 22 16:11:32 MET 2002 - mls@suse.de + +- fix passing of NUL bytes when recoding is active +- moved uid/gid retrieval in front of FindEncoding + +------------------------------------------------------------------- +Mon Feb 18 11:36:36 MET 2002 - mls@suse.de + +- added missing /usr/share/screen/utf8encodings files +- small patch to fix hardstatus width + +------------------------------------------------------------------- +Thu Feb 14 14:52:59 MET 2002 - mls@suse.de + +- update to official screen-3.9.11 +- enabled pam & localized dates + +------------------------------------------------------------------- +Mon Feb 11 14:06:22 MET 2002 - mls@suse.de + +- update to screen-3.9.11beta7 + +------------------------------------------------------------------- +Tue Jan 29 15:21:32 CET 2002 - okir@suse.de + +- require utempter to build; zapped s bit + +------------------------------------------------------------------- +Fri Jan 25 14:08:18 CET 2002 - okir@suse.de + +- require utempter to build + +------------------------------------------------------------------- +Wed Sep 5 18:37:09 MEST 2001 - mls@suse.de + +- nominal upgrade to screen-3.9.10 + +------------------------------------------------------------------- +Mon Sep 3 17:17:19 MEST 2001 - mls@suse.de + +- Security fix for the Multiattach-bug in /usr/bin/screen + +------------------------------------------------------------------- +Mon Jul 23 19:20:21 MEST 2001 - bk@suse.de + +- added select-fix for fifo-testcase to build on s390x + +------------------------------------------------------------------- +Fri May 25 17:22:48 MEST 2001 - mls@suse.de + +- update -> 3.9.9 + +------------------------------------------------------------------- +Tue May 8 19:37:19 MEST 2001 - mls@suse.de + +- added workaround for broken xterm to global screenrc + +------------------------------------------------------------------- +Fri Apr 27 19:46:46 MEST 2001 - mls@suse.de + +- fix screen -wipe (bugzilla bug #2990) +- fix f10 function key (bugzilla bug #4326) +- fix 0620 pty mode autodetection (bugzilla bug #6304) + +------------------------------------------------------------------- +Mon Sep 4 18:13:20 CEST 2000 - uli@suse.de + +- fix for root compromise using configurable visual bell string + +------------------------------------------------------------------- +Fri Feb 25 15:16:50 CET 2000 - kukuk@suse.de + +- Move /usr/{info,man} -> /usr/share/{info,man} + +------------------------------------------------------------------- +Fri Oct 22 15:24:29 MEST 1999 - uli@suse.de + +- update -> 3.9.5 + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Fri Nov 27 15:11:31 MET 1998 - uli@suse.de + +- Update 3.7.3 -> 3.7.6 + +---------------------------------------------------------------------------- +Wed Apr 30 15:57:14 CEST 1997 - florian@suse.de + + +- update to version 3.7.3 + +- mv /usr/etc/screenrc /etc/ + diff --git a/screen.conf b/screen.conf new file mode 100644 index 0000000..0719931 --- /dev/null +++ b/screen.conf @@ -0,0 +1,4 @@ +# Screen needs some files in /run: +d /run/screens 0755 root root - +d /run/uscreens 1777 root root - + diff --git a/screen.keyring b/screen.keyring new file mode 100644 index 0000000..5b9ae7f --- /dev/null +++ b/screen.keyring @@ -0,0 +1,14 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEY7LR/BYJKwYBBAHaRw8BAQdA4m5kbiTCVBIvof8H5gLfnthrzQUThO1Jf6Cg +AXmKk8O0MEFsZXhhbmRlciBOYXVtb3YgPGFsZXhhbmRlcl9uYXVtb3ZAb3BlbnN1 +c2Uub3JnPoiaBBMWCgBCFiEEULhhs+kw7DN1DZDtkQgyl0qSoRwFAmOy0fwCGwMF +CRLMAwAFCwkIBwIDIgIBBhUKCQgLAgQWAgMBAh4HAheAAAoJEJEIMpdKkqEcmR8A +/iPUUq/NOZDK+OGyevpgOjM4ql27sNEUw2s5lpSrtSUWAPwPp/z6MPUaCotey8DV +/9NNY4l2WqZFSEsXOod7ymytD7g4BGOy0fwSCisGAQQBl1UBBQEBB0Cd30iQQ4mh +td+nUWAq/MuTLNStoJpuptQx43LE97teQgMBCAeIfgQYFgoAJhYhBFC4YbPpMOwz +dQ2Q7ZEIMpdKkqEcBQJjstH8AhsMBQkSzAMAAAoJEJEIMpdKkqEcKzQA/1YwYRl8 +arfkUA1IwJQajL9IgAyzYmHXKbLNxnTudUvgAP9uBpUML3BzCw097e49P3YcPncf +rmvea+Jn9PDEUQQlAg== +=hWrz +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/screen.pam b/screen.pam new file mode 100644 index 0000000..818f09d --- /dev/null +++ b/screen.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include common-auth +account include common-account +session include common-session +password include common-password diff --git a/screen.spec b/screen.spec new file mode 100644 index 0000000..78ec153 --- /dev/null +++ b/screen.spec @@ -0,0 +1,143 @@ +# +# spec file for package screen +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} > 1310 +%define rundir /run +%else +%define rundir %{_localstatedir}/run +%endif +Name: screen +Version: 4.9.1 +Release: 0 +Summary: A program to allow multiple screens on a VT100/ANSI Terminal +License: GPL-3.0-or-later +Group: System/Console +URL: https://www.gnu.org/software/screen/ +Source: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz +Source1: screen.conf +Source2: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz.sig +Source3: https://savannah.gnu.org/people/viewgpg.php?user_id=99366#/%{name}.keyring +Source4: screen.pam +Patch0: global_screenrc.patch +Patch6: libtinfo.diff +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: makeinfo +BuildRequires: ncurses-devel +BuildRequires: pam-devel +%if 0%{?suse_version} < 1600 +BuildRequires: utempter-devel +%endif +Requires: terminfo-base +Requires(post): permissions +%systemd_ordering + +%description +With this program you can take advantage of the multitasking abilities +of your Linux system by opening several sessions over one terminal. The +sessions can also be detached and resumed from another login terminal. + +Documentation: man page + +%prep +%setup -q +# global_screenrc.patch +%patch -P 0 +# libtinfo.diff +%patch -P 6 + +%build +sh ./autogen.sh + +CFLAGS="-DMAXWIN=1000 %{optflags}" %configure --prefix=%{_prefix} --infodir=%{_infodir} \ + --mandir=%{_mandir} \ + --with-socket-dir='(eff_uid ? "%{rundir}/uscreens" : "%{rundir}/screens")' \ + --with-sys-screenrc=%{_sysconfdir}/screenrc \ + --with-pty-group=5 \ + --enable-use-locale \ + --enable-telnet \ + --enable-pam \ + --enable-colors256 \ + --verbose + +# update Makefile so that make -j becomes reliable +:> osdef.h # so that make depend has a chance +:> comm.h # so that make depend has a chance +%make_build depend # FIXME: this should be self sufficient. +rm osdef.h # so that make will use osdef.sh +rm comm.h # so that make will use comm.sh + +%make_build + +%install +%make_install +rm -f %{buildroot}%{_bindir}/screen +mv %{buildroot}%{_bindir}/screen-%{version} %{buildroot}%{_bindir}/screen +chmod 755 %{buildroot}%{_bindir}/screen +mkdir -p %{buildroot}%{_sysconfdir} +%if 0%{?suse_version} > 1500 +mkdir -p %{buildroot}%{_pam_vendordir} +%else +mkdir -p %{buildroot}%{_sysconfdir}/pam.d +%endif +mkdir -p %{buildroot}%{_prefix}/lib +mkdir -p %{buildroot}%{_tmpfilesdir} +mkdir -p %{buildroot}%{rundir}/screens +chmod 755 %{buildroot}%{rundir}/screens +mkdir -p %{buildroot}%{rundir}/uscreens +install -m 644 screenrc %{buildroot}%{_sysconfdir}/screenrc +install -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir} +%if 0%{?suse_version} > 1500 +install -m 644 %{SOURCE4} %{buildroot}%{_pam_vendordir}/screen +%else +install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/pam.d/screen +%endif + +%files +%config %{_sysconfdir}/screenrc +%if 0%{?suse_version} > 1500 +%{_pam_vendordir}/screen +%else +%config %{_sysconfdir}/pam.d/screen +%endif +%attr(555,root,root) %{_bindir}/screen +%dir %{_datadir}/screen +%{_tmpfilesdir}/screen.conf +%{_datadir}/screen/utf8encodings +%{_infodir}/screen.info*%{ext_info} +%{_mandir}/man1/screen.1%{?ext_man} +%license COPYING + +%if 0%{?suse_version} > 1500 +%pre +# Prepare for migration to /usr/etc; save any old .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done + +%posttrans +# Migration to /usr/etc, restore just created .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%post +%tmpfiles_create %{_tmpfilesdir}/screen.conf + +%changelog -- 2.51.1 From 4b6f82b57742d445c86fecdf044a862bb3489db5c07e91fddd33f6d04fc5998f Mon Sep 17 00:00:00 2001 From: Alexander Naumov Date: Thu, 27 Mar 2025 00:08:57 +0000 Subject: [PATCH 2/4] - K&R source is not ready for C23 used by default with GCC 15. Use -std=gnu89 instead. OBS-URL: https://build.opensuse.org/package/show/Base:System/screen?expand=0&rev=109 --- .gitattributes | 23 ++ .gitignore | 1 + global_screenrc.patch | 9 + libtinfo.diff | 15 + screen-4.9.1.tar.gz | 3 + screen-4.9.1.tar.gz.sig | 7 + screen.changes | 722 ++++++++++++++++++++++++++++++++++++++++ screen.conf | 4 + screen.keyring | 14 + screen.pam | 5 + screen.spec | 143 ++++++++ 11 files changed, 946 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 global_screenrc.patch create mode 100644 libtinfo.diff create mode 100644 screen-4.9.1.tar.gz create mode 100644 screen-4.9.1.tar.gz.sig create mode 100644 screen.changes create mode 100644 screen.conf create mode 100644 screen.keyring create mode 100644 screen.pam create mode 100644 screen.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/global_screenrc.patch b/global_screenrc.patch new file mode 100644 index 0000000..d3a5a68 --- /dev/null +++ b/global_screenrc.patch @@ -0,0 +1,9 @@ +Index: screenrc +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ screenrc 2011-11-21 15:47:46.649112381 +0100 +@@ -0,0 +1,4 @@ ++# this is the global screenrc file. Handle with care. ++ ++termcapinfo xterm* G0:is=\E[?4l\E>:ti@:te@ ++termcapinfo linux me=\E[m:AX diff --git a/libtinfo.diff b/libtinfo.diff new file mode 100644 index 0000000..4709dc5 --- /dev/null +++ b/libtinfo.diff @@ -0,0 +1,15 @@ +Index: configure.ac +=================================================================== +--- configure.ac.orig ++++ configure.ac +@@ -689,8 +689,8 @@ AC_TRY_LINK([ + ],[ + tgetent((char *)0, (char *)0); + ],, +-LIBS="-ltermlib $olibs" +-AC_CHECKING(libtermlib) ++LIBS="-ltinfo $olibs" ++AC_CHECKING(libtinfo) + AC_TRY_LINK([ + #include + #include diff --git a/screen-4.9.1.tar.gz b/screen-4.9.1.tar.gz new file mode 100644 index 0000000..cf2c906 --- /dev/null +++ b/screen-4.9.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69 +size 1040785 diff --git a/screen-4.9.1.tar.gz.sig b/screen-4.9.1.tar.gz.sig new file mode 100644 index 0000000..80d0ba3 --- /dev/null +++ b/screen-4.9.1.tar.gz.sig @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYIAB0WIQRQuGGz6TDsM3UNkO2RCDKXSpKhHAUCZN4mxAAKCRCRCDKXSpKh +HE8FAP9o9aDPuc/grybmgFZDF3pJloelr0ABS4fHcCHPJ4PaPAD+PE2xBYrCcG/T +pSvdNInaYr3lRbN9iQkIAYFh66bLmQo= +=izsm +-----END PGP SIGNATURE----- diff --git a/screen.changes b/screen.changes new file mode 100644 index 0000000..f39898f --- /dev/null +++ b/screen.changes @@ -0,0 +1,722 @@ +------------------------------------------------------------------- +Fri Mar 21 12:37:40 UTC 2025 - Richard Biener + +- K&R source is not ready for C23 used by default with GCC 15. + Use -std=gnu89 instead. + +------------------------------------------------------------------- +Thu Jan 16 10:49:16 UTC 2025 - Thorsten Kukuk + +- Disable libutempter, it doesn't work anymore with the switch + from utmp to systemd-logind and only creates error messages + +------------------------------------------------------------------- +Mon Feb 26 13:12:12 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Wed Sep 13 12:01:14 UTC 2023 - Dirk Müller + +- update to 4.9.1 (bsc#1210272, CVE-2023-24626): + * Support stop/parity bits on serial port + * Add needed system headers in checks and return values + for implicit function declarations + * Avoid zombies after shell exit + * Missed signal sending permission check on failed + query messages (CVE-2023-24626) + * manpage fixes + * source code fixes during cleanup + * UTF-8 encoding can emit invalid UTF-8 sequences + * for out of range unicode values + +------------------------------------------------------------------- +Fri Dec 16 22:18:05 UTC 2022 - Callum Farmer + +- Use %_pam_vendordir + +------------------------------------------------------------------- +Mon Dec 12 14:28:14 UTC 2022 - Stefan Schubert + +- Migration PAM settings to /usr/etc: Saving user changed + configuration files in /etc and restoring them while an RPM + update. + +------------------------------------------------------------------- +Sat Feb 26 11:08:20 UTC 2022 - Andreas Stieger + +- GNU Screen 4.9.0: + * Hardstatus option for used encoding (escape string '%e') + * fix combining char handling that could lead to a segfault + * CVE-2021-26937: possible denial of service via a crafted UTF-8 + character sequence, upstream fix replacing dropped combchar.diff + (boo#1182092) + * make screen exit code be 0 when checking --help + * session names limit is 80 symbols + * option -X ignores specified user in multiuser env +- remove deprecated texinfo packaging macros + +------------------------------------------------------------------- +Fri Feb 12 15:37:48 CET 2021 - mls@suse.de + +- Fix double width combining char handling that could lead + to a segfault [bnc#1182092] + new patch: combchar.diff + +------------------------------------------------------------------- +Mon Nov 30 13:38:31 UTC 2020 - Dominique Leuenberger + +- Use %_tmpfilesdir instead of hardcoding a path for + systemd-tmpfiles config files. +- Do not create directories before uninstalling (?) the package. + The /run/(u)screen diretories are created in the %post section. +- Do not ghost package /run/uscreens: the directory is dynamically + created during boot. Of course it would be nice to be able to + identify what package creates this, but for that we should rather + have a rpm/systemd-tmpfiles integration hook. The main problem + with the ghost is the suid flag, which breaks rpm -V. permissions + no longer lists /run/uscreens, so verify_permission cannot apply. +- Add %systemd_ordering: give zypp a hint that screen shall be + installed after systemd, so that systemd-tmpfiles already exists. + +------------------------------------------------------------------- +Tue Sep 8 13:30:58 UTC 2020 - Matthias Gerstner + +- no longer invoke permissions/chkstat for directory handled by + systemd-tmpfiles (bsc#1171879) + +------------------------------------------------------------------- +Thu Feb 06 21:44:38 UTC 2020 - alexander_naumov@opensuse.org + +- GNU Screen 4.8.0: + * Improves startup time by only polling for already open + files to close + * Fixes: + - Fix for segfault if termcap doesn't have Km entry + - Make screen exit code be 0 when checking --version + - Fix potential memory corruption + +------------------------------------------------------------------- +Wed Oct 02 09:09:20 UTC 2019 - alexander_naumov@opensuse.org + +- GNU Screen 4.7.0: + * Adds support for SGR (1006) mouse mode + * Adds support for OSC 11 + * Updates Unicode ambiguous and wide tables to 12.1.0 + * Fix: cross-compilation support (bug #43223) + * Fix: a lot of manpage fixes and cleanups + +------------------------------------------------------------------- +Fri Feb 15 23:31:00 UTC 2019 - Jan Engelhardt + +- Use proper Requires(*), ticking off a FIXME as fixed. + +------------------------------------------------------------------- +Tue Apr 3 15:00:27 CEST 2018 - kukuk@suse.de + +- Use %license instead of %doc [bsc#1082318] + +------------------------------------------------------------------- +Thu Dec 21 14:23:56 CET 2017 - mls@suse.de + +- install pam file to make screen locking work again [bnc#1056192] + new file: screen.pam + +------------------------------------------------------------------- +Mon Oct 23 15:22:10 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.2: + * revert changes to cursor position restore behavour + * set freed pointer to NULL + * documentation fixes + * fix windowlist crashes + +------------------------------------------------------------------- +Thu Jul 11 15:03:24 UTC 2017 - alexander_naumov@opensuse.org + +- adding %set_permissions and %verify_permissions macros + for /run/uscreens/ +- adding %tmpfiles_create macro for /usr/lib/tmpfiles.d/screen.conf + +------------------------------------------------------------------- +Thu Jul 11 14:30:37 UTC 2017 - alexander_naumov@opensuse.org + +- spec file: adding PreReq for permissions + +------------------------------------------------------------------- +Thu Jul 11 13:59:01 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.1: bugfix release + * problems with starting session in some cases + * parallel make install + * segfault when querying info on nonUTF locale + +------------------------------------------------------------------- +Thu Jun 29 12:24:55 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.0: + * Update Unicode wide tables to 9.0 + * Support more serial speeds + * Improved namespaces support + * Migrate from fifos to sockets + * Start viewing scrollback at first line of output + +- drop upstreamed 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Thu May 11 15:46:12 UTC 2017 - jengelh@inai.de + +- Ensure /usr/share/terminfo/s/screen is present when screen is + [boo#812067]. + +------------------------------------------------------------------- +Sat Feb 25 20:34:40 UTC 2017 - astieger@suse.com + +- GNU Screen 4.5.1: + * logfile permissions problem (CVE-2017-5618) bsc#1021743 + This issues does not affect the SUSE package as setuid/setid + is not used. +- drop upstreamed fix_enable_logfile.patch +- add 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Fri Jan 27 22:32:17 UTC 2017 - alexander_naumov@opensuse.org + +- Add fix_enable_logfile.patch + * fix loging screen API (bnc#1020870) + * fix privilege escalation + +------------------------------------------------------------------- +Thu Jan 17 23:11:38 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.5.0: + * It's possible to specify logfile's name via command line + parameter '-L'. + + Fixes: + * broken handling of "bind u digraph U+" + * crash with long $TERM + * crash when bumping blank window + * build for AIX + * %x improperly separating arguments + * install with custom DESTDIR + +------------------------------------------------------------------- +Wed Aug 17 14:02:33 UTC 2016 - alexander_naumov@opensuse.org + +- Remove %postun - it tried to delete "screen.info.gz" file + second time. + +------------------------------------------------------------------- +Thu Aug 11 17:32:44 UTC 2016 - alexander_naumov@opensuse.org + +- GNU screen 4.4.0: + * Support up to 24 function keys + * 'logfile' command, starts logging into new file upon changing + * Fix runtime issues + +------------------------------------------------------------------- +Wed Aug 19 08:35:03 UTC 2015 - meissner@suse.com + +- enable pam support, so screenlocking uses the password of the + current user. + +------------------------------------------------------------------- +Wed Jul 1 10:13:31 UTC 2015 - trenn@suse.de + +- Add license file as documentation + +------------------------------------------------------------------- +Wed Jul 01 09:48:45 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.1 + * This is a bug fix release. + * Visible content get messed up after window resize + +------------------------------------------------------------------- +Mon Jun 15 09:28:15 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.0: + * Introduce Xx string escape showing the executed command of a window + * Implement dead/zombie window polling, allowing for auto reconnecting + * Allow setting hardstatus on first line + * 'sort' command sorting windows by title + * 'bumpleft', 'bumpright' - manually move windows on window list + * 'collapse' removing numbering 'gaps' between windows, by renumbering + * 'windows' command now accepts arguments for use with querying + +- packaging changes: + * move screen-poll-zombies.patch to savannah git + * move screen-4.0.3-ipv6.patch to savannah git + * move sort_command.patch to savannah git + * move xX_string_escape.patch to savannah git + * move screen_enhance_windows_list.patch to savannah git + +------------------------------------------------------------------- +Fri May 2 19:42:12 UTC 2014 - andreas.stieger@gmx.de + +- GNU screen 4.2.1: + * allow for terminal with long $TERM (up to 32 characters) + (already patched in this package previously) + * allow to use long logins + * documentation fixes + * runtime fixes +- packaging changes: + * use source URLs + * verify source signatures + * drop screen-man-loginshell.diff, equivalent change upstream + * drop term_too_long.diff, equivalent change upstream + * drop use_locale.diff, applied upstream + * drop msg_version_3.patch, obsolete after upstream changes + +------------------------------------------------------------------- +Thu Apr 17 10:23:40 UTC 2014 - jw@suse.com + +- Update to 4.2.0 as released on screen-devel@gnu.org yesterday. + Thank you Amadeusz! + * keep libtinfo.diff (from coolo 2011, why exactly?) + * keep global_screenrc.patch (renamed from screen-4.0.2.dif) + * keep screen-man-loginshell.diff (to be upstreamed) + * dropped screen-__P.diff (not needed) + * keep term_too_long.diff (savannah#30880, to be upstreamed) + * keep use_locale.diff (from lnt-sysadmin@lists.lrz.de 2012, check?) + * keep screen-4.0.3-ipv6.patch (builtin telnet, to be upstreamed) + * keep screen_enhance_windows_list.patch (to be upstreamed) + * keep screen-poll-zombies.patch (to be upstreamed) + * keep xX_string_escape.patch (renamed from show_all_active.patch, to be upstreamed) + * keep sort_command.patch (from trenn 2011, to be upstreamed) + * added msg_version_3.patch (ouch, incompatible protocol, to be upstreamed) + +- added %rundir with /var/run for 1310 and before; but /run afterwards. + aj advocates /run for Factory; for 1310 it was banned by + suse-filelist-forbidden-fhs23 + +------------------------------------------------------------------- +Tue Apr 15 14:27:09 UTC 2014 - aj@suse.com + +- Fix comment. + +------------------------------------------------------------------- +Tue Apr 15 10:04:14 UTC 2014 - aj@suse.com + +- Use /run instead of /var/run. + +------------------------------------------------------------------- +Fri Sep 13 15:17:12 CEST 2013 - mls@suse.de + +- update to current 4.0.4 git to get support for non-bmp unicode + * remove no longer needed mappedcmd.diff + * remove no longer needed styroptcrash.diff +- fix potential buffer overrun in show_all_active.patch +- redo combine screen_enhance_windows_list_1_3.patch, + screen_enhance_windows_list_2_3.patch, + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + into screen_enhance_windows_list.patch. + Do not mess with the old %w behaviour, just add support for the + windows command argument. Fixes bnc#808565. + +------------------------------------------------------------------- +Sun Mar 24 10:57:09 UTC 2013 - trenn@suse.de + +- Patch screen_enhance_windows_list_1_3.patch changed wW string escapes + in an unintended way. + Fix this by ignoring longflg and behave the way wW string esacpes + behaved with adding addtional L escape. (So %w is now what %Lw was before + all these changes. This should be a minor, acceptable change as it was + undocumented and it buys quite some code cleanup with it.). Patch is: + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + +------------------------------------------------------------------- +Mon Feb 18 09:04:34 UTC 2013 - trenn@suse.de + +- Introduce Xx string escape showing the executed command of a window + patch: show_all_active.patch + +------------------------------------------------------------------- +Tue Feb 5 19:06:46 UTC 2013 - trenn@suse.de + +- Add zombie and enhance windows commands + screen-poll-zombies.patch: Dead windows will be restarted after + a specified timeout (if enabled) + screen_enhance_windows_list_1_3.patch: + Cleanup window flags processing. This leads to a slight + output change in "Ww" string escapes (window list), but these + should be rather seldom used and flags are still shown. + screen_enhance_windows_list_2_3.patch: + Enhance windows command with an optional string escape based + parameter which also removes the output size (1024 bytes) + restriction (only if param is passed) of the windows command. + If you used captions with "%w" before, you can simulate the old + behaviour with "%-w%n* %t%+w". +- Only Require makeinfo for openSUSE versions 11.4 and above. + This requirement did not exist in earlier versions, now the package + builds again for example against SLES 11 (11.4 based). + +------------------------------------------------------------------- +Thu Oct 25 13:11:20 UTC 2012 - trenn@suse.de + +- Fix sort command to not stop at window gaps. + That can happen if windows got deleted and the window numbers do not + increment sequentially anymore. + +------------------------------------------------------------------- +Tue Oct 9 07:47:52 UTC 2012 - lnt-sysadmin@lists.lrz.de + +- add use_locale.diff to fix --enable-use-locale configure option + +------------------------------------------------------------------- +Thu Sep 13 13:52:04 CEST 2012 - mls@suse.de + +- add prereq coreutils so that mkdir works [bnc#780033] + +------------------------------------------------------------------- +Sat Sep 8 11:07:44 UTC 2012 - idonmez@suse.com + +- Add build dependency on makeinfo + +------------------------------------------------------------------- +Wed Aug 8 19:56:19 CEST 2012 - mls@suse.de + +- fix crash when doing 'screen -d -r' inside of screen + +------------------------------------------------------------------- +Tue Aug 7 17:08:55 CEST 2012 - mls@suse.de + +- add mappedcmd.diff to make ^A DEL work again + +------------------------------------------------------------------- +Fri Jun 8 18:03:57 CEST 2012 - mls@suse.de + +- update to screen-4.0.4devel + * support for multiple layouts + * no more stuck screen sessions + +------------------------------------------------------------------- +Mon Nov 21 14:55:17 UTC 2011 - coolo@suse.com + +- fix build with latest ncurses (split tinfo) + +------------------------------------------------------------------- +Fri Nov 18 13:09:57 UTC 2011 - jw@suse.com + +- mkdir /var/run/*screen both immediatly and via systemd. + +------------------------------------------------------------------- +Mon Sep 19 14:00:10 UTC 2011 - trenn@suse.de + +- Add sort command +- convert maxwin99bug.patch into a patch format quilt understands + +------------------------------------------------------------------- +Wed Jul 6 08:13:07 UTC 2011 - aj@suse.de + +- Use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d. + +------------------------------------------------------------------- +Mon Jan 31 15:14:38 UTC 2011 - jw@novell.com + +- bugfix bnc#668306, a buffer overflow with '%d'. + Added maxwin99bug.patch + This is already upstream, but was never released. + +------------------------------------------------------------------- +Fri Dec 10 19:40:12 UTC 2010 - jw@novell.com + +- term_too_long.patch added. + corresponds to savannah#30880 + +------------------------------------------------------------------- +Wed Nov 3 14:54:47 UTC 2010 - aj@suse.de + +- Add /etc/tmpfiles.d/screen.conf for /var/run on tmpfs. + +------------------------------------------------------------------- +Thu Sep 9 18:43:01 UTC 2010 - aj@suse.de + +- BuildRequire utempter-devel + +------------------------------------------------------------------- +Sun May 2 13:06:35 UTC 2010 - aj@suse.de + +- /var/run directories are created by /etc/tmpdirs.d/01_aaa_base. + +------------------------------------------------------------------- +Mon Feb 15 09:43:22 CET 2010 - dimstar@opensuse.org + +- Update to version 4.0.3 +- Dropped screen-4.0.2-comb.diff, upstream merged. + +------------------------------------------------------------------- +Wed Dec 16 00:26:00 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Fri Jul 31 02:17:31 CEST 2009 - crrodriguez@suse.de + +- add fedora patch for IPv6 support, this removes usage + of gethostbyname(3) + +------------------------------------------------------------------- +Tue May 26 14:22:07 CEST 2009 - mls@suse.de + +- re-add lost maxwin definition [fate#301190] + +------------------------------------------------------------------- +Wed May 14 15:31:04 CEST 2008 - jw@suse.de + +- A few lines added to docu explaining login-shells and + starting with '-' trick. + +------------------------------------------------------------------- +Thu Mar 29 13:18:47 CEST 2007 - dmueller@suse.de + +- add ncurses-devel BuildRequires + +------------------------------------------------------------------- +Mon Oct 23 16:11:47 CEST 2006 - mls@suse.de + +- fix two bugs in handling of combining characters [#214412] + +------------------------------------------------------------------- +Fri Feb 10 17:45:47 CET 2006 - mls@suse.de + +- enable support for 256 colors [#136684] + +------------------------------------------------------------------- +Thu Jan 26 15:51:26 CET 2006 - sbrabec@suse.cz + +- Added %install_info_prereq. + +------------------------------------------------------------------- +Wed Jan 25 21:41:29 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Oct 29 00:03:15 CEST 2005 - mls@suse.de + +- fix ut_time aliasing problem + +------------------------------------------------------------------- +Fri Apr 8 14:41:08 CEST 2005 - meissner@suse.de + +- execl 0 -> (char*)0. + +------------------------------------------------------------------- +Tue Sep 28 12:23:06 CEST 2004 - mls@suse.de + +- clear ti/te for xterms so that users can use xterm's scrollbar + +------------------------------------------------------------------- +Sun Sep 12 09:26:52 CEST 2004 - kukuk@suse.de + +- Don't use __P from glibc + +------------------------------------------------------------------- +Mon Feb 16 15:49:57 CET 2004 - mls@suse.de + +- fix socketdir quoting + +------------------------------------------------------------------- +Thu Feb 12 18:08:47 CET 2004 - mls@suse.de + +- update to 4.0.2 +- move sockdirs to /var/run and include them in package + +------------------------------------------------------------------- +Sat Jan 10 18:29:42 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Thu Sep 18 15:00:12 CEST 2003 - mls@suse.de + +- update to 4.0.1 (fixes another bug of the parser) + +------------------------------------------------------------------- +Fri Sep 12 15:55:41 CEST 2003 - mls@suse.de + +- fix off by one error in variable expansion + +------------------------------------------------------------------- +Fri Sep 12 14:15:04 CEST 2003 - mls@suse.de + +- don't resize xterms on startup + +------------------------------------------------------------------- +Mon Sep 8 16:53:47 CEST 2003 - mls@suse.de + +- update to 4.0.0final + +------------------------------------------------------------------- +Wed Aug 27 17:14:21 CEST 2003 - mls@suse.de + +- update to 4.0.0beta2 + +------------------------------------------------------------------- +Fri Aug 1 15:04:22 CEST 2003 - mls@suse.de + +- update to 4.0.0beta1 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Thu Mar 13 12:21:34 CET 2003 - mls@suse.de + +- update to 3.9.15: changing the window title could append + junk to the title + +------------------------------------------------------------------- +Wed Mar 12 16:25:58 CET 2003 - mls@suse.de + +- update to 3.9.14: one small docu change and a small improvement + in the windowlist command + +------------------------------------------------------------------- +Mon Feb 24 21:06:54 CET 2003 - mls@suse.de + +- update to 3.9.14beta1 +- build screen with buildroot +- remove xf86 dependency, use configure option instead +- use install-info macro to install info page + +------------------------------------------------------------------- +Tue Oct 1 14:30:55 MEST 2002 - mls@suse.de + +- fix WrapChar() scrolling region reset code to always use a + valid scrolling region (#20367) + +------------------------------------------------------------------- +Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de + +- removed bogus self-provides + +------------------------------------------------------------------- +Thu Sep 5 14:11:31 MEST 2002 - mls@suse.de + +- update to official screen-3.9.13, contains one small bug + fix + +------------------------------------------------------------------- +Thu Aug 29 14:47:42 MEST 2002 - mls@suse.de + +- update to official screen-3.9.12 + +------------------------------------------------------------------- +Mon Aug 19 15:47:22 MEST 2002 - mls@suse.de + +- update to screen-3.9.12beta2 + +------------------------------------------------------------------- +Fri Mar 8 13:44:15 CET 2002 - kukuk@suse.de + +- Add /usr/share/screen to filelist + +------------------------------------------------------------------- +Wed Mar 6 12:58:25 MET 2002 - mls@suse.de + +- disable pam support again +- fix segmentation fault in screen's reattach password check + +------------------------------------------------------------------- +Fri Feb 22 16:11:32 MET 2002 - mls@suse.de + +- fix passing of NUL bytes when recoding is active +- moved uid/gid retrieval in front of FindEncoding + +------------------------------------------------------------------- +Mon Feb 18 11:36:36 MET 2002 - mls@suse.de + +- added missing /usr/share/screen/utf8encodings files +- small patch to fix hardstatus width + +------------------------------------------------------------------- +Thu Feb 14 14:52:59 MET 2002 - mls@suse.de + +- update to official screen-3.9.11 +- enabled pam & localized dates + +------------------------------------------------------------------- +Mon Feb 11 14:06:22 MET 2002 - mls@suse.de + +- update to screen-3.9.11beta7 + +------------------------------------------------------------------- +Tue Jan 29 15:21:32 CET 2002 - okir@suse.de + +- require utempter to build; zapped s bit + +------------------------------------------------------------------- +Fri Jan 25 14:08:18 CET 2002 - okir@suse.de + +- require utempter to build + +------------------------------------------------------------------- +Wed Sep 5 18:37:09 MEST 2001 - mls@suse.de + +- nominal upgrade to screen-3.9.10 + +------------------------------------------------------------------- +Mon Sep 3 17:17:19 MEST 2001 - mls@suse.de + +- Security fix for the Multiattach-bug in /usr/bin/screen + +------------------------------------------------------------------- +Mon Jul 23 19:20:21 MEST 2001 - bk@suse.de + +- added select-fix for fifo-testcase to build on s390x + +------------------------------------------------------------------- +Fri May 25 17:22:48 MEST 2001 - mls@suse.de + +- update -> 3.9.9 + +------------------------------------------------------------------- +Tue May 8 19:37:19 MEST 2001 - mls@suse.de + +- added workaround for broken xterm to global screenrc + +------------------------------------------------------------------- +Fri Apr 27 19:46:46 MEST 2001 - mls@suse.de + +- fix screen -wipe (bugzilla bug #2990) +- fix f10 function key (bugzilla bug #4326) +- fix 0620 pty mode autodetection (bugzilla bug #6304) + +------------------------------------------------------------------- +Mon Sep 4 18:13:20 CEST 2000 - uli@suse.de + +- fix for root compromise using configurable visual bell string + +------------------------------------------------------------------- +Fri Feb 25 15:16:50 CET 2000 - kukuk@suse.de + +- Move /usr/{info,man} -> /usr/share/{info,man} + +------------------------------------------------------------------- +Fri Oct 22 15:24:29 MEST 1999 - uli@suse.de + +- update -> 3.9.5 + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Fri Nov 27 15:11:31 MET 1998 - uli@suse.de + +- Update 3.7.3 -> 3.7.6 + +---------------------------------------------------------------------------- +Wed Apr 30 15:57:14 CEST 1997 - florian@suse.de + + +- update to version 3.7.3 + +- mv /usr/etc/screenrc /etc/ + diff --git a/screen.conf b/screen.conf new file mode 100644 index 0000000..0719931 --- /dev/null +++ b/screen.conf @@ -0,0 +1,4 @@ +# Screen needs some files in /run: +d /run/screens 0755 root root - +d /run/uscreens 1777 root root - + diff --git a/screen.keyring b/screen.keyring new file mode 100644 index 0000000..5b9ae7f --- /dev/null +++ b/screen.keyring @@ -0,0 +1,14 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEY7LR/BYJKwYBBAHaRw8BAQdA4m5kbiTCVBIvof8H5gLfnthrzQUThO1Jf6Cg +AXmKk8O0MEFsZXhhbmRlciBOYXVtb3YgPGFsZXhhbmRlcl9uYXVtb3ZAb3BlbnN1 +c2Uub3JnPoiaBBMWCgBCFiEEULhhs+kw7DN1DZDtkQgyl0qSoRwFAmOy0fwCGwMF +CRLMAwAFCwkIBwIDIgIBBhUKCQgLAgQWAgMBAh4HAheAAAoJEJEIMpdKkqEcmR8A +/iPUUq/NOZDK+OGyevpgOjM4ql27sNEUw2s5lpSrtSUWAPwPp/z6MPUaCotey8DV +/9NNY4l2WqZFSEsXOod7ymytD7g4BGOy0fwSCisGAQQBl1UBBQEBB0Cd30iQQ4mh +td+nUWAq/MuTLNStoJpuptQx43LE97teQgMBCAeIfgQYFgoAJhYhBFC4YbPpMOwz +dQ2Q7ZEIMpdKkqEcBQJjstH8AhsMBQkSzAMAAAoJEJEIMpdKkqEcKzQA/1YwYRl8 +arfkUA1IwJQajL9IgAyzYmHXKbLNxnTudUvgAP9uBpUML3BzCw097e49P3YcPncf +rmvea+Jn9PDEUQQlAg== +=hWrz +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/screen.pam b/screen.pam new file mode 100644 index 0000000..818f09d --- /dev/null +++ b/screen.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include common-auth +account include common-account +session include common-session +password include common-password diff --git a/screen.spec b/screen.spec new file mode 100644 index 0000000..83b35e5 --- /dev/null +++ b/screen.spec @@ -0,0 +1,143 @@ +# +# spec file for package screen +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} > 1310 +%define rundir /run +%else +%define rundir %{_localstatedir}/run +%endif +Name: screen +Version: 4.9.1 +Release: 0 +Summary: A program to allow multiple screens on a VT100/ANSI Terminal +License: GPL-3.0-or-later +Group: System/Console +URL: https://www.gnu.org/software/screen/ +Source: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz +Source1: screen.conf +Source2: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz.sig +Source3: https://savannah.gnu.org/people/viewgpg.php?user_id=99366#/%{name}.keyring +Source4: screen.pam +Patch0: global_screenrc.patch +Patch6: libtinfo.diff +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: makeinfo +BuildRequires: ncurses-devel +BuildRequires: pam-devel +%if 0%{?suse_version} < 1600 +BuildRequires: utempter-devel +%endif +Requires: terminfo-base +Requires(post): permissions +%systemd_ordering + +%description +With this program you can take advantage of the multitasking abilities +of your Linux system by opening several sessions over one terminal. The +sessions can also be detached and resumed from another login terminal. + +Documentation: man page + +%prep +%setup -q +# global_screenrc.patch +%patch -P 0 +# libtinfo.diff +%patch -P 6 + +%build +sh ./autogen.sh + +CFLAGS="-DMAXWIN=1000 %{optflags} -std=gnu89" %configure --prefix=%{_prefix} --infodir=%{_infodir} \ + --mandir=%{_mandir} \ + --with-socket-dir='(eff_uid ? "%{rundir}/uscreens" : "%{rundir}/screens")' \ + --with-sys-screenrc=%{_sysconfdir}/screenrc \ + --with-pty-group=5 \ + --enable-use-locale \ + --enable-telnet \ + --enable-pam \ + --enable-colors256 \ + --verbose + +# update Makefile so that make -j becomes reliable +:> osdef.h # so that make depend has a chance +:> comm.h # so that make depend has a chance +%make_build depend # FIXME: this should be self sufficient. +rm osdef.h # so that make will use osdef.sh +rm comm.h # so that make will use comm.sh + +%make_build + +%install +%make_install +rm -f %{buildroot}%{_bindir}/screen +mv %{buildroot}%{_bindir}/screen-%{version} %{buildroot}%{_bindir}/screen +chmod 755 %{buildroot}%{_bindir}/screen +mkdir -p %{buildroot}%{_sysconfdir} +%if 0%{?suse_version} > 1500 +mkdir -p %{buildroot}%{_pam_vendordir} +%else +mkdir -p %{buildroot}%{_sysconfdir}/pam.d +%endif +mkdir -p %{buildroot}%{_prefix}/lib +mkdir -p %{buildroot}%{_tmpfilesdir} +mkdir -p %{buildroot}%{rundir}/screens +chmod 755 %{buildroot}%{rundir}/screens +mkdir -p %{buildroot}%{rundir}/uscreens +install -m 644 screenrc %{buildroot}%{_sysconfdir}/screenrc +install -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir} +%if 0%{?suse_version} > 1500 +install -m 644 %{SOURCE4} %{buildroot}%{_pam_vendordir}/screen +%else +install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/pam.d/screen +%endif + +%files +%config %{_sysconfdir}/screenrc +%if 0%{?suse_version} > 1500 +%{_pam_vendordir}/screen +%else +%config %{_sysconfdir}/pam.d/screen +%endif +%attr(555,root,root) %{_bindir}/screen +%dir %{_datadir}/screen +%{_tmpfilesdir}/screen.conf +%{_datadir}/screen/utf8encodings +%{_infodir}/screen.info*%{ext_info} +%{_mandir}/man1/screen.1%{?ext_man} +%license COPYING + +%if 0%{?suse_version} > 1500 +%pre +# Prepare for migration to /usr/etc; save any old .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done + +%posttrans +# Migration to /usr/etc, restore just created .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%post +%tmpfiles_create %{_tmpfilesdir}/screen.conf + +%changelog -- 2.51.1 From 1faa42bc63d14ad564444e53deb5fe4a697b49051f3410587a6f24a9a7fb4d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Thu, 22 May 2025 11:34:03 +0000 Subject: [PATCH 3/4] - do not chmod the tty for multiattach, rely on tty fd passing instead [bsc#1242269] [CVE-2025-46802] OBS-URL: https://build.opensuse.org/package/show/Base:System/screen?expand=0&rev=111 --- .gitattributes | 23 ++ .gitignore | 1 + global_screenrc.patch | 9 + libtinfo.diff | 15 + multicont.diff | 44 +++ nottychmod.diff | 113 +++++++ screen-4.9.1.tar.gz | 3 + screen-4.9.1.tar.gz.sig | 7 + screen.changes | 730 ++++++++++++++++++++++++++++++++++++++++ screen.conf | 4 + screen.keyring | 14 + screen.pam | 5 + screen.spec | 150 +++++++++ sendfdcont.diff | 44 +++ 14 files changed, 1162 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 global_screenrc.patch create mode 100644 libtinfo.diff create mode 100644 multicont.diff create mode 100644 nottychmod.diff create mode 100644 screen-4.9.1.tar.gz create mode 100644 screen-4.9.1.tar.gz.sig create mode 100644 screen.changes create mode 100644 screen.conf create mode 100644 screen.keyring create mode 100644 screen.pam create mode 100644 screen.spec create mode 100644 sendfdcont.diff diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/global_screenrc.patch b/global_screenrc.patch new file mode 100644 index 0000000..d3a5a68 --- /dev/null +++ b/global_screenrc.patch @@ -0,0 +1,9 @@ +Index: screenrc +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ screenrc 2011-11-21 15:47:46.649112381 +0100 +@@ -0,0 +1,4 @@ ++# this is the global screenrc file. Handle with care. ++ ++termcapinfo xterm* G0:is=\E[?4l\E>:ti@:te@ ++termcapinfo linux me=\E[m:AX diff --git a/libtinfo.diff b/libtinfo.diff new file mode 100644 index 0000000..4709dc5 --- /dev/null +++ b/libtinfo.diff @@ -0,0 +1,15 @@ +Index: configure.ac +=================================================================== +--- configure.ac.orig ++++ configure.ac +@@ -689,8 +689,8 @@ AC_TRY_LINK([ + ],[ + tgetent((char *)0, (char *)0); + ],, +-LIBS="-ltermlib $olibs" +-AC_CHECKING(libtermlib) ++LIBS="-ltinfo $olibs" ++AC_CHECKING(libtinfo) + AC_TRY_LINK([ + #include + #include diff --git a/multicont.diff b/multicont.diff new file mode 100644 index 0000000..a3bef2a --- /dev/null +++ b/multicont.diff @@ -0,0 +1,44 @@ +--- attacher.c.orig 2025-05-22 11:29:37.805021734 +0000 ++++ attacher.c 2025-05-22 11:29:42.281014540 +0000 +@@ -148,7 +148,7 @@ int how; + struct msg m; + struct stat st; + char *s; +- bool is_socket; ++ bool is_socket = 0; + + debug2("Attach: how=%d, tty=%s\n", how, attach_tty); + #ifdef MULTIUSER +@@ -225,9 +225,16 @@ int how; + strncpy(m.m_tty, attach_tty_is_in_new_ns ? attach_tty_name_in_ns : attach_tty, sizeof(m.m_tty) - 1); + m.m_tty[sizeof(m.m_tty) - 1] = 0; + +- is_socket = IsSocket(SockPath); + if (how == MSG_WINCH) + { ++#if defined(MULTIUSER) && defined(USE_SETEUID) ++ if (multiattach) ++ { ++ xseteuid(real_uid); ++ xsetegid(real_gid); ++ } ++#endif ++ is_socket = IsSocket(SockPath); + if ((lasts = MakeClientSocket(0, is_socket)) >= 0) + { + WriteMessage(lasts, &m); +@@ -238,6 +245,14 @@ int how; + + if (how == MSG_CONT) + { ++#if defined(MULTIUSER) && defined(USE_SETEUID) ++ if (multiattach) ++ { ++ xseteuid(real_uid); ++ xsetegid(real_gid); ++ } ++#endif ++ is_socket = IsSocket(SockPath); + if ((lasts = MakeClientSocket(0, is_socket)) < 0) + { + Panic(0, "Sorry, cannot contact session \"%s\" again.\r\n", diff --git a/nottychmod.diff b/nottychmod.diff new file mode 100644 index 0000000..274668c --- /dev/null +++ b/nottychmod.diff @@ -0,0 +1,113 @@ +--- attacher.c.orig 2025-05-22 11:26:20.505338847 +0000 ++++ attacher.c 2025-05-22 11:27:45.393202410 +0000 +@@ -73,7 +73,6 @@ extern int MasterPid, attach_fd; + #ifdef MULTIUSER + extern char *multi; + extern int multiattach, multi_uid, own_uid; +-extern int tty_mode, tty_oldmode; + # ifndef USE_SETEUID + static int multipipe[2]; + # endif +@@ -160,9 +159,6 @@ int how; + + if (pipe(multipipe)) + Panic(errno, "pipe"); +- if (chmod(attach_tty, 0666)) +- Panic(errno, "chmod %s", attach_tty); +- tty_oldmode = tty_mode; + eff_uid = -1; /* make UserContext fork */ + real_uid = multi_uid; + if ((ret = UserContext()) <= 0) +@@ -174,11 +170,6 @@ int how; + Panic(errno, "UserContext"); + close(multipipe[1]); + read(multipipe[0], &dummy, 1); +- if (tty_oldmode >= 0) +- { +- chmod(attach_tty, tty_oldmode); +- tty_oldmode = -1; +- } + ret = UserStatus(); + #ifdef LOCK + if (ret == SIG_LOCK) +@@ -224,9 +215,6 @@ int how; + xseteuid(multi_uid); + xseteuid(own_uid); + #endif +- if (chmod(attach_tty, 0666)) +- Panic(errno, "chmod %s", attach_tty); +- tty_oldmode = tty_mode; + } + # endif /* USE_SETEUID */ + #endif /* MULTIUSER */ +@@ -423,13 +411,6 @@ int how; + ContinuePlease = 0; + # ifndef USE_SETEUID + close(multipipe[1]); +-# else +- xseteuid(own_uid); +- if (tty_oldmode >= 0) +- if (chmod(attach_tty, tty_oldmode)) +- Panic(errno, "chmod %s", attach_tty); +- tty_oldmode = -1; +- xseteuid(real_uid); + # endif + } + #endif +@@ -505,14 +486,6 @@ AttacherFinit SIGDEFARG + close(s); + } + } +-#ifdef MULTIUSER +- if (tty_oldmode >= 0) +- { +- if (setuid(own_uid)) +- Panic(errno, "setuid"); +- chmod(attach_tty, tty_oldmode); +- } +-#endif + exit(0); + SIGRETURN; + } +--- screen.c.orig 2023-08-16 00:29:26.000000000 +0000 ++++ screen.c 2025-05-22 11:26:40.577306586 +0000 +@@ -230,8 +230,6 @@ char *multi_home; + int multi_uid; + int own_uid; + int multiattach; +-int tty_mode; +-int tty_oldmode = -1; + #endif + + char HostName[MAXSTR]; +@@ -1009,9 +1007,6 @@ int main(int ac, char** av) + + /* ttyname implies isatty */ + SetTtyname(true, &st); +-#ifdef MULTIUSER +- tty_mode = (int)st.st_mode & 0777; +-#endif + + fl = fcntl(0, F_GETFL, 0); + if (fl != -1 && (fl & (O_RDWR|O_RDONLY|O_WRONLY)) == O_RDWR) +@@ -2170,20 +2165,6 @@ DEFINE_VARARGS_FN(Panic) + if (D_userpid) + Kill(D_userpid, SIG_BYE); + } +-#ifdef MULTIUSER +- if (tty_oldmode >= 0) { +- +-# ifdef USE_SETEUID +- if (setuid(own_uid)) +- xseteuid(own_uid); /* may be a loop. sigh. */ +-# else +- setuid(own_uid); +-# endif +- +- debug1("Panic: changing back modes from %s\n", attach_tty); +- chmod(attach_tty, tty_oldmode); +- } +-#endif + eexit(1); + } + diff --git a/screen-4.9.1.tar.gz b/screen-4.9.1.tar.gz new file mode 100644 index 0000000..cf2c906 --- /dev/null +++ b/screen-4.9.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69 +size 1040785 diff --git a/screen-4.9.1.tar.gz.sig b/screen-4.9.1.tar.gz.sig new file mode 100644 index 0000000..80d0ba3 --- /dev/null +++ b/screen-4.9.1.tar.gz.sig @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYIAB0WIQRQuGGz6TDsM3UNkO2RCDKXSpKhHAUCZN4mxAAKCRCRCDKXSpKh +HE8FAP9o9aDPuc/grybmgFZDF3pJloelr0ABS4fHcCHPJ4PaPAD+PE2xBYrCcG/T +pSvdNInaYr3lRbN9iQkIAYFh66bLmQo= +=izsm +-----END PGP SIGNATURE----- diff --git a/screen.changes b/screen.changes new file mode 100644 index 0000000..1d21ad0 --- /dev/null +++ b/screen.changes @@ -0,0 +1,730 @@ +------------------------------------------------------------------- +Thu May 22 13:30:23 CEST 2025 - mls@suse.de + +- also use tty fd passing after a suspend (MSG_CONT) +- do not chmod the tty for multiattach, rely on tty fd passing + instead [bsc#1242269] [CVE-2025-46802] +- fix resume after suspend in multiuser mode + +------------------------------------------------------------------- +Fri Mar 21 12:37:40 UTC 2025 - Richard Biener + +- K&R source is not ready for C23 used by default with GCC 15. + Use -std=gnu89 instead. + +------------------------------------------------------------------- +Thu Jan 16 10:49:16 UTC 2025 - Thorsten Kukuk + +- Disable libutempter, it doesn't work anymore with the switch + from utmp to systemd-logind and only creates error messages + +------------------------------------------------------------------- +Mon Feb 26 13:12:12 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Wed Sep 13 12:01:14 UTC 2023 - Dirk Müller + +- update to 4.9.1 (bsc#1210272, CVE-2023-24626): + * Support stop/parity bits on serial port + * Add needed system headers in checks and return values + for implicit function declarations + * Avoid zombies after shell exit + * Missed signal sending permission check on failed + query messages (CVE-2023-24626) + * manpage fixes + * source code fixes during cleanup + * UTF-8 encoding can emit invalid UTF-8 sequences + * for out of range unicode values + +------------------------------------------------------------------- +Fri Dec 16 22:18:05 UTC 2022 - Callum Farmer + +- Use %_pam_vendordir + +------------------------------------------------------------------- +Mon Dec 12 14:28:14 UTC 2022 - Stefan Schubert + +- Migration PAM settings to /usr/etc: Saving user changed + configuration files in /etc and restoring them while an RPM + update. + +------------------------------------------------------------------- +Sat Feb 26 11:08:20 UTC 2022 - Andreas Stieger + +- GNU Screen 4.9.0: + * Hardstatus option for used encoding (escape string '%e') + * fix combining char handling that could lead to a segfault + * CVE-2021-26937: possible denial of service via a crafted UTF-8 + character sequence, upstream fix replacing dropped combchar.diff + (boo#1182092) + * make screen exit code be 0 when checking --help + * session names limit is 80 symbols + * option -X ignores specified user in multiuser env +- remove deprecated texinfo packaging macros + +------------------------------------------------------------------- +Fri Feb 12 15:37:48 CET 2021 - mls@suse.de + +- Fix double width combining char handling that could lead + to a segfault [bnc#1182092] + new patch: combchar.diff + +------------------------------------------------------------------- +Mon Nov 30 13:38:31 UTC 2020 - Dominique Leuenberger + +- Use %_tmpfilesdir instead of hardcoding a path for + systemd-tmpfiles config files. +- Do not create directories before uninstalling (?) the package. + The /run/(u)screen diretories are created in the %post section. +- Do not ghost package /run/uscreens: the directory is dynamically + created during boot. Of course it would be nice to be able to + identify what package creates this, but for that we should rather + have a rpm/systemd-tmpfiles integration hook. The main problem + with the ghost is the suid flag, which breaks rpm -V. permissions + no longer lists /run/uscreens, so verify_permission cannot apply. +- Add %systemd_ordering: give zypp a hint that screen shall be + installed after systemd, so that systemd-tmpfiles already exists. + +------------------------------------------------------------------- +Tue Sep 8 13:30:58 UTC 2020 - Matthias Gerstner + +- no longer invoke permissions/chkstat for directory handled by + systemd-tmpfiles (bsc#1171879) + +------------------------------------------------------------------- +Thu Feb 06 21:44:38 UTC 2020 - alexander_naumov@opensuse.org + +- GNU Screen 4.8.0: + * Improves startup time by only polling for already open + files to close + * Fixes: + - Fix for segfault if termcap doesn't have Km entry + - Make screen exit code be 0 when checking --version + - Fix potential memory corruption + +------------------------------------------------------------------- +Wed Oct 02 09:09:20 UTC 2019 - alexander_naumov@opensuse.org + +- GNU Screen 4.7.0: + * Adds support for SGR (1006) mouse mode + * Adds support for OSC 11 + * Updates Unicode ambiguous and wide tables to 12.1.0 + * Fix: cross-compilation support (bug #43223) + * Fix: a lot of manpage fixes and cleanups + +------------------------------------------------------------------- +Fri Feb 15 23:31:00 UTC 2019 - Jan Engelhardt + +- Use proper Requires(*), ticking off a FIXME as fixed. + +------------------------------------------------------------------- +Tue Apr 3 15:00:27 CEST 2018 - kukuk@suse.de + +- Use %license instead of %doc [bsc#1082318] + +------------------------------------------------------------------- +Thu Dec 21 14:23:56 CET 2017 - mls@suse.de + +- install pam file to make screen locking work again [bnc#1056192] + new file: screen.pam + +------------------------------------------------------------------- +Mon Oct 23 15:22:10 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.2: + * revert changes to cursor position restore behavour + * set freed pointer to NULL + * documentation fixes + * fix windowlist crashes + +------------------------------------------------------------------- +Thu Jul 11 15:03:24 UTC 2017 - alexander_naumov@opensuse.org + +- adding %set_permissions and %verify_permissions macros + for /run/uscreens/ +- adding %tmpfiles_create macro for /usr/lib/tmpfiles.d/screen.conf + +------------------------------------------------------------------- +Thu Jul 11 14:30:37 UTC 2017 - alexander_naumov@opensuse.org + +- spec file: adding PreReq for permissions + +------------------------------------------------------------------- +Thu Jul 11 13:59:01 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.1: bugfix release + * problems with starting session in some cases + * parallel make install + * segfault when querying info on nonUTF locale + +------------------------------------------------------------------- +Thu Jun 29 12:24:55 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.6.0: + * Update Unicode wide tables to 9.0 + * Support more serial speeds + * Improved namespaces support + * Migrate from fifos to sockets + * Start viewing scrollback at first line of output + +- drop upstreamed 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Thu May 11 15:46:12 UTC 2017 - jengelh@inai.de + +- Ensure /usr/share/terminfo/s/screen is present when screen is + [boo#812067]. + +------------------------------------------------------------------- +Sat Feb 25 20:34:40 UTC 2017 - astieger@suse.com + +- GNU Screen 4.5.1: + * logfile permissions problem (CVE-2017-5618) bsc#1021743 + This issues does not affect the SUSE package as setuid/setid + is not used. +- drop upstreamed fix_enable_logfile.patch +- add 0001-Follow-up-to-bc5ea98-fix-texinfo-syntax-errors.patch + +------------------------------------------------------------------- +Fri Jan 27 22:32:17 UTC 2017 - alexander_naumov@opensuse.org + +- Add fix_enable_logfile.patch + * fix loging screen API (bnc#1020870) + * fix privilege escalation + +------------------------------------------------------------------- +Thu Jan 17 23:11:38 UTC 2017 - alexander_naumov@opensuse.org + +- GNU Screen 4.5.0: + * It's possible to specify logfile's name via command line + parameter '-L'. + + Fixes: + * broken handling of "bind u digraph U+" + * crash with long $TERM + * crash when bumping blank window + * build for AIX + * %x improperly separating arguments + * install with custom DESTDIR + +------------------------------------------------------------------- +Wed Aug 17 14:02:33 UTC 2016 - alexander_naumov@opensuse.org + +- Remove %postun - it tried to delete "screen.info.gz" file + second time. + +------------------------------------------------------------------- +Thu Aug 11 17:32:44 UTC 2016 - alexander_naumov@opensuse.org + +- GNU screen 4.4.0: + * Support up to 24 function keys + * 'logfile' command, starts logging into new file upon changing + * Fix runtime issues + +------------------------------------------------------------------- +Wed Aug 19 08:35:03 UTC 2015 - meissner@suse.com + +- enable pam support, so screenlocking uses the password of the + current user. + +------------------------------------------------------------------- +Wed Jul 1 10:13:31 UTC 2015 - trenn@suse.de + +- Add license file as documentation + +------------------------------------------------------------------- +Wed Jul 01 09:48:45 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.1 + * This is a bug fix release. + * Visible content get messed up after window resize + +------------------------------------------------------------------- +Mon Jun 15 09:28:15 UTC 2015 - alexander_naumov@opensuse.org + +- GNU screen 4.3.0: + * Introduce Xx string escape showing the executed command of a window + * Implement dead/zombie window polling, allowing for auto reconnecting + * Allow setting hardstatus on first line + * 'sort' command sorting windows by title + * 'bumpleft', 'bumpright' - manually move windows on window list + * 'collapse' removing numbering 'gaps' between windows, by renumbering + * 'windows' command now accepts arguments for use with querying + +- packaging changes: + * move screen-poll-zombies.patch to savannah git + * move screen-4.0.3-ipv6.patch to savannah git + * move sort_command.patch to savannah git + * move xX_string_escape.patch to savannah git + * move screen_enhance_windows_list.patch to savannah git + +------------------------------------------------------------------- +Fri May 2 19:42:12 UTC 2014 - andreas.stieger@gmx.de + +- GNU screen 4.2.1: + * allow for terminal with long $TERM (up to 32 characters) + (already patched in this package previously) + * allow to use long logins + * documentation fixes + * runtime fixes +- packaging changes: + * use source URLs + * verify source signatures + * drop screen-man-loginshell.diff, equivalent change upstream + * drop term_too_long.diff, equivalent change upstream + * drop use_locale.diff, applied upstream + * drop msg_version_3.patch, obsolete after upstream changes + +------------------------------------------------------------------- +Thu Apr 17 10:23:40 UTC 2014 - jw@suse.com + +- Update to 4.2.0 as released on screen-devel@gnu.org yesterday. + Thank you Amadeusz! + * keep libtinfo.diff (from coolo 2011, why exactly?) + * keep global_screenrc.patch (renamed from screen-4.0.2.dif) + * keep screen-man-loginshell.diff (to be upstreamed) + * dropped screen-__P.diff (not needed) + * keep term_too_long.diff (savannah#30880, to be upstreamed) + * keep use_locale.diff (from lnt-sysadmin@lists.lrz.de 2012, check?) + * keep screen-4.0.3-ipv6.patch (builtin telnet, to be upstreamed) + * keep screen_enhance_windows_list.patch (to be upstreamed) + * keep screen-poll-zombies.patch (to be upstreamed) + * keep xX_string_escape.patch (renamed from show_all_active.patch, to be upstreamed) + * keep sort_command.patch (from trenn 2011, to be upstreamed) + * added msg_version_3.patch (ouch, incompatible protocol, to be upstreamed) + +- added %rundir with /var/run for 1310 and before; but /run afterwards. + aj advocates /run for Factory; for 1310 it was banned by + suse-filelist-forbidden-fhs23 + +------------------------------------------------------------------- +Tue Apr 15 14:27:09 UTC 2014 - aj@suse.com + +- Fix comment. + +------------------------------------------------------------------- +Tue Apr 15 10:04:14 UTC 2014 - aj@suse.com + +- Use /run instead of /var/run. + +------------------------------------------------------------------- +Fri Sep 13 15:17:12 CEST 2013 - mls@suse.de + +- update to current 4.0.4 git to get support for non-bmp unicode + * remove no longer needed mappedcmd.diff + * remove no longer needed styroptcrash.diff +- fix potential buffer overrun in show_all_active.patch +- redo combine screen_enhance_windows_list_1_3.patch, + screen_enhance_windows_list_2_3.patch, + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + into screen_enhance_windows_list.patch. + Do not mess with the old %w behaviour, just add support for the + windows command argument. Fixes bnc#808565. + +------------------------------------------------------------------- +Sun Mar 24 10:57:09 UTC 2013 - trenn@suse.de + +- Patch screen_enhance_windows_list_1_3.patch changed wW string escapes + in an unintended way. + Fix this by ignoring longflg and behave the way wW string esacpes + behaved with adding addtional L escape. (So %w is now what %Lw was before + all these changes. This should be a minor, acceptable change as it was + undocumented and it buys quite some code cleanup with it.). Patch is: + screen_fix_wW_string_escapes_to_nearly_old_behavior.patch + +------------------------------------------------------------------- +Mon Feb 18 09:04:34 UTC 2013 - trenn@suse.de + +- Introduce Xx string escape showing the executed command of a window + patch: show_all_active.patch + +------------------------------------------------------------------- +Tue Feb 5 19:06:46 UTC 2013 - trenn@suse.de + +- Add zombie and enhance windows commands + screen-poll-zombies.patch: Dead windows will be restarted after + a specified timeout (if enabled) + screen_enhance_windows_list_1_3.patch: + Cleanup window flags processing. This leads to a slight + output change in "Ww" string escapes (window list), but these + should be rather seldom used and flags are still shown. + screen_enhance_windows_list_2_3.patch: + Enhance windows command with an optional string escape based + parameter which also removes the output size (1024 bytes) + restriction (only if param is passed) of the windows command. + If you used captions with "%w" before, you can simulate the old + behaviour with "%-w%n* %t%+w". +- Only Require makeinfo for openSUSE versions 11.4 and above. + This requirement did not exist in earlier versions, now the package + builds again for example against SLES 11 (11.4 based). + +------------------------------------------------------------------- +Thu Oct 25 13:11:20 UTC 2012 - trenn@suse.de + +- Fix sort command to not stop at window gaps. + That can happen if windows got deleted and the window numbers do not + increment sequentially anymore. + +------------------------------------------------------------------- +Tue Oct 9 07:47:52 UTC 2012 - lnt-sysadmin@lists.lrz.de + +- add use_locale.diff to fix --enable-use-locale configure option + +------------------------------------------------------------------- +Thu Sep 13 13:52:04 CEST 2012 - mls@suse.de + +- add prereq coreutils so that mkdir works [bnc#780033] + +------------------------------------------------------------------- +Sat Sep 8 11:07:44 UTC 2012 - idonmez@suse.com + +- Add build dependency on makeinfo + +------------------------------------------------------------------- +Wed Aug 8 19:56:19 CEST 2012 - mls@suse.de + +- fix crash when doing 'screen -d -r' inside of screen + +------------------------------------------------------------------- +Tue Aug 7 17:08:55 CEST 2012 - mls@suse.de + +- add mappedcmd.diff to make ^A DEL work again + +------------------------------------------------------------------- +Fri Jun 8 18:03:57 CEST 2012 - mls@suse.de + +- update to screen-4.0.4devel + * support for multiple layouts + * no more stuck screen sessions + +------------------------------------------------------------------- +Mon Nov 21 14:55:17 UTC 2011 - coolo@suse.com + +- fix build with latest ncurses (split tinfo) + +------------------------------------------------------------------- +Fri Nov 18 13:09:57 UTC 2011 - jw@suse.com + +- mkdir /var/run/*screen both immediatly and via systemd. + +------------------------------------------------------------------- +Mon Sep 19 14:00:10 UTC 2011 - trenn@suse.de + +- Add sort command +- convert maxwin99bug.patch into a patch format quilt understands + +------------------------------------------------------------------- +Wed Jul 6 08:13:07 UTC 2011 - aj@suse.de + +- Use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d. + +------------------------------------------------------------------- +Mon Jan 31 15:14:38 UTC 2011 - jw@novell.com + +- bugfix bnc#668306, a buffer overflow with '%d'. + Added maxwin99bug.patch + This is already upstream, but was never released. + +------------------------------------------------------------------- +Fri Dec 10 19:40:12 UTC 2010 - jw@novell.com + +- term_too_long.patch added. + corresponds to savannah#30880 + +------------------------------------------------------------------- +Wed Nov 3 14:54:47 UTC 2010 - aj@suse.de + +- Add /etc/tmpfiles.d/screen.conf for /var/run on tmpfs. + +------------------------------------------------------------------- +Thu Sep 9 18:43:01 UTC 2010 - aj@suse.de + +- BuildRequire utempter-devel + +------------------------------------------------------------------- +Sun May 2 13:06:35 UTC 2010 - aj@suse.de + +- /var/run directories are created by /etc/tmpdirs.d/01_aaa_base. + +------------------------------------------------------------------- +Mon Feb 15 09:43:22 CET 2010 - dimstar@opensuse.org + +- Update to version 4.0.3 +- Dropped screen-4.0.2-comb.diff, upstream merged. + +------------------------------------------------------------------- +Wed Dec 16 00:26:00 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Fri Jul 31 02:17:31 CEST 2009 - crrodriguez@suse.de + +- add fedora patch for IPv6 support, this removes usage + of gethostbyname(3) + +------------------------------------------------------------------- +Tue May 26 14:22:07 CEST 2009 - mls@suse.de + +- re-add lost maxwin definition [fate#301190] + +------------------------------------------------------------------- +Wed May 14 15:31:04 CEST 2008 - jw@suse.de + +- A few lines added to docu explaining login-shells and + starting with '-' trick. + +------------------------------------------------------------------- +Thu Mar 29 13:18:47 CEST 2007 - dmueller@suse.de + +- add ncurses-devel BuildRequires + +------------------------------------------------------------------- +Mon Oct 23 16:11:47 CEST 2006 - mls@suse.de + +- fix two bugs in handling of combining characters [#214412] + +------------------------------------------------------------------- +Fri Feb 10 17:45:47 CET 2006 - mls@suse.de + +- enable support for 256 colors [#136684] + +------------------------------------------------------------------- +Thu Jan 26 15:51:26 CET 2006 - sbrabec@suse.cz + +- Added %install_info_prereq. + +------------------------------------------------------------------- +Wed Jan 25 21:41:29 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Oct 29 00:03:15 CEST 2005 - mls@suse.de + +- fix ut_time aliasing problem + +------------------------------------------------------------------- +Fri Apr 8 14:41:08 CEST 2005 - meissner@suse.de + +- execl 0 -> (char*)0. + +------------------------------------------------------------------- +Tue Sep 28 12:23:06 CEST 2004 - mls@suse.de + +- clear ti/te for xterms so that users can use xterm's scrollbar + +------------------------------------------------------------------- +Sun Sep 12 09:26:52 CEST 2004 - kukuk@suse.de + +- Don't use __P from glibc + +------------------------------------------------------------------- +Mon Feb 16 15:49:57 CET 2004 - mls@suse.de + +- fix socketdir quoting + +------------------------------------------------------------------- +Thu Feb 12 18:08:47 CET 2004 - mls@suse.de + +- update to 4.0.2 +- move sockdirs to /var/run and include them in package + +------------------------------------------------------------------- +Sat Jan 10 18:29:42 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Thu Sep 18 15:00:12 CEST 2003 - mls@suse.de + +- update to 4.0.1 (fixes another bug of the parser) + +------------------------------------------------------------------- +Fri Sep 12 15:55:41 CEST 2003 - mls@suse.de + +- fix off by one error in variable expansion + +------------------------------------------------------------------- +Fri Sep 12 14:15:04 CEST 2003 - mls@suse.de + +- don't resize xterms on startup + +------------------------------------------------------------------- +Mon Sep 8 16:53:47 CEST 2003 - mls@suse.de + +- update to 4.0.0final + +------------------------------------------------------------------- +Wed Aug 27 17:14:21 CEST 2003 - mls@suse.de + +- update to 4.0.0beta2 + +------------------------------------------------------------------- +Fri Aug 1 15:04:22 CEST 2003 - mls@suse.de + +- update to 4.0.0beta1 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Thu Mar 13 12:21:34 CET 2003 - mls@suse.de + +- update to 3.9.15: changing the window title could append + junk to the title + +------------------------------------------------------------------- +Wed Mar 12 16:25:58 CET 2003 - mls@suse.de + +- update to 3.9.14: one small docu change and a small improvement + in the windowlist command + +------------------------------------------------------------------- +Mon Feb 24 21:06:54 CET 2003 - mls@suse.de + +- update to 3.9.14beta1 +- build screen with buildroot +- remove xf86 dependency, use configure option instead +- use install-info macro to install info page + +------------------------------------------------------------------- +Tue Oct 1 14:30:55 MEST 2002 - mls@suse.de + +- fix WrapChar() scrolling region reset code to always use a + valid scrolling region (#20367) + +------------------------------------------------------------------- +Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de + +- removed bogus self-provides + +------------------------------------------------------------------- +Thu Sep 5 14:11:31 MEST 2002 - mls@suse.de + +- update to official screen-3.9.13, contains one small bug + fix + +------------------------------------------------------------------- +Thu Aug 29 14:47:42 MEST 2002 - mls@suse.de + +- update to official screen-3.9.12 + +------------------------------------------------------------------- +Mon Aug 19 15:47:22 MEST 2002 - mls@suse.de + +- update to screen-3.9.12beta2 + +------------------------------------------------------------------- +Fri Mar 8 13:44:15 CET 2002 - kukuk@suse.de + +- Add /usr/share/screen to filelist + +------------------------------------------------------------------- +Wed Mar 6 12:58:25 MET 2002 - mls@suse.de + +- disable pam support again +- fix segmentation fault in screen's reattach password check + +------------------------------------------------------------------- +Fri Feb 22 16:11:32 MET 2002 - mls@suse.de + +- fix passing of NUL bytes when recoding is active +- moved uid/gid retrieval in front of FindEncoding + +------------------------------------------------------------------- +Mon Feb 18 11:36:36 MET 2002 - mls@suse.de + +- added missing /usr/share/screen/utf8encodings files +- small patch to fix hardstatus width + +------------------------------------------------------------------- +Thu Feb 14 14:52:59 MET 2002 - mls@suse.de + +- update to official screen-3.9.11 +- enabled pam & localized dates + +------------------------------------------------------------------- +Mon Feb 11 14:06:22 MET 2002 - mls@suse.de + +- update to screen-3.9.11beta7 + +------------------------------------------------------------------- +Tue Jan 29 15:21:32 CET 2002 - okir@suse.de + +- require utempter to build; zapped s bit + +------------------------------------------------------------------- +Fri Jan 25 14:08:18 CET 2002 - okir@suse.de + +- require utempter to build + +------------------------------------------------------------------- +Wed Sep 5 18:37:09 MEST 2001 - mls@suse.de + +- nominal upgrade to screen-3.9.10 + +------------------------------------------------------------------- +Mon Sep 3 17:17:19 MEST 2001 - mls@suse.de + +- Security fix for the Multiattach-bug in /usr/bin/screen + +------------------------------------------------------------------- +Mon Jul 23 19:20:21 MEST 2001 - bk@suse.de + +- added select-fix for fifo-testcase to build on s390x + +------------------------------------------------------------------- +Fri May 25 17:22:48 MEST 2001 - mls@suse.de + +- update -> 3.9.9 + +------------------------------------------------------------------- +Tue May 8 19:37:19 MEST 2001 - mls@suse.de + +- added workaround for broken xterm to global screenrc + +------------------------------------------------------------------- +Fri Apr 27 19:46:46 MEST 2001 - mls@suse.de + +- fix screen -wipe (bugzilla bug #2990) +- fix f10 function key (bugzilla bug #4326) +- fix 0620 pty mode autodetection (bugzilla bug #6304) + +------------------------------------------------------------------- +Mon Sep 4 18:13:20 CEST 2000 - uli@suse.de + +- fix for root compromise using configurable visual bell string + +------------------------------------------------------------------- +Fri Feb 25 15:16:50 CET 2000 - kukuk@suse.de + +- Move /usr/{info,man} -> /usr/share/{info,man} + +------------------------------------------------------------------- +Fri Oct 22 15:24:29 MEST 1999 - uli@suse.de + +- update -> 3.9.5 + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Fri Nov 27 15:11:31 MET 1998 - uli@suse.de + +- Update 3.7.3 -> 3.7.6 + +---------------------------------------------------------------------------- +Wed Apr 30 15:57:14 CEST 1997 - florian@suse.de + + +- update to version 3.7.3 + +- mv /usr/etc/screenrc /etc/ + diff --git a/screen.conf b/screen.conf new file mode 100644 index 0000000..0719931 --- /dev/null +++ b/screen.conf @@ -0,0 +1,4 @@ +# Screen needs some files in /run: +d /run/screens 0755 root root - +d /run/uscreens 1777 root root - + diff --git a/screen.keyring b/screen.keyring new file mode 100644 index 0000000..5b9ae7f --- /dev/null +++ b/screen.keyring @@ -0,0 +1,14 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEY7LR/BYJKwYBBAHaRw8BAQdA4m5kbiTCVBIvof8H5gLfnthrzQUThO1Jf6Cg +AXmKk8O0MEFsZXhhbmRlciBOYXVtb3YgPGFsZXhhbmRlcl9uYXVtb3ZAb3BlbnN1 +c2Uub3JnPoiaBBMWCgBCFiEEULhhs+kw7DN1DZDtkQgyl0qSoRwFAmOy0fwCGwMF +CRLMAwAFCwkIBwIDIgIBBhUKCQgLAgQWAgMBAh4HAheAAAoJEJEIMpdKkqEcmR8A +/iPUUq/NOZDK+OGyevpgOjM4ql27sNEUw2s5lpSrtSUWAPwPp/z6MPUaCotey8DV +/9NNY4l2WqZFSEsXOod7ymytD7g4BGOy0fwSCisGAQQBl1UBBQEBB0Cd30iQQ4mh +td+nUWAq/MuTLNStoJpuptQx43LE97teQgMBCAeIfgQYFgoAJhYhBFC4YbPpMOwz +dQ2Q7ZEIMpdKkqEcBQJjstH8AhsMBQkSzAMAAAoJEJEIMpdKkqEcKzQA/1YwYRl8 +arfkUA1IwJQajL9IgAyzYmHXKbLNxnTudUvgAP9uBpUML3BzCw097e49P3YcPncf +rmvea+Jn9PDEUQQlAg== +=hWrz +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/screen.pam b/screen.pam new file mode 100644 index 0000000..818f09d --- /dev/null +++ b/screen.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include common-auth +account include common-account +session include common-session +password include common-password diff --git a/screen.spec b/screen.spec new file mode 100644 index 0000000..51ebcf7 --- /dev/null +++ b/screen.spec @@ -0,0 +1,150 @@ +# +# spec file for package screen +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} > 1310 +%define rundir /run +%else +%define rundir %{_localstatedir}/run +%endif +Name: screen +Version: 4.9.1 +Release: 0 +Summary: A program to allow multiple screens on a VT100/ANSI Terminal +License: GPL-3.0-or-later +Group: System/Console +URL: https://www.gnu.org/software/screen/ +Source: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz +Source1: screen.conf +Source2: https://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz.sig +Source3: https://savannah.gnu.org/people/viewgpg.php?user_id=99366#/%{name}.keyring +Source4: screen.pam +Patch0: global_screenrc.patch +Patch6: libtinfo.diff +Patch7: sendfdcont.diff +Patch8: nottychmod.diff +Patch9: multicont.diff +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: makeinfo +BuildRequires: ncurses-devel +BuildRequires: pam-devel +%if 0%{?suse_version} < 1600 +BuildRequires: utempter-devel +%endif +Requires: terminfo-base +Requires(post): permissions +%systemd_ordering + +%description +With this program you can take advantage of the multitasking abilities +of your Linux system by opening several sessions over one terminal. The +sessions can also be detached and resumed from another login terminal. + +Documentation: man page + +%prep +%setup -q +# global_screenrc.patch +%patch -P 0 +# libtinfo.diff +%patch -P 6 +%patch -P 7 +%patch -P 8 +%patch -P 9 + +%build +sh ./autogen.sh + +CFLAGS="-DMAXWIN=1000 %{optflags} -std=gnu89" %configure --prefix=%{_prefix} --infodir=%{_infodir} \ + --mandir=%{_mandir} \ + --with-socket-dir='(eff_uid ? "%{rundir}/uscreens" : "%{rundir}/screens")' \ + --with-sys-screenrc=%{_sysconfdir}/screenrc \ + --with-pty-group=5 \ + --with-pty-mode=0620 \ + --enable-use-locale \ + --enable-telnet \ + --enable-pam \ + --enable-colors256 \ + --verbose + +# update Makefile so that make -j becomes reliable +:> osdef.h # so that make depend has a chance +:> comm.h # so that make depend has a chance +%make_build depend # FIXME: this should be self sufficient. +rm osdef.h # so that make will use osdef.sh +rm comm.h # so that make will use comm.sh + +%make_build + +%install +%make_install +rm -f %{buildroot}%{_bindir}/screen +mv %{buildroot}%{_bindir}/screen-%{version} %{buildroot}%{_bindir}/screen +chmod 755 %{buildroot}%{_bindir}/screen +mkdir -p %{buildroot}%{_sysconfdir} +%if 0%{?suse_version} > 1500 +mkdir -p %{buildroot}%{_pam_vendordir} +%else +mkdir -p %{buildroot}%{_sysconfdir}/pam.d +%endif +mkdir -p %{buildroot}%{_prefix}/lib +mkdir -p %{buildroot}%{_tmpfilesdir} +mkdir -p %{buildroot}%{rundir}/screens +chmod 755 %{buildroot}%{rundir}/screens +mkdir -p %{buildroot}%{rundir}/uscreens +install -m 644 screenrc %{buildroot}%{_sysconfdir}/screenrc +install -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir} +%if 0%{?suse_version} > 1500 +install -m 644 %{SOURCE4} %{buildroot}%{_pam_vendordir}/screen +%else +install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/pam.d/screen +%endif + +%files +%config %{_sysconfdir}/screenrc +%if 0%{?suse_version} > 1500 +%{_pam_vendordir}/screen +%else +%config %{_sysconfdir}/pam.d/screen +%endif +%attr(555,root,root) %{_bindir}/screen +%dir %{_datadir}/screen +%{_tmpfilesdir}/screen.conf +%{_datadir}/screen/utf8encodings +%{_infodir}/screen.info*%{ext_info} +%{_mandir}/man1/screen.1%{?ext_man} +%license COPYING + +%if 0%{?suse_version} > 1500 +%pre +# Prepare for migration to /usr/etc; save any old .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done + +%posttrans +# Migration to /usr/etc, restore just created .rpmsave +for i in pam.d/screen ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%post +%tmpfiles_create %{_tmpfilesdir}/screen.conf + +%changelog diff --git a/sendfdcont.diff b/sendfdcont.diff new file mode 100644 index 0000000..40abd97 --- /dev/null +++ b/sendfdcont.diff @@ -0,0 +1,44 @@ +--- attacher.c.orig 2025-05-22 09:23:03.861076640 +0000 ++++ attacher.c 2025-05-22 09:29:29.060392092 +0000 +@@ -112,7 +112,7 @@ QueryResultFail SIGDEFARG + * Understands MSG_ATTACH, MSG_DETACH, MSG_POW_DETACH + * MSG_CONT, MSG_WINCH and nothing else! + * +- * if type == MSG_ATTACH and sockets are used, attaches ++ * if type == MSG_ATTACH or MSG_CONT and sockets are used, attaches + * tty file descriptor. + */ + +@@ -125,7 +125,7 @@ struct msg *m; + bool is_socket; + + is_socket = IsSocket(SockPath); +- if (is_socket && m->type == MSG_ATTACH) ++ if (is_socket && (m->type == MSG_ATTACH || m->type == MSG_CONT)) + return SendAttachMsg(s, m, attach_fd); + + while(l > 0) +--- socket.c.orig 2025-05-22 09:23:09.261067045 +0000 ++++ socket.c 2025-05-22 09:25:24.044827531 +0000 +@@ -1169,7 +1169,7 @@ ReceiveMsg() + } + + debug2("*** RecMsg: type %d tty %s\n", m.type, m.m_tty); +- if (m.type != MSG_ATTACH && recvfd != -1) ++ if (m.type != MSG_ATTACH && m.type != MSG_CONT && recvfd != -1) + { + close(recvfd); + recvfd = -1; +@@ -1222,7 +1222,11 @@ ReceiveMsg() + break; + case MSG_CONT: + if (display && D_userpid != 0 && kill(D_userpid, 0) == 0) +- break; /* Intruder Alert */ ++ { ++ if (recvfd != -1) ++ close(recvfd); ++ break; /* Intruder Alert */ ++ } + debug2("RecMsg: apid=%d,was %d\n", m.m.attach.apid, + display ? D_userpid : 0); + /* FALLTHROUGH */ -- 2.51.1 From d2b26ed6aa9ac17113c9b6671c80af08ea6e757dd741a58f2c0b08453740038d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Thu, 22 May 2025 12:03:33 +0000 Subject: [PATCH 4/4] oops OBS-URL: https://build.opensuse.org/package/show/Base:System/screen?expand=0&rev=112 --- screen.changes | 3 +++ 1 file changed, 3 insertions(+) diff --git a/screen.changes b/screen.changes index 1d21ad0..88e7444 100644 --- a/screen.changes +++ b/screen.changes @@ -2,9 +2,12 @@ Thu May 22 13:30:23 CEST 2025 - mls@suse.de - also use tty fd passing after a suspend (MSG_CONT) + new patch: sendfdcont.diff - do not chmod the tty for multiattach, rely on tty fd passing instead [bsc#1242269] [CVE-2025-46802] + new patch: nottychmod.diff - fix resume after suspend in multiuser mode + new patch: multicont.diff ------------------------------------------------------------------- Fri Mar 21 12:37:40 UTC 2025 - Richard Biener -- 2.51.1