[Midnightbsd-cvs] src [6937] trunk: fix building perl during buildworld when the GDBM port is installed.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Nov 9 20:50:40 EST 2014


Revision: 6937
          http://svnweb.midnightbsd.org/src/?rev=6937
Author:   laffer1
Date:     2014-11-09 20:50:39 -0500 (Sun, 09 Nov 2014)
Log Message:
-----------
fix building perl during buildworld when the GDBM port is installed.

Modified Paths:
--------------
    trunk/UPDATING
    trunk/contrib/perl/Configure
    trunk/contrib/perl/MANIFEST
    trunk/contrib/perl/ext/GDBM_File/GDBM_File.pm
    trunk/contrib/perl/ext/GDBM_File/GDBM_File.xs
    trunk/contrib/perl/ext/GDBM_File/Makefile.PL
    trunk/contrib/perl/ext/GDBM_File/hints/sco.pl
    trunk/contrib/perl/ext/GDBM_File/t/fatal.t
    trunk/contrib/perl/ext/GDBM_File/t/gdbm.t
    trunk/contrib/perl/ext/GDBM_File/typemap
    trunk/usr.bin/perl/BSDmakefile

Modified: trunk/UPDATING
===================================================================
--- trunk/UPDATING	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/UPDATING	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,5 +1,8 @@
 Updating Information for MidnightBSD users.
 
+20141109:
+	Fix building perl during buildworld when the GDBM port is installed.
+
 20141106:
 	tzdata 2014i
 

Modified: trunk/contrib/perl/Configure
===================================================================
--- trunk/contrib/perl/Configure	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/Configure	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1381,7 +1381,7 @@
 : set usesocks on the Configure command line to enable socks.
 : List of libraries we want.
 : If anyone needs extra -lxxx, put those in a hint file.
-libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
+libswanted="sfio socket bind inet nsl nm ndbm dbm db malloc dl dld ld sun"
 libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
 : We probably want to search /usr/shlib before most other libraries.
 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.

Modified: trunk/contrib/perl/MANIFEST
===================================================================
--- trunk/contrib/perl/MANIFEST	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/MANIFEST	2014-11-10 01:50:39 UTC (rev 6937)
@@ -3799,13 +3799,6 @@
 ext/File-Glob/t/rt114984.t	See if File::Glob works
 ext/File-Glob/t/taint.t		See if File::Glob works
 ext/File-Glob/t/threads.t	See if File::Glob + threads works
-ext/GDBM_File/GDBM_File.pm	GDBM extension Perl module
-ext/GDBM_File/GDBM_File.xs	GDBM extension external subroutines
-ext/GDBM_File/hints/sco.pl	Hint for GDBM_File for named architecture
-ext/GDBM_File/Makefile.PL	GDBM extension makefile writer
-ext/GDBM_File/t/fatal.t		Test the fatal_func argument to gdbm_open
-ext/GDBM_File/t/gdbm.t		See if GDBM_File works
-ext/GDBM_File/typemap		GDBM extension interface types
 ext/Hash-Util/Changes		Change history of Hash::Util
 ext/Hash-Util-FieldHash/Changes			Changes for Hash::Util::FieldHash
 ext/Hash-Util-FieldHash/FieldHash.xs		XS portion

