Skip to content

sqlitecpp: Add has_codec option #22795

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Apr 16, 2025

Conversation

Alex-PLACET
Copy link
Contributor

@Alex-PLACET Alex-PLACET commented Feb 16, 2024

This enable the database encryption support

Specify library name and version: sqlitecpp/X


@conan-center-bot

This comment has been minimized.

Copy link
Contributor

Hooks produced the following warnings for commit f4e1ab6
sqlitecpp/2.4.0@#2be6b31a3d5a21dbf5d19e5ebed2a040
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib
sqlitecpp/2.5.0@#35083e3da81df24fd116b89a1df56aa4
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib, libSQLiteCpp.0.dylib

@AbrilRBS AbrilRBS self-assigned this Feb 17, 2024
@RazielXYZ
Copy link
Contributor

@Alex-PLACET the has_codec option doesn't actually work. I believe CMakeLists of SQLiteCpp needs to be patched to use find_package for sqlcipher. As it stands it's trying to use pkgconfig and failing.

@conan-center-bot

This comment has been minimized.

Copy link
Contributor

Hooks produced the following warnings for commit ee03adc
sqlitecpp/2.5.0@#85d07950cfca14785aa195b0129b27d8
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib, libSQLiteCpp.0.dylib
sqlitecpp/2.4.0@#e14439bbecdd6c6c88489544974214d5
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib

@Alex-PLACET
Copy link
Contributor Author

@RubenRBS When you have time, this PR requires a second approval.

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to remove the option, because does not make sense affecting the package ID in case it can not be used. Please, update the config_options:

def config_options(self):
    if Version(self.version) < "3.3.1":
        del self.options.has_codec

Still, users can override the sqlcipher options, so you should validate its option:

def validate(self):
    if self.options.get_safe("has_codec") and not self.dependencies["sqlcipher"].options.enable_column_metadata:
    raise ConanInvalidConfiguration(f"{self.ref} option has_codec=True requires 'sqlcipher/*:enable_column_metadata=True'")

Copy link
Member

@AbrilRBS AbrilRBS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! Thanks a lot, I have a few final requests, but otherwise looks great :)

@conan-center-bot

This comment has been minimized.

Copy link
Contributor

Hooks produced the following warnings for commit b926f33
sqlitecpp/2.5.0@#a2abbfe264e0df781cb507d68e89c904
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib, libSQLiteCpp.0.dylib
sqlitecpp/2.4.0@#b5c738dcb349dd4b012a00e0acbc13b3
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib

@conan-center-bot

This comment has been minimized.

Copy link
Contributor

Hooks produced the following warnings for commit 604980a
sqlitecpp/2.4.0@#39f934546b4f7520de8b01efda7e1b0f
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib
sqlitecpp/2.5.0@#c9096c03739740a9581fedac30b5ac48
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib, libSQLiteCpp.0.dylib

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ✔️

All green in build 9 (9c7739fcb215337120706d670627fd87e283dda9):

  • sqlitecpp/3.3.1:
    All packages built successfully! (All logs)

  • sqlitecpp/3.3.0:
    All packages built successfully! (All logs)

  • sqlitecpp/3.2.1:
    All packages built successfully! (All logs)

  • sqlitecpp/3.2.0:
    All packages built successfully! (All logs)

  • sqlitecpp/2.4.0:
    All packages built successfully! (All logs)

  • sqlitecpp/2.5.0:
    All packages built successfully! (All logs)

  • sqlitecpp/3.1.1:
    All packages built successfully! (All logs)


Conan v2 pipeline ✔️

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

All green in build 9 (9c7739fcb215337120706d670627fd87e283dda9):

  • sqlitecpp/3.3.0:
    All packages built successfully! (All logs)

  • sqlitecpp/3.3.1:
    All packages built successfully! (All logs)

  • sqlitecpp/3.1.1:
    All packages built successfully! (All logs)

  • sqlitecpp/3.2.1:
    All packages built successfully! (All logs)

  • sqlitecpp/3.2.0:
    All packages built successfully! (All logs)

  • sqlitecpp/2.5.0:
    All packages built successfully! (All logs)

  • sqlitecpp/2.4.0:
    All packages built successfully! (All logs)

Copy link
Contributor

