media-libs/zita-resampler: new package
authorAlexander Tsoy <alexander@tsoy.me>
Mon, 15 Apr 2019 21:22:22 +0000 (00:22 +0300)
committerGeorgy Yakovlev <gyakovlev@gentoo.org>
Sun, 21 Apr 2019 05:01:25 +0000 (22:01 -0700)
Libzita-resampler is a C++ library for resampling audio signals.
It is designed to be used within a real-time processing context,
to be fast, and to provide high-quality sample rate conversion.

Dependency of media-sound/guitarix

Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Package-Manager: Portage-2.3.62, Repoman-2.3.11
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
media-libs/zita-resampler/Manifest [new file with mode: 0644]
media-libs/zita-resampler/files/zita-resampler-1.6.2-makefile.patch [new file with mode: 0644]
media-libs/zita-resampler/metadata.xml [new file with mode: 0644]
media-libs/zita-resampler/zita-resampler-1.6.2.ebuild [new file with mode: 0644]

diff --git a/media-libs/zita-resampler/Manifest b/media-libs/zita-resampler/Manifest
new file mode 100644 (file)
index 0000000..60d50f6
--- /dev/null
@@ -0,0 +1 @@
+DIST zita-resampler-1.6.2.tar.bz2 125539 BLAKE2B d2e04fb5e0efbde3432ce973df59a11d2a184146d124b662712a5de2d9c243f6564899f190f7a7b68a9e01bcaab05c92b91ebcbf942473134a12a85e4e08c603 SHA512 d547419dd222c8a399d8f196efa1ec88a3f781275b696ae2fe1bb6e2fc329285affb8aace85972c304ad256becc4a155534dd5ef4ce3c57cbc9dcca0122b670c
diff --git a/media-libs/zita-resampler/files/zita-resampler-1.6.2-makefile.patch b/media-libs/zita-resampler/files/zita-resampler-1.6.2-makefile.patch
new file mode 100644 (file)
index 0000000..29735e7
--- /dev/null
@@ -0,0 +1,90 @@
+diff -urN zita-resampler-1.6.2.orig/apps/Makefile zita-resampler-1.6.2/apps/Makefile
+--- zita-resampler-1.6.2.orig/apps/Makefile    2018-08-24 21:41:47.000000000 +0300
++++ zita-resampler-1.6.2/apps/Makefile 2019-04-13 18:49:50.005800712 +0300
+@@ -23,18 +23,17 @@
+ MANDIR ?= /usr/share/man/man1
+ VERSION = 1.6.0
+-CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\"
+-CXXFLAGS += -O2  -ffast-math -Wall
+-CXXFLAGS += -march=native
++CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\" -I ../source
++CXXFLAGS += -ffast-math -Wall
+-all:  zresample zretune zresample.1.gz zretune.1.gz
++all:  zresample zretune zresample.1 zretune.1
+ ZRESAMPLE_O = zresample.o audiofile.o dither.o
+ zresample:    LDLIBS += -lzita-resampler -lsndfile -lrt
+ zresample:    $(ZRESAMPLE_O)
+-      $(CXX) $(LDFLAGS) -o $@ $(ZRESAMPLE_O) $(LDLIBS)
++      $(CXX) -L ../source $(LDFLAGS) -o $@ $(ZRESAMPLE_O) $(LDLIBS)
+ $(ZRESAMPLE_O):
+ -include $(ZRESAMPLE_O:%.o=%.d)
+@@ -42,25 +41,18 @@
+ ZRETUNE_O = zretune.o audiofile.o dither.o
+ zretune:      LDLIBS += -lzita-resampler -lsndfile -lrt
+ zretune:      $(ZRETUNE_O)
+-      $(CXX) $(LDFLAGS) -o $@ $(ZRETUNE_O) $(LDLIBS)
++      $(CXX) -L ../source $(LDFLAGS) -o $@ $(ZRETUNE_O) $(LDLIBS)
+ $(ZRETUNE_O):
+ -include $(ZRETUNE_O:%.o=%.d)
+-zresample.1.gz:       zresample.1
+-      gzip -c zresample.1 > zresample.1.gz
+-
+-zretune.1.gz: zretune.1
+-      gzip -c zretune.1 > zretune.1.gz
+-
+-
+ install:      all
+-      install -d $(BINDIR)
+-      install -d $(MANDIR)
++      install -d $(DESTDIR)$(BINDIR)
++      install -d $(DESTDIR)$(MANDIR)
+       install -m 755 zresample $(DESTDIR)$(BINDIR)
+       install -m 755 zretune $(DESTDIR)$(BINDIR)
+-      install -m 644 zresample.1.gz $(DESTDIR)$(MANDIR)
+-      install -m 644 zretune.1.gz $(DESTDIR)$(MANDIR)
++      install -m 644 zresample.1 $(DESTDIR)$(MANDIR)
++      install -m 644 zretune.1 $(DESTDIR)$(MANDIR)
+ uninstall: 
+       /bin/rm -f $(DESTDIR)$(BINDIR)/zresample
+diff -urN zita-resampler-1.6.2.orig/source/Makefile zita-resampler-1.6.2/source/Makefile
+--- zita-resampler-1.6.2.orig/source/Makefile  2018-08-24 21:41:47.000000000 +0300
++++ zita-resampler-1.6.2/source/Makefile       2019-04-13 18:49:25.936129640 +0300
+@@ -32,8 +32,7 @@
+ CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
+-CXXFLAGS += -Wall -fPIC -O2 -ffast-math
+-CXXFLAGS += -march=native
++CXXFLAGS += -Wall -fPIC -ffast-math
+ LDFLAGS += 
+ LDLIBS +=
+@@ -47,6 +46,9 @@
+       zita-resampler/vresampler.h zita-resampler/cresampler.h
++$(ZITA-RESAMPLER_SO): $(ZITA-RESAMPLER_MIN)
++      ln -sf $(ZITA-RESAMPLER_MIN) $(ZITA-RESAMPLER_SO)
++
+ $(ZITA-RESAMPLER_MIN): $(ZITA-RESAMPLER_O)
+       $(CXX) -shared $(LDFLAGS) -Wl,-soname,$(ZITA-RESAMPLER_MAJ) -o $(ZITA-RESAMPLER_MIN) $(ZITA-RESAMPLER_O) $(ZITA-RESAMPLER_DEP)
+@@ -58,8 +60,8 @@
+       install -d $(DESTDIR)$(LIBDIR)
+       install -m 644 $(ZITA-RESAMPLER_H)   $(DESTDIR)$(INCDIR)/zita-resampler
+       install -m 755 $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)
+-      ldconfig
+       ln -sf $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-RESAMPLER_SO)
++      ln -sf $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-RESAMPLER_MAJ)
+ uninstall:
+       /bin/rm -rf $(DESTDIR)$(INCDIR)/zita-resampler
diff --git a/media-libs/zita-resampler/metadata.xml b/media-libs/zita-resampler/metadata.xml
new file mode 100644 (file)
index 0000000..d939c60
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer type="person">
+               <email>alexander@tsoy.me</email>
+               <name>Alexander Tsoy</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>proxy-maint@gentoo.org</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
+       <longdescription lang="en">
+               Libzita-resampler is a C++ library for resampling audio signals.
+               It is designed to be used within a real-time processing context,
+               to be fast, and to provide high-quality sample rate conversion.
+       </longdescription>
+       <use>
+               <flag name="tools">Install zresample and zretune tools</flag>
+       </use>
+</pkgmetadata>
diff --git a/media-libs/zita-resampler/zita-resampler-1.6.2.ebuild b/media-libs/zita-resampler/zita-resampler-1.6.2.ebuild
new file mode 100644 (file)
index 0000000..754fa1d
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="C++ library for real-time resampling of audio signals"
+HOMEPAGE="http://kokkinizita.linuxaudio.org/linuxaudio/"
+SRC_URI="http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0/1"
+KEYWORDS="~amd64"
+IUSE="tools"
+
+RDEPEND="tools? ( media-libs/libsndfile )"
+DEPEND="${RDEPEND}"
+BDEPEND=""
+
+HTML_DOCS="docs/."
+
+PATCHES=( "${FILESDIR}"/${PN}-1.6.2-makefile.patch )
+
+src_compile() {
+       tc-export CXX
+
+       emake -C source
+       if use tools; then
+               emake -C apps
+       fi
+}
+
+src_install() {
+       emake -C source DESTDIR="${D}" PREFIX="${EPREFIX}/usr" LIBDIR="${EPREFIX}"/usr/$(get_libdir) install
+       if use tools; then
+               emake -C apps DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+       fi
+
+       einstalldocs
+}