emil-e / rapidcheck

QuickCheck clone for C++ with the goal of being simple to use with as little boilerplate as possible.
BSD 2-Clause "Simplified" License
1.01k stars 172 forks source link

Broken pkgconf files in Arch Linux #324

Open p01arst0rm opened 8 months ago

p01arst0rm commented 8 months ago

The pkgconf files for rapidcheck under arch are currently broken, linking to a non existent /build directory instead of a valid path.

SHELL >> sudo find / 2>/dev/null | grep -e "rapidcheck"  
/usr/include/rapidcheck
/usr/include/rapidcheck/Assertions.h
/usr/include/rapidcheck/Assertions.hpp
/usr/include/rapidcheck/BeforeMinimalTestCase.h
/usr/include/rapidcheck/Check.h
/usr/include/rapidcheck/Check.hpp
/usr/include/rapidcheck/Classify.h
/usr/include/rapidcheck/Classify.hpp
/usr/include/rapidcheck/Compat.h
/usr/include/rapidcheck/Compat.hpp
/usr/include/rapidcheck/Gen.h
/usr/include/rapidcheck/Gen.hpp
/usr/include/rapidcheck/GenerationFailure.h
/usr/include/rapidcheck/Log.h
/usr/include/rapidcheck/Log.hpp
/usr/include/rapidcheck/Maybe.h
/usr/include/rapidcheck/Maybe.hpp
/usr/include/rapidcheck/Nothing.h
/usr/include/rapidcheck/Random.h
/usr/include/rapidcheck/Random.hpp
/usr/include/rapidcheck/Seq.h
/usr/include/rapidcheck/Seq.hpp
/usr/include/rapidcheck/Show.h
/usr/include/rapidcheck/Show.hpp
/usr/include/rapidcheck/Shrinkable.h
/usr/include/rapidcheck/Shrinkable.hpp
/usr/include/rapidcheck/Traits.h
/usr/include/rapidcheck/boost.h
/usr/include/rapidcheck/boost_test.h
/usr/include/rapidcheck/catch.h
/usr/include/rapidcheck/detail
/usr/include/rapidcheck/detail/AlignedUnion.h
/usr/include/rapidcheck/detail/Any.h
/usr/include/rapidcheck/detail/Any.hpp
/usr/include/rapidcheck/detail/ApplyTuple.h
/usr/include/rapidcheck/detail/BitStream.h
/usr/include/rapidcheck/detail/BitStream.hpp
/usr/include/rapidcheck/detail/Capture.h
/usr/include/rapidcheck/detail/Configuration.h
/usr/include/rapidcheck/detail/ExecFixture.h
/usr/include/rapidcheck/detail/FrequencyMap.h
/usr/include/rapidcheck/detail/FunctionTraits.h
/usr/include/rapidcheck/detail/ImplicitParam.h
/usr/include/rapidcheck/detail/ImplicitParam.hpp
/usr/include/rapidcheck/detail/IntSequence.h
/usr/include/rapidcheck/detail/Platform.h
/usr/include/rapidcheck/detail/Property.h
/usr/include/rapidcheck/detail/Property.hpp
/usr/include/rapidcheck/detail/PropertyContext.h
/usr/include/rapidcheck/detail/Results.h
/usr/include/rapidcheck/detail/Results.hpp
/usr/include/rapidcheck/detail/Serialization.h
/usr/include/rapidcheck/detail/Serialization.hpp
/usr/include/rapidcheck/detail/ShowType.h
/usr/include/rapidcheck/detail/ShowType.hpp
/usr/include/rapidcheck/detail/TestListener.h
/usr/include/rapidcheck/detail/TestListenerAdapter.h
/usr/include/rapidcheck/detail/TestMetadata.h
/usr/include/rapidcheck/detail/TestParams.h
/usr/include/rapidcheck/detail/Traits.h
/usr/include/rapidcheck/detail/TypeList.h
/usr/include/rapidcheck/detail/Utility.h
/usr/include/rapidcheck/detail/Variant.h
/usr/include/rapidcheck/detail/Variant.hpp
/usr/include/rapidcheck/doctest.h
/usr/include/rapidcheck/fn
/usr/include/rapidcheck/fn/Common.h
/usr/include/rapidcheck/fn/Common.hpp
/usr/include/rapidcheck/gen
/usr/include/rapidcheck/gen/Arbitrary.h
/usr/include/rapidcheck/gen/Arbitrary.hpp
/usr/include/rapidcheck/gen/Build.h
/usr/include/rapidcheck/gen/Build.hpp
/usr/include/rapidcheck/gen/Chrono.h
/usr/include/rapidcheck/gen/Chrono.hpp
/usr/include/rapidcheck/gen/Container.h
/usr/include/rapidcheck/gen/Container.hpp
/usr/include/rapidcheck/gen/Create.h
/usr/include/rapidcheck/gen/Create.hpp
/usr/include/rapidcheck/gen/Exec.h
/usr/include/rapidcheck/gen/Exec.hpp
/usr/include/rapidcheck/gen/Maybe.h
/usr/include/rapidcheck/gen/Maybe.hpp
/usr/include/rapidcheck/gen/Numeric.h
/usr/include/rapidcheck/gen/Numeric.hpp
/usr/include/rapidcheck/gen/Predicate.h
/usr/include/rapidcheck/gen/Predicate.hpp
/usr/include/rapidcheck/gen/Select.h
/usr/include/rapidcheck/gen/Select.hpp
/usr/include/rapidcheck/gen/Text.h
/usr/include/rapidcheck/gen/Text.hpp
/usr/include/rapidcheck/gen/Transform.h
/usr/include/rapidcheck/gen/Transform.hpp
/usr/include/rapidcheck/gen/Tuple.h
/usr/include/rapidcheck/gen/Tuple.hpp
/usr/include/rapidcheck/gen/boost
/usr/include/rapidcheck/gen/boost/Optional.h
/usr/include/rapidcheck/gen/boost/Optional.hpp
/usr/include/rapidcheck/gen/detail
/usr/include/rapidcheck/gen/detail/ExecHandler.h
/usr/include/rapidcheck/gen/detail/ExecRaw.h
/usr/include/rapidcheck/gen/detail/ExecRaw.hpp
/usr/include/rapidcheck/gen/detail/GenerationHandler.h
/usr/include/rapidcheck/gen/detail/Recipe.h
/usr/include/rapidcheck/gen/detail/ScaleInteger.h
/usr/include/rapidcheck/gen/detail/ShrinkValueIterator.h
/usr/include/rapidcheck/gen/detail/ShrinkValueIterator.hpp
/usr/include/rapidcheck/gmock.h
/usr/include/rapidcheck/gtest.h
/usr/include/rapidcheck/seq
/usr/include/rapidcheck/seq/Create.h
/usr/include/rapidcheck/seq/Create.hpp
/usr/include/rapidcheck/seq/Operations.h
/usr/include/rapidcheck/seq/Operations.hpp
/usr/include/rapidcheck/seq/SeqIterator.h
/usr/include/rapidcheck/seq/SeqIterator.hpp
/usr/include/rapidcheck/seq/Transform.h
/usr/include/rapidcheck/seq/Transform.hpp
/usr/include/rapidcheck/shrink
/usr/include/rapidcheck/shrink/Shrink.h
/usr/include/rapidcheck/shrink/Shrink.hpp
/usr/include/rapidcheck/shrinkable
/usr/include/rapidcheck/shrinkable/Create.h
/usr/include/rapidcheck/shrinkable/Create.hpp
/usr/include/rapidcheck/shrinkable/Operations.h
/usr/include/rapidcheck/shrinkable/Operations.hpp
/usr/include/rapidcheck/shrinkable/Transform.h
/usr/include/rapidcheck/shrinkable/Transform.hpp
/usr/include/rapidcheck/state
/usr/include/rapidcheck/state/Command.h
/usr/include/rapidcheck/state/Command.hpp
/usr/include/rapidcheck/state/Commands.h
/usr/include/rapidcheck/state/Commands.hpp
/usr/include/rapidcheck/state/State.h
/usr/include/rapidcheck/state/State.hpp
/usr/include/rapidcheck/state/gen
/usr/include/rapidcheck/state/gen/Commands.h
/usr/include/rapidcheck/state/gen/Commands.hpp
/usr/include/rapidcheck/state/gen/ExecCommands.h
/usr/include/rapidcheck/state/gen/ExecCommands.hpp
/usr/include/rapidcheck/state.h
/usr/include/rapidcheck.h
/usr/lib/pkgconfig/rapidcheck.pc
/usr/lib/pkgconfig/rapidcheck_boost.pc
/usr/lib/pkgconfig/rapidcheck_boost_test.pc
/usr/lib/pkgconfig/rapidcheck_catch.pc
/usr/lib/pkgconfig/rapidcheck_doctest.pc
/usr/lib/pkgconfig/rapidcheck_gtest.pc
/usr/lib/librapidcheck.so
/usr/share/licenses/rapidcheck
/usr/share/licenses/rapidcheck/LICENSE.md
/usr/share/rapidcheck
/usr/share/rapidcheck/cmake
/usr/share/rapidcheck/cmake/rapidcheckConfig-release.cmake
/usr/share/rapidcheck/cmake/rapidcheckConfig.cmake