Modified: trunk/contrib/perl/ext/GDBM_File/GDBM_File.pm
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/GDBM_File.pm	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/GDBM_File.pm	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,76 +0,0 @@
-# GDBM_File.pm -- Perl 5 interface to GNU gdbm library.
-
-=head1 NAME
-
-GDBM_File - Perl5 access to the gdbm library.
-
-=head1 SYNOPSIS
-
-    use GDBM_File ;
-    tie %hash, 'GDBM_File', $filename, &GDBM_WRCREAT, 0640;
-    # Use the %hash array.
-    untie %hash ;
-
-=head1 DESCRIPTION
-
-B<GDBM_File> is a module which allows Perl programs to make use of the
-facilities provided by the GNU gdbm library.  If you intend to use this
-module you should really have a copy of the gdbm manualpage at hand.
-
-Most of the libgdbm.a functions are available through the GDBM_File
-interface.
-
-=head1 AVAILABILITY
-
-gdbm is available from any GNU archive.  The master site is
-C<ftp.gnu.org>, but you are strongly urged to use one of the many
-mirrors.  You can obtain a list of mirror sites from
-http://www.gnu.org/order/ftp.html.
-
-=head1 BUGS
-
-The available functions and the gdbm/perl interface need to be documented.
-
-The GDBM error number and error message interface needs to be added.
-
-=head1 SEE ALSO
-
-L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>. 
-
-=cut
-
-package GDBM_File;
-
-use strict;
-use warnings;
-our($VERSION, @ISA, @EXPORT);
-
-require Carp;
-require Tie::Hash;
-require Exporter;
-require XSLoader;
- at ISA = qw(Tie::Hash Exporter);
- at EXPORT = qw(
-	GDBM_CACHESIZE
-	GDBM_CENTFREE
-	GDBM_COALESCEBLKS
-	GDBM_FAST
-	GDBM_FASTMODE
-	GDBM_INSERT
-	GDBM_NEWDB
-	GDBM_NOLOCK
-	GDBM_OPENMASK
-	GDBM_READER
-	GDBM_REPLACE
-	GDBM_SYNC
-	GDBM_SYNCMODE
-	GDBM_WRCREAT
-	GDBM_WRITER
-);
-
-# This module isn't dual life, so no need for dev version numbers.
-$VERSION = '1.15';
-
-XSLoader::load();
-
-1;

