diff --git a/perl-TermReadKey-configure-c99.patch b/perl-TermReadKey-configure-c99.patch new file mode 100644 index 0000000..c65e30a --- /dev/null +++ b/perl-TermReadKey-configure-c99.patch @@ -0,0 +1,139 @@ +Explicitly specify the return type of main as int for C99 compatibility. + +Submitted upstream: + +diff --git a/Configure.pm b/Configure.pm +index aabf136756ff2be5..82aab81c964c3350 100644 +--- a/Configure.pm ++++ b/Configure.pm +@@ -503,7 +503,7 @@ by the compiler is returned. + =cut + + sub CheckHeader { #Find a header (or set of headers) that exists +- ApplyHeaders("main(){}",@_); ++ ApplyHeaders("int main(){}",@_); + } + + =head2 CheckStructure +@@ -516,7 +516,7 @@ properly will be returned. B will be returned if nothing succeeds. + + sub CheckStructure { # Check existance of a structure. + my($structname,@headers) = @_; +- ApplyHeaders("main(){ struct $structname s;}",@headers); ++ ApplyHeaders("int main(){ struct $structname s;}",@headers); + } + + =head2 CheckField +@@ -530,7 +530,7 @@ be returned if nothing succeeds. + + sub CheckField { # Check for the existance of specified field in structure + my($structname,$fieldname,@headers) = @_; +- ApplyHeaders("main(){ struct $structname s1; struct $structname s2; ++ ApplyHeaders("int main(){ struct $structname s1; struct $structname s2; + s1.$fieldname = s2.$fieldname; }",@headers); + } + +@@ -544,7 +544,7 @@ that symbol will be returned. B will be returned if nothing succeeds. + + sub CheckLSymbol { # Check for linkable symbol + my($symbol,@libs) = @_; +- ApplyLibs("main() { void * f = (void *)($symbol); }",@libs); ++ ApplyLibs("int main() { void * f = (void *)($symbol); }",@libs); + } + + =head2 CheckSymbol +@@ -558,7 +558,8 @@ B will be returned if nothing succeeds. + + sub CheckSymbol { # Check for linkable/header symbol + my($symbol,@lookup) = @_; +- ApplyHeadersAndLibs("main() { void * f = (void *)($symbol); }",@lookup); ++ ApplyHeadersAndLibs("int main() { void * f = (void *)($symbol); }", ++ @lookup); + } + + =head2 CheckHSymbol +@@ -571,7 +572,7 @@ that symbol will be returned. B will be returned if nothing succeeds. + + sub CheckHSymbol { # Check for header symbol + my($symbol,@headers) = @_; +- ApplyHeaders("main() { void * f = (void *)($symbol); }",@headers); ++ ApplyHeaders("int main() { void * f = (void *)($symbol); }",@headers); + } + + =head2 CheckHPrototype (unexported) +@@ -591,7 +592,7 @@ sub CheckHPrototype { # Check for header prototype. + # names function doesn't exist, this call will _succeed_. Caveat Utilitor. + my($function,$proto,@headers) = @_; + my(@proto) = @{$proto}; +- ApplyHeaders("main() { extern ".$proto[0]." $function(". ++ ApplyHeaders("int main() { extern ".$proto[0]." $function(". + join(",",@proto[1..$#proto])."); }",@headers); + } + +@@ -612,7 +613,8 @@ Example: + sub GetSymbol { # Check for linkable/header symbol + my($symbol,$printf,$cast,@lookup) = @_,"",""; + scalar(ApplyHeadersAndLibsAndExecute( +- "main(){ printf(\"\%$printf\",($cast)($symbol));exit(0);}",@lookup)); ++ "int main(){ printf(\"\%$printf\",($cast)($symbol));exit(0);}", ++ @lookup)); + } + + =head2 GetTextSymbol +@@ -768,7 +770,7 @@ main(){ }"); + "double","long double", + "char","unsigned char","short int","unsigned short int"); + +- if(Compile("main(){flurfie a;}")) { @types = (); } ++ if(Compile("int main(){flurfie a;}")) { @types = (); } + + $Verbose=0; + +@@ -781,7 +783,7 @@ main(){ }"); + if(Compile(" + extern void func($types[$i]); + extern void func($types[$j]); +-main(){}")) { ++int main(){}")) { + print "Removing type $types[$j] because it equals $types[$i]\n"; + splice(@types,$j,1); + $j--; +@@ -795,7 +797,7 @@ main(){}")) { + if(Compile(" + $types[$i] func(void); + extern $types[$j] func(void); +-main(){}")) { ++int main(){}")) { + print "Removing type $types[$j] because it equals $types[$i]\n"; + splice(@types,$j,1); + $j--; +@@ -833,7 +835,7 @@ main(){}")) { + # Can we check the return type without worry about arguements? + if($checkreturn and (!$checknilargs or !$checkniletcargs)) { + for (@types) { +- if(ApplyHeaders("extern $_ $function(". ($checknilargs?"...":"").");main(){}",[@headers])) { ++ if(ApplyHeaders("extern $_ $function(". ($checknilargs?"...":"").");int main(){}",[@headers])) { + $rettype = $_; # Great, we found the return type. + last; + } +@@ -847,9 +849,9 @@ main(){}")) { + my $numargs=-1; + my $varargs=0; + for (0..32) { +- if(ApplyHeaders("main(){ $function(".join(",",("0") x $_).");}",@headers)) { ++ if(ApplyHeaders("int main(){ $function(".join(",",("0") x $_).");}",@headers)) { + $numargs=$_; +- if(ApplyHeaders("main(){ $function(".join(",",("0") x ($_+1)).");}",@headers)) { ++ if(ApplyHeaders("int main(){ $function(".join(",",("0") x ($_+1)).");}",@headers)) { + $varargs=1; + } + last +@@ -865,7 +867,7 @@ main(){}")) { + + if(@args>0 and !defined($rettype)) { + for (@types) { +- if(defined(ApplyHeaders("extern $_ $function(".join(",",@args).");main(){}",[@headers]))) { ++ if(defined(ApplyHeaders("extern $_ $function(".join(",",@args).");int main(){}",[@headers]))) { + $rettype = $_; # Great, we found the return type. + last; + } diff --git a/perl-TermReadKey.spec b/perl-TermReadKey.spec index 2fe8d57..ca3bd75 100644 --- a/perl-TermReadKey.spec +++ b/perl-TermReadKey.spec @@ -1,10 +1,11 @@ Name: perl-TermReadKey Version: 2.38 -Release: 14%{?dist} +Release: 15%{?dist} Summary: A perl module for simple terminal control License: (Copyright only) and (Artistic or GPL+) URL: https://metacpan.org/release/TermReadKey Source0: https://cpan.metacpan.org/authors/id/J/JS/JSTOWE/TermReadKey-%{version}.tar.gz +Patch0: perl-TermReadKey-configure-c99.patch # Build BuildRequires: findutils BuildRequires: gcc @@ -41,7 +42,7 @@ can just plug in "use Term::ReadKey" on any architecture and have a good likelyhood of it working. %prep -%setup -q -n TermReadKey-%{version} +%autosetup -p1 -n TermReadKey-%{version} %build CFLAGS="%{optflags}" perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 @@ -62,6 +63,9 @@ make test %{_mandir}/man3/* %changelog +* Fri Nov 25 2022 Florian Weimer - 2.38-15 +- Port Configure.pm to C99 + * Fri Jul 22 2022 Fedora Release Engineering - 2.38-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild