Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-IO-Tty for openSUSE:Factory checked in at 2026-06-11 17:25:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-IO-Tty (Old) and /work/SRC/openSUSE:Factory/.perl-IO-Tty.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-Tty" Thu Jun 11 17:25:54 2026 rev:32 rq:1358547 version:1.310.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-IO-Tty/perl-IO-Tty.changes 2026-05-20 15:23:50.708469854 +0200 +++ /work/SRC/openSUSE:Factory/.perl-IO-Tty.new.1981/perl-IO-Tty.changes 2026-06-11 17:26:25.755985793 +0200 @@ -1,0 +2,30 @@ +Mon May 25 09:07:32 UTC 2026 - Tina Müller <[email protected]> + +- updated to 1.310.0 (1.31) + see /usr/share/doc/packages/perl-IO-Tty/ChangeLog + + 1.31 2026-05-24 Todd Rinaldo <[email protected]> + + Bug Fixes: + * GH #91, PR #94 - Fix v1.27 regression where _open_tty() always passed + O_NOCTTY, preventing make_slave_controlling_terminal() from acquiring + a controlling terminal via the POSIX-standard open-without-O_NOCTTY + mechanism (it was forced to fall through to an explicit TIOCSCTTY + ioctl). _open_tty() now takes an optional noctty flag (default 1 for + backward compatibility); make_slave_controlling_terminal() passes 0. + * GH #92, PR #93 - Fix openpty() detection on Fedora 33-34 / glibc + 2.32-2.33 where LTO flags (-flto=auto) caused the libc-only compile + probe to falsely succeed, producing "undefined symbol: openpty" at + runtime. Try -lutil before libc; harmless on systems where openpty + lives in libc (glibc 2.34+, musl) and necessary where it doesn't. + + Maintenance: + * PR #90 - Address CPANTS kwalitee issues: add LICENSE, SECURITY.md, + and CONTRIBUTING.md; add META `provides` for IO::Tty, IO::Pty, and + IO::Tty::Constant; use --format=ustar in TARFLAGS to prevent + PaxHeader entries in distribution tarballs. + * Clean up MANIFEST.SKIP: add #!include_default so ExtUtils::Manifest's + built-in skip list is in effect, drop five entries that duplicate + those defaults, and add a ^\.claude/ rule. + +------------------------------------------------------------------- Old: ---- IO-Tty-1.29.tar.gz New: ---- IO-Tty-1.31.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-IO-Tty.spec ++++++ --- /var/tmp/diff_new_pack.ICbmw9/_old 2026-06-11 17:26:26.332009949 +0200 +++ /var/tmp/diff_new_pack.ICbmw9/_new 2026-06-11 17:26:26.332009949 +0200 @@ -18,10 +18,10 @@ %define cpan_name IO-Tty Name: perl-IO-Tty -Version: 1.290.0 +Version: 1.310.0 Release: 0 -# 1.29 -> normalize -> 1.290.0 -%define cpan_version 1.29 +# 1.31 -> normalize -> 1.310.0 +%define cpan_version 1.31 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Pseudo ttys and constants URL: https://metacpan.org/release/%{cpan_name} @@ -32,6 +32,7 @@ BuildRequires: perl-macros Provides: perl(IO::Pty) = %{version} Provides: perl(IO::Tty) = %{version} +Provides: perl(IO::Tty::Constant) = %{version} %undefine __perllib_provides %{perl_requires} @@ -73,5 +74,6 @@ %perl_gen_filelist %files -f %{name}.files -%doc AI_POLICY.md ChangeLog README.md try +%doc AI_POLICY.md ChangeLog CONTRIBUTING.md README.md SECURITY.md try +%license LICENSE ++++++ IO-Tty-1.29.tar.gz -> IO-Tty-1.31.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/CONTRIBUTING.md new/IO-Tty-1.31/CONTRIBUTING.md --- old/IO-Tty-1.29/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Tty-1.31/CONTRIBUTING.md 2026-05-25 05:00:11.000000000 +0200 @@ -0,0 +1,37 @@ +# Contributing to IO::Tty + +## Bug Reports + +Open an issue at https://github.com/cpan-authors/IO-Tty/issues with: + +- Your OS and version +- Perl version (`perl -v`) +- Full output of `perl Makefile.PL && make && make test` + +## Pull Requests + +1. Fork the repository +2. Create a feature branch +3. Ensure `make test` passes +4. Submit a pull request against `main` + +### Build & Test + +```bash +perl Makefile.PL +make +make test +``` + +### Guidelines + +- IO::Tty is POSIX-only. Windows is not supported (Cygwin works). +- The XS code supports multiple pty allocation strategies across many + Unix variants. Test on as many platforms as you can. +- `Makefile.PL` compiles C test programs at configure time — changes + there need careful testing. +- Don't edit generated files (`xssubs.c`, `Tty/Constant.pm`, `Tty.c`). + +## Releases + +Releases to CPAN are done by the maintainer only. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/ChangeLog new/IO-Tty-1.31/ChangeLog --- old/IO-Tty-1.29/ChangeLog 2026-04-23 15:34:58.564157856 +0200 +++ new/IO-Tty-1.31/ChangeLog 2026-05-25 05:46:09.000000000 +0200 @@ -1,3 +1,27 @@ +1.31 2026-05-24 Todd Rinaldo <[email protected]> + + Bug Fixes: + * GH #91, PR #94 - Fix v1.27 regression where _open_tty() always passed + O_NOCTTY, preventing make_slave_controlling_terminal() from acquiring + a controlling terminal via the POSIX-standard open-without-O_NOCTTY + mechanism (it was forced to fall through to an explicit TIOCSCTTY + ioctl). _open_tty() now takes an optional noctty flag (default 1 for + backward compatibility); make_slave_controlling_terminal() passes 0. + * GH #92, PR #93 - Fix openpty() detection on Fedora 33-34 / glibc + 2.32-2.33 where LTO flags (-flto=auto) caused the libc-only compile + probe to falsely succeed, producing "undefined symbol: openpty" at + runtime. Try -lutil before libc; harmless on systems where openpty + lives in libc (glibc 2.34+, musl) and necessary where it doesn't. + + Maintenance: + * PR #90 - Address CPANTS kwalitee issues: add LICENSE, SECURITY.md, + and CONTRIBUTING.md; add META `provides` for IO::Tty, IO::Pty, and + IO::Tty::Constant; use --format=ustar in TARFLAGS to prevent + PaxHeader entries in distribution tarballs. + * Clean up MANIFEST.SKIP: add #!include_default so ExtUtils::Manifest's + built-in skip list is in effect, drop five entries that duplicate + those defaults, and add a ^\.claude/ rule. + 1.29 2026-04-23 Todd Rinaldo <[email protected]> Bug Fixes: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/LICENSE new/IO-Tty-1.31/LICENSE --- old/IO-Tty-1.29/LICENSE 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Tty-1.31/LICENSE 2026-05-25 05:00:11.000000000 +0200 @@ -0,0 +1,18 @@ +IO::Tty is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +This means you may choose to use either: + + a) the GNU General Public License, version 1 or later, as published + by the Free Software Foundation; or + + b) the "Artistic License" which comes with Perl. + +For more details, see the full text of the licenses at: + + a) GPL: https://www.gnu.org/licenses/gpl-1.0.txt + b) Artistic: https://dev.perl.org/licenses/artistic.html + +Nevertheless the above AUTHORS retain their copyrights to the various +parts and want to receive credit if their source code is used. +See the source for details. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/MANIFEST new/IO-Tty-1.31/MANIFEST --- old/IO-Tty-1.29/MANIFEST 2026-04-23 15:53:11.000000000 +0200 +++ new/IO-Tty-1.31/MANIFEST 2026-05-25 05:54:58.000000000 +0200 @@ -1,10 +1,13 @@ AI_POLICY.md ChangeLog +CONTRIBUTING.md +LICENSE Makefile.PL MANIFEST This list of files MANIFEST.SKIP Pty.pm README.md +SECURITY.md t/clone_winsize.t t/constants.t t/pty_destroy.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/MANIFEST.SKIP new/IO-Tty-1.31/MANIFEST.SKIP --- old/IO-Tty-1.29/MANIFEST.SKIP 2026-04-23 11:54:22.000000000 +0200 +++ new/IO-Tty-1.31/MANIFEST.SKIP 2026-05-25 05:10:10.000000000 +0200 @@ -1,12 +1,12 @@ +#!include_default + +# AI agent instructions - not for distribution +^\.claude/ + ^.github/ -^.git/.* -^MYMETA.* -^MANIFEST.bak -^.gitignore ^conf/ ^xssubs.c ^Tty/Constant.pm -^Makefile$ ^IO-Tty-\d ^IO-Tty\.ppd$ ^cpanfile$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/META.json new/IO-Tty-1.31/META.json --- old/IO-Tty-1.29/META.json 2026-04-23 15:53:11.000000000 +0200 +++ new/IO-Tty-1.31/META.json 2026-05-25 05:54:58.000000000 +0200 @@ -41,6 +41,20 @@ } } }, + "provides" : { + "IO::Pty" : { + "file" : "Pty.pm", + "version" : "1.31" + }, + "IO::Tty" : { + "file" : "Tty.pm", + "version" : "1.31" + }, + "IO::Tty::Constant" : { + "file" : "Tty/Constant.pm", + "version" : "1.31" + } + }, "release_status" : "stable", "resources" : { "bugtracker" : { @@ -55,6 +69,6 @@ "web" : "https://github.com/cpan-authors/IO-Tty" } }, - "version" : "1.29", + "version" : "1.31", "x_serialization_backend" : "JSON::PP version 4.16" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/META.yml new/IO-Tty-1.31/META.yml --- old/IO-Tty-1.29/META.yml 2026-04-23 15:53:10.000000000 +0200 +++ new/IO-Tty-1.31/META.yml 2026-05-25 05:54:58.000000000 +0200 @@ -18,11 +18,21 @@ directory: - t - inc +provides: + IO::Pty: + file: Pty.pm + version: '1.31' + IO::Tty: + file: Tty.pm + version: '1.31' + IO::Tty::Constant: + file: Tty/Constant.pm + version: '1.31' requires: perl: '5.008008' resources: bugtracker: https://github.com/cpan-authors/IO-Tty/issues license: http://dev.perl.org/licenses/ repository: https://github.com/cpan-authors/IO-Tty.git -version: '1.29' +version: '1.31' x_serialization_backend: 'CPAN::Meta::YAML version 0.020' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/Makefile.PL new/IO-Tty-1.31/Makefile.PL --- old/IO-Tty-1.29/Makefile.PL 2026-04-23 15:19:00.000000000 +0200 +++ new/IO-Tty-1.31/Makefile.PL 2026-05-25 05:00:11.000000000 +0200 @@ -161,7 +161,7 @@ # checking for various functions my %funcs = (ttyname => [""], - openpty => ["", "-lutil"], + openpty => ["-lutil", ""], _getpty => [""], strlcpy => [""], sigaction => [""], @@ -226,8 +226,10 @@ close(TST); print "Looking for $f()" . "." x (13-length($f)) . " "; - # Try each library candidate in order (e.g. openpty is in libc on - # glibc 2.34+/musl, but needs -lutil on BSDs and older glibc). + # Try each library candidate in order. openpty needs -lutil on + # BSDs and older glibc; on glibc 2.34+/musl it lives in libc. + # We try -lutil first because LTO can make a libc-only probe + # falsely succeed on glibc 2.32-2.33 (GH #92). my @lib_candidates = @{$funcs{$f}}; my $found = 0; for my $try_lib (@lib_candidates) { @@ -550,6 +552,23 @@ web => 'https://github.com/cpan-authors/IO-Tty/issues', }, }, + 'provides' => { + 'IO::Tty' => { + file => 'Tty.pm', + version => $Package_Version, + }, + 'IO::Pty' => { + file => 'Pty.pm', + version => $Package_Version, + }, + 'IO::Tty::Constant' => { + file => 'Tty/Constant.pm', + version => $Package_Version, + }, + }, + }, + 'dist' => { + TARFLAGS => '--format=ustar -cvf', }, ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/Pty.pm new/IO-Tty-1.31/Pty.pm --- old/IO-Tty-1.29/Pty.pm 2026-04-23 15:35:29.408676243 +0200 +++ new/IO-Tty-1.31/Pty.pm 2026-05-25 05:50:40.000000000 +0200 @@ -10,7 +10,7 @@ require POSIX; our @ISA = qw(IO::Handle); -our $VERSION = '1.29'; # keep same as in Tty.pm +our $VERSION = '1.31'; # keep same as in Tty.pm eval { local $^W = 0; local $SIG{__DIE__}; require IO::Stty }; push @ISA, "IO::Stty" if ( not $@ ); # if IO::Stty is installed @@ -116,9 +116,11 @@ # now open slave, this should set it as controlling tty on some systems # Use _open_tty() to ensure STREAMS modules (ptem, ldterm, ttcompat) - # are pushed on Solaris/HP-UX, matching the slave() method. + # are pushed on Solaris/HP-UX. Pass noctty=0 so the open can + # automatically acquire a controlling terminal (the whole point of + # this method). my $ttyname = ${*$self}{'io_pty_ttyname'}; - my $slave_fd = IO::Tty::_open_tty($ttyname); + my $slave_fd = IO::Tty::_open_tty($ttyname, 0); croak "Cannot open slave $ttyname: $!" if $slave_fd < 0; my $slv = IO::Tty->new_from_fd( $slave_fd, "r+" ); croak "Cannot create IO::Tty from fd $slave_fd: $!" if not $slv; @@ -184,7 +186,7 @@ =head1 VERSION -1.29 +1.31 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/README.md new/IO-Tty-1.31/README.md --- old/IO-Tty-1.29/README.md 2026-04-23 15:35:46.044116310 +0200 +++ new/IO-Tty-1.31/README.md 2026-05-25 05:50:40.000000000 +0200 @@ -6,7 +6,7 @@ # VERSION -1.29 +1.31 # SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/SECURITY.md new/IO-Tty-1.31/SECURITY.md --- old/IO-Tty-1.29/SECURITY.md 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Tty-1.31/SECURITY.md 2026-05-25 05:00:11.000000000 +0200 @@ -0,0 +1,28 @@ +# Security Policy + +## Reporting a Vulnerability + +If you discover a security vulnerability in IO::Tty, please report it +responsibly. + +**Contact:** Todd Rinaldo <[email protected]> + +**Preferred method:** Open a [GitHub Security Advisory](https://github.com/cpan-authors/IO-Tty/security/advisories/new) (private by default). + +Alternatively, email the contact address above. Please include: + +- A description of the vulnerability +- Steps to reproduce +- Affected versions (if known) + +We aim to acknowledge reports within 48 hours and provide a fix or +mitigation within a reasonable timeframe. + +## Scope + +IO::Tty allocates pseudo-terminals and exposes terminal constants. +Security-relevant areas include: + +- Pseudo-tty allocation and file descriptor handling +- Controlling terminal setup (`make_slave_controlling_terminal`) +- Terminal ioctl operations diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/Tty.pm new/IO-Tty-1.31/Tty.pm --- old/IO-Tty-1.29/Tty.pm 2026-04-23 15:35:11.541166877 +0200 +++ new/IO-Tty-1.31/Tty.pm 2026-05-25 05:50:40.000000000 +0200 @@ -15,7 +15,7 @@ require POSIX; our @ISA = qw(IO::Handle); -our $VERSION = '1.29'; +our $VERSION = '1.31'; our ( $CONFIG, $DEBUG ); eval { local $^W = 0; local $SIG{__DIE__}; require IO::Stty }; @@ -114,7 +114,7 @@ =head1 VERSION -1.29 +1.31 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Tty-1.29/Tty.xs new/IO-Tty-1.31/Tty.xs --- old/IO-Tty-1.29/Tty.xs 2026-04-23 11:54:03.000000000 +0200 +++ new/IO-Tty-1.31/Tty.xs 2026-05-25 05:00:11.000000000 +0200 @@ -829,10 +829,11 @@ MODULE = IO::Tty PACKAGE = IO::Tty int -_open_tty(ttyname) +_open_tty(ttyname, noctty = 1) char *ttyname + int noctty CODE: - RETVAL = open(ttyname, O_RDWR | O_NOCTTY); + RETVAL = open(ttyname, noctty ? (O_RDWR | O_NOCTTY) : O_RDWR); if (RETVAL >= 0) { #if defined(I_PUSH) ioctl(RETVAL, I_PUSH, "ptem"); ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.ICbmw9/_old 2026-06-11 17:26:26.512017497 +0200 +++ /var/tmp/diff_new_pack.ICbmw9/_new 2026-06-11 17:26:26.516017665 +0200 @@ -1,6 +1,6 @@ -mtime: 1777014929 -commit: f9f3cd3ee97391b1c53746a2de65e375062591e6eff6b62e6309869441345cc5 +mtime: 1779700052 +commit: f045065207291e3378bc2860d2483f2cd106edc42e8c4336732f33214fe27cb1 url: https://src.opensuse.org/perl/perl-IO-Tty -revision: f9f3cd3ee97391b1c53746a2de65e375062591e6eff6b62e6309869441345cc5 +revision: f045065207291e3378bc2860d2483f2cd106edc42e8c4336732f33214fe27cb1 projectscmsync: https://src.opensuse.org/perl/_ObsPrj ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-05-25 11:07:32.000000000 +0200 @@ -0,0 +1 @@ +.osc
