erthink / libmdbx

One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
https://erthink.github.io/libmdbx/
Other
1.16k stars 111 forks source link

Packaging errors #197

Closed tieugene closed 3 years ago

tieugene commented 3 years ago

Trying to package subj into RH rpm (Fedora 34).

  1. Main source (libmdbx-0.10.0.tar.gz) + make [all]:
    /usr/bin/which: no ioarena in (/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
    MDBX_BUILD_OPTIONS =-DNDEBUG=1
    ## TIP: Use `make options` to listing available build options.
    CFLAGS   =-std=gnu11 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes 
    CXXFLAGS =-std=gnu++20 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes
    LDFLAGS  =-Wl,--gc-sections,-z,relro,-O1  -lrt  -pthread
    ## TIP: Use `make help` to listing available targets.
    make: *** No rule to make target 'git_directory/HEAD', needed by 'src/version.c'.  Stop.
    error: Bad exit status from /var/tmp/rpm-tmp.VTDar7 (%build)
  2. Main source + cmake:
    
    CMake Error at CMakeLists.txt:82 (message):
    Please use libmdbx as a git-submodule or the amalgamated source code

-- Configuring incomplete, errors occurred! error: Bad exit status from /var/tmp/rpm-tmp.Hc0JJK (%build)

3. Amalgamated source + make/cmake:

make: *** No rule to make target 'check'. Stop. error: Bad exit status from /var/tmp/rpm-tmp.k1paID (%check)

and:

File not found: .../BUILDROOT/libmdbx-0.10.0-1.fc34.x86_64/usr/lib64/libmdbx.so


4…∞. Library no versioned, wrong build instruction, no documentation in sources and instruction how to build it, etc.

PS. not good idea to name pre-alpha-release-candidate as "release".
erthink commented 3 years ago

Oh, indeed, it is not explicitly stated anywhere that the tarballs/zips automatically generated by github should not be used. This is my mistake, sorry. So I just added a corresponding note to the end of the latest release description.


Briefly, you should use (i.e. clone) the git repository or the tarballs of amalgamated source code. https://github.com/erthink/libmdbx#source-code-embedding

The amalgamated sources includes only the library code with built-in version information, but not any tests nor corresponding make's targets. Thus, the amalgamated sources are "frozen" and ready for use, but ones are not intended for debugging or developing the library itself.

On the other hand, the git repository provides version information for a build and contains the full source code, including tests. Contrary, the tarballs/zips automatically generated by github don't contain version information and (thus) shouldn't be used. Unfortunately, there is no way to disable ones in any way yet.

erthink commented 3 years ago

Library no versioned

libtool-style versioning will be provided from the 1.0 release, but for now it's overkill.

erthink commented 3 years ago

Wait for https://github.community/t/disable-tarball/139966