Opened 2 years ago

Last modified 2 months ago

#62216 assigned defect

db53 @5.3.28: error: Support for FCNTL mutexes was removed in BDB 4.8.

Reported by: minusf Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: arm64 bigsur Cc: tgyurci (Teubel György), jmroot (Joshua Root), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), thynus, ctreleaven (Craig Treleaven), exg (Emanuele Giaquinta), sudheerhebbale (Sudheer Hebbale)
Port: db53 isync

Description

i am trying to build isync and it fails on db53.

i see non-arm64 packages built under https://packages.macports.org/db53/ and i use isync on an intel mac so i imagine this compiles fine on intel but not yet on arm64:

-->  Fetching archive for db53
--->  Attempting to fetch db53-5.3.28_0+sql.darwin_20.arm64.tbz2 from https://lil.fr.packages.macports.org/db53
--->  Attempting to fetch db53-5.3.28_0+sql.darwin_20.arm64.tbz2 from https://packages.macports.org/db53
--->  Attempting to fetch db53-5.3.28_0+sql.darwin_20.arm64.tbz2 from https://cph.dk.packages.macports.org/db53
--->  Fetching distfiles for db53
--->  Verifying checksums for db53
--->  Extracting db53
--->  Applying patches to db53
--->  Configuring db53
Error: Failed to configure db53, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_db53/db53/work/db-5.3.28/build_unix/config.log
Error: Failed to configure db53: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_db53/db53/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port isync failed

there are many failed tests in the configure log, but some of them are designed to catch stuff i guess. the last error is:

configure:22024: /usr/bin/clang -o conftest -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk -arch arm64  -I/opt/local/include -DSQLITE_ENABLE_COLUMN_METADATA -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk -L/opt/local/lib -Wl,-headerpad_max_install_names -W
l,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk -arch arm64 conftest.c  >&5
configure:22024: $? = 0
configure:22032: result: UNIX/fcntl
configure:22214: error: Support for FCNTL mutexes was removed in BDB 4.8.

Attachments (3)

config.log (160.0 KB) - added by minusf 2 years ago.
main.log (25.5 KB) - added by minusf 2 years ago.
gramps_db5_config_failure.log (159.6 KB) - added by physicsbeany 4 months ago.
failure log from trying gramps installation

Download all attachments as: .zip

Change History (18)

comment:1 Changed 2 years ago by ryandesign (Ryan Schmidt)

Keywords: arm64 bigsur added
Port: db53 added
Summary: isync build fails on db53 dependency on arm64db53: error: Support for FCNTL mutexes was removed in BDB 4.8.

This was previously reported in #61409 and duplicates. It has been closed as fixed, but with a note that the problem remains on arm64. Please sudo port selfupdate to ensure you have at least the partial fix from that ticket and then sudo port clean db53 and try again and attach the main.log and config.log files so that we can have a full record of what's happening.

comment:2 Changed 2 years ago by tgyurci (Teubel György)

Cc: tgyurci added

Changed 2 years ago by minusf

Attachment: config.log added

Changed 2 years ago by minusf

Attachment: main.log added

comment:3 Changed 2 years ago by ryandesign (Ryan Schmidt)

Cc: jmroot MarcusCalhoun-Lopez added

Looks like we may need BerkeleyDB 12.1.6.2 (12.1.6.1.26) or newer for arm64 support.

https://docs.oracle.com/cd/E17076_05/html/installation/upgrade_supparm64.html

The current version is 18.1.40 so we are pretty out of date in MacPorts, having only BerkeleyDB 6.2 at newest in the db62 port.

Our failure to provide current versions of BerkeleyDB in MacPorts may relate to the acquisition of BerkeleyDB by Oracle in 2006 (and the resulting undesirable corporate flavor imparted to the project and its web site—for example, I have no idea how to download old versions of BerkeleyDB from Oracle now or how to browse or download its source code repository) and the switch to the possibly undesirable AGPL license as of BerkeleyDB 6.0.20 in 2013. According to Wikipedia, Linux distributions have phased out BerkeleyDB in favor of LMDB; perhaps MacPorts could embark on a similar effort.

Cc'ing maintainers of db47 and db48 for thoughts. Other db versions in MacPorts are not maintained, which may also contribute to our lack of updates.

comment:4 Changed 17 months ago by thynus

Cc: thynus added

comment:5 Changed 17 months ago by ctreleaven (Craig Treleaven)

Cc: ctreleaven added

comment:6 Changed 15 months ago by enckse (Sean Enck)

I never cross-referenced back the change to isync that allows for a variant around bdb and can unblock arm64 users that may have gotten here trying to use isync: https://github.com/macports/macports-ports/pull/11466

comment:7 Changed 13 months ago by mascguy (Christopher Nielsen)

Cc: mascguy added

Changed 4 months ago by physicsbeany

failure log from trying gramps installation

comment:8 Changed 4 months ago by physicsbeany

I just encountered this same db5 error when trying to install gramps on my M1 Macbook (MacOS 12.6 Monterey, Macports 2.7.2).

It's not clear to me from the more recent comments whether there's some kind of workaround for gramps.

comment:9 in reply to:  3 ; Changed 4 months ago by mascguy (Christopher Nielsen)

Replying to ryandesign:

According to Wikipedia, Linux distributions have phased out BerkeleyDB in favor of LMDB; perhaps MacPorts could embark on a similar effort.

Since db62 now builds for ARM, that eliminates one blocker. (Though I agree, we should also add a port(s) for LMDB.)

The key barrier, is Python support: Surprisingly, we only provide a port for BDB bindings, via legacy port py-bsddb3. (And that only supports Python versions up to 3.9.) We should also add a port for py-berkeleydb, as that's being actively developed.

And finally, once that's done, we may have to patch gramps to use py-berkeleydb: While the API is very similar, there is one potential breaking change. However, based on the docs, it should be relatively easy to deal with.

comment:10 Changed 4 months ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Owner: set to mascguy
Status: newassigned

comment:11 Changed 4 months ago by Christopher Nielsen <mascguy@…>

In 87cce7d40249d85ce6c10a8dcb36609e68574bd2/macports-ports (master):

py-berkeleydb: new port
See: #62216

comment:12 in reply to:  9 Changed 4 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

And finally, once that's done, we may have to patch gramps to use py-berkeleydb: While the API is very similar, there is one potential breaking change. However, based on the docs, it should be relatively easy to deal with.

It looks like gramps upstream has an open feature request, to formally migrate to py-berkeleydb:

12305 - Migrating the BerkeleyDB back-end from bsddb3 (that will not support Python 3.10 and newer) to berkeleydb

In terms of an ETA, this is presently targeted at upcoming release 5.2.0. There isn't a definitive date on that, but it may be forthcoming before the end of the year.

comment:13 Changed 4 months ago by mascguy (Christopher Nielsen)

Cc: exg added
Port: isync added

@exg, can isync be updated to use db62 instead, since the latter is supported for ARM?

comment:14 in reply to:  13 Changed 3 months ago by exg (Emanuele Giaquinta)

Replying to mascguy:

@exg, can isync be updated to use db62 instead, since the latter is supported for ARM?

Yes, here is a PR: https://github.com/macports/macports-ports/pull/16375

comment:15 Changed 2 months ago by ryandesign (Ryan Schmidt)

Cc: sudheerhebbale added
Summary: db53: error: Support for FCNTL mutexes was removed in BDB 4.8.db53 @5.3.28: error: Support for FCNTL mutexes was removed in BDB 4.8.

Has duplicate #66313.

Note: See TracTickets for help on using tickets.