Modified: trunk/contrib/perl/ext/GDBM_File/GDBM_File.xs
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/GDBM_File.xs	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/GDBM_File.xs	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,194 +0,0 @@
-#define PERL_NO_GET_CONTEXT
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#include <gdbm.h>
-#include <fcntl.h>
-
-#define fetch_key 0
-#define store_key 1
-#define fetch_value 2
-#define store_value 3
-
-typedef struct {
-	GDBM_FILE 	dbp ;
-	SV *    filter[4];
-	int     filtering ;
-	} GDBM_File_type;
-
-typedef GDBM_File_type * GDBM_File ;
-typedef datum datum_key ;
-typedef datum datum_value ;
-typedef datum datum_key_copy;
-
-#define GDBM_BLOCKSIZE 0 /* gdbm defaults to stat blocksize */
-
-#if defined(GDBM_VERSION_MAJOR) && defined(GDBM_VERSION_MINOR) \
-    && GDBM_VERSION_MAJOR > 1 || \
-    (GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR >= 9)
-typedef void (*FATALFUNC)(const char *);
-#else
-typedef void (*FATALFUNC)();
-#endif
-
-#ifndef GDBM_FAST
-static int
-not_here(char *s)
-{
-    croak("GDBM_File::%s not implemented on this architecture", s);
-    return -1;
-}
-#endif
-
-/* GDBM allocates the datum with system malloc() and expects the user
- * to free() it.  So we either have to free() it immediately, or have
- * perl free() it when it deallocates the SV, depending on whether
- * perl uses malloc()/free() or not. */
-static void
-output_datum(pTHX_ SV *arg, char *str, int size)
-{
-	sv_setpvn(arg, str, size);
-#	undef free
-	free(str);
-}
-
-/* Versions of gdbm prior to 1.7x might not have the gdbm_sync,
-   gdbm_exists, and gdbm_setopt functions.  Apparently Slackware
-   (Linux) 2.1 contains gdbm-1.5 (which dates back to 1991).
-*/
-#ifndef GDBM_FAST
-#define gdbm_exists(db,key) not_here("gdbm_exists")
-#define gdbm_sync(db) (void) not_here("gdbm_sync")
-#define gdbm_setopt(db,optflag,optval,optlen) not_here("gdbm_setopt")
-#endif
-
-static void
-croak_string(const char *message) {
-    Perl_croak_nocontext("%s", message);
-}
-
-#include "const-c.inc"
-
-MODULE = GDBM_File	PACKAGE = GDBM_File	PREFIX = gdbm_
-
-INCLUDE: const-xs.inc
-
-GDBM_File
-gdbm_TIEHASH(dbtype, name, read_write, mode)
-	char *		dbtype
-	char *		name
-	int		read_write
-	int		mode
-	CODE:
-	{
-	    GDBM_FILE  	dbp ;
-
-	    RETVAL = NULL ;
-	    if ((dbp =  gdbm_open(name, GDBM_BLOCKSIZE, read_write, mode,
-	       	     	          (FATALFUNC) croak_string))) {
-	        RETVAL = (GDBM_File)safecalloc(1, sizeof(GDBM_File_type)) ;
-		RETVAL->dbp = dbp ;
-	    }
-	    
-	}
-	OUTPUT:
-	  RETVAL
-	
-
-#define gdbm_close(db)			gdbm_close(db->dbp)
-void
-gdbm_close(db)
-	GDBM_File	db
-	CLEANUP:
-
-void
-gdbm_DESTROY(db)
-	GDBM_File	db
-	PREINIT:
-	int i = store_value;
-	CODE:
-	gdbm_close(db);
-	do {
-	    if (db->filter[i])
-		SvREFCNT_dec(db->filter[i]);
-	} while (i-- > 0);
-	safefree(db);
-
-#define gdbm_FETCH(db,key)			gdbm_fetch(db->dbp,key)
-datum_value
-gdbm_FETCH(db, key)
-	GDBM_File	db
-	datum_key_copy	key
-
-#define gdbm_STORE(db,key,value,flags)		gdbm_store(db->dbp,key,value,flags)
-int
-gdbm_STORE(db, key, value, flags = GDBM_REPLACE)
-	GDBM_File	db
-	datum_key	key
-	datum_value	value
-	int		flags
-    CLEANUP:
-	if (RETVAL) {
-	    if (RETVAL < 0 && errno == EPERM)
-		croak("No write permission to gdbm file");
-	    croak("gdbm store returned %d, errno %d, key \"%.*s\"",
-			RETVAL,errno,key.dsize,key.dptr);
-	}
-
-#define gdbm_DELETE(db,key)			gdbm_delete(db->dbp,key)
-int
-gdbm_DELETE(db, key)
-	GDBM_File	db
-	datum_key	key
-
-#define gdbm_FIRSTKEY(db)			gdbm_firstkey(db->dbp)
-datum_key
-gdbm_FIRSTKEY(db)
-	GDBM_File	db
-
-#define gdbm_NEXTKEY(db,key)			gdbm_nextkey(db->dbp,key)
-datum_key
-gdbm_NEXTKEY(db, key)
-	GDBM_File	db
-	datum_key	key 
-
-#define gdbm_reorganize(db)			gdbm_reorganize(db->dbp)
-int
-gdbm_reorganize(db)
-	GDBM_File	db
-
-
-#define gdbm_sync(db)				gdbm_sync(db->dbp)
-void
-gdbm_sync(db)
-	GDBM_File	db
-
-#define gdbm_EXISTS(db,key)			gdbm_exists(db->dbp,key)
-int
-gdbm_EXISTS(db, key)
-	GDBM_File	db
-	datum_key	key
-
-#define gdbm_setopt(db,optflag, optval, optlen)	gdbm_setopt(db->dbp,optflag, optval, optlen)
-int
-gdbm_setopt (db, optflag, optval, optlen)
-	GDBM_File	db
-	int		optflag
-	int		&optval
-	int		optlen
-
-
-SV *
-filter_fetch_key(db, code)
-	GDBM_File	db
-	SV *		code
-	SV *		RETVAL = &PL_sv_undef ;
-	ALIAS:
-	GDBM_File::filter_fetch_key = fetch_key
-	GDBM_File::filter_store_key = store_key
-	GDBM_File::filter_fetch_value = fetch_value
-	GDBM_File::filter_store_value = store_value
-	CODE:
-	    DBM_setFilter(db->filter[ix], code);

Modified: trunk/contrib/perl/ext/GDBM_File/Makefile.PL
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/Makefile.PL	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/Makefile.PL	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,20 +0,0 @@
-use ExtUtils::MakeMaker;
-use ExtUtils::Constant 0.11 'WriteConstants';
-WriteMakefile(
-    NAME => 'GDBM_File',
-    LIBS => ["-lgdbm", "-ldbm"],
-    XSPROTOARG => '-noprototypes', 		# XXX remove later?
-    VERSION_FROM => 'GDBM_File.pm',
-    realclean => {FILES=> 'const-c.inc const-xs.inc'},
-    XS_VERSION => eval MM->parse_version('GDBM_File.pm'), #silence warnings if we are a dev release
-);
-WriteConstants(
-    NAME => 'GDBM_File',
-    DEFAULT_TYPE => 'IV',
-    BREAKOUT_AT => 8,
-    PROXYSUBS => {autoload => 1},
-    NAMES => [qw(GDBM_CACHESIZE GDBM_CENTFREE GDBM_COALESCEBLKS
-		 GDBM_FAST GDBM_FASTMODE GDBM_INSERT GDBM_NEWDB GDBM_NOLOCK
-		 GDBM_OPENMASK GDBM_READER GDBM_REPLACE GDBM_SYNC GDBM_SYNCMODE
-		 GDBM_WRCREAT GDBM_WRITER)],
-);

Modified: trunk/contrib/perl/ext/GDBM_File/hints/sco.pl
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/hints/sco.pl	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/hints/sco.pl	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,2 +0,0 @@
-# SCO OSR5 needs to link with libc.so again to have C<fsync> defined
-$self->{LIBS} = ['-lgdbm -lc'];

