#62216 closed defect (fixed)
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)
Change History (22)
comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | arm64 bigsur added |
---|---|
Port: | db53 added |
Summary: | isync build fails on db53 dependency on arm64 → db53: error: Support for FCNTL mutexes was removed in BDB 4.8. |
comment:2 Changed 4 years ago by tgyurci (Teubel György)
Cc: | tgyurci added |
---|
Changed 4 years ago by minusf
Attachment: | config.log added |
---|
Changed 4 years ago by minusf
comment:3 follow-up: 9 Changed 4 years ago by ryandesign (Ryan Carsten 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 3 years ago by thynus
Cc: | thynus added |
---|
comment:5 Changed 3 years ago by ctreleaven (Craig Treleaven)
Cc: | ctreleaven added |
---|
comment:6 Changed 3 years 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 3 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy added |
---|
Changed 2 years ago by physicsbeany
Attachment: | gramps_db5_config_failure.log added |
---|
failure log from trying gramps installation
comment:8 Changed 2 years 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 follow-up: 12 Changed 2 years 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 2 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy removed |
---|---|
Owner: | set to mascguy |
Status: | new → assigned |
comment:11 Changed 2 years ago by Christopher Nielsen <mascguy@…>
comment:12 Changed 2 years ago by mascguy (Christopher Nielsen)
Replying to mascguy:
And finally, once that's done, we may have to patch
gramps
to usepy-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
:
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 follow-up: 14 Changed 2 years 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 Changed 2 years ago by exg (Emanuele Giaquinta)
Replying to mascguy:
@exg, can
isync
be updated to usedb62
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 years ago by ryandesign (Ryan Carsten 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.
comment:16 Changed 17 months ago by Christopher Nielsen <mascguy@…>
comment:17 Changed 17 months ago by Christopher Nielsen <mascguy@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:18 Changed 17 months ago by jmroot (Joshua Root)
Doesn't db53 still need to indicate that it can't build for arm64?
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 thensudo 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.