diff --git a/.github/workflows/libcblitedart-release.yaml b/.github/workflows/libcblitedart-release.yaml index 42ab4da1..f9241ce0 100644 --- a/.github/workflows/libcblitedart-release.yaml +++ b/.github/workflows/libcblitedart-release.yaml @@ -40,13 +40,13 @@ jobs: uses: lukka/get-cmake@latest - name: Download Couchbase Lite - run: ./native/tools/download_prebuilt_binaries.sh ubuntu20.04-x86_64 + run: ./native/tools/download_prebuilt_binaries.sh linux-x86_64 - name: Build release run: | ./native/couchbase-lite-dart/tools/build_release.sh \ ${{ needs.create-release.outputs.release }} \ - ubuntu20.04-x86_64 + linux-x86_64 - name: Upload archives uses: alexellis/upload-assets@0.2.2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9f2e41bc..074139e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,7 +62,7 @@ Two native libraries are required to enable Couchbase Lite for Dart. **Dependencies**: -- Android SDK with NDK `21.4.7075529` and CMake `3.18.1` +- Android SDK with NDK `23.1.7779620` and CMake `3.18.1` ### iOS + macOS diff --git a/docs/docs/supported-platforms.mdx b/docs/docs/supported-platforms.mdx index 20f0badc..fc9861d9 100644 --- a/docs/docs/supported-platforms.mdx +++ b/docs/docs/supported-platforms.mdx @@ -12,7 +12,7 @@ description: | iOS | >= 10.0 | | macOS | >= 10.14 | | Android | >= 22 | -| Linux | == Ubuntu 20.04 x86_64 | +| Linux | >= Ubuntu 20.04 x86_64 | | Windows | >= 10 x86_64 | ### Default database directory @@ -27,7 +27,7 @@ locations on the various platforms. | Platform | Version | | -------: | :--------------------- | | macOS | >= 10.14 | -| Linux | == Ubuntu 20.04 x86_64 | +| Linux | >= Ubuntu 20.04 x86_64 | | Windows | >= 10 x86_64 | ### Default database directory diff --git a/native/CouchbaseLiteC.release b/native/CouchbaseLiteC.release index e4a0720d..a0cd9f0c 100644 --- a/native/CouchbaseLiteC.release +++ b/native/CouchbaseLiteC.release @@ -1 +1 @@ -3.0.11 \ No newline at end of file +3.1.0 \ No newline at end of file diff --git a/native/couchbase-lite-dart/CMakeLists.txt b/native/couchbase-lite-dart/CMakeLists.txt index 255a3c5d..7cf9ef40 100644 --- a/native/couchbase-lite-dart/CMakeLists.txt +++ b/native/couchbase-lite-dart/CMakeLists.txt @@ -27,7 +27,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL Android) set(CBL_TARGET android) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux) # The only currently supported Linux target. - set(CBL_TARGET ubuntu20.04-x86_64) + set(CBL_TARGET linux-x86_64) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) set(CBL_TARGET windows-x86_64) endif() diff --git a/native/couchbase-lite-dart/include/Fleece+Dart.h b/native/couchbase-lite-dart/include/Fleece+Dart.h index fdc19d5c..ccfa5075 100644 --- a/native/couchbase-lite-dart/include/Fleece+Dart.h +++ b/native/couchbase-lite-dart/include/Fleece+Dart.h @@ -52,10 +52,6 @@ struct CBLDart_LoadedFLValue { FLValue value; }; -CBLDART_EXPORT -void CBLDart_FLValue_FromData(FLSlice data, uint8_t trust, - CBLDart_LoadedFLValue *out); - CBLDART_EXPORT void CBLDart_GetLoadedFLValue(FLValue value, CBLDart_LoadedFLValue *out); diff --git a/native/couchbase-lite-dart/src/AsyncCallback.cpp b/native/couchbase-lite-dart/src/AsyncCallback.cpp index 9d95b63f..f90dbaed 100644 --- a/native/couchbase-lite-dart/src/AsyncCallback.cpp +++ b/native/couchbase-lite-dart/src/AsyncCallback.cpp @@ -177,7 +177,7 @@ void AsyncCallbackCall::execute(Dart_CObject &arguments) { // The SendPort to signal the return of the callback. // Only necessary if the caller is interested in it. - Dart_CObject responsePort; + Dart_CObject responsePort{}; if (isBlocking()) { responsePort.type = Dart_CObject_kSendPort; responsePort.value.as_send_port.id = receivePort_; @@ -190,13 +190,13 @@ void AsyncCallbackCall::execute(Dart_CObject &arguments) { // response. This is how we get a reference to this call in the response // handler. Only necessary if the caller is waiting for the return of the // callback. - Dart_CObject callPointer; + Dart_CObject callPointer{}; CBLDart_CObject_SetPointer(&callPointer, isBlocking() ? this : nullptr); // The request is sent as an array. Dart_CObject *requestValues[] = {&responsePort, &callPointer, &arguments}; - Dart_CObject request; + Dart_CObject request{}; request.type = Dart_CObject_kArray; request.value.as_array.length = 3; request.value.as_array.values = requestValues; diff --git a/native/couchbase-lite-dart/src/CBL+Dart.cpp b/native/couchbase-lite-dart/src/CBL+Dart.cpp index 1f6723e4..95c9c099 100644 --- a/native/couchbase-lite-dart/src/CBL+Dart.cpp +++ b/native/couchbase-lite-dart/src/CBL+Dart.cpp @@ -65,13 +65,13 @@ void CBLDart_AsyncCallback_Close(CBLDart_AsyncCallback callback) { void CBLDart_AsyncCallback_CallForTest(CBLDart_AsyncCallback callback, int64_t argument) { std::thread([=]() { - Dart_CObject argument__; + Dart_CObject argument__{}; argument__.type = Dart_CObject_kInt64; argument__.value.as_int64 = argument; Dart_CObject *argsValues[] = {&argument__}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 1; args.value.as_array.values = argsValues; @@ -219,20 +219,20 @@ static void CBLDart_UpdateEffectiveLogCallbackLevel() { static void CBLDart_CallDartLogCallback(CBLLogDomain domain, CBLLogLevel level, FLString message) { - Dart_CObject domain_; + Dart_CObject domain_{}; domain_.type = Dart_CObject_kInt32; domain_.value.as_int32 = static_cast(domain); - Dart_CObject level_; + Dart_CObject level_{}; level_.type = Dart_CObject_kInt32; level_.value.as_int32 = static_cast(level); - Dart_CObject message_; + Dart_CObject message_{}; CBLDart_CObject_SetFLString(&message_, message); Dart_CObject *argsValues[] = {&domain_, &level_, &message_}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 3; args.value.as_array.values = argsValues; @@ -279,7 +279,7 @@ bool CBLDart_CBLLog_SetFileConfig(CBLLogFileConfiguration *config, std::unique_lock lock(loggingMutex); if (!config) { - CBLLogFileConfiguration config_; + CBLLogFileConfiguration config_{}; config_.level = kCBLLogNone; config_.directory = {nullptr, 0}; config_.maxRotateCount = 0; @@ -295,7 +295,7 @@ bool CBLDart_CBLLog_SetFileConfig(CBLLogFileConfiguration *config, } return success; } else { - CBLLogFileConfiguration config_; + CBLLogFileConfiguration config_{}; config_.level = config->level; config_.directory = config->directory; config_.maxRotateCount = config->maxRotateCount; @@ -306,12 +306,12 @@ bool CBLDart_CBLLog_SetFileConfig(CBLLogFileConfiguration *config, if (success) { auto config_ = CBLLog_FileConfig(); if (!logFileConfig) { - logFileConfig = new CBLLogFileConfiguration; + logFileConfig = new CBLLogFileConfiguration{}; } logFileConfig->level = config_->level; logFileConfig->directory = config_->directory; logFileConfig->maxRotateCount = config_->maxRotateCount; - logFileConfig->maxSize = config->maxSize; + logFileConfig->maxSize = config_->maxSize; logFileConfig->usePlaintext = config_->usePlaintext; } return success; @@ -483,7 +483,7 @@ static void CBLDart_DocumentChangeListenerWrapper(void *context, FLString docID) { auto callback = ASYNC_CALLBACK_FROM_C(context); - Dart_CObject args; + Dart_CObject args{}; CBLDart_CObject_SetEmptyArray(&args); CBLDart::AsyncCallbackCall(*callback).execute(args); @@ -515,7 +515,7 @@ static void CBLDart_DatabaseChangeListenerWrapper(void *context, auto docIdObjectsArray = docIdObjects.data(); - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = numDocs; args.value.as_array.values = &docIdObjectsArray; @@ -539,7 +539,7 @@ bool CBLDart_CBLDatabase_CreateIndex(CBLDatabase *db, FLString name, CBLError *errorOut) { switch (indexSpec.type) { case kCBLDart_IndexTypeValue: { - CBLValueIndexConfiguration config; + CBLValueIndexConfiguration config{}; config.expressionLanguage = indexSpec.expressionLanguage; config.expressions = indexSpec.expressions; @@ -547,7 +547,7 @@ bool CBLDart_CBLDatabase_CreateIndex(CBLDatabase *db, FLString name, } case kCBLDart_IndexTypeFullText: { } - CBLFullTextIndexConfiguration config; + CBLFullTextIndexConfiguration config{}; config.expressionLanguage = indexSpec.expressionLanguage; config.expressions = indexSpec.expressions; config.ignoreAccents = static_cast(indexSpec.ignoreAccents); @@ -566,7 +566,7 @@ static void CBLDart_QueryChangeListenerWrapper(void *context, CBLQuery *query, CBLListenerToken *token) { auto callback = ASYNC_CALLBACK_FROM_C(context); - Dart_CObject args; + Dart_CObject args{}; CBLDart_CObject_SetEmptyArray(&args); CBLDart::AsyncCallbackCall(*callback).execute(args); @@ -622,16 +622,16 @@ static std::mutex replicatorCallbackWrapperContextsMutex; static bool CBLDart_ReplicatorFilterWrapper(CBLDart::AsyncCallback *callback, CBLDocument *document, CBLDocumentFlags flags) { - Dart_CObject document_; + Dart_CObject document_{}; CBLDart_CObject_SetPointer(&document_, document); - Dart_CObject flags_; + Dart_CObject flags_{}; flags_.type = Dart_CObject_kInt32; flags_.value.as_int32 = flags; Dart_CObject *argsValues[] = {&document_, &flags_}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 2; args.value.as_array.values = argsValues; @@ -672,18 +672,18 @@ static const CBLDocument *CBLDart_ReplicatorConflictResolverWrapper( reinterpret_cast(context); auto callback = wrapperContext->conflictResolver; - Dart_CObject documentID_; + Dart_CObject documentID_{}; CBLDart_CObject_SetFLString(&documentID_, documentID); - Dart_CObject local; + Dart_CObject local{}; CBLDart_CObject_SetPointer(&local, localDocument); - Dart_CObject remote; + Dart_CObject remote{}; CBLDart_CObject_SetPointer(&remote, remoteDocument); Dart_CObject *argsValues[] = {&documentID_, &local, &remote}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 3; args.value.as_array.values = argsValues; @@ -730,7 +730,7 @@ static const CBLDocument *CBLDart_ReplicatorConflictResolverWrapper( CBLReplicator *CBLDart_CBLReplicator_Create( CBLDart_ReplicatorConfiguration *config, CBLError *errorOut) { - CBLReplicatorConfiguration config_; + CBLReplicatorConfiguration config_{}; config_.database = config->database; config_.endpoint = config->endpoint; config_.replicatorType = @@ -767,11 +767,6 @@ CBLReplicator *CBLDart_CBLReplicator_Create( context->conflictResolver = ASYNC_CALLBACK_FROM_C(config->conflictResolver); config_.context = context; -#ifdef COUCHBASE_ENTERPRISE - config_.propertyEncryptor = nullptr; - config_.propertyDecryptor = nullptr; -#endif - auto replicator = CBLReplicator_Create(&config_, errorOut); if (replicator) { @@ -873,14 +868,14 @@ class ReplicatorStatus_CObject_Helper { Dart_CObject *cObject() { return &object; } private: - Dart_CObject object; + Dart_CObject object{}; Dart_CObject *objectValues[6]; - Dart_CObject activity; - Dart_CObject progressComplete; - Dart_CObject progressDocumentCount; - Dart_CObject errorDomain; - Dart_CObject errorCode; - Dart_CObject errorMessage; + Dart_CObject activity{}; + Dart_CObject progressComplete{}; + Dart_CObject progressDocumentCount{}; + Dart_CObject errorDomain{}; + Dart_CObject errorCode{}; + Dart_CObject errorMessage{}; FLSliceResult errorMessageStr = {nullptr, 0}; }; @@ -895,7 +890,7 @@ static void CBLDart_Replicator_ChangeListenerWrapper( Dart_CObject *argsValues[] = {cObjectStatus.cObject()}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 1; args.value.as_array.values = argsValues; @@ -960,13 +955,13 @@ class ReplicatedDocument_CObject_Helper { Dart_CObject *cObject() { return &object; } private: - Dart_CObject object; + Dart_CObject object{}; Dart_CObject *objectValues[5]; - Dart_CObject id; - Dart_CObject flags; - Dart_CObject errorDomain; - Dart_CObject errorCode; - Dart_CObject errorMessage; + Dart_CObject id{}; + Dart_CObject flags{}; + Dart_CObject errorDomain{}; + Dart_CObject errorCode{}; + Dart_CObject errorMessage{}; FLSliceResult errorMessageStr = {nullptr, 0}; }; @@ -976,7 +971,7 @@ static void CBLDart_Replicator_DocumentReplicationListenerWrapper( unsigned numDocuments, const CBLReplicatedDocument *documents) { auto callback = ASYNC_CALLBACK_FROM_C(context); - Dart_CObject isPush_; + Dart_CObject isPush_{}; isPush_.type = Dart_CObject_kBool; isPush_.value.as_bool = isPush; @@ -990,14 +985,14 @@ static void CBLDart_Replicator_DocumentReplicationListenerWrapper( documentObjects[i] = helper->cObject(); } - Dart_CObject cObjectDocumentsArray; + Dart_CObject cObjectDocumentsArray{}; cObjectDocumentsArray.type = Dart_CObject_kArray; cObjectDocumentsArray.value.as_array.length = numDocuments; cObjectDocumentsArray.value.as_array.values = documentObjects.data(); Dart_CObject *argsValues[] = {&isPush_, &cObjectDocumentsArray}; - Dart_CObject args; + Dart_CObject args{}; args.type = Dart_CObject_kArray; args.value.as_array.length = 2; args.value.as_array.values = argsValues; diff --git a/native/couchbase-lite-dart/src/Fleece+Dart.cpp b/native/couchbase-lite-dart/src/Fleece+Dart.cpp index e889c7f4..7f8ddc95 100644 --- a/native/couchbase-lite-dart/src/Fleece+Dart.cpp +++ b/native/couchbase-lite-dart/src/Fleece+Dart.cpp @@ -71,12 +71,6 @@ static void CBLDart_GetLoadedDictKey(KnownSharedKeys *knownSharedKeys, out->stringSize = string.size; } -void CBLDart_FLValue_FromData(FLSlice data, uint8_t trust, - CBLDart_LoadedFLValue *out) { - auto value = FLValue_FromData(data, static_cast(trust)); - CBLDart_GetLoadedFLValue(value, out); -} - void CBLDart_GetLoadedFLValue(FLValue value, CBLDart_LoadedFLValue *out) { if (value) { out->exists = true; @@ -154,7 +148,7 @@ CBLDart_FLDictIterator *CBLDart_FLDictIterator_Begin( FLDict dict, KnownSharedKeys *knownSharedKeys, CBLDart_LoadedDictKey *keyOut, CBLDart_LoadedFLValue *valueOut, bool deleteOnDone, bool preLoad) { - auto iterator = new CBLDart_FLDictIterator; + auto iterator = new CBLDart_FLDictIterator{}; iterator->_keyOut = keyOut; iterator->_valueOut = valueOut; iterator->_knownSharedKeys = knownSharedKeys; @@ -211,7 +205,7 @@ struct CBLDart_FLArrayIterator { CBLDart_FLArrayIterator *CBLDart_FLArrayIterator_Begin( FLArray array, CBLDart_LoadedFLValue *valueOut, bool deleteOnDone) { - auto iterator = new CBLDart_FLArrayIterator; + auto iterator = new CBLDart_FLArrayIterator{}; iterator->_valueOut = valueOut; iterator->_deleteOnDone = deleteOnDone; diff --git a/native/couchbase-lite-dart/src/exports/CBL_Dart_Exports.txt b/native/couchbase-lite-dart/src/exports/CBL_Dart_Exports.txt index c5f51498..7846883f 100644 --- a/native/couchbase-lite-dart/src/exports/CBL_Dart_Exports.txt +++ b/native/couchbase-lite-dart/src/exports/CBL_Dart_Exports.txt @@ -32,7 +32,6 @@ CBLDart_FLSliceResult_ReleaseByBuf CBLDart_KnownSharedKeys_New CBLDart_KnownSharedKeys_Delete -CBLDart_FLValue_FromData CBLDart_GetLoadedFLValue CBLDart_FLArray_GetLoadedFLValue CBLDart_FLDict_GetLoadedFLValue diff --git a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.def b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.def index 30387778..91926914 100644 --- a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.def +++ b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.def @@ -28,7 +28,6 @@ CBLDart_FLSliceResult_RetainByBuf CBLDart_FLSliceResult_ReleaseByBuf CBLDart_KnownSharedKeys_New CBLDart_KnownSharedKeys_Delete -CBLDart_FLValue_FromData CBLDart_GetLoadedFLValue CBLDart_FLArray_GetLoadedFLValue CBLDart_FLDict_GetLoadedFLValue diff --git a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.exp b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.exp index 8579ec29..d8ae0cbd 100644 --- a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.exp +++ b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.exp @@ -26,7 +26,6 @@ _CBLDart_FLSliceResult_RetainByBuf _CBLDart_FLSliceResult_ReleaseByBuf _CBLDart_KnownSharedKeys_New _CBLDart_KnownSharedKeys_Delete -_CBLDart_FLValue_FromData _CBLDart_GetLoadedFLValue _CBLDart_FLArray_GetLoadedFLValue _CBLDart_FLDict_GetLoadedFLValue diff --git a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.gnu b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.gnu index 6399eb76..592aefc8 100644 --- a/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.gnu +++ b/native/couchbase-lite-dart/src/exports/generated/CBL_Dart.gnu @@ -26,7 +26,6 @@ CBL_Dart { CBLDart_FLSliceResult_ReleaseByBuf; CBLDart_KnownSharedKeys_New; CBLDart_KnownSharedKeys_Delete; - CBLDart_FLValue_FromData; CBLDart_GetLoadedFLValue; CBLDart_FLArray_GetLoadedFLValue; CBLDart_FLDict_GetLoadedFLValue; diff --git a/native/couchbase-lite-dart/tools/build_android.sh b/native/couchbase-lite-dart/tools/build_android.sh index 7cf6c00c..077f1cd9 100755 --- a/native/couchbase-lite-dart/tools/build_android.sh +++ b/native/couchbase-lite-dart/tools/build_android.sh @@ -17,7 +17,7 @@ version="$(cat "$versionFile")" productDir="$buildDir/libcblitedart-$version" cmakeBuildDir="$buildDir/cmake" archs=(arm64-v8a armeabi-v7a x86 x86_64) -ndkVersion="21.4.7075529" +ndkVersion="23.1.7779620" cmakeVersion="3.18.1" defaultSdkLocation=("$HOME/Android/Sdk" "$HOME/Library/Android/sdk") sdkHome="$ANDROID_HOME" diff --git a/native/couchbase-lite-dart/tools/build_release.sh b/native/couchbase-lite-dart/tools/build_release.sh index 6a5fc9a1..842ba18f 100755 --- a/native/couchbase-lite-dart/tools/build_release.sh +++ b/native/couchbase-lite-dart/tools/build_release.sh @@ -20,7 +20,7 @@ scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" projectDir="$(cd "$scriptDir/.." && pwd)" buildDir="$projectDir/build/release" editions=(community enterprise) -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) function _buildArchive() { local edition="$1" @@ -47,7 +47,7 @@ function _buildArchive() { targetBuildDir="$projectDir/build/ios" productDirPrefix="CouchbaseLiteDart.xcframework" ;; - ubuntu20.04-x86_64) + linux-x86_64) ./tools/build_unix.sh "$edition" release targetBuildDir="$projectDir/build/unix" archiveExt=tar.gz diff --git a/native/tools/android-sdk.sh b/native/tools/android-sdk.sh index d1e87158..1516df39 100755 --- a/native/tools/android-sdk.sh +++ b/native/tools/android-sdk.sh @@ -4,7 +4,7 @@ set -e -ndkVersion="21.4.7075529" +ndkVersion="23.1.7779620" cmakeVersion="3.18.1" defaultSdkLocation=("$HOME/Android/Sdk" "$HOME/Library/Android/sdk") sdkHome="$ANDROID_HOME" @@ -24,7 +24,6 @@ if [ -z "$sdkHome" ]; then fi fi - function installNativeToolchain() { $sdkHome/cmdline-tools/latest/bin/sdkmanager --install "ndk;$ndkVersion" $sdkHome/cmdline-tools/latest/bin/sdkmanager --install "cmake;$cmakeVersion" diff --git a/native/tools/download_prebuilt_binaries.sh b/native/tools/download_prebuilt_binaries.sh index dcc1610f..5c21983d 100755 --- a/native/tools/download_prebuilt_binaries.sh +++ b/native/tools/download_prebuilt_binaries.sh @@ -33,15 +33,15 @@ binariesDir="$vendorDir/couchbase-lite-C-prebuilt" tmpDir="$binariesDir/tmp" couchbaseLiteCRelease="$(cat "$nativeDir/CouchbaseLiteC.release")" editions=(community enterprise) -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) -targetsWithExternalSymbols=(macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) +targetsWithExternalSymbols=(macos linux-x86_64 windows-x86_64) # Outputs the extension of the archives for the given target. function _archiveExt() { local target=$1 case "$target" in - ubuntu*) + linux*) echo tar.gz ;; *) @@ -112,7 +112,7 @@ function _downloadBinaries() { macos) mv "$installDir/libcblite-$release/libcblite.dylib.dSYM" "$installDir/libcblite-$release/lib" ;; - ubuntu*) + linux*) mv "$installDir/libcblite-$release/libcblite.so.sym" "$installDir/libcblite-$release/lib/"*-linux-gnu ;; windows*) diff --git a/packages/cbl_dart/lib/src/package.dart b/packages/cbl_dart/lib/src/package.dart index aab1411b..e52ebd92 100644 --- a/packages/cbl_dart/lib/src/package.dart +++ b/packages/cbl_dart/lib/src/package.dart @@ -47,9 +47,6 @@ enum OS { windows, } -/// A linux distribution. -enum Distro { ubuntu } - /// A target for which a specific [Package] is distributed. class Target { Target(this.os); @@ -57,11 +54,10 @@ class Target { static final android = Target(OS.android); static final ios = Target(OS.ios); static final macos = Target(OS.macos); - static final ubuntu20_04_x86_64 = - LinuxTarget(OS.linux, Distro.ubuntu, '20.04', 'x86_64'); - static final windows_x86_64 = WindowsTarget(OS.windows, 'x86_64'); + static final linux_x86_64 = LinuxTarget('x86_64'); + static final windows_x86_64 = WindowsTarget('x86_64'); - static final all = [android, ios, macos, ubuntu20_04_x86_64, windows_x86_64]; + static final all = [android, ios, macos, linux_x86_64, windows_x86_64]; /// The target of the host machine. static Target get host { @@ -70,9 +66,7 @@ class Target { } if (Platform.isLinux) { - // TODO(blaugold): detect distro and throw if not supported - // The only currently supported Linux target is Ubuntu 20.04 x86_64. - return ubuntu20_04_x86_64; + return linux_x86_64; } if (Platform.isWindows) { @@ -96,14 +90,12 @@ class Target { /// A linux [Target]. class LinuxTarget extends Target { - LinuxTarget(super.os, this.vendor, this.version, this.arch); + LinuxTarget(this.arch) : super(OS.linux); - final Distro vendor; - final String version; final String arch; @override - String get id => '${vendor.name}$version-$arch'; + String get id => 'linux-$arch'; @override ArchiveFormat get archiveFormat => ArchiveFormat.tarGz; @@ -114,7 +106,7 @@ class LinuxTarget extends Target { /// A windows [Target]. class WindowsTarget extends Target { - WindowsTarget(super.os, this.arch); + WindowsTarget(this.arch) : super(OS.windows); final String arch; diff --git a/packages/cbl_e2e_tests/lib/src/replication/replicator_test.dart b/packages/cbl_e2e_tests/lib/src/replication/replicator_test.dart index ca097f72..11d11ee2 100644 --- a/packages/cbl_e2e_tests/lib/src/replication/replicator_test.dart +++ b/packages/cbl_e2e_tests/lib/src/replication/replicator_test.dart @@ -708,7 +708,6 @@ void main() { test( 'supports starting replicator while async document save', () async { - Database.log.console.level = LogLevel.debug; final db = await openAsyncTestDatabase(); final repl = await db.createTestReplicator(); diff --git a/packages/cbl_ffi/lib/src/fleece.dart b/packages/cbl_ffi/lib/src/fleece.dart index 3e9e9111..db58207f 100644 --- a/packages/cbl_ffi/lib/src/fleece.dart +++ b/packages/cbl_ffi/lib/src/fleece.dart @@ -1320,17 +1320,6 @@ extension CBLDart_LoadedFLValueExt on CBLDart_LoadedFLValue { typedef _FLData_Dump_C = FLStringResult Function(FLSlice slice); typedef _FLData_Dump = FLStringResult Function(FLSlice slice); -typedef _CBLDart_FLValue_FromData_C = Void Function( - FLSlice data, - Uint8 trust, - Pointer out, -); -typedef _CBLDart_FLValue_FromData = void Function( - FLSlice data, - int trust, - Pointer out, -); - typedef _CBLDart_GetLoaded_FLValue_C = Void Function( Pointer value, Pointer out, @@ -1432,11 +1421,6 @@ class FleeceDecoderBindings extends Bindings { ); _knownSharedKeysDeletePtr = libs.cblDart.lookup('CBLDart_KnownSharedKeys_Delete'); - _getLoadedFLValueFromData = libs.cblDart - .lookupFunction<_CBLDart_FLValue_FromData_C, _CBLDart_FLValue_FromData>( - 'CBLDart_FLValue_FromData', - isLeaf: useIsLeaf, - ); _getLoadedFLValue = libs.cblDart.lookupFunction< _CBLDart_GetLoaded_FLValue_C, _CBLDart_GetLoadedFLValue>( 'CBLDart_GetLoadedFLValue', @@ -1481,7 +1465,6 @@ class FleeceDecoderBindings extends Bindings { late final _CBLDart_KnownSharedKeys_New _knownSharedKeysNew; late final Pointer> _knownSharedKeysDeletePtr; - late final _CBLDart_FLValue_FromData _getLoadedFLValueFromData; late final _CBLDart_GetLoadedFLValue _getLoadedFLValue; late final _CBLDart_FLArray_GetLoadedFLValue _getLoadedFLValueFromArray; late final _CBLDart_FLDict_GetLoadedFLValue _getLoadedFLValueFromDict; @@ -1510,13 +1493,6 @@ class FleeceDecoderBindings extends Bindings { return result; } - void getLoadedFLValueFromData(Slice data, FLTrust trust) => - _getLoadedFLValueFromData( - data.makeGlobal().ref, - trust.toInt(), - globalLoadedFLValue, - ); - void getLoadedValue(Pointer value) { _getLoadedFLValue(value, globalLoadedFLValue); } diff --git a/packages/cbl_flutter_ce/linux/CMakeLists.txt b/packages/cbl_flutter_ce/linux/CMakeLists.txt index 07368333..baad2ff1 100644 --- a/packages/cbl_flutter_ce/linux/CMakeLists.txt +++ b/packages/cbl_flutter_ce/linux/CMakeLists.txt @@ -19,7 +19,7 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE flutter) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK) execute_process( - COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" ubuntu20.04-x86_64 + COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" linux-x86_64 RESULT_VARIABLE INSTALL_LIBRARIES_RESULT OUTPUT_VARIABLE INSTALL_LIBRARIES_OUTPUT ERROR_VARIABLE INSTALL_LIBRARIES_ERROR diff --git a/packages/cbl_flutter_ce/tool/install_libraries.sh b/packages/cbl_flutter_ce/tool/install_libraries.sh index abf3a650..07f0f1d8 100755 --- a/packages/cbl_flutter_ce/tool/install_libraries.sh +++ b/packages/cbl_flutter_ce/tool/install_libraries.sh @@ -19,7 +19,7 @@ MINGW* | CYGWIN* | MSYS*) ;; esac -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" packageDir="$(cd "$scriptDir/.." && pwd)" androidJniLibsDir="$packageDir/android/src/main/jniLibs" @@ -43,7 +43,7 @@ function _installDir() { macos) echo "$macosLibrariesDir" ;; - ubuntu*) + linux*) echo "$linuxLibDir" ;; windows*) @@ -67,7 +67,7 @@ function _archiveExt() { local target="$1" case "$target" in - ubuntu*) + linux*) echo tar.gz ;; *) @@ -185,7 +185,7 @@ macos) cp -L "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/libcblite."?".dylib" "$tmpInstallDir" cp -L "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/libcblitedart."?".dylib" "$tmpInstallDir" ;; -ubuntu*) +linux*) cp -a "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/"*"/libcblite."* "$tmpInstallDir" cp -a "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/"*"/libcblitedart."* "$tmpInstallDir" ;; diff --git a/packages/cbl_flutter_ee/linux/CMakeLists.txt b/packages/cbl_flutter_ee/linux/CMakeLists.txt index 76219a17..7650b781 100644 --- a/packages/cbl_flutter_ee/linux/CMakeLists.txt +++ b/packages/cbl_flutter_ee/linux/CMakeLists.txt @@ -19,7 +19,7 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE flutter) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK) execute_process( - COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" ubuntu20.04-x86_64 + COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" linux-x86_64 RESULT_VARIABLE INSTALL_LIBRARIES_RESULT OUTPUT_VARIABLE INSTALL_LIBRARIES_OUTPUT ERROR_VARIABLE INSTALL_LIBRARIES_ERROR diff --git a/packages/cbl_flutter_ee/tool/install_libraries.sh b/packages/cbl_flutter_ee/tool/install_libraries.sh index abf3a650..07f0f1d8 100755 --- a/packages/cbl_flutter_ee/tool/install_libraries.sh +++ b/packages/cbl_flutter_ee/tool/install_libraries.sh @@ -19,7 +19,7 @@ MINGW* | CYGWIN* | MSYS*) ;; esac -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" packageDir="$(cd "$scriptDir/.." && pwd)" androidJniLibsDir="$packageDir/android/src/main/jniLibs" @@ -43,7 +43,7 @@ function _installDir() { macos) echo "$macosLibrariesDir" ;; - ubuntu*) + linux*) echo "$linuxLibDir" ;; windows*) @@ -67,7 +67,7 @@ function _archiveExt() { local target="$1" case "$target" in - ubuntu*) + linux*) echo tar.gz ;; *) @@ -185,7 +185,7 @@ macos) cp -L "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/libcblite."?".dylib" "$tmpInstallDir" cp -L "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/libcblitedart."?".dylib" "$tmpInstallDir" ;; -ubuntu*) +linux*) cp -a "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/"*"/libcblite."* "$tmpInstallDir" cp -a "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/"*"/libcblitedart."* "$tmpInstallDir" ;; diff --git a/packages/cbl_flutter_prebuilt/template_package/linux/CMakeLists.txt__template__ b/packages/cbl_flutter_prebuilt/template_package/linux/CMakeLists.txt__template__ index 84eab4b0..857a09af 100644 --- a/packages/cbl_flutter_prebuilt/template_package/linux/CMakeLists.txt__template__ +++ b/packages/cbl_flutter_prebuilt/template_package/linux/CMakeLists.txt__template__ @@ -19,7 +19,7 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE flutter) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK) execute_process( - COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" ubuntu20.04-x86_64 + COMMAND "${PROJECT_SOURCE_DIR}/../tool/install_libraries.sh" linux-x86_64 RESULT_VARIABLE INSTALL_LIBRARIES_RESULT OUTPUT_VARIABLE INSTALL_LIBRARIES_OUTPUT ERROR_VARIABLE INSTALL_LIBRARIES_ERROR diff --git a/packages/cbl_flutter_prebuilt/template_package/tool/install_libraries.sh b/packages/cbl_flutter_prebuilt/template_package/tool/install_libraries.sh index abf3a650..07f0f1d8 100755 --- a/packages/cbl_flutter_prebuilt/template_package/tool/install_libraries.sh +++ b/packages/cbl_flutter_prebuilt/template_package/tool/install_libraries.sh @@ -19,7 +19,7 @@ MINGW* | CYGWIN* | MSYS*) ;; esac -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" packageDir="$(cd "$scriptDir/.." && pwd)" androidJniLibsDir="$packageDir/android/src/main/jniLibs" @@ -43,7 +43,7 @@ function _installDir() { macos) echo "$macosLibrariesDir" ;; - ubuntu*) + linux*) echo "$linuxLibDir" ;; windows*) @@ -67,7 +67,7 @@ function _archiveExt() { local target="$1" case "$target" in - ubuntu*) + linux*) echo tar.gz ;; *) @@ -185,7 +185,7 @@ macos) cp -L "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/libcblite."?".dylib" "$tmpInstallDir" cp -L "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/libcblitedart."?".dylib" "$tmpInstallDir" ;; -ubuntu*) +linux*) cp -a "$tmpDir/libcblite-$COUCHBASE_LITE_C_VERSION/lib/"*"/libcblite."* "$tmpInstallDir" cp -a "$tmpDir/libcblitedart-$COUCHBASE_LITE_DART_VERSION/lib/"*"/libcblitedart."* "$tmpInstallDir" ;; diff --git a/tools/android-emulator.sh b/tools/android-emulator.sh index f1f9236b..08b9a816 100755 --- a/tools/android-emulator.sh +++ b/tools/android-emulator.sh @@ -22,6 +22,7 @@ fi emulatorName="cbl-dart" emulatorPort=5554 serialName="emulator-$emulatorPort" +appBundleId="com.terwesten.gabriel.cbl_e2e_tests_flutter" # === Usage =================================================================== @@ -148,6 +149,11 @@ function bugreport() { echo "Created bugreport" } +function copyAppData() { + "$ANDROID_HOME/platform-tools/adb" shell "run-as $appBundleId cp -r /data/data/$appBundleId /mnt/sdcard" + "$ANDROID_HOME/platform-tools/adb" pull "/mnt/sdcard/$appBundleId" "appData" +} + # === Parse command =========================================================== if [[ $# -eq 0 ]]; then @@ -158,6 +164,7 @@ commands=( createAndStart setupReversePort bugreport + copyAppData ) if [[ ! " ${commands[*]} " =~ " $1 " ]]; then diff --git a/tools/ci-steps.sh b/tools/ci-steps.sh index a62b005f..6b756f74 100755 --- a/tools/ci-steps.sh +++ b/tools/ci-steps.sh @@ -50,7 +50,7 @@ function buildNativeLibraries() { target=android ;; Ubuntu) - target=ubuntu20.04-x86_64 + target=linux-x86_64 ;; Windows) target=windows-x86_64 @@ -293,6 +293,12 @@ function _collectCblLogsMacOS() { echo "Copied files" } +function _collectCblLogsAndroid() { + ./tools/android-emulator.sh copyAppData + zip -r appData.zip appData + mv appData.zip "$testResultsDir" +} + function _collectCblLogsLinux() { echo "Collecting Couchbase Lite logs" @@ -349,7 +355,7 @@ function collectTestResults() { ;; Android) _collectCrashReportsAndroid - # TODO(blaugold): get cbl logs from device + _collectCblLogsAndroid ;; Ubuntu) _collectCrashReportsLinuxFlutter diff --git a/tools/dev-tools.sh b/tools/dev-tools.sh index dc4961de..d523daca 100755 --- a/tools/dev-tools.sh +++ b/tools/dev-tools.sh @@ -13,7 +13,7 @@ esac editions=(community enterprise) buildModes=(debug release) -targets=(android ios macos ubuntu20.04-x86_64 windows-x86_64) +targets=(android ios macos linux-x86_64 windows-x86_64) scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" projectDir="$(cd "$scriptDir/.." && pwd)" nativeDir="$projectDir/native" @@ -52,7 +52,7 @@ function prepareNativeLibraries() { if [[ -z "$target" ]]; then case "$(uname)" in Linux) - target="ubuntu20.04-x86_64" + target="linux-x86_64" ;; Darwin) target="macos" @@ -116,7 +116,7 @@ function prepareNativeLibraries() { cp -a "$couchbaseLiteCArchiveDir/libcblite-"*"/lib/libcblite.dylib.dSYM" "$cblFlutterLocalMacosLibrariesDir" cp -L "$couchbaseLiteDartBuildDir/unix/libcblitedart-"*"/lib/libcblitedart."?".dylib" "$cblFlutterLocalMacosLibrariesDir" ;; - ubuntu20.04-x86_64) + linux-x86_64) "$couchbaseLiteDartDir/tools/build_unix.sh" "$edition" "$buildMode" echo "Copying libraries to cbl_e2e_tests_standalone_dart"