SHELL >>  cat /usr/lib/pkgconfig/rapidcheck_gtest.pc   
Name: rapidcheck_gtest
Description: gmock headers for rapidcheck
Version: 
Requires: rapidcheck
prefix=/build/rapidcheck/pkg/rapidcheck/usr
includedir=${prefix}/include
libdir=${prefix}/lib
Libs: 
Cflags: -I${includedir}

SHELL >>  gcc -lrapidcheck 
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/Scrt1.o: in function `_start':
(.text+0x1b): undefined reference to `main'
collect2: error: ld returned 1 exit status

SHELL >>  gcc -lrapidcheck_gtest   
/usr/bin/ld: cannot find -lrapidcheck_gtest: No such file or directory
collect2: error: ld returned 1 exit status

SHELL >>  cat /usr/lib/pkgconfig/rapidcheck.pc     
Name: rapidcheck
Description: C++ framework for property based testing inspired by QuickCheck and other similar frameworks
Version: 
Requires: 
prefix=/build/rapidcheck/pkg/rapidcheck/usr
includedir=${prefix}/include
libdir=${prefix}/lib
Libs: 
Cflags: -I${includedir}
stephan-cr commented 1 month ago

This seems to be an ArchLinux specific packaging problem. The PKGBUILD script sets CMAKE_INSTALL_PREFIX to $pkgdir/usr/. According to the ArchLinux CMake package guidelines, I would guess it should be -D CMAKE_INSTALL_PREFIX=/usr, though I'm not an experienced ArchLinux packager.

stephan-cr commented 1 month ago

Created a bug report for ArchLinux.

stephan-cr commented 18 hours ago

The bug in ArchLinux is fixed here: https://gitlab.archlinux.org/archlinux/packaging/packages/rapidcheck/-/commit/963550513ea489a7ffffdd2af11d82e5c7705e42

I think the issue could be closed.