summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-arch/snappy/Manifest1
-rw-r--r--app-arch/snappy/files/snappy-1.1.5-0001-cmake-Use-GNUInstallDirs-to-provide-configurable-cor.patch90
-rw-r--r--app-arch/snappy/files/snappy-1.1.5-0002-cmake-Correct-unify-CMake-install-path.patch37
-rw-r--r--app-arch/snappy/files/snappy-1.1.5-0003-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch28
-rw-r--r--app-arch/snappy/snappy-1.1.5.ebuild67
-rw-r--r--profiles/base/package.use.mask6
6 files changed, 229 insertions, 0 deletions
diff --git a/app-arch/snappy/Manifest b/app-arch/snappy/Manifest
index c940200fe45b..23b469f7acc9 100644
--- a/app-arch/snappy/Manifest
+++ b/app-arch/snappy/Manifest
@@ -1,2 +1,3 @@
DIST snappy-1.1.2.tar.gz 1485435 SHA256 f9d8fe1c85494f62dbfa3efe8e73bc23d8dec7a254ff7fe09ec4b0ebfc586af4 SHA512 da0e80528dfc815d765347c60dc5f14bc7fb882cc6894b87d3a43dec1a127cf8bcfe46e6cb93e130790c0ebd67368a1042500d9080f844441803c1b69c3cc07e WHIRLPOOL a9cf520cc578a0a63ebb7fb127428b50d282cdf2448938ad88349f775e21b3dd27f2c6843f86dd749d66e9df5e29094bc5c67032f0219932fec69f882ec91246
DIST snappy-1.1.3.tar.gz 1509026 SHA256 2f1e82adf0868c9e26a5a7a3115111b6da7e432ddbac268a7ca2fae2a247eef3 SHA512 4c4f47c657a072989179be9df0e5e98d14f4a67c27ec7ae0e5a15d14289a75d4e266bc6c5c89723f3e9860408ffcc7138a815f8ad9299407c4a1946fc00ab5bf WHIRLPOOL 97f82d1439973582f0ba3fde43ba2ee2c23b2512e0ee426b9e372fbfbba87921355c1f6bf0bf80671d7c4da26a23d480508cb7a188e414b9cb5d95996bfabe39
+DIST snappy-1.1.5.tar.gz 1128197 SHA256 c67d8d23387b1902ceff134af26e401d5412c510adeeabe6bb6b47c106b08e45 SHA512 99f29f3b4ada0b25692f594a17c0c4b2625fb6c6ffbc875b8dd940fd8080f1e9afdb000c866380f2375246e7b3fbab8521e1bb4d226789798459c628318d571b WHIRLPOOL f0947129ab01bf9545bc5138a5382c555ff1f1b032fe9d53f045ef07ddc79ad0bc2a7fbdd6d058e126b07942c43fa155de2af5070d1df8edbaa677184d63f684
diff --git a/app-arch/snappy/files/snappy-1.1.5-0001-cmake-Use-GNUInstallDirs-to-provide-configurable-cor.patch b/app-arch/snappy/files/snappy-1.1.5-0001-cmake-Use-GNUInstallDirs-to-provide-configurable-cor.patch
new file mode 100644
index 000000000000..468a11618c38
--- /dev/null
+++ b/app-arch/snappy/files/snappy-1.1.5-0001-cmake-Use-GNUInstallDirs-to-provide-configurable-cor.patch
@@ -0,0 +1,90 @@
+From a35f15515db7cdfdee2b7fd04624d1b6c9a8a6bc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 29 Jun 2017 11:12:44 +0200
+Subject: [PATCH 1/3] cmake: Use GNUInstallDirs to provide configurable &
+ correct install dirs
+
+Use the GNUInstallDirs CMake module to provide a standard set of
+variables to control install paths. Otherwise, the package is
+incorrectly installed into 'lib' (instead of 'lib64') on 64-bit systems.
+While this could be solved via providing custom variables for each
+directory, it is simpler to reuse what's already in CMake.
+---
+ CMakeLists.txt | 21 +++++++++------------
+ cmake/SnappyConfig.cmake.in | 8 ++++----
+ 2 files changed, 13 insertions(+), 16 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2c79e46..adda7fa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ INCLUDE(CheckLibraryExists)
+ INCLUDE(CheckCXXSourceCompiles)
+ INCLUDE(TestBigEndian)
+ INCLUDE(CMakePackageConfigHelpers)
++INCLUDE(GNUInstallDirs)
+
+ TEST_BIG_ENDIAN(WORDS_BIG_ENDIAN)
+ IF (WORDS_BIG_ENDIAN)
+@@ -98,32 +99,28 @@ INSTALL(FILES snappy.h
+ snappy-c.h
+ snappy-sinksource.h
+ ${Snappy_BINARY_DIR}/snappy-stubs-public.h
+- DESTINATION include)
++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ INSTALL(TARGETS snappy
+ EXPORT SnappyTargets
+- RUNTIME DESTINATION bin
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
+-INSTALL(EXPORT SnappyTargets NAMESPACE Snappy:: DESTINATION lib/cmake/Snappy)
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++INSTALL(EXPORT SnappyTargets NAMESPACE Snappy:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Snappy)
+
+ SET_TARGET_PROPERTIES(snappy PROPERTIES SOVERSION ${PROJECT_VERSION})
+
+-SET(INCLUDE_INSTALL_DIR include)
+-SET(LIBRARY_INSTALL_DIR lib)
+-SET(BINARY_INSTALL_DIR bin)
+-
+ CONFIGURE_PACKAGE_CONFIG_FILE(cmake/SnappyConfig.cmake.in
+ ${Snappy_BINARY_DIR}/SnappyConfig.cmake
+- INSTALL_DESTINATION lib/Snappy/cmake
+- PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR BINARY_INSTALL_DIR
++ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/Snappy/cmake
++ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_BINDIR
+ )
+
+ WRITE_BASIC_PACKAGE_VERSION_FILE(${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake
+ COMPATIBILITY SameMajorVersion)
+ INSTALL(FILES ${Snappy_BINARY_DIR}/SnappyConfig.cmake
+ ${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake
+- DESTINATION lib/cmake)
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
+
+ ENABLE_TESTING()
+
+diff --git a/cmake/SnappyConfig.cmake.in b/cmake/SnappyConfig.cmake.in
+index 5e604fe..d47656b 100644
+--- a/cmake/SnappyConfig.cmake.in
++++ b/cmake/SnappyConfig.cmake.in
+@@ -2,8 +2,8 @@ set(SNAPPY_VERSION @SNAPPY_MAJOR@.@SNAPPY_MINOR@.@SNAPPY_PATCHLEVEL@)
+
+ @PACKAGE_INIT@
+
+-set_and_check(SNAPPY_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+-set_and_check(SNAPPY_LIBRARY_DIR "@PACKAGE_LIBRARY_INSTALL_DIR@")
+-set_and_check(SNAPPY_BINARY_DIR "@PACKAGE_BINARY_INSTALL_DIR@")
++set_and_check(SNAPPY_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
++set_and_check(SNAPPY_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
++set_and_check(SNAPPY_BINARY_DIR "@PACKAGE_CMAKE_INSTALL_BINDIR@")
+
+-check_required_components(SNAPPY)
+\ No newline at end of file
++check_required_components(SNAPPY)
+--
+2.13.2
+
diff --git a/app-arch/snappy/files/snappy-1.1.5-0002-cmake-Correct-unify-CMake-install-path.patch b/app-arch/snappy/files/snappy-1.1.5-0002-cmake-Correct-unify-CMake-install-path.patch
new file mode 100644
index 000000000000..ab2412757913
--- /dev/null
+++ b/app-arch/snappy/files/snappy-1.1.5-0002-cmake-Correct-unify-CMake-install-path.patch
@@ -0,0 +1,37 @@
+From 0f0ff7be9bd4d2ad2cd7e5c6092b1d0261c09335 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 29 Jun 2017 11:14:37 +0200
+Subject: [PATCH 2/3] cmake: Correct & unify CMake install path
+
+The CMake file is using 'lib/cmake/Snappy', 'lib/Snappy/cmake'
+and 'lib/cmake' inconsistently. Replace all of them with a single
+'lib/cmake/Snappy' that matches most of standard CMake packages.
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index adda7fa..b88cb20 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -112,7 +112,7 @@ SET_TARGET_PROPERTIES(snappy PROPERTIES SOVERSION ${PROJECT_VERSION})
+
+ CONFIGURE_PACKAGE_CONFIG_FILE(cmake/SnappyConfig.cmake.in
+ ${Snappy_BINARY_DIR}/SnappyConfig.cmake
+- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/Snappy/cmake
++ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Snappy
+ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_BINDIR
+ )
+
+@@ -120,7 +120,7 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake
+ COMPATIBILITY SameMajorVersion)
+ INSTALL(FILES ${Snappy_BINARY_DIR}/SnappyConfig.cmake
+ ${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Snappy)
+
+ ENABLE_TESTING()
+
+--
+2.13.2
+
diff --git a/app-arch/snappy/files/snappy-1.1.5-0003-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch b/app-arch/snappy/files/snappy-1.1.5-0003-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
new file mode 100644
index 000000000000..3d7d8fcb59d3
--- /dev/null
+++ b/app-arch/snappy/files/snappy-1.1.5-0003-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
@@ -0,0 +1,28 @@
+From 57b13b68466e2ac81d8faa2c92f55e629a3184f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 29 Jun 2017 10:01:37 +0200
+Subject: [PATCH 3/3] cmake: Add missing linking to GTEST_LIBRARIES
+
+Since the snappy_unittest target uses gtest routines (when available),
+it needs to link to gtest explicitly. Otherwise, the build fails due
+to unavailable gtest symbols.
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b88cb20..bbe4d38 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -143,7 +143,7 @@ ENDIF (HAVE_LIBQUICKLZ)
+ ADD_EXECUTABLE(snappy-unittest snappy_unittest.cc snappy-test.cc)
+ TARGET_COMPILE_DEFINITIONS(snappy-unittest PRIVATE -DHAVE_CONFIG_H)
+ TARGET_LINK_LIBRARIES(snappy-unittest snappy ${COMPRESSION_LIBS}
+- ${GFLAGS_LIBRARIES})
++ ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES})
+ TARGET_INCLUDE_DIRECTORIES(snappy-unittest BEFORE PRIVATE ${Snappy_SOURCE_DIR}
+ ${GTEST_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS})
+
+--
+2.13.2
+
diff --git a/app-arch/snappy/snappy-1.1.5.ebuild b/app-arch/snappy/snappy-1.1.5.ebuild
new file mode 100644
index 000000000000..d1daec39ebb8
--- /dev/null
+++ b/app-arch/snappy/snappy-1.1.5.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit cmake-multilib
+
+DESCRIPTION="A high-speed compression/decompression library by Google"
+HOMEPAGE="https://github.com/google/snappy"
+SRC_URI="https://github.com/google/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+# matches SONAME...
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+IUSE="static-libs test"
+# upstream killed static lib support with build system update
+# (and we have packages depending on the flag)
+REQUIRED_USE="!static-libs"
+
+# all test dependencies are optional:
+# - gflags-2.2 is supposedly needed for command-line option parsing
+# but it's a huge hack and does not work,
+# - gtest probably gives nicer output,
+# - compression libraries are used for benchmarks which we do not run.
+DEPEND="test? ( dev-cpp/gtest )"
+
+# AUTHORS is useless, ChangeLog is stale
+DOCS=( format_description.txt framing_format.txt NEWS README.md )
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}"/snappy-1.1.5-0001-cmake-Use-GNUInstallDirs-to-provide-configurable-cor.patch
+ "${FILESDIR}"/snappy-1.1.5-0002-cmake-Correct-unify-CMake-install-path.patch
+ "${FILESDIR}"/snappy-1.1.5-0003-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
+ )
+
+ # command-line option parsing does not work at all, so just force
+ # it off
+ sed -i -e '/run_microbenchmarks/s:true:false:' snappy-test.cc || die
+
+ default
+}
+
+multilib_src_configure() {
+ # TODO: would be nice to make unittest build conditional
+ # but it is not a priority right now
+ local mycmakeargs=(
+ # use gtest for tests only
+ -DCMAKE_DISABLE_FIND_PACKAGE_GTest=$(usex '!test')
+ # gflags does not work anyway
+ -DCMAKE_DISABLE_FIND_PACKAGE_Gflags=ON
+
+ # we do not want to run benchmarks, and those are only used
+ # for benchmarks
+ -DHAVE_LIBZ=NO
+ -DHAVE_LIBLZO2=NO
+ -DHAVE_LIBLZF=NO
+ -DHAVE_LIBQUICKLZ=NO
+ )
+ cmake-utils_src_configure
+}
+
+multilib_src_test() {
+ # run tests directly to get verbose output
+ cd "${S}" || die
+ "${BUILD_DIR}"/snappy-unittest || die
+}
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index f27ae607f2f6..6fc52ac8f257 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -7,6 +7,12 @@
# This file is only for generic masks. For arch-specific masks (i.e.
# mask everywhere, unmask on arch/*) use arch/base.
+# Michał Górny <mgorny@gentoo.org> (29 Jun 2017)
+# Upstream switched to CMake and no longer provides option to build
+# static and shared libs. The flag is preserved not to break USE
+# depenencies.
+>=app-arch/snappy-1.1.5 static-libs
+
# Ilya Tumaykin <itumaykin+gentoo@gmail.com> (18 Jun 2017)
# Libav is basically unsupported by mpv, see upstream issues 3923, 3925.
# Needs patch to even build, subs are broken and not supported anymore.