aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsvidyuk <svidyuk@yandex-team.com>2023-03-21 12:37:23 +0300
committersvidyuk <svidyuk@yandex-team.com>2023-03-21 12:37:23 +0300
commit8c039f0e189dfefc2f05e4f76c97ac5f804bb1f6 (patch)
tree4d124c9c4abad36bc898a383fb672d49d12aec79
parentf1303b6e66a6625241ad019ab59ef31611014c38 (diff)
downloadydb-8c039f0e189dfefc2f05e4f76c97ac5f804bb1f6.tar.gz
Don't use standalone GNU iconv in opensource
-rw-r--r--contrib/libs/libiconv/ya.make20
-rw-r--r--contrib/libs/libxml/CMakeLists.darwin-x86_64.txt2
-rw-r--r--contrib/libs/libxml/CMakeLists.linux-aarch64.txt2
-rw-r--r--contrib/libs/libxml/CMakeLists.linux-x86_64.txt2
-rw-r--r--library/cpp/charset/CMakeLists.darwin-x86_64.txt2
-rw-r--r--library/cpp/charset/CMakeLists.linux-aarch64.txt2
-rw-r--r--library/cpp/charset/CMakeLists.linux-x86_64.txt2
-rw-r--r--library/cpp/charset/iconv.cpp8
-rw-r--r--library/cpp/charset/ya.make4
-rw-r--r--ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt2
12 files changed, 23 insertions, 27 deletions
diff --git a/contrib/libs/libiconv/ya.make b/contrib/libs/libiconv/ya.make
index 3b32d4e2266..6d6b1141b93 100644
--- a/contrib/libs/libiconv/ya.make
+++ b/contrib/libs/libiconv/ya.make
@@ -8,12 +8,20 @@ WITHOUT_LICENSE_TEXTS()
NO_RUNTIME()
-OPENSOURCE_EXPORT_REPLACEMENT(
- CMAKE Iconv
- CMAKE_TARGET Iconv::Iconv
- CONAN libiconv/1.15
- CONAN_OPTIONS libiconv:shared=True
-)
+IF(OS_WINDOWS)
+ OPENSOURCE_EXPORT_REPLACEMENT(
+ CMAKE Iconv
+ CMAKE_TARGET Iconv::Iconv
+ CONAN libiconv/1.15
+ CONAN_OPTIONS libiconv:shared=True
+ )
+ELSE()
+ # Opensource code is compatible with libc provided iconv API on major linux distributions and macos.
+ # * We prefere to avoid vendoring LGPL libraries in our opensouce project
+ # * Major distributions do not provide GNU libiconv as separate package
+ # * Shared lib dependencies from conan overcomplicate final artefacts distribution
+ DISABLE(OPENSOURCE_EXPORT)
+ENDIF()
IF (NOT EXPORT_CMAKE)
diff --git a/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt b/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt
index d593318062c..7ea20cee7a8 100644
--- a/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt
+++ b/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(ZLIB REQUIRED)
add_library(contrib-libs-libxml)
@@ -26,7 +25,6 @@ target_include_directories(contrib-libs-libxml PRIVATE
target_link_libraries(contrib-libs-libxml PUBLIC
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
ZLIB::ZLIB
library-cpp-charset
)
diff --git a/contrib/libs/libxml/CMakeLists.linux-aarch64.txt b/contrib/libs/libxml/CMakeLists.linux-aarch64.txt
index b607fa620b1..0fd7e29e196 100644
--- a/contrib/libs/libxml/CMakeLists.linux-aarch64.txt
+++ b/contrib/libs/libxml/CMakeLists.linux-aarch64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(ZLIB REQUIRED)
add_library(contrib-libs-libxml)
@@ -27,7 +26,6 @@ target_link_libraries(contrib-libs-libxml PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
ZLIB::ZLIB
library-cpp-charset
)
diff --git a/contrib/libs/libxml/CMakeLists.linux-x86_64.txt b/contrib/libs/libxml/CMakeLists.linux-x86_64.txt
index b607fa620b1..0fd7e29e196 100644
--- a/contrib/libs/libxml/CMakeLists.linux-x86_64.txt
+++ b/contrib/libs/libxml/CMakeLists.linux-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(ZLIB REQUIRED)
add_library(contrib-libs-libxml)
@@ -27,7 +26,6 @@ target_link_libraries(contrib-libs-libxml PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
ZLIB::ZLIB
library-cpp-charset
)
diff --git a/library/cpp/charset/CMakeLists.darwin-x86_64.txt b/library/cpp/charset/CMakeLists.darwin-x86_64.txt
index 2be179087cf..3dd7934c111 100644
--- a/library/cpp/charset/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/charset/CMakeLists.darwin-x86_64.txt
@@ -6,13 +6,11 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
add_library(library-cpp-charset)
target_link_libraries(library-cpp-charset PUBLIC
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
)
target_sources(library-cpp-charset PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp
diff --git a/library/cpp/charset/CMakeLists.linux-aarch64.txt b/library/cpp/charset/CMakeLists.linux-aarch64.txt
index b2e97648f9b..ff528662af9 100644
--- a/library/cpp/charset/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/charset/CMakeLists.linux-aarch64.txt
@@ -6,14 +6,12 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
add_library(library-cpp-charset)
target_link_libraries(library-cpp-charset PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
)
target_sources(library-cpp-charset PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp
diff --git a/library/cpp/charset/CMakeLists.linux-x86_64.txt b/library/cpp/charset/CMakeLists.linux-x86_64.txt
index b2e97648f9b..ff528662af9 100644
--- a/library/cpp/charset/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/charset/CMakeLists.linux-x86_64.txt
@@ -6,14 +6,12 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
add_library(library-cpp-charset)
target_link_libraries(library-cpp-charset PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
- Iconv::Iconv
)
target_sources(library-cpp-charset PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp
diff --git a/library/cpp/charset/iconv.cpp b/library/cpp/charset/iconv.cpp
index dc604c84920..0b6dbace9ef 100644
--- a/library/cpp/charset/iconv.cpp
+++ b/library/cpp/charset/iconv.cpp
@@ -5,20 +5,22 @@
using namespace NICONVPrivate;
TDescriptor::TDescriptor(const char* from, const char* to)
- : Descriptor_(libiconv_open(to, from))
+ : Descriptor_(iconv_open(to, from))
, From_(from)
, To_(to)
{
+#if defined(USE_ICONV_EXTENSIONS)
if (!Invalid()) {
int temp = 1;
libiconvctl(Descriptor_, ICONV_SET_DISCARD_ILSEQ, &temp);
}
+#endif
}
TDescriptor::~TDescriptor() {
if (!Invalid()) {
- libiconv_close(Descriptor_);
+ iconv_close(Descriptor_);
}
}
@@ -31,7 +33,7 @@ size_t NICONVPrivate::RecodeImpl(const TDescriptor& descriptor, const char* in,
char* outPtr = out;
size_t inSizeMod = inSize;
size_t outSizeMod = outSize;
- size_t res = libiconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod);
+ size_t res = iconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod);
read = inSize - inSizeMod;
written = outSize - outSizeMod;
diff --git a/library/cpp/charset/ya.make b/library/cpp/charset/ya.make
index 7809294b79e..f9fbbf9d09a 100644
--- a/library/cpp/charset/ya.make
+++ b/library/cpp/charset/ya.make
@@ -1,5 +1,9 @@
LIBRARY()
+IF (NOT OPENSOURCE)
+ CXXFLAGS(-DUSE_ICONV_EXTENSIONS)
+ENDIF()
+
SRCS(
generated/cp_data.cpp
generated/encrec_data.cpp
diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt
index f43f55d0d85..f5f1547a3d4 100644
--- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(OpenSSL REQUIRED)
add_subdirectory(interface)
add_subdirectory(ut)
@@ -123,7 +122,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC
library-yql-utils
contrib-libs-icu
contrib-libs-libc_compat
- Iconv::Iconv
contrib-libs-libxml
contrib-libs-lz4
OpenSSL::OpenSSL
diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt
index 44c4a449318..9fcdc948c52 100644
--- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(OpenSSL REQUIRED)
add_subdirectory(interface)
add_subdirectory(ut)
@@ -122,7 +121,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC
library-yql-utils
contrib-libs-icu
contrib-libs-libc_compat
- Iconv::Iconv
contrib-libs-libxml
contrib-libs-lz4
OpenSSL::OpenSSL
diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt
index a0109f09e98..2990900be3a 100644
--- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-find_package(Iconv REQUIRED)
find_package(OpenSSL REQUIRED)
add_subdirectory(interface)
add_subdirectory(ut)
@@ -124,7 +123,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC
library-yql-utils
contrib-libs-icu
contrib-libs-libc_compat
- Iconv::Iconv
contrib-libs-libxml
contrib-libs-lz4
OpenSSL::OpenSSL