Port miniperl and rpmio components to Solaris 11.

Tue, 06 Jan 2009 23:42:49 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2009 23:42:49 +0100
changeset 14
0cd2ee160ef5
parent 13
cb59d6afeb61
child 15
0b0ffb65d705

Port miniperl and rpmio components to Solaris 11.

openpkg/HISTORY file | annotate | diff | comparison | revisions
openpkg/openpkg.spec file | annotate | diff | comparison | revisions
openpkg/perl.patch file | annotate | diff | comparison | revisions
openpkg/rpm.patch.porting file | annotate | diff | comparison | revisions
     1.1 --- a/openpkg/HISTORY	Tue Jan 06 23:40:39 2009 +0100
     1.2 +++ b/openpkg/HISTORY	Tue Jan 06 23:42:49 2009 +0100
     1.3 @@ -1,3 +1,12 @@
     1.4 +2009
     1.5 +====
     1.6 +
     1.7 +20090106 port miniperl and rpmio to Solaris 11
     1.8 +
     1.9 +2008
    1.10 +====
    1.11 +
    1.12 +20080101 closedpkg
    1.13  
    1.14  2007
    1.15  ====
     2.1 --- a/openpkg/openpkg.spec	Tue Jan 06 23:40:39 2009 +0100
     2.2 +++ b/openpkg/openpkg.spec	Tue Jan 06 23:42:49 2009 +0100
     2.3 @@ -39,7 +39,7 @@
     2.4  #   o any cc(1)
     2.5  
     2.6  #   the package version/release
     2.7 -%define       V_openpkg  20071227
     2.8 +%define       V_openpkg  20090106
     2.9  
    2.10  #   the used software versions
    2.11  %define       V_rpm      4.2.1
     3.1 --- a/openpkg/perl.patch	Tue Jan 06 23:40:39 2009 +0100
     3.2 +++ b/openpkg/perl.patch	Tue Jan 06 23:42:49 2009 +0100
     3.3 @@ -15,7 +15,7 @@
     3.4   my $installman1dir = "$destdir$Config{installman1dir}";
     3.5   my $man1ext = $Config{man1ext};
     3.6   my $libperl = $Config{libperl};
     3.7 -@@ -403,6 +405,8 @@
     3.8 +@@ -372,6 +374,8 @@
     3.9   mkpath($installarchlib, $verbose, 0777);
    3.10   mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
    3.11   mkpath($installsitearch, $verbose, 0777) if ($installsitearch);
    3.12 @@ -38,7 +38,7 @@
    3.13  Index: perl.c
    3.14  --- perl.c.orig	2006-08-15 14:37:41 +0200
    3.15  +++ perl.c	2006-08-18 21:08:14 +0200
    3.16 -@@ -4749,39 +4749,6 @@
    3.17 +@@ -4753,39 +4753,6 @@
    3.18       incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
    3.19   #endif
    3.20   
    3.21 @@ -78,7 +78,7 @@
    3.22   #ifdef SITEARCH_EXP
    3.23       /* sitearch is always relative to sitelib on Windows for
    3.24        * DLL-based path intuition to work correctly */
    3.25 -@@ -4824,6 +4791,39 @@
    3.26 +@@ -4828,6 +4795,39 @@
    3.27       incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE);
    3.28   #endif
    3.29   
    3.30 @@ -160,7 +160,7 @@
    3.31  Index: perlio.c
    3.32  --- perlio.c.orig	2006-08-15 14:37:41 +0200
    3.33  +++ perlio.c	2006-08-18 21:05:05 +0200
    3.34 -@@ -461,7 +461,14 @@
    3.35 +@@ -472,7 +472,14 @@
    3.36   #include <unistd.h>
    3.37   #endif
    3.38   #ifdef HAS_MMAP
    3.39 @@ -211,9 +211,9 @@
    3.40  Index: Configure
    3.41  --- Configure.orig	2006-08-15 14:37:40 +0200
    3.42  +++ Configure	2006-08-18 21:05:05 +0200
    3.43 -@@ -7787,7 +7787,7 @@
    3.44 - 			      ;;	
    3.45 - 			linux|irix*|gnu*)	dflt='-shared' ;;
    3.46 +@@ -7871,7 +7871,7 @@
    3.47 + 			      ;;
    3.48 + 			linux|irix*|gnu*)  dflt="-shared $optimize" ;;
    3.49   			next)  dflt='none' ;;
    3.50  -			solaris) dflt='-G' ;;
    3.51  +			solaris) dflt='-shared' ;;
    3.52 @@ -228,7 +228,7 @@
    3.53  Index: sv.c
    3.54  --- sv.c.orig	2006-08-15 14:37:41 +0200
    3.55  +++ sv.c	2006-08-18 21:05:05 +0200
    3.56 -@@ -8595,7 +8595,10 @@
    3.57 +@@ -8667,7 +8667,10 @@
    3.58   	if ( (width = expect_number(&q)) ) {
    3.59   	    if (*q == '$') {
    3.60   		++q;
    3.61 @@ -241,3 +241,19 @@
    3.62   		goto gotwidth;
    3.63   	    }
    3.64  
    3.65 +-----------------------------------------------------------------------------
    3.66 +
    3.67 +Corrections for Solaris 11:
    3.68 +
    3.69 +Index: perl.h
    3.70 +diff -Nau perl.h.orig perl.h
    3.71 +--- perl.h.orig	2007-12-18 11:47:08.000000000 +0100
    3.72 ++++ perl.h	2009-01-06 15:28:45.843276063 +0100
    3.73 +@@ -1393,6 +1393,7 @@
    3.74 +  */
    3.75 + 
    3.76 + #if defined(I_SYSMODE) && !defined(PERL_MICRO)
    3.77 ++#include <sys/vnode.h>
    3.78 + #include <sys/mode.h>
    3.79 + #endif
    3.80 + 
     4.1 --- a/openpkg/rpm.patch.porting	Tue Jan 06 23:40:39 2009 +0100
     4.2 +++ b/openpkg/rpm.patch.porting	Tue Jan 06 23:42:49 2009 +0100
     4.3 @@ -1482,3 +1482,52 @@
     4.4   #include <ctype.h>
     4.5   
     4.6   /* The code at the top of get_date which figures out the offset of the
     4.7 +
     4.8 ++---------------------------------------------------------------------------
     4.9 +| The following patch works around a general failure of RPM to
    4.10 +| adhere to the ISO C standard, for which newer GCC releases claim
    4.11 +| compile errors and fail.
    4.12 ++---------------------------------------------------------------------------
    4.13 +Index: misc/err.h
    4.14 +--- misc/err.h	2009-01-06 22:48:16.104430941 +0100
    4.15 ++++ misc/err.h	2009-01-06 22:47:55.944312482 +0100
    4.16 +@@ -29,31 +29,4 @@
    4.17 + # define __gnuc_va_list	__ptr_t
    4.18 + #endif
    4.19 + 
    4.20 +-__BEGIN_DECLS
    4.21 +-
    4.22 +-/* Print "program: ", FORMAT, ": ", the standard error string for errno,
    4.23 +-   and a newline, on stderr.  */
    4.24 +-extern void warn __P ((__const char *__format, ...))
    4.25 +-     __attribute__ ((__format__ (__printf__, 1, 2)));
    4.26 +-extern void vwarn __P ((__const char *__format, __gnuc_va_list))
    4.27 +-     __attribute__ ((__format__ (__printf__, 1, 0)));
    4.28 +-
    4.29 +-/* Likewise, but without ": " and the standard error string.  */
    4.30 +-extern void warnx __P ((__const char *__format, ...))
    4.31 +-     __attribute__ ((__format__ (__printf__, 1, 2)));
    4.32 +-extern void vwarnx __P ((__const char *__format, __gnuc_va_list))
    4.33 +-     __attribute__ ((__format__ (__printf__, 1, 0)));
    4.34 +-
    4.35 +-/* Likewise, and then exit with STATUS.  */
    4.36 +-extern void err __P ((int __status, __const char *__format, ...))
    4.37 +-     __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
    4.38 +-extern void verr __P ((int __status, __const char *__format, __gnuc_va_list))
    4.39 +-     __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
    4.40 +-extern void errx __P ((int __status, __const char *__format, ...))
    4.41 +-     __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
    4.42 +-extern void verrx __P ((int __status, __const char *, __gnuc_va_list))
    4.43 +-     __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
    4.44 +-
    4.45 +-__END_DECLS
    4.46 +-
    4.47 + #endif	/* err.h */
    4.48 +
    4.49 ++---------------------------------------------------------------------------
    4.50 +| Due to either GCC enforcing ISO C or faulty references in the
    4.51 +| rpmio component, Solaris 11 fails to build while compiling fts.c.
    4.52 +| Hack a custom 'dirent.h' as found in /usr/include, remove the
    4.53 +| line 104 'extern int dirfd(DIR *);' from the header file, and
    4.54 +| place in directory openpkg-`date +%Y%m%d`/rpm-<version>/rpmio/.
    4.55 ++---------------------------------------------------------------------------

mercurial