Package Details: fulcrum 2.1.1-1

Git Clone URL: https://aur.archlinux.org/fulcrum.git (read-only, click to copy)
Package Base: fulcrum
Description: A fast & nimble SPV server for BCH, BTC, and LTC
Upstream URL: https://fulcrumserver.org
Licenses: GPL3
Provides: fulcrum
Submitter: TomZander
Maintainer: TomZander (quest)
Last Packager: quest
Votes: 11
Popularity: 0.87
First Submitted: 2020-01-12 23:18 (UTC)
Last Updated: 2026-05-08 20:10 (UTC)

Latest Comments

1 2 3 Next › Last »

<deleted-account> commented on 2026-05-06 20:03 (UTC)

-

cculianu commented on 2026-04-25 00:18 (UTC) (edited on 2026-04-25 00:18 (UTC) by cculianu)

Hi -- Fulcrum dev here. I fixed the API change incompatibility introduced in the rocksDB 11.x series with this commit in Fulcrum : https://github.com/cculianu/Fulcrum/commit/183076ea4f1d3e29263e1a7749d1086fc9b3b6f0

Can the package maintainer add a patch to the Fulcrum package in arch (using the above commit's diff)? It will at least compile now with that diff applied.

Indeed the librocksdb.so.10 thing is an issue and does mean Fulcrum needs to be recompiled when going from rocksDB 10 -> 11.

Papapounet commented on 2026-04-24 18:26 (UTC) (edited on 2026-04-24 18:28 (UTC) by Papapounet)

I can confirm there are currently two distinct issues around this package on updated Arch:

  1. build failures against current RocksDB API (as reported above),
  2. runtime breakage for previously built installations due to missing librocksdb.so.10 after rocksdb upgrade.

In my case, an existing fulcrum installation stopped working because: librocksdb.so.10 => not found

So this seems to be more than a simple rebuild lag: current RocksDB may also require code changes / patching for Fulcrum 2.1.0.

cotsuka commented on 2026-04-22 23:15 (UTC)

Running into build issues, seems related to rocksdb:

src/Storage.cpp: In member function ‘void Storage::openOrCreateDB(bool)’:
src/Storage.cpp:1665:30: error: no matching function for call to ‘rocksdb::DB::Open(rocksdb::Options&, std::string, std::vector<rocksdb::ColumnFamilyDescriptor>&, std::vector<rocksdb::ColumnFamilyHandle*>*, rocksdb::DB**)’
 1665 |         s = rocksdb::DB::Open(opts, path.toStdString(), colFamDescs, &p->db.columnFamilies, &db);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/Storage.cpp:1665:30: note: there are 2 candidates
In file included from src/Storage/DBRecordArray.h:25,
                 from src/Storage.cpp:30:
/usr/include/rocksdb/db.h:139:17: note: candidate 1: ‘static rocksdb::Status rocksdb::DB::Open(const rocksdb::Options&, const std::string&, std::unique_ptr<rocksdb::DB>*)’
  139 |   static Status Open(const Options& options, const std::string& name,
      |                 ^~~~
/usr/include/rocksdb/db.h:139:17: note: candidate expects 3 arguments, 5 provided
/usr/include/rocksdb/db.h:156:17: note: candidate 2: ‘static rocksdb::Status rocksdb::DB::Open(const rocksdb::DBOptions&, const std::string&, const std::vector<rocksdb::ColumnFamilyDescriptor>&, std::vector<rocksdb::ColumnFamilyHandle*>*, std::unique_ptr<rocksdb::DB>*)’
  156 |   static Status Open(const DBOptions& db_options, const std::string& name,
      |                 ^~~~
/usr/include/rocksdb/db.h:159:43: note: no known conversion for argument 5 from ‘rocksdb::DB**’ to ‘std::unique_ptr<rocksdb::DB>*’
  159 |                      std::unique_ptr<DB>* dbptr);
      |                      ~~~~~~~~~~~~~~~~~~~~~^~~~~
src/Storage.cpp: In member function ‘bool Storage::checkFulc1xUpgradeDB()’:
src/Storage.cpp:1917:44: error: no matching function for call to ‘rocksdb::DB::Open(rocksdb::Options&, std::string, rocksdb::DB**)’
 1917 |             if (auto st = rocksdb::DB::Open(dbopts, fname.toStdString(), &dbin_raw); !st.ok()) {
      |                           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/Storage.cpp:1917:44: note: there are 2 candidates
/usr/include/rocksdb/db.h:139:17: note: candidate 1: ‘static rocksdb::Status rocksdb::DB::Open(const rocksdb::Options&, const std::string&, std::unique_ptr<rocksdb::DB>*)’
  139 |   static Status Open(const Options& options, const std::string& name,
      |                 ^~~~
/usr/include/rocksdb/db.h:140:43: note: no known conversion for argument 3 from ‘rocksdb::DB**’ to ‘std::unique_ptr<rocksdb::DB>*’
  140 |                      std::unique_ptr<DB>* dbptr);
      |                      ~~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/rocksdb/db.h:156:17: note: candidate 2: ‘static rocksdb::Status rocksdb::DB::Open(const rocksdb::DBOptions&, const std::string&, const std::vector<rocksdb::ColumnFamilyDescriptor>&, std::vector<rocksdb::ColumnFamilyHandle*>*, std::unique_ptr<rocksdb::DB>*)’
  156 |   static Status Open(const DBOptions& db_options, const std::string& name,
      |                 ^~~~
/usr/include/rocksdb/db.h:156:17: note: candidate expects 5 arguments, 3 provided

WwPvWLcBrUubxgJQ commented on 2026-02-22 20:08 (UTC)

yay -S --rebuild fulcrum was successful.

<deleted-account> commented on 2026-02-09 01:55 (UTC)

@WwPvWLcBrUubxgJQ: Every time rocksdb is updated on the system you have to rebuild fulcrum against it.

WwPvWLcBrUubxgJQ commented on 2026-01-24 22:53 (UTC)

$ fulcrum
fulcrum: error while loading shared libraries: librocksdb.so.9.10: cannot open shared object file: No such file or directory

$ fd librocksdb /
/usr/lib/librocksdb.so.10.9.1
/usr/lib/librocksdb.so.10
/usr/lib/librocksdb.so

I tried uninstalling and reinstalling.

<deleted-account> commented on 2025-12-01 16:56 (UTC)

The package fails to build citing missing qmake which is part of qt5-base not qt6-base.

cotsuka commented on 2025-09-25 23:27 (UTC)

@TomZander might want to either update the included config file or pull the one from the source archive. Current one has some outdated options (e.g., fast-sync).

plp commented on 2025-04-26 11:54 (UTC) (edited on 2025-04-26 11:57 (UTC) by plp)

The package fails to compile if miniupnpc isn't installed, with the following error:

src/UPnP.cpp: In member function ‘bool UPnP::startSync(MapSpecSet, int)’:
src/UPnP.cpp:315:89: error: unable to find numeric literal operator ‘operator""ms’
  315 |     const std::future_status res = f.wait_for(std::chrono::milliseconds(timeoutMsec) + (200ms * (expectedResults + 1)));
      |                                                                                         ^~~~~
make: *** [Makefile:2250: UPnP.o] Error 1
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: fulcrum-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
fulcrum - exit status 4

This may be related to issue #285 and might be fixed by the next release. However, perhaps miniupnpc should be added to depends for now.

UPDATE: The main branch builds fine without miniupnpc. So, yes, it's just a matter of waiting for 1.12.1