Hooks produced the following warnings for commit 9c7739f
sqlitecpp/2.4.0@#e893f3ee7261c47f30879ec371dc289a
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib
sqlitecpp/2.5.0@#871b640da9b7b4a3520858437c6c6da5
post_package(): WARN: [APPLE RELOCATABLE SHARED LIBS (KB-H077)] install_name dir of these shared libs is not @rpath: libSQLiteCpp.dylib, libSQLiteCpp.0.dylib

@Alex-PLACET Alex-PLACET requested a review from AbrilRBS June 6, 2024 14:18
@Alex-PLACET
Copy link
Contributor Author

Alex-PLACET commented Jun 18, 2024

@RubenRBS I addressed your point. I let you review and approve it if it's ok

@Alex-PLACET
Copy link
Contributor Author

@valgur @uilianries I need an approval to be able to merge.

@uilianries
Copy link
Member

@Alex-PLACET I tried to build with this new option, and sqlitecpp is failing. Do you have a build log with sqlitecpp working?

conan create all --version=3.3.1 -o "&:with_sqlcipher=True" -o "*/*:shared=True"                                                                                                                                    16:27:11

======== Exporting recipe to the cache ========
sqlitecpp/3.3.1: Exporting package recipe: /Users/uilian/Development/conan/conan-center-index/recipes/sqlitecpp/all/conanfile.py
sqlitecpp/3.3.1: exports: File 'conandata.yml' found. Exporting it...
sqlitecpp/3.3.1: Calling export_sources()
sqlitecpp/3.3.1: Copied 1 '.py' file: conanfile.py
sqlitecpp/3.3.1: Copied 1 '.yml' file: conandata.yml
sqlitecpp/3.3.1: Exported to cache folder: /Users/uilian/.conan2/p/sqlit86c349b9fd71e/e
sqlitecpp/3.3.1: Exported: sqlitecpp/3.3.1#8e23c967c2ee0ed025fe7a3678f2c0ea (2024-07-15 14:27:18 UTC)

