1 |
commit: 00fc32dea248405068c7bef23904ef8d3e10655d |
2 |
Author: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Feb 4 20:47:54 2022 +0000 |
4 |
Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Feb 4 20:49:21 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=00fc32de |
7 |
|
8 |
dev-libs/leveldb: Revert drop 1.20 |
9 |
|
10 |
Reverts: 5d0bd6ede5c8f6107be8c62ea98ec9aafe79c58a |
11 |
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org> |
12 |
|
13 |
dev-libs/leveldb/Manifest | 1 + |
14 |
.../leveldb/files/leveldb-1.18-configure.patch | 52 ++++++++++++++++++ |
15 |
.../leveldb/files/leveldb-1.20-memenv-so.patch | 33 +++++++++++ |
16 |
dev-libs/leveldb/leveldb-1.20.ebuild | 64 ++++++++++++++++++++++ |
17 |
4 files changed, 150 insertions(+) |
18 |
|
19 |
diff --git a/dev-libs/leveldb/Manifest b/dev-libs/leveldb/Manifest |
20 |
index 02ce0049311b..26c4a7fc073c 100644 |
21 |
--- a/dev-libs/leveldb/Manifest |
22 |
+++ b/dev-libs/leveldb/Manifest |
23 |
@@ -1 +1,2 @@ |
24 |
+DIST leveldb-1.20.tar.gz 223141 BLAKE2B 57ab5cb191679b8fbfaa28fa0a61ee1dcd757bb9c70215dd325daebfd93b30aa9bbe3c993a1758aa9804a7cd6f2c31df7cf98bdf98320cd1aebc14f5eb77d9a5 SHA512 c59258f2f58ce2d5680e9ab3da4ab0923d91cd4648dcf63cdaa26cdde92bf45e094544539ad11d8e09a4a4813435286143ed0e86c21c6c31a0596903ed4744d2 |
25 |
DIST leveldb-1.23.tar.gz 242925 BLAKE2B ef9ac853cdc2f376b9b4299c1017db8c262cb318ad771f40fe81c9fb71ea06ee56ac533b3e8af4e6fdd28577a2f87cfd103ecb49098187d099ccd6019b8ca1d2 SHA512 ac15eac29387b9f702a901b6567d47a9f8c17cf5c7d8700a77ec771da25158c83b04959c33f3d4de7a3f033ef08f545d14ba823a8d527e21889c4b78065b0f84 |
26 |
|
27 |
diff --git a/dev-libs/leveldb/files/leveldb-1.18-configure.patch b/dev-libs/leveldb/files/leveldb-1.18-configure.patch |
28 |
new file mode 100644 |
29 |
index 000000000000..ba30fc731ad5 |
30 |
--- /dev/null |
31 |
+++ b/dev-libs/leveldb/files/leveldb-1.18-configure.patch |
32 |
@@ -0,0 +1,52 @@ |
33 |
+we'll handle configure ourselves in src_configure |
34 |
+ |
35 |
+--- a/Makefile |
36 |
++++ b/Makefile |
37 |
+@@ -14,9 +14,6 @@ OPT ?= -O2 -DNDEBUG |
38 |
+ # OPT ?= -O2 -g2 -DNDEBUG |
39 |
+ #----------------------------------------------- |
40 |
+ |
41 |
+-# detect what platform we're building on |
42 |
+-$(shell CC="$(CC)" CXX="$(CXX)" TARGET_OS="$(TARGET_OS)" \ |
43 |
+- ./build_detect_platform build_config.mk ./) |
44 |
+ # this file is generated by the previous line to set build flags and sources |
45 |
+ include build_config.mk |
46 |
+ |
47 |
+ |
48 |
+control snappy/tcmalloc explicitly |
49 |
+ |
50 |
+--- a/build_detect_platform |
51 |
++++ a/build_detect_platform |
52 |
+@@ -190,6 +190,7 @@ |
53 |
+ COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX" |
54 |
+ fi |
55 |
+ |
56 |
++if [ "${USE_SNAPPY:-auto}" = "auto" ]; then |
57 |
+ # Test whether Snappy library is installed |
58 |
+ # http://code.google.com/p/snappy/ |
59 |
+ $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT 2>/dev/null <<EOF |
60 |
+@@ -197,15 +198,24 @@ |
61 |
+ int main() {} |
62 |
+ EOF |
63 |
+ if [ "$?" = 0 ]; then |
64 |
++ USE_SNAPPY="yes" |
65 |
++ fi |
66 |
++fi |
67 |
++ if [ "$USE_SNAPPY" = "yes" ]; then |
68 |
+ COMMON_FLAGS="$COMMON_FLAGS -DSNAPPY" |
69 |
+ PLATFORM_LIBS="$PLATFORM_LIBS -lsnappy" |
70 |
+ fi |
71 |
+ |
72 |
++if [ "${USE_TCMALLOC:-auto}" = "auto" ]; then |
73 |
+ # Test whether tcmalloc is available |
74 |
+ $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null <<EOF |
75 |
+ int main() {} |
76 |
+ EOF |
77 |
+ if [ "$?" = 0 ]; then |
78 |
++ USE_TCMALLOC="yes" |
79 |
++ fi |
80 |
++fi |
81 |
++ if [ "$USE_TCMALLOC" = "yes" ]; then |
82 |
+ PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc" |
83 |
+ fi |
84 |
+ |
85 |
|
86 |
diff --git a/dev-libs/leveldb/files/leveldb-1.20-memenv-so.patch b/dev-libs/leveldb/files/leveldb-1.20-memenv-so.patch |
87 |
new file mode 100644 |
88 |
index 000000000000..d443ef0ad262 |
89 |
--- /dev/null |
90 |
+++ b/dev-libs/leveldb/files/leveldb-1.20-memenv-so.patch |
91 |
@@ -0,0 +1,33 @@ |
92 |
+# Create libmemenv.so and don't compile programs by default |
93 |
+# Add a static_programs target to compile test programs |
94 |
+--- a/Makefile 2018-06-03 16:52:28.839614213 +0200 |
95 |
++++ b/Makefile 2018-06-03 16:52:18.209544310 +0200 |
96 |
+@@ -128,15 +128,27 @@ |
97 |
+ ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1) |
98 |
+ $(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3) |
99 |
+ ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2) |
100 |
++SHARED_MEMENV_LIB1 = libmemenv.$(PLATFORM_SHARED_EXT) |
101 |
++SHARED_MEMENV_LIB2 = $(SHARED_MEMENV_LIB1).$(SHARED_VERSION_MAJOR) |
102 |
++SHARED_MEMENV_LIB3 = $(SHARED_MEMENV_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR) |
103 |
++SHARED_MEMENV_LIBS = $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB1) $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB2) $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB3) |
104 |
++$(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB1): $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB3) |
105 |
++ ln -fs $(SHARED_MEMENV_LIB3) $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB1) |
106 |
++$(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB2): $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB3) |
107 |
++ ln -fs $(SHARED_MEMENV_LIB3) $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB2) |
108 |
+ SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a |
109 |
+ endif |
110 |
+ |
111 |
+ $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS) |
112 |
+ $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_LIB2) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS) |
113 |
++$(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB3): $(SHARED_MEMENVOBJECTS) |
114 |
++ $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_MEMENV_LIB2) $(SHARED_MEMENVOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_MEMENV_LIB3) $(LIBS) |
115 |
+ |
116 |
+ endif # PLATFORM_SHARED_EXT |
117 |
+ |
118 |
+-all: $(SHARED_LIBS) $(SHARED_PROGRAMS) $(STATIC_OUTDIR)/libleveldb.a $(STATIC_OUTDIR)/libmemenv.a $(STATIC_PROGRAMS) |
119 |
++all: $(SHARED_LIBS) $(SHARED_MEMENV_LIBS) |
120 |
++ |
121 |
++static_programs: $(STATIC_PROGRAMS) |
122 |
+ |
123 |
+ check: $(STATIC_PROGRAMS) |
124 |
+ for t in $(notdir $(TESTS)); do echo "***** Running $$t"; $(STATIC_OUTDIR)/$$t || exit 1; done |
125 |
|
126 |
diff --git a/dev-libs/leveldb/leveldb-1.20.ebuild b/dev-libs/leveldb/leveldb-1.20.ebuild |
127 |
new file mode 100644 |
128 |
index 000000000000..6961f094c8cc |
129 |
--- /dev/null |
130 |
+++ b/dev-libs/leveldb/leveldb-1.20.ebuild |
131 |
@@ -0,0 +1,64 @@ |
132 |
+# Copyright 1999-2022 Gentoo Authors |
133 |
+# Distributed under the terms of the GNU General Public License v2 |
134 |
+ |
135 |
+EAPI=7 |
136 |
+ |
137 |
+inherit multilib toolchain-funcs |
138 |
+ |
139 |
+DESCRIPTION="a fast key-value storage library written at Google" |
140 |
+HOMEPAGE="https://github.com/google/leveldb" |
141 |
+SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
142 |
+ |
143 |
+LICENSE="BSD" |
144 |
+# https://github.com/google/leveldb/issues/536 |
145 |
+SLOT="0/1" |
146 |
+KEYWORDS="amd64 arm arm64 ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux" |
147 |
+IUSE="+snappy static-libs +tcmalloc test" |
148 |
+RESTRICT="!test? ( test )" |
149 |
+ |
150 |
+DEPEND="tcmalloc? ( dev-util/google-perftools ) |
151 |
+ snappy? ( |
152 |
+ app-arch/snappy:= |
153 |
+ )" |
154 |
+RDEPEND="${DEPEND}" |
155 |
+ |
156 |
+# https://bugs.gentoo.org/651604 |
157 |
+REQUIRED_USE="snappy? ( !static-libs )" |
158 |
+ |
159 |
+# https://github.com/google/leveldb/issues/234 |
160 |
+# https://github.com/google/leveldb/issues/236 |
161 |
+PATCHES=( "${FILESDIR}"/{${PN}-1.18-configure.patch,${P}-memenv-so.patch} ) |
162 |
+ |
163 |
+src_configure() { |
164 |
+ # These vars all get picked up by build_detect_platform |
165 |
+ tc-export AR CC CXX |
166 |
+ export OPT="-DNDEBUG ${CPPFLAGS}" |
167 |
+ |
168 |
+ TARGET_OS=Linux \ |
169 |
+ USE_SNAPPY=$(usex snappy) \ |
170 |
+ USE_TCMALLOC=no \ |
171 |
+ TMPDIR=${T} \ |
172 |
+ sh -x ./build_detect_platform build_config.mk ./ || die |
173 |
+} |
174 |
+ |
175 |
+src_compile() { |
176 |
+ default |
177 |
+ usex static-libs && emake out-static/lib{leveldb,memenv}.a |
178 |
+ use test && emake static_programs |
179 |
+} |
180 |
+ |
181 |
+src_test() { |
182 |
+ emake check |
183 |
+} |
184 |
+ |
185 |
+src_install() { |
186 |
+ insinto /usr/include |
187 |
+ doins -r include/. |
188 |
+ # This matches the path Debian picked. Upstream provides no guidance. |
189 |
+ insinto /usr/include/leveldb/helpers |
190 |
+ doins helpers/memenv/memenv.h |
191 |
+ |
192 |
+ dolib.so out-shared/libleveldb*$(get_libname)* |
193 |
+ use static-libs && dolib.a out-static/lib{leveldb,memenv}.a |
194 |
+ dolib.so out-shared/libmemenv*$(get_libname)* |
195 |
+} |