Gentoo Archives: gentoo-commits

From: Arthur Zamarin <arthurzam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/leveldb/files/, dev-libs/leveldb/
Date: Fri, 04 Feb 2022 20:49:33
Message-Id: 1644007761.00fc32dea248405068c7bef23904ef8d3e10655d.arthurzam@gentoo
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 +}