======== Input profiles ========
Profile host:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=17
compiler.libcxx=libc++
compiler.version=15
os=Macos
[options]
&:with_sqlcipher=True
*/*:shared=True
[conf]
tools.build:verbosity=verbose
tools.cmake.cmaketoolchain:generator=Ninja
tools.compilation:verbosity=verbose

Profile build:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=17
compiler.libcxx=libc++
compiler.version=15
os=Macos
[conf]
tools.build:verbosity=verbose
tools.cmake.cmaketoolchain:generator=Ninja
tools.compilation:verbosity=verbose


======== Computing dependency graph ========
Graph root
    cli
Requirements
    openssl/3.2.2#899583c694f9deccec74dbe0bbc65a15 - Cache
    sqlcipher/4.5.6#707702de4e7eaf004bbd84ae6b4fd957 - Cache
    sqlitecpp/3.3.1#8e23c967c2ee0ed025fe7a3678f2c0ea - Cache
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
Build requirements
    gnu-config/cci.20210814#dc430d754f465e8c74463019672fb97b - Cache
    tcl/8.6.13#e8d27c01ee0eeca5c261b6cb36e6fdf0 - Cache
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
Resolved version ranges
    openssl/[>=1.1 <4]: openssl/3.2.2
    zlib/[>=1.2.11 <2]: zlib/1.3.1

======== Computing necessary packages ========
sqlitecpp/3.3.1: Forced build from source
Requirements
    openssl/3.2.2#899583c694f9deccec74dbe0bbc65a15:fc405786bf2da876909187bd641ccd0cf8fdbf04#eab45906edd9e3987b2fac1eaf9e9044 - Cache
    sqlcipher/4.5.6#707702de4e7eaf004bbd84ae6b4fd957:60f16192557dbcdd1eb3f5f5a7bbfad01cb184d4#1c1eeddceafc60c76f80cb06b9343aec - Cache
    sqlitecpp/3.3.1#8e23c967c2ee0ed025fe7a3678f2c0ea:58eeed26857a7e492ac04a90e0c383ff25c9b4b7 - Build
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2:78a12b7eac927f6ca195df48d2dacb88e09c966c#a2575de2bfd234775b0fec6c63fa0c14 - Cache
Build requirements
Skipped binaries
    gnu-config/cci.20210814, tcl/8.6.13, zlib/1.3.1

======== Installing packages ========
zlib/1.3.1: Already installed! (1 of 4)
openssl/3.2.2: Already installed! (2 of 4)
sqlcipher/4.5.6: Already installed! (3 of 4)

-------- Installing package sqlitecpp/3.3.1 (4 of 4) --------
sqlitecpp/3.3.1: Building from source
sqlitecpp/3.3.1: Package sqlitecpp/3.3.1:58eeed26857a7e492ac04a90e0c383ff25c9b4b7
sqlitecpp/3.3.1: Copying sources to build folder
sqlitecpp/3.3.1: Building your package in /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b
sqlitecpp/3.3.1: Calling generate()
sqlitecpp/3.3.1: Generators folder: /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release/generators
sqlitecpp/3.3.1: CMakeToolchain generated: conan_toolchain.cmake
sqlitecpp/3.3.1: CMakeToolchain generated: /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release/generators/CMakePresets.json
sqlitecpp/3.3.1: CMakeToolchain generated: /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/CMakeUserPresets.json
sqlitecpp/3.3.1: CMakeDeps necessary find_package() and targets for your CMakeLists.txt
    find_package(sqlcipher)
    target_link_libraries(... sqlcipher::sqlcipher)
sqlitecpp/3.3.1: Generating aggregated env files
sqlitecpp/3.3.1: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
sqlitecpp/3.3.1: Calling build()
sqlitecpp/3.3.1: Running CMake.configure()
sqlitecpp/3.3.1: RUN: cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/p" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src" --loglevel=VERBOSE
-- Using Conan toolchain: /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release/generators/conan_toolchain.cmake
-- Conan toolchain: Defining libcxx as C++ flags: -stdlib=libc++
-- Conan toolchain: C++ Standard 17 with extensions OFF
-- Conan toolchain: Setting BUILD_SHARED_LIBS = ON
-- The C compiler identification is AppleClang 15.0.0.15000309
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using c++ standard c++17
-- CMake version: 3.29.3
-- Project version: 3.3.1
-- Using Stack Protection hardening
-- CMAKE_CXX_COMPILER '/Library/Developer/CommandLineTools/usr/bin/c++' 'AppleClang' '15.0.0.15000309'
-- CMAKE_CXX_FLAGS                '-stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long'
-- CMAKE_CXX_FLAGS_RELEASE        '-O3 -DNDEBUG'
-- Checking for module 'sqlcipher'
--   Found sqlcipher, version 4.5.6
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- SQLITECPP_RUN_CPPLINT OFF
-- SQLITECPP_RUN_CPPCHECK OFF
-- SQLITECPP_RUN_DOXYGEN OFF
-- SQLITECPP_BUILD_EXAMPLES OFF
-- SQLITECPP_BUILD_TESTS OFF
-- Configuring done (0.8s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release

sqlitecpp/3.3.1: Running CMake.build()
sqlitecpp/3.3.1: RUN: cmake --build "/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release" --verbose -- -j10
Change Dir: '/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release'

Run Build Command(s): /opt/homebrew/bin/ninja -v -j10
[1/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Exception.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Exception.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Exception.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Exception.cpp
[2/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Column.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Column.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Column.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Column.cpp
[3/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Backup.cpp
[4/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Transaction.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Transaction.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Transaction.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Transaction.cpp
[5/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Savepoint.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Savepoint.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Savepoint.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Savepoint.cpp
[6/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Database.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Database.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Database.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Database.cpp
[7/9] /Library/Developer/CommandLineTools/usr/bin/c++ -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLiteCpp_EXPORTS -I/Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include -isystem /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/include/sqlcipher -isystem /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/include -isystem /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/include -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -std=c++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -fstack-protector -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLCIPHER_CRYPTO_OPENSSL -MD -MT CMakeFiles/SQLiteCpp.dir/src/Statement.cpp.o -MF CMakeFiles/SQLiteCpp.dir/src/Statement.cpp.o.d -o CMakeFiles/SQLiteCpp.dir/src/Statement.cpp.o -c /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/src/src/Statement.cpp
[8/9] : && /Library/Developer/CommandLineTools/usr/bin/c++ -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -dynamiclib -Wl,-headerpad_max_install_names  -o libSQLiteCpp.0.dylib -install_name @rpath/libSQLiteCpp.0.dylib CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o CMakeFiles/SQLiteCpp.dir/src/Column.cpp.o CMakeFiles/SQLiteCpp.dir/src/Database.cpp.o CMakeFiles/SQLiteCpp.dir/src/Exception.cpp.o CMakeFiles/SQLiteCpp.dir/src/Savepoint.cpp.o CMakeFiles/SQLiteCpp.dir/src/Statement.cpp.o CMakeFiles/SQLiteCpp.dir/src/Transaction.cpp.o  -Wl,-rpath,/Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/lib -Wl,-rpath,/Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib -Wl,-rpath,/Users/uilian/.conan2/p/b/zliba52176a4f672a/p/lib  /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/lib/libsqlcipher.dylib  /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib/libssl.dylib  /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib/libcrypto.dylib  /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/lib/libz.dylib && :
FAILED: libSQLiteCpp.0.dylib 
: && /Library/Developer/CommandLineTools/usr/bin/c++ -stdlib=libc++ -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -dynamiclib -Wl,-headerpad_max_install_names  -o libSQLiteCpp.0.dylib -install_name @rpath/libSQLiteCpp.0.dylib CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o CMakeFiles/SQLiteCpp.dir/src/Column.cpp.o CMakeFiles/SQLiteCpp.dir/src/Database.cpp.o CMakeFiles/SQLiteCpp.dir/src/Exception.cpp.o CMakeFiles/SQLiteCpp.dir/src/Savepoint.cpp.o CMakeFiles/SQLiteCpp.dir/src/Statement.cpp.o CMakeFiles/SQLiteCpp.dir/src/Transaction.cpp.o  -Wl,-rpath,/Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/lib -Wl,-rpath,/Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib -Wl,-rpath,/Users/uilian/.conan2/p/b/zliba52176a4f672a/p/lib  /Users/uilian/.conan2/p/b/sqlci46aadfbd1fb1b/p/lib/libsqlcipher.dylib  /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib/libssl.dylib  /Users/uilian/.conan2/p/b/opens2bf34bb529ffa/p/lib/libcrypto.dylib  /Users/uilian/.conan2/p/b/zliba52176a4f672a/p/lib/libz.dylib && :
Undefined symbols for architecture arm64:
  "_sqlite3_column_origin_name", referenced from:
      SQLite::Column::getOriginName() const in Column.cpp.o
      SQLite::Statement::getColumnOriginName(int) const in Statement.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.


sqlitecpp/3.3.1: ERROR: 
Package '58eeed26857a7e492ac04a90e0c383ff25c9b4b7' build failed
sqlitecpp/3.3.1: WARN: Build folder /Users/uilian/.conan2/p/b/sqlit45161bc91d13e/b/build/Release
ERROR: sqlitecpp/3.3.1: Error in build() method, line 109
	cmake.build()
	ConanException: Error 1 while executing

Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Mar 19, 2025
@jcar87
Copy link
Contributor

jcar87 commented Mar 19, 2025

not stale

@github-actions github-actions bot removed the stale label Mar 20, 2025
if self.options.get_safe("with_sqlcipher"):
self.requires("sqlcipher/4.5.6")
else:
self.requires("sqlite3/3.45.0")
Copy link
Contributor

@steinerthomas steinerthomas Apr 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uilianries is it allowed to put a version range here? poco already uses this range and sqlite3 3.45.0 is not even in the conandata.yml anymore.

Suggested change
self.requires("sqlite3/3.45.0")
self.requires("sqlite3/[>=3.45.0 <4]")

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ask because I planned to create a PR and didn't want to conflict with this commit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sqlite3 can have a version range like that, yes :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we do it here or in a own pr?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I don't have time to fix this PR, I let you copy/cherry pick my commits.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the conan team can decide: #27088

@jcar87 jcar87 force-pushed the sqlitecpp-add-has-codec branch from 9c7739f to c06c07c Compare April 15, 2025 10:14
@jcar87
Copy link
Contributor

jcar87 commented Apr 15, 2025

Apologies for the delay.
I've aded the following changes:

  • sqlcipher: ensure the enable_column_metadata option actually works on Linux/macOS - this fixes the issues that @uilianries reported
  • sqlitecpp: define SQLITE_HAS_CODEC publicly to consumers, to mirror what upstream does (https://github.com/SRombauts/SQLiteCpp/blob/211e642a30459b4a4ff091a47191c9bf287aca4c/CMakeLists.txt#L232-L237, see use of PUBLIC keyword)
  • sqlitecpp: use the most recent version of sqlcipher when the option is enabled, and use version range for sqlite3
  • remove legacy test_v1_package
  • both sqlcipher and sqlitecpp: lighten up the version load and keep the most recent patch for the most recent minors

@jcar87 jcar87 merged commit 4dc5a05 into conan-io:master Apr 16, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants