Update of /cvsroot/fink/dists/10.4/unstable/crypto/finkinfo
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30560

Modified Files:
        db44-aes.info db47-aes.info 
Added Files:
        db44-aes.patch 
Log Message:
db* won't build if user has a /usr/local/include/db.h as it hides the needed 
/usr/include/db/h. Add a descriptive warning and make the build fail 
immediately in this case. Also add latest upstream patches to db44.

Index: db47-aes.info
===================================================================
RCS file: /cvsroot/fink/dists/10.4/unstable/crypto/finkinfo/db47-aes.info,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- db47-aes.info       6 Apr 2009 18:38:15 -0000       1.4
+++ db47-aes.info       8 May 2009 16:50:40 -0000       1.5
@@ -41,6 +41,16 @@
 GCC: 4.0
 CompileScript: <<
 #! /bin/sh -ex
+set +x
+if [ -e /usr/local/include/db.h ]; then
+       echo "-----WARNING-----WARNING-----WARNING-----"
+       echo "You seem to have a Berkeley DB installation in /usr/local."
+       echo "This is known to cause %N to fail to build."
+       echo "Please rename /usr/local/include/db.h temporarily and try again."
+       echo "-----WARNING-----WARNING-----WARNING-----"
+       exit 1
+fi
+set -x
 VERSIONS="-avoid-version  -XCClinker -current_version -XCClinker %v -XCClinker 
-compatibility_version -XCClinker 4.7 -no-undefined"
 LIBDB="libdb-4.7.la"
 LIBDBCXX="libdb_cxx-4.7.la"

Index: db44-aes.info
===================================================================
RCS file: /cvsroot/fink/dists/10.4/unstable/crypto/finkinfo/db44-aes.info,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- db44-aes.info       22 Feb 2009 21:54:19 -0000      1.7
+++ db44-aes.info       8 May 2009 16:50:40 -0000       1.8
@@ -1,6 +1,6 @@
 Package: db44-aes
 Version: 4.4.20
-Revision: 1004
+Revision: 1005
 CustomMirror: <<
 nam-US: http://download-east.oracle.com/berkeley-db/
 nam-US: http://download-west.oracle.com/berkeley-db/
@@ -26,16 +26,28 @@
   db47-aes, db47, db47-aes-64bit, db47-64bit
 <<
 Depends: db44-shlibs (= %v-%r) | db44-aes-shlibs (=%v-%r)
+BuildDepends: fink (>= 0.26.2)
 BuildDependsOnly: true
 NoSetLDFlags: true
 NoSetCPPFlags: true
 SetCFlags: -Os
 SetCXXFlags: -Os
-#Patch: %n.patch
+PatchFile: %{ni}.patch
+PatchFile-MD5: c1d1b6777485d661bac5cf76bf8b9d4a
 ConfigureParams: --enable-compat185 --enable-cxx --enable-dump185 
--includedir=%p/include/db4
 GCC: 4.0
 CompileScript: <<
 #! /bin/sh -ex
+set +x
+if [ -e /usr/local/include/db.h ]; then
+       echo "-----WARNING-----WARNING-----WARNING-----"
+       echo "You seem to have a Berkeley DB installation in /usr/local."
+       echo "This is known to cause %N to fail to build."
+       echo "Please rename /usr/local/include/db.h temporarily and try again."
+       echo "-----WARNING-----WARNING-----WARNING-----"
+       exit 1
+fi
+set -x
 VERSIONS="-avoid-version  -XCClinker -current_version -XCClinker %v -XCClinker 
-compatibility_version -XCClinker 4.4 -no-undefined"
 LIBDB="libdb-4.4.la"
 LIBDBCXX="libdb_cxx-4.4.la"

