Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Curses for openSUSE:Factory checked in at 2022-08-16 17:58:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Curses (Old) and /work/SRC/openSUSE:Factory/.perl-Curses.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Curses" Tue Aug 16 17:58:06 2022 rev:31 rq:997396 version:1.39 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Curses/perl-Curses.changes 2021-08-03 22:49:22.316451189 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Curses.new.1521/perl-Curses.changes 2022-08-16 17:58:07.754926843 +0200 @@ -1,0 +2,13 @@ +Sat Aug 13 03:08:14 UTC 2022 - Tina M??ller <[email protected]> + +- updated to 1.39 + see /usr/share/doc/packages/perl-Curses/HISTORY + + New in 1.39 (Released August 12, 2022) + + Add #include <stdbool.h> to top of Curses.c to fix a conflict between the + Curses header files and Perl header files that causes a "loadable library + and perl binaries are mismatched" / handshake key failure when you try to + load the Perl module. + +------------------------------------------------------------------- Old: ---- Curses-1.38.tar.gz New: ---- Curses-1.39.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Curses.spec ++++++ --- /var/tmp/diff_new_pack.gJC9IX/_old 2022-08-16 17:58:08.402926559 +0200 +++ /var/tmp/diff_new_pack.gJC9IX/_new 2022-08-16 17:58:08.410926556 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Curses # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,11 +18,10 @@ %define cpan_name Curses Name: perl-Curses -Version: 1.38 +Version: 1.39 Release: 0 -%define cpan_name Curses -Summary: Terminal screen handling and optimization License: Artistic-1.0 OR GPL-1.0-or-later +Summary: Terminal screen handling and optimization URL: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/G/GI/GIRAFFED/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml @@ -44,11 +43,11 @@ %prep %autosetup -n %{cpan_name}-%{version} find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644 - -# Fix perl script interpreters +# MANUAL BEGIN sed -i '1s|../../perl|%{__perl}|' test.syms sed -i '1s| /usr//bin/perl|%{__perl}|' demo.form sed -i '1s| /usr/bin/perl|%{__perl}|' demo* gdc +# MANUAL END %build export CURSES_CFLAGS="-I/usr/include/ncurses5/ncursesw" @@ -65,7 +64,6 @@ %perl_gen_filelist %files -f %{name}.files -%defattr(-,root,root,755) %doc demo demo2 demo.form demo.menu demo.panel gdc gen.tar HISTORY list.syms MAINTENANCE README testcurses test.syms %license Artistic Copying ++++++ Curses-1.38.tar.gz -> Curses-1.39.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.38/Curses.c new/Curses-1.39/Curses.c --- old/Curses-1.38/Curses.c 2021-07-21 02:55:33.000000000 +0200 +++ new/Curses-1.39/Curses.c 2022-08-05 04:40:25.000000000 +0200 @@ -8,6 +8,12 @@ #define _XOPEN_SOURCE_EXTENDED 1 /* We expect wide character functions */ +#include <stdbool.h> + /* We don't use 'bool', but Curses header files sometimes define + it in a way that breaks <perl.h>, when it is subsequently included, + and having bool already defined seems to stop Curses header files from + doing that. See further discussion of 'bool' below. + */ #include "CursesDef.h" #include "CursesTyp.h" #include "c-config.h" @@ -26,19 +32,30 @@ We'll probably have to add to this list; maybe someday we should just undef them all, since we don't use them. - "bool" is another, and is more problematic. Sometimes, ncurses.h - defines that explicitly and that's bad, but sometimes it does it - by including <stdbool.h>, and that's fine. In the former case, - we should undefine it now, but in the latter we can't, because then - a subsequent #include <stdbool.h> (by something we #include below) - won't define bool because stdbool.h has already been included. - - We're going to leave bool alone now and wait for someone to report - that it breaks something. With a real example, we can then plan how - to work around this unfortunate ncurses.h behavior. We once had a - #undef bool.h in the Mac OSX hints file, so someone presumably found - it necessary. But we have also had a Mac OSX system on which compile - failed _because_ of that undef, for the reason described above. + "bool" is another, and is more problematic. Sometimes, ncurses.h defines + that explicitly and that's bad, but sometimes it does it by including + <stdbool.h>, and that's fine. In the former case, we should undefine it + now, but in the latter we can't, because then a subsequent #include + <stdbool.h> (by something we #include below) won't define bool because + stdbool.h has already been included. We once had a #undef bool in the Mac + OSX hints file, so someone presumably found it necessary. But we have also + had a Mac OSX system on which compile failed _because_ of that undef, for + the reason described above. + + We also saw (AIX, August 2022) curses.h define bool in such a way that + the subsquently included <perl.h> defined its interface structure with + the Perl core using the wrong size for bool. Fortunately, the Perl + interface catches that in its "handshake" to negotiate the interface + and refuses to run, with an error message like + + loadable library and perl binaries are mismatched (got 0xd800000, needed + 0xd700000)" or "(got handshake key 8d00080, needed 8700080) + + (Note the misnomer: "loadable library" means Curses.so) + + When we include <stdbool.h> here, that AIX problem ceases to exist -- + <curses.h> apparently sees that bool is already defined and does not + define it itself. */ #undef instr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.38/Curses.pm new/Curses-1.39/Curses.pm --- old/Curses-1.38/Curses.pm 2021-07-21 03:00:23.000000000 +0200 +++ new/Curses-1.39/Curses.pm 2022-08-05 04:43:50.000000000 +0200 @@ -51,7 +51,7 @@ package Curses; -$VERSION = '1.38'; # Makefile.PL picks this up +$VERSION = '1.39'; # Makefile.PL picks this up use Carp; require Exporter; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.38/HISTORY new/Curses-1.39/HISTORY --- old/Curses-1.38/HISTORY 2021-07-26 05:22:05.000000000 +0200 +++ new/Curses-1.39/HISTORY 2022-08-12 01:33:58.000000000 +0200 @@ -11,6 +11,13 @@ Curses itself is much older than the Perl implementation. Curses was originally only a C programming library. +New in 1.39 (Released August 12, 2022) + + Add #include <stdbool.h> to top of Curses.c to fix a conflict between the + Curses header files and Perl header files that causes a "loadable library + and perl binaries are mismatched" / handshake key failure when you try to + load the Perl module. + New in 1.38 (Released July 26, 2021) Fix compilation failure with some compilers, including AIX's because diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.38/META.json new/Curses-1.39/META.json --- old/Curses-1.38/META.json 2021-07-26 05:22:50.000000000 +0200 +++ new/Curses-1.39/META.json 2022-08-12 01:38:31.000000000 +0200 @@ -4,7 +4,7 @@ "unknown" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", "license" : [ "unknown" ], @@ -32,6 +32,6 @@ } }, "release_status" : "stable", - "version" : "1.38", - "x_serialization_backend" : "JSON::PP version 2.97001" + "version" : "1.39", + "x_serialization_backend" : "JSON::PP version 4.04" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.38/META.yml new/Curses-1.39/META.yml --- old/Curses-1.38/META.yml 2021-07-26 05:22:50.000000000 +0200 +++ new/Curses-1.39/META.yml 2022-08-12 01:38:30.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' license: unknown meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -17,5 +17,5 @@ directory: - t - inc -version: '1.38' +version: '1.39' x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