Modified: trunk/contrib/perl/ext/GDBM_File/t/fatal.t
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/t/fatal.t	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/t/fatal.t	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,45 +0,0 @@
-#!./perl -w
-use strict;
-
-use Test::More;
-use Config;
-
-BEGIN {
-    plan(skip_all => "GDBM_File was not built")
-	unless $Config{extensions} =~ /\bGDBM_File\b/;
-
-    plan(tests => 8);
-    use_ok('GDBM_File');
-}
-
-unlink <Op_dbmx*>;
-
-open my $fh, $^X or die "Can't open $^X: $!";
-my $fileno = fileno $fh;
-isnt($fileno, undef, "Can find next available file descriptor");
-close $fh or die $!;
-
-is((open $fh, "<&=$fileno"), undef,
-   "Check that we cannot open fileno $fileno. \$! is $!");
-
-umask(0);
-my %h;
-isa_ok(tie(%h, 'GDBM_File', 'Op_dbmx', GDBM_WRCREAT, 0640), 'GDBM_File');
-
-isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
-    or diag("\$! = $!");
-isnt(close $fh, undef,
-     "close fileno $fileno, out from underneath the GDBM_File");
-is(eval {
-    $h{Perl} = 'Rules';
-    untie %h;
-    1;
-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
-
-# Observed "File write error" and "lseek error" from two different systems.
-# So there might be more variants. Important part was that we trapped the error
-# via croak.
-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
-     'expected error message from GDBM_File');
-
-unlink <Op_dbmx*>;

Modified: trunk/contrib/perl/ext/GDBM_File/t/gdbm.t
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/t/gdbm.t	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/t/gdbm.t	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,6 +0,0 @@
-#!./perl
-
-$::Create_and_Write = '(GDBM_WRCREAT, GDBM_WRITER)';
-our $DBM_Class = 'GDBM_File';
-
-require '../../t/lib/dbmt_common.pl';

Modified: trunk/contrib/perl/ext/GDBM_File/typemap
===================================================================
--- trunk/contrib/perl/ext/GDBM_File/typemap	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/contrib/perl/ext/GDBM_File/typemap	2014-11-10 01:50:39 UTC (rev 6937)
@@ -1,56 +0,0 @@
-#
-#################################### DBM SECTION
-#
-
-datum_key		T_DATUM_K
-datum_key_copy		T_DATUM_K
-datum_value		T_DATUM_V
-NDBM_File		T_PTROBJ
-GDBM_File		T_PTROBJ
-SDBM_File		T_PTROBJ
-ODBM_File		T_PTROBJ
-DB_File			T_PTROBJ
-DBZ_File		T_PTROBJ
-
-INPUT
-T_DATUM_K
-	DBM_ckFilter($arg, filter[store_key], \"filter_store_key\");
-	{
-	    STRLEN len;
-	    $var.dptr = SvPVbyte($arg, len);
-	    $var.dsize = (int)len;
-	}
-T_DATUM_K_C
-	{
-	    SV * tmpSV;
-	    STRLEN len;
-	    if (db->filter[store_key]) {
-	        tmpSV = sv_2mortal(newSVsv($arg)); 
-	        DBM_ckFilter(tmpSV, filter[store_key], \"filter_store_key\");
-            }
-            else
-                tmpSV = $arg;
-	    $var.dptr = SvPVbyte(tmpSV, len);
-	    $var.dsize = (int)len;
-	}
-T_DATUM_V
-        DBM_ckFilter($arg, filter[store_value], \"filter_store_value\");
-	if (SvOK($arg)) {
-	    STRLEN len;
-	    $var.dptr = SvPVbyte($arg, len);
-	    $var.dsize = (int)len;
-	}
-	else {
-	    $var.dptr = (char *)\"\";	
-	    /* better would be for .dptr to be const char * */
-	    $var.dsize = 0;
-	}
-OUTPUT
-T_DATUM_K
-	output_datum(aTHX_ $arg, $var.dptr, $var.dsize);
-	DBM_ckFilter($arg, filter[fetch_key],\"filter_fetch_key\");
-T_DATUM_V
-	output_datum(aTHX_ $arg, $var.dptr, $var.dsize);
-	DBM_ckFilter($arg, filter[fetch_value],\"filter_fetch_value\");
-T_PTROBJ
-        sv_setref_pv($arg, dbtype, (void*)$var);

Modified: trunk/usr.bin/perl/BSDmakefile
===================================================================
--- trunk/usr.bin/perl/BSDmakefile	2014-11-09 19:38:45 UTC (rev 6936)
+++ trunk/usr.bin/perl/BSDmakefile	2014-11-10 01:50:39 UTC (rev 6937)
@@ -62,9 +62,9 @@
 	cd ${.OBJDIR} && LD_LIBRARY_PATH=${.OBJDIR}:${DESTDIR}/lib ./perl installperl --destdir=${DESTDIR}
 
 .if ${TARGET_ARCH} == "i386"
-	 ln -fs ${DESTDIR}${LIBDIR}/perl5/5.18.0/${TARGET_ARCH}-midnightbsd-64int/CORE/libperl.so ${DESTDIR}${LIBDIR}/libperl.so
+	 ln -fs ${DESTDIR}${LIBDIR}/perl5/5.18.2/${TARGET_ARCH}-midnightbsd-64int/CORE/libperl.so ${DESTDIR}${LIBDIR}/libperl.so
 .else
-	 ln -fs ${DESTDIR}${LIBDIR}/perl5/5.18.0/${TARGET_ARCH}-midnightbsd/CORE/libperl.so ${DESTDIR}${LIBDIR}/libperl.so
+	 ln -fs ${DESTDIR}${LIBDIR}/perl5/5.18.2/${TARGET_ARCH}-midnightbsd/CORE/libperl.so ${DESTDIR}${LIBDIR}/libperl.so
 .endif
 
 #



More information about the Midnightbsd-cvs mailing list