media-libs/libgroove: new ebuild github/pr/22
authorDiogo Pereira <sir.suriv@gmail.com>
Wed, 19 Aug 2015 18:37:06 +0000 (19:37 +0100)
committerDiogo Pereira <sir.suriv@gmail.com>
Thu, 20 Aug 2015 20:58:46 +0000 (21:58 +0100)
Gentoo-Bug: 558190

media-libs/libgroove/Manifest [new file with mode: 0644]
media-libs/libgroove/files/libgroove-4.3.0_GNUInstallDirs.patch [new file with mode: 0644]
media-libs/libgroove/files/libgroove-4.3.0_cflags.patch [new file with mode: 0644]
media-libs/libgroove/libgroove-4.3.0.ebuild [new file with mode: 0644]
media-libs/libgroove/metadata.xml [new file with mode: 0644]

diff --git a/media-libs/libgroove/Manifest b/media-libs/libgroove/Manifest
new file mode 100644 (file)
index 0000000..b465c45
--- /dev/null
@@ -0,0 +1 @@
+DIST libgroove-4.3.0.tar.gz 48857 SHA256 76f68896f078a9613d420339ef887ca8293884ad2cd0fbc031d89a6af2993636 SHA512 30d75a3b1b3efa9b33687bb146648b66f8f4c718551c0db2c24c0259f09cf355a7c7bbac40d60d7a97bbbd7f83401d09464c6ac2b18cdfcd6198220cefc8a705 WHIRLPOOL 4040769723e7891b285318d538cf628203289aca7f7a655855716fe450f58712cd64b2fdc2abbd316bef6f80bf6b65ae6620b9ac339b3ebd5c7e091a36129040
diff --git a/media-libs/libgroove/files/libgroove-4.3.0_GNUInstallDirs.patch b/media-libs/libgroove/files/libgroove-4.3.0_GNUInstallDirs.patch
new file mode 100644 (file)
index 0000000..a4e77b8
--- /dev/null
@@ -0,0 +1,105 @@
+From 8b741249fc17d7cf7d72a702fcdf7f07870b0b27 Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@hasufell.de>
+Date: Thu, 20 Aug 2015 14:30:16 +0200
+Subject: [PATCH] CMake: make installation directories more configurable
+
+We use GNUInstallDirs now to be able to control the following variables:
+  CMAKE_INSTALL_LIBDIR
+  CMAKE_INSTALL_INCLUDEDIR
+
+This fixes support for distribution that have a multi-arch setup.
+Also see https://github.com/gentoo/gentoo/pull/22
+---
+ CMakeLists.txt | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f2029eb..49e150e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,6 @@
+-cmake_minimum_required(VERSION 2.8)
++cmake_minimum_required(VERSION 2.8.5)
++
++include(GNUInstallDirs)
+ if(NOT CMAKE_BUILD_TYPE)
+     set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
+@@ -157,7 +159,7 @@ add_library(groove_static STATIC ${LIBGROOVE_SOURCES} ${LIBGROOVE_HEADERS})
+ set_target_properties(groove_static PROPERTIES
+   OUTPUT_NAME groove
+   COMPILE_FLAGS "${LIB_CFLAGS} -fPIC")
+-install(TARGETS groove_static DESTINATION lib)
++install(TARGETS groove_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES
+@@ -165,7 +167,7 @@ install(FILES
+   "groove/queue.h"
+   "groove/encoder.h"
+   DESTINATION "include/groove")
+-install(TARGETS groove DESTINATION lib)
++install(TARGETS groove DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ add_executable(metadata example/metadata.c)
+ set_target_properties(metadata PROPERTIES
+@@ -207,8 +209,8 @@ else()
+   target_link_libraries(grooveplayer LINK_PRIVATE ${SDL2_LIBRARY})
+   include_directories(${SDL2_INCLUDE_DIR})
+-  install(FILES "grooveplayer/player.h" DESTINATION "include/grooveplayer")
+-  install(TARGETS grooveplayer DESTINATION lib)
++  install(FILES "grooveplayer/player.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/grooveplayer")
++  install(TARGETS grooveplayer DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_library(grooveplayer_static STATIC
+     ${LIBGROOVE_PLAYER_SOURCES}
+@@ -216,7 +218,7 @@ else()
+   set_target_properties(grooveplayer_static PROPERTIES
+     OUTPUT_NAME grooveplayer
+     COMPILE_FLAGS "${LIB_CFLAGS} -fPIC")
+-  install(TARGETS grooveplayer_static DESTINATION lib)
++  install(TARGETS grooveplayer_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_executable(playlist example/playlist.c ${PROJECT_SOURCE_DIR}/grooveplayer/player.h)
+@@ -242,8 +244,8 @@ else()
+   target_link_libraries(grooveloudness LINK_PRIVATE ${EBUR128_LIBRARY})
+   include_directories(${EBUR128_INCLUDE_DIR})
+-  install(FILES "grooveloudness/loudness.h" DESTINATION "include/grooveloudness")
+-  install(TARGETS grooveloudness DESTINATION lib)
++  install(FILES "grooveloudness/loudness.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/grooveloudness")
++  install(TARGETS grooveloudness DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_library(grooveloudness_static STATIC
+@@ -252,7 +254,7 @@ else()
+   set_target_properties(grooveloudness_static PROPERTIES
+     OUTPUT_NAME grooveloudness
+     COMPILE_FLAGS "${LIB_CFLAGS} -fPIC")
+-  install(TARGETS grooveloudness_static DESTINATION lib)
++  install(TARGETS grooveloudness_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_executable(replaygain example/replaygain.c)
+@@ -278,8 +280,8 @@ else()
+   target_link_libraries(groovefingerprinter LINK_PRIVATE ${CHROMAPRINT_LIBRARY})
+   include_directories(${CHROMAPRINT_INCLUDE_DIR})
+-  install(FILES "groovefingerprinter/fingerprinter.h" DESTINATION "include/groovefingerprinter")
+-  install(TARGETS groovefingerprinter DESTINATION lib)
++  install(FILES "groovefingerprinter/fingerprinter.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/groovefingerprinter")
++  install(TARGETS groovefingerprinter DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_library(groovefingerprinter_static STATIC
+@@ -288,7 +290,7 @@ else()
+   set_target_properties(groovefingerprinter_static PROPERTIES
+     OUTPUT_NAME groovefingerprinter
+     COMPILE_FLAGS "${LIB_CFLAGS} -fPIC")
+-  install(TARGETS groovefingerprinter_static DESTINATION lib)
++  install(TARGETS groovefingerprinter_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+   add_executable(fingerprint example/fingerprint.c)
diff --git a/media-libs/libgroove/files/libgroove-4.3.0_cflags.patch b/media-libs/libgroove/files/libgroove-4.3.0_cflags.patch
new file mode 100644 (file)
index 0000000..c7d21cb
--- /dev/null
@@ -0,0 +1,43 @@
+From e5af72acd284db1ee2b79aeeb06714770d1ad5c3 Mon Sep 17 00:00:00 2001
+From: Diogo Pereira <sir.suriv@gmail.com>
+Date: Thu, 20 Aug 2015 15:05:25 +0100
+Subject: [PATCH] Remove -Werror, -pedantic and -g from CFLAGS
+
+Based on upstream commits:
+0b619fa build: -Werror and -pedantic in debug mode only
+856c260 build: remove redundant -Werror and -pedantic
+
+https://github.com/andrewrk/libgroove/compare/44aa5db96cfe45e56fa1f7d762fb032ca178a35c...856c26013e4356d4fc078da980083bc4d002771d
+---
+ CMakeLists.txt | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a1e8541..14aca44 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -135,8 +135,11 @@ configure_file (
+   "${PROJECT_BINARY_DIR}/config.h"
+   )
+-set(LIB_CFLAGS "${C99_C_FLAGS} -pedantic -Werror -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L")
+-set(EXAMPLE_CFLAGS "${C99_C_FLAGS} -pedantic -Werror -Wall -g")
++set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wno-unused-variable")
++set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror -pedantic")
++
++set(LIB_CFLAGS "-std=c99 -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L")
++set(EXAMPLE_CFLAGS "-std=c99 -Wall")
+ set(EXAMPLE_INCLUDES "${PROJECT_SOURCE_DIR}")
+ add_library(groove SHARED ${LIBGROOVE_SOURCES} ${LIBGROOVE_HEADERS})
+@@ -306,6 +309,7 @@ message("\n"
+ "Installation Summary\n"
+ "--------------------\n"
+ "* Install Directory            : ${CMAKE_INSTALL_PREFIX}\n"
++"* Build Type                   : ${CMAKE_BUILD_TYPE}\n"
+ "* Build libgroove              : ${LIBGROOVE_STATUS}\n"
+ "* Build libgrooveplayer        : ${LIBGROOVE_PLAYER_STATUS}\n"
+ "* Build libgrooveloudness      : ${LIBGROOVE_LOUDNESS_STATUS}\n"
+-- 
+2.5.0
+
diff --git a/media-libs/libgroove/libgroove-4.3.0.ebuild b/media-libs/libgroove/libgroove-4.3.0.ebuild
new file mode 100644 (file)
index 0000000..ed9f0fe
--- /dev/null
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib cmake-utils
+
+DESCRIPTION="Streaming audio processing library."
+HOMEPAGE="https://github.com/andrewrk/libgroove"
+SRC_URI="https://github.com/andrewrk/libgroove/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+KEYWORDS="~amd64"
+IUSE="+chromaprint libav +loudness +sound static-libs"
+
+DEPEND="libav? ( media-video/libav )
+       !libav? ( media-video/ffmpeg )
+       chromaprint? ( media-libs/chromaprint )
+       loudness? ( media-libs/libebur128[speex] )
+       sound? ( media-libs/libsdl2[sound] )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}_cflags.patch"
+       "${FILESDIR}/${P}_GNUInstallDirs.patch" )
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake-utils_use_disable chromaprint FINGERPRINTER)
+               $(cmake-utils_use_disable loudness LOUDNESS)
+               $(cmake-utils_use_disable sound PLAYER)
+       )
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+
+       if ! use static-libs ; then
+               rm "${ED%/}"/usr/$(get_libdir)/*.a || die "failed to remove static libs"
+       fi
+}
diff --git a/media-libs/libgroove/metadata.xml b/media-libs/libgroove/metadata.xml
new file mode 100644 (file)
index 0000000..f0312cc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+       <email>sir.suriv@gmail.com</email>
+       <name>Diogo Pereira</name>
+       <description>Proxy maintainer. Assign bugs to him.</description>
+</maintainer>
+<longdescription lang="en">
+       This library provides decoding and encoding of audio on a playlist. It is intended to be used as a backend for music player applications. That said, it is also generic enough to be used as a backend for any streaming audio processing utility.
+</longdescription>
+<use>
+       <flag name='chromaprint'>Enable audio fingerprinting using <pkg>media-libs/chromaprint</pkg>.</flag>
+       <flag name='loudness'>Enable loudness detection according to the EBU R128 standard using <pkg>media-libs/libebur128</pkg>.</flag>
+       <flag name='sound'>Enable audio playing.</flag>
+</use>
+<upstream>
+       <maintainer status="active">
+               <email>superjoe30@gmail.com</email>
+               <name>Andrew Kelley</name>
+       </maintainer>
+       <remote-id type="github">andrewrk/libgroove</remote-id>
+</upstream>
+</pkgmetadata>