Opened 5 weeks ago

Last modified 11 days ago

#70597 assigned defect

lmdbxx @0.9.14.0.1: checksum mismatch

Reported by: barracuda156 Owned by: bendiken
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: Cc: neverpanic (Clemens Lang)
Port: lmdbxx

Description

--->  Fetching distfiles for lmdbxx
--->  lmdbxx-0b43ca87.tar.gz does not exist in /opt/local/var/macports/distfiles/lmdbxx
--->  Attempting to fetch lmdbxx-0b43ca87.tar.gz from https://codeload.github.com/bendiken/lmdbxx/legacy.tar.gz/0b43ca87?dummy=
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47517    0 47517    0     0  28191      0 --:--:--  0:00:01 --:--:-- 28183
--->  Verifying checksums for lmdbxx
--->  Checksumming lmdbxx-0b43ca87.tar.gz
Error: Checksum (rmd160) mismatch for lmdbxx-0b43ca87.tar.gz
Portfile checksum: lmdbxx-0b43ca87.tar.gz rmd160 68c36abcb3adb9fa50d0509c8c06e25a81cdb3d9
Distfile checksum: lmdbxx-0b43ca87.tar.gz rmd160 e8fd89b5aa9f4629ce95a02fc40b836f7973503a
Error: Checksum (sha256) mismatch for lmdbxx-0b43ca87.tar.gz
Portfile checksum: lmdbxx-0b43ca87.tar.gz sha256 a7958341d13280ca8400263e8373da50116e806c6ad4e9fa4beca82d9629df8c
Distfile checksum: lmdbxx-0b43ca87.tar.gz sha256 a32053edc869646c8e8fe55a053d84ab96a73c5ce7cfb9636ed82e561e6bbe13
Error: Checksum (size) mismatch for lmdbxx-0b43ca87.tar.gz
Portfile checksum: lmdbxx-0b43ca87.tar.gz size 47503
Distfile checksum: lmdbxx-0b43ca87.tar.gz size 47517
The correct checksum line may be:
checksums           rmd160  e8fd89b5aa9f4629ce95a02fc40b836f7973503a \
                    sha256  a32053edc869646c8e8fe55a053d84ab96a73c5ce7cfb9636ed82e561e6bbe13 \
                    size    47517
Error: Failed to checksum lmdbxx: Unable to verify file checksums

Change History (3)

comment:1 Changed 5 weeks ago by ryandesign (Ryan Carsten Schmidt)

This happened because the port is using the default value of github.tarball_fromtarball—and the GitHub project moved from developer bendiken to developer drycpp. If an automatically-generated distfile must be used, github.tarball_from should be set to archive so that a change in developer does not change the checksums.

This project offers release tarballs. Normally those should be used instead of automatically-generated tarballs by setting github.tarball_from to releases. However this port is at version 0.9.14.0.1 which does not actually exist. I don't know why the port was updated to an unreleased version. If there are important changes past the last release 0.9.14, the developer should produce a new release so that the port can be updated to it. Unfortunately the developer has not responded to the request to do that for years: https://github.com/drycpp/lmdbxx/issues/21

comment:2 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Cc: neverpanic added
Summary: lmdbxx: checksum mismatchlmdbxx @0.9.14.0.1: checksum mismatch

There is a maintained fork at https://github.com/hoytech/lmdbxx. We already offer it in a separate lmdbxx-cxx17 port; not sure why we don't just replace the lmdbxx port with that one. One port depends on lmdbxx-cxx17; no ports depend on lmdbxx.

comment:3 Changed 11 days ago by neverpanic (Clemens Lang)

I initially added lmdbxx-cxx17 as a separate port as a cautionary measure just in case moving to C++17 would cause an API or ABI change for any of the dependents.

Specifically, as far as I understood, the maintained fork removed the lmdb::val class, which is provided by lmdbxx, so the fork is not a drop-in replacement.

Personally, I wouldn't object to replacing lmdbxx's Portfile with the contents of lmdbxx-cxx17 and marking lmdbxx-cxx17 as replaced_by lmdbxx. The maintainer listed for the lmdbxx port seems to be the former upstream developer, so I wouldn't expect an answer from them.

This comes with the risk that some user has actually been using lmdbxx including the lmdb::val class, in which case the update would break their existing software. If we agree this is unlikely, I can make the change and adjust the only dependent nheko.

Note: See TracTickets for help on using tickets.