--- NEW FILE: db44-aes.patch ---
diff -ru db-4.4.20.orig/db/db_cam.c db-4.4.20/db/db_cam.c
--- db-4.4.20.orig/db/db_cam.c  2006-01-10 11:19:21.000000000 -0500
+++ db-4.4.20/db/db_cam.c       2009-05-08 11:16:24.000000000 -0400
@@ -579,11 +579,12 @@
            flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
                if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
                        return (ret);
-               if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
+               if (F_ISSET(dbc_arg, DBC_TRANSIENT))
+                       opd = cp->opd;
+               else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
                        return (ret);
 
-               switch (ret =
-                   opd->c_am_get(opd, key, data, flags, NULL)) {
+               switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) {
                case 0:
                        goto done;
                case DB_NOTFOUND:
@@ -596,12 +597,18 @@
                                if ((ret = __db_c_close(opd)) != 0)
                                        goto err;
                                opd = NULL;
+                               if (F_ISSET(dbc_arg, DBC_TRANSIENT))
+                                       cp->opd = NULL;
                                break;
                        }
                        goto err;
                default:
                        goto err;
                }
+       } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) {
+               if ((ret = __db_c_close(cp->opd)) != 0)
+                       goto err;
+               cp->opd = NULL;
        }
 
        /*
diff -ru db-4.4.20.orig/mp/mp_fget.c db-4.4.20/mp/mp_fget.c
--- db-4.4.20.orig/mp/mp_fget.c 2005-10-12 13:53:36.000000000 -0400
+++ db-4.4.20/mp/mp_fget.c      2009-05-08 11:16:29.000000000 -0400
@@ -587,8 +587,11 @@
         */
        if (state != SECOND_MISS && bhp->ref == 1) {
                bhp->priority = UINT32_MAX;
-               SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
-               SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
+               if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) !=
+                    SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) {
+                       SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
+                       SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
+               }
                hp->hash_priority =
                    SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
        }
diff -ru db-4.4.20.orig/qam/qam_files.c db-4.4.20/qam/qam_files.c
--- db-4.4.20.orig/qam/qam_files.c      2005-10-20 14:57:12.000000000 -0400
+++ db-4.4.20/qam/qam_files.c   2009-05-08 11:16:13.000000000 -0400
@@ -411,6 +411,12 @@
            DB_APP_DATA, buf, 0, NULL, &real_name)) != 0)
                goto err;
 #endif
+
+       mpf = array->mpfarray[offset].mpf;
+       /* This extent my already be marked for delete and closed. */
+       if (mpf == NULL)
+               goto err;
+
        /*
         * The log must be flushed before the file is deleted.  We depend on
         * the log record of the last delete to recreate the file if we crash.
@@ -418,7 +424,6 @@
        if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0)
                goto err;
 
-       mpf = array->mpfarray[offset].mpf;
        (void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1);
        /* Someone could be real slow, let them close it down. */
        if (array->mpfarray[offset].pinref != 0)
diff -ru db-4.4.20.orig/txn/txn.c db-4.4.20/txn/txn.c
--- db-4.4.20.orig/txn/txn.c    2005-11-01 09:50:03.000000000 -0500
+++ db-4.4.20/txn/txn.c 2009-05-08 11:16:20.000000000 -0400
@@ -1049,12 +1049,14 @@
                return (ret);
        memcpy(txn->name, name, len);
 
+       TXN_SYSTEM_LOCK(dbenv);
        if (td->name != INVALID_ROFF) {
                __db_shalloc_free(
                    &mgr->reginfo, R_ADDR(&mgr->reginfo, td->name));
                td->name = INVALID_ROFF;
        }
        if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) {
+               TXN_SYSTEM_UNLOCK(dbenv);
                __db_err(dbenv,
                    "Unable to allocate memory for transaction name");
 
@@ -1063,6 +1065,7 @@
 
                return (ret);
        }
+       TXN_SYSTEM_UNLOCK(dbenv);
        td->name = R_OFFSET(&mgr->reginfo, p);
        memcpy(p, name, len);
 


------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to