Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (1e028da2a80cc9b8d112342d6b6ddfea5603e8b0)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Treeve Jelbert <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (1e028da2a80cc9b8d112342d6b6ddfea5603e8b0)
  • Date: Fri, 11 Apr 2014 10:54:52 -0500

GIT changes to devel-xorg-modular grimoire by Treeve Jelbert
<treeve AT sourcemage.org>:

ChangeLog | 13
FUNCTIONS | 9
archive-libs/zlib/DETAILS | 6
archive-libs/zlib/HISTORY | 3
archive/upx/0001-use-system-ucl.patch | 29
archive/upx/BUILD | 17
archive/upx/DEPENDS | 3
archive/upx/DETAILS | 13
archive/upx/HISTORY | 6
archive/upx/INSTALL | 2
archive/upx/PRE_BUILD | 9
audio-creation/ardour3/BUILD | 3
audio-creation/ardour3/DETAILS | 6
audio-creation/ardour3/HISTORY | 4
audio-creation/jack-rack/BUILD | 1
audio-creation/jack-rack/DETAILS | 2
audio-creation/jack-rack/HISTORY | 4
audio-drivers/ngjackspa/HISTORY | 3
audio-drivers/ngjackspa/INSTALL | 3
audio-libs/aubio/0001-disable-tests.patch | 24
audio-libs/aubio/BUILD | 1
audio-libs/aubio/DEPENDS | 20
audio-libs/aubio/DETAILS | 6
audio-libs/aubio/HISTORY | 6
audio-libs/aubio/INSTALL | 1
audio-libs/aubio/PRE_BUILD | 3
audio-libs/liblo/DETAILS | 6
audio-libs/liblo/HISTORY | 3
audio-libs/taglib/DETAILS | 6
audio-libs/taglib/HISTORY | 4
audio-players/cantata/DETAILS | 6
audio-players/cantata/HISTORY | 3
audio-players/deadbeef/DETAILS | 53
audio-players/deadbeef/HISTORY | 3
audio-players/mpd/DETAILS | 4
audio-players/mpd/HISTORY | 3
audio-plugins/rt-plugins/0003-switch-build-system-to-cmake.patch | 6136
++++++++++
audio-plugins/rt-plugins/BUILD | 2
audio-plugins/rt-plugins/DEPENDS | 3
audio-plugins/rt-plugins/HISTORY | 10
audio-plugins/rt-plugins/INSTALL | 1
audio-plugins/rt-plugins/PRE_BUILD | 3
audio-soft/meterbridge/DEPENDS | 4
audio-soft/meterbridge/HISTORY | 7
audio-soft/meterbridge/PRE_BUILD | 23
audio-soft/meterbridge/binutils_gold.patch | 15
audio-soft/meterbridge/main.h.patch | 19
audio-soft/meterbridge/meterbridge_0.9.2_iec_fix.patch | 20
chat-irc/znc/DETAILS | 4
chat-irc/znc/HISTORY | 3
crypto/ca-certificates/DETAILS | 4
crypto/ca-certificates/HISTORY | 3
crypto/loop-aes/DETAILS | 2
crypto/loop-aes/HISTORY | 3
crypto/openssl/DETAILS | 4
crypto/openssl/HISTORY | 4
crypto/openssl/openssl.gpg |binary
database/mariadb/BUILD | 72
database/mariadb/CONFIGURE | 185
database/mariadb/DEPENDS | 96
database/mariadb/DETAILS | 3
database/mariadb/FINAL | 3
database/mariadb/HISTORY | 17
database/mariadb/INSTALL | 18
database/mariadb/PREPARE | 4
database/mariadb/PRE_BUILD | 16
database/mariadb/PRE_SUB_DEPENDS | 20
database/mariadb/REPAIR^all^PRE_SUB_DEPENDS | 20
database/mariadb/SUB_DEPENDS | 45
database/mariadb/UP_TRIGGERS | 22
database/mongodb/BUILD | 18
database/mongodb/CONFIGURE | 11
database/mongodb/DEPENDS | 21
database/mongodb/DETAILS | 7
database/mongodb/FINAL | 5
database/mongodb/HISTORY | 14
database/mongodb/INSTALL | 5
database/mongodb/PRE_BUILD | 5
database/mongodb/fips.patch | 21
database/mongodb/init.d/mongodb | 7
database/mongodb/init.d/mongodb.conf | 4
database/mongodb/init.d/mongos | 21
database/mongodb/scons.patch | 28
database/redis/DETAILS | 6
database/redis/HISTORY | 3
database/sqlite/DETAILS | 6
database/sqlite/HISTORY | 6
database/tdb/DEPENDS | 5
database/tdb/DETAILS | 4
database/tdb/HISTORY | 4
dev/null |binary
devel/copper/DETAILS | 1
devel/copper/HISTORY | 4
devel/copper/INSTALL | 5
devel/flex/DETAILS | 6
devel/flex/HISTORY | 3
devel/git/DETAILS | 20
devel/git/HISTORY | 4
devel/libunwind/BUILD | 2
devel/libunwind/DETAILS | 5
devel/libunwind/HISTORY | 5
devel/xmlto/DETAILS | 6
devel/xmlto/HISTORY | 3
disk/gummiboot/CONFLICTS | 1
disk/gummiboot/DETAILS | 2
disk/gummiboot/HISTORY | 4
doc/docx2txt/DETAILS | 4
doc/docx2txt/HISTORY | 3
editors/code-browser/DETAILS | 2
editors/code-browser/HISTORY | 3
editors/code-browser/code-browser-4.9-src.tar.gz.sig |binary
gnome2-libs/at-spi2-core/DETAILS | 4
gnome2-libs/at-spi2-core/HISTORY | 3
gnu.gpg |binary
graphics-libs/libjpeg-turbo/DETAILS | 4
graphics-libs/libjpeg-turbo/HISTORY | 3
graphics/fontforge/BUILD | 3
graphics/fontforge/DETAILS | 4
graphics/fontforge/HISTORY | 6
graphics/fontforge/PRE_BUILD | 2
graphics/fontforge/fontforge_python.patch | 12
graphics/lcms2/DETAILS | 4
graphics/lcms2/HISTORY | 3
graphics/leptonica/DETAILS | 8
graphics/leptonica/HISTORY | 4
haskell/haskell-git-annex/DETAILS | 4
haskell/haskell-git-annex/HISTORY | 6
http/apache22/DETAILS | 4
http/apache22/HISTORY | 4
http/midori/DETAILS | 4
http/midori/HISTORY | 4
http/midori/PRE_BUILD | 4
kernels/linux/HISTORY | 4
kernels/linux/info/patches/maintenance_patches_3/patch-3.13.9 | 5
kernels/linux/latest.defaults | 2
libs/cdk/DETAILS | 4
libs/cdk/HISTORY | 3
libs/gettext/DETAILS | 2
libs/gettext/HISTORY | 3
libs/gmp/DETAILS | 5
libs/gmp/HISTORY | 3
libs/google-perftools/DEPENDS | 2
libs/google-perftools/DETAILS | 13
libs/google-perftools/HISTORY | 7
libs/libtcod/0001-fix-installation-destination.patch | 39
libs/libtcod/BUILD | 2
libs/libtcod/DEPENDS | 2
libs/libtcod/DETAILS | 16
libs/libtcod/HISTORY | 4
libs/libtcod/INSTALL | 7
libs/libtcod/PRE_BUILD | 4
libs/libusb/DEPENDS | 2
libs/libusb/HISTORY | 3
libs/libverto/DETAILS | 4
libs/libverto/HISTORY | 3
libs/newt/DETAILS | 4
libs/newt/HISTORY | 3
libs/pcre/DETAILS | 2
libs/pcre/HISTORY | 3
libs/raptor/DETAILS | 2
libs/raptor/HISTORY | 3
mail/bogofilter/CONFIGURE | 2
mail/bogofilter/DETAILS | 4
mail/bogofilter/HISTORY | 4
mail/postfix/DETAILS | 2
mail/postfix/HISTORY | 3
mail/sylpheed/DETAILS | 2
mail/sylpheed/HISTORY | 6
net/bmon/DEPENDS | 7
net/bmon/DETAILS | 8
net/bmon/HISTORY | 7
net/bmon/PRE_BUILD | 2
net/bmon/bmon-2.1.0-gcc4.diff | 22
net/dhcpcd/DETAILS | 4
net/dhcpcd/HISTORY | 3
net/monit/DETAILS | 4
net/monit/HISTORY | 3
net/samba/BUILD | 3
net/samba/DEPENDS | 1
net/samba/DETAILS | 6
net/samba/HISTORY | 5
perl-cpan/perl-error/DETAILS | 6
perl-cpan/perl-error/HISTORY | 3
printer/cups-filters/DETAILS | 4
printer/cups-filters/HISTORY | 6
python-pypi/alembic/DETAILS | 4
python-pypi/alembic/HISTORY | 3
python-pypi/bsddb3/DETAILS | 4
python-pypi/bsddb3/HISTORY | 4
python-pypi/formencode/DEPENDS | 3
python-pypi/formencode/DETAILS | 6
python-pypi/formencode/HISTORY | 4
python-pypi/lxml/DETAILS | 2
python-pypi/lxml/HISTORY | 3
python-pypi/mercurial/DETAILS | 4
python-pypi/mercurial/HISTORY | 3
python-pypi/pillow/DETAILS | 4
python-pypi/pillow/HISTORY | 3
python-pypi/pip/DEPENDS | 2
python-pypi/pip/DETAILS | 16
python-pypi/pip/HISTORY | 2
python-pypi/pyicu/DETAILS | 4
python-pypi/pyicu/HISTORY | 3
python-pypi/setuptools/DETAILS | 4
python-pypi/setuptools/HISTORY | 3
python-pypi/sqlalchemy/DETAILS | 4
python-pypi/sqlalchemy/HISTORY | 3
python-pypi/virtualenv/DEPENDS | 2
python-pypi/virtualenv/DETAILS | 4
python-pypi/virtualenv/HISTORY | 4
shell-term-fm/mc/DETAILS | 6
shell-term-fm/mc/HISTORY | 4
shell-term-fm/mc/PRE_BUILD | 3
shell-term-fm/mc/mc-4.8.11-ncurses_build_fix.patch | 38
shell-term-fm/spacefm/DEPENDS | 2
shell-term-fm/spacefm/DETAILS | 4
shell-term-fm/spacefm/HISTORY | 6
utils/desktop-file-utils/DETAILS | 4
utils/desktop-file-utils/HISTORY | 3
utils/grep/DETAILS | 2
utils/grep/HISTORY | 3
utils/gstpw/DEPENDS | 1
utils/gstpw/DETAILS | 13
utils/gstpw/HISTORY | 2
utils/hal/DEPENDS | 2
utils/hal/HISTORY | 3
utils/syslog-ng/DETAILS | 4
utils/syslog-ng/HISTORY | 3
video-libs/gst-plugins-base/DEPENDS | 3
video-libs/gst-plugins-base/HISTORY | 3
video-libs/libdvdnav/DETAILS | 6
video-libs/libdvdnav/HISTORY | 3
video-libs/libdvdread/DETAILS | 6
video-libs/libdvdread/HISTORY | 3
video/mpv/BUILD | 7
video/mpv/CONFIGURE | 6
video/mpv/DEPENDS | 47
video/mpv/DETAILS | 4
video/mpv/HISTORY | 8
video/mpv/INSTALL | 2
video/mpv/PRE_BUILD | 3
x11/unclutter/DEPENDS | 3
x11/unclutter/DETAILS | 4
x11/unclutter/HISTORY | 4
xfce/ristretto/DEPENDS | 4
xfce/ristretto/HISTORY | 3
246 files changed, 7494 insertions(+), 552 deletions(-)

New commits:
commit 99df1294b280d7b470252227458055ecc68ed868
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

syslog-ng: => 3.5.4.1

commit 507d44df00f469f4143fba6f61d6d284239beac3
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

dhcpcd: => 6.3.2

commit 05d5eaaca5faa1417d2b44dc3edc432a6e7782a6
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

formencode: => 1.3.0a1

commit dbb5129317c09a7ca772ac9c8120e3fc8370ff8c
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

libdvdnav: => 4.2.1

commit 41f666aaa26cbde2bb0f648e5dab4606ecfbce6a
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

libdvdread: => 4.2.1

commit f540f49eaf12379ef34bc5b6ed063470a1126904
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

perl-error: => 0.17022

commit 9451057532660936f640d178d886c5189bd6b632
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

xmlto: => 0.0.26

commit cdb186c4778176a21b6151f3b55c633e8aa6a5f5
Author: Ladislav Hagara <hgr AT vabo.cz>
Commit: Ladislav Hagara <hgr AT vabo.cz>

libjpeg-turbo 1.3.1

commit 0d13d4d854ef35ac6a3ef78685d6d2530fc46972
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

cups-filters: => 1.0.52

commit 5bf9ad2bb302abfbd7d2fe8521ba583811b68d54
Author: Ladislav Hagara <hgr AT vabo.cz>
Commit: Ladislav Hagara <hgr AT vabo.cz>

midori 0.5.8

commit 92840431c6e685e295d99f3b02889a1b7a6047b5
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

ca-certificates: => 20140325

commit 198560b0d0968586d3afc30bf8f6711d92d0af59
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

git: => 1.9.1

commit 0d44268f511f569f683c6ec629f263479e816b58
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

pip: new spell, Python easy_install replacement

commit a12cf3b77f9ca3f87f9e219e2830d05f375d143d
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

virtualenv: => 1.11.4

commit 6d938b1b0c1198abc87ca8b72c0f6e4f24670ff2
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

lcms2: => 2.6

commit 09e762bd78a00003a98707bafeee9013dd7cd135
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

docx2txt: => 1.3

commit 058f4a6a7a893925336da6d0610ac9a4b1bed1da
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

desktop-file-utils: => 0.22

commit c40258c3c34229a76dd7e00cc754f4cba0fcf213
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

flex: => 2.5.39

commit 44105f0031295b8ffcaec39e6432f74da1ebecf2
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

taglib: => 1.9.1

commit 3602ff4607c6d3c675a0adbdc50a27b4b17d33e1
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

crypto/openssl: version 1.0.1g, fixes CVE-2014-0160

commit 20a705ad8adb3dd50a48bc7c88f6a2d436ffc939
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/cdk: version 5.0-20140118

commit e883b00c2fcfb100e48c66da0967de307adf63cd
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/newt: version 0.52.17

commit fe32572015ff8c2d0d034cc29f5c5cc288694474
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/libtcod: new spell, a library for developing roguelike games

commit 78d2a2a4a181dac2795744b9451a67c029ec45dd
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

archive/upx: version 3.91

commit a9d0b4c3b41ed581a4b80a2bc6ab4dda116f921b
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

samba: => 3.6.23 [security]

commit 8fc43b8e3ca5d205a8ebd9a62f35ad0529942747
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

tdb: => 1.2.13

commit 0d565820b49dbeec4788fba53d45ac721f8e7492
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

mariadb: update triggers for switching between branches

commit 3f109537d4be7f5d6f27e612d6559a1623e565b1
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

mariadb: added branch 5.5

commit bd8e57a018b1a3d24e43b7219c4078014cd903e5
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

bsddb3: => 6.0.1

commit cdcff87fa23c862646ef6b474611532f75a40b6a
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

leptonica: => 1.70

commit 4f93f0817ccc5b79fb37331fbfb9f5813c67fb73
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

bogofilter: => 1.2.4

commit 8442fbc00d8350a6d3c8647ee184a0eea3c5e4de
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

mc: => 4.8.12

commit 683c380840909a27846608b46bb9b822c411973c
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

python-pypi/pillow: version 2.4.0

commit b6b726ea27be091ecbaa26ce9b87a531b107a5c3
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-plugins/rt-plugins: use cmake as build system

this resolves an issue when --as-needed is set in LDFLAGS

commit 474ca955a59340f56bff33e636349b18abfbe227
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-soft/meterbridge: fix error when link with as-needed

commit 7d7d251e517dcc75a1bf53513de25d0f67d7291f
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

haskell/haskell-git-annex: version 5.20140406

commit 4e842f1100d00074dab7768e2cd51911d7e77092
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

video/mpv: depend on lua instead of LUA

commit b46464d2826c6169159aba1e4fe6a94b2e17e3d8
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

video-libs/gst-plugins-base: depend on libxdmcp

commit ef16258eaeb4849a2bc37af445f446bdc8587499
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

postfix: => 2.9.9

commit 8f50fd64ccde010ce6a65f1036d1d107da951069
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

mongodb: => 2.4.10

commit d42430fb5b7c6dc5e6c8a7cfc65744e9690ec7d0
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

code-browser: => 4.9

commit 2707a98739efeb5c4ba3a9492dff04153a41eb5d
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

copper: added copper-elf-1.6 symlink

commit fdcc8ff80a7408bda57e6e7603f83630e6ae47d0
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

redis: => 2.6.17

commit c4431df56cea830b467c9ac67bd3d3099ffae398
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

google-perftools: => 2.1

commit ebdd91dd089457b922c8fa38f731688c58736345
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

libunwind: fixed syntax errors in spell files; don't do useless doc-ing

commit 31262b3b0b3aa0eb2e57c2119f04ada2af6c8dde
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

libverto: => 0.2.6

commit 847e6111e1cc677ea54fab7869ace3d4b09d8bd9
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

ristretto: renewed dependencies

commit 051ca5e14491ab75b84faff8ee5466027ad9acfa
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

deadbeef: => 0.6.1

commit 16382d3f9d4725fb8086da3e1b9641fba79bd9f9
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

at-spi2-core: => 2.12.0

commit 0faa20a34fcc57d3ab27263aa5bcbb8946554f64
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

gettext: => 0.18.3.2

commit 24e6fb04ea47bffbbc7e8321388a4226da3aaa80
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

gnu.gpg : add D7E69871: Daiki Ueno

commit 64d773e5a99fbf1e1fe5286c787dd6a16824238a
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

x11/unclutter: depend on libx11, libxext and imake

commit bed0f141d337593be5b70e98e82e28e92a1d97be
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/hal: depend on UDEV instead of udev

commit 457362c1bc3ddd0532517bf651b49315f0cc04b1
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/libusb: depend on UDEV instead of udev

commit 60f6aa4a8c445b42e823b0a5ab9dbc44856f0f25
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

shell-term-fm/spacefm: depend on UDEV instead of udev

commit d6828b9e1a8c90295068e59f858c5e64e540ae35
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

net/bmon: version 3.2

commit e37566bda73396d9670792207204e480da3dcf01
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

pcre: => 8.35

commit 8670477a1c816ff9836ca61f28e70a8da3ac727a
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

setuptools: => 3.4.1

commit 986101c7899c15aeb34420a3e00ca2063537680c
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

pyicu: => 1.6

commit 459b1abba7b126abdecef485915776bcb32294f1
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

sylpheed: => 3.4.1

commit 43ab79f07ba5861149e0cfc86cd42ddb27a2f541
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

sqlite: => 3.8.4.3

commit 678e6a33871dd417323537b06097320a6e238fc4
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

zlib: => 1.2.8

commit 4f4d6204701eb23014ea7a7942cc8b7ddf56209e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

kernels/linux: version 3.13.9

commit 0109548341d9bb31895491dbfcb050a7dfa1828d
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

sylpheed: => 3.4.0

commit 180f727a73531f1dc9c380478e913603543558c6
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

haskell-git-annex: version 5.20140403

commit f39eb7a2107d7a353531819a67eeff33b43dbbeb
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

video/mpv: version 0.3.7

commit 1143ffca2f4d8c4a63db1dac4f1bde776beeb87e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/gmp: version 6.0.0a

commit f99c9e66444e5adca37d438722b059841236d818
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

grep: => 2.18

commit 20cbb008ff36bd9dc33e38d93ec457d90cfaf6e2
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

mercurial: => 2.9.2

commit 29057328af102dab16732e66bb2d366e826e360a
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

gummiboot: => 44

commit 7bbba68007a5d8d538d54a2c71a5dc7031d200fb
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

cups-filters: => 1.0.50

commit 60e5e9232edc418e0e0acad2672e27beb591b178
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

loop-aes: => 3.7b

commit 004a042dbc97f199c8e857b050029f9af28ea9c0
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

apache22: => 2.2.27 [security]

commit 35b8243bbc9dbb4955bcee80c50bb4025c921b3b
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

spacefm: => 0.9.4

commit 4214366599111306cf1a83cabc9c37817728b316
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

gstpw: new spell, simple GTK+2 stopwatch program

commit ee7c4bf787d3ac5257f0e0e6d9b03a460facd6c6
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

sqlalchemy: => 0.9.4

commit a5f1da52901708ef41ac5fa15128b571e06402eb
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

alembic: => 0.6.4

commit 0ea5995e5f8d54a712fe7aac7d24191084aca558
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

fontforge: => 20120731-b

commit 46921ea37eed5396ee26cb2f0f13dbe0e9ceb960
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

znc: => 1.2 [security]

commit 0c36ecbf6be28e74ed7fae98c707f8900df271e4
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

lxml: => 3.3.3

commit b03ec3b514896ded6bd8e01ab2426d42e9b96587
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

sqlite: => 3.8.4.2

commit a46f0c771cf54bd7e7993cd2e6ce42fd138fe645
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

monit: => 5.8

commit b5dec30774091e218bbabccf8d97bc8a10b1b70d
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-creation/jack-rack: fix linking, fix SOURCE_URL

commit 0e7a03bc897a984d7f970a8c696bfed3e3da6525
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-drivers/ngjackspa: install manpage

commit 1471adb08839db86109306620a54d34f615b070e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-players/cantata: version 1.3.3

commit 312cff3d9300f904393b52f9530192445ac082db
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-players/mpd: version 0.18.9

commit 83cba9559eaabaca0aa198024419bb1b3a556099
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-creation/ardour3: version 3.5.357

commit d77931c55c0f75a8613db3c0e105ef4da57c421c
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-libs/aubio: version 0.4.1

commit f721f7b64ee8f965da585f6a7e52045f576a8266
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

remove options from waf that aren't common to all users of waf

commit a40990b4dc040523e73d38b3d1313d2ae6841d27
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/raptor: version 2.0.13

commit 425b6dce61da768ebdb3b479d796999ec7d460a5
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-libs/liblo: version 0.28

diff --git a/ChangeLog b/ChangeLog
index 60598a0..a2c1e15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2014-04-09 Vlad Glagolev <stealth AT sourcemage.org>
+ * python-pypi/pip: new spell, Python easy_install replacement
+
+2014-04-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * libs/libtcod: new spell, a library for developing roguelike games
+
+2014-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * gnu.gpg: add D7E69871 "Daiki Ueno <ueno AT unixuser.org>
+
+2014-04-01 Vlad Glagolev <stealth AT sourcemage.org>
+ * utils/gstpw: new spell, simple GTK+2 stopwatch program
+
2014-03-25 Ismael Luceno <ismael AT sourcemage.org>
* editors/vimoutliner: new spell, Outline processor designed for
lightning fast authoring
@@ -13,6 +25,7 @@
* audio-plugins/calf-plugins: new spell, professional-grade audio
plugins
for jack
* audio-libs/stk: new spell, the synthesis toolkit in C++
+ * FUNCTIONS: bring waf_build into line with default_build

2014-03-22 Treeve Jelbert <treeve AT sourcemage.org>
* python-pypi/rbtools: new spell, tools for ReviewBoard
diff --git a/FUNCTIONS b/FUNCTIONS
index f8db363..970d697 100755
--- a/FUNCTIONS
+++ b/FUNCTIONS
@@ -522,11 +522,10 @@ function note_config_files() {
# and waf is fast without it as well

function waf_build() {
- ./waf configure \
- --nocache \
- --prefix=${INSTALL_ROOT}/usr \
- --configdir=${INSTALL_ROOT}/etc \
- $OPTS &&
+ ./waf configure --prefix=${INSTALL_ROOT}/usr \
+ --mandir=${INSTALL_ROOT}/usr/share/man \
+ -j $MAKE_NJOBS \
+ --nocache $OPTS &&
./waf build
}

diff --git a/archive-libs/zlib/DETAILS b/archive-libs/zlib/DETAILS
index b479a80..1ad71cb 100755
--- a/archive-libs/zlib/DETAILS
+++ b/archive-libs/zlib/DETAILS
@@ -1,7 +1,7 @@
SPELL=zlib
- VERSION=1.2.7
-
SOURCE_HASH=sha512:3e18c3923210c2c3da6e12735c0d2babdaf661fb704430516b00aaab8d5e690d8d8f46646173c634f04b050a59bf979d343aede472c5038afcda7baa2c897635
- SOURCE=$SPELL-$VERSION.tar.bz2
+ VERSION=1.2.8
+
SOURCE_HASH=sha512:ece209d4c7ec0cb58ede791444dc754e0d10811cbbdebe3df61c0fd9f9f9867c1c3ccd5f1827f847c005e24eef34fb5bf87b5d3f894d75da04f1797538290e4a
+ SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://www.zlib.net/$SOURCE
WEB_SITE=http://www.zlib.net/
diff --git a/archive-libs/zlib/HISTORY b/archive-libs/zlib/HISTORY
index 451edf7..44f2f34 100644
--- a/archive-libs/zlib/HISTORY
+++ b/archive-libs/zlib/HISTORY
@@ -1,3 +1,6 @@
+2014-04-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.2.8
+
2012-05-12 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 1.2.7; quoting paths
* BUILD: removed obsolete rm commands
diff --git a/archive/upx/0001-use-system-ucl.patch
b/archive/upx/0001-use-system-ucl.patch
new file mode 100644
index 0000000..e80e848
--- /dev/null
+++ b/archive/upx/0001-use-system-ucl.patch
@@ -0,0 +1,29 @@
+From 89fb169f3d2c9bf742eba9087ce6e8ead3548652 Mon Sep 17 00:00:00 2001
+From: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+Date: Mon, 7 Apr 2014 18:35:00 +0200
+Subject: [PATCH] use system ucl
+
+---
+ src/Makefile | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 5375f81..83c0583 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -52,11 +52,7 @@ objext ?= .o
+ upx_SOURCES := $(sort $(wildcard $(srcdir)/*.cpp))
+ upx_OBJECTS := $(notdir $(upx_SOURCES:.cpp=$(objext)))
+
+-# we need UCL and zlib - you can set envvar UPX_UCLDIR
+-ifneq ($(wildcard $(UPX_UCLDIR)/include/ucl/ucl.h),)
+-INCLUDES += -I$(UPX_UCLDIR)/include
+-LIBS += $(addprefix -L,$(dir $(wildcard $(UPX_UCLDIR)/libucl$(libext)
$(UPX_UCLDIR)/src/.libs/libucl$(libext))))
+-endif
++INCLUDE += -I$(INSTALL_ROOT)/usr/include/ucl
+ LIBS += -lucl -lz
+ # you should set envvar UPX_LZMADIR to point to your unpacked LZMA SDK
+ include $(top_srcdir)/src/stub/src/c/Makevars.lzma
+--
+1.9.0
+
diff --git a/archive/upx/BUILD b/archive/upx/BUILD
index 0d645b9..d0ad834 100755
--- a/archive/upx/BUILD
+++ b/archive/upx/BUILD
@@ -1,16 +1,7 @@
-cd $SOURCE_DIRECTORY &&
-message "Compiling UPX" &&
-cd src &&
-sedit "s!# configuration section!UCLDIR=${SOURCE_DIRECTORY2}!" Makefile &&
-sedit "s/CC_COMPILE = \$(CC) \$(CCARCH) \$(DEFS) \$(EXTRA_DEFS)
\$(INCLUDES) \$(EXTRA_INCLUDES) \$(CFLAGS) \$(EXTRA_CFLAGS)
\$(CFLAGS_OUTPUT) -c \$(CC_SRC)/CC_COMPILE = \$(CC) \$(DEFS)
\$(EXTRA_DEFS) \$(INCLUDES) \$(EXTRA_INCLUDES) ${CFLAGS} \$(EXTRA_CFLAGS)
\$(CFLAGS_OUTPUT) -c \$(CC_SRC)/" Makefile.bld &&
-sedit "s/CXX_COMPILE = \$(CXX) \$(CXXARCH) \$(DEFS) \$(EXTRA_DEFS)
\$(INCLUDES) \$(EXTRA_INCLUDES) \$(CXXFLAGS) \$(EXTRA_CXXFLAGS)
\$(CXXFLAGS_OUTPUT) -c \$(CXX_SRC)/CXX_COMPILE = \$(CXX) \$(DEFS)
\$(EXTRA_DEFS) \$(INCLUDES) \$(EXTRA_INCLUDES) ${CXXFLAGS} \$(EXTRA_CXXFLAGS)
\$(CXXFLAGS_OUTPUT) -c \$(CXX_SRC)/" Makefile.bld &&
-make target=linux &&
+cd $SOURCE_DIRECTORY/src &&
+CXX=${CXX} default_build_make &&

if spell_installed perl; then
- message "Compiling documentation" &&
- cd $SOURCE_DIRECTORY && cd doc &&
- make
+ cd $SOURCE_DIRECTORY/doc &&
+ make upx.1
fi
-
-#Deleting useless SOURCE_DIRECTORY2
-rm -rf ${SOURCE_DIRECTORY2}
diff --git a/archive/upx/DEPENDS b/archive/upx/DEPENDS
index 11a7242..1116125 100755
--- a/archive/upx/DEPENDS
+++ b/archive/upx/DEPENDS
@@ -1,2 +1,3 @@
-depends ucl &&
+depends -sub CXX gcc &&
+depends ucl &&
optional_depends "perl" "" "" "Needed to build the documentation"
diff --git a/archive/upx/DETAILS b/archive/upx/DETAILS
index a8ad187..8a8d8e8 100755
--- a/archive/upx/DETAILS
+++ b/archive/upx/DETAILS
@@ -1,12 +1,9 @@
SPELL=upx
- VERSION=1.25
- SOURCE=$SPELL-$VERSION-src.tar.gz
- SOURCE2=ucl-1.03.tar.gz
- SOURCE_URL[0]=${SOURCEFORGE_URL}/$SPELL/$SOURCE
- SOURCE2_URL[0]=http://www.oberhumer.com/opensource/ucl/download/$SOURCE2
-
SOURCE_HASH=sha512:4d082bbf825ca80715d04ecdee119662376d402aa21fa31000d5587562403b13033054dbe3c76207b3af0878d1fdd6f58599dc3eb7798925d7d6899036997a58
-
SOURCE2_HASH=sha512:7dd1824d01b4bb41ee03bbceddc634a9f7f910d235e5cca163d783680d6743f0f3cc309bbbcc1e094d897d549d3805a555f9093b4d77805443d896dd1862aa34
-SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
+ VERSION=3.91
+ SOURCE=$SPELL-$VERSION-src.tar.bz2
+ SOURCE_URL[0]=http://upx.sourceforge.net/download/${SOURCE}
+
SOURCE_HASH=sha512:7e9a392fe11daf7baf9632f2c448ef9936da7dfab215f86ba417e9f097770949acb653aaabe6cc5ed812efc486cb35e0c1e128c80026b02825713d8b12251cf5
+SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}-src
SOURCE_DIRECTORY2=${BUILD_DIRECTORY}/ucl-1.03
WEB_SITE=http://upx.sourceforge.net/
ENTERED=20050330
diff --git a/archive/upx/HISTORY b/archive/upx/HISTORY
index f08776b..c6638c7 100644
--- a/archive/upx/HISTORY
+++ b/archive/upx/HISTORY
@@ -1,3 +1,9 @@
+2014-04-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 3.91, remove SOURCE2
+ * BUILD, INSTALL: adapt to current Makefile
+ * PRE_BUILD, 0001-use-system-ucl.patch: use system ucl
+ * DEPENDS: add dependency on gcc and ucl
+
2011-10-14 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: fixed long description wrap (scripted)

diff --git a/archive/upx/INSTALL b/archive/upx/INSTALL
index 476ac2a..06f9418 100755
--- a/archive/upx/INSTALL
+++ b/archive/upx/INSTALL
@@ -1,4 +1,4 @@
-cp ${SOURCE_DIRECTORY}/src/upx ${INSTALL_ROOT}/usr/bin/upx
+install -m755 ${SOURCE_DIRECTORY}/src/upx.out ${INSTALL_ROOT}/usr/bin/ &&

if spell_installed perl; then
cp ${SOURCE_DIRECTORY}/doc/upx.1 ${INSTALL_ROOT}/usr/share/man/man1/
diff --git a/archive/upx/PRE_BUILD b/archive/upx/PRE_BUILD
index 6f98591..7d32ad4 100755
--- a/archive/upx/PRE_BUILD
+++ b/archive/upx/PRE_BUILD
@@ -1,7 +1,4 @@
-mk_source_dir ${SOURCE_DIRECTORY} &&
-cd ${BUILD_DIRECTORY} &&
-unpack_file &&
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&

-mk_source_dir ${SOURCE_DIRECTORY2} &&
-cd ${BUILD_DIRECTORY} &&
-unpack_file 2
+patch -p1 < $SPELL_DIRECTORY/0001-use-system-ucl.patch
diff --git a/audio-creation/ardour3/BUILD b/audio-creation/ardour3/BUILD
index f384e0c..33dd493 100755
--- a/audio-creation/ardour3/BUILD
+++ b/audio-creation/ardour3/BUILD
@@ -1,3 +1,4 @@
-OPTS="--noconfirm $ARDOUR3_OPTS $OPTS" &&
+OPTS="--configdir=$INSTALL_ROOT/etc $OPTS" &&
+OPTS="--noconfirm --freedesktop $ARDOUR3_OPTS $OPTS" &&

waf_build
diff --git a/audio-creation/ardour3/DETAILS b/audio-creation/ardour3/DETAILS
index 36e2913..1c393d7 100755
--- a/audio-creation/ardour3/DETAILS
+++ b/audio-creation/ardour3/DETAILS
@@ -1,9 +1,9 @@
SPELL=ardour3
SPELLX=Ardour3
- VERSION=3.5.308
+ VERSION=3.5.357
SOURCE="${SPELLX}-${VERSION}.tar.bz2"
- SOURCE_URL[0]=http://download.sourcemage.org/grimoire/distro/${SOURCE}
-
SOURCE_HASH=sha512:c02f6dbcb39696a85dca7f76eb04fb348b8b7e9fb6eb6c1570713546427ddc38868279942c9c3348c7a10581bd7700a2d12d1dbe8bcdd3ce9c4d6564cec34b79
+
SOURCE_URL[0]=ftp://ftp.archlinux.org/other/ardour/$SPELLX-$VERSION.tar.bz2
+
SOURCE_HASH=sha512:90a310d10b2bc56cb2acc7fbcea2bfb4d1e49052cd9cbf26d5a5d4efe8786b868e20ef679f07f186547ff281364eeb90e03587f6d86ea3551123f0bafdbb3623
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELLX}-${VERSION}"
WEB_SITE="http://ardour.org";
LICENSE[0]=GPLv2
diff --git a/audio-creation/ardour3/HISTORY b/audio-creation/ardour3/HISTORY
index 1a0bee7..671326d 100644
--- a/audio-creation/ardour3/HISTORY
+++ b/audio-creation/ardour3/HISTORY
@@ -1,3 +1,7 @@
+2014-03-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 3.5.357
+ * BUILD: add --configdir and --freedesktop to OPTS
+
2014-02-01 Vlad Glagolev <stealth AT sourcemage.org>
* DEPENDS: switched jack to JACK-DRIVER; ardour3 works well with jack2
after some internal configuration
diff --git a/audio-creation/jack-rack/BUILD b/audio-creation/jack-rack/BUILD
new file mode 100755
index 0000000..cfde7ad
--- /dev/null
+++ b/audio-creation/jack-rack/BUILD
@@ -0,0 +1 @@
+LIBS+=' -lm -ldl' default_build
diff --git a/audio-creation/jack-rack/DETAILS
b/audio-creation/jack-rack/DETAILS
index 1084753..e369b44 100755
--- a/audio-creation/jack-rack/DETAILS
+++ b/audio-creation/jack-rack/DETAILS
@@ -3,7 +3,7 @@
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE2=$SOURCE.asc
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
- SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
+ SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SPELL/$VERSION/$SOURCE
SOURCE2_URL[0]=${SOURCE_URL[0]}.asc
SOURCE_GPG=B94D2E95.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE2_IGNORE=signature
diff --git a/audio-creation/jack-rack/HISTORY
b/audio-creation/jack-rack/HISTORY
index 3dece2e..5cb4d47 100644
--- a/audio-creation/jack-rack/HISTORY
+++ b/audio-creation/jack-rack/HISTORY
@@ -1,3 +1,7 @@
+2014-03-27 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: fix SOURCE_URL[0]
+ * BUILD: fix linking
+
2011-09-26 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: converted to upstream signature checking
* B94D2E95.gpg: added gpg keyring
diff --git a/audio-drivers/ngjackspa/HISTORY b/audio-drivers/ngjackspa/HISTORY
index fd44da0..18feed6 100644
--- a/audio-drivers/ngjackspa/HISTORY
+++ b/audio-drivers/ngjackspa/HISTORY
@@ -1,3 +1,6 @@
+2014-03-27 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * INSTALL: install manpage
+
2014-03-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* BUILD, DEPENDS, DETAILS, INSTALL: spell created

diff --git a/audio-drivers/ngjackspa/INSTALL b/audio-drivers/ngjackspa/INSTALL
index 7acf24e..3f96b0d 100755
--- a/audio-drivers/ngjackspa/INSTALL
+++ b/audio-drivers/ngjackspa/INSTALL
@@ -1 +1,2 @@
-prefix=${INSTALL_ROOT}/usr default_install
+prefix=${INSTALL_ROOT}/usr default_install &&
+install -m644 ${SOURCE_DIRECTORY}/ng-jackspa.1
${INSTALL_ROOT}/usr/share/man/man1/
diff --git a/audio-libs/aubio/0001-disable-tests.patch
b/audio-libs/aubio/0001-disable-tests.patch
new file mode 100644
index 0000000..929abcd
--- /dev/null
+++ b/audio-libs/aubio/0001-disable-tests.patch
@@ -0,0 +1,24 @@
+From 948b95efd679a362d9f21033a26f0e4b37741da6 Mon Sep 17 00:00:00 2001
+From: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+Date: Mon, 24 Mar 2014 23:36:32 +0100
+Subject: [PATCH] disable tests
+
+---
+ wscript | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/wscript b/wscript
+index 83ad7b8..13d941c 100644
+--- a/wscript
++++ b/wscript
+@@ -267,7 +267,6 @@ def build(bld):
+ pass
+ if bld.env['DEST_OS'] not in ['ios', 'iosimulator', 'android']:
+ bld.recurse('examples')
+- bld.recurse('tests')
+
+ bld( source = 'aubio.pc.in' )
+
+--
+1.9.0
+
diff --git a/audio-libs/aubio/BUILD b/audio-libs/aubio/BUILD
new file mode 100755
index 0000000..1d8ce04
--- /dev/null
+++ b/audio-libs/aubio/BUILD
@@ -0,0 +1 @@
+waf_build
diff --git a/audio-libs/aubio/DEPENDS b/audio-libs/aubio/DEPENDS
index 26e106f..fb00c30 100755
--- a/audio-libs/aubio/DEPENDS
+++ b/audio-libs/aubio/DEPENDS
@@ -1,18 +1,16 @@
-depends libsndfile &&
-depends libsamplerate &&
-depends fftw &&
+depends python &&
+depends libsndfile "--enable-sndfile" &&
+depends libsamplerate "--enable-samplerate" &&
+depends fftw "--enable-fftw3 --enable-complex --enable-double" &&

-optional_depends alsa-lib \
- "--enable-alsa" \
- "--disable-alsa" \
- "for ALSA support" &&
+depends alsa-lib &&

optional_depends JACK-DRIVER \
"--enable-jack" \
"--disable-jack" \
"for JACK support" &&

-optional_depends lash \
- "--enable-lash" \
- "--disable-lash" \
- "for LASH support (it will force alsa and jack depends)"
+optional_depends LIBAVCODEC \
+ "--enable-avcodec" \
+ "--disable-avcodec" \
+ "use avcodec"
diff --git a/audio-libs/aubio/DETAILS b/audio-libs/aubio/DETAILS
index da796e6..b265258 100755
--- a/audio-libs/aubio/DETAILS
+++ b/audio-libs/aubio/DETAILS
@@ -1,8 +1,8 @@
SPELL=aubio
- VERSION=0.3.2
- SOURCE=$SPELL-$VERSION.tar.gz
+ VERSION=0.4.1
+ SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_URL[0]=http://aubio.org/pub/$SOURCE
-
SOURCE_HASH=sha512:b3d8445716c0cde02ee1e7b036864598ec7562d8a938a61f644c384d80e95601abcb6e713cdaab7b2613f6f4f27db1cfafa7c23824c61f504e83d11fefdee8fc
+
SOURCE_HASH=sha512:f36800f1a0cbe72509e05d15d79759ed25975e92701804597ed4c9d93e27d5e7b908e0aa65819ce763882945123ea174a0825c7aacf9f9494f56d72de5b8308c
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
WEB_SITE=http://aubio.org/
LICENSE[0]=GPL
diff --git a/audio-libs/aubio/HISTORY b/audio-libs/aubio/HISTORY
index 6024564..a23df2c 100644
--- a/audio-libs/aubio/HISTORY
+++ b/audio-libs/aubio/HISTORY
@@ -1,2 +1,8 @@
+2014-03-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS, DEPENDS: version 0.4.1
+ * BUILD, INSTALL: use waf
+ * 0001-disable-tests.patch, PRE_BUILD: don't build tests as they
+ fail to link
+
2008-07-10 Vlad Glagolev <stealth AT sourcemage.org>
* DEPENDS, DETAILS: spell created
diff --git a/audio-libs/aubio/INSTALL b/audio-libs/aubio/INSTALL
new file mode 100755
index 0000000..0ea15cc
--- /dev/null
+++ b/audio-libs/aubio/INSTALL
@@ -0,0 +1 @@
+waf_install
diff --git a/audio-libs/aubio/PRE_BUILD b/audio-libs/aubio/PRE_BUILD
new file mode 100755
index 0000000..ab8f858
--- /dev/null
+++ b/audio-libs/aubio/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+patch -p1 < $SPELL_DIRECTORY/0001-disable-tests.patch
diff --git a/audio-libs/liblo/DETAILS b/audio-libs/liblo/DETAILS
index 7e25fb2..8b4604e 100755
--- a/audio-libs/liblo/DETAILS
+++ b/audio-libs/liblo/DETAILS
@@ -1,8 +1,8 @@
SPELL=liblo
- VERSION=0.27
+ VERSION=0.28
SOURCE=$SPELL-$VERSION.tar.gz
- SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:079f12d349d7fb58d4f7393d2ad72ca6844570524992c56ce87b23531620c2387ac6ba5316f92684b3fae72c7a5abe03e49fcbd97196efdb35d11a2422b065bc
+ SOURCE_URL[0]=$SOURCEFORGE_URL/${SPELL}/${SPELL}/${VERSION}/${SOURCE}
+
SOURCE_HASH=sha512:05818218d2d6a7042714b8fa905e7242fb9707795ad53ea27b2a1af3661f0822d25585ce17d286aa269c534ef24e19e377e041bf7fe194c8e47c0046fefcb85f
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
WEB_SITE=http://liblo.sourceforge.net/
ENTERED=20070723
diff --git a/audio-libs/liblo/HISTORY b/audio-libs/liblo/HISTORY
index 02e7108..06b3d34 100644
--- a/audio-libs/liblo/HISTORY
+++ b/audio-libs/liblo/HISTORY
@@ -1,3 +1,6 @@
+2014-03-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.28
+
2014-01-30 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 0.27

diff --git a/audio-libs/taglib/DETAILS b/audio-libs/taglib/DETAILS
index 0ef1a2d..ddbbe53 100755
--- a/audio-libs/taglib/DETAILS
+++ b/audio-libs/taglib/DETAILS
@@ -1,9 +1,9 @@
SPELL=taglib
- VERSION=1.8
-
SOURCE_HASH=sha512:04c3b12bd11d11000ebf6721bfebd47e2995b9b11ad28c1560a83370b9d871eb37155a006637b36b4c3daa68cd690f09c1ab4faf4d3214e6f3f5388b5581fc94
+ VERSION=1.9.1
+
SOURCE_HASH=sha512:63a4f06b88b33be716dde3111e62a624995bc020127c9d22f63e918a535ebba858c59308ca4295eeedb29dc72b87d6673db5483f20d9dbf3f56cd93c7ba7ed58
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
- SOURCE_URL[0]=https://github.com/downloads/taglib/taglib/$SOURCE
+ SOURCE_URL[0]=http://taglib.github.io/releases/$SOURCE
WEB_SITE=http://developer.kde.org/~wheeler/taglib
ENTERED=20040120
LICENSE[0]=GPL
diff --git a/audio-libs/taglib/HISTORY b/audio-libs/taglib/HISTORY
index e726c9b..ced8284 100644
--- a/audio-libs/taglib/HISTORY
+++ b/audio-libs/taglib/HISTORY
@@ -1,3 +1,7 @@
+2014-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.9.1
+ new URL
+
2012-10-04 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.8
new URL
diff --git a/audio-players/cantata/DETAILS b/audio-players/cantata/DETAILS
index c90c5d1..fc7b261 100755
--- a/audio-players/cantata/DETAILS
+++ b/audio-players/cantata/DETAILS
@@ -1,8 +1,8 @@
SPELL=cantata
- VERSION=1.3.0.1
+ VERSION=1.3.3
SOURCE="${SPELL}-${VERSION}.tar.bz2"
-
SOURCE_URL[0]="https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60czZxNXJtdWllc0E";
-
SOURCE_HASH=sha512:9a48ef75f7ac23656c27d2a05e0db8b01dfdddf575cf00ba7fa0b1a54027ca010f0c081184db1f03bc27fda64fa2ae5a5259f770c333a2b40a8a2c92eafa9964
+
SOURCE_URL[0]="https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60ZUN1NThacGFrdFE";
+
SOURCE_HASH=sha512:1f50abf9e92316ba3cd8da0a542a6fbdabfa58bb8dd7349058ffeffa5f95a4db31e4810e580497fea5c08f31f8e891c1c7b600f66f81f400527d40c58f14148a
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="https://code.google.com/p/cantata/";
LICENSE[0]=GPL
diff --git a/audio-players/cantata/HISTORY b/audio-players/cantata/HISTORY
index 8fdbfc1..2b4d57e 100644
--- a/audio-players/cantata/HISTORY
+++ b/audio-players/cantata/HISTORY
@@ -1,3 +1,6 @@
+2014-03-26 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.3.3
+
2014-02-28 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 1.3.0.1
* DEPENDS: add dependency on qjson, optional deps on cdparanoia,
diff --git a/audio-players/deadbeef/DETAILS b/audio-players/deadbeef/DETAILS
index 1f214c7..fbf810b 100755
--- a/audio-players/deadbeef/DETAILS
+++ b/audio-players/deadbeef/DETAILS
@@ -1,29 +1,46 @@
SPELL=deadbeef
- VERSION=0.6.0
+ VERSION=0.6.1
SOURCE=${SPELL}-${VERSION}.tar.bz2
SOURCE_URL[0]=${SOURCEFORGE_URL}/${SPELL}/${SOURCE}
-
SOURCE_HASH=sha512:3f6add4998dd0fc67c94c289905700144153ae2dc8c7e6cfa1bbfab7844c7dfe3985d5ff87909d9d0b1abe4926b5498055389ab74e83cc7db63f254081d7e666
+
SOURCE_HASH=sha512:0812f2d6b2ebc2ef1e65af9912546fa769e0e6d090f15cf3f2c4170bfa5aab03545cd63f26dcdcde905416801c0b56bd190cd1792f29eabaa318db212db99f90
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="http://deadbeef.sourceforge.net/";
LICENSE[0]="GPLv2"
ENTERED=20100308
KEYWORDS=""
- SHORT="DeaDBeeF (as in 0xDEADBEEF) is an audio player for
GNU/Linux systems with X11 and console support."
+ SHORT="ultimate music player for GNU/Linux"
cat << EOF
Main features:
-
- * mp3, ogg vorbis, flac, ape, wv, wav, m4a, mpc, cd audio (and many
- more) * sid, nsf and lots of other popular chiptune formats * ID3v1,
- ID3v2.2, ID3v2.3, ID3v2.4, APEv2, xing/info tags support * character
- set detection for non-unicode id3 tags - supports cp1251 and iso8859-1 *
- unicode tags are fully supported as well (both utf8 and ucs2) * cuesheet
- (.cue files) support, with charset detection (utf8/cp1251/iso8859-1) *
- tracker modules like mod, s3m, it, xm, etc * HVSC song length database
- support for sid * gtk2 interface with efficient custom widgets * no GNOME
- or KDE dependencies * minimize to tray, with scrollwheel volume control *
- drag and drop, both inside of playlist, and from filemanagers and such
- * control playback from command line * global hotkeys * plugin support;
- bundled with lots of plugins, such as global hotkeys and last.fm
scrobbler;
- sdk is included * duration calculation is as precise as possible for
- vbr mp3 files (with and without xing/info tags)
+- mp3, ogg vorbis, flac, ape, wv/iso.wv, wav, m4a/mp3 (aac and alac), mpc,
tta,
+ cd audio, and many more
+- nsf, ay, vtx, vgm/vgz, spc and many other popular chiptune formats
+- SID with HVSC song length database support for sid
+- tracker modules - mod, s3m, it, xm, etc
+- ID3v1, ID3v2.2, ID3v2.3, ID3v2.4, APEv2, Xing/Info, VorbisComments tag
reading
+ and writing, as well as reading many other tag/metadata formats in most
+ supported formats
+- automatic character set detection for non-unicode id3 tags - supports
cp1251,
+ iso8859-1, and now chinese cp936 (optional), as well as SHIFT-JIS and
MS-DOS
+ CP866 for selected formats
+- unicode tags are fully supported as well (both utf8 and ucs2)
+- cuesheet (.cue files) support, including charset detection/conversion
+- clean fast GUI using GTK2 and GTK3, you pick what you like more!
+- no GNOME or KDE dependencies
+- minimization to system tray, with scrollwheel volume control, etc
+- drag and drop, both in playlist, and from other apps
+- control playback from command line
+- global hotkeys
+- multiple playlists using tabbed interface
+- album cover display
+- OSD notifications about current playing songs
+- 18-band graphical equalizer and other DSP plugins
+- built-in high quality tag editor, with custom fields support
+- customizable groups in playlists
+- customizable columns with flexible title formatting
+- streaming radio support for ogg vorbis, mp3 and aac streams
+- gapless playback for correctly encoded files
+- lots of plugin, such as global hotkeys, last.fm scrobbler, converter, and
many
+ more, sdk is included
+- comes with advanced Converter plugin, which allows to transcode files to
other
+ formats
EOF
diff --git a/audio-players/deadbeef/HISTORY b/audio-players/deadbeef/HISTORY
index f87c724..bf8eaac 100644
--- a/audio-players/deadbeef/HISTORY
+++ b/audio-players/deadbeef/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 0.6.1; updated descriptions
+
2013-12-10 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 0.6.0
* CONFIGURE: added missing config options
diff --git a/audio-players/mpd/DETAILS b/audio-players/mpd/DETAILS
index 9902b76..03acd06 100755
--- a/audio-players/mpd/DETAILS
+++ b/audio-players/mpd/DETAILS
@@ -1,10 +1,10 @@
SPELL=mpd
- VERSION=0.18.8
+ VERSION=0.18.9
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://www.musicpd.org/download/$SPELL/$BRANCH/$SOURCE
-
SOURCE_HASH=sha512:a6f540813b3f91c74645d3903a0b36edd1546880bfa7d1c06f2cb61b37e9c1e343b03ff06a685c4ded796a7f486b19e89849ca43f2b978c839b72eb0be184f34
+
SOURCE_HASH=sha512:12e45e14108cce0a3a993b6d17dfc05ed7d14ea99cce85f202904b9bf1624bfecadbd4d465e3c9057822691a1a245e67524229b160fceb2f72d27d6a8bd56479
LICENSE[0]=GPL
KEYWORDS="music players audio"
WEB_SITE=http://www.musicpd.org/
diff --git a/audio-players/mpd/HISTORY b/audio-players/mpd/HISTORY
index 81914b6..da518dc 100644
--- a/audio-players/mpd/HISTORY
+++ b/audio-players/mpd/HISTORY
@@ -1,3 +1,6 @@
+2014-03-26 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.18.9
+
2014-02-28 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 0.18.8

diff --git a/audio-plugins/rt-plugins/0003-switch-build-system-to-cmake.patch
b/audio-plugins/rt-plugins/0003-switch-build-system-to-cmake.patch
new file mode 100644
index 0000000..bd159c9
--- /dev/null
+++ b/audio-plugins/rt-plugins/0003-switch-build-system-to-cmake.patch
@@ -0,0 +1,6136 @@
+From 3acb2bea8282214f002af2c45699eeee1cdc8db5 Mon Sep 17 00:00:00 2001
+From: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+Date: Sun, 6 Apr 2014 14:31:38 +0000
+Subject: [PATCH] switch build system to cmake
+
+- reorganize directory layout. source files go to src,
+headers to include
+- remove unnecessary macros from all .c files
+- use the <> form of #include for the ladspa header
+- remove redundant definition of f_round from ladspa-util.h
+- remove redundant config.h header file; this seems to have been
+an auto-generated header at some point copied from some other
+project. It isn't used anywhere in this project.
+- adapt the README to the new build system
+- add cppcheck target
+---
+ CMakeLists.txt | 21 +++
+ Makefile | 47 ------
+ README | 7 +-
+ RTallpass1.c | 236 ------------------------------
+ RTallpass2.c | 255 ---------------------------------
+ RThighpass.c | 251 --------------------------------
+ RThighshelf.c | 269 -----------------------------------
+ RTlowpass.c | 251 --------------------------------
+ RTlowshelf.c | 269 -----------------------------------
+ RTlr4hipass.c | 239 -------------------------------
+ RTlr4lowpass.c | 239 -------------------------------
+ RTparaeq.c | 269 -----------------------------------
+ build/.keep | 0
+ cmake/compilerwarnings.cmake | 37 +++++
+ cmake/cppcheck.cmake | 12 ++
+ include/biquad.h | 331
+++++++++++++++++++++++++++++++++++++++++++
+ include/ladspa-util.h | 211 +++++++++++++++++++++++++++
+ src/CMakeLists.txt | 26 ++++
+ src/RTallpass1.c | 231 ++++++++++++++++++++++++++++++
+ src/RTallpass2.c | 250 ++++++++++++++++++++++++++++++++
+ src/RThighpass.c | 246 ++++++++++++++++++++++++++++++++
+ src/RThighshelf.c | 264 ++++++++++++++++++++++++++++++++++
+ src/RTlowpass.c | 246 ++++++++++++++++++++++++++++++++
+ src/RTlowshelf.c | 264 ++++++++++++++++++++++++++++++++++
+ src/RTlr4hipass.c | 234 ++++++++++++++++++++++++++++++
+ src/RTlr4lowpass.c | 234 ++++++++++++++++++++++++++++++
+ src/RTparaeq.c | 264 ++++++++++++++++++++++++++++++++++
+ util/biquad.h | 331
-------------------------------------------
+ util/config.h | 99 -------------
+ util/ladspa-util.h | 230 ------------------------------
+ 30 files changed, 2877 insertions(+), 2986 deletions(-)
+ create mode 100644 CMakeLists.txt
+ delete mode 100644 Makefile
+ delete mode 100644 RTallpass1.c
+ delete mode 100644 RTallpass2.c
+ delete mode 100644 RThighpass.c
+ delete mode 100644 RThighshelf.c
+ delete mode 100644 RTlowpass.c
+ delete mode 100644 RTlowshelf.c
+ delete mode 100644 RTlr4hipass.c
+ delete mode 100644 RTlr4lowpass.c
+ delete mode 100644 RTparaeq.c
+ create mode 100644 build/.keep
+ create mode 100644 cmake/compilerwarnings.cmake
+ create mode 100644 cmake/cppcheck.cmake
+ create mode 100644 include/biquad.h
+ create mode 100644 include/ladspa-util.h
+ create mode 100644 src/CMakeLists.txt
+ create mode 100644 src/RTallpass1.c
+ create mode 100644 src/RTallpass2.c
+ create mode 100644 src/RThighpass.c
+ create mode 100644 src/RThighshelf.c
+ create mode 100644 src/RTlowpass.c
+ create mode 100644 src/RTlowshelf.c
+ create mode 100644 src/RTlr4hipass.c
+ create mode 100644 src/RTlr4lowpass.c
+ create mode 100644 src/RTparaeq.c
+ delete mode 100644 util/biquad.h
+ delete mode 100644 util/config.h
+ delete mode 100644 util/ladspa-util.h
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..566ef09
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,21 @@
++cmake_minimum_required(VERSION 2.8)
++Project(rt-plugins)
++
++set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
++
++include(compilerwarnings)
++include(cppcheck)
++
++set(COMMONFLAGS "-pipe")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMONFLAGS}")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
++
++add_definitions("-D_BSD_SOURCE -D_XOPEN_SOURCE=600")
++
++set(CMAKE_SHARED_MODULE_PREFIX "")
++
++add_subdirectory(src)
++
++file(GLOB HEADERS "${PROJECT_SOURCE_DIR}/include/*.h")
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index 4394311..0000000
+--- a/Makefile
++++ /dev/null
+@@ -1,47 +0,0 @@
+-INSTALL_PLUGINS_DIR ?= /usr/local/lib/ladspa/
+-
+-# rt 31.5.2013: got rid of sse2 stuff so we can build for ARM
+-CPPFLAGS += -D_BSD_SOURCE -DPIC -D_XOPEN_SOURCE=600 -I.
+-
+-CFLAGS += -Ofast -fomit-frame-pointer -fstrength-reduce -funroll-loops
-fPIC -std=c11
+-
+-CFLAGS += -Wall -Wextra -Werror -pedantic
+-CFLAGS += -Wcast-align -Wfloat-equal -Wformat-nonliteral -Wformat-security
+-CFLAGS += -Winit-self -Wmissing-include-dirs
+-CFLAGS += -Wno-suggest-attribute=noreturn -Wno-write-strings
-Wpointer-arith -Wundef -Wpacked
+-CFLAGS += -Wredundant-decls
+-CFLAGS += -Wunreachable-code -Wno-unused-parameter -Wconversion -Wshadow
+-CFLAGS += -Wstrict-prototypes -Wbad-function-cast -Wold-style-definition
-Wmissing-prototypes -Wmissing-declarations -Wnested-externs
+-
+-LDFLAGS += -shared
+-
+-PLUGINS = RTallpass1.so \
+- RTallpass2.so \
+- RTlowpass.so \
+- RThighpass.so \
+- RThighshelf.so \
+- RTlowshelf.so \
+- RTlr4hipass.so \
+- RTlr4lowpass.so \
+- RTparaeq.so \
+-
+-all: $(PLUGINS)
+-
+-%.o: %.c
+- @echo -e "(CC) $@"
+- @$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+-
+-%.so: %.o
+- @echo -e "(LD) $@"
+- @$(LD) $(LDFLAGS) -o $@ $<
+-
+-install: all
+- mkdir -p $(INSTALL_PLUGINS_DIR)
+- install -m644 $(PLUGINS) $(INSTALL_PLUGINS_DIR)
+-
+-clean:
+- -rm -f `find . -name "*.so"`
+- -rm -f `find . -name "*.o"`
+- -rm -f `find . -name "*~"`
+-
+-.PHONY: install all clean
+diff --git a/README b/README
+index 98c6892..24ce89a 100644
+--- a/README
++++ b/README
+@@ -2,11 +2,14 @@ Compiling
+ ~~~~~~~~~
+
+ Install with
++ cd build
++ cmake ..
+ make
+ sudo make install
+
+ By default this installs plugins in /usr/local/lib/ladspa. If
+-you want them to go somewhere else, edit the Makefile.
++you want them to go somewhere else, configure cmake accordingly
++by running 'ccmake .'
+
+ You should set the environment variable LADSPA_PATH to contain the
+ path to the plugins, so they can be found. Something like this:
+@@ -26,6 +29,8 @@ I know, these instruction sets are only implemented on
Intel and Athlon
+ processors. Compiling for other architectures will probably require some
+ changes to the source code.
+
++You can set USE_SSE2 to off using ccmake if you do not want to use SSE2.
++
+
+ Bug reports
+ ~~~~~~~~~~~
+diff --git a/RTallpass1.c b/RTallpass1.c
+deleted file mode 100644
+index 4ea528b..0000000
+--- a/RTallpass1.c
++++ /dev/null
+@@ -1,236 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define ALLPASS1_FC 0
+-#define ALLPASS1_INPUT 1
+-#define ALLPASS1_OUTPUT 2
+-
+-static LADSPA_Descriptor *allPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *fc;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- bilin * filter;
+- float fs;
+-} AllPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return allPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateAllPass(LADSPA_Handle instance) {
+- AllPass *plugin_data = (AllPass *)instance;
+- bilin *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- bilin_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupAllPass(LADSPA_Handle instance) {
+- AllPass *plugin_data = (AllPass *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortAllPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- AllPass *plugin;
+-
+- plugin = (AllPass *)instance;
+- switch (port) {
+- case ALLPASS1_FC:
+- plugin->fc = data;
+- break;
+- case ALLPASS1_INPUT:
+- plugin->input = data;
+- break;
+- case ALLPASS1_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateAllPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- AllPass *plugin_data = (AllPass *)malloc(sizeof(AllPass));
+- bilin *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(bilin));
+- bilin_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runAllPass(LADSPA_Handle instance, unsigned long sample_count) {
+- AllPass *plugin_data = (AllPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+-
+- bilin * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- ap1_set_params(filter, fc, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- // RT 2.9.2013: replace biquad_run with ap1_run to cut
floating-
+- // point multiplications from 3 to 1:
+- buffer_write(output[pos], (LADSPA_Data) ap1_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- allPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (allPassDescriptor) {
+- allPassDescriptor->UniqueID = 9010;
+- allPassDescriptor->Label = "RTallpass1";
+- allPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- allPassDescriptor->Name =
+- D_("RT First Order Allpass");
+- allPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- allPassDescriptor->Copyright =
+- "GPL";
+- allPassDescriptor->PortCount = 3;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
+- sizeof(LADSPA_PortDescriptor));
+- allPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
+- sizeof(LADSPA_PortRangeHint));
+- allPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(3, sizeof(char*));
+- allPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[ALLPASS1_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[ALLPASS1_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[ALLPASS1_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[ALLPASS1_FC].LowerBound = 0.0;
+- port_range_hints[ALLPASS1_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Input */
+- port_descriptors[ALLPASS1_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[ALLPASS1_INPUT] =
+- D_("Input");
+- port_range_hints[ALLPASS1_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[ALLPASS1_INPUT].LowerBound = -1.0;
+- port_range_hints[ALLPASS1_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[ALLPASS1_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[ALLPASS1_OUTPUT] =
+- D_("Output");
+- port_range_hints[ALLPASS1_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[ALLPASS1_OUTPUT].LowerBound = -1.0;
+- port_range_hints[ALLPASS1_OUTPUT].UpperBound = +1.0;
+-
+- allPassDescriptor->activate = activateAllPass;
+- allPassDescriptor->cleanup = cleanupAllPass;
+- allPassDescriptor->connect_port = connectPortAllPass;
+- allPassDescriptor->deactivate = NULL;
+- allPassDescriptor->instantiate = instantiateAllPass;
+- allPassDescriptor->run = runAllPass;
+- allPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (allPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)allPassDescriptor->PortDescriptors);
+- free((char **)allPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)allPassDescriptor->PortRangeHints);
+- free(allPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTallpass2.c b/RTallpass2.c
+deleted file mode 100644
+index a0bac58..0000000
+--- a/RTallpass2.c
++++ /dev/null
+@@ -1,255 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define ALLPASS_FC 0
+-#define ALLPASS_Q 1
+-#define ALLPASS_INPUT 2
+-#define ALLPASS_OUTPUT 3
+-
+-static LADSPA_Descriptor *allPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *gain;
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} AllPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return allPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateAllPass(LADSPA_Handle instance) {
+- AllPass *plugin_data = (AllPass *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupAllPass(LADSPA_Handle instance) {
+- AllPass *plugin_data = (AllPass *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortAllPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- AllPass *plugin;
+-
+- plugin = (AllPass *)instance;
+- switch (port) {
+- case ALLPASS_FC:
+- plugin->fc = data;
+- break;
+- case ALLPASS_Q:
+- plugin->Q = data;
+- break;
+- case ALLPASS_INPUT:
+- plugin->input = data;
+- break;
+- case ALLPASS_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateAllPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- AllPass *plugin_data = (AllPass *)malloc(sizeof(AllPass));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runAllPass(LADSPA_Handle instance, unsigned long sample_count) {
+- AllPass *plugin_data = (AllPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Bandwidth (octaves) (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+-
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- ap_set_params(filter, fc, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- // RT 2.9.2013: replace biquad_run with ap2_run to cut
floating-
+- // point multiplications from 5 to 2:
+- buffer_write(output[pos], (LADSPA_Data) ap2_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- allPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (allPassDescriptor) {
+- allPassDescriptor->UniqueID = 9005;
+- allPassDescriptor->Label = "RTallpass2";
+- allPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- allPassDescriptor->Name =
+- D_("RT Biquad Allpass");
+- allPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- allPassDescriptor->Copyright =
+- "GPL";
+- allPassDescriptor->PortCount = 4;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
+- sizeof(LADSPA_PortDescriptor));
+- allPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
+- sizeof(LADSPA_PortRangeHint));
+- allPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(4, sizeof(char*));
+- allPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[ALLPASS_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[ALLPASS_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[ALLPASS_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[ALLPASS_FC].LowerBound = 0;
+- port_range_hints[ALLPASS_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Bandwidth (octaves) */
+- port_descriptors[ALLPASS_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[ALLPASS_Q] =
+- D_("Q");
+- port_range_hints[ALLPASS_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[ALLPASS_Q].LowerBound = 0;
+- port_range_hints[ALLPASS_Q].UpperBound = 10;
+-
+- /* Parameters for Input */
+- port_descriptors[ALLPASS_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[ALLPASS_INPUT] =
+- D_("Input");
+- port_range_hints[ALLPASS_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[ALLPASS_INPUT].LowerBound = -1.0;
+- port_range_hints[ALLPASS_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[ALLPASS_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[ALLPASS_OUTPUT] =
+- D_("Output");
+- port_range_hints[ALLPASS_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[ALLPASS_OUTPUT].LowerBound = -1.0;
+- port_range_hints[ALLPASS_OUTPUT].UpperBound = +1.0;
+-
+- allPassDescriptor->activate = activateAllPass;
+- allPassDescriptor->cleanup = cleanupAllPass;
+- allPassDescriptor->connect_port = connectPortAllPass;
+- allPassDescriptor->deactivate = NULL;
+- allPassDescriptor->instantiate = instantiateAllPass;
+- allPassDescriptor->run = runAllPass;
+- allPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (allPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)allPassDescriptor->PortDescriptors);
+- free((char **)allPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)allPassDescriptor->PortRangeHints);
+- free(allPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RThighpass.c b/RThighpass.c
+deleted file mode 100644
+index 3376ad9..0000000
+--- a/RThighpass.c
++++ /dev/null
+@@ -1,251 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define HIGHPASS_FC 0
+-#define HIGHPASS_Q 1
+-#define HIGHPASS_INPUT 2
+-#define HIGHPASS_OUTPUT 3
+-
+-static LADSPA_Descriptor *highPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} HighPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return highPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateHighPass(LADSPA_Handle instance) {
+- HighPass *plugin_data = (HighPass *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupHighPass(LADSPA_Handle instance) {
+- HighPass *plugin_data = (HighPass *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortHighPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- HighPass *plugin;
+-
+- plugin = (HighPass *)instance;
+- switch (port) {
+- case HIGHPASS_FC:
+- plugin->fc = data;
+- break;
+- case HIGHPASS_Q:
+- plugin->Q = data;
+- break;
+- case HIGHPASS_INPUT:
+- plugin->input = data;
+- break;
+- case HIGHPASS_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateHighPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- HighPass *plugin_data = (HighPass *)malloc(sizeof(HighPass));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runHighPass(LADSPA_Handle instance, unsigned long sample_count)
{
+- HighPass *plugin_data = (HighPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Bandwidth (octaves) (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- hp_set_params(filter, fc, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- highPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (highPassDescriptor) {
+- highPassDescriptor->UniqueID = 9007;
+- highPassDescriptor->Label = "RThighpass";
+- highPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- highPassDescriptor->Name =
+- D_("RT 2nd-order highpass");
+- highPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- highPassDescriptor->Copyright =
+- "GPL";
+- highPassDescriptor->PortCount = 4;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
+- sizeof(LADSPA_PortDescriptor));
+- highPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
+- sizeof(LADSPA_PortRangeHint));
+- highPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(4, sizeof(char*));
+- highPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[HIGHPASS_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[HIGHPASS_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[HIGHPASS_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[HIGHPASS_FC].LowerBound = 0;
+- port_range_hints[HIGHPASS_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Q */
+- port_descriptors[HIGHPASS_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[HIGHPASS_Q] =
+- D_("Q");
+- port_range_hints[HIGHPASS_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[HIGHPASS_Q].LowerBound = 0;
+- port_range_hints[HIGHPASS_Q].UpperBound = 5;
+-
+- /* Parameters for Input */
+- port_descriptors[HIGHPASS_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[HIGHPASS_INPUT] =
+- D_("Input");
+- port_range_hints[HIGHPASS_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[HIGHPASS_INPUT].LowerBound = -1.0;
+- port_range_hints[HIGHPASS_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[HIGHPASS_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[HIGHPASS_OUTPUT] =
+- D_("Output");
+- port_range_hints[HIGHPASS_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[HIGHPASS_OUTPUT].LowerBound = -1.0;
+- port_range_hints[HIGHPASS_OUTPUT].UpperBound = +1.0;
+-
+- highPassDescriptor->activate = activateHighPass;
+- highPassDescriptor->cleanup = cleanupHighPass;
+- highPassDescriptor->connect_port = connectPortHighPass;
+- highPassDescriptor->deactivate = NULL;
+- highPassDescriptor->instantiate = instantiateHighPass;
+- highPassDescriptor->run = runHighPass;
+- highPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (highPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)highPassDescriptor->PortDescriptors);
+- free((char **)highPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)highPassDescriptor->PortRangeHints);
+- free(highPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RThighshelf.c b/RThighshelf.c
+deleted file mode 100644
+index 9d02d45..0000000
+--- a/RThighshelf.c
++++ /dev/null
+@@ -1,269 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define HIGHSHELF_GAIN 0
+-#define HIGHSHELF_FC 1
+-#define HIGHSHELF_Q 2
+-#define HIGHSHELF_INPUT 3
+-#define HIGHSHELF_OUTPUT 4
+-
+-static LADSPA_Descriptor *highShelfDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *gain;
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} HighShelf;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return highShelfDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateHighShelf(LADSPA_Handle instance) {
+- HighShelf *plugin_data = (HighShelf *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupHighShelf(LADSPA_Handle instance) {
+- HighShelf *plugin_data = (HighShelf *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortHighShelf(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- HighShelf *plugin;
+-
+- plugin = (HighShelf *)instance;
+- switch (port) {
+- case HIGHSHELF_GAIN:
+- plugin->gain = data;
+- break;
+- case HIGHSHELF_FC:
+- plugin->fc = data;
+- break;
+- case HIGHSHELF_Q:
+- plugin->Q = data;
+- break;
+- case HIGHSHELF_INPUT:
+- plugin->input = data;
+- break;
+- case HIGHSHELF_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateHighShelf(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- HighShelf *plugin_data = (HighShelf *)malloc(sizeof(HighShelf));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runHighShelf(LADSPA_Handle instance, unsigned long
sample_count) {
+- HighShelf *plugin_data = (HighShelf *)instance;
+-
+- /* Gain (dB) (float value) */
+- const LADSPA_Data gain = *(plugin_data->gain);
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Bandwidth (octaves) (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- hs_set_params(filter, fc, gain, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- highShelfDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (highShelfDescriptor) {
+- highShelfDescriptor->UniqueID = 9003;
+- highShelfDescriptor->Label = "RThighshelf";
+- highShelfDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- highShelfDescriptor->Name =
+- D_("RT High Shelf");
+- highShelfDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- highShelfDescriptor->Copyright =
+- "GPL";
+- highShelfDescriptor->PortCount = 5;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
+- sizeof(LADSPA_PortDescriptor));
+- highShelfDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
+- sizeof(LADSPA_PortRangeHint));
+- highShelfDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(5, sizeof(char*));
+- highShelfDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Gain (dB) */
+- port_descriptors[HIGHSHELF_GAIN] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[HIGHSHELF_GAIN] =
+- D_("Gain (dB)");
+- port_range_hints[HIGHSHELF_GAIN].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_0;
+- port_range_hints[HIGHSHELF_GAIN].LowerBound = -70;
+- port_range_hints[HIGHSHELF_GAIN].UpperBound = +30;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[HIGHSHELF_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[HIGHSHELF_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[HIGHSHELF_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[HIGHSHELF_FC].LowerBound = 0;
+- port_range_hints[HIGHSHELF_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Quality Factor */
+- port_descriptors[HIGHSHELF_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[HIGHSHELF_Q] =
+- D_("Q");
+- port_range_hints[HIGHSHELF_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[HIGHSHELF_Q].LowerBound = 0;
+- port_range_hints[HIGHSHELF_Q].UpperBound = 5;
+-
+- /* Parameters for Input */
+- port_descriptors[HIGHSHELF_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[HIGHSHELF_INPUT] =
+- D_("Input");
+- port_range_hints[HIGHSHELF_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[HIGHSHELF_INPUT].LowerBound = -1.0;
+- port_range_hints[HIGHSHELF_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[HIGHSHELF_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[HIGHSHELF_OUTPUT] =
+- D_("Output");
+- port_range_hints[HIGHSHELF_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[HIGHSHELF_OUTPUT].LowerBound = -1.0;
+- port_range_hints[HIGHSHELF_OUTPUT].UpperBound = +1.0;
+-
+- highShelfDescriptor->activate = activateHighShelf;
+- highShelfDescriptor->cleanup = cleanupHighShelf;
+- highShelfDescriptor->connect_port = connectPortHighShelf;
+- highShelfDescriptor->deactivate = NULL;
+- highShelfDescriptor->instantiate = instantiateHighShelf;
+- highShelfDescriptor->run = runHighShelf;
+- highShelfDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (highShelfDescriptor) {
+- free((LADSPA_PortDescriptor
*)highShelfDescriptor->PortDescriptors);
+- free((char **)highShelfDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)highShelfDescriptor->PortRangeHints);
+- free(highShelfDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTlowpass.c b/RTlowpass.c
+deleted file mode 100644
+index 9ea377f..0000000
+--- a/RTlowpass.c
++++ /dev/null
+@@ -1,251 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define LOWPASS_FC 0
+-#define LOWPASS_Q 1
+-#define LOWPASS_INPUT 2
+-#define LOWPASS_OUTPUT 3
+-
+-static LADSPA_Descriptor *lowPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} LowPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return lowPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateLowPass(LADSPA_Handle instance) {
+- LowPass *plugin_data = (LowPass *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupLowPass(LADSPA_Handle instance) {
+- LowPass *plugin_data = (LowPass *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortLowPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- LowPass *plugin;
+-
+- plugin = (LowPass *)instance;
+- switch (port) {
+- case LOWPASS_FC:
+- plugin->fc = data;
+- break;
+- case LOWPASS_Q:
+- plugin->Q = data;
+- break;
+- case LOWPASS_INPUT:
+- plugin->input = data;
+- break;
+- case LOWPASS_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateLowPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- LowPass *plugin_data = (LowPass *)malloc(sizeof(LowPass));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runLowPass(LADSPA_Handle instance, unsigned long sample_count) {
+- LowPass *plugin_data = (LowPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Bandwidth (octaves) (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- lp_set_params(filter, fc, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- lowPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (lowPassDescriptor) {
+- lowPassDescriptor->UniqueID = 9006;
+- lowPassDescriptor->Label = "RTlowpass";
+- lowPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- lowPassDescriptor->Name =
+- D_("RT 2nd-order lowpass");
+- lowPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- lowPassDescriptor->Copyright =
+- "GPL";
+- lowPassDescriptor->PortCount = 4;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
+- sizeof(LADSPA_PortDescriptor));
+- lowPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
+- sizeof(LADSPA_PortRangeHint));
+- lowPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(4, sizeof(char*));
+- lowPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[LOWPASS_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LOWPASS_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[LOWPASS_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[LOWPASS_FC].LowerBound = 0;
+- port_range_hints[LOWPASS_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Q */
+- port_descriptors[LOWPASS_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LOWPASS_Q] =
+- D_("Q");
+- port_range_hints[LOWPASS_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[LOWPASS_Q].LowerBound = 0;
+- port_range_hints[LOWPASS_Q].UpperBound = 5;
+-
+- /* Parameters for Input */
+- port_descriptors[LOWPASS_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[LOWPASS_INPUT] =
+- D_("Input");
+- port_range_hints[LOWPASS_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LOWPASS_INPUT].LowerBound = -1.0;
+- port_range_hints[LOWPASS_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[LOWPASS_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[LOWPASS_OUTPUT] =
+- D_("Output");
+- port_range_hints[LOWPASS_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LOWPASS_OUTPUT].LowerBound = -1.0;
+- port_range_hints[LOWPASS_OUTPUT].UpperBound = +1.0;
+-
+- lowPassDescriptor->activate = activateLowPass;
+- lowPassDescriptor->cleanup = cleanupLowPass;
+- lowPassDescriptor->connect_port = connectPortLowPass;
+- lowPassDescriptor->deactivate = NULL;
+- lowPassDescriptor->instantiate = instantiateLowPass;
+- lowPassDescriptor->run = runLowPass;
+- lowPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (lowPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)lowPassDescriptor->PortDescriptors);
+- free((char **)lowPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)lowPassDescriptor->PortRangeHints);
+- free(lowPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTlowshelf.c b/RTlowshelf.c
+deleted file mode 100644
+index 12a2c7c..0000000
+--- a/RTlowshelf.c
++++ /dev/null
+@@ -1,269 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define LOWSHELF_GAIN 0
+-#define LOWSHELF_FC 1
+-#define LOWSHELF_Q 2
+-#define LOWSHELF_INPUT 3
+-#define LOWSHELF_OUTPUT 4
+-
+-static LADSPA_Descriptor *lowShelfDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *gain;
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} LowShelf;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return lowShelfDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateLowShelf(LADSPA_Handle instance) {
+- LowShelf *plugin_data = (LowShelf *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupLowShelf(LADSPA_Handle instance) {
+- LowShelf *plugin_data = (LowShelf *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortLowShelf(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- LowShelf *plugin;
+-
+- plugin = (LowShelf *)instance;
+- switch (port) {
+- case LOWSHELF_GAIN:
+- plugin->gain = data;
+- break;
+- case LOWSHELF_FC:
+- plugin->fc = data;
+- break;
+- case LOWSHELF_Q:
+- plugin->Q = data;
+- break;
+- case LOWSHELF_INPUT:
+- plugin->input = data;
+- break;
+- case LOWSHELF_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateLowShelf(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- LowShelf *plugin_data = (LowShelf *)malloc(sizeof(LowShelf));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runLowShelf(LADSPA_Handle instance, unsigned long sample_count)
{
+- LowShelf *plugin_data = (LowShelf *)instance;
+-
+- /* Gain (dB) (float value) */
+- const LADSPA_Data gain = *(plugin_data->gain);
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Bandwidth (octaves) (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- ls_set_params(filter, fc, gain, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- lowShelfDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (lowShelfDescriptor) {
+- lowShelfDescriptor->UniqueID = 9002;
+- lowShelfDescriptor->Label = "RTlowshelf";
+- lowShelfDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- lowShelfDescriptor->Name =
+- D_("RT Low Shelf");
+- lowShelfDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- lowShelfDescriptor->Copyright =
+- "GPL";
+- lowShelfDescriptor->PortCount = 5;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
+- sizeof(LADSPA_PortDescriptor));
+- lowShelfDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
+- sizeof(LADSPA_PortRangeHint));
+- lowShelfDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(5, sizeof(char*));
+- lowShelfDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Gain (dB) */
+- port_descriptors[LOWSHELF_GAIN] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LOWSHELF_GAIN] =
+- D_("Gain (dB)");
+- port_range_hints[LOWSHELF_GAIN].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_0;
+- port_range_hints[LOWSHELF_GAIN].LowerBound = -70;
+- port_range_hints[LOWSHELF_GAIN].UpperBound = +30;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[LOWSHELF_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LOWSHELF_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[LOWSHELF_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[LOWSHELF_FC].LowerBound = 0;
+- port_range_hints[LOWSHELF_FC].UpperBound = (LADSPA_Data) 0.4;
+-
+- /* Parameters for Quality Factor */
+- port_descriptors[LOWSHELF_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LOWSHELF_Q] =
+- D_("Q");
+- port_range_hints[LOWSHELF_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[LOWSHELF_Q].LowerBound = 0;
+- port_range_hints[LOWSHELF_Q].UpperBound = 5;
+-
+- /* Parameters for Input */
+- port_descriptors[LOWSHELF_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[LOWSHELF_INPUT] =
+- D_("Input");
+- port_range_hints[LOWSHELF_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LOWSHELF_INPUT].LowerBound = -1.0;
+- port_range_hints[LOWSHELF_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[LOWSHELF_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[LOWSHELF_OUTPUT] =
+- D_("Output");
+- port_range_hints[LOWSHELF_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LOWSHELF_OUTPUT].LowerBound = -1.0;
+- port_range_hints[LOWSHELF_OUTPUT].UpperBound = +1.0;
+-
+- lowShelfDescriptor->activate = activateLowShelf;
+- lowShelfDescriptor->cleanup = cleanupLowShelf;
+- lowShelfDescriptor->connect_port = connectPortLowShelf;
+- lowShelfDescriptor->deactivate = NULL;
+- lowShelfDescriptor->instantiate = instantiateLowShelf;
+- lowShelfDescriptor->run = runLowShelf;
+- lowShelfDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (lowShelfDescriptor) {
+- free((LADSPA_PortDescriptor
*)lowShelfDescriptor->PortDescriptors);
+- free((char **)lowShelfDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)lowShelfDescriptor->PortRangeHints);
+- free(lowShelfDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTlr4hipass.c b/RTlr4hipass.c
+deleted file mode 100644
+index 15d6c49..0000000
+--- a/RTlr4hipass.c
++++ /dev/null
+@@ -1,239 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define LR4HIGHPASS_FC 0
+-#define LR4HIGHPASS_INPUT 1
+-#define LR4HIGHPASS_OUTPUT 2
+-
+-static LADSPA_Descriptor *lr4highPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *fc;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filters;
+- float fs;
+-} LR4HighPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return lr4highPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateLR4HighPass(LADSPA_Handle instance) {
+- LR4HighPass *plugin_data = (LR4HighPass *)instance;
+- biquad *filters = plugin_data->filters;
+- float fs = plugin_data->fs;
+- biquad_init(&filters[0]);
+- biquad_init(&filters[1]);
+- plugin_data->filters = filters;
+- plugin_data->fs = fs;
+-}
+-
+-static void cleanupLR4HighPass(LADSPA_Handle instance) {
+- LR4HighPass *plugin_data = (LR4HighPass *)instance;
+- free(plugin_data->filters);
+- free(instance);
+-}
+-
+-static void connectPortLR4HighPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- LR4HighPass *plugin;
+-
+- plugin = (LR4HighPass *)instance;
+- switch (port) {
+- case LR4HIGHPASS_FC:
+- plugin->fc = data;
+- break;
+- case LR4HIGHPASS_INPUT:
+- plugin->input = data;
+- break;
+- case LR4HIGHPASS_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateLR4HighPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- LR4HighPass *plugin_data = (LR4HighPass *)malloc(sizeof(LR4HighPass));
+- biquad *filters = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+-
+- filters = calloc(2, sizeof(biquad));
+- biquad_init(&filters[0]);
+- biquad_init(&filters[1]);
+-
+- plugin_data->filters = filters;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runLR4HighPass(LADSPA_Handle instance, unsigned long
sample_count) {
+- LR4HighPass *plugin_data = (LR4HighPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filters = plugin_data->filters;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+- bq_t in;
+-
+- hp_set_params(&filters[0], fc, 0.7071068, fs);
+- hp_set_params(&filters[1], fc, 0.7071068, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- in = biquad_run(&filters[0], input[pos]);
+- in = biquad_run(&filters[1], in);
+- buffer_write(output[pos], (LADSPA_Data) in);
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- lr4highPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (lr4highPassDescriptor) {
+- lr4highPassDescriptor->UniqueID = 9021;
+- lr4highPassDescriptor->Label = "RTlr4hipass";
+- lr4highPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- lr4highPassDescriptor->Name =
+- D_("RT LR4 highpass");
+- lr4highPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- lr4highPassDescriptor->Copyright =
+- "GPL";
+- lr4highPassDescriptor->PortCount = 3;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
+- sizeof(LADSPA_PortDescriptor));
+- lr4highPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
+- sizeof(LADSPA_PortRangeHint));
+- lr4highPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(3, sizeof(char*));
+- lr4highPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[LR4HIGHPASS_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LR4HIGHPASS_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[LR4HIGHPASS_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[LR4HIGHPASS_FC].LowerBound = 0;
+- port_range_hints[LR4HIGHPASS_FC].UpperBound = (LADSPA_Data)
0.4;
+-
+- /* Parameters for Input */
+- port_descriptors[LR4HIGHPASS_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[LR4HIGHPASS_INPUT] =
+- D_("Input");
+- port_range_hints[LR4HIGHPASS_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LR4HIGHPASS_INPUT].LowerBound = -1.0;
+- port_range_hints[LR4HIGHPASS_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[LR4HIGHPASS_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[LR4HIGHPASS_OUTPUT] =
+- D_("Output");
+- port_range_hints[LR4HIGHPASS_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LR4HIGHPASS_OUTPUT].LowerBound = -1.0;
+- port_range_hints[LR4HIGHPASS_OUTPUT].UpperBound = +1.0;
+-
+- lr4highPassDescriptor->activate = activateLR4HighPass;
+- lr4highPassDescriptor->cleanup = cleanupLR4HighPass;
+- lr4highPassDescriptor->connect_port = connectPortLR4HighPass;
+- lr4highPassDescriptor->deactivate = NULL;
+- lr4highPassDescriptor->instantiate = instantiateLR4HighPass;
+- lr4highPassDescriptor->run = runLR4HighPass;
+- lr4highPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (lr4highPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)lr4highPassDescriptor->PortDescriptors);
+- free((char **)lr4highPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)lr4highPassDescriptor->PortRangeHints);
+- free(lr4highPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTlr4lowpass.c b/RTlr4lowpass.c
+deleted file mode 100644
+index 16ad5c9..0000000
+--- a/RTlr4lowpass.c
++++ /dev/null
+@@ -1,239 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define LR4LOWPASS_FC 0
+-#define LR4LOWPASS_INPUT 1
+-#define LR4LOWPASS_OUTPUT 2
+-
+-static LADSPA_Descriptor *lr4lowPassDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *fc;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filters;
+- float fs;
+-} LR4LowPass;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return lr4lowPassDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateLR4LowPass(LADSPA_Handle instance) {
+- LR4LowPass *plugin_data = (LR4LowPass *)instance;
+- biquad *filters = plugin_data->filters;
+- float fs = plugin_data->fs;
+- biquad_init(&filters[0]);
+- biquad_init(&filters[1]);
+- plugin_data->filters = filters;
+- plugin_data->fs = fs;
+-}
+-
+-static void cleanupLR4LowPass(LADSPA_Handle instance) {
+- LR4LowPass *plugin_data = (LR4LowPass *)instance;
+- free(plugin_data->filters);
+- free(instance);
+-}
+-
+-static void connectPortLR4LowPass(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- LR4LowPass *plugin;
+-
+- plugin = (LR4LowPass *)instance;
+- switch (port) {
+- case LR4LOWPASS_FC:
+- plugin->fc = data;
+- break;
+- case LR4LOWPASS_INPUT:
+- plugin->input = data;
+- break;
+- case LR4LOWPASS_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateLR4LowPass(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- LR4LowPass *plugin_data = (LR4LowPass *)malloc(sizeof(LR4LowPass));
+- biquad *filters = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+-
+- filters = calloc(2, sizeof(biquad));
+- biquad_init(&filters[0]);
+- biquad_init(&filters[1]);
+-
+- plugin_data->filters = filters;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runLR4LowPass(LADSPA_Handle instance, unsigned long
sample_count) {
+- LR4LowPass *plugin_data = (LR4LowPass *)instance;
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filters = plugin_data->filters;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+- bq_t in;
+-
+- lp_set_params(&filters[0], fc, 0.7071068, fs);
+- lp_set_params(&filters[1], fc, 0.7071068, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- in = biquad_run(&filters[0], input[pos]);
+- in = biquad_run(&filters[1], in);
+- buffer_write(output[pos], (LADSPA_Data) in);
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- lr4lowPassDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (lr4lowPassDescriptor) {
+- lr4lowPassDescriptor->UniqueID = 9020;
+- lr4lowPassDescriptor->Label = "RTlr4lowpass";
+- lr4lowPassDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- lr4lowPassDescriptor->Name =
+- D_("RT LR4 lowpass");
+- lr4lowPassDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- lr4lowPassDescriptor->Copyright =
+- "GPL";
+- lr4lowPassDescriptor->PortCount = 3;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
+- sizeof(LADSPA_PortDescriptor));
+- lr4lowPassDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
+- sizeof(LADSPA_PortRangeHint));
+- lr4lowPassDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(3, sizeof(char*));
+- lr4lowPassDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[LR4LOWPASS_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[LR4LOWPASS_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[LR4LOWPASS_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[LR4LOWPASS_FC].LowerBound = 0;
+- port_range_hints[LR4LOWPASS_FC].UpperBound = (LADSPA_Data)
0.4;
+-
+- /* Parameters for Input */
+- port_descriptors[LR4LOWPASS_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[LR4LOWPASS_INPUT] =
+- D_("Input");
+- port_range_hints[LR4LOWPASS_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LR4LOWPASS_INPUT].LowerBound = -1.0;
+- port_range_hints[LR4LOWPASS_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[LR4LOWPASS_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[LR4LOWPASS_OUTPUT] =
+- D_("Output");
+- port_range_hints[LR4LOWPASS_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[LR4LOWPASS_OUTPUT].LowerBound = -1.0;
+- port_range_hints[LR4LOWPASS_OUTPUT].UpperBound = +1.0;
+-
+- lr4lowPassDescriptor->activate = activateLR4LowPass;
+- lr4lowPassDescriptor->cleanup = cleanupLR4LowPass;
+- lr4lowPassDescriptor->connect_port = connectPortLR4LowPass;
+- lr4lowPassDescriptor->deactivate = NULL;
+- lr4lowPassDescriptor->instantiate = instantiateLR4LowPass;
+- lr4lowPassDescriptor->run = runLR4LowPass;
+- lr4lowPassDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (lr4lowPassDescriptor) {
+- free((LADSPA_PortDescriptor
*)lr4lowPassDescriptor->PortDescriptors);
+- free((char **)lr4lowPassDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)lr4lowPassDescriptor->PortRangeHints);
+- free(lr4lowPassDescriptor);
+- }
+-
+-}
+-
+diff --git a/RTparaeq.c b/RTparaeq.c
+deleted file mode 100644
+index 3e77a83..0000000
+--- a/RTparaeq.c
++++ /dev/null
+@@ -1,269 +0,0 @@
+-/* Copyright 2013 Richard Taylor
+-
+- This program is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program. If not, see <http://www.gnu.org/licenses/>.
+-
+- CREDITS:
+-
+- Much of the code here was adapted from Steve Harris's swh-plugins
+- (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
+- making your code available.
+-
+- The guts of the code, in util/biquad.h, is an implementation
+- of the biquad filters described in Robert Bristow-Johnson's "Cookbook
+- formulae for audio EQ biquad filter coefficients" found here:
+- http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#define _ISOC9X_SOURCE 1
+-#define _ISOC99_SOURCE 1
+-#define __USE_ISOC99 1
+-#define __USE_ISOC9X 1
+-
+-#include <math.h>
+-
+-#include "ladspa.h"
+-
+-#include "util/biquad.h"
+-
+-#define SINGLEPARA_GAIN 0
+-#define SINGLEPARA_FC 1
+-#define SINGLEPARA_Q 2
+-#define SINGLEPARA_INPUT 3
+-#define SINGLEPARA_OUTPUT 4
+-
+-static LADSPA_Descriptor *singleParaDescriptor = NULL;
+-
+-typedef struct {
+- LADSPA_Data *gain;
+- LADSPA_Data *fc;
+- LADSPA_Data *Q;
+- LADSPA_Data *input;
+- LADSPA_Data *output;
+- biquad * filter;
+- float fs;
+-} SinglePara;
+-
+-const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
+- switch (index) {
+- case 0:
+- return singleParaDescriptor;
+- default:
+- return NULL;
+- }
+-}
+-
+-static void activateSinglePara(LADSPA_Handle instance) {
+- SinglePara *plugin_data = (SinglePara *)instance;
+- biquad *filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+- biquad_init(filter);
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+-}
+-
+-static void cleanupSinglePara(LADSPA_Handle instance) {
+- SinglePara *plugin_data = (SinglePara *)instance;
+- free(plugin_data->filter);
+- free(instance);
+-}
+-
+-static void connectPortSinglePara(
+- LADSPA_Handle instance,
+- unsigned long port,
+- LADSPA_Data *data) {
+- SinglePara *plugin;
+-
+- plugin = (SinglePara *)instance;
+- switch (port) {
+- case SINGLEPARA_GAIN:
+- plugin->gain = data;
+- break;
+- case SINGLEPARA_FC:
+- plugin->fc = data;
+- break;
+- case SINGLEPARA_Q:
+- plugin->Q = data;
+- break;
+- case SINGLEPARA_INPUT:
+- plugin->input = data;
+- break;
+- case SINGLEPARA_OUTPUT:
+- plugin->output = data;
+- break;
+- }
+-}
+-
+-static LADSPA_Handle instantiateSinglePara(
+- const LADSPA_Descriptor *descriptor,
+- unsigned long s_rate) {
+- SinglePara *plugin_data = (SinglePara *)malloc(sizeof(SinglePara));
+- biquad *filter = NULL;
+- float fs;
+-
+- fs = (float)s_rate;
+- filter = malloc(sizeof(biquad));
+- biquad_init(filter);
+-
+- plugin_data->filter = filter;
+- plugin_data->fs = fs;
+-
+- return (LADSPA_Handle)plugin_data;
+-}
+-
+-#undef buffer_write
+-#define buffer_write(b, v) (b = v)
+-
+-static void runSinglePara(LADSPA_Handle instance, unsigned long
sample_count) {
+- SinglePara *plugin_data = (SinglePara *)instance;
+-
+- /* Gain (dB) (float value) */
+- const LADSPA_Data gain = *(plugin_data->gain);
+-
+- /* Frequency (Hz) (float value) */
+- const LADSPA_Data fc = *(plugin_data->fc);
+-
+- /* Quality factor (float value) */
+- const LADSPA_Data Q = *(plugin_data->Q);
+-
+- /* Input (array of floats of length sample_count) */
+- const LADSPA_Data * const input = plugin_data->input;
+-
+- /* Output (array of floats of length sample_count) */
+- LADSPA_Data * const output = plugin_data->output;
+- biquad * filter = plugin_data->filter;
+- float fs = plugin_data->fs;
+-
+- unsigned long pos;
+-
+- eq_set_params(filter, fc, gain, Q, fs);
+-
+- for (pos = 0; pos < sample_count; pos++) {
+- buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
+- }
+-
+-}
+-
+-void _init(void);
+-void _init(void) {
+- char **port_names;
+- LADSPA_PortDescriptor *port_descriptors;
+- LADSPA_PortRangeHint *port_range_hints;
+-
+-#define D_(s) (s)
+-
+- singleParaDescriptor =
+- (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
+-
+- if (singleParaDescriptor) {
+- singleParaDescriptor->UniqueID = 9001;
+- singleParaDescriptor->Label = "RTparaeq";
+- singleParaDescriptor->Properties =
+- LADSPA_PROPERTY_HARD_RT_CAPABLE;
+- singleParaDescriptor->Name =
+- D_("RT parametric eq");
+- singleParaDescriptor->Maker =
+- "Richard Taylor <rtaylor AT tru.ca>";
+- singleParaDescriptor->Copyright =
+- "GPL";
+- singleParaDescriptor->PortCount = 5;
+-
+- port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
+- sizeof(LADSPA_PortDescriptor));
+- singleParaDescriptor->PortDescriptors =
+- (const LADSPA_PortDescriptor *)port_descriptors;
+-
+- port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
+- sizeof(LADSPA_PortRangeHint));
+- singleParaDescriptor->PortRangeHints =
+- (const LADSPA_PortRangeHint *)port_range_hints;
+-
+- port_names = (char **)calloc(5, sizeof(char*));
+- singleParaDescriptor->PortNames =
+- (const char **)port_names;
+-
+- /* Parameters for Gain (dB) */
+- port_descriptors[SINGLEPARA_GAIN] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[SINGLEPARA_GAIN] =
+- D_("Gain (dB)");
+- port_range_hints[SINGLEPARA_GAIN].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[SINGLEPARA_GAIN].LowerBound = -70;
+- port_range_hints[SINGLEPARA_GAIN].UpperBound = +30;
+-
+- /* Parameters for Frequency (Hz) */
+- port_descriptors[SINGLEPARA_FC] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[SINGLEPARA_FC] =
+- D_("Frequency (Hz)");
+- port_range_hints[SINGLEPARA_FC].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
+- port_range_hints[SINGLEPARA_FC].LowerBound = 0;
+- port_range_hints[SINGLEPARA_FC].UpperBound = (LADSPA_Data)
0.4;
+-
+- /* Parameters for Quality Factor */
+- port_descriptors[SINGLEPARA_Q] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
+- port_names[SINGLEPARA_Q] =
+- D_("Q");
+- port_range_hints[SINGLEPARA_Q].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
+- port_range_hints[SINGLEPARA_Q].LowerBound = 0;
+- port_range_hints[SINGLEPARA_Q].UpperBound = 100;
+-
+- /* Parameters for Input */
+- port_descriptors[SINGLEPARA_INPUT] =
+- LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
+- port_names[SINGLEPARA_INPUT] =
+- D_("Input");
+- port_range_hints[SINGLEPARA_INPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[SINGLEPARA_INPUT].LowerBound = -1.0;
+- port_range_hints[SINGLEPARA_INPUT].UpperBound = +1.0;
+-
+- /* Parameters for Output */
+- port_descriptors[SINGLEPARA_OUTPUT] =
+- LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
+- port_names[SINGLEPARA_OUTPUT] =
+- D_("Output");
+- port_range_hints[SINGLEPARA_OUTPUT].HintDescriptor =
+- LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
+- port_range_hints[SINGLEPARA_OUTPUT].LowerBound = -1.0;
+- port_range_hints[SINGLEPARA_OUTPUT].UpperBound = +1.0;
+-
+- singleParaDescriptor->activate = activateSinglePara;
+- singleParaDescriptor->cleanup = cleanupSinglePara;
+- singleParaDescriptor->connect_port = connectPortSinglePara;
+- singleParaDescriptor->deactivate = NULL;
+- singleParaDescriptor->instantiate = instantiateSinglePara;
+- singleParaDescriptor->run = runSinglePara;
+- singleParaDescriptor->run_adding = NULL;
+- }
+-}
+-
+-void _fini(void);
+-void _fini(void) {
+- if (singleParaDescriptor) {
+- free((LADSPA_PortDescriptor
*)singleParaDescriptor->PortDescriptors);
+- free((char **)singleParaDescriptor->PortNames);
+- free((LADSPA_PortRangeHint
*)singleParaDescriptor->PortRangeHints);
+- free(singleParaDescriptor);
+- }
+-
+-}
+-
+diff --git a/build/.keep b/build/.keep
+new file mode 100644
+index 0000000..e69de29
+diff --git a/cmake/compilerwarnings.cmake b/cmake/compilerwarnings.cmake
+new file mode 100644
+index 0000000..7f6f935
+--- /dev/null
++++ b/cmake/compilerwarnings.cmake
+@@ -0,0 +1,37 @@
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Werror" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wall" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wextra" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -pedantic" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-align" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wconversion" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-nonliteral" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-security" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wfloat-equal" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winit-self" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wlogical-op" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wmissing-include-dirs" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-write-strings" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
++#set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wswitch-default" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wswitch-enum" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wundef" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wunused-macros" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-unused-parameter" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wshadow" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpacked" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wredundant-decls" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wunreachable-code" )
++set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winline" )
++#
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNINGS_COMMONFLAGS}")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wbad-function-cast")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wnested-externs")
++
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS_COMMONFLAGS}")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual" )
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++" )
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast" )
+diff --git a/cmake/cppcheck.cmake b/cmake/cppcheck.cmake
+new file mode 100644
+index 0000000..86d49a2
+--- /dev/null
++++ b/cmake/cppcheck.cmake
+@@ -0,0 +1,12 @@
++find_program(CPPCHECK_EXE "cppcheck")
++
++if(CPPCHECK_EXE)
++ message(STATUS "[CPPCHECK] at ${CPPCHECK_EXE}")
++ add_custom_target(cppcheck)
++
++ add_custom_command(TARGET cppcheck POST_BUILD
++ COMMAND ${CPPCHECK_EXE} --template=gcc -f --std=posix --std=c99
--std=c++11 --enable=all -i ${PROJECT_BINARY_DIR} -I
${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}
++ )
++else()
++ message(STATUS "[CPPCHECK] Could not find cppcheck executable")
++endif()
+diff --git a/include/biquad.h b/include/biquad.h
+new file mode 100644
+index 0000000..49451d8
+--- /dev/null
++++ b/include/biquad.h
+@@ -0,0 +1,331 @@
++#ifndef BIQUAD_H
++#define BIQUAD_H
++
++#define LN_2_2 0.34657359f // ln(2)/2
++
++#include "ladspa-util.h"
++#include <math.h>
++
++#ifndef LIMIT
++#define LIMIT(v,l,u) (v<l?l:(v>u?u:v))
++#endif
++
++// rt 8.1.2013: store biquad coefficients and accumulators in double
++// precision, to limit effects of round-off error. Change this to
++// float if you need more speed: it probably won't make an audible
++// difference unless you need filters with really high Q or low
++// frequency.
++#ifndef BIQUAD_TYPE
++#define BIQUAD_TYPE double
++#endif
++
++// rt 25.6.2013: amplitude of square wave (at Nyquist freq)
++// added to kill denormals ... may need to experiment with
++// this value. NB: 1.e-18 = -360dB
++#define DENORMALKILLER 1.e-18;
++
++typedef BIQUAD_TYPE bq_t;
++
++/* Biquad filter (adapted from lisp code by Eli Brandt,
++ http://www.cs.cmu.edu/~eli/) */
++
++typedef struct {
++ bq_t a1;
++ bq_t a2;
++ bq_t b0;
++ bq_t b1;
++ bq_t b2;
++ bq_t x1;
++ bq_t x2;
++ bq_t y1;
++ bq_t y2;
++ bq_t dn; // denormal state (rt 25.6.2013)
++} biquad;
++
++typedef struct {
++ bq_t a1;
++ bq_t b0;
++ bq_t b1;
++ bq_t x1;
++ bq_t y1;
++ bq_t dn; // denormal state
++} bilin;
++
++
++static inline void biquad_init(biquad *f) {
++ f->x1 = 0.0f;
++ f->x2 = 0.0f;
++ f->y1 = 0.0f;
++ f->y2 = 0.0f;
++ f->dn = DENORMALKILLER;
++}
++
++static inline void bilin_init(bilin *f) {
++ f->x1 = 0.0f;
++ f->y1 = 0.0f;
++ f->dn = DENORMALKILLER;
++}
++
++//static inline void eq_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
++// bq_t fs);
++static inline void eq_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
bq_t fs)
++{
++ bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0f, fs/2.0f) / fs;
++ bq_t J = pow(10.0f, gain * 0.025f);
++ bq_t cw = cos(w);
++ bq_t sw = sin(w);
++ Q = Q / J; // adjust so input Q is standard elec. eng. Q
++// bq_t g = sw * sinhf(LN_2_2 * LIMIT(bw, 0.0001f, 4.0f) * w / sw); //
case: bw
++ bq_t g = sw/(2.0*Q); // case: Q
++// bq_t g = sin(w0)/2.0 * sqrt( (J + 1.0/J)*(1.0/S - 1.0) + 2.0 ) //
case: S
++
++ bq_t a0 = 1.0f + g / J;
++ bq_t a0r = 1.0f / a0;
++
++ f->b0 = (1.0 + (g * J)) * a0r;
++ f->b1 = (-2.0 * cw) * a0r;
++ f->b2 = (1.0 - (g * J)) * a0r;
++ f->a1 = -(f->b1);
++ f->a2 = ((g / J) - 1.0) * a0r;
++}
++
++//static inline void ls_set_params(biquad *f, bq_t fc, bq_t gain, bq_t
slope,
++// bq_t fs);
++static inline void ls_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
++ bq_t fs)
++{
++ bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0, fs/2.0) / fs;
++ bq_t cw = cos(w);
++ bq_t sw = sin(w);
++ bq_t A = powf(10.0f, (float) (gain * (bq_t) 0.025));
++
++// rt 8.1.2013: increased slope limit from 1.0f to 5.0f:
++// bq_t b = sqrt(((1.0f + A * A) / LIMIT(slope, 0.0001f, 5.0f)) - ((A -
++// 1.0f) * (A - 1.0)));
++
++// bq_t apc = cw * (A + 1.0f);
++// bq_t amc = cw * (A - 1.0f);
++// bq_t bs = b * sw;
++// bq_t a0r = 1.0f / (A + 1.0f + amc + bs);
++
++// f->b0 = a0r * A * (A + 1.0f - amc + bs);
++// f->b1 = a0r * 2.0f * A * (A - 1.0f - apc);
++// f->b2 = a0r * A * (A + 1.0f - amc - bs);
++// f->a1 = a0r * 2.0f * (A - 1.0f + apc);
++// f->a2 = a0r * (-A - 1.0f - amc + bs);
++
++ // rt 22.1.2013 changed this to use Q instead of slope
++ bq_t alpha = sw / (2.0 * Q);
++ bq_t b = 2.0*sqrt(A)*alpha;
++ bq_t ap = A + 1.0;
++ bq_t am = A - 1.0;
++ bq_t a0 = ap + am*cw + b;
++ bq_t a0r = 1.0 / a0;
++
++ f->b0 = a0r * A * (ap - am*cw + b);
++ f->b1 = a0r * 2.0 * A * (am - ap*cw);
++ f->b2 = a0r * A * (ap - am*cw - b);
++ f->a1 = 2.0 * a0r * (am + ap*cw);
++ f->a2 = -a0r * (ap + am*cw - b);
++}
++
++//static inline void hs_set_params(biquad *f, bq_t fc, bq_t gain, bq_t
slope,
++// bq_t fs);
++static inline void hs_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
bq_t fs)
++{
++ bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0, fs/2.0) / fs;
++ bq_t cw = cos(w);
++ bq_t sw = sin(w);
++ bq_t A = powf(10.0f, (float) (gain * (bq_t) 0.025));
++// rt 8.1.2013: increased slope limit from 1.0f to 5.0f:
++// bq_t b = sqrt(((1.0f + A * A) / LIMIT(slope, 0.0001f, 5.0f)) - ((A -
++// 1.0f) * (A - 1.0f)));
++// bq_t apc = cw * (A + 1.0f);
++// bq_t amc = cw * (A - 1.0f);
++// bq_t bs = b * sw;
++// bq_t a0r = 1.0f / (A + 1.0f - amc + bs);
++
++// f->b0 = a0r * A * (A + 1.0f + amc + bs);
++// f->b1 = a0r * -2.0f * A * (A - 1.0f + apc);
++// f->b2 = a0r * A * (A + 1.0f + amc - bs);
++// f->a1 = a0r * -2.0f * (A - 1.0f - apc);
++// f->a2 = a0r * (-A - 1.0f + amc + bs);
++
++ // rt 22.1.2013 changed this to use Q instead of slope
++ bq_t alpha = sw / (2.0 * Q);
++ bq_t b = 2.0*sqrt(A)*alpha;
++ bq_t ap = A + 1.0;
++ bq_t am = A - 1.0;
++ bq_t a0 = ap - am*cw + b;
++ bq_t a0r = 1.0 / a0;
++
++ f->b0 = a0r * A * (ap + am*cw + b);
++ f->b1 = -a0r * 2.0 * A * (am + ap*cw);
++ f->b2 = a0r * A * (ap + am*cw - b);
++ f->a1 = -2.0 * a0r * (am - ap*cw);
++ f->a2 = -a0r * (ap - am*cw - b);
++}
++
++static inline void lp_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
++{
++ bq_t omega = 2.0 * M_PI * fc/fs;
++ bq_t sn = sin(omega);
++ bq_t cs = cos(omega);
++// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
++ bq_t alpha = sn / (2.0 * Q);
++
++ const bq_t a0r = 1.0 / (1.0 + alpha);
++ f->b0 = a0r * (1.0 - cs) * 0.5;
++ f->b1 = a0r * (1.0 - cs);
++ f->b2 = a0r * (1.0 - cs) * 0.5;
++ f->a1 = a0r * (2.0 * cs);
++ f->a2 = a0r * (alpha - 1.0);
++}
++
++static inline void hp_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
++{
++ bq_t omega = 2.0 * M_PI * fc/fs;
++ bq_t sn = sin(omega);
++ bq_t cs = cos(omega);
++// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
++ bq_t alpha = sn / (2.0 * Q);
++
++ const bq_t a0r = 1.0 / (1.0 + alpha);
++ f->b0 = a0r * (1.0 + cs) * 0.5;
++ f->b1 = a0r * -(1.0 + cs);
++ f->b2 = a0r * (1.0 + cs) * 0.5;
++ f->a1 = a0r * (2.0 * cs);
++ f->a2 = a0r * (alpha - 1.0);
++}
++
++static inline void bp_set_params(biquad *f, bq_t fc, bq_t bw, bq_t fs)
++{
++ bq_t omega = 2.0 * M_PI * fc/fs;
++ bq_t sn = sin(omega);
++ bq_t cs = cos(omega);
++ bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
++
++ const bq_t a0r = 1.0 / (1.0 + alpha);
++ f->b0 = a0r * alpha;
++ f->b1 = 0.0;
++ f->b2 = a0r * -alpha;
++ f->a1 = a0r * (2.0 * cs);
++ f->a2 = a0r * (alpha - 1.0);
++}
++
++// rt 8.1.2013: allpass from biquad cookbook
++static inline void ap_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
++{
++ bq_t omega = 2.0 * M_PI * fc/fs;
++ bq_t sn = sin(omega);
++ bq_t cs = cos(omega);
++// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
++ bq_t alpha = sn / (2.0 * Q);
++
++ bq_t a0 = 1.0 + alpha;
++ bq_t a0r = 1.0 / a0;
++ f->b0 = a0r * (1.0 - alpha);
++ f->b1 = a0r * (-2.0 * cs);
++ f->b2 = 1.0;
++ f->a1 = -f->b1;
++ f->a2 = -f->b0;
++}
++
++static inline void ap1_set_params(bilin *f, bq_t fc, bq_t fs)
++{
++// rt 8.1.2013: implementation of first-order digital allpass found here:
++//
https://ccrma.stanford.edu/realsimple/DelayVar/Phasing_First_Order_Allpass_Filters.html
++// see here for turning transfer function into difference equation:
++// http://en.wikipedia.org/wiki/Digital_filter
++ bq_t tphi = tan( M_PI * fc / fs);
++ bq_t p = (1.0f - tphi) / (1.0f + tphi);
++
++ // case 1: phase varies from 0 to 180 degrees
++ f->b0 = -p;
++ f->b1 = 1.0f;
++
++ // case 2: phase varies from 180 to 360 degrees
++// f->b0 = p;
++// f->b1 = -1.0f;
++
++ f->a1 = p;
++}
++
++// routine that runs a biquad (i.e. 2nd-order) digital filter
++static inline bq_t biquad_run(biquad *f, const bq_t x) {
++ bq_t y;
++
++// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
++ y = f->b0 * x + f->b1 * f->x1 + f->b2 * f->x2
++ + f->a1 * f->y1 + f->a2 * f->y2 + f->dn;
++ f->dn = -f->dn;
++
++// see previous commment
++// y = flush_to_zero(y);
++
++ f->x2 = f->x1;
++ f->x1 = x;
++ f->y2 = f->y1;
++ f->y1 = y;
++
++ return y;
++}
++
++// rt 2.9.2013: special version of biquad_run for 2nd-order
++// allpass; takes advantage of factoring to reduce floating-point
++// multiplications from 5 to 2
++static inline bq_t ap2_run(biquad *f, const bq_t x) {
++ bq_t y;
++
++// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
++ y = f->b0 * (x - f->y2) + f->b1 * (f->x1 - f->y1) + f->x2 + f->dn;
++ f->dn = -f->dn;
++
++// see previous commment
++// y = flush_to_zero(y);
++
++ f->x2 = f->x1;
++ f->x1 = x;
++ f->y2 = f->y1;
++ f->y1 = y;
++
++ return y;
++}
++
++// routine that runs a bilinear (i.e. 1st-order) digital filter
++static inline bq_t bilin_run(bilin *f, const bq_t x) {
++ bq_t y;
++
++// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
++ y = f->b0 * x + f->b1 * f->x1 + f->a1 * f->y1 + f->dn;
++ f->dn = -f->dn;
++
++// see previous commment
++// y = flush_to_zero(y);
++
++ f->x1 = x;
++ f->y1 = y;
++
++ return y;
++}
++
++// rt 2.9.2013: special version of bilin_run for 2nd-order
++// allpass; takes advantage of factoring to reduce floating-point
++// multiplications from 5 to 2
++static inline bq_t ap1_run(bilin *f, const bq_t x) {
++ bq_t y;
++
++// rt 15.5.2013: adding a Nyquist-frequency square-wave to kill denormals:
++ y = f->b0 * (x - f->y1) + f->x1 + f->dn;
++ f->dn = -f->dn;
++
++// see previous commment
++// y = flush_to_zero(y);
++
++ f->x1 = x;
++ f->y1 = y;
++
++ return y;
++}
++
++#endif
+diff --git a/include/ladspa-util.h b/include/ladspa-util.h
+new file mode 100644
+index 0000000..2f3264e
+--- /dev/null
++++ b/include/ladspa-util.h
+@@ -0,0 +1,211 @@
++/* Some misc util functions for audio DSP work, written by Steve Harris,
++ * December 2000
++ *
++ * steve AT plugin.org.uk
++ */
++
++#ifndef LADSPA_UTIL_H
++#define LADSPA_UTIL_H
++
++#include <math.h>
++#include <stdint.h>
++
++// 16.16 fixpoint
++typedef union {
++ int32_t all;
++ struct {
++#ifdef WORDS_BIGENDIAN
++ int16_t in;
++ uint16_t fr;
++#else
++ uint16_t fr;
++ int16_t in;
++#endif
++ } part;
++} fixp16;
++
++// 32.32 fixpoint
++typedef union {
++ int64_t all;
++ struct {
++#ifdef WORDS_BIGENDIAN
++ int32_t in;
++ uint32_t fr;
++#else
++ uint32_t fr;
++ int32_t in;
++#endif
++ } part;
++} fixp32;
++
++/* 32 bit "pointer cast" union */
++typedef union {
++ float f;
++ int32_t i;
++} ls_pcast32;
++
++// 1.0 / ln(2)
++#define LN2R 1.442695041f
++
++/* detet floating point denormal numbers by comparing them to the smallest
++ * normal, crap, but reliable */
++#define DN_CHECK(x, l) if (fabs(x) < 1e-38) printf("DN: "l"\n")
++
++// Denormalise floats, only actually needed for PIII and recent PowerPC
++//#define FLUSH_TO_ZERO(fv) (((*(unsigned
int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
++
++static inline float flush_to_zero(float f)
++{
++ ls_pcast32 v;
++
++ v.f = f;
++
++ // original: return (v.i & 0x7f800000) == 0 ? 0.0f : f;
++ // version from Tim Blechmann
++ return (v.i & 0x7f800000) < 0x08000000 ? 0.0f : f;
++}
++
++static inline void round_to_zero(volatile float *f)
++{
++ *f += 1e-18f;
++ *f -= 1e-18f;
++}
++
++/* A set of branchless clipping operations from Laurent de Soras */
++
++static inline float f_max(float x, float a)
++{
++ x -= a;
++ x += fabsf(x);
++ x *= 0.5f;
++ x += a;
++
++ return x;
++}
++
++static inline float f_min(float x, float b)
++{
++ x = b - x;
++ x += fabsf(x);
++ x *= 0.5f;
++ x = b - x;
++
++ return x;
++}
++
++static inline float f_clamp(float x, float a, float b)
++{
++ const float x1 = fabsf(x - a);
++ const float x2 = fabsf(x - b);
++
++ x = x1 + a + b;
++ x -= x2;
++ x *= 0.5f;
++
++ return x;
++}
++
++// Limit a value to be l<=v<=u
++#define LIMIT(v,l,u) ((v)<(l)?(l):((v)>(u)?(u):(v)))
++
++// Truncate-to-zero modulo (ANSI C doesn't specify) will only work
++// if -m < v < 2m
++#define MOD(v,m) (v<0?v+m:(v>=m?v-m:v))
++
++// Truncate-to-zero modulo (ANSI C doesn't specify) will only work
++// if v > -m and v < m
++#define NEG_MOD(v,m) ((v)<0?((v)+(m)):(v))
++
++// Convert a value in dB's to a coefficent
++#define DB_CO(g) ((g) > -90.0f ? powf(10.0f, (g) * 0.05f) : 0.0f)
++#define CO_DB(v) (20.0f * log10f(v))
++
++// Linearly interpolate [ = a * (1 - f) + b * f]
++#define LIN_INTERP(f,a,b) ((a) + (f) * ((b) - (a)))
++
++// Cubic interpolation function
++static inline float cube_interp(const float fr, const float inm1, const
float
++ in, const float inp1, const float inp2)
++{
++ return in + 0.5f * fr * (inp1 - inm1 +
++ fr * (4.0f * inp1 + 2.0f * inm1 - 5.0f * in - inp2 +
++ fr * (3.0f * (in - inp1) - inm1 + inp2)));
++}
++
++/* fast sin^2 aproxiamtion, adapted from jan AT rpgfan's posting to the
++ * music-dsp list */
++static inline float f_sin_sq(float angle)
++{
++ const float asqr = angle * angle;
++ float result = -2.39e-08f;
++
++ result *= asqr;
++ result += 2.7526e-06f;
++ result *= asqr;
++ result -= 1.98409e-04f;
++ result *= asqr;
++ result += 8.3333315e-03f;
++ result *= asqr;
++ result -= 1.666666664e-01f;
++ result *= asqr;
++ result += 1.0f;
++ result *= angle;
++
++ return result * result;
++}
++
++#define f_round(f) lrintf(f)
++
++// Truncate float to int
++static inline long int f_trunc(float f)
++{
++ return f_round(floorf(f));
++}
++
++/* Andrew Simper's pow(2, x) aproximation from the music-dsp list */
++
++#if 0
++
++/* original */
++static inline float f_pow2(float x)
++{
++ long *px = (long*)(&x); // store address of float as long pointer
++ const float tx = (x-0.5f) + (3<<22); // temporary value for truncation
++ const long lx = *((long*)&tx) - 0x4b400000; // integer power of 2
++ const float dx = x-(float)(lx); // float remainder of power of 2
++
++ x = 1.0f + dx*(0.6960656421638072f + // cubic apporoximation of 2^x
++ dx*(0.224494337302845f + // for x in the range [0, 1]
++ dx*(0.07944023841053369f)));
++ *px += (lx<<23); // add integer power of 2 to exponent
++
++ return x;
++}
++
++#else
++
++/* union version */
++static inline float f_pow2(float x)
++{
++ ls_pcast32 *px, tx, lx;
++ float dx;
++
++ px = (ls_pcast32 *)&x; // store address of float as long pointer
++ tx.f = (x-0.5f) + (3<<22); // temporary value for truncation
++ lx.i = tx.i - 0x4b400000; // integer power of 2
++ dx = x - (float)lx.i; // float remainder of power of 2
++
++ x = 1.0f + dx * (0.6960656421638072f + // cubic apporoximation of 2^x
++ dx * (0.224494337302845f + // for x in the range [0, 1]
++ dx * (0.07944023841053369f)));
++ (*px).i += (lx.i << 23); // add integer power of 2 to exponent
++
++ return (*px).f;
++}
++
++#endif
++
++/* Fast exponentiation function, y = e^x */
++#define f_exp(x) f_pow2(x * LN2R)
++
++#endif
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+new file mode 100644
+index 0000000..aa896e7
+--- /dev/null
++++ b/src/CMakeLists.txt
+@@ -0,0 +1,26 @@
++include_directories(${PROJECT_SOURCE_DIR}/include)
++
++option(USE_SSE2 "use SSE2 instructions to avoid floating point
denormalization issues" on)
++
++add_library(RTallpass1 MODULE RTallpass1.c)
++add_library(RTallpass2 MODULE RTallpass2.c)
++
++add_library(RTlowpass MODULE RTlowpass.c)
++add_library(RThighpass MODULE RThighpass.c)
++
++add_library(RTlowshelf MODULE RTlowshelf.c)
++add_library(RThighshelf MODULE RThighshelf.c)
++
++add_library(RTlr4hipass MODULE RTlr4hipass.c)
++add_library(RTlr4lowpass MODULE RTlr4lowpass.c)
++
++add_library(RTparaeq MODULE RTparaeq.c)
++
++set_target_properties(RTallpass1 RTallpass2 RTlowpass RThighpass RTlowshelf
RThighshelf RTlr4hipass RTlr4lowpass RTparaeq
++ PROPERTIES LINK_FLAGS "-nostartfiles")
++if(USE_SSE2)
++ set_target_properties(RTallpass1 RTallpass2 RTlowpass RThighpass
RTlowshelf RThighshelf RTlr4hipass RTlr4lowpass RTparaeq
++ PROPERTIES COMPILE_FLAGS "-msse2 -mfpmath=sse")
++endif()
++install(TARGETS RTallpass1 RTallpass2 RTlowpass RThighpass RTlowshelf
RThighshelf RTlr4hipass RTlr4lowpass RTparaeq
++ LIBRARY DESTINATION lib/ladspa)
+diff --git a/src/RTallpass1.c b/src/RTallpass1.c
+new file mode 100644
+index 0000000..8bbae7f
+--- /dev/null
++++ b/src/RTallpass1.c
+@@ -0,0 +1,231 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define ALLPASS1_FC 0
++#define ALLPASS1_INPUT 1
++#define ALLPASS1_OUTPUT 2
++
++static LADSPA_Descriptor *allPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *fc;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ bilin * filter;
++ float fs;
++} AllPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return allPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateAllPass(LADSPA_Handle instance) {
++ AllPass *plugin_data = (AllPass *)instance;
++ bilin *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ bilin_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupAllPass(LADSPA_Handle instance) {
++ AllPass *plugin_data = (AllPass *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortAllPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ AllPass *plugin;
++
++ plugin = (AllPass *)instance;
++ switch (port) {
++ case ALLPASS1_FC:
++ plugin->fc = data;
++ break;
++ case ALLPASS1_INPUT:
++ plugin->input = data;
++ break;
++ case ALLPASS1_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateAllPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ AllPass *plugin_data = (AllPass *)malloc(sizeof(AllPass));
++ bilin *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(bilin));
++ bilin_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runAllPass(LADSPA_Handle instance, unsigned long sample_count) {
++ AllPass *plugin_data = (AllPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++
++ bilin * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ ap1_set_params(filter, fc, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ // RT 2.9.2013: replace biquad_run with ap1_run to cut
floating-
++ // point multiplications from 3 to 1:
++ buffer_write(output[pos], (LADSPA_Data) ap1_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ allPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (allPassDescriptor) {
++ allPassDescriptor->UniqueID = 9010;
++ allPassDescriptor->Label = "RTallpass1";
++ allPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ allPassDescriptor->Name =
++ D_("RT First Order Allpass");
++ allPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ allPassDescriptor->Copyright =
++ "GPL";
++ allPassDescriptor->PortCount = 3;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
++ sizeof(LADSPA_PortDescriptor));
++ allPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
++ sizeof(LADSPA_PortRangeHint));
++ allPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(3, sizeof(char*));
++ allPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[ALLPASS1_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[ALLPASS1_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[ALLPASS1_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[ALLPASS1_FC].LowerBound = 0.0;
++ port_range_hints[ALLPASS1_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Input */
++ port_descriptors[ALLPASS1_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[ALLPASS1_INPUT] =
++ D_("Input");
++ port_range_hints[ALLPASS1_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[ALLPASS1_INPUT].LowerBound = -1.0;
++ port_range_hints[ALLPASS1_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[ALLPASS1_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[ALLPASS1_OUTPUT] =
++ D_("Output");
++ port_range_hints[ALLPASS1_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[ALLPASS1_OUTPUT].LowerBound = -1.0;
++ port_range_hints[ALLPASS1_OUTPUT].UpperBound = +1.0;
++
++ allPassDescriptor->activate = activateAllPass;
++ allPassDescriptor->cleanup = cleanupAllPass;
++ allPassDescriptor->connect_port = connectPortAllPass;
++ allPassDescriptor->deactivate = NULL;
++ allPassDescriptor->instantiate = instantiateAllPass;
++ allPassDescriptor->run = runAllPass;
++ allPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (allPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)allPassDescriptor->PortDescriptors);
++ free((char **)allPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)allPassDescriptor->PortRangeHints);
++ free(allPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RTallpass2.c b/src/RTallpass2.c
+new file mode 100644
+index 0000000..d663b28
+--- /dev/null
++++ b/src/RTallpass2.c
+@@ -0,0 +1,250 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define ALLPASS_FC 0
++#define ALLPASS_Q 1
++#define ALLPASS_INPUT 2
++#define ALLPASS_OUTPUT 3
++
++static LADSPA_Descriptor *allPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *gain;
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} AllPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return allPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateAllPass(LADSPA_Handle instance) {
++ AllPass *plugin_data = (AllPass *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupAllPass(LADSPA_Handle instance) {
++ AllPass *plugin_data = (AllPass *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortAllPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ AllPass *plugin;
++
++ plugin = (AllPass *)instance;
++ switch (port) {
++ case ALLPASS_FC:
++ plugin->fc = data;
++ break;
++ case ALLPASS_Q:
++ plugin->Q = data;
++ break;
++ case ALLPASS_INPUT:
++ plugin->input = data;
++ break;
++ case ALLPASS_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateAllPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ AllPass *plugin_data = (AllPass *)malloc(sizeof(AllPass));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runAllPass(LADSPA_Handle instance, unsigned long sample_count) {
++ AllPass *plugin_data = (AllPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Bandwidth (octaves) (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ ap_set_params(filter, fc, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ // RT 2.9.2013: replace biquad_run with ap2_run to cut
floating-
++ // point multiplications from 5 to 2:
++ buffer_write(output[pos], (LADSPA_Data) ap2_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ allPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (allPassDescriptor) {
++ allPassDescriptor->UniqueID = 9005;
++ allPassDescriptor->Label = "RTallpass2";
++ allPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ allPassDescriptor->Name =
++ D_("RT Biquad Allpass");
++ allPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ allPassDescriptor->Copyright =
++ "GPL";
++ allPassDescriptor->PortCount = 4;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
++ sizeof(LADSPA_PortDescriptor));
++ allPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
++ sizeof(LADSPA_PortRangeHint));
++ allPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(4, sizeof(char*));
++ allPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[ALLPASS_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[ALLPASS_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[ALLPASS_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[ALLPASS_FC].LowerBound = 0;
++ port_range_hints[ALLPASS_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Bandwidth (octaves) */
++ port_descriptors[ALLPASS_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[ALLPASS_Q] =
++ D_("Q");
++ port_range_hints[ALLPASS_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[ALLPASS_Q].LowerBound = 0;
++ port_range_hints[ALLPASS_Q].UpperBound = 10;
++
++ /* Parameters for Input */
++ port_descriptors[ALLPASS_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[ALLPASS_INPUT] =
++ D_("Input");
++ port_range_hints[ALLPASS_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[ALLPASS_INPUT].LowerBound = -1.0;
++ port_range_hints[ALLPASS_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[ALLPASS_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[ALLPASS_OUTPUT] =
++ D_("Output");
++ port_range_hints[ALLPASS_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[ALLPASS_OUTPUT].LowerBound = -1.0;
++ port_range_hints[ALLPASS_OUTPUT].UpperBound = +1.0;
++
++ allPassDescriptor->activate = activateAllPass;
++ allPassDescriptor->cleanup = cleanupAllPass;
++ allPassDescriptor->connect_port = connectPortAllPass;
++ allPassDescriptor->deactivate = NULL;
++ allPassDescriptor->instantiate = instantiateAllPass;
++ allPassDescriptor->run = runAllPass;
++ allPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (allPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)allPassDescriptor->PortDescriptors);
++ free((char **)allPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)allPassDescriptor->PortRangeHints);
++ free(allPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RThighpass.c b/src/RThighpass.c
+new file mode 100644
+index 0000000..3cf29c5
+--- /dev/null
++++ b/src/RThighpass.c
+@@ -0,0 +1,246 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define HIGHPASS_FC 0
++#define HIGHPASS_Q 1
++#define HIGHPASS_INPUT 2
++#define HIGHPASS_OUTPUT 3
++
++static LADSPA_Descriptor *highPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} HighPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return highPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateHighPass(LADSPA_Handle instance) {
++ HighPass *plugin_data = (HighPass *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupHighPass(LADSPA_Handle instance) {
++ HighPass *plugin_data = (HighPass *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortHighPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ HighPass *plugin;
++
++ plugin = (HighPass *)instance;
++ switch (port) {
++ case HIGHPASS_FC:
++ plugin->fc = data;
++ break;
++ case HIGHPASS_Q:
++ plugin->Q = data;
++ break;
++ case HIGHPASS_INPUT:
++ plugin->input = data;
++ break;
++ case HIGHPASS_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateHighPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ HighPass *plugin_data = (HighPass *)malloc(sizeof(HighPass));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runHighPass(LADSPA_Handle instance, unsigned long sample_count)
{
++ HighPass *plugin_data = (HighPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Bandwidth (octaves) (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ hp_set_params(filter, fc, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ highPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (highPassDescriptor) {
++ highPassDescriptor->UniqueID = 9007;
++ highPassDescriptor->Label = "RThighpass";
++ highPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ highPassDescriptor->Name =
++ D_("RT 2nd-order highpass");
++ highPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ highPassDescriptor->Copyright =
++ "GPL";
++ highPassDescriptor->PortCount = 4;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
++ sizeof(LADSPA_PortDescriptor));
++ highPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
++ sizeof(LADSPA_PortRangeHint));
++ highPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(4, sizeof(char*));
++ highPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[HIGHPASS_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[HIGHPASS_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[HIGHPASS_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[HIGHPASS_FC].LowerBound = 0;
++ port_range_hints[HIGHPASS_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Q */
++ port_descriptors[HIGHPASS_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[HIGHPASS_Q] =
++ D_("Q");
++ port_range_hints[HIGHPASS_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[HIGHPASS_Q].LowerBound = 0;
++ port_range_hints[HIGHPASS_Q].UpperBound = 5;
++
++ /* Parameters for Input */
++ port_descriptors[HIGHPASS_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[HIGHPASS_INPUT] =
++ D_("Input");
++ port_range_hints[HIGHPASS_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[HIGHPASS_INPUT].LowerBound = -1.0;
++ port_range_hints[HIGHPASS_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[HIGHPASS_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[HIGHPASS_OUTPUT] =
++ D_("Output");
++ port_range_hints[HIGHPASS_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[HIGHPASS_OUTPUT].LowerBound = -1.0;
++ port_range_hints[HIGHPASS_OUTPUT].UpperBound = +1.0;
++
++ highPassDescriptor->activate = activateHighPass;
++ highPassDescriptor->cleanup = cleanupHighPass;
++ highPassDescriptor->connect_port = connectPortHighPass;
++ highPassDescriptor->deactivate = NULL;
++ highPassDescriptor->instantiate = instantiateHighPass;
++ highPassDescriptor->run = runHighPass;
++ highPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (highPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)highPassDescriptor->PortDescriptors);
++ free((char **)highPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)highPassDescriptor->PortRangeHints);
++ free(highPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RThighshelf.c b/src/RThighshelf.c
+new file mode 100644
+index 0000000..399aaf2
+--- /dev/null
++++ b/src/RThighshelf.c
+@@ -0,0 +1,264 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define HIGHSHELF_GAIN 0
++#define HIGHSHELF_FC 1
++#define HIGHSHELF_Q 2
++#define HIGHSHELF_INPUT 3
++#define HIGHSHELF_OUTPUT 4
++
++static LADSPA_Descriptor *highShelfDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *gain;
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} HighShelf;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return highShelfDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateHighShelf(LADSPA_Handle instance) {
++ HighShelf *plugin_data = (HighShelf *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupHighShelf(LADSPA_Handle instance) {
++ HighShelf *plugin_data = (HighShelf *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortHighShelf(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ HighShelf *plugin;
++
++ plugin = (HighShelf *)instance;
++ switch (port) {
++ case HIGHSHELF_GAIN:
++ plugin->gain = data;
++ break;
++ case HIGHSHELF_FC:
++ plugin->fc = data;
++ break;
++ case HIGHSHELF_Q:
++ plugin->Q = data;
++ break;
++ case HIGHSHELF_INPUT:
++ plugin->input = data;
++ break;
++ case HIGHSHELF_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateHighShelf(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ HighShelf *plugin_data = (HighShelf *)malloc(sizeof(HighShelf));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runHighShelf(LADSPA_Handle instance, unsigned long
sample_count) {
++ HighShelf *plugin_data = (HighShelf *)instance;
++
++ /* Gain (dB) (float value) */
++ const LADSPA_Data gain = *(plugin_data->gain);
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Bandwidth (octaves) (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ hs_set_params(filter, fc, gain, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ highShelfDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (highShelfDescriptor) {
++ highShelfDescriptor->UniqueID = 9003;
++ highShelfDescriptor->Label = "RThighshelf";
++ highShelfDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ highShelfDescriptor->Name =
++ D_("RT High Shelf");
++ highShelfDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ highShelfDescriptor->Copyright =
++ "GPL";
++ highShelfDescriptor->PortCount = 5;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
++ sizeof(LADSPA_PortDescriptor));
++ highShelfDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
++ sizeof(LADSPA_PortRangeHint));
++ highShelfDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(5, sizeof(char*));
++ highShelfDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Gain (dB) */
++ port_descriptors[HIGHSHELF_GAIN] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[HIGHSHELF_GAIN] =
++ D_("Gain (dB)");
++ port_range_hints[HIGHSHELF_GAIN].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_0;
++ port_range_hints[HIGHSHELF_GAIN].LowerBound = -70;
++ port_range_hints[HIGHSHELF_GAIN].UpperBound = +30;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[HIGHSHELF_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[HIGHSHELF_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[HIGHSHELF_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[HIGHSHELF_FC].LowerBound = 0;
++ port_range_hints[HIGHSHELF_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Quality Factor */
++ port_descriptors[HIGHSHELF_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[HIGHSHELF_Q] =
++ D_("Q");
++ port_range_hints[HIGHSHELF_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[HIGHSHELF_Q].LowerBound = 0;
++ port_range_hints[HIGHSHELF_Q].UpperBound = 5;
++
++ /* Parameters for Input */
++ port_descriptors[HIGHSHELF_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[HIGHSHELF_INPUT] =
++ D_("Input");
++ port_range_hints[HIGHSHELF_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[HIGHSHELF_INPUT].LowerBound = -1.0;
++ port_range_hints[HIGHSHELF_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[HIGHSHELF_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[HIGHSHELF_OUTPUT] =
++ D_("Output");
++ port_range_hints[HIGHSHELF_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[HIGHSHELF_OUTPUT].LowerBound = -1.0;
++ port_range_hints[HIGHSHELF_OUTPUT].UpperBound = +1.0;
++
++ highShelfDescriptor->activate = activateHighShelf;
++ highShelfDescriptor->cleanup = cleanupHighShelf;
++ highShelfDescriptor->connect_port = connectPortHighShelf;
++ highShelfDescriptor->deactivate = NULL;
++ highShelfDescriptor->instantiate = instantiateHighShelf;
++ highShelfDescriptor->run = runHighShelf;
++ highShelfDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (highShelfDescriptor) {
++ free((LADSPA_PortDescriptor
*)highShelfDescriptor->PortDescriptors);
++ free((char **)highShelfDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)highShelfDescriptor->PortRangeHints);
++ free(highShelfDescriptor);
++ }
++
++}
++
+diff --git a/src/RTlowpass.c b/src/RTlowpass.c
+new file mode 100644
+index 0000000..b98a8a6
+--- /dev/null
++++ b/src/RTlowpass.c
+@@ -0,0 +1,246 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define LOWPASS_FC 0
++#define LOWPASS_Q 1
++#define LOWPASS_INPUT 2
++#define LOWPASS_OUTPUT 3
++
++static LADSPA_Descriptor *lowPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} LowPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return lowPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateLowPass(LADSPA_Handle instance) {
++ LowPass *plugin_data = (LowPass *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupLowPass(LADSPA_Handle instance) {
++ LowPass *plugin_data = (LowPass *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortLowPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ LowPass *plugin;
++
++ plugin = (LowPass *)instance;
++ switch (port) {
++ case LOWPASS_FC:
++ plugin->fc = data;
++ break;
++ case LOWPASS_Q:
++ plugin->Q = data;
++ break;
++ case LOWPASS_INPUT:
++ plugin->input = data;
++ break;
++ case LOWPASS_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateLowPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ LowPass *plugin_data = (LowPass *)malloc(sizeof(LowPass));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runLowPass(LADSPA_Handle instance, unsigned long sample_count) {
++ LowPass *plugin_data = (LowPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Bandwidth (octaves) (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ lp_set_params(filter, fc, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ lowPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (lowPassDescriptor) {
++ lowPassDescriptor->UniqueID = 9006;
++ lowPassDescriptor->Label = "RTlowpass";
++ lowPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ lowPassDescriptor->Name =
++ D_("RT 2nd-order lowpass");
++ lowPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ lowPassDescriptor->Copyright =
++ "GPL";
++ lowPassDescriptor->PortCount = 4;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(4,
++ sizeof(LADSPA_PortDescriptor));
++ lowPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(4,
++ sizeof(LADSPA_PortRangeHint));
++ lowPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(4, sizeof(char*));
++ lowPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[LOWPASS_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LOWPASS_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[LOWPASS_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[LOWPASS_FC].LowerBound = 0;
++ port_range_hints[LOWPASS_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Q */
++ port_descriptors[LOWPASS_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LOWPASS_Q] =
++ D_("Q");
++ port_range_hints[LOWPASS_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[LOWPASS_Q].LowerBound = 0;
++ port_range_hints[LOWPASS_Q].UpperBound = 5;
++
++ /* Parameters for Input */
++ port_descriptors[LOWPASS_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[LOWPASS_INPUT] =
++ D_("Input");
++ port_range_hints[LOWPASS_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LOWPASS_INPUT].LowerBound = -1.0;
++ port_range_hints[LOWPASS_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[LOWPASS_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[LOWPASS_OUTPUT] =
++ D_("Output");
++ port_range_hints[LOWPASS_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LOWPASS_OUTPUT].LowerBound = -1.0;
++ port_range_hints[LOWPASS_OUTPUT].UpperBound = +1.0;
++
++ lowPassDescriptor->activate = activateLowPass;
++ lowPassDescriptor->cleanup = cleanupLowPass;
++ lowPassDescriptor->connect_port = connectPortLowPass;
++ lowPassDescriptor->deactivate = NULL;
++ lowPassDescriptor->instantiate = instantiateLowPass;
++ lowPassDescriptor->run = runLowPass;
++ lowPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (lowPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)lowPassDescriptor->PortDescriptors);
++ free((char **)lowPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)lowPassDescriptor->PortRangeHints);
++ free(lowPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RTlowshelf.c b/src/RTlowshelf.c
+new file mode 100644
+index 0000000..e6265b5
+--- /dev/null
++++ b/src/RTlowshelf.c
+@@ -0,0 +1,264 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define LOWSHELF_GAIN 0
++#define LOWSHELF_FC 1
++#define LOWSHELF_Q 2
++#define LOWSHELF_INPUT 3
++#define LOWSHELF_OUTPUT 4
++
++static LADSPA_Descriptor *lowShelfDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *gain;
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} LowShelf;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return lowShelfDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateLowShelf(LADSPA_Handle instance) {
++ LowShelf *plugin_data = (LowShelf *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupLowShelf(LADSPA_Handle instance) {
++ LowShelf *plugin_data = (LowShelf *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortLowShelf(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ LowShelf *plugin;
++
++ plugin = (LowShelf *)instance;
++ switch (port) {
++ case LOWSHELF_GAIN:
++ plugin->gain = data;
++ break;
++ case LOWSHELF_FC:
++ plugin->fc = data;
++ break;
++ case LOWSHELF_Q:
++ plugin->Q = data;
++ break;
++ case LOWSHELF_INPUT:
++ plugin->input = data;
++ break;
++ case LOWSHELF_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateLowShelf(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ LowShelf *plugin_data = (LowShelf *)malloc(sizeof(LowShelf));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runLowShelf(LADSPA_Handle instance, unsigned long sample_count)
{
++ LowShelf *plugin_data = (LowShelf *)instance;
++
++ /* Gain (dB) (float value) */
++ const LADSPA_Data gain = *(plugin_data->gain);
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Bandwidth (octaves) (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ ls_set_params(filter, fc, gain, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ lowShelfDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (lowShelfDescriptor) {
++ lowShelfDescriptor->UniqueID = 9002;
++ lowShelfDescriptor->Label = "RTlowshelf";
++ lowShelfDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ lowShelfDescriptor->Name =
++ D_("RT Low Shelf");
++ lowShelfDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ lowShelfDescriptor->Copyright =
++ "GPL";
++ lowShelfDescriptor->PortCount = 5;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
++ sizeof(LADSPA_PortDescriptor));
++ lowShelfDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
++ sizeof(LADSPA_PortRangeHint));
++ lowShelfDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(5, sizeof(char*));
++ lowShelfDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Gain (dB) */
++ port_descriptors[LOWSHELF_GAIN] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LOWSHELF_GAIN] =
++ D_("Gain (dB)");
++ port_range_hints[LOWSHELF_GAIN].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_0;
++ port_range_hints[LOWSHELF_GAIN].LowerBound = -70;
++ port_range_hints[LOWSHELF_GAIN].UpperBound = +30;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[LOWSHELF_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LOWSHELF_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[LOWSHELF_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[LOWSHELF_FC].LowerBound = 0;
++ port_range_hints[LOWSHELF_FC].UpperBound = (LADSPA_Data) 0.4;
++
++ /* Parameters for Quality Factor */
++ port_descriptors[LOWSHELF_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LOWSHELF_Q] =
++ D_("Q");
++ port_range_hints[LOWSHELF_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[LOWSHELF_Q].LowerBound = 0;
++ port_range_hints[LOWSHELF_Q].UpperBound = 5;
++
++ /* Parameters for Input */
++ port_descriptors[LOWSHELF_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[LOWSHELF_INPUT] =
++ D_("Input");
++ port_range_hints[LOWSHELF_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LOWSHELF_INPUT].LowerBound = -1.0;
++ port_range_hints[LOWSHELF_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[LOWSHELF_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[LOWSHELF_OUTPUT] =
++ D_("Output");
++ port_range_hints[LOWSHELF_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LOWSHELF_OUTPUT].LowerBound = -1.0;
++ port_range_hints[LOWSHELF_OUTPUT].UpperBound = +1.0;
++
++ lowShelfDescriptor->activate = activateLowShelf;
++ lowShelfDescriptor->cleanup = cleanupLowShelf;
++ lowShelfDescriptor->connect_port = connectPortLowShelf;
++ lowShelfDescriptor->deactivate = NULL;
++ lowShelfDescriptor->instantiate = instantiateLowShelf;
++ lowShelfDescriptor->run = runLowShelf;
++ lowShelfDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (lowShelfDescriptor) {
++ free((LADSPA_PortDescriptor
*)lowShelfDescriptor->PortDescriptors);
++ free((char **)lowShelfDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)lowShelfDescriptor->PortRangeHints);
++ free(lowShelfDescriptor);
++ }
++
++}
++
+diff --git a/src/RTlr4hipass.c b/src/RTlr4hipass.c
+new file mode 100644
+index 0000000..80dd651
+--- /dev/null
++++ b/src/RTlr4hipass.c
+@@ -0,0 +1,234 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define LR4HIGHPASS_FC 0
++#define LR4HIGHPASS_INPUT 1
++#define LR4HIGHPASS_OUTPUT 2
++
++static LADSPA_Descriptor *lr4highPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *fc;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filters;
++ float fs;
++} LR4HighPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return lr4highPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateLR4HighPass(LADSPA_Handle instance) {
++ LR4HighPass *plugin_data = (LR4HighPass *)instance;
++ biquad *filters = plugin_data->filters;
++ float fs = plugin_data->fs;
++ biquad_init(&filters[0]);
++ biquad_init(&filters[1]);
++ plugin_data->filters = filters;
++ plugin_data->fs = fs;
++}
++
++static void cleanupLR4HighPass(LADSPA_Handle instance) {
++ LR4HighPass *plugin_data = (LR4HighPass *)instance;
++ free(plugin_data->filters);
++ free(instance);
++}
++
++static void connectPortLR4HighPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ LR4HighPass *plugin;
++
++ plugin = (LR4HighPass *)instance;
++ switch (port) {
++ case LR4HIGHPASS_FC:
++ plugin->fc = data;
++ break;
++ case LR4HIGHPASS_INPUT:
++ plugin->input = data;
++ break;
++ case LR4HIGHPASS_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateLR4HighPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ LR4HighPass *plugin_data = (LR4HighPass *)malloc(sizeof(LR4HighPass));
++ biquad *filters = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++
++ filters = calloc(2, sizeof(biquad));
++ biquad_init(&filters[0]);
++ biquad_init(&filters[1]);
++
++ plugin_data->filters = filters;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runLR4HighPass(LADSPA_Handle instance, unsigned long
sample_count) {
++ LR4HighPass *plugin_data = (LR4HighPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filters = plugin_data->filters;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++ bq_t in;
++
++ hp_set_params(&filters[0], fc, 0.7071068, fs);
++ hp_set_params(&filters[1], fc, 0.7071068, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ in = biquad_run(&filters[0], input[pos]);
++ in = biquad_run(&filters[1], in);
++ buffer_write(output[pos], (LADSPA_Data) in);
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ lr4highPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (lr4highPassDescriptor) {
++ lr4highPassDescriptor->UniqueID = 9021;
++ lr4highPassDescriptor->Label = "RTlr4hipass";
++ lr4highPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ lr4highPassDescriptor->Name =
++ D_("RT LR4 highpass");
++ lr4highPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ lr4highPassDescriptor->Copyright =
++ "GPL";
++ lr4highPassDescriptor->PortCount = 3;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
++ sizeof(LADSPA_PortDescriptor));
++ lr4highPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
++ sizeof(LADSPA_PortRangeHint));
++ lr4highPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(3, sizeof(char*));
++ lr4highPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[LR4HIGHPASS_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LR4HIGHPASS_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[LR4HIGHPASS_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[LR4HIGHPASS_FC].LowerBound = 0;
++ port_range_hints[LR4HIGHPASS_FC].UpperBound = (LADSPA_Data)
0.4;
++
++ /* Parameters for Input */
++ port_descriptors[LR4HIGHPASS_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[LR4HIGHPASS_INPUT] =
++ D_("Input");
++ port_range_hints[LR4HIGHPASS_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LR4HIGHPASS_INPUT].LowerBound = -1.0;
++ port_range_hints[LR4HIGHPASS_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[LR4HIGHPASS_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[LR4HIGHPASS_OUTPUT] =
++ D_("Output");
++ port_range_hints[LR4HIGHPASS_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LR4HIGHPASS_OUTPUT].LowerBound = -1.0;
++ port_range_hints[LR4HIGHPASS_OUTPUT].UpperBound = +1.0;
++
++ lr4highPassDescriptor->activate = activateLR4HighPass;
++ lr4highPassDescriptor->cleanup = cleanupLR4HighPass;
++ lr4highPassDescriptor->connect_port = connectPortLR4HighPass;
++ lr4highPassDescriptor->deactivate = NULL;
++ lr4highPassDescriptor->instantiate = instantiateLR4HighPass;
++ lr4highPassDescriptor->run = runLR4HighPass;
++ lr4highPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (lr4highPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)lr4highPassDescriptor->PortDescriptors);
++ free((char **)lr4highPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)lr4highPassDescriptor->PortRangeHints);
++ free(lr4highPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RTlr4lowpass.c b/src/RTlr4lowpass.c
+new file mode 100644
+index 0000000..f1d269e
+--- /dev/null
++++ b/src/RTlr4lowpass.c
+@@ -0,0 +1,234 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define LR4LOWPASS_FC 0
++#define LR4LOWPASS_INPUT 1
++#define LR4LOWPASS_OUTPUT 2
++
++static LADSPA_Descriptor *lr4lowPassDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *fc;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filters;
++ float fs;
++} LR4LowPass;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return lr4lowPassDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateLR4LowPass(LADSPA_Handle instance) {
++ LR4LowPass *plugin_data = (LR4LowPass *)instance;
++ biquad *filters = plugin_data->filters;
++ float fs = plugin_data->fs;
++ biquad_init(&filters[0]);
++ biquad_init(&filters[1]);
++ plugin_data->filters = filters;
++ plugin_data->fs = fs;
++}
++
++static void cleanupLR4LowPass(LADSPA_Handle instance) {
++ LR4LowPass *plugin_data = (LR4LowPass *)instance;
++ free(plugin_data->filters);
++ free(instance);
++}
++
++static void connectPortLR4LowPass(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ LR4LowPass *plugin;
++
++ plugin = (LR4LowPass *)instance;
++ switch (port) {
++ case LR4LOWPASS_FC:
++ plugin->fc = data;
++ break;
++ case LR4LOWPASS_INPUT:
++ plugin->input = data;
++ break;
++ case LR4LOWPASS_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateLR4LowPass(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ LR4LowPass *plugin_data = (LR4LowPass *)malloc(sizeof(LR4LowPass));
++ biquad *filters = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++
++ filters = calloc(2, sizeof(biquad));
++ biquad_init(&filters[0]);
++ biquad_init(&filters[1]);
++
++ plugin_data->filters = filters;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runLR4LowPass(LADSPA_Handle instance, unsigned long
sample_count) {
++ LR4LowPass *plugin_data = (LR4LowPass *)instance;
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filters = plugin_data->filters;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++ bq_t in;
++
++ lp_set_params(&filters[0], fc, 0.7071068, fs);
++ lp_set_params(&filters[1], fc, 0.7071068, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ in = biquad_run(&filters[0], input[pos]);
++ in = biquad_run(&filters[1], in);
++ buffer_write(output[pos], (LADSPA_Data) in);
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ lr4lowPassDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (lr4lowPassDescriptor) {
++ lr4lowPassDescriptor->UniqueID = 9020;
++ lr4lowPassDescriptor->Label = "RTlr4lowpass";
++ lr4lowPassDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ lr4lowPassDescriptor->Name =
++ D_("RT LR4 lowpass");
++ lr4lowPassDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ lr4lowPassDescriptor->Copyright =
++ "GPL";
++ lr4lowPassDescriptor->PortCount = 3;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(3,
++ sizeof(LADSPA_PortDescriptor));
++ lr4lowPassDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(3,
++ sizeof(LADSPA_PortRangeHint));
++ lr4lowPassDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(3, sizeof(char*));
++ lr4lowPassDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[LR4LOWPASS_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[LR4LOWPASS_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[LR4LOWPASS_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[LR4LOWPASS_FC].LowerBound = 0;
++ port_range_hints[LR4LOWPASS_FC].UpperBound = (LADSPA_Data)
0.4;
++
++ /* Parameters for Input */
++ port_descriptors[LR4LOWPASS_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[LR4LOWPASS_INPUT] =
++ D_("Input");
++ port_range_hints[LR4LOWPASS_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LR4LOWPASS_INPUT].LowerBound = -1.0;
++ port_range_hints[LR4LOWPASS_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[LR4LOWPASS_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[LR4LOWPASS_OUTPUT] =
++ D_("Output");
++ port_range_hints[LR4LOWPASS_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[LR4LOWPASS_OUTPUT].LowerBound = -1.0;
++ port_range_hints[LR4LOWPASS_OUTPUT].UpperBound = +1.0;
++
++ lr4lowPassDescriptor->activate = activateLR4LowPass;
++ lr4lowPassDescriptor->cleanup = cleanupLR4LowPass;
++ lr4lowPassDescriptor->connect_port = connectPortLR4LowPass;
++ lr4lowPassDescriptor->deactivate = NULL;
++ lr4lowPassDescriptor->instantiate = instantiateLR4LowPass;
++ lr4lowPassDescriptor->run = runLR4LowPass;
++ lr4lowPassDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (lr4lowPassDescriptor) {
++ free((LADSPA_PortDescriptor
*)lr4lowPassDescriptor->PortDescriptors);
++ free((char **)lr4lowPassDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)lr4lowPassDescriptor->PortRangeHints);
++ free(lr4lowPassDescriptor);
++ }
++
++}
++
+diff --git a/src/RTparaeq.c b/src/RTparaeq.c
+new file mode 100644
+index 0000000..5376d64
+--- /dev/null
++++ b/src/RTparaeq.c
+@@ -0,0 +1,264 @@
++/* Copyright 2013 Richard Taylor
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++ CREDITS:
++
++ Much of the code here was adapted from Steve Harris's swh-plugins
++ (version 0.4.15) found at http://plugin.org.uk/. Thanks Steve for
++ making your code available.
++
++ The guts of the code, in util/biquad.h, is an implementation
++ of the biquad filters described in Robert Bristow-Johnson's "Cookbook
++ formulae for audio EQ biquad filter coefficients" found here:
++ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
++*/
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <math.h>
++
++#include <ladspa.h>
++
++#include "biquad.h"
++
++#define SINGLEPARA_GAIN 0
++#define SINGLEPARA_FC 1
++#define SINGLEPARA_Q 2
++#define SINGLEPARA_INPUT 3
++#define SINGLEPARA_OUTPUT 4
++
++static LADSPA_Descriptor *singleParaDescriptor = NULL;
++
++typedef struct {
++ LADSPA_Data *gain;
++ LADSPA_Data *fc;
++ LADSPA_Data *Q;
++ LADSPA_Data *input;
++ LADSPA_Data *output;
++ biquad * filter;
++ float fs;
++} SinglePara;
++
++const LADSPA_Descriptor *ladspa_descriptor(unsigned long index) {
++ switch (index) {
++ case 0:
++ return singleParaDescriptor;
++ default:
++ return NULL;
++ }
++}
++
++static void activateSinglePara(LADSPA_Handle instance) {
++ SinglePara *plugin_data = (SinglePara *)instance;
++ biquad *filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++ biquad_init(filter);
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++}
++
++static void cleanupSinglePara(LADSPA_Handle instance) {
++ SinglePara *plugin_data = (SinglePara *)instance;
++ free(plugin_data->filter);
++ free(instance);
++}
++
++static void connectPortSinglePara(
++ LADSPA_Handle instance,
++ unsigned long port,
++ LADSPA_Data *data) {
++ SinglePara *plugin;
++
++ plugin = (SinglePara *)instance;
++ switch (port) {
++ case SINGLEPARA_GAIN:
++ plugin->gain = data;
++ break;
++ case SINGLEPARA_FC:
++ plugin->fc = data;
++ break;
++ case SINGLEPARA_Q:
++ plugin->Q = data;
++ break;
++ case SINGLEPARA_INPUT:
++ plugin->input = data;
++ break;
++ case SINGLEPARA_OUTPUT:
++ plugin->output = data;
++ break;
++ }
++}
++
++static LADSPA_Handle instantiateSinglePara(
++ const LADSPA_Descriptor *descriptor,
++ unsigned long s_rate) {
++ SinglePara *plugin_data = (SinglePara *)malloc(sizeof(SinglePara));
++ biquad *filter = NULL;
++ float fs;
++
++ fs = (float)s_rate;
++ filter = malloc(sizeof(biquad));
++ biquad_init(filter);
++
++ plugin_data->filter = filter;
++ plugin_data->fs = fs;
++
++ return (LADSPA_Handle)plugin_data;
++}
++
++#undef buffer_write
++#define buffer_write(b, v) (b = v)
++
++static void runSinglePara(LADSPA_Handle instance, unsigned long
sample_count) {
++ SinglePara *plugin_data = (SinglePara *)instance;
++
++ /* Gain (dB) (float value) */
++ const LADSPA_Data gain = *(plugin_data->gain);
++
++ /* Frequency (Hz) (float value) */
++ const LADSPA_Data fc = *(plugin_data->fc);
++
++ /* Quality factor (float value) */
++ const LADSPA_Data Q = *(plugin_data->Q);
++
++ /* Input (array of floats of length sample_count) */
++ const LADSPA_Data * const input = plugin_data->input;
++
++ /* Output (array of floats of length sample_count) */
++ LADSPA_Data * const output = plugin_data->output;
++ biquad * filter = plugin_data->filter;
++ float fs = plugin_data->fs;
++
++ unsigned long pos;
++
++ eq_set_params(filter, fc, gain, Q, fs);
++
++ for (pos = 0; pos < sample_count; pos++) {
++ buffer_write(output[pos], (LADSPA_Data) biquad_run(filter,
input[pos]));
++ }
++
++}
++
++void _init(void);
++void _init(void) {
++ char **port_names;
++ LADSPA_PortDescriptor *port_descriptors;
++ LADSPA_PortRangeHint *port_range_hints;
++
++#define D_(s) (s)
++
++ singleParaDescriptor =
++ (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor));
++
++ if (singleParaDescriptor) {
++ singleParaDescriptor->UniqueID = 9001;
++ singleParaDescriptor->Label = "RTparaeq";
++ singleParaDescriptor->Properties =
++ LADSPA_PROPERTY_HARD_RT_CAPABLE;
++ singleParaDescriptor->Name =
++ D_("RT parametric eq");
++ singleParaDescriptor->Maker =
++ "Richard Taylor <rtaylor AT tru.ca>";
++ singleParaDescriptor->Copyright =
++ "GPL";
++ singleParaDescriptor->PortCount = 5;
++
++ port_descriptors = (LADSPA_PortDescriptor *)calloc(5,
++ sizeof(LADSPA_PortDescriptor));
++ singleParaDescriptor->PortDescriptors =
++ (const LADSPA_PortDescriptor *)port_descriptors;
++
++ port_range_hints = (LADSPA_PortRangeHint *)calloc(5,
++ sizeof(LADSPA_PortRangeHint));
++ singleParaDescriptor->PortRangeHints =
++ (const LADSPA_PortRangeHint *)port_range_hints;
++
++ port_names = (char **)calloc(5, sizeof(char*));
++ singleParaDescriptor->PortNames =
++ (const char **)port_names;
++
++ /* Parameters for Gain (dB) */
++ port_descriptors[SINGLEPARA_GAIN] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[SINGLEPARA_GAIN] =
++ D_("Gain (dB)");
++ port_range_hints[SINGLEPARA_GAIN].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[SINGLEPARA_GAIN].LowerBound = -70;
++ port_range_hints[SINGLEPARA_GAIN].UpperBound = +30;
++
++ /* Parameters for Frequency (Hz) */
++ port_descriptors[SINGLEPARA_FC] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[SINGLEPARA_FC] =
++ D_("Frequency (Hz)");
++ port_range_hints[SINGLEPARA_FC].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_440;
++ port_range_hints[SINGLEPARA_FC].LowerBound = 0;
++ port_range_hints[SINGLEPARA_FC].UpperBound = (LADSPA_Data)
0.4;
++
++ /* Parameters for Quality Factor */
++ port_descriptors[SINGLEPARA_Q] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL;
++ port_names[SINGLEPARA_Q] =
++ D_("Q");
++ port_range_hints[SINGLEPARA_Q].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE |
LADSPA_HINT_DEFAULT_1;
++ port_range_hints[SINGLEPARA_Q].LowerBound = 0;
++ port_range_hints[SINGLEPARA_Q].UpperBound = 100;
++
++ /* Parameters for Input */
++ port_descriptors[SINGLEPARA_INPUT] =
++ LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO;
++ port_names[SINGLEPARA_INPUT] =
++ D_("Input");
++ port_range_hints[SINGLEPARA_INPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[SINGLEPARA_INPUT].LowerBound = -1.0;
++ port_range_hints[SINGLEPARA_INPUT].UpperBound = +1.0;
++
++ /* Parameters for Output */
++ port_descriptors[SINGLEPARA_OUTPUT] =
++ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO;
++ port_names[SINGLEPARA_OUTPUT] =
++ D_("Output");
++ port_range_hints[SINGLEPARA_OUTPUT].HintDescriptor =
++ LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
++ port_range_hints[SINGLEPARA_OUTPUT].LowerBound = -1.0;
++ port_range_hints[SINGLEPARA_OUTPUT].UpperBound = +1.0;
++
++ singleParaDescriptor->activate = activateSinglePara;
++ singleParaDescriptor->cleanup = cleanupSinglePara;
++ singleParaDescriptor->connect_port = connectPortSinglePara;
++ singleParaDescriptor->deactivate = NULL;
++ singleParaDescriptor->instantiate = instantiateSinglePara;
++ singleParaDescriptor->run = runSinglePara;
++ singleParaDescriptor->run_adding = NULL;
++ }
++}
++
++void _fini(void);
++void _fini(void) {
++ if (singleParaDescriptor) {
++ free((LADSPA_PortDescriptor
*)singleParaDescriptor->PortDescriptors);
++ free((char **)singleParaDescriptor->PortNames);
++ free((LADSPA_PortRangeHint
*)singleParaDescriptor->PortRangeHints);
++ free(singleParaDescriptor);
++ }
++
++}
++
+diff --git a/util/biquad.h b/util/biquad.h
+deleted file mode 100644
+index 49451d8..0000000
+--- a/util/biquad.h
++++ /dev/null
+@@ -1,331 +0,0 @@
+-#ifndef BIQUAD_H
+-#define BIQUAD_H
+-
+-#define LN_2_2 0.34657359f // ln(2)/2
+-
+-#include "ladspa-util.h"
+-#include <math.h>
+-
+-#ifndef LIMIT
+-#define LIMIT(v,l,u) (v<l?l:(v>u?u:v))
+-#endif
+-
+-// rt 8.1.2013: store biquad coefficients and accumulators in double
+-// precision, to limit effects of round-off error. Change this to
+-// float if you need more speed: it probably won't make an audible
+-// difference unless you need filters with really high Q or low
+-// frequency.
+-#ifndef BIQUAD_TYPE
+-#define BIQUAD_TYPE double
+-#endif
+-
+-// rt 25.6.2013: amplitude of square wave (at Nyquist freq)
+-// added to kill denormals ... may need to experiment with
+-// this value. NB: 1.e-18 = -360dB
+-#define DENORMALKILLER 1.e-18;
+-
+-typedef BIQUAD_TYPE bq_t;
+-
+-/* Biquad filter (adapted from lisp code by Eli Brandt,
+- http://www.cs.cmu.edu/~eli/) */
+-
+-typedef struct {
+- bq_t a1;
+- bq_t a2;
+- bq_t b0;
+- bq_t b1;
+- bq_t b2;
+- bq_t x1;
+- bq_t x2;
+- bq_t y1;
+- bq_t y2;
+- bq_t dn; // denormal state (rt 25.6.2013)
+-} biquad;
+-
+-typedef struct {
+- bq_t a1;
+- bq_t b0;
+- bq_t b1;
+- bq_t x1;
+- bq_t y1;
+- bq_t dn; // denormal state
+-} bilin;
+-
+-
+-static inline void biquad_init(biquad *f) {
+- f->x1 = 0.0f;
+- f->x2 = 0.0f;
+- f->y1 = 0.0f;
+- f->y2 = 0.0f;
+- f->dn = DENORMALKILLER;
+-}
+-
+-static inline void bilin_init(bilin *f) {
+- f->x1 = 0.0f;
+- f->y1 = 0.0f;
+- f->dn = DENORMALKILLER;
+-}
+-
+-//static inline void eq_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
+-// bq_t fs);
+-static inline void eq_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
bq_t fs)
+-{
+- bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0f, fs/2.0f) / fs;
+- bq_t J = pow(10.0f, gain * 0.025f);
+- bq_t cw = cos(w);
+- bq_t sw = sin(w);
+- Q = Q / J; // adjust so input Q is standard elec. eng. Q
+-// bq_t g = sw * sinhf(LN_2_2 * LIMIT(bw, 0.0001f, 4.0f) * w / sw); //
case: bw
+- bq_t g = sw/(2.0*Q); // case: Q
+-// bq_t g = sin(w0)/2.0 * sqrt( (J + 1.0/J)*(1.0/S - 1.0) + 2.0 ) //
case: S
+-
+- bq_t a0 = 1.0f + g / J;
+- bq_t a0r = 1.0f / a0;
+-
+- f->b0 = (1.0 + (g * J)) * a0r;
+- f->b1 = (-2.0 * cw) * a0r;
+- f->b2 = (1.0 - (g * J)) * a0r;
+- f->a1 = -(f->b1);
+- f->a2 = ((g / J) - 1.0) * a0r;
+-}
+-
+-//static inline void ls_set_params(biquad *f, bq_t fc, bq_t gain, bq_t
slope,
+-// bq_t fs);
+-static inline void ls_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
+- bq_t fs)
+-{
+- bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0, fs/2.0) / fs;
+- bq_t cw = cos(w);
+- bq_t sw = sin(w);
+- bq_t A = powf(10.0f, (float) (gain * (bq_t) 0.025));
+-
+-// rt 8.1.2013: increased slope limit from 1.0f to 5.0f:
+-// bq_t b = sqrt(((1.0f + A * A) / LIMIT(slope, 0.0001f, 5.0f)) - ((A -
+-// 1.0f) * (A - 1.0)));
+-
+-// bq_t apc = cw * (A + 1.0f);
+-// bq_t amc = cw * (A - 1.0f);
+-// bq_t bs = b * sw;
+-// bq_t a0r = 1.0f / (A + 1.0f + amc + bs);
+-
+-// f->b0 = a0r * A * (A + 1.0f - amc + bs);
+-// f->b1 = a0r * 2.0f * A * (A - 1.0f - apc);
+-// f->b2 = a0r * A * (A + 1.0f - amc - bs);
+-// f->a1 = a0r * 2.0f * (A - 1.0f + apc);
+-// f->a2 = a0r * (-A - 1.0f - amc + bs);
+-
+- // rt 22.1.2013 changed this to use Q instead of slope
+- bq_t alpha = sw / (2.0 * Q);
+- bq_t b = 2.0*sqrt(A)*alpha;
+- bq_t ap = A + 1.0;
+- bq_t am = A - 1.0;
+- bq_t a0 = ap + am*cw + b;
+- bq_t a0r = 1.0 / a0;
+-
+- f->b0 = a0r * A * (ap - am*cw + b);
+- f->b1 = a0r * 2.0 * A * (am - ap*cw);
+- f->b2 = a0r * A * (ap - am*cw - b);
+- f->a1 = 2.0 * a0r * (am + ap*cw);
+- f->a2 = -a0r * (ap + am*cw - b);
+-}
+-
+-//static inline void hs_set_params(biquad *f, bq_t fc, bq_t gain, bq_t
slope,
+-// bq_t fs);
+-static inline void hs_set_params(biquad *f, bq_t fc, bq_t gain, bq_t Q,
bq_t fs)
+-{
+- bq_t w = 2.0f * M_PI * LIMIT(fc, 1.0, fs/2.0) / fs;
+- bq_t cw = cos(w);
+- bq_t sw = sin(w);
+- bq_t A = powf(10.0f, (float) (gain * (bq_t) 0.025));
+-// rt 8.1.2013: increased slope limit from 1.0f to 5.0f:
+-// bq_t b = sqrt(((1.0f + A * A) / LIMIT(slope, 0.0001f, 5.0f)) - ((A -
+-// 1.0f) * (A - 1.0f)));
+-// bq_t apc = cw * (A + 1.0f);
+-// bq_t amc = cw * (A - 1.0f);
+-// bq_t bs = b * sw;
+-// bq_t a0r = 1.0f / (A + 1.0f - amc + bs);
+-
+-// f->b0 = a0r * A * (A + 1.0f + amc + bs);
+-// f->b1 = a0r * -2.0f * A * (A - 1.0f + apc);
+-// f->b2 = a0r * A * (A + 1.0f + amc - bs);
+-// f->a1 = a0r * -2.0f * (A - 1.0f - apc);
+-// f->a2 = a0r * (-A - 1.0f + amc + bs);
+-
+- // rt 22.1.2013 changed this to use Q instead of slope
+- bq_t alpha = sw / (2.0 * Q);
+- bq_t b = 2.0*sqrt(A)*alpha;
+- bq_t ap = A + 1.0;
+- bq_t am = A - 1.0;
+- bq_t a0 = ap - am*cw + b;
+- bq_t a0r = 1.0 / a0;
+-
+- f->b0 = a0r * A * (ap + am*cw + b);
+- f->b1 = -a0r * 2.0 * A * (am + ap*cw);
+- f->b2 = a0r * A * (ap + am*cw - b);
+- f->a1 = -2.0 * a0r * (am - ap*cw);
+- f->a2 = -a0r * (ap - am*cw - b);
+-}
+-
+-static inline void lp_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
+-{
+- bq_t omega = 2.0 * M_PI * fc/fs;
+- bq_t sn = sin(omega);
+- bq_t cs = cos(omega);
+-// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
+- bq_t alpha = sn / (2.0 * Q);
+-
+- const bq_t a0r = 1.0 / (1.0 + alpha);
+- f->b0 = a0r * (1.0 - cs) * 0.5;
+- f->b1 = a0r * (1.0 - cs);
+- f->b2 = a0r * (1.0 - cs) * 0.5;
+- f->a1 = a0r * (2.0 * cs);
+- f->a2 = a0r * (alpha - 1.0);
+-}
+-
+-static inline void hp_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
+-{
+- bq_t omega = 2.0 * M_PI * fc/fs;
+- bq_t sn = sin(omega);
+- bq_t cs = cos(omega);
+-// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
+- bq_t alpha = sn / (2.0 * Q);
+-
+- const bq_t a0r = 1.0 / (1.0 + alpha);
+- f->b0 = a0r * (1.0 + cs) * 0.5;
+- f->b1 = a0r * -(1.0 + cs);
+- f->b2 = a0r * (1.0 + cs) * 0.5;
+- f->a1 = a0r * (2.0 * cs);
+- f->a2 = a0r * (alpha - 1.0);
+-}
+-
+-static inline void bp_set_params(biquad *f, bq_t fc, bq_t bw, bq_t fs)
+-{
+- bq_t omega = 2.0 * M_PI * fc/fs;
+- bq_t sn = sin(omega);
+- bq_t cs = cos(omega);
+- bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
+-
+- const bq_t a0r = 1.0 / (1.0 + alpha);
+- f->b0 = a0r * alpha;
+- f->b1 = 0.0;
+- f->b2 = a0r * -alpha;
+- f->a1 = a0r * (2.0 * cs);
+- f->a2 = a0r * (alpha - 1.0);
+-}
+-
+-// rt 8.1.2013: allpass from biquad cookbook
+-static inline void ap_set_params(biquad *f, bq_t fc, bq_t Q, bq_t fs)
+-{
+- bq_t omega = 2.0 * M_PI * fc/fs;
+- bq_t sn = sin(omega);
+- bq_t cs = cos(omega);
+-// bq_t alpha = sn * sinh(M_LN2 / 2.0 * bw * omega / sn);
+- bq_t alpha = sn / (2.0 * Q);
+-
+- bq_t a0 = 1.0 + alpha;
+- bq_t a0r = 1.0 / a0;
+- f->b0 = a0r * (1.0 - alpha);
+- f->b1 = a0r * (-2.0 * cs);
+- f->b2 = 1.0;
+- f->a1 = -f->b1;
+- f->a2 = -f->b0;
+-}
+-
+-static inline void ap1_set_params(bilin *f, bq_t fc, bq_t fs)
+-{
+-// rt 8.1.2013: implementation of first-order digital allpass found here:
+-//
https://ccrma.stanford.edu/realsimple/DelayVar/Phasing_First_Order_Allpass_Filters.html
+-// see here for turning transfer function into difference equation:
+-// http://en.wikipedia.org/wiki/Digital_filter
+- bq_t tphi = tan( M_PI * fc / fs);
+- bq_t p = (1.0f - tphi) / (1.0f + tphi);
+-
+- // case 1: phase varies from 0 to 180 degrees
+- f->b0 = -p;
+- f->b1 = 1.0f;
+-
+- // case 2: phase varies from 180 to 360 degrees
+-// f->b0 = p;
+-// f->b1 = -1.0f;
+-
+- f->a1 = p;
+-}
+-
+-// routine that runs a biquad (i.e. 2nd-order) digital filter
+-static inline bq_t biquad_run(biquad *f, const bq_t x) {
+- bq_t y;
+-
+-// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
+- y = f->b0 * x + f->b1 * f->x1 + f->b2 * f->x2
+- + f->a1 * f->y1 + f->a2 * f->y2 + f->dn;
+- f->dn = -f->dn;
+-
+-// see previous commment
+-// y = flush_to_zero(y);
+-
+- f->x2 = f->x1;
+- f->x1 = x;
+- f->y2 = f->y1;
+- f->y1 = y;
+-
+- return y;
+-}
+-
+-// rt 2.9.2013: special version of biquad_run for 2nd-order
+-// allpass; takes advantage of factoring to reduce floating-point
+-// multiplications from 5 to 2
+-static inline bq_t ap2_run(biquad *f, const bq_t x) {
+- bq_t y;
+-
+-// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
+- y = f->b0 * (x - f->y2) + f->b1 * (f->x1 - f->y1) + f->x2 + f->dn;
+- f->dn = -f->dn;
+-
+-// see previous commment
+-// y = flush_to_zero(y);
+-
+- f->x2 = f->x1;
+- f->x1 = x;
+- f->y2 = f->y1;
+- f->y1 = y;
+-
+- return y;
+-}
+-
+-// routine that runs a bilinear (i.e. 1st-order) digital filter
+-static inline bq_t bilin_run(bilin *f, const bq_t x) {
+- bq_t y;
+-
+-// rt 15.5.2013: add a Nyquist-frequency square-wave to kill denormals:
+- y = f->b0 * x + f->b1 * f->x1 + f->a1 * f->y1 + f->dn;
+- f->dn = -f->dn;
+-
+-// see previous commment
+-// y = flush_to_zero(y);
+-
+- f->x1 = x;
+- f->y1 = y;
+-
+- return y;
+-}
+-
+-// rt 2.9.2013: special version of bilin_run for 2nd-order
+-// allpass; takes advantage of factoring to reduce floating-point
+-// multiplications from 5 to 2
+-static inline bq_t ap1_run(bilin *f, const bq_t x) {
+- bq_t y;
+-
+-// rt 15.5.2013: adding a Nyquist-frequency square-wave to kill denormals:
+- y = f->b0 * (x - f->y1) + f->x1 + f->dn;
+- f->dn = -f->dn;
+-
+-// see previous commment
+-// y = flush_to_zero(y);
+-
+- f->x1 = x;
+- f->y1 = y;
+-
+- return y;
+-}
+-
+-#endif
+diff --git a/util/config.h b/util/config.h
+deleted file mode 100644
+index 1dcbc37..0000000
+--- a/util/config.h
++++ /dev/null
+@@ -1,99 +0,0 @@
+-/* config.h. Generated by configure. */
+-/* config.h.in. Generated from configure.in by autoheader. */
+-#ifndef _CONFIG_H
+-#define _CONFIG_H
+-
+-/* #undef EXPLICIT_S */
+-/* #undef ACCEL_3DNOW */
+-#define HAVE_LRINTF 1
+-#define PACKAGE_LOCALE_DIR "/usr/local//locale"
+-#define PACKAGE_DATA_DIR "/usr/local/share/swh-plugins"
+-
+-#endif
+-
+-/* Define to 1 if translation of program messages to the user's native
+- language is requested. */
+-#define ENABLE_NLS 1
+-
+-/* Wether were using FFTW version 3 */
+-#define FFTW3
+-
+-/* Define if the GNU dcgettext() function is already present or
preinstalled.
+- */
+-#define HAVE_DCGETTEXT 1
+-
+-/* Define to 1 if you have the <dlfcn.h> header file. */
+-#define HAVE_DLFCN_H 1
+-
+-/* Define if the GNU gettext() function is already present or preinstalled.
*/
+-#define HAVE_GETTEXT 1
+-
+-/* Define if you have the iconv() function. */
+-/* #undef HAVE_ICONV */
+-
+-/* Define to 1 if you have the <inttypes.h> header file. */
+-#define HAVE_INTTYPES_H 1
+-
+-/* Define to 1 if you have the `m' library (-lm). */
+-#define HAVE_LIBM 1
+-
+-/* Define to 1 if you have the `mx' library (-lmx). */
+-/* #undef HAVE_LIBMX */
+-
+-/* Define to 1 if you have the `rt' library (-lrt). */
+-#define HAVE_LIBRT 1
+-
+-/* Define if you have C99's lrintf function. */
+-#define HAVE_LRINTF 1
+-
+-/* Define to 1 if you have the <memory.h> header file. */
+-#define HAVE_MEMORY_H 1
+-
+-/* Define to 1 if you have the <stdint.h> header file. */
+-#define HAVE_STDINT_H 1
+-
+-/* Define to 1 if you have the <stdlib.h> header file. */
+-#define HAVE_STDLIB_H 1
+-
+-/* Define to 1 if you have the <strings.h> header file. */
+-#define HAVE_STRINGS_H 1
+-
+-/* Define to 1 if you have the <string.h> header file. */
+-#define HAVE_STRING_H 1
+-
+-/* Define to 1 if you have the <sys/stat.h> header file. */
+-#define HAVE_SYS_STAT_H 1
+-
+-/* Define to 1 if you have the <sys/types.h> header file. */
+-#define HAVE_SYS_TYPES_H 1
+-
+-/* Define to 1 if you have the <unistd.h> header file. */
+-#define HAVE_UNISTD_H 1
+-
+-/* Name of package */
+-#define PACKAGE "swh-plugins"
+-
+-/* Define to the address where bug reports for this package should be sent.
*/
+-#define PACKAGE_BUGREPORT ""
+-
+-/* Define to the full name of this package. */
+-#define PACKAGE_NAME ""
+-
+-/* Define to the full name and version of this package. */
+-#define PACKAGE_STRING ""
+-
+-/* Define to the one symbol short name of this package. */
+-#define PACKAGE_TARNAME ""
+-
+-/* Define to the version of this package. */
+-#define PACKAGE_VERSION ""
+-
+-/* Define to 1 if you have the ANSI C header files. */
+-#define STDC_HEADERS 1
+-
+-/* Version number of package */
+-#define VERSION "0.4.15"
+-
+-/* Define to 1 if your processor stores words with the most significant byte
+- first (like Motorola and SPARC, unlike Intel and VAX). */
+-/* #undef WORDS_BIGENDIAN */
+diff --git a/util/ladspa-util.h b/util/ladspa-util.h
+deleted file mode 100644
+index 5d3dcc9..0000000
+--- a/util/ladspa-util.h
++++ /dev/null
+@@ -1,230 +0,0 @@
+-/* Some misc util functions for audio DSP work, written by Steve Harris,
+- * December 2000
+- *
+- * steve AT plugin.org.uk
+- */
+-
+-#ifndef LADSPA_UTIL_H
+-#define LADSPA_UTIL_H
+-
+-#include <math.h>
+-#include <stdint.h>
+-
+-#include "config.h"
+-
+-// 16.16 fixpoint
+-typedef union {
+- int32_t all;
+- struct {
+-#ifdef WORDS_BIGENDIAN
+- int16_t in;
+- uint16_t fr;
+-#else
+- uint16_t fr;
+- int16_t in;
+-#endif
+- } part;
+-} fixp16;
+-
+-// 32.32 fixpoint
+-typedef union {
+- int64_t all;
+- struct {
+-#ifdef WORDS_BIGENDIAN
+- int32_t in;
+- uint32_t fr;
+-#else
+- uint32_t fr;
+- int32_t in;
+-#endif
+- } part;
+-} fixp32;
+-
+-/* 32 bit "pointer cast" union */
+-typedef union {
+- float f;
+- int32_t i;
+-} ls_pcast32;
+-
+-// 1.0 / ln(2)
+-#define LN2R 1.442695041f
+-
+-/* detet floating point denormal numbers by comparing them to the smallest
+- * normal, crap, but reliable */
+-#define DN_CHECK(x, l) if (fabs(x) < 1e-38) printf("DN: "l"\n")
+-
+-// Denormalise floats, only actually needed for PIII and recent PowerPC
+-//#define FLUSH_TO_ZERO(fv) (((*(unsigned
int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
+-
+-static inline float flush_to_zero(float f)
+-{
+- ls_pcast32 v;
+-
+- v.f = f;
+-
+- // original: return (v.i & 0x7f800000) == 0 ? 0.0f : f;
+- // version from Tim Blechmann
+- return (v.i & 0x7f800000) < 0x08000000 ? 0.0f : f;
+-}
+-
+-static inline void round_to_zero(volatile float *f)
+-{
+- *f += 1e-18f;
+- *f -= 1e-18f;
+-}
+-
+-/* A set of branchless clipping operations from Laurent de Soras */
+-
+-static inline float f_max(float x, float a)
+-{
+- x -= a;
+- x += fabsf(x);
+- x *= 0.5f;
+- x += a;
+-
+- return x;
+-}
+-
+-static inline float f_min(float x, float b)
+-{
+- x = b - x;
+- x += fabsf(x);
+- x *= 0.5f;
+- x = b - x;
+-
+- return x;
+-}
+-
+-static inline float f_clamp(float x, float a, float b)
+-{
+- const float x1 = fabsf(x - a);
+- const float x2 = fabsf(x - b);
+-
+- x = x1 + a + b;
+- x -= x2;
+- x *= 0.5f;
+-
+- return x;
+-}
+-
+-// Limit a value to be l<=v<=u
+-#define LIMIT(v,l,u) ((v)<(l)?(l):((v)>(u)?(u):(v)))
+-
+-// Truncate-to-zero modulo (ANSI C doesn't specify) will only work
+-// if -m < v < 2m
+-#define MOD(v,m) (v<0?v+m:(v>=m?v-m:v))
+-
+-// Truncate-to-zero modulo (ANSI C doesn't specify) will only work
+-// if v > -m and v < m
+-#define NEG_MOD(v,m) ((v)<0?((v)+(m)):(v))
+-
+-// Convert a value in dB's to a coefficent
+-#define DB_CO(g) ((g) > -90.0f ? powf(10.0f, (g) * 0.05f) : 0.0f)
+-#define CO_DB(v) (20.0f * log10f(v))
+-
+-// Linearly interpolate [ = a * (1 - f) + b * f]
+-#define LIN_INTERP(f,a,b) ((a) + (f) * ((b) - (a)))
+-
+-// Cubic interpolation function
+-static inline float cube_interp(const float fr, const float inm1, const
float
+- in, const float inp1, const float inp2)
+-{
+- return in + 0.5f * fr * (inp1 - inm1 +
+- fr * (4.0f * inp1 + 2.0f * inm1 - 5.0f * in - inp2 +
+- fr * (3.0f * (in - inp1) - inm1 + inp2)));
+-}
+-
+-/* fast sin^2 aproxiamtion, adapted from jan AT rpgfan's posting to the
+- * music-dsp list */
+-static inline float f_sin_sq(float angle)
+-{
+- const float asqr = angle * angle;
+- float result = -2.39e-08f;
+-
+- result *= asqr;
+- result += 2.7526e-06f;
+- result *= asqr;
+- result -= 1.98409e-04f;
+- result *= asqr;
+- result += 8.3333315e-03f;
+- result *= asqr;
+- result -= 1.666666664e-01f;
+- result *= asqr;
+- result += 1.0f;
+- result *= angle;
+-
+- return result * result;
+-}
+-
+-#ifdef HAVE_LRINTF
+-
+-#define f_round(f) lrintf(f)
+-
+-#else
+-
+-// Round float to int using IEEE int* hack
+-static inline long int f_round(float f)
+-{
+- ls_pcast32 p;
+-
+- p.f = f;
+- p.f += (3<<22);
+-
+- return p.i - 0x4b400000;
+-}
+-
+-#endif
+-
+-// Truncate float to int
+-static inline long int f_trunc(float f)
+-{
+- return f_round(floorf(f));
+-}
+-
+-/* Andrew Simper's pow(2, x) aproximation from the music-dsp list */
+-
+-#if 0
+-
+-/* original */
+-static inline float f_pow2(float x)
+-{
+- long *px = (long*)(&x); // store address of float as long pointer
+- const float tx = (x-0.5f) + (3<<22); // temporary value for truncation
+- const long lx = *((long*)&tx) - 0x4b400000; // integer power of 2
+- const float dx = x-(float)(lx); // float remainder of power of 2
+-
+- x = 1.0f + dx*(0.6960656421638072f + // cubic apporoximation of 2^x
+- dx*(0.224494337302845f + // for x in the range [0, 1]
+- dx*(0.07944023841053369f)));
+- *px += (lx<<23); // add integer power of 2 to exponent
+-
+- return x;
+-}
+-
+-#else
+-
+-/* union version */
+-static inline float f_pow2(float x)
+-{
+- ls_pcast32 *px, tx, lx;
+- float dx;
+-
+- px = (ls_pcast32 *)&x; // store address of float as long pointer
+- tx.f = (x-0.5f) + (3<<22); // temporary value for truncation
+- lx.i = tx.i - 0x4b400000; // integer power of 2
+- dx = x - (float)lx.i; // float remainder of power of 2
+-
+- x = 1.0f + dx * (0.6960656421638072f + // cubic apporoximation of 2^x
+- dx * (0.224494337302845f + // for x in the range [0, 1]
+- dx * (0.07944023841053369f)));
+- (*px).i += (lx.i << 23); // add integer power of 2 to exponent
+-
+- return (*px).f;
+-}
+-
+-#endif
+-
+-/* Fast exponentiation function, y = e^x */
+-#define f_exp(x) f_pow2(x * LN2R)
+-
+-#endif
+--
+1.9.0
+
diff --git a/audio-plugins/rt-plugins/BUILD b/audio-plugins/rt-plugins/BUILD
index 6dfecc1..e013b8d 100755
--- a/audio-plugins/rt-plugins/BUILD
+++ b/audio-plugins/rt-plugins/BUILD
@@ -1 +1 @@
-default_build_make
+cmake_build
diff --git a/audio-plugins/rt-plugins/DEPENDS
b/audio-plugins/rt-plugins/DEPENDS
index a02b2c8..0146535 100755
--- a/audio-plugins/rt-plugins/DEPENDS
+++ b/audio-plugins/rt-plugins/DEPENDS
@@ -1 +1,2 @@
-depends ladspa
+depends ladspa &&
+depends cmake
diff --git a/audio-plugins/rt-plugins/HISTORY
b/audio-plugins/rt-plugins/HISTORY
index fffe977..a5b95b1 100644
--- a/audio-plugins/rt-plugins/HISTORY
+++ b/audio-plugins/rt-plugins/HISTORY
@@ -1,3 +1,11 @@
+2014-04-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * 0003-switch-build-system-to-cmake.patch, PRE_BUILD, DEPENDS:
+ use cmake as build system
+
2014-03-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
- * DEPENDS, DETAILS: spell created
+ * DEPENDS, DETAILS, PRE_BUILD, INSTALL,
+ 0001-clean-up-the-Makefile.patch,
+ 0002-make-the-code-compile-with-higher-warning-levels.patch: spell
created
+
+

diff --git a/audio-plugins/rt-plugins/INSTALL
b/audio-plugins/rt-plugins/INSTALL
deleted file mode 100755
index 131ca30..0000000
--- a/audio-plugins/rt-plugins/INSTALL
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL_PLUGINS_DIR=${INSTALL_ROOT}/usr/lib/ladspa default_install
diff --git a/audio-plugins/rt-plugins/PRE_BUILD
b/audio-plugins/rt-plugins/PRE_BUILD
index 095c784..3629306 100755
--- a/audio-plugins/rt-plugins/PRE_BUILD
+++ b/audio-plugins/rt-plugins/PRE_BUILD
@@ -1,4 +1,5 @@
default_pre_build &&
cd ${SOURCE_DIRECTORY} &&
patch -p1 < $SPELL_DIRECTORY/0001-clean-up-the-Makefile.patch &&
-patch -p1 <
$SPELL_DIRECTORY/0002-make-the-code-compile-with-higher-warning-levels.patch
+patch -p1 <
$SPELL_DIRECTORY/0002-make-the-code-compile-with-higher-warning-levels.patch
&&
+patch -p1 < $SPELL_DIRECTORY/0003-switch-build-system-to-cmake.patch
diff --git a/audio-soft/meterbridge/DEPENDS b/audio-soft/meterbridge/DEPENDS
index 52ed4d0..05cd144 100755
--- a/audio-soft/meterbridge/DEPENDS
+++ b/audio-soft/meterbridge/DEPENDS
@@ -1,4 +1,6 @@
depends JACK-DRIVER &&
depends sdl &&
# TODO: meterbridge requires sdl_image with PNG support
-depends sdl_image
+depends sdl_image &&
+depends autoconf &&
+depends automake
diff --git a/audio-soft/meterbridge/HISTORY b/audio-soft/meterbridge/HISTORY
index 0be7602..8b04fb8 100644
--- a/audio-soft/meterbridge/HISTORY
+++ b/audio-soft/meterbridge/HISTORY
@@ -1,3 +1,10 @@
+2014-04-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS, PRE_BUILD: run autoconf and friends to fix linker error
+ * binutils_gold.patch, PRE_BUILD: fix linker error
+ * main.h.patch, PRE_BUILD: move patch into separate file
+ * meterbridge_0.9.2_iec_fix.patch, PRE_BUILD: fix bug in the 50-60dB
range
+ of the scale
+
2011-10-14 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: fixed long description wrap (scripted)

diff --git a/audio-soft/meterbridge/PRE_BUILD
b/audio-soft/meterbridge/PRE_BUILD
index 5163110..52337c1 100755
--- a/audio-soft/meterbridge/PRE_BUILD
+++ b/audio-soft/meterbridge/PRE_BUILD
@@ -1,17 +1,10 @@
default_pre_build &&
cd "$SOURCE_DIRECTORY" &&
-# Fixing this in version 0.9.2:
-# vu_meters.c:11: error: static declaration of 'buf_rect' follows non-static
declaration
-# main.h:11: error: previous declaration of 'buf_rect' was here
-echo '--- /usr/src/meterbridge-0.9.2/src/main.h 2003-06-05
11:42:41.000000000 +0200
-+++ src/main.h 2008-08-01 10:08:16.000000000 +0200
-@@ -8,7 +8,8 @@
-
- extern SDL_Surface *screen;
- extern SDL_Surface *image, *meter, *meter_buf;
--extern SDL_Rect win, buf_rect[MAX_METERS], dest[MAX_METERS];
-+/* extern SDL_Rect win, buf_rect[MAX_METERS], dest[MAX_METERS]; */
-+extern SDL_Rect win, dest[MAX_METERS];
-
- extern jack_port_t *input_ports[MAX_METERS];
- extern jack_port_t *output_ports[MAX_METERS];' | patch -Np0
+
+patch -p1 < $SPELL_DIRECTORY/main.h.patch &&
+patch -p1 < $SPELL_DIRECTORY/binutils_gold.patch &&
+patch -p1 < $SPELL_DIRECTORY/meterbridge_0.9.2_iec_fix.patch &&
+
+autoconf -f &&
+aclocal --force &&
+automake -f --add-missing
diff --git a/audio-soft/meterbridge/binutils_gold.patch
b/audio-soft/meterbridge/binutils_gold.patch
new file mode 100644
index 0000000..23edcaf
--- /dev/null
+++ b/audio-soft/meterbridge/binutils_gold.patch
@@ -0,0 +1,15 @@
+Description: Fix FTBFS with binutils-gold.
+Author: Alessio Treglia <alessio AT debian.org>
+Forwarded: Steve Harris <steve AT plugin.org.uk>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- meterbridge-0.9.2.orig/src/Makefile.am
++++ meterbridge-0.9.2/src/Makefile.am
+@@ -6,4 +6,4 @@ bin_PROGRAMS = meterbridge
+ EXTRA_DIST = *.h
+
+ meterbridge_SOURCES = main.c linedraw.c vu_meters.c ppm_meters.c
dpm_meters.c jf_meters.c scope.c envelopes.c find_image.c
+-meterbridge_LDFLAGS = -lm $(JACK_LIBS) $(SDL_LIBS) -lSDL_image
++meterbridge_LDADD = -lm $(JACK_LIBS) $(SDL_LIBS) -lSDL_image
diff --git a/audio-soft/meterbridge/main.h.patch
b/audio-soft/meterbridge/main.h.patch
new file mode 100644
index 0000000..eafd68a
--- /dev/null
+++ b/audio-soft/meterbridge/main.h.patch
@@ -0,0 +1,19 @@
+Description: Removed duplicate declaration of buf_rect.
+Bug-Debian: http://bugs.debian.org/287641
+Author: Guenter Geiger <geiger AT debian.org>
+Forwarded: steve AT plugin.org.uk
+---
+ src/main.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- meterbridge.orig/src/main.h
++++ meterbridge/src/main.h
+@@ -8,7 +8,7 @@
+
+ extern SDL_Surface *screen;
+ extern SDL_Surface *image, *meter, *meter_buf;
+-extern SDL_Rect win, buf_rect[MAX_METERS], dest[MAX_METERS];
++extern SDL_Rect win, dest[MAX_METERS];
+
+ extern jack_port_t *input_ports[MAX_METERS];
+ extern jack_port_t *output_ports[MAX_METERS];
diff --git a/audio-soft/meterbridge/meterbridge_0.9.2_iec_fix.patch
b/audio-soft/meterbridge/meterbridge_0.9.2_iec_fix.patch
new file mode 100644
index 0000000..3adc351
--- /dev/null
+++ b/audio-soft/meterbridge/meterbridge_0.9.2_iec_fix.patch
@@ -0,0 +1,20 @@
+Subject: peak-meter scaling according to IEC-268-18 is misimplemented
+Bug-Lad:
+ http://lists.linuxaudio.org/pipermail/linux-audio-dev/2012-June/033486.html
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677547
+Author: Robin Gareus <robin AT gareus.org>
+---
+ src/dpm_meters.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- meterbridge.orig/src/dpm_meters.c
++++ meterbridge/src/dpm_meters.c
+@@ -33,7 +33,7 @@ int iec_scale(float db) {
+ } else if (db < -60.0f) {
+ def = (db + 70.0f) * 0.25f;
+ } else if (db < -50.0f) {
+- def = (db + 60.0f) * 0.5f + 5.0f;
++ def = (db + 60.0f) * 0.5f + 2.5f;
+ } else if (db < -40.0f) {
+ def = (db + 50.0f) * 0.75f + 7.5;
+ } else if (db < -30.0f) {
diff --git a/chat-irc/znc/DETAILS b/chat-irc/znc/DETAILS
index 25b0190..3b3e9b2 100755
--- a/chat-irc/znc/DETAILS
+++ b/chat-irc/znc/DETAILS
@@ -1,6 +1,6 @@
SPELL=znc
- VERSION=1.0
- SECURITY_PATCH=3
+ VERSION=1.2
+ SECURITY_PATCH=4
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.sig
SOURCE_URL[0]=http://znc.in/releases/$SOURCE
diff --git a/chat-irc/znc/HISTORY b/chat-irc/znc/HISTORY
index 413ea2f..c06aedf 100644
--- a/chat-irc/znc/HISTORY
+++ b/chat-irc/znc/HISTORY
@@ -1,3 +1,6 @@
+2014-03-29 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 1.2; SECURITY_PATCH++ (CVE-2013-2130)
+
2013-03-23 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 1.0
* DEPENDS: renewed dependencies and flags
diff --git a/crypto/ca-certificates/DETAILS b/crypto/ca-certificates/DETAILS
index 38882be..14c5d1a 100755
--- a/crypto/ca-certificates/DETAILS
+++ b/crypto/ca-certificates/DETAILS
@@ -1,7 +1,7 @@
SPELL=ca-certificates
- VERSION=20140223
+ VERSION=20140325
SECURITY_PATCH=1
-
SOURCE_HASH=sha512:003b6fd2301eee3ca2119781ee75a1b195f142678d4570b598c4b93847de23c4f659152f834db1f0c8866767324d02b27807260cf43f6ae16207538fa419aa31
+
SOURCE_HASH=sha512:729339c7050bdc791738f07c6523a1cbe3ccfcf4ea321a314f673172bd6999f707bcf924e2aa4bad0e263d5e374e592f1d693db7fbf23bab61b44ce5708cb57b
SOURCE=${SPELL}_${VERSION}_all.deb
SOURCE_URL[0]=http://ftp.de.debian.org/debian/pool/main/c/$SPELL/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL"
diff --git a/crypto/ca-certificates/HISTORY b/crypto/ca-certificates/HISTORY
index e7234ab..dac5288 100644
--- a/crypto/ca-certificates/HISTORY
+++ b/crypto/ca-certificates/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 20140325
+
2014-03-13 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: updated spell to 20140223

diff --git a/crypto/loop-aes/DETAILS b/crypto/loop-aes/DETAILS
index 6e19570..a945fd2 100755
--- a/crypto/loop-aes/DETAILS
+++ b/crypto/loop-aes/DETAILS
@@ -1,5 +1,5 @@
SPELL=loop-aes
- VERSION=3.7a
+ VERSION=3.7b
SOURCE=loop-AES-v$VERSION.tar.bz2
SOURCE2=$SOURCE.sign
SOURCE_DIRECTORY="$BUILD_DIRECTORY/loop-AES-v$VERSION"
diff --git a/crypto/loop-aes/HISTORY b/crypto/loop-aes/HISTORY
index f7dd729..e251548 100644
--- a/crypto/loop-aes/HISTORY
+++ b/crypto/loop-aes/HISTORY
@@ -1,3 +1,6 @@
+2014-04-02 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.7b
+
2013-08-26 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 3.7a

diff --git a/crypto/openssl/DETAILS b/crypto/openssl/DETAILS
index c867d4e..518f3e0 100755
--- a/crypto/openssl/DETAILS
+++ b/crypto/openssl/DETAILS
@@ -10,8 +10,8 @@ case $OPENSSL_BRANCH in
SECURITY_PATCH=20
;;
1.0)
- VERSION=1.0.0l
- SECURITY_PATCH=21
+ VERSION=1.0.1g
+ SECURITY_PATCH=22
PATCHLEVEL=0
;;
esac
diff --git a/crypto/openssl/HISTORY b/crypto/openssl/HISTORY
index a39ecbe..7d7f8c9 100644
--- a/crypto/openssl/HISTORY
+++ b/crypto/openssl/HISTORY
@@ -1,3 +1,7 @@
+2014-04-08 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.0.1g, SECURITY_PATCH=22, CVE-2014-0160
+ * openssl.gpg: import key FA40E9E2
+
2014-01-07 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 1.0.0l, SECURITY_PATCH=21

diff --git a/crypto/openssl/openssl.gpg b/crypto/openssl/openssl.gpg
index e01c054..5b26b13 100644
Binary files a/crypto/openssl/openssl.gpg and b/crypto/openssl/openssl.gpg
differ
diff --git a/database/mariadb/BUILD b/database/mariadb/BUILD
index 47781f2..d9075b7 100755
--- a/database/mariadb/BUILD
+++ b/database/mariadb/BUILD
@@ -1,27 +1,61 @@
create_account mariadb &&

-OPTS="$MADB_OPTS $OPTS" &&
+OPTS="$MARIADB_OPTS $OPTS" &&
CFLAGS="${CFLAGS//-ffast-math}" &&

-local LD_PRELOAD_OLD="$LD_PRELOAD" &&
-unset LD_PRELOAD &&
-CFLAGS="$CFLAGS -DUSE_OLD_FUNCTIONS" &&
+if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ if [[ $MARIA_TESTS == n ]]; then
+ OPTS="-DWITH_UNIT_TESTS=OFF -DINSTALL_MYSQLTESTDIR=OFF $OPTS"
+ else
+ OPTS="-DWITH_UNIT_TESTS=ON -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test
$OPTS"
+ fi &&

-if glibc_is_nptl; then
- OPTS="--with-named-thread-libs=-lpthread $OPTS" &&
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-fi &&
+ if [[ $MARIA_BENCH == n ]]; then
+ OPTS="-DINSTALL_SQLBENCHDIR=OFF $OPTS"
+ else
+ OPTS="-DINSTALL_SQLBENCHDIR=share/mysql/sql-bench $OPTS"
+ fi &&

-OPTS="--with-mysqld-user=mariadb \
- --with-charset=$MADB_CHARSET \
- --with-plugins=${MADB_ENGINES// /,} \
- --localstatedir=${INSTALL_ROOT}/var/lib/mariadb \
- --enable-assembler \
- --enable-thread-safe-client \
- --with-readline \
- $OPTS" &&
+ OPTS="-DDEFAULT_CHARSET=$MARIADB_CHARSET \
+ -DMYSQL_DATADIR=${INSTALL_ROOT}/var/lib/mariadb \
+ -DINSTALL_PLUGINDIR=lib/mysql/plugin \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_SUPPORTFILESDIR=share/mysql \
+ -DINSTALL_MYSQLSHAREDIR=share/mysql \
+ -DINSTALL_DOCDIR=share/doc/mariadb \
+ -DINSTALL_DOCREADMEDIR=share/doc/mariadb \
+ $OPTS" &&

-default_build &&
+ if [[ $MARIADB_ENGINES == none ]] || [[ $MARIADB_ENGINES == all ]]; then
+ OPTS="-DWITH_${MARIADB_ENGINES^^} $OPTS"
+ else
+ for engine in $MARIADB_ENGINES; do
+ OPTS="-DWITH_${engine^^}_STORAGE_ENGINE=ON $OPTS"
+ done
+ fi &&

-LD_PRELOAD="$LD_PRELOAD_OLD" &&
-make
+ cmake_build
+else
+ local LD_PRELOAD_OLD="$LD_PRELOAD" &&
+ unset LD_PRELOAD &&
+ CFLAGS="$CFLAGS -DUSE_OLD_FUNCTIONS" &&
+
+ if glibc_is_nptl; then
+ OPTS="--with-named-thread-libs=-lpthread $OPTS" &&
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ fi &&
+
+ OPTS="--with-mysqld-user=mariadb \
+ --with-charset=$MARIADB_CHARSET \
+ --with-plugins=${MARIADB_ENGINES// /,} \
+ --localstatedir=${INSTALL_ROOT}/var/lib/mariadb \
+ --enable-assembler \
+ --enable-thread-safe-client \
+ --with-readline \
+ $OPTS" &&
+
+ default_build &&
+
+ LD_PRELOAD="$LD_PRELOAD_OLD" &&
+ make
+fi
diff --git a/database/mariadb/CONFIGURE b/database/mariadb/CONFIGURE
index 496c711..1c4a39a 100755
--- a/database/mariadb/CONFIGURE
+++ b/database/mariadb/CONFIGURE
@@ -1,85 +1,118 @@
source $GRIMOIRE/config_query_multi.function &&

-config_query_option MADB_OPTS "Install client only?" n \
- "--without-server" \
- "--with-server" &&
+# backporting legacy options
+if [[ -n "$MADB_OPTS" ]]; then
+ persistent_add MARIADB_OPTS &&
+ MARIADB_OPTS="$MADB_OPTS" &&
+ persistent_remove MADB_OPTS
+fi &&
+
+if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ if list_find "$MARIADB_OPTS" "--with-embedded-server"; then
+ list_remove "MARIADB_OPTS" "--with-embedded-server" &&
+ list_add "MARIADB_OPTS" "-DWITH_EMBEDDED_SERVER=ON"
+ elif list_find "$MARIADB_OPTS" "--without-embedded-server"; then
+ list_remove "MARIADB_OPTS" "--without-embedded-server" &&
+ list_add "MARIADB_OPTS" "-DWITH_EMBEDDED_SERVER=OFF"
+ elif list_find "$MARIADB_OPTS" "--with-server"; then
+ list_remove "MARIADB_OPTS" "--with-server" &&
+ list_add "MARIADB_OPTS" "-DWITHOUT_SERVER=OFF"
+ elif list_find "$MARIADB_OPTS" "--without-server"; then
+ list_remove "MARIADB_OPTS" "--without-server" &&
+ list_add "MARIADB_OPTS" "-DWITHOUT_SERVER=ON"
+ fi &&
+
+ config_query_option MARIADB_OPTS "Build the embedded server (libmysqld)?"
n \
+ "-DWITH_EMBEDDED_SERVER=ON" \
+ "-DWITH_EMBEDDED_SERVER=OFF" &&
+
+ config_query_option MARIADB_OPTS "Install client only?" n \
+ "-DWITHOUT_SERVER=ON" \
+ "-DWITHOUT_SERVER=OFF"
+else
+ config_query_option MARIADB_OPTS "Install client only?" n \
+ "--without-server" \
+ "--with-server" &&
+
+ config_query_option MARIADB_OPTS "Build the embedded server (libmysqld)?"
n \
+ "--with-embedded-server" \
+ "--without-embedded-server" &&

-config_query_option MADB_OPTS "Build the embedded server (libmysqld)?" n \
- "--with-embedded-server" \
- "--without-embedded-server" &&
+ if list_find "$MARIADB_OPTS" "--with-server"; then
+ config_query_option MARIADB_OPTS "Use libevent and have connection
pooling?" n \
+ "--with-libevent=yes" \
+ "--with-libevent=no"
+ fi
+fi &&

-if list_find "$MADB_OPTS" "--with-server"; then
- config_query_option MADB_OPTS "Use libevent and have connection pooling?"
n \
- "--with-libevent=yes" \
- "--with-libevent=no"
+# backporting legacy options
+if [[ -n "$MADB_CHARSET" ]]; then
+ persistent_add MARIADB_CHARSET &&
+ MARIADB_CHARSET="$MADB_CHARSET" &&
+ persistent_remove MADB_CHARSET
fi &&

-config_query_list MADB_CHARSET "Select default character set" \
- latin1 \
- utf8 \
- binary \
- armscii8 \
- ascii \
- big5 \
- cp1250 \
- cp1251 \
- cp1256 \
- cp1257 \
- cp850 \
- cp852 \
- cp866 \
- cp932 \
- dec8 \
- eucjpms \
- euckr \
- gb2312 \
- gbk \
- geostd8 \
- greek \
- hebrew \
- hp8 \
- keybcs2 \
- koi8r \
- koi8u \
- latin2 \
- latin5 \
- latin7 \
- macce \
- macroman \
- sjis \
- swe7 \
- tis620 \
- ucs2 \
- ujis &&
+config_query_list MARIADB_CHARSET "Select default character set:" \
+ latin1 \
+ utf8 \
+ binary \
+ armscii8 \
+ ascii \
+ big5 \
+ cp1250 \
+ cp1251 \
+ cp1256 \
+ cp1257 \
+ cp850 \
+ cp852 \
+ cp866 \
+ cp932 \
+ dec8 \
+ eucjpms \
+ euckr \
+ gb2312 \
+ gbk \
+ geostd8 \
+ greek \
+ hebrew \
+ hp8 \
+ keybcs2 \
+ koi8r \
+ koi8u \
+ latin2 \
+ latin5 \
+ latin7 \
+ macce \
+ macroman \
+ sjis \
+ swe7 \
+ tis620 \
+ ucs2 \
+ ujis \
+ utf16 \
+ utf32 \
+ utf8mb4 &&
+
+# backporting legacy options
+if [[ -n "$MADB_ENGINES" ]]; then
+ persistent_add MARIADB_ENGINES &&
+ MARIADB_ENGINES="$MADB_ENGINES" &&
+ persistent_remove MADB_ENGINES
+fi &&
+
+if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ local MARIADB_ENGINES_LIST="archive aria blackhole csv example federated
federatedx heap innobase myisam myisammrg ndbcluster oqgraph partition
perfschema sphinx tokudb xtradb"
+else
+ local MARIADB_ENGINES_LIST="archive aria blackhole csv example federated
federatedx heap ibmdb2i innodb_plugin myisam ndbcluster oqgraph pbxt sphinx
xtradb"
+fi &&

-config_query_multi MADB_ENGINES \
- "What additional storage engines to build?" \
- none \
- all \
- archive \
- xtradb \
- blackhole \
- example \
- federated \
- innodb_plugin \
- ndbcluster \
- myisam \
- partition \
- auth \
- daemon_example \
- ftexample \
- csv \
- federatedx \
- heap \
- ibmdb2i \
- aria \
- myisammrg \
- oqgraph \
- pbxt \
- sphinx &&
+config_query_multi MARIADB_ENGINES "What storage engines to build?" \
+ none \
+ all \
+ $MARIADB_ENGINES_LIST &&

-if list_find "$MADB_ENGINES" "all"; then
- MADB_ENGINES="all"
-elif list_find "$MADB_ENGINES" "none"; then
- MADB_ENGINES="none"
+if list_find "$MARIADB_ENGINES" "all"; then
+ MARIADB_ENGINES="all"
+elif list_find "$MARIADB_ENGINES" "none"; then
+ MARIADB_ENGINES="none"
fi
diff --git a/database/mariadb/DEPENDS b/database/mariadb/DEPENDS
index ed9f6ec..8f8e628 100755
--- a/database/mariadb/DEPENDS
+++ b/database/mariadb/DEPENDS
@@ -1,34 +1,72 @@
depends perl &&
depends procps &&
depends -sub CXX gcc &&
+depends bison &&

-optional_depends zlib \
- "--with-zlib-dir=$INSTALL_ROOT/" \
- "--with-zlib-dir=bundled" \
- "to use system zlib instead of bundled" &&
-
-# temporarily broken cause of mismatching API
-#optional_depends readline \
-# "--without-readline" "" \
-# "to use system readline instead of bundled" &&
-
-optional_depends libedit \
- "--without-libedit" "" \
- "to use system libedit instead of bundled" &&
-
-optional_depends openssl \
- "--with-ssl" \
- "--without-ssl" \
- "for OpenSSL support" &&
-
-optional_depends valgrind \
- "--with-valgrind" \
- "--without-valgrind" \
- "for Valgrind instrumentation" &&
-
-if list_find "$MADB_OPTS" "--with-libevent=yes"; then
- optional_depends libevent \
- "--with-libevent=$INSTALL_ROOT/usr" \
- "--with-libevent=bundled" \
- "to use system libevent instead of bundled"
+if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ depends cmake &&
+
+ optional_depends readline \
+ "-DWITH_READLINE=OFF" \
+ "-DWITH_READLINE=ON" \
+ "to use system readline instead of bundled" &&
+
+ optional_depends zlib \
+ "-DWITH_ZLIB=system" \
+ "-DWITH_ZLIB=bundled" \
+ "to use system zlib instead of bundled" &&
+
+ optional_depends openssl \
+ "-DWITH_SSL=system" \
+ "-DWITH_SSL=bundled" \
+ "to use system SSL instead of bundled" &&
+
+ optional_depends tcp_wrappers \
+ "-DWITH_LIBWRAP=ON" \
+ "-DWITH_LIBWRAP=OFF" \
+ "for tcp wrappers support" &&
+
+ optional_depends valgrind \
+ "-DWITH_VALGRIND=ON" \
+ "-DWITH_VALGRIND=OFF" \
+ "for Valgrind instrumentation" &&
+
+ if list_find "$MARIADB_OPTS" "-DWITHOUT_SERVER=OFF"; then
+ optional_depends libevent "" "" "to use libevent and have connection
pooling"
+ fi &&
+
+ if list_find "$MARIADB_ENGINES" "xtradb"; then
+ depends libaio
+ fi &&
+
+ if list_find "$MARIADB_ENGINES" "oqgraph"; then
+ depends boost
+ fi
+else
+ optional_depends zlib \
+ "--with-zlib-dir=$INSTALL_ROOT/" \
+ "--with-zlib-dir=bundled" \
+ "to use system zlib instead of bundled" &&
+
+ optional_depends libedit \
+ "--without-libedit" \
+ "" \
+ "to use system libedit instead of bundled" &&
+
+ optional_depends openssl \
+ "--with-ssl" \
+ "--without-ssl" \
+ "for OpenSSL support" &&
+
+ optional_depends valgrind \
+ "--with-valgrind" \
+ "--without-valgrind" \
+ "for Valgrind instrumentation" &&
+
+ if list_find "$MARIADB_OPTS" "--with-libevent=yes"; then
+ optional_depends libevent \
+ "--with-libevent=$INSTALL_ROOT/usr" \
+ "--with-libevent=bundled" \
+ "to use system libevent instead of bundled"
+ fi
fi
diff --git a/database/mariadb/DETAILS b/database/mariadb/DETAILS
index 7111b30..51b0f2a 100755
--- a/database/mariadb/DETAILS
+++ b/database/mariadb/DETAILS
@@ -2,6 +2,9 @@
if [[ $MARIADB_BRANCH == 5.3 ]]; then
VERSION=5.3.12

SOURCE_HASH=sha512:d53ea48745dad5693fd6a1fd5cf502852f12f8236b8a1fb7f81ad647301d2fd08d4f2944c74de580d0a4136d6c8b49f257124fa1b234ba8f2338f2047435ef94
+elif [[ $MARIADB_BRANCH == 5.5 ]]; then
+ VERSION=5.5.36
+
SOURCE_HASH=sha512:b7de14f4d4a08f51aae339779c59798f3ed110aa3d65038c39514161ee73b6cc95f95fe1b15434daf33de689b0d7351cbf7a1c90ca980f0f020b085ef23aa016
else
VERSION=5.2.14
SECURITY_PATCH=3
diff --git a/database/mariadb/FINAL b/database/mariadb/FINAL
index daee887..9a9db7d 100755
--- a/database/mariadb/FINAL
+++ b/database/mariadb/FINAL
@@ -1,4 +1,5 @@
-if list_find "$MADB_OPTS" "--with-server" ]]; then
+if list_find "$MARIADB_OPTS" "--with-server" || \
+ list_find "$MARIADB_OPTS" "-DWITHOUT_SERVER=OFF"; then
message "${MESSAGE_COLOR}After initial install of MariaDB run"
message "\"mysql_install_db --user=mariadb\" to create directory"
message "structure and initial tables. See MariaDB documentation"
diff --git a/database/mariadb/HISTORY b/database/mariadb/HISTORY
index 70c5fbd..07e78ce 100644
--- a/database/mariadb/HISTORY
+++ b/database/mariadb/HISTORY
@@ -1,3 +1,20 @@
+2014-04-08 Vlad Glagolev <stealth AT sourcemage.org>
+ * UP_TRIGGERS: update triggers for switching between branches
+
+2014-04-07 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, PREPARE: added 5.5 branch
+ * CONFIGURE: renamed lists MADB_* -> MARIADB_*; added missing
charsets;
+ split engines list for different branches
+ * DEPENDS: added bison dependency; added cmake (optional) and libaio,
+ boost for 5.5 branch
+ * BUILD: cmake build for 5.5 branch; use MARIADB_OPTS
+ * INSTALL: added target for 5.5 branch
+ * PRE_BUILD: added check for 5.5 branch; renamed mysqld user mysql ->
+ mariadb
+ * FINAL: fixed syntax error; added check for 5.5 branch
+ * {PRE_,}SUB_DEPENDS: rewritten; echo -> message
+ * REPAIR^all^PRE_SUB_DEPENDS: added
+
2013-02-10 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: added 5.3 branch; PATCHLEVEL=1 for 5.2 branch to set
MARIADB_BRANCH in tablet for further usage; updated website
diff --git a/database/mariadb/INSTALL b/database/mariadb/INSTALL
index 9c90b69..1db0634 100755
--- a/database/mariadb/INSTALL
+++ b/database/mariadb/INSTALL
@@ -1,13 +1,17 @@
-make benchdir_root="${TRACK_ROOT}/usr/share/mysql" \
- testroot="${TRACK_ROOT}/usr/share/mysql" \
- install &&
+if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ default_install
+else
+ make benchdir_root="${TRACK_ROOT}/usr/share/mysql" \
+ testroot="${TRACK_ROOT}/usr/share/mysql" \
+ install &&

-if [[ $MARIA_TESTS == n ]]; then
+ if [[ $MARIA_TESTS == n ]]; then
rm -rf "${INSTALL_ROOT}/usr/share/mysql/mysql-test"
-fi &&
+ fi &&

-if [[ $MARIA_BENCH == n ]]; then
- rm -fr "${INSTALL_ROOT}/usr/share/mysql/sql-bench"
+ if [[ $MARIA_BENCH == n ]]; then
+ rm -rf "${INSTALL_ROOT}/usr/share/mysql/sql-bench"
+ fi
fi &&

if [[ $INIT_INSTALLED ]]; then
diff --git a/database/mariadb/PREPARE b/database/mariadb/PREPARE
index cb0d439..708765d 100755
--- a/database/mariadb/PREPARE
+++ b/database/mariadb/PREPARE
@@ -7,12 +7,12 @@
#
persistent_read $SPELL MARIADB_BRANCH MARIADB_BRANCH || true &&

-if [[ -z "$MARIADB_BRANCH" ]]; then
+if spell_ok $SPELL && [[ -z "$MARIADB_BRANCH" ]]; then
persistent_add MARIADB_BRANCH &&
local MARIADB_BRANCH="5.2"
fi &&

-prepare_select_branch 5.3 5.2 &&
+prepare_select_branch 5.5 5.3 5.2 &&

config_query MARIA_TESTS "Install MariaDB testing utilities?" n &&
config_query MARIA_BENCH "Install MariaDB benchmarking utilities?" n
diff --git a/database/mariadb/PRE_BUILD b/database/mariadb/PRE_BUILD
index 68b9b02..c01bcd3 100755
--- a/database/mariadb/PRE_BUILD
+++ b/database/mariadb/PRE_BUILD
@@ -1,9 +1,15 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&
-sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql/Makefile.in &&
-sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql_r/Makefile.in &&

-# our zlib location isn't default
-if is_depends_enabled $SPELL zlib; then
- patch -p0 < "$SPELL_DIRECTORY/zlib-conf.patch"
+if [[ $MARIADB_BRANCH != 5.5 ]]; then
+ sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql/Makefile.in &&
+ sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql_r/Makefile.in &&
+
+ # our zlib location isn't default
+ if is_depends_enabled $SPELL zlib; then
+ patch -p0 < "$SPELL_DIRECTORY/zlib-conf.patch"
+ fi
+else
+ sedit "s:data/test:share/mysql/data/test:" sql/CMakeLists.txt &&
+ sedit "s:MYSQLD_USER \"mysql\":MYSQLD_USER \"mariadb\":"
scripts/CMakeLists.txt
fi
diff --git a/database/mariadb/PRE_SUB_DEPENDS
b/database/mariadb/PRE_SUB_DEPENDS
index ede9a09..e5dae45 100755
--- a/database/mariadb/PRE_SUB_DEPENDS
+++ b/database/mariadb/PRE_SUB_DEPENDS
@@ -1,6 +1,20 @@
case $THIS_SUB_DEPENDS in
- embedded|EMBEDDED) if list_find "$MADB_OPTS" "--with-embedded-server";
then return 0; fi;;
- innodb|INNODB) if [[ $MADB_ENGINES == *innodb_plugin* || "$MADB_ENGINES"
== "all" ]]; then return 0; fi;;
- NDB) if [[ $MADB_ENGINES == *ndbcluster* || "$MADB_ENGINES" == "all" ]];
then return 0; fi;;
+ embedded|EMBEDDED) if list_find "$MARIADB_OPTS" "--with-embedded-server"
|| \
+ list_find "$MARIADB_OPTS"
"-DWITH_EMBEDDED_SERVER=ON"; then
+ return 0
+ fi
+ ;;
+ innodb|INNODB) if list_find "$MARIADB_ENGINES" "innodb_plugin" || \
+ list_find "$MARIADB_ENGINES" "innobase" || \
+ list_find "$MARIADB_ENGINES" "all"; then
+ return 0
+ fi
+ ;;
+ NDB) if list_find "$MARIADB_ENGINES" "ndbcluster" || \
+ list_find "$MARIADB_ENGINES" "all"; then
+ return 0
+ fi
+ ;;
esac
+
return 1
diff --git a/database/mariadb/REPAIR^all^PRE_SUB_DEPENDS
b/database/mariadb/REPAIR^all^PRE_SUB_DEPENDS
new file mode 100755
index 0000000..e5dae45
--- /dev/null
+++ b/database/mariadb/REPAIR^all^PRE_SUB_DEPENDS
@@ -0,0 +1,20 @@
+case $THIS_SUB_DEPENDS in
+ embedded|EMBEDDED) if list_find "$MARIADB_OPTS" "--with-embedded-server"
|| \
+ list_find "$MARIADB_OPTS"
"-DWITH_EMBEDDED_SERVER=ON"; then
+ return 0
+ fi
+ ;;
+ innodb|INNODB) if list_find "$MARIADB_ENGINES" "innodb_plugin" || \
+ list_find "$MARIADB_ENGINES" "innobase" || \
+ list_find "$MARIADB_ENGINES" "all"; then
+ return 0
+ fi
+ ;;
+ NDB) if list_find "$MARIADB_ENGINES" "ndbcluster" || \
+ list_find "$MARIADB_ENGINES" "all"; then
+ return 0
+ fi
+ ;;
+esac
+
+return 1
diff --git a/database/mariadb/SUB_DEPENDS b/database/mariadb/SUB_DEPENDS
index fb44ab1..88bc25a 100755
--- a/database/mariadb/SUB_DEPENDS
+++ b/database/mariadb/SUB_DEPENDS
@@ -1,17 +1,32 @@
case $THIS_SUB_DEPENDS in
- embedded|EMBEDDED) echo "Embbeded mysql requested, forcing it." &&
- MADB_OPTS="--with-embedded-server $MADB_OPTS"
;;
- innodb|INNODB) echo "InnoDB storage engine support requested, forcing
it." &&
- if [ "$MADB_ENGINES" == "none" ]; then
- MADB_ENGINES="innodb_plugin"
- else
- MADB_ENGINES="innodb_plugin $MADB_ENGINES"
- fi ;;
- NDB) echo "ndbcluster storage engine support requested, forcing it." &&
- if [ "$MADB_ENGINES" == "none" ]; then
- MADB_ENGINES="ndbcluster"
- else
- MADB_ENGINES="ndbcluster $MADB_ENGINES"
- fi ;;
- *) echo "unknown sub-depends!"; return 1 ;;
+ embedded|EMBEDDED) message "${MESSAGE_COLOR}Embbeded server requested,
forcing it.${DEFAULT_COLOR}" &&
+ if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ list_remove "MARIADB_OPTS"
"-DWITH_EMBEDDED_SERVER=OFF" &&
+ list_add "MARIADB_OPTS" "-DWITH_EMBEDDED_SERVER=ON"
+ else
+ list_remove "MARIADB_OPTS"
"--without-embedded-server" &&
+ list_add "MARIADB_OPTS" "--with-embedded-server"
+ fi
+ ;;
+ innodb|INNODB) message "${MESSAGE_COLOR}InnoDB storage engine support
requested, forcing it.${DEFAULT_COLOR}" &&
+ if list_find "$MARIADB_ENGINES" "none"; then
+ list_remove "MARIADB_ENGINES" "none"
+ fi &&
+
+ if [[ $MARIADB_BRANCH == 5.5 ]]; then
+ list_add "MARIADB_ENGINES" innobase
+ else
+ list_add "MARIADB_ENGINES" innodb_plugin
+ fi
+ ;;
+ NDB) message "${MESSAGE_COLOR}ndbcluster storage engine
support requested, forcing it.${DEFAULT_COLOR}" &&
+ if list_find "$MARIADB_ENGINES" "none"; then
+ list_remove "MARIADB_ENGINES" "none"
+ fi &&
+
+ list_add "MARIADB_ENGINES" "ndbcluster"
+ ;;
+ *) message "${PROBLEM_COLOR}Unknown
sub-depends!${DEFAULT_COLOR}" &&
+ return 1
+ ;;
esac
diff --git a/database/mariadb/UP_TRIGGERS b/database/mariadb/UP_TRIGGERS
index 000b21c..daf653e 100755
--- a/database/mariadb/UP_TRIGGERS
+++ b/database/mariadb/UP_TRIGGERS
@@ -1,14 +1,18 @@
-# up_trigger everything on update to 5.1.32 as most stuff links to
libmysqlclient.so.15 from version 5.0.77
+# up_trigger everything on branch updates
+local NEW_SPELL_BRANCH="" &&
+local OLD_SPELL_BRANCH="" &&
+
+if spell_ok $SPELL; then
+ NEW_SPELL_BRANCH="$(echo $VERSION | cut -d. -f1,2)" &&
+ OLD_SPELL_BRANCH="$(installed_version $SPELL | cut -d. -f1,2)" &&
+
+ if test "${NEW_SPELL_BRANCH}" != "${OLD_SPELL_BRANCH}"; then
+ message "${MESSAGE_COLOR}This is a possibly incompatible update of
$SPELL..." &&
+ message "Figuring out what spells need to be recast, this may take a
while.${DEFAULT_COLOR}" &&

-local OLD_SPELL_VERSION=""
-if spell_ok $SPELL; then
- OLD_SPELL_VERSION="$(installed_version $SPELL)"
- if test "${VERSION:0:3}" != "${OLD_SPELL_VERSION:0:3}"; then
- message "This is a possibly incompatible update of libmysql..."
- message "Figuring out what spells need to be recast, this may take a
while."
for each in $(show_up_depends $SPELL 1); do
- if gaze install $each | xargs readelf -d 2> /dev/null |
- grep -q "NEEDED.*libmysqlclient.so.15"; then
+ if gaze -q install $each | xargs readelf -d 2> /dev/null |
+ grep -Eq "NEEDED.*libmysqlclient(_r)?.so"; then
up_trigger $each cast_self
fi
done
diff --git a/database/mongodb/BUILD b/database/mongodb/BUILD
index 2b10b63..73c97d7 100755
--- a/database/mongodb/BUILD
+++ b/database/mongodb/BUILD
@@ -1,6 +1,18 @@
create_account mongodb &&

-# use bundled spidermonkey, 2.2 will switch to V8
-OPTS="--sharedclient --usesm $OPTS" &&
+if ! list_find "$LDFLAGS" "-s"; then
+ OPTS="--nostrip $OPTS"
+fi &&

-scons --jobs=$MAKE_NJOBS --prefix="$INSTALL_ROOT/usr" $OPTS
+case $MONGODB_JSE in
+ v8)
+ OPTS="--usev8 $OPTS"
+ ;;
+ spidermonkey)
+ OPTS="--usesm $OPTS"
+ ;;
+esac &&
+
+OPTS="--mongod-concurrency-level=$MONGODB_CCL $MONGODB_OPTS $OPTS" &&
+
+scons all --jobs=$MAKE_NJOBS --prefix="$INSTALL_ROOT/usr" $OPTS
diff --git a/database/mongodb/CONFIGURE b/database/mongodb/CONFIGURE
new file mode 100755
index 0000000..7614005
--- /dev/null
+++ b/database/mongodb/CONFIGURE
@@ -0,0 +1,11 @@
+config_query_list MONGODB_CCL "Choose mongod concurrency level:" \
+ db \
+ global &&
+
+config_query_list MONGODB_JSE "Choose JavaScript engine to use:" \
+ v8 \
+ spidermonkey &&
+
+config_query_option MONGODB_OPTS "Build shared client?" y \
+ "--sharedclient" \
+ ""
diff --git a/database/mongodb/DEPENDS b/database/mongodb/DEPENDS
index 0dd5739..fcbdf9f 100755
--- a/database/mongodb/DEPENDS
+++ b/database/mongodb/DEPENDS
@@ -1,7 +1,24 @@
-depends -sub CXX gcc &&
depends scons &&
depends readline &&
-depends -sub "THREAD FILESYSTEM PROGRAM_OPTIONS" boost &&
+depends -sub CXX gcc &&
+depends -sub CPP pcre '--use-system-pcre' &&
+depends -sub "THREAD FILESYSTEM PROGRAM_OPTIONS" boost '--use-system-boost'
&&
+
+optional_depends google-perftools \
+ "--use-system-tcmalloc" \
+ "" \
+ "to use system version of tcmalloc library" &&
+
+optional_depends snappy \
+ "--use-system-snappy" \
+ "" \
+ "to use system version of snappy library" &&
+
+optional_depends LIBSASL \
+ "--use-sasl-client" \
+ "" \
+ "for SASL authentication in the client library" &&

optional_depends openssl "--ssl" "" "for OpenSSL support" &&
+optional_depends libpcap "" "" "to build mongosniff utility" &&
optional_depends distcc "--distcc" "" "to use distcc for distributing builds"
diff --git a/database/mongodb/DETAILS b/database/mongodb/DETAILS
index f6f1fec..fa29f03 100755
--- a/database/mongodb/DETAILS
+++ b/database/mongodb/DETAILS
@@ -1,9 +1,10 @@
SPELL=mongodb
- VERSION=2.0.9
+ VERSION=2.4.10
SECURITY_PATCH=1
SOURCE=$SPELL-src-r$VERSION.tar.gz
- SOURCE_URL[0]=http://downloads.mongodb.org/src/$SOURCE
-
SOURCE_HASH=sha512:5c7504bcc0f58999424c8bed5e43b7649b812bc2009fa251118442cd072e5cef08eaec4d3a45ad387eceaa79d0b336c58939a1b8f6e5b4566b0f745254844030
+ SOURCE_URL[0]=http://fastdl.mongodb.org/src/$SOURCE
+ SOURCE_URL[1]=http://downloads.mongodb.org/src/$SOURCE
+
SOURCE_HASH=sha512:970364dda2dba18bf979a0fc8291d9656b3cc3ba0aec1ca26d81f14f833e355c023d19b3cfaa81704013bf2c0e732d72de08b0f8236dafe85a3ac4d51b87edc6
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-src-r$VERSION"
LICENSE[0]=AGPL
LICENSE[1]=APACHE
diff --git a/database/mongodb/FINAL b/database/mongodb/FINAL
new file mode 100755
index 0000000..86fab5a
--- /dev/null
+++ b/database/mongodb/FINAL
@@ -0,0 +1,5 @@
+message "${PROBLEM_COLOR}"
+message "WARNING: don't forget to run mongod and mongos with '--upgrade'"
+message "flag to upgrade db and meta data version on updates of MongoDB"
+message "major branch versions (e.g. 2.2.* -> 2.4.*)."
+message "${DEFAULT_COLOR}"
diff --git a/database/mongodb/HISTORY b/database/mongodb/HISTORY
index 2e6dc88..2565e94 100644
--- a/database/mongodb/HISTORY
+++ b/database/mongodb/HISTORY
@@ -1,3 +1,17 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 2.4.10
+ * DEPENDS: added missing dependencies
+ * CONFIGURE: added, to select between js engines and concurrency
levels
+ * PRE_BUILD: sed -i -> sedit
+ * INSTALL: install run dir for mongos daemon
+ * FINAL: added, notify SA about spell branch updates
+ * init.d/mongodb: added stop() for clean shutdown
+ * init.d/mongos: added, init script for mongos (sharding daemon)
+ * fips.patch: added, to fix build against OpenSSL without FIPS support
+ (official patch 51a0bf4)
+ * scons.patch: added, to respect CXX/LD flags
+ * boost150.patch.gz: dropped, fixed by upstream
+
2013-06-25 Vlad Glagolev <stealth AT sourcemage.org>
* PRE_BUILD: apply patch
* boost150.patch.gz: added, to fix build with boost 1.50+
diff --git a/database/mongodb/INSTALL b/database/mongodb/INSTALL
index 50a5204..af039c1 100755
--- a/database/mongodb/INSTALL
+++ b/database/mongodb/INSTALL
@@ -1,8 +1,9 @@
-scons --prefix="$INSTALL_ROOT/usr" --full install &&
+scons install --prefix="$INSTALL_ROOT/usr" --full $OPTS &&

if [[ $INIT_INSTALLED ]]; then
install_config_file "$SPELL_DIRECTORY/init.d/mongodb.conf" \
"$INSTALL_ROOT/etc/sysconfig/mongodb"
fi &&

-install -d -o mongodb -g mongodb -vm 755 "$INSTALL_ROOT/var/run/mongod"
+install -d -o mongodb -g mongodb -vm 755 "$INSTALL_ROOT/var/run/mongod" \
+ "$INSTALL_ROOT/var/run/mongos"
diff --git a/database/mongodb/PRE_BUILD b/database/mongodb/PRE_BUILD
index ff92c07..9357ab2 100755
--- a/database/mongodb/PRE_BUILD
+++ b/database/mongodb/PRE_BUILD
@@ -1,6 +1,7 @@
default_pre_build &&
cd "$SOURCE_DIRECTORY" &&

-zcat "$SPELL_DIRECTORY/boost150.patch.gz" | patch -p1 &&
+patch -p0 < "$SPELL_DIRECTORY/scons.patch" &&
+patch -p0 < "$SPELL_DIRECTORY/fips.patch" &&

-sed -i "s:lib64:lib:g" SConstruct
+sedit "s:lib64:lib:g" SConstruct
diff --git a/database/mongodb/boost150.patch.gz
b/database/mongodb/boost150.patch.gz
deleted file mode 100644
index 24fbd28..0000000
Binary files a/database/mongodb/boost150.patch.gz and /dev/null differ
diff --git a/database/mongodb/fips.patch b/database/mongodb/fips.patch
new file mode 100644
index 0000000..c0da948
--- /dev/null
+++ b/database/mongodb/fips.patch
@@ -0,0 +1,21 @@
+--- src/mongo/util/net/ssl_manager.cpp.orig
++++ src/mongo/util/net/ssl_manager.cpp
+@@ -186,6 +186,7 @@
+
+ void SSLManager::_setupFIPS() {
+ // Turn on FIPS mode if requested.
++#ifdef OPENSSL_FIPS
+ int status = FIPS_mode_set(1);
+ if (!status) {
+ error() << "can't activate FIPS mode: " <<
+@@ -193,6 +194,10 @@
+ fassertFailed(16703);
+ }
+ log() << "FIPS 140-2 mode activated" << endl;
++#else
++ error() << "this version of mongodb was not compiled with FIPS
support";
++ fassertFailed(17084);
++#endif
+ }
+
+ bool SSLManager::_setupPEM(const std::string& keyFile , const
std::string& password) {
diff --git a/database/mongodb/init.d/mongodb b/database/mongodb/init.d/mongodb
index a4c4457..386518f 100755
--- a/database/mongodb/init.d/mongodb
+++ b/database/mongodb/init.d/mongodb
@@ -18,4 +18,11 @@ start() {
evaluate_retval
}

+stop() {
+ echo "Stopping $NAME..."
+
+ su mongodb -s /bin/sh -c "$PROGRAM $ARGS --shutdown"
+ evaluate_retval
+}
+
. /etc/init.d/smgl_init
diff --git a/database/mongodb/init.d/mongodb.conf
b/database/mongodb/init.d/mongodb.conf
index b3a4479..60b6e5e 100644
--- a/database/mongodb/init.d/mongodb.conf
+++ b/database/mongodb/init.d/mongodb.conf
@@ -1,3 +1,5 @@
-# For the arguments and description see ``mongod --help''
+# For the arguments and description see ``mongod --help'' and ``mongos
--help''

MONGOD_ARGS=""
+
+MONGOS_ARGS=""
diff --git a/database/mongodb/init.d/mongos b/database/mongodb/init.d/mongos
new file mode 100755
index 0000000..2485ffd
--- /dev/null
+++ b/database/mongodb/init.d/mongos
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+. /etc/sysconfig/mongodb
+
+PROGRAM=/usr/bin/mongos
+PIDFILE=/var/run/mongos/mongos.pid
+ARGS="-f /etc/mongos.conf --pidfilepath $PIDFILE --fork $MONGOS_ARGS"
+RUNLEVEL=3
+NEEDS="+network"
+
+start() {
+ echo "Starting $NAME..."
+
+ # needs C locale on startup
+ export LC_ALL="C"
+
+ su mongodb -s /bin/sh -c "$PROGRAM $ARGS"
+ evaluate_retval
+}
+
+. /etc/init.d/smgl_init
diff --git a/database/mongodb/scons.patch b/database/mongodb/scons.patch
new file mode 100644
index 0000000..94dbc05
--- /dev/null
+++ b/database/mongodb/scons.patch
@@ -0,0 +1,28 @@
+--- SConstruct.orig
++++ SConstruct
+@@ -702,7 +702,6 @@
+ # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers)
is found in the search path but can't be used.
+ env.Append( CCFLAGS=["-fPIC",
+ "-fno-strict-aliasing",
+- "-ggdb",
+ "-pthread",
+ "-Wall",
+ "-Wsign-compare",
+@@ -710,14 +709,14 @@
+ "-Winvalid-pch"] )
+ # env.Append( " -Wconversion" ) TODO: this doesn't really work yet
+ if linux:
+- env.Append( CCFLAGS=["-Werror", "-pipe"] )
+ if not has_option('clang'):
+ env.Append( CCFLAGS=["-fno-builtin-memcmp"] ) # glibc's memcmp
is faster than gcc's
+
+ env.Append( CPPDEFINES=["_FILE_OFFSET_BITS=64"] )
+- env.Append( CXXFLAGS=["-Wnon-virtual-dtor", "-Woverloaded-virtual"] )
++ env.Append( CXXFLAGS=os.environ['CXXFLAGS'])
++ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
+ env.Append( LINKFLAGS=["-fPIC", "-pthread", "-rdynamic"] )
+- env.Append( LIBS=[] )
++ env.Append( LIBS=['pcre', 'pcrecpp'] )
+
+ #make scons colorgcc friendly
+ for key in ('HOME', 'TERM'):
diff --git a/database/redis/DETAILS b/database/redis/DETAILS
index 85bac0b..e3ef2d7 100755
--- a/database/redis/DETAILS
+++ b/database/redis/DETAILS
@@ -1,9 +1,9 @@
SPELL=redis
- VERSION=2.6.13
+ VERSION=2.6.17
SECURITY_PATCH=1
SOURCE=$SPELL-$VERSION.tar.gz
- SOURCE_URL[0]=http://redis.googlecode.com/files/$SOURCE
-
SOURCE_HASH=sha512:2676b4afb688aac7b4bfdcd2e6b054ab8ea8b94294c948189ebbf4d29f019d07f5c764328b2fd148ae35627612887b7e7ab9037e5e370c6275a998d9d3a4262b
+ SOURCE_URL[0]=http://download.redis.io/releases/$SOURCE
+
SOURCE_HASH=sha512:bc0d487cdab3ce1bfe68a6efad9f4532552065fa45cd4c4429f3413397ec228d1ecf9afd8d2cc6d4aee115c7fb757fa1ef480f34c264b2290fd30ec831131f82
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
LICENSE[0]=BSD
WEB_SITE=http://redis.io/
diff --git a/database/redis/HISTORY b/database/redis/HISTORY
index b7bbfcc..c14482e 100644
--- a/database/redis/HISTORY
+++ b/database/redis/HISTORY
@@ -1,3 +1,6 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 2.6.17; updated source url
+
2013-06-19 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 2.6.13

diff --git a/database/sqlite/DETAILS b/database/sqlite/DETAILS
index 1a30a2f..d805b81 100755
--- a/database/sqlite/DETAILS
+++ b/database/sqlite/DETAILS
@@ -1,7 +1,7 @@
SPELL=sqlite
- VERSION=3.8.4.1
- VERSIONX=autoconf-3080401
-
SOURCE_HASH=sha512:222868477a73b2f15ee95dbe244a724fd42ad6d6f7401fda0161ac40d13babed36e42cbafd154102dcab202f10576c4460143c634e31701381d314b2390e186b
+ VERSION=3.8.4.3
+ VERSIONX=autoconf-3080403
+
SOURCE_HASH=sha512:bfd2f8cea02497f3d3e3b4925bcf8156bacadfe4b711ae55339357fc91649a2fa59787e3a907ee49dd4ac441c1e980f3b29a5ec28d4c5d6323b92f69fb19be73
SOURCE_DIRECTORY="$BUILD_DIRECTORY/${SPELL}-${VERSIONX}"
SOURCE=${SPELL}-${VERSIONX}.tar.gz
SOURCE_URL[0]=http://www.sqlite.org/2014/$SOURCE
diff --git a/database/sqlite/HISTORY b/database/sqlite/HISTORY
index 8637c06..5b68ecb 100644
--- a/database/sqlite/HISTORY
+++ b/database/sqlite/HISTORY
@@ -1,3 +1,9 @@
+2014-04-04 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.8.4.3
+
+2014-03-29 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.8.4.2
+
2014-03-22 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 3.8.4.1

diff --git a/database/tdb/DEPENDS b/database/tdb/DEPENDS
index f506c2d..e2ab49e 100755
--- a/database/tdb/DEPENDS
+++ b/database/tdb/DEPENDS
@@ -1,5 +1,10 @@
depends python &&

+optional_depends gettext \
+ "" \
+ "--without-gettext" \
+ "for Native Language Support" &&
+
optional_depends docbook-xsl "" "" "for manual pages" &&

if is_depends_enabled $SPELL docbook-xsl; then
diff --git a/database/tdb/DETAILS b/database/tdb/DETAILS
index 93d4272..3af9143 100755
--- a/database/tdb/DETAILS
+++ b/database/tdb/DETAILS
@@ -1,9 +1,9 @@
SPELL=tdb
- VERSION=1.2.12
+ VERSION=1.2.13
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL[0]=http://samba.org/ftp/$SPELL/$SOURCE
SOURCE_URL[1]=ftp://ftp.samba.org/pub/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:7f6061cae722db79a604ed517e615bed8d06c1b69549e6c1b771611797e1b4f64ebc7af63c3b911ed055979dd6782c8fca44af829c3466911f4181e835ef9b28
+
SOURCE_HASH=sha512:a0482b2933f4c8e7e56b3c3bd3d9899aedfc0fce80250ed9c675f3769dffb8ea2ad3b4b4aad164edada49ff51f7f38ba8fb706132976ed1fb5c4c7dcbafb7b40
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
LICENSE[0]=GPL
WEB_SITE=http://tdb.samba.org/
diff --git a/database/tdb/HISTORY b/database/tdb/HISTORY
index 2ddcc3e..f8c22ea 100644
--- a/database/tdb/HISTORY
+++ b/database/tdb/HISTORY
@@ -1,3 +1,7 @@
+2014-04-08 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 1.2.13
+ * DEPENDS: added gettext optional dependency
+
2013-06-06 Remko van der Vossen <wich AT sourcemage.org>
* DETAILS: 1.2.12

diff --git a/devel/copper/DETAILS b/devel/copper/DETAILS
index 288fe70..0e8e11a 100755
--- a/devel/copper/DETAILS
+++ b/devel/copper/DETAILS
@@ -1,5 +1,6 @@
SPELL=copper
VERSION=1.6
+ PATCHLEVEL=1
SOURCE="${SPELL}-${VERSION}-src.tar.gz"
SOURCE_URL[0]=http://tibleiz.net/download/${SOURCE}

SOURCE_HASH=sha512:c26bd3b2bdd3d320956bb090585773d446db006f2ae94991ea8c059eeafd8b20b149ed0b5edde71892f756b47754e56eafd15ae5dcaeed6a824d25c7b161f94f
diff --git a/devel/copper/HISTORY b/devel/copper/HISTORY
index ddada21..0c36e8d 100644
--- a/devel/copper/HISTORY
+++ b/devel/copper/HISTORY
@@ -1,2 +1,6 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: PATCHLEVEL=1
+ * INSTALL: added elf-1.6 binary symlink
+
2012-11-29 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS, BUILD, INSTALL: spell created
diff --git a/devel/copper/INSTALL b/devel/copper/INSTALL
index 04bdeaa..1f9b449 100755
--- a/devel/copper/INSTALL
+++ b/devel/copper/INSTALL
@@ -1 +1,4 @@
-make prefix="$INSTALL_ROOT/usr" install
+make prefix="$INSTALL_ROOT/usr" install &&
+
+ln -vsf "$TRACK_ROOT/usr/bin/copper-elf" \
+ "$INSTALL_ROOT/usr/bin/copper-elf-$VERSION"
diff --git a/devel/flex/DETAILS b/devel/flex/DETAILS
index 8a07322..cff8d0a 100755
--- a/devel/flex/DETAILS
+++ b/devel/flex/DETAILS
@@ -1,7 +1,7 @@
SPELL=flex
- VERSION=2.5.37
-
SOURCE_HASH=sha512:1f34285953a7f058e6a2dddc305fc82cfcaaa451d6d7777da17bf9cccbe4a08e480c8c28951fa5d2920e7c7adc40ccd0e51191b363c9a3c4137db5ded1cbbc2a
- SOURCE=$SPELL-$VERSION.tar.bz2
+ VERSION=2.5.39
+
SOURCE_HASH=sha512:488bfd40043851d6f069333090081cc09c8754cd098dd24655ea705dd381efc4e88080fe8060fe6c790f450695f1b209f7115b154723c203f43b00f4ccfa5bec
+ SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$SOURCEFORGE_URL/flex/$SOURCE
LICENSE[0]=BSD
diff --git a/devel/flex/HISTORY b/devel/flex/HISTORY
index 59e5cab..6a12985 100644
--- a/devel/flex/HISTORY
+++ b/devel/flex/HISTORY
@@ -1,3 +1,6 @@
+2014-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 2.5.39
+
2012-08-04 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 2.5.37

diff --git a/devel/git/DETAILS b/devel/git/DETAILS
index 731673f..f7b212d 100755
--- a/devel/git/DETAILS
+++ b/devel/git/DETAILS
@@ -1,28 +1,28 @@
SPELL=git
- VERSION=1.9.0
-
SOURCE_HASH=sha512:e81f320cf13262e08a262c9fb70d701b8d8017a5d6b10c8be959c234b99486012cb7fa808a49f97db143777cd6c4368fd08a69f8ef272f9e187f82aed32d0854
+ VERSION=1.9.1
+
SOURCE_HASH=sha512:5c628e08c9760c5f323dc24a30e92944cd9b093cec05b5c5ed82b442243308436dbc71ffaf6955c271d9920c273bc240c849de7a13d8411ce7fb7932c44fa275
SECURITY_PATCH=1
- SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE=$SPELL-$VERSION.tar.xz
# SOURCE2=$SOURCE.sign
# SOURCE_GPG=kernel.gpg:$SOURCE.sign:UPSTREAM_KEY
- SOURCE_URL=http://git-core.googlecode.com/files/$SOURCE
+ SOURCE_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE
# SOURCE2_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE2
# SOURCE2_IGNORE=signature
if [[ $GIT_DOC == manpages || $GIT_DOC == both ]]; then
- SOURCE3=$SPELL-manpages-$VERSION.tar.gz
+ SOURCE3=$SPELL-manpages-$VERSION.tar.xz
# SOURCE4=$SOURCE3.sign
# SOURCE3_GPG=kernel.gpg:$SOURCE3.sign:UPSTREAM_KEY
-
SOURCE3_HASH=sha512:eae17ced4bbd866a8ce7fb5e03cfbbbae1f325074936b63ee6778719cae00935514c7db9a9e747bbb29a3d0cf8cde65717d096899ead7e2468e6609115df5594
- SOURCE3_URL=http://git-core.googlecode.com/files/$SOURCE3
+
SOURCE3_HASH=sha512:d5e8f9bef2e2a74f53548a666cba93ecc321d59bcc54036e663cabe50140ee2e88fd60e2bae2a67e04ed6e7474601c4ac12f76f832eb8f322fa33466f0dc09e9
+ SOURCE3_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE3
# SOURCE4_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE4
# SOURCE4_IGNORE=signature
fi
if [[ $GIT_DOC == htmldocs || $GIT_DOC == both ]]; then
- SOURCE5=$SPELL-htmldocs-$VERSION.tar.gz
+ SOURCE5=$SPELL-htmldocs-$VERSION.tar.xz
# SOURCE6=$SOURCE5.sign
# SOURCE5_GPG=kernel.gpg:$SOURCE5.sign:UPSTREAM_KEY
-
SOURCE5_HASH=sha512:96abd81db12054296d6a10b3f510e55a718f6501d63968056252c1988f03ba6c2cbbb389dfe1fff52e0346b884253d92f1c3e2eb7201eb9a86109c99e9289fbe
- SOURCE5_URL=http://git-core.googlecode.com/files/$SOURCE5
+
SOURCE5_HASH=sha512:ac1dd21674d217025f3ca948a8cb1894725bcaee5009277c32f317e3a491a636a731e7bb63dad35667a6c6f8a0f44d3d3f6afb5db49029a1f8623286c663d22c
+ SOURCE5_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE5
# SOURCE6_URL=$KERNEL_URL/pub/software/scm/git/$SOURCE6
# SOURCE6_IGNORE=signature
fi
diff --git a/devel/git/HISTORY b/devel/git/HISTORY
index 59df908..06e2a27 100644
--- a/devel/git/HISTORY
+++ b/devel/git/HISTORY
@@ -1,3 +1,7 @@
+2014-04-09 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.9.1
+ download from KERNEL
+
2014-02-15 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 1.9.0

diff --git a/devel/libunwind/BUILD b/devel/libunwind/BUILD
index ce7473a..129c82a 100755
--- a/devel/libunwind/BUILD
+++ b/devel/libunwind/BUILD
@@ -1,4 +1,4 @@
-if [[$LIBUNWIND_BRANCH == scm]];then
+if [[ $LIBUNWIND_BRANCH == scm ]]; then
mkdir -p config &&
libtoolize --copy &&
aclocal &&
diff --git a/devel/libunwind/DETAILS b/devel/libunwind/DETAILS
index e98c502..6d25764 100755
--- a/devel/libunwind/DETAILS
+++ b/devel/libunwind/DETAILS
@@ -1,5 +1,5 @@
SPELL=libunwind
-if [[$LIBUNWIND_BRANCH == scm]];then
+if [[ $LIBUNWIND_BRANCH == scm ]];then
if [[ "$DRM_AUTOUPDATE" == "y" ]]
then
VERSION="$(date +%Y%m%d)"
@@ -16,7 +16,8 @@ else
SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCE_URL=http://download.savannah.gnu.org/releases/libunwind/$SOURCE
fi
-
+ DOCS="doc/NOTES $DOCS"
+ DOC_DIRS=""
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
WEB_SITE=http://www.nongnu.org/libunwind/
ENTERED=20090421
diff --git a/devel/libunwind/HISTORY b/devel/libunwind/HISTORY
index 6a0aa22..501cb75 100644
--- a/devel/libunwind/HISTORY
+++ b/devel/libunwind/HISTORY
@@ -1,2 +1,5 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, BUILD: fixed syntax error
+
2009-04-21 Ethan Grammatikidis <eekee57 AT fastmail.fm>
- * DETAILS, BUILD: Crated spell.
+ * DETAILS, BUILD: Created spell.
diff --git a/devel/xmlto/DETAILS b/devel/xmlto/DETAILS
index 1c88fc3..70f40a6 100755
--- a/devel/xmlto/DETAILS
+++ b/devel/xmlto/DETAILS
@@ -1,5 +1,7 @@
SPELL=xmlto
- VERSION=0.0.25
+ VERSION=0.0.26
+
SOURCE_HASH=sha512:85110f22a7b5a5c8de4115ae5d0391645a223191b17455a4f9539b02f56f7003fd4ba70e48f0e5e46cdb91220a9027802e725f88ca8659e3ce1576f8609ccd18
+# SOURCE_GPG=xmlto.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
@@ -9,8 +11,6 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE2_HINTS[0]="no-check-certificate"
WEB_SITE=https://fedorahosted.org/xmlto/
ENTERED=20030619
-
SOURCE_HASH=sha512:53d99619f4c067dc72c0ccf32c85a4efa21d25666c4ed984c63a99ec2291c0264ea05ad79faa801feaddc599c7bcdb2fb851f0384a0989b527fb97ed4980ed48
-# SOURCE_GPG=xmlto.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE2_IGNORE=signature
LICENSE[0]=GPL
KEYWORDS="devel"
diff --git a/devel/xmlto/HISTORY b/devel/xmlto/HISTORY
index 5b7290d..e303870 100644
--- a/devel/xmlto/HISTORY
+++ b/devel/xmlto/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: 0.0.26
+
2012-02-09 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.0.25

diff --git a/disk/gummiboot/CONFLICTS b/disk/gummiboot/CONFLICTS
new file mode 100755
index 0000000..ddeb535
--- /dev/null
+++ b/disk/gummiboot/CONFLICTS
@@ -0,0 +1 @@
+conflicts gummiboot y
diff --git a/disk/gummiboot/DETAILS b/disk/gummiboot/DETAILS
index cc9cef3..bb8c2b7 100755
--- a/disk/gummiboot/DETAILS
+++ b/disk/gummiboot/DETAILS
@@ -1,5 +1,5 @@
SPELL=gummiboot
- VERSION=43
+ VERSION=44
SOURCE_IGNORE=volatile
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/disk/gummiboot/HISTORY b/disk/gummiboot/HISTORY
index 8697c46..4918aa3 100644
--- a/disk/gummiboot/HISTORY
+++ b/disk/gummiboot/HISTORY
@@ -1,3 +1,7 @@
+2014-03-31 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 44
+ * CONFLICTS: added
+
2014-02-07 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 43
SOURCE_IGNORE=volatile, file is regenerated for each download
diff --git a/doc/docx2txt/DETAILS b/doc/docx2txt/DETAILS
index 4bff984..14d3568 100755
--- a/doc/docx2txt/DETAILS
+++ b/doc/docx2txt/DETAILS
@@ -1,6 +1,6 @@
SPELL=docx2txt
- VERSION=1.2
-
SOURCE_HASH=sha512:ba5884c4d85e23aad26f74727b40e2d9d43cdf2e63f270486cbbfed5ef431f44f8f40a2583d3185fa3c16a97d9cd78e84feaf8f1f7be78ae9e1662e04a2013d6
+ VERSION=1.3
+
SOURCE_HASH=sha512:9ad74558074cd3e72b0d2e6541dc56d7b74d59d6313fb0cde1b2f02a0e1cdb05d705a650c0dde02e5b3a683f8ee6ab2fb5b865301f4213cd3e8770cd9e4d0d97
SOURCE=$SPELL-$VERSION.tgz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
diff --git a/doc/docx2txt/HISTORY b/doc/docx2txt/HISTORY
index 67435cd..4b545c1 100644
--- a/doc/docx2txt/HISTORY
+++ b/doc/docx2txt/HISTORY
@@ -1,3 +1,6 @@
+2014-04-08 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.3
+
2012-01-16 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.2
* INSTALL: fix BINDIR
diff --git a/editors/code-browser/DETAILS b/editors/code-browser/DETAILS
index fdedb78e..b15517f 100755
--- a/editors/code-browser/DETAILS
+++ b/editors/code-browser/DETAILS
@@ -2,7 +2,7 @@
if [[ $CODE_BROWSER_BRANCH == 3 ]]; then
VERSION=3.23
else
- VERSION=4.7
+ VERSION=4.9
fi
SOURCE=$SPELL-$VERSION-src.tar.gz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/editors/code-browser/HISTORY b/editors/code-browser/HISTORY
index 6431fca..084f121 100644
--- a/editors/code-browser/HISTORY
+++ b/editors/code-browser/HISTORY
@@ -1,3 +1,6 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 4.9 (4)
+
2013-07-19 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 4.7 (4)

diff --git a/editors/code-browser/code-browser-4.7-src.tar.gz.sig
b/editors/code-browser/code-browser-4.7-src.tar.gz.sig
deleted file mode 100644
index 4cb1143..0000000
Binary files a/editors/code-browser/code-browser-4.7-src.tar.gz.sig and
/dev/null differ
diff --git a/editors/code-browser/code-browser-4.9-src.tar.gz.sig
b/editors/code-browser/code-browser-4.9-src.tar.gz.sig
new file mode 100644
index 0000000..9f1b867
Binary files /dev/null and
b/editors/code-browser/code-browser-4.9-src.tar.gz.sig differ
diff --git a/gnome2-libs/at-spi2-core/DETAILS
b/gnome2-libs/at-spi2-core/DETAILS
index 8295ede..98451a9 100755
--- a/gnome2-libs/at-spi2-core/DETAILS
+++ b/gnome2-libs/at-spi2-core/DETAILS
@@ -1,6 +1,6 @@
SPELL=at-spi2-core
- VERSION=2.10.2
-
SOURCE_HASH=sha512:51b3ec2f77933622ad3aa52e2bd91cab3a7ffbc396e1ec01a52ea277e5cbc972ab0998d3a54deeaf18fc67c5767c1958d4a0ff6bdc77768ca3a51b567013d5da
+ VERSION=2.12.0
+
SOURCE_HASH=sha512:955249568e28441201d0a079e26bd703e21716b9189e372bfa20cda70e1079bbb51f62246cdeb1b914953f448e0432b749d402d723710247f2a1b8b343b37ccc
# SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
PATCHLEVEL=0
BRANCH=`echo $VERSION|cut -d . -f 1,2`
diff --git a/gnome2-libs/at-spi2-core/HISTORY
b/gnome2-libs/at-spi2-core/HISTORY
index 5335622..8ad1ce5 100644
--- a/gnome2-libs/at-spi2-core/HISTORY
+++ b/gnome2-libs/at-spi2-core/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: 2.12.0
+
2014-01-05 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: 2.10.2

diff --git a/gnu.gpg b/gnu.gpg
index 2e7360b..32dd06d 100644
Binary files a/gnu.gpg and b/gnu.gpg differ
diff --git a/graphics-libs/libjpeg-turbo/DETAILS
b/graphics-libs/libjpeg-turbo/DETAILS
index b158cc3..1277268 100755
--- a/graphics-libs/libjpeg-turbo/DETAILS
+++ b/graphics-libs/libjpeg-turbo/DETAILS
@@ -1,6 +1,6 @@
SPELL=libjpeg-turbo
- VERSION=1.3.0
-
SOURCE_HASH=sha512:4d34c3c5f2cdd70b2a3d1b55eeb4ce59cb3d4b8d22bb6d43c2ec844b7eb5685b55a9b1b46ad2bc5f2756b5f5535ccad032791c3b932af9c1efc502aa5e701053
+ VERSION=1.3.1
+
SOURCE_HASH=sha512:6b02dc617e291b357230ef3e8cfcd27f9acc8c3e9f1c869ab0a08e9e13711b87156c6cd1aaa1a6406a873fc6732f44c8a7d94a5d6688d24b14ac63a96ee52081
PATCHLEVEL=0
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/graphics-libs/libjpeg-turbo/HISTORY
b/graphics-libs/libjpeg-turbo/HISTORY
index 07f7051..cbeba6a 100644
--- a/graphics-libs/libjpeg-turbo/HISTORY
+++ b/graphics-libs/libjpeg-turbo/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 1.3.1
+
2013-05-29 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.3.0

diff --git a/graphics/fontforge/BUILD b/graphics/fontforge/BUILD
deleted file mode 100755
index feceeab..0000000
--- a/graphics/fontforge/BUILD
+++ /dev/null
@@ -1,3 +0,0 @@
-make_single &&
-default_build &&
-make_normal
diff --git a/graphics/fontforge/DETAILS b/graphics/fontforge/DETAILS
index c20368a..0af8e35 100755
--- a/graphics/fontforge/DETAILS
+++ b/graphics/fontforge/DETAILS
@@ -1,6 +1,6 @@
SPELL=fontforge
- VERSION=20100501
-
SOURCE_HASH=sha512:5e8ef9c1015178715cf163f45082bec0235fb59cf14ab9d81abda640ab6b583c9b7dc0c1b1cfe7de7208866fa53b2a30c6d8a8cf31586a9d0eae6baee660cfba
+ VERSION=20120731-b
+
SOURCE_HASH=sha512:2be710332c1186de792a1fe8abf037a2a1e92991a97fa6ca296fe14423bcdb347c1246b91eb571996b907a83f999a8a02cfaae54959b161d1ff852cf60eef19f
SOURCE=${SPELL}_full-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
diff --git a/graphics/fontforge/HISTORY b/graphics/fontforge/HISTORY
index 0f91f73..c0b6e2d 100644
--- a/graphics/fontforge/HISTORY
+++ b/graphics/fontforge/HISTORY
@@ -1,3 +1,9 @@
+204-03-26 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 20120731-b
+ * BUILD: deleted
+ * PRE_BUILD: do not apply patch
+ * fontforge_python.patch: deleted
+
2010-11-03 Ladislav Hagara <hgr AT vabo.cz>
* DEPENDS: jpeg -> JPEG

diff --git a/graphics/fontforge/PRE_BUILD b/graphics/fontforge/PRE_BUILD
index 5fa6188..ae8884c 100755
--- a/graphics/fontforge/PRE_BUILD
+++ b/graphics/fontforge/PRE_BUILD
@@ -1,6 +1,6 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&
-patch -p1 < $SPELL_DIRECTORY/fontforge_python.patch &&
+#patch -p1 < $SPELL_DIRECTORY/fontforge_python.patch &&
# fix bad config file
sed -i '/CFLAGS_NOOPT/s|sed -e s/-O2//|sed "s/-O2//;s/-O3//"|' configure
configure.dynamic &&
if [[ "$INSTALL_DOCS" == "y" ]]; then
diff --git a/graphics/fontforge/fontforge_python.patch
b/graphics/fontforge/fontforge_python.patch
deleted file mode 100644
index 6f23151..0000000
--- a/graphics/fontforge/fontforge_python.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur fontforge-20100501.orig/fontforge/ffpython.h
fontforge-20100501.new/fontforge/ffpython.h
---- fontforge-20100501.orig/fontforge/ffpython.h 2010-04-05
22:10:26.000000000 +0200
-+++ fontforge-20100501.new/fontforge/ffpython.h 2010-08-27
19:42:21.000000000 +0200
-@@ -43,7 +43,7 @@
-
- #define STRING_CHECK PyBytes_Check
- #define STRING_TO_PY PyBytes_FromString
--#define DECODE_UTF8(s, size, errors) PyBytes_Decode(s, size, "UTF-8",
errors)
-+#define DECODE_UTF8(s, size, errors) PyString_Decode(s, size, "UTF-8",
errors)
- #define PYBYTES_UTF8(str) PyString_AsEncodedObject(str, "UTF-8",
NULL)
- #define STRING_FROM_FORMAT PyBytes_FromFormat
-
diff --git a/graphics/lcms2/DETAILS b/graphics/lcms2/DETAILS
index 0b69003..3244f11 100755
--- a/graphics/lcms2/DETAILS
+++ b/graphics/lcms2/DETAILS
@@ -1,7 +1,7 @@
SPELL=lcms2
SPELLX=lcms
- VERSION=2.5
-
SOURCE_HASH=sha512:c41daee7bb366eed940283d3760e5862d8d2bb6e465d1f712123449a2013431321155c8500dba4c4393a1e49fdef0bc2f5399e1573f0295cc0dac3fe88c60853
+ VERSION=2.6
+
SOURCE_HASH=sha512:af2dd8829a5d8b280688bc247812829c885368951d385a23a1596cf8d0a7aed627c8faa35740073efc51a86ef5c900fc9bdb9dcdfad885fb8b1eae16953f9041
VX=${VERSION//a}
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VX"
diff --git a/graphics/lcms2/HISTORY b/graphics/lcms2/HISTORY
index 5115045..1c5dfc8 100644
--- a/graphics/lcms2/HISTORY
+++ b/graphics/lcms2/HISTORY
@@ -1,3 +1,6 @@
+2014-04-08 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 2.6
+
2013-07-03 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 2.5

diff --git a/graphics/leptonica/DETAILS b/graphics/leptonica/DETAILS
index 54bbdb0..b729204 100755
--- a/graphics/leptonica/DETAILS
+++ b/graphics/leptonica/DETAILS
@@ -1,10 +1,10 @@
SPELL=leptonica
- VERSION=1.69
-
SOURCE_HASH=sha512:4939408d3908729c9ef39d9e9fb001115d19260aa1282b448a2b44cb2ce3dada92c36b98611d597f054534b59bbd8a988374372223430b9b83b195716f165e42
+ VERSION=1.70
+
SOURCE_HASH=sha512:6a0769b4ff646c84582c3c81d770e72b282d941f88fa9e46548705cd4850d48a40f0af0829903cd917319c872f4679caa98bde556fa753eff65f3e9fc3679084
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
- WEB_SITE=http://code.google.com/p/$SPELL
- SOURCE_URL[0]=http://$SPELL.googlecode.com/files/$SOURCE
+ WEB_SITE=http://leptonica.org
+ SOURCE_URL[0]=$WEB_SITE/source/$SOURCE
LICENSE[0]=APACHE
ENTERED=20111102
KEYWORDS="graphics"
diff --git a/graphics/leptonica/HISTORY b/graphics/leptonica/HISTORY
index bdb0002..8f8ea35 100644
--- a/graphics/leptonica/HISTORY
+++ b/graphics/leptonica/HISTORY
@@ -1,3 +1,7 @@
+2014-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.70
+ new website & url
+
2012-10-22 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.69

diff --git a/haskell/haskell-git-annex/DETAILS
b/haskell/haskell-git-annex/DETAILS
index 5d490ee..174a214 100755
--- a/haskell/haskell-git-annex/DETAILS
+++ b/haskell/haskell-git-annex/DETAILS
@@ -1,9 +1,9 @@
SPELL=haskell-git-annex
XSPELL=git-annex
- VERSION=5.20140320
+ VERSION=5.20140405
SOURCE="${XSPELL}-${VERSION}.tar.gz"

SOURCE_URL[0]=http://hackage.haskell.org/packages/archive/${XSPELL}/${VERSION}/${SOURCE}
-
SOURCE_HASH=sha512:aa7b780012274cd3ecf7ad9214a6bb13cb029b82327f6dd1bd1772b44a182ca801f3388399bdb9470d2ef4f446491da8df92e51ab93f4fdcb2d6720f44eb911a
+
SOURCE_HASH=sha512:6723bb3a0eaca521559492606db6ba27256f16d45c6cc129991daddf442996b08b9eb9aeb9245d32c241435c66cf6581aaa0c1c4cde7dfaf196f0d2b5dd66e7a
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${XSPELL}-${VERSION}"
WEB_SITE="Homepage: http://git-annex.branchable.com/";
LICENSE[0]=License: GPL-3
diff --git a/haskell/haskell-git-annex/HISTORY
b/haskell/haskell-git-annex/HISTORY
index 7564652..ab4b2f6 100644
--- a/haskell/haskell-git-annex/HISTORY
+++ b/haskell/haskell-git-annex/HISTORY
@@ -1,3 +1,9 @@
+2014-04-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 5.20140405
+
+2014-04-03 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 5.20140402
+
2014-03-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 5.20140320

diff --git a/http/apache22/DETAILS b/http/apache22/DETAILS
index 9bb3975..20567ac 100755
--- a/http/apache22/DETAILS
+++ b/http/apache22/DETAILS
@@ -1,6 +1,6 @@
SPELL=apache22
- VERSION=2.2.26
- SECURITY_PATCH=17
+ VERSION=2.2.27
+ SECURITY_PATCH=18
SOURCE=httpd-$VERSION.tar.bz2
SOURCE2=$SOURCE.asc
SOURCE_GPG="apache.gpg:$SOURCE2:UPSTREAM_KEY"
diff --git a/http/apache22/HISTORY b/http/apache22/HISTORY
index 4a2cb0a..ec5b87c 100644
--- a/http/apache22/HISTORY
+++ b/http/apache22/HISTORY
@@ -1,3 +1,7 @@
+2014-03-28 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 2.2.27; SECURITY_PATCH++ (CVE-2013-6438,
+ CVE-2014-0098)
+
2014-02-10 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 2.2.26; added archive site for source urls

diff --git a/http/midori/DETAILS b/http/midori/DETAILS
index 8794e6d..90eb9fe 100755
--- a/http/midori/DETAILS
+++ b/http/midori/DETAILS
@@ -11,11 +11,11 @@ if [[ $MIDORI_BRANCH == scm ]]; then
FORCE_DOWNLOAD=on
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-git"
else
- VERSION=0.5.7
+ VERSION=0.5.8
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=${SPELL}_${VERSION}_all_.tar.bz2
SOURCE_URL[0]=http://www.midori-browser.org/downloads/$SOURCE
-
SOURCE_HASH=sha512:493ace56d144d8b554e1dcd9d93f3ab97167b42f12190418a59b49ae7354a60be89c2611eaee728832f8acec417fe8759f00a0a6a1b210a4896557012e79286a
+
SOURCE_HASH=sha512:3c1129324b05301502dfa4ad9147a160c7af269424451d2afba7ff2d455232274b2322699011950355cb406405bf2e38668e9cb56b748ecb87afdfd3a0e375e5
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
fi
WEB_SITE=http://twotoasts.de/index.php/midori/
diff --git a/http/midori/HISTORY b/http/midori/HISTORY
index e4ea212..309fef4 100644
--- a/http/midori/HISTORY
+++ b/http/midori/HISTORY
@@ -1,3 +1,7 @@
+2014-04-10 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 0.5.8
+ * PRE_BUILD: added
+
2014-01-16 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.5.7

diff --git a/http/midori/PRE_BUILD b/http/midori/PRE_BUILD
new file mode 100755
index 0000000..d13b7fb
--- /dev/null
+++ b/http/midori/PRE_BUILD
@@ -0,0 +1,4 @@
+mk_source_dir $SOURCE_DIRECTORY &&
+cd $SOURCE_DIRECTORY &&
+unpack_file &&
+cd $SOURCE_DIRECTORY
diff --git a/kernels/linux/HISTORY b/kernels/linux/HISTORY
index ec0c061..d95ad9e 100644
--- a/kernels/linux/HISTORY
+++ b/kernels/linux/HISTORY
@@ -1,3 +1,7 @@
+2014-04-04 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * info/patches/maintenance_patches_3/patch-3.13.9: added
+ * latest_defaults: version 3.13.9
+
2014-03-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* info/patches/maintenance_patches_3/patch-3.13.7: added
* latest_defaults: version 3.13.7
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.13.9
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.13.9
new file mode 100755
index 0000000..c4d0560
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.13.9
@@ -0,0 +1,5 @@
+appliedkernels="3.13"
+patchversion="${appliedkernels}.9"
+source="patch-${patchversion}.xz"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+sha1sum="3c388ddc74b8b77cfe017aa93413ccb33897e038"
diff --git a/kernels/linux/latest.defaults b/kernels/linux/latest.defaults
index 550f115..ab50076 100644
--- a/kernels/linux/latest.defaults
+++ b/kernels/linux/latest.defaults
@@ -2,7 +2,7 @@ LATEST_3=3.13
LATEST_2_6=2.6.39
LATEST_PRE_2_6=patch-2.6.39
LATEST_maintenance_patches=patch-2.6.39.4
-LATEST_maintenance_patches_3=patch-3.13.7
+LATEST_maintenance_patches_3=patch-3.13.9
LATEST_git_patches=patch-2.6.25-rc6-git7
LATEST_2_4=2.4.37.9
LATEST_PRE_2_4=patch-2.4.33-pre1
diff --git a/libs/cdk/DETAILS b/libs/cdk/DETAILS
index ac94b7b..a5c7d3e 100755
--- a/libs/cdk/DETAILS
+++ b/libs/cdk/DETAILS
@@ -1,6 +1,6 @@
SPELL="cdk"
- VERSION="5.0-20120323"
-
SOURCE_HASH=sha512:bd3a3f7a79eeea23a2e79aefbe689f6b89c91108f3c1cc3e205c02021fbd39139c67da45f5c8c219d85dd57058725be1a12dce37cfaf767d756f8d56761f750f
+ VERSION="5.0-20140118"
+
SOURCE_HASH=sha512:a38bff8c39ee1a25aba7b1ab864ee03f9d53f9594994ab26d6d8272b97c5896d19c4f0695db987b1fd347c2bdd5d0c17232fef72042260d1aff0c77e14caaca4
SOURCE="${SPELL}-${VERSION}.tgz"
SOURCE_URL[0]="ftp://invisible-island.net/cdk/$SOURCE";
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SOURCE%.tgz}"
diff --git a/libs/cdk/HISTORY b/libs/cdk/HISTORY
index 958acfb..436f767 100644
--- a/libs/cdk/HISTORY
+++ b/libs/cdk/HISTORY
@@ -1,3 +1,6 @@
+2014-04-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 5.0-20140118
+
2012-06-03 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 5.0-20120323
* INSTALL: make cdk5-config executable
diff --git a/libs/gettext/DETAILS b/libs/gettext/DETAILS
index d07d8b7..5136bde 100755
--- a/libs/gettext/DETAILS
+++ b/libs/gettext/DETAILS
@@ -1,5 +1,5 @@
SPELL=gettext
- VERSION=0.18.3.1
+ VERSION=0.18.3.2
PATCHLEVEL=1
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.sig
diff --git a/libs/gettext/HISTORY b/libs/gettext/HISTORY
index 763c1d3..607a683 100644
--- a/libs/gettext/HISTORY
+++ b/libs/gettext/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.18.3.2
+
2013-08-18 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.18.3.1

diff --git a/libs/gmp/DETAILS b/libs/gmp/DETAILS
index ea3af1f..8f95d93 100755
--- a/libs/gmp/DETAILS
+++ b/libs/gmp/DETAILS
@@ -1,7 +1,8 @@
SPELL=gmp
if [[ $GMP_DEVEL == "y" ]]; then
- VERSION=5.1.3
- SOURCE=$SPELL-$VERSION.tar.xz
+ VERSION=6.0.0
+ XVERSION=a
+ SOURCE=$SPELL-$VERSION$XVERSION.tar.xz
else
VERSION=4.3.2
PATCHLEVEL=0
diff --git a/libs/gmp/HISTORY b/libs/gmp/HISTORY
index 0010fa4..b3c0764 100644
--- a/libs/gmp/HISTORY
+++ b/libs/gmp/HISTORY
@@ -1,3 +1,6 @@
+2014-03-30 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 6.0.0a
+
2013-10-15 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 5.1.3 (devel)

diff --git a/libs/google-perftools/DEPENDS b/libs/google-perftools/DEPENDS
index 968d179..3d40085 100755
--- a/libs/google-perftools/DEPENDS
+++ b/libs/google-perftools/DEPENDS
@@ -3,7 +3,7 @@ if [[ ${SMGL_COMPAT_ARCHS[1]} == x86_64 ]] ; then
else
optional_depends libunwind \
"" "" \
- "Use libunwind instead of relying on the frame pointer?"
+ "to use libunwind instead of relying on the frame
pointer"
fi &&

depends -sub CXX gcc &&
diff --git a/libs/google-perftools/DETAILS b/libs/google-perftools/DETAILS
index 469c33d..a630b84 100755
--- a/libs/google-perftools/DETAILS
+++ b/libs/google-perftools/DETAILS
@@ -1,11 +1,12 @@
SPELL=google-perftools
- VERSION=1.7
- SOURCE=$SPELL-$VERSION.tar.gz
-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
- SOURCE_URL[0]=http://google-perftools.googlecode.com/files/$SOURCE
-
SOURCE_HASH=sha512:610b7c93d21266ffa62858a754d7f1dcd8a5612114f3cf1a32456d9c838f08d5bb984ccdb98e9cd5037f4a232879b96b0430dc7e372d7e47d165a990d0c13e82
+ SPELLX=gperftools
+ VERSION=2.1
+ SOURCE=$SPELLX-$VERSION.tar.gz
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELLX-$VERSION"
+ SOURCE_URL[0]=http://gperftools.googlecode.com/files/$SOURCE
+
SOURCE_HASH=sha512:b5e3387fa4865fc1dd91c60311335aec18c76519ee5016278a3b114e117ba8936772321f7a18c003e54a641a19c249e20916347e44a67ded76d7a9f04230fd03
LICENSE[0]=BSD
- WEB_SITE=http://code.google.com/p/google-perftools/
+ WEB_SITE=http://code.google.com/p/gperftools/
KEYWORDS="libs"
ENTERED=20070627
SHORT='Robust performance tools from Google'
diff --git a/libs/google-perftools/HISTORY b/libs/google-perftools/HISTORY
index a1e5468..e873018 100644
--- a/libs/google-perftools/HISTORY
+++ b/libs/google-perftools/HISTORY
@@ -1,9 +1,14 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 2.1; renewed website, source url; quoting
+ paths
+ * DEPENDS: cleaned up
+
2011-07-30 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DEPENDS: changed dependency on g++ to dependency on gcc with
sub-depends on CXX (scripted)

2011-05-11 David Kowis <dkowis AT shlrm.org>
- * DETAILS: version to 1.7
+ * DETAILS: version to 1.7

2009-04-21 Ethan Grammatikidis <eekee57 AT fastmail.fm>
* DEPENDS: requires libunwind in x86_64, optionally depends on it on
diff --git a/libs/libtcod/0001-fix-installation-destination.patch
b/libs/libtcod/0001-fix-installation-destination.patch
new file mode 100644
index 0000000..9b125a0
--- /dev/null
+++ b/libs/libtcod/0001-fix-installation-destination.patch
@@ -0,0 +1,39 @@
+From 28f7c93390c97a7af648d643fc96d344eeb0252a Mon Sep 17 00:00:00 2001
+From: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+Date: Mon, 7 Apr 2014 19:19:39 +0200
+Subject: [PATCH] fix installation destination
+
+---
+ CMakeLists.txt | 2 +-
+ src/CMakeLists.txt | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a573528..5dea975 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,7 +7,7 @@ include_directories(include)
+ find_package(OpenGL REQUIRED)
+
+ SET(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+-SET(INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR})
++SET(INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
+ SET(DEPENDENCY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies)
+ SET(GUI_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include/gui)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c882ded..14bb952 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -85,6 +85,6 @@ ENDIF()
+
+ #${LIBTCOD_CPP_NAME} is empty on non-linux platforms
+ INSTALL(TARGETS ${LIBTCOD_NAME} ${LIBTCOD_GUI_NAME} ${LIBTCOD_CPP_NAME}
+- RUNTIME DESTINATION ${INSTALL_DIR}
+- LIBRARY DESTINATION ${INSTALL_DIR}
++ RUNTIME DESTINATION ${INSTALL_DIR}/bin
++ LIBRARY DESTINATION ${INSTALL_DIR}/lib
+ )
+--
+1.9.0
+
diff --git a/libs/libtcod/BUILD b/libs/libtcod/BUILD
new file mode 100755
index 0000000..2a137fa
--- /dev/null
+++ b/libs/libtcod/BUILD
@@ -0,0 +1,2 @@
+OPTS+=" -DLIBTCOD_SAMPLES=off" &&
+cmake_build
diff --git a/libs/libtcod/DEPENDS b/libs/libtcod/DEPENDS
new file mode 100755
index 0000000..7c6f202
--- /dev/null
+++ b/libs/libtcod/DEPENDS
@@ -0,0 +1,2 @@
+depends sdl &&
+depends upx
diff --git a/libs/libtcod/DETAILS b/libs/libtcod/DETAILS
new file mode 100755
index 0000000..bbfcb10
--- /dev/null
+++ b/libs/libtcod/DETAILS
@@ -0,0 +1,16 @@
+ SPELL=libtcod
+ VERSION=1.5.1
+ VERSION_HASH="d56ffc19afb9"
+ SOURCE="libtcod-${VERSION}.tar.bz2"
+ SOURCE_URL[0]=https://bitbucket.org/jice/${SPELL}/get/${VERSION}.tar.bz2
+
SOURCE_HASH=sha512:0db7196b01838b5301f46fff42b62aa42f4835e2647a5aca1b5ae55885f43d392bb7035c5af26be3d08ac439a7d55d18edb20b1ef5e7bd8eb1e0fd1428f88c69
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/jice-${SPELL}-${VERSION_HASH}"
+ WEB_SITE="http://doryen.eptalys.net/libtcod/";
+ LICENSE[0]=BSD
+ ENTERED=20140407
+ SHORT="a free, fast, portable and uncomplicated API for roguelike
games"
+cat << EOF
+libtcod, a.k.a. “The Doryen Library”, is a free, fast, portable and
+uncomplicated API for roguelike developpers providing an advanced true color
+console, input, and lots of other utilities frequently used in roguelikes.
+EOF
diff --git a/libs/libtcod/HISTORY b/libs/libtcod/HISTORY
new file mode 100644
index 0000000..4cc134f
--- /dev/null
+++ b/libs/libtcod/HISTORY
@@ -0,0 +1,4 @@
+2014-04-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * 0001-fix-installation-destination.patch, BUILD, DEPENDS,
+ DETAILS, PRE_BUILD, INSTALL: spell created
+
diff --git a/libs/libtcod/INSTALL b/libs/libtcod/INSTALL
new file mode 100755
index 0000000..fd9a1b9
--- /dev/null
+++ b/libs/libtcod/INSTALL
@@ -0,0 +1,7 @@
+default_install &&
+
+mkdir -p ${INSTALL_ROOT}/usr/include/tcod &&
+install -m644 $SOURCE_DIRECTORY/include/*.{h,hpp}
${INSTALL_ROOT}/usr/include/tcod &&
+
+mkdir -p ${INSTALL_ROOT}/usr/share/libtcod &&
+install -m644 $SOURCE_DIRECTORY/terminal.png $INSTALL_ROOT/usr/share/libtcod/
diff --git a/libs/libtcod/PRE_BUILD b/libs/libtcod/PRE_BUILD
new file mode 100755
index 0000000..e803469
--- /dev/null
+++ b/libs/libtcod/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+
+patch -p1 < $SPELL_DIRECTORY/0001-fix-installation-destination.patch
diff --git a/libs/libusb/DEPENDS b/libs/libusb/DEPENDS
index 864c31e..901a4da 100755
--- a/libs/libusb/DEPENDS
+++ b/libs/libusb/DEPENDS
@@ -10,7 +10,7 @@ optional_depends doxygen \
"" \
"Build C++ API documentation" &&

-optional_depends udev \
+optional_depends UDEV \
"--enable-udev" \
"--disable-udev" \
"udev support"
diff --git a/libs/libusb/HISTORY b/libs/libusb/HISTORY
index 854c8fe..ea3fbc4 100644
--- a/libs/libusb/HISTORY
+++ b/libs/libusb/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on UDEV instead of udev
+
2014-02-27 Remko van der Vossen <wich AT sourcemage.org>
* DEPENDS: optional dependency on udev

diff --git a/libs/libverto/DETAILS b/libs/libverto/DETAILS
index ab6e197..4945983 100755
--- a/libs/libverto/DETAILS
+++ b/libs/libverto/DETAILS
@@ -1,6 +1,6 @@
SPELL=libverto
- VERSION=0.2.5
-
SOURCE_HASH=sha512:d57a7f86e714d3fbed391984de3356d8a2769f846985769c1be7d881647c1be95a5fc6a82bba1660ef3241aa1a40150b5e005af6f35dc32473facfdea49c556e
+ VERSION=0.2.6
+
SOURCE_HASH=sha512:aa8d047501d28741f2f8185fc4a0ef6dc4b99dbe69b583c40cd4c0afc97db4dd0a928d9ec23861fff61651e9ac82e52da9473b8e62ccc11a91e5e5c6b41dfd3b
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=https://fedorahosted.org/releases/l/i/libverto/$SOURCE
diff --git a/libs/libverto/HISTORY b/libs/libverto/HISTORY
index fcc571f..e565580 100644
--- a/libs/libverto/HISTORY
+++ b/libs/libverto/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.2.6
+
2013-04-11 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 0.2.5

diff --git a/libs/newt/DETAILS b/libs/newt/DETAILS
index 9900765..ab9bc7b 100755
--- a/libs/newt/DETAILS
+++ b/libs/newt/DETAILS
@@ -1,6 +1,6 @@
SPELL=newt
- VERSION=0.52.13
-
SOURCE_HASH=sha512:fb4066dc76f760edd1ce5bb215916f923337504b874029618193d5e526f35d638dffaf1774c5dfaa1b178579c008625bbead4088dcd58f2e5fac12311334eff9
+ VERSION=0.52.17
+
SOURCE_HASH=sha512:ff96180e4501af88609a647b7737e2309e04cf8c7f1e93bf338c1d133ca49fdd20acfc872f8a91d8546a4f1c7a7d2e540bf3d245ff85eaf85a0414cbc7702b41
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-${VERSION}
SOURCE_URL[0]=https://fedorahosted.org/releases/n/e/${SPELL}/${SOURCE}
diff --git a/libs/newt/HISTORY b/libs/newt/HISTORY
index 415d1e4..4fe457a 100644
--- a/libs/newt/HISTORY
+++ b/libs/newt/HISTORY
@@ -1,3 +1,6 @@
+2014-04-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.52.17
+
2011-08-05 Julien "_kaze_" ROZO <julien AT rozo.org>
* DETAILS: updated version to 0.52.13

diff --git a/libs/pcre/DETAILS b/libs/pcre/DETAILS
index 3f26497..20b13a0 100755
--- a/libs/pcre/DETAILS
+++ b/libs/pcre/DETAILS
@@ -1,5 +1,5 @@
SPELL=pcre
- VERSION=8.34
+ VERSION=8.35
PATCHLEVEL=1
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE2=$SOURCE.sig
diff --git a/libs/pcre/HISTORY b/libs/pcre/HISTORY
index bdb43b8..5b4e00e 100644
--- a/libs/pcre/HISTORY
+++ b/libs/pcre/HISTORY
@@ -1,3 +1,6 @@
+2014-04-04 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 8.35
+
2013-12-16 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 8.34

diff --git a/libs/raptor/DETAILS b/libs/raptor/DETAILS
index 27b0bcf..743fefd 100755
--- a/libs/raptor/DETAILS
+++ b/libs/raptor/DETAILS
@@ -1,6 +1,6 @@
SPELL=raptor
SPELLX=raptor2
- VERSION=2.0.12
+ VERSION=2.0.13
SECURITY_PATCH=1
SOURCE=$SPELLX-$VERSION.tar.gz
SOURCE2=$SOURCE.asc
diff --git a/libs/raptor/HISTORY b/libs/raptor/HISTORY
index 9062cb0..46b5e69 100644
--- a/libs/raptor/HISTORY
+++ b/libs/raptor/HISTORY
@@ -1,3 +1,6 @@
+2014-03-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.0.13
+
2013-12-28 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 2.0.12

diff --git a/mail/bogofilter/CONFIGURE b/mail/bogofilter/CONFIGURE
index 58a8d32..94be5bc 100755
--- a/mail/bogofilter/CONFIGURE
+++ b/mail/bogofilter/CONFIGURE
@@ -1,2 +1,2 @@
config_query_list BOGOFILTER_DB "Which database do you wish to use." \
- "db" "sqlite" "tokyocabinet" "qdbm"
+ "db" "sqlite" "tokyocabinet"
diff --git a/mail/bogofilter/DETAILS b/mail/bogofilter/DETAILS
index 77ec24d..8f7a420 100755
--- a/mail/bogofilter/DETAILS
+++ b/mail/bogofilter/DETAILS
@@ -1,6 +1,6 @@
SPELL=bogofilter
- VERSION=1.2.3
-
SOURCE_HASH=sha512:4b3bb4b1e0f12a88a5ec5421c88001ddeb242c39c55733000dfd38691dc4f5c34a5254de60399b20c63c9ee9e1e13ef73582e215fbabc3738871394b26924ca0
+ VERSION=1.2.4
+
SOURCE_HASH=sha512:e8c0b6bcc14f12fbbb2752e697a6d9065e17abfca3f70045ce9fe668d01c1cfad4adaa35c81546ecdd3639b0c28f3f4776bb5ed4699f21e9e2a5b19ca33479db
SECURITY_PATCH=1
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/mail/bogofilter/HISTORY b/mail/bogofilter/HISTORY
index cc230d4..5a0b416 100644
--- a/mail/bogofilter/HISTORY
+++ b/mail/bogofilter/HISTORY
@@ -1,3 +1,7 @@
+2014-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.2.4
+ * CONFIGURE: upstream removed qdbm support
+
2012-12-13 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.2.3
SECURITY_PATCH=1 fixes CVE-2012-5468
diff --git a/mail/postfix/DETAILS b/mail/postfix/DETAILS
index 2895678..5e33523 100755
--- a/mail/postfix/DETAILS
+++ b/mail/postfix/DETAILS
@@ -4,7 +4,7 @@ if [[ "${POSTFIX_EXP}" == "y" ]]; then
VERSION=2.9-20110615
PFIX_BRANCH=experimental
else
- VERSION=2.9.8
+ VERSION=2.9.9
PFIX_BRANCH=official
SECURITY_PATCH=1
fi
diff --git a/mail/postfix/HISTORY b/mail/postfix/HISTORY
index 2e811a3..3806fdb 100644
--- a/mail/postfix/HISTORY
+++ b/mail/postfix/HISTORY
@@ -1,3 +1,6 @@
+2014-04-06 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 2.9.9
+
2013-09-07 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 2.9.8

diff --git a/mail/sylpheed/DETAILS b/mail/sylpheed/DETAILS
index 5741510..3b5b96f 100755
--- a/mail/sylpheed/DETAILS
+++ b/mail/sylpheed/DETAILS
@@ -3,7 +3,7 @@ if [[ $SYLPHEED_GTK2 == n ]]; then
VERSION=1.0.6

SOURCE_HASH=sha512:2b94979b671ef63b62040ed6b394368536a4817de910407cdfcdadc891e77a6752a6b547c0c1fdaa5360bd4c3b6c0a497f3d75bb17476a0ee37f7c4b5f18136e
else
- VERSION=3.3.1
+ VERSION=3.4.1
SECURITY_PATCH=1
if [[ $SYLPHEED_IT == y ]]; then
SOURCE3=Sylpheed3.0_icon-set.tar.gz
diff --git a/mail/sylpheed/HISTORY b/mail/sylpheed/HISTORY
index 0048c09..674188d 100644
--- a/mail/sylpheed/HISTORY
+++ b/mail/sylpheed/HISTORY
@@ -1,3 +1,9 @@
+2014-04-05 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.4.1
+
+2014-04-04 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.4.0
+
2014-03-09 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 3.3.1

diff --git a/net/bmon/DEPENDS b/net/bmon/DEPENDS
index fa2ad51..77da999 100755
--- a/net/bmon/DEPENDS
+++ b/net/bmon/DEPENDS
@@ -1,3 +1,4 @@
-depends ncurses &&
-optional_depends libdbi "" "" "for database support" &&
-optional_depends rrdtool "" "" "for rrd support"
+depends ncurses &&
+depends confuse &&
+depends libnl &&
+depends autoconf
diff --git a/net/bmon/DETAILS b/net/bmon/DETAILS
index 1079e00..40c5375 100755
--- a/net/bmon/DETAILS
+++ b/net/bmon/DETAILS
@@ -1,10 +1,10 @@
SPELL=bmon
- VERSION=2.1.0
+ VERSION=3.2
SOURCE=${SPELL}-${VERSION}.tar.gz
- SOURCE_URL[0]=http://people.suug.ch/~tgr/bmon/files/${SOURCE}
-
SOURCE_HASH=sha512:83b14a9701d987fc511e3c42cca972a2f6a35342616b62bf297696510395d8ad2b420a629a16e5f9aef60254a90802af0077c13cad58613f44027ec1a87d25cd
+ SOURCE_URL[0]=https://github.com/tgraf/bmon/archive/v$VERSION.tar.gz
+
SOURCE_HASH=sha512:a5017a8924f8ac5eaf9f671a8494302081050aab14f629f863eecccd01ea1f4a223b3f8ce4deb4304d5904dd99acca92e973ba503167d3805641d88ddbb938ce
SOURCE_DIRECTORY=$BUILD_DIRECTORY/${SPELL}-${VERSION}
- WEB_SITE=http://people.suug.ch/~tgr/bmon/
+ WEB_SITE=http://www.infradead.org/~tgr/bmon/
ENTERED=20060701
LICENSE[0]=GPL
SHORT="a network data rate estimator"
diff --git a/net/bmon/HISTORY b/net/bmon/HISTORY
index 9d0f389..fb24aaf 100644
--- a/net/bmon/HISTORY
+++ b/net/bmon/HISTORY
@@ -1,3 +1,10 @@
+2014-04-04 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 3.2
+ * DEPENDS: remove optional dependencies, add dependencies on libnl
+ and confuse
+ * bmon-2.1.0-gcc4.diff: removed
+ * PRE_BUILD: run autogen.sh
+
2006-10-03 Juuso Alasuutari <iuso AT sourcemage.org>
* DETAILS: [automated] Removed UPDATED.

diff --git a/net/bmon/PRE_BUILD b/net/bmon/PRE_BUILD
index 6c870ee..b163def 100755
--- a/net/bmon/PRE_BUILD
+++ b/net/bmon/PRE_BUILD
@@ -1,3 +1,3 @@
default_pre_build &&
cd ${SOURCE_DIRECTORY} &&
-patch -p1 < ${SCRIPT_DIRECTORY}/bmon-2.1.0-gcc4.diff
+./autogen.sh
diff --git a/net/bmon/bmon-2.1.0-gcc4.diff b/net/bmon/bmon-2.1.0-gcc4.diff
deleted file mode 100644
index 433edf5..0000000
--- a/net/bmon/bmon-2.1.0-gcc4.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- bmon-2.1.0.orig/src/out_xml_event.c 2005-04-05 12:01:33.000000000
-0300
-+++ bmon-2.1.0/src/out_xml_event.c 2005-09-09 17:56:07.000000000 -0300
-@@ -127,7 +127,7 @@
- .om_draw = xml_event_draw,
- .om_set_opts = xml_event_set_opts,
- .om_probe = xml_event_probe,
-- .om_shutdown xml_event_shutdown,
-+ .om_shutdown = xml_event_shutdown
- };
-
- static void __init xml_event_init(void)
---- bmon-2.1.0.orig/src/out_audio.c 2005-04-05 12:01:33.000000000 -0300
-+++ bmon-2.1.0/src/out_audio.c 2005-09-09 17:58:20.000000000 -0300
-@@ -141,7 +141,7 @@
- .om_draw = audio_draw,
- .om_set_opts = audio_set_opts,
- .om_probe = audio_probe,
-- .om_shutdown audio_shutdown,
-+ .om_shutdown = audio_shutdown
- };
-
- static void __init audio_init(void)
diff --git a/net/dhcpcd/DETAILS b/net/dhcpcd/DETAILS
index cafefc1..e8f3b35 100755
--- a/net/dhcpcd/DETAILS
+++ b/net/dhcpcd/DETAILS
@@ -1,6 +1,6 @@
SPELL=dhcpcd
- VERSION=6.2.1
-
SOURCE_HASH=sha512:0b3db1011e4e427d5c781dafb20e5541da486126e27cc1f018b825c8e2c21bf911f714f0663b6ee813888a558a006b4bddbbdfd7a91a73b17b0d09c53243541d
+ VERSION=6.3.2
+
SOURCE_HASH=sha512:fa5d3287e658064df39c426eaa960567d916dd8241be6b69315f5fa39bdf51c97fbd306222b3e062fa83ec54acd63481bac4c3f52a2f2e5e2a077c76e0bb4326
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://roy.marples.name/downloads/$SPELL/$SOURCE
diff --git a/net/dhcpcd/HISTORY b/net/dhcpcd/HISTORY
index 54159da..7745b5f 100644
--- a/net/dhcpcd/HISTORY
+++ b/net/dhcpcd/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 6.3.2
+
2014-01-20 Treeve Jelbert <treeve AT sourcemage.org>
* CONFIGURE, BUILD: allow building IpV4/6 support

diff --git a/net/monit/DETAILS b/net/monit/DETAILS
index 57e7734..4f9ce8a 100755
--- a/net/monit/DETAILS
+++ b/net/monit/DETAILS
@@ -1,8 +1,8 @@
SPELL=monit
- VERSION=5.7
+ VERSION=5.8
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]="http://mmonit.com/${SPELL}/dist/${SOURCE}";
-
SOURCE_HASH=sha512:e76ee9d32b661f603fd24071f00d1ac26e64eed61a2246dcf4b1c6dc6654ab1304b1e6e4d18a100ad3802a1bb1adb2f4d8105e952ef1ae1049d5e6b0b0965368
+
SOURCE_HASH=sha512:61f2cb4a6b2da8617adfd16ace4d9b246957385109fee9a3312272ac271003cd89a12872ac3a07b0148ad7bdbe544e447745033d2a9fab19908ef19b7a106dda
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="http://mmonit.com/monit/";
LICENSE[0]=GPL
diff --git a/net/monit/HISTORY b/net/monit/HISTORY
index ecee846..086fa8c 100644
--- a/net/monit/HISTORY
+++ b/net/monit/HISTORY
@@ -1,3 +1,6 @@
+2014-03-28 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 5.8
+
2014-02-26 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 5.7

diff --git a/net/samba/BUILD b/net/samba/BUILD
index 667bf34..e00bc74 100755
--- a/net/samba/BUILD
+++ b/net/samba/BUILD
@@ -3,10 +3,11 @@ OPTS="--with-swatdir=/usr/share/swat \
--with-automount \
--with-winbind \
--with-libsmbclient \
+ PKG_CONFIG="$INSTALL_ROOT/usr/bin/pkg-config" \
$SAMBA_QUOTA \
$OPTS" &&

-cd $SOURCE_DIRECTORY/source3 &&
+cd $SOURCE_DIRECTORY/source3 &&
default_build &&

if [[ "$SAMBA_VSCAN" == "y" ]] ; then
diff --git a/net/samba/DEPENDS b/net/samba/DEPENDS
index 48e457e..95378a3 100755
--- a/net/samba/DEPENDS
+++ b/net/samba/DEPENDS
@@ -1,5 +1,6 @@
depends e2fsprogs &&
depends popt "--without-included-popt" &&
+depends pkgconfig &&

if [[ "$SAMBA_AD" == "y" ]]; then
depends openldap "--with-ldap" &&
diff --git a/net/samba/DETAILS b/net/samba/DETAILS
index ab142f0..c6544ea 100755
--- a/net/samba/DETAILS
+++ b/net/samba/DETAILS
@@ -1,12 +1,12 @@
SPELL=samba
- VERSION=3.6.22
- SECURITY_PATCH=21
+ VERSION=3.6.23
+ SECURITY_PATCH=22
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://download.samba.org/samba/ftp/$SOURCE
SOURCE_URL[1]=ftp://de3.samba.org/pub/$SPELL/$SOURCE
SOURCE_URL[2]=http://us1.samba.org/samba/ftp/old-versions/$SOURCE
-
SOURCE_HASH=sha512:13b7d4c7ee24434626cf7e835e302252a281f00dfff1b83fd3c28f8264c1ce7afa0aa6ad237c28015fd2a39a38954189a140b36c27d8b0434a48b46d56936981
+
SOURCE_HASH=sha512:54189079a4f65f1e9c818f9edc9d862c4261c3a4925146f3ab19603052d2c08d32b59ddc243422683338dc4f1192b22f02acaa719e11aa44146c5d3bb11fdcb0
if [[ "$SAMBA_VSCAN" == "y" ]] ; then
VSCAN_VERSION=0.3.6c-beta4
SOURCE2=$SPELL-vscan-$VSCAN_VERSION.tar.gz
diff --git a/net/samba/HISTORY b/net/samba/HISTORY
index 2db1eaa..9c3c15d 100644
--- a/net/samba/HISTORY
+++ b/net/samba/HISTORY
@@ -1,3 +1,8 @@
+2014-04-08 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.6.23; SECURITY_PATCH++ (CVE-2013-4496)
+ * DEPENDS: depends pkgconfig
+ * BUILD: pass pkg-config script's path to properly locate tdb and
talloc
+
2013-12-12 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 3.6.22, SECURITY_PATCH=21, CVE-2013-4408 and CVE-2012-6150

diff --git a/perl-cpan/perl-error/DETAILS b/perl-cpan/perl-error/DETAILS
index 961df68..9cc9a8d 100755
--- a/perl-cpan/perl-error/DETAILS
+++ b/perl-cpan/perl-error/DETAILS
@@ -1,8 +1,8 @@
SPELL=perl-error
- VERSION=0.17020
-#
SOURCE_HASH=sha512:3336230dd3c65a657e44e9c2bb57638b3d66ad2de6192ea5a1e6ccb9585caebe59988c7802b234f1663b2bd51ec5c1cebb84dd9c859488184b3c992b5b714d4c
+ VERSION=0.17022
+
SOURCE_HASH=sha512:ebfddf176044cb3edb656fb555ebf77ac8d08860505bcf0bc3778e1c927ab9e34c6c9400713e96d3cbc94fdac554752949826c6bd32e28352fd4d2157a6a1e99
+# SOURCE_GPG="gurus.gpg:${SOURCE}.sig:WORKS_FOR_ME"
SOURCE=Error-$VERSION.tar.gz
- SOURCE_GPG="gurus.gpg:${SOURCE}.sig:WORKS_FOR_ME"
SOURCE_URL[0]=$PERL_CPAN_URL/authors/id/S/SH/SHLOMIF/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/Error-$VERSION"
WEB_SITE=http://search.cpan.org/~shlomif/Error/
diff --git a/perl-cpan/perl-error/Error-0.17020.tar.gz.sig
b/perl-cpan/perl-error/Error-0.17020.tar.gz.sig
deleted file mode 100644
index 4cfeb15..0000000
Binary files a/perl-cpan/perl-error/Error-0.17020.tar.gz.sig and /dev/null
differ
diff --git a/perl-cpan/perl-error/HISTORY b/perl-cpan/perl-error/HISTORY
index ab2c4d6..53a0ad7 100644
--- a/perl-cpan/perl-error/HISTORY
+++ b/perl-cpan/perl-error/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.17022
+
2013-06-04 Eric Sandall <sandalle AT sourcemage.org>
* DETAILS: Updated to 0.17020

diff --git a/printer/cups-filters/DETAILS b/printer/cups-filters/DETAILS
index 134052c..145265e 100755
--- a/printer/cups-filters/DETAILS
+++ b/printer/cups-filters/DETAILS
@@ -1,6 +1,6 @@
SPELL=cups-filters
- VERSION=1.0.48
-
SOURCE_HASH=sha512:63b8059f7b51ca87edbbdc0d33306532dab35e706564d7ff41bbdd7585bf18ccaecffc6fa3b66454fbff2b32eda384f2e176fceeb55d4c2b5f6d571a63cfb243
+ VERSION=1.0.52
+
SOURCE_HASH=sha512:3f561d7aca54adbc90701edb5412e254236f2a6d2ef13270541223ee131004004a6a102ccd2abbf6746ed6b501e39e57a3b6bad3201e9aee7a580d0c80a2832a
# SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/printer/cups-filters/HISTORY b/printer/cups-filters/HISTORY
index 132e01e..535c527 100644
--- a/printer/cups-filters/HISTORY
+++ b/printer/cups-filters/HISTORY
@@ -1,3 +1,9 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.0.52
+
+2014-03-30 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.0.50
+
2014-03-13 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.0.48

diff --git a/python-pypi/alembic/DETAILS b/python-pypi/alembic/DETAILS
index ace7a75..c3e4889 100755
--- a/python-pypi/alembic/DETAILS
+++ b/python-pypi/alembic/DETAILS
@@ -1,6 +1,6 @@
SPELL=alembic
- VERSION=0.6.3
-
SOURCE_HASH=sha512:683784dd10c76f91f0cc54224b85afcd2ced17fee0d161cf82d8c6644441b907bda32497b84ffb09e90b602f68da20bdf853d40f14100894c124abc16f50562e
+ VERSION=0.6.4
+
SOURCE_HASH=sha512:8bcc294329b58f672582384e98bd015933efcaa4345f28e67b34bd623cce7a7cd532837ddfe71e286c73c98d70f161cb722b5dd285a4a381c2a912329c196324
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL[0]=http://pypi.python.org/packages/source/a/$SPELL/$SOURCE
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/python-pypi/alembic/HISTORY b/python-pypi/alembic/HISTORY
index f2de1a4..9e68589 100644
--- a/python-pypi/alembic/HISTORY
+++ b/python-pypi/alembic/HISTORY
@@ -1,3 +1,6 @@
+2014-03-29 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.6.4
+
2014-02-03 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 0.6.3

diff --git a/python-pypi/bsddb3/DETAILS b/python-pypi/bsddb3/DETAILS
index 57ee95b..401292d 100755
--- a/python-pypi/bsddb3/DETAILS
+++ b/python-pypi/bsddb3/DETAILS
@@ -1,5 +1,5 @@
SPELL=bsddb3
- VERSION=6.0.0
+ VERSION=6.0.1
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.asc
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
@@ -8,7 +8,7 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_GPG=jcea.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE2_IGNORE=signature
WEB_SITE=http://www.jcea.es/programacion/pybsddb.htm
- LICENSE[0]=MIT
+ LICENSE[0]=BSD
ENTERED=20061025
KEYWORDS="python db"
SHORT="Python wrapper for BerkeleyDB"
diff --git a/python-pypi/bsddb3/HISTORY b/python-pypi/bsddb3/HISTORY
index 7c392ff..5376a07 100644
--- a/python-pypi/bsddb3/HISTORY
+++ b/python-pypi/bsddb3/HISTORY
@@ -1,3 +1,7 @@
+2014-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 6.0.1
+ LICENSE[0]=BSD
+
2013-06-21 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 6.0.0

diff --git a/python-pypi/formencode/DEPENDS b/python-pypi/formencode/DEPENDS
index 503782e..48d8ddc 100755
--- a/python-pypi/formencode/DEPENDS
+++ b/python-pypi/formencode/DEPENDS
@@ -1,2 +1 @@
-depends python &&
-depends SETUPTOOLS
+. $SECTION_DIRECTORY/PY_DEPENDS
diff --git a/python-pypi/formencode/DETAILS b/python-pypi/formencode/DETAILS
index 286481e..96f98d3 100755
--- a/python-pypi/formencode/DETAILS
+++ b/python-pypi/formencode/DETAILS
@@ -1,7 +1,7 @@
SPELL=formencode
- VERSION=1.2.6
-
SOURCE_HASH=sha512:107f43fc86882dc0e3898a805b93e8d0139815390d06d5f5798e6fe7d6278bc423c8232f5a5c0752cbb92a1e8a33bd9f6818b7f462bec0fcc4e0b81254191285
- SOURCE=FormEncode-$VERSION.zip
+ VERSION=1.3.0a1
+
SOURCE_HASH=sha512:c6651b4e18645e5628edc1ebb694efccad4f2d0023842118847c28cc1b169e8c42974cef501b565eee6cc71fe382e877a2bbd83b6b99d4bca711d4432e396b72
+ SOURCE=FormEncode-$VERSION.tar.gz
SOURCE_URL[0]=http://pypi.python.org/packages/source/F/FormEncode/$SOURCE
SOURCE_DIRECTORY=$BUILD_DIRECTORY/FormEncode-$VERSION
WEB_SITE=http://formencode.org/
diff --git a/python-pypi/formencode/HISTORY b/python-pypi/formencode/HISTORY
index a5626d9..d7f9b0d 100644
--- a/python-pypi/formencode/HISTORY
+++ b/python-pypi/formencode/HISTORY
@@ -1,3 +1,7 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.3.0a1
+ * DEPENDS: python => PYTHON
+
2013-05-04 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 1.2.6

diff --git a/python-pypi/lxml/DETAILS b/python-pypi/lxml/DETAILS
index 24c3f40..533e490 100755
--- a/python-pypi/lxml/DETAILS
+++ b/python-pypi/lxml/DETAILS
@@ -1,5 +1,5 @@
SPELL=lxml
- VERSION=3.3.2
+ VERSION=3.3.3
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.asc
SOURCE_URL[0]=http://pypi.python.org/packages/source/l/$SPELL/$SOURCE
diff --git a/python-pypi/lxml/HISTORY b/python-pypi/lxml/HISTORY
index ccb4f70..c7f3849 100644
--- a/python-pypi/lxml/HISTORY
+++ b/python-pypi/lxml/HISTORY
@@ -1,3 +1,6 @@
+2014-03-29 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.3.3
+
2014-03-02 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 3.3.2

diff --git a/python-pypi/mercurial/DETAILS b/python-pypi/mercurial/DETAILS
index 4e2c26b..780dcbd 100755
--- a/python-pypi/mercurial/DETAILS
+++ b/python-pypi/mercurial/DETAILS
@@ -1,6 +1,6 @@
SPELL=mercurial
- VERSION=2.9.1
-
SOURCE_HASH=sha512:a1734ff7228f02454fc3ae4a0ed95d11b44ac344702c55e5357b4d64c4e81a84fadfcecdc8f67bb1aa8ef1a5708181670626ac7a64dcc74f47b7842525091168
+ VERSION=2.9.2
+
SOURCE_HASH=sha512:60148bb953069228c1ccb043fdf6abb6f96b127bb0be8c2de6b32ca356140b7c3426f1c2ee09882e714672f6f1ba2dba4ee0622928896e9d4b79383ed50c347a
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL[0]=http://mercurial.selenic.com/release/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/python-pypi/mercurial/HISTORY b/python-pypi/mercurial/HISTORY
index a3262e8..719287b 100644
--- a/python-pypi/mercurial/HISTORY
+++ b/python-pypi/mercurial/HISTORY
@@ -1,3 +1,6 @@
+2014-04-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: updated to 2.9.2
+
2014-03-03 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: updated to 2.9.1

diff --git a/python-pypi/pillow/DETAILS b/python-pypi/pillow/DETAILS
index caafa00..8d3814c 100755
--- a/python-pypi/pillow/DETAILS
+++ b/python-pypi/pillow/DETAILS
@@ -1,8 +1,8 @@
SPELL=pillow
- VERSION=2.1.0
+ VERSION=2.4.0
SOURCE="Pillow-${VERSION}.zip"
SOURCE_URL[0]=https://pypi.python.org/packages/source/P/Pillow/${SOURCE}
-
SOURCE_HASH=sha512:a81321ac7a5cc94c861e93ef0975a439044a1cbbb02a41815796dc73849fc233e11f38ca2b53e286ab46ab0d7c3ab2fc06140762df85e09fd64d0f1938e5ec4d
+
SOURCE_HASH=sha512:8eaf087dd30f02792398d8b219a829289776c26cf014fbce6658f355e07548abec67c4e1f1203d58b938a86bdce17ceb3764b2024e095f894fc06caf05c99789
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/Pillow-${VERSION}"
WEB_SITE="http://python-imaging.github.io/";
LICENSE[0]=PIL
diff --git a/python-pypi/pillow/HISTORY b/python-pypi/pillow/HISTORY
index 6f9c23f..ed15b97 100644
--- a/python-pypi/pillow/HISTORY
+++ b/python-pypi/pillow/HISTORY
@@ -1,3 +1,6 @@
+2014-04-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.4.0
+
2013-08-14 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DEPENDS, font.diff, PRE_BUILD, PRE_SUB_DEPENDS, PROVIDES,
SUB_DEPENDS: spell created
diff --git a/python-pypi/pip/DEPENDS b/python-pypi/pip/DEPENDS
new file mode 100755
index 0000000..e440941
--- /dev/null
+++ b/python-pypi/pip/DEPENDS
@@ -0,0 +1,2 @@
+depends PYTHON &&
+depends SETUPTOOLS
diff --git a/python-pypi/pip/DETAILS b/python-pypi/pip/DETAILS
new file mode 100755
index 0000000..586624e
--- /dev/null
+++ b/python-pypi/pip/DETAILS
@@ -0,0 +1,16 @@
+ SPELL=pip
+ VERSION=1.5.4
+
SOURCE_HASH=sha512:5ab83cc64f1bdd5f9a8bbe18653f68dd50c48a627fe120e3d58e26df7958ff4d48baa2334e067ef5d315008ffc08c6042f6d0f1d45a2f25788263c796de2818c
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE_URL=http://pypi.python.org/packages/source/p/$SPELL/$SOURCE
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE=https://github.com/pypa/pip
+ LICENSE[0]=MIT
+ ENTERED=20140409
+ KEYWORDS="python"
+ SHORT="Python easy_install replacement"
+cat << EOF
+pip is a replacement for easy_install. It uses mostly the same techniques for
+finding packages, so packages that were made easy_installable should be
+pip-installable as well.
+EOF
diff --git a/python-pypi/pip/HISTORY b/python-pypi/pip/HISTORY
new file mode 100644
index 0000000..7ad7e90
--- /dev/null
+++ b/python-pypi/pip/HISTORY
@@ -0,0 +1,2 @@
+2014-04-09 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: spell created
diff --git a/python-pypi/pyicu/DETAILS b/python-pypi/pyicu/DETAILS
index 70b17ce..7f7d06e 100755
--- a/python-pypi/pyicu/DETAILS
+++ b/python-pypi/pyicu/DETAILS
@@ -1,7 +1,7 @@
SPELL=pyicu
SPELLX=PyICU
- VERSION=1.5
-
SOURCE_HASH=sha512:c196d65a5d112c2a720a10082fe461195858b87b03d5273facc13bb711a1c42264eec7899af52d71d783f35ad19e735fc74ffe994a1369ebf5550b58115c5e6e
+ VERSION=1.6
+
SOURCE_HASH=sha512:ccea152b3b9ac71467edf7c1706e3beb150da82713cb7fd6d26a288eda1b398786ea83c7bd184c3e063e742e52aa9e3aa0f8ddebff18bb5b7408790b776a9142
SOURCE=$SPELLX-$VERSION.tar.gz
SOURCE_URL[0]=http://pypi.python.org/packages/source/P/$SPELLX/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELLX-$VERSION"
diff --git a/python-pypi/pyicu/HISTORY b/python-pypi/pyicu/HISTORY
index ff18e5d..7e9bc49 100644
--- a/python-pypi/pyicu/HISTORY
+++ b/python-pypi/pyicu/HISTORY
@@ -1,3 +1,6 @@
+2014-04-04 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 1.6
+
2013-04-16 Treeve Jelbert <treeve AT sourcemage.org>
* DEPENDS: fix python usage

diff --git a/python-pypi/setuptools/DETAILS b/python-pypi/setuptools/DETAILS
index a9807f7..2c11b35 100755
--- a/python-pypi/setuptools/DETAILS
+++ b/python-pypi/setuptools/DETAILS
@@ -1,6 +1,6 @@
SPELL=setuptools
- VERSION=3.3
-
SOURCE_HASH=sha512:586b219c0f760a1aadb1348086559ede0726a348aff95d5130ed89809c217b186b40e22c02d7af3896442a76845e4c4b950881f41d2f2fa13d0f71726eb8e9c5
+ VERSION=3.4.1
+
SOURCE_HASH=sha512:76ea425ab2d3925438475e19bfd0e762fb98c6ad62b1ef0367c5d4c66ad8d8c813266b000bfd4315934a7b0bbbd51d6b7a37ce721a325a3e4b188d76e917ea2c
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL[0]=http://pypi.python.org/packages/source/s/$SPELL/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/python-pypi/setuptools/HISTORY b/python-pypi/setuptools/HISTORY
index ca1b43b..bbb8c49 100644
--- a/python-pypi/setuptools/HISTORY
+++ b/python-pypi/setuptools/HISTORY
@@ -1,3 +1,6 @@
+2014-04-04 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.4.1
+
2014-03-17 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 3.3

diff --git a/python-pypi/sqlalchemy/DETAILS b/python-pypi/sqlalchemy/DETAILS
index 121e65f..fef1266 100755
--- a/python-pypi/sqlalchemy/DETAILS
+++ b/python-pypi/sqlalchemy/DETAILS
@@ -1,7 +1,7 @@
SPELL=sqlalchemy
CHEESESHOP_PKG=SQLAlchemy
- VERSION=0.9.3
-
SOURCE_HASH=sha512:6c8158cbdc1ca75e5c24cbbb5385dc00d1c2c4664d40a79929b8b161b6b46cfaa850df69daa81452a671032076e8ab0e5d079cca5ab97b598578cddf07b11c2e
+ VERSION=0.9.4
+
SOURCE_HASH=sha512:0a497de001c2f26663c16798c2be41b040f79b1463e3fb1a51205a14976bc92795abc6a0fbf4d42790a8041760103c58cb03ce0ea1d5973f84d092c0b86cc1e7
SOURCE="$CHEESESHOP_PKG-$VERSION.tar.gz"

SOURCE_URL[0]=http://pypi.python.org/packages/source/S/$CHEESESHOP_PKG/$SOURCE
SOURCE_URL[1]=$SOURCEFORGE_URL/$SPELL/$SOURCE
diff --git a/python-pypi/sqlalchemy/HISTORY b/python-pypi/sqlalchemy/HISTORY
index d9821cf..a31526c 100644
--- a/python-pypi/sqlalchemy/HISTORY
+++ b/python-pypi/sqlalchemy/HISTORY
@@ -1,3 +1,6 @@
+2014-03-29 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.9.4
+
2014-02-20 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 0.9.3

diff --git a/python-pypi/virtualenv/DEPENDS b/python-pypi/virtualenv/DEPENDS
index 503782e..e440941 100755
--- a/python-pypi/virtualenv/DEPENDS
+++ b/python-pypi/virtualenv/DEPENDS
@@ -1,2 +1,2 @@
-depends python &&
+depends PYTHON &&
depends SETUPTOOLS
diff --git a/python-pypi/virtualenv/DETAILS b/python-pypi/virtualenv/DETAILS
index ca848a2..77599d8 100755
--- a/python-pypi/virtualenv/DETAILS
+++ b/python-pypi/virtualenv/DETAILS
@@ -1,6 +1,6 @@
SPELL=virtualenv
- VERSION=1.8.4
-
SOURCE_HASH=sha512:2c485bc2ade615a1d397174be85f607605f1c97267ce38ec5a7b208a3d5f17b9abc456dc32154f2a5d21ebe1f7d82032b28deb66dd230bad2e69d9c72761e975
+ VERSION=1.11.4
+
SOURCE_HASH=sha512:92747102f90dcb1bc7143c04bcad2e881e988c85c1f052ffb71fd3dc00f05bfcda16280dff793f385fc692b60e50b4eb9543c7e59e47a4cf36709b0e85f20201
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL=http://pypi.python.org/packages/source/v/$SPELL/$SOURCE
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/python-pypi/virtualenv/HISTORY b/python-pypi/virtualenv/HISTORY
index c19a140..f686eb1 100644
--- a/python-pypi/virtualenv/HISTORY
+++ b/python-pypi/virtualenv/HISTORY
@@ -1,3 +1,7 @@
+2014-04-09 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 1.11.4
+ * DEPENDS: switched to PYTHON (python3 supported)
+
2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 1.8.4

diff --git a/shell-term-fm/mc/DETAILS b/shell-term-fm/mc/DETAILS
index f2ed9c2..0d7508f 100755
--- a/shell-term-fm/mc/DETAILS
+++ b/shell-term-fm/mc/DETAILS
@@ -1,8 +1,8 @@
SPELL=mc
- VERSION=4.8.11
-
SOURCE_HASH=sha512:d36308b88f587f80d51728cd9c6f35237156a32af85a4f915ba1d4689acfb560183a788261137ef59893bb9ce01e4a6f41c7d3c20f0937c3b0d1423b0a3e1872
+ VERSION=4.8.12
+
SOURCE_HASH=sha512:f482177fd2a457b75d96b953922f473ad669ae4d83910c0c3d5445dd459fff38c9abdc0b39e531b58692e00beb6cae2ca4858d79f55204105a62889784b1fbd3
PATCHLEVEL=0
- SOURCE=$SPELL-$VERSION.tar.bz2
+ SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=https://www.midnight-commander.org/downloads/$SOURCE
WEB_SITE=http://www.midnight-commander.org/
diff --git a/shell-term-fm/mc/HISTORY b/shell-term-fm/mc/HISTORY
index 08bce47..a4ad173 100644
--- a/shell-term-fm/mc/HISTORY
+++ b/shell-term-fm/mc/HISTORY
@@ -1,3 +1,7 @@
+2014-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 4.8.12
+ * PRE_BUILD, mc-4.8.11-ncurses_build_fix.patch: deleted
+
2014-01-25 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* PRE_BUILD, mc-4.8.11-ncurses_build_fix.patch: fix incompatibility
with ncurses, patch from gentoo
diff --git a/shell-term-fm/mc/PRE_BUILD b/shell-term-fm/mc/PRE_BUILD
deleted file mode 100755
index ef5ca1a..0000000
--- a/shell-term-fm/mc/PRE_BUILD
+++ /dev/null
@@ -1,3 +0,0 @@
-default_pre_build &&
-cd $SOURCE_DIRECTORY &&
-patch -p0 < $SPELL_DIRECTORY/mc-4.8.11-ncurses_build_fix.patch
diff --git a/shell-term-fm/mc/mc-4.8.11-ncurses_build_fix.patch
b/shell-term-fm/mc/mc-4.8.11-ncurses_build_fix.patch
deleted file mode 100644
index 0d986eb..0000000
--- a/shell-term-fm/mc/mc-4.8.11-ncurses_build_fix.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Index: lib/tty/key.c
-===================================================================
---- lib/tty/key.c (revision 0ed4a91d7df4e50512defd2e0734ecab7c9da07f)
-+++ lib/tty/key.c (revision 21bf5d2dde704fd9ae90d991ce1279ba925897c9)
-@@ -1947,4 +1947,5 @@
- {
- int c;
-+ static int flag = 0; /* Return value from select */
- #ifdef HAVE_LIBGPM
- static struct Gpm_Event ev; /* Mouse event */
-@@ -1979,5 +1980,4 @@
- {
- int nfd;
-- static int flag = 0; /* Return value from select */
- fd_set select_set;
-
-Index: lib/tty/tty-ncurses.c
-===================================================================
---- lib/tty/tty-ncurses.c (revision
bb65b467900ea9eb1f7867c059fd26fac86c747c)
-+++ lib/tty/tty-ncurses.c (revision
21bf5d2dde704fd9ae90d991ce1279ba925897c9)
-@@ -50,4 +50,5 @@
- #include "tty.h"
- #include "color-internal.h"
-+#include "key.h"
- #include "mouse.h"
- #include "win.h"
-@@ -531,4 +532,5 @@
- {
- int res;
-+ unsigned char str[UTF8_CHAR_LEN + 1];
-
- res = g_unichar_to_utf8 (c, (char *) str);
-@@ -541,5 +543,4 @@
- else
- {
-- unsigned char str[UTF8_CHAR_LEN + 1];
- const char *s;
-
diff --git a/shell-term-fm/spacefm/DEPENDS b/shell-term-fm/spacefm/DEPENDS
index 3a43084..79fb84c 100755
--- a/shell-term-fm/spacefm/DEPENDS
+++ b/shell-term-fm/spacefm/DEPENDS
@@ -1,7 +1,7 @@
. "$GRIMOIRE/FUNCTIONS" &&

depends bash &&
-depends udev &&
+depends UDEV &&

depends $SPACEFM_GTK "--with-${SPACEFM_GTK/gtk+/gtk}" &&

diff --git a/shell-term-fm/spacefm/DETAILS b/shell-term-fm/spacefm/DETAILS
index 966e250..822cd1f 100755
--- a/shell-term-fm/spacefm/DETAILS
+++ b/shell-term-fm/spacefm/DETAILS
@@ -1,8 +1,8 @@
SPELL=spacefm
- VERSION=0.9.3
+ VERSION=0.9.4
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:02140d1915b77dcbe30c76f3666b8a2bf15f634026d27f059a47c567c5ac697ff1fe9ed95a9dcbed092eaafd9075974cd46a1d315c20e103ea97f0bac9c29df9
+
SOURCE_HASH=sha512:b7c3c92b4b6cb74f6c1d63a91beca9759af23fd3b7e5ffc10a895fc948f07aa5e28a0085820cae39bd5eb6e0489181369870fd760950dea26bf0b13c9f499a66
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
WEB_SITE=http://ignorantguru.github.com/spacefm/
LICENSE[0]=GPL
diff --git a/shell-term-fm/spacefm/HISTORY b/shell-term-fm/spacefm/HISTORY
index a28537a..eb3fa17 100644
--- a/shell-term-fm/spacefm/HISTORY
+++ b/shell-term-fm/spacefm/HISTORY
@@ -1,3 +1,9 @@
+2014-04-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on UDEV instead of udev
+
+2014-04-01 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 0.9.4
+
2014-01-30 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 0.9.3
* DEPENDS: added bash, as noted in release info
diff --git a/utils/desktop-file-utils/DETAILS
b/utils/desktop-file-utils/DETAILS
index af4eb07..416f996 100755
--- a/utils/desktop-file-utils/DETAILS
+++ b/utils/desktop-file-utils/DETAILS
@@ -1,9 +1,9 @@
SPELL=desktop-file-utils
- VERSION=0.21
+ VERSION=0.22
+
SOURCE_HASH=sha512:26c1f0da44e4d3fc286640084ad1fad0595fc94edb5d2edd2a4d8cbed0aea4e409aa1a610cbba372f8e540188b62aed764fc7fdecddefbcfeeaedd1d19e3d20a
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.freedesktop.org/software/$SPELL/releases/$SOURCE
-
SOURCE_HASH=sha512:c7372d820e996eef72e85c7190c7f7cce61a3e08ebc348822013d1b28971db294242ce108d8f5e8e6c7539f9044619511d2bba0459a319bddbe5e5cf5d8665aa
WEB_SITE=http://www.freedesktop.org/
ENTERED=20031028
LICENSE=GPL
diff --git a/utils/desktop-file-utils/HISTORY
b/utils/desktop-file-utils/HISTORY
index f01d4ee..61e42eb 100644
--- a/utils/desktop-file-utils/HISTORY
+++ b/utils/desktop-file-utils/HISTORY
@@ -1,3 +1,6 @@
+204-04-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 0.22
+
2013-05-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 0.21

diff --git a/utils/desktop-file-utils/desktop-file-utils-0.20.tar.xz.sig
b/utils/desktop-file-utils/desktop-file-utils-0.20.tar.xz.sig
deleted file mode 100644
index 3fa3597..0000000
Binary files a/utils/desktop-file-utils/desktop-file-utils-0.20.tar.xz.sig
and /dev/null differ
diff --git a/utils/grep/DETAILS b/utils/grep/DETAILS
index 2d5a540..d0cea70 100755
--- a/utils/grep/DETAILS
+++ b/utils/grep/DETAILS
@@ -1,5 +1,5 @@
SPELL=grep
- VERSION=2.16
+ VERSION=2.18
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/utils/grep/HISTORY b/utils/grep/HISTORY
index d4f12f5..a879b8c 100644
--- a/utils/grep/HISTORY
+++ b/utils/grep/HISTORY
@@ -1,3 +1,6 @@
+2014-04-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 2.18
+
2014-01-09 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 2.16

diff --git a/utils/gstpw/DEPENDS b/utils/gstpw/DEPENDS
new file mode 100755
index 0000000..edffa0e
--- /dev/null
+++ b/utils/gstpw/DEPENDS
@@ -0,0 +1 @@
+depends gtk+2
diff --git a/utils/gstpw/DETAILS b/utils/gstpw/DETAILS
new file mode 100755
index 0000000..6f41712
--- /dev/null
+++ b/utils/gstpw/DETAILS
@@ -0,0 +1,13 @@
+ SPELL=gstpw
+ VERSION=0.1
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE_URL[0]=https://gstpw.googlecode.com/files/$SOURCE
+
SOURCE_HASH=sha512:e8a2d0632856e2f4a8125d7b48b84c9b4a607627db90ce8c75fada203a33cda7965a8fc8a9635433e2819add86c3aee28cb5ac644b3ab55c4afa3580bc642f9f
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL"
+ WEB_SITE=http://code.google.com/p/gstpw/
+ ENTERED=20140401
+ LICENSE[0]=GPL
+ SHORT="simple GTK+2 stopwatch program"
+cat << EOF
+gstpw is a simple GTK+2 stopwatch program.
+EOF
diff --git a/utils/gstpw/HISTORY b/utils/gstpw/HISTORY
new file mode 100644
index 0000000..dd0ece0
--- /dev/null
+++ b/utils/gstpw/HISTORY
@@ -0,0 +1,2 @@
+2014-04-01 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: created spell
diff --git a/utils/hal/DEPENDS b/utils/hal/DEPENDS
index 1f3b569..ea6aada 100755
--- a/utils/hal/DEPENDS
+++ b/utils/hal/DEPENDS
@@ -3,7 +3,7 @@ depends gawk &&
depends glib2 &&
depends intltool &&
depends libtool &&
-depends udev '--with-udev-prefix=/etc' &&
+depends UDEV '--with-udev-prefix=/etc' &&
depends xml-parser-expat &&
depends pkgconfig &&
depends util-linux &&
diff --git a/utils/hal/HISTORY b/utils/hal/HISTORY
index 4241a5e..ede6d86 100644
--- a/utils/hal/HISTORY
+++ b/utils/hal/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on UDEV instead of udev
+
2013-08-13 Eric Sandall <sandalle AT sourcemage.org>
* PRE_BUILD: Apply glibc-2.17.patch
* glibc-2.17.patch: Added from
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701432
diff --git a/utils/syslog-ng/DETAILS b/utils/syslog-ng/DETAILS
index df65b4f..4ee867e 100755
--- a/utils/syslog-ng/DETAILS
+++ b/utils/syslog-ng/DETAILS
@@ -1,6 +1,6 @@
SPELL=syslog-ng
- VERSION=3.5.3
-
SOURCE_HASH=sha512:b09229573fa964e584ff43377388357339ffd5ca47c8820df8b11bb8c04b58b06ef86de7e2486c61e9e9d34c09d891e89be1fb4d474427c421fc0bcb02309907
+ VERSION=3.5.4.1
+
SOURCE_HASH=sha512:4068b1e1fc6ef52075002c9306885cb3b70d5e681077dd2bff7c5dfd83885f4967c9246692c0e886343269cdd5f02b2416999e5e381a076354da96bc7dc13766
SOURCE=${SPELL}_${VERSION}.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION

SOURCE_URL[0]=http://www.balabit.com/downloads/files/syslog-ng/sources/$VERSION/source/$SOURCE
diff --git a/utils/syslog-ng/HISTORY b/utils/syslog-ng/HISTORY
index 33fbe19..983bc11 100644
--- a/utils/syslog-ng/HISTORY
+++ b/utils/syslog-ng/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.5.4.1
+
2014-02-14 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 3.5.3

diff --git a/video-libs/gst-plugins-base/DEPENDS
b/video-libs/gst-plugins-base/DEPENDS
index c1580bc..764d4f8 100755
--- a/video-libs/gst-plugins-base/DEPENDS
+++ b/video-libs/gst-plugins-base/DEPENDS
@@ -5,6 +5,9 @@ optional_depends libx11
\
"--enable-x --enable-xvideo --enable-xshm" \
"--disable-x --disable-xvideo --disable-xshm" \
"for X11 video output" &&
+if is_depends_enabled $SPELL libx11; then
+ depends libxdmcp
+fi &&
optional_depends alsa-lib \
"--enable-alsa" \
"--disable-alsa" \
diff --git a/video-libs/gst-plugins-base/HISTORY
b/video-libs/gst-plugins-base/HISTORY
index 64dcb0f..85f9374 100644
--- a/video-libs/gst-plugins-base/HISTORY
+++ b/video-libs/gst-plugins-base/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on libxdmcp if the dependency on libx11 is enabled
+
2012-03-02 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.10.36

diff --git a/video-libs/libdvdnav/DETAILS b/video-libs/libdvdnav/DETAILS
index aacd74b..ef55e12 100755
--- a/video-libs/libdvdnav/DETAILS
+++ b/video-libs/libdvdnav/DETAILS
@@ -1,7 +1,7 @@
SPELL=libdvdnav
- VERSION=4.2.0
-
SOURCE_HASH=sha512:f9b9c52af870bc088bc8bbc7a64285dc55906dcfd11d6849d8a7b4046b083472c3e898609ec399a45059e10cffce0ef67ec2dec2ec4f0a1c904b9b6d2a85185f
- SOURCE=$SPELL-$VERSION.tar.bz2
+ VERSION=4.2.1
+
SOURCE_HASH=sha512:3b7b18069b77a5a48ff5ad74f823b88f5dbf5058f11737ffef9d388d755616a581688c95dc1c3d9ab2377bce1dafaf53c9d46981a12588e6b3d8b70ce582e756
+ SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://dvdnav.mplayerhq.hu/releases/$SOURCE
WEB_SITE=http://mplayerhq.hu/
diff --git a/video-libs/libdvdnav/HISTORY b/video-libs/libdvdnav/HISTORY
index bd4ba41..9c3bb4e 100644
--- a/video-libs/libdvdnav/HISTORY
+++ b/video-libs/libdvdnav/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 4.2.1
+
2012-10-25 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 4.2.0

diff --git a/video-libs/libdvdread/DETAILS b/video-libs/libdvdread/DETAILS
index 708261d..b541b6d 100755
--- a/video-libs/libdvdread/DETAILS
+++ b/video-libs/libdvdread/DETAILS
@@ -1,8 +1,8 @@
SPELL=libdvdread
- VERSION=4.2.0
-
SOURCE_HASH=sha512:192802a05f4b6561bd3d85ea54a29861d98ec947a5eeaa45a8d53389744c31570ee5dbdf3fbd0645ea8e6b254795e39d0948d54849dad99252155db00501b21f
+ VERSION=4.2.1
+
SOURCE_HASH=sha512:80738a70068c83fbd309ffd7335485909812ad0cd862df25ca041b8fb302428be0fc9e678aaeafe529b7652f8b1435e406d8aee3504e939fd29a7e45bd7d8139
# SOURCE_GPG=gurus.gpg:$SOURCE.sig:WORKS_FOR_ME
- SOURCE=$SPELL-$VERSION.tar.bz2
+ SOURCE=$SPELL-$VERSION.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://dvdnav.mplayerhq.hu/releases/$SOURCE
WEB_SITE=http://www.mplayerhq.hu/
diff --git a/video-libs/libdvdread/HISTORY b/video-libs/libdvdread/HISTORY
index 49aaed5..c0f2b10 100644
--- a/video-libs/libdvdread/HISTORY
+++ b/video-libs/libdvdread/HISTORY
@@ -1,3 +1,6 @@
+2014-04-10 Treeve Jelbert <treeve AT ourcemage.org>
+ * DETAILS: version 4.2.1
+
2012-10-25 Treeve Jelbert <treeve AT ourcemage.org>
* DETAILS: version 4.2.0
new url
diff --git a/video/mpv/BUILD b/video/mpv/BUILD
index 61399b2..63c28f8 100755
--- a/video/mpv/BUILD
+++ b/video/mpv/BUILD
@@ -18,8 +18,5 @@ if is_depends_enabled $SPELL $(get_spell_provider $SPELL
OPENGL); then
fi
fi &&

-./old-configure --prefix=${INSTALL_ROOT}/usr \
- --confdir=${TRACK_ROOT}/etc/mpv \
- $OPTS &&
-
-make V=1 -f old-makefile
+OPTS+=" --confdir=$INSTALL_ROOT/etc/mpv" &&
+waf_build
diff --git a/video/mpv/CONFIGURE b/video/mpv/CONFIGURE
index 2301e04..305d101 100755
--- a/video/mpv/CONFIGURE
+++ b/video/mpv/CONFIGURE
@@ -1,9 +1,9 @@
default_configure &&

config_query_option MPV_OPTS "Compile-in debugging information?" y \
- "--enable-debug" \
- "--disable-debug" &&
+ "" \
+ "--disable-debug-build" &&

config_query_option MPV_OPTS "Enable VCD (VideoCD) support?" y \
- "--enable-vcd" \
+ "" \
"--disable-vcd"
diff --git a/video/mpv/DEPENDS b/video/mpv/DEPENDS
index c237624..7c8bb3e 100755
--- a/video/mpv/DEPENDS
+++ b/video/mpv/DEPENDS
@@ -1,4 +1,6 @@
-depends perl &&
+depends perl &&
+depends python &&
+depends lua &&
depends -sub STABLE ffmpeg &&

optional_depends docutils \
@@ -44,23 +46,23 @@ optional_depends JACK-DRIVER \

optional_depends openal \
"--enable-openal" \
- "--disable-openal" \
+ "" \
"for OpenAL audio output" &&

optional_depends sdl \
"--enable-sdl" \
- "--disable-sdl" \
+ "" \
"for SDL audio output" &&

# TODO: add sdl2 spell
#optional_depends sdl2 \
# "--enable-sdl2" \
-# "--disable-sdl2" \
+# "" \
# "for SDL 2.0+ audio and video output" &&

# video output
optional_depends OPENGL \
- "--enable-gl" \
+ "" \
"--disable-gl" \
"for OpenGL video output" &&

@@ -79,7 +81,7 @@ if is_depends_enabled $SPELL libx11; then

optional_depends libxxf86vm \
"" \
- "--disable-vm" \
+ "--disable-xf86vm" \
"for X video mode extensions" &&

optional_depends libvdpau \
@@ -110,14 +112,14 @@ optional_depends libxscrnsaver \

# codecs
optional_depends JPEG \
- "--enable-jpeg" \
+ "" \
"--disable-jpeg" \
"for JPEG input/output support" &&

optional_depends libcdio \
- "--enable-libcdio" \
- "--disable-libcdio" \
- "for libcdio support" &&
+ "" \
+ "--disable-cdda" \
+ "for cdda support" &&

optional_depends ladspa \
"" \
@@ -131,28 +133,28 @@ optional_depends MPG123 \

# features
optional_depends lirc \
- "--enable-lirc" \
+ "" \
"--disable-lirc" \
"for LIRC (remote control) support" &&

if is_depends_enabled $SPELL libx11; then
optional_depends xproto \
"" \
- "--disable-xf86keysym" \
+ "--disable-xf86xk" \
"for multimedia keys support"
else
- list_add MPV_OPTS "--disable-xf86keysym"
+ list_add MPV_OPTS "--disable-xf86xk"
fi &&

optional_depends v4l-utils \
- "--enable-radio" \
+ "" \
"--disable-radio --disable-radio-v4l2" \
"for Video4Linux2 radio interface" &&

if is_depends_enabled $SPELL v4l-utils; then
if is_depends_enabled $SPELL alsa-lib || is_depends_enabled $SPELL oss;
then
config_query_option MPV_OPTS "Enable radio capture (through
PCI/line-in)?" n \
- "--enable-radio-capture" \
+ "" \
"--disable-radio-capture"
else
list_add MPV_OPTS "--disable-radio-capture"
@@ -160,7 +162,7 @@ if is_depends_enabled $SPELL v4l-utils; then
fi &&

optional_depends v4l-utils \
- "--enable-tv" \
+ "" \
"--disable-tv --disable-tv-v4l2" \
"for Video4Linux2 TV interface (TV/DVB grabbers)" &&

@@ -173,8 +175,8 @@ else
fi &&

optional_depends samba \
- "--enable-smb" \
- "--disable-smb" \
+ "" \
+ "--disable-libsmbclient" \
"for Samba (SMB) input support" &&

if is_depends_enabled $SPELL samba; then
@@ -191,14 +193,9 @@ optional_depends lcms2 \
"--disable-lcms2" \
"for LCMS2 support" &&

-optional_depends lua \
- "" \
- "--disable-lua" \
- "for Lua scripting support" &&
-
optional_depends libbluray \
"" \
- "--disable-bluray" \
+ "--disable-libbluray" \
"for Blu-ray support" &&

optional_depends libdvdread \
@@ -216,8 +213,6 @@ optional_depends enca \
"--disable-enca" \
"for ENCA charset oracle library support" &&

-# accepts only autodetect mode (forcing `--enable-libass' flag disables
libass
-# support); this also happens for `--enable-libass-osd'
optional_depends libass \
"" \
"--disable-libass" \
diff --git a/video/mpv/DETAILS b/video/mpv/DETAILS
index e182eaf..85f4776 100755
--- a/video/mpv/DETAILS
+++ b/video/mpv/DETAILS
@@ -1,10 +1,10 @@
SPELL=mpv
- VERSION=0.3.6
+ VERSION=0.3.7
SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCEX=v${VERSION}.tar.gz

SOURCE_URL[0]=https://github.com/${SPELL}-player/${SPELL}/archive/${SOURCEX}
SOURCE_HINTS="no-check-certificate"
-
SOURCE_HASH=sha512:4f94f0fa4d6ee2d070da1adcd0801d8f1ae5893407cfd422c412526449aeeed45fbb953463393779fde869d68351c5d93416bfe9e2f3dfc2c74ccdf7a746f91f
+
SOURCE_HASH=sha512:452128df418e50c19cf86041decf77202082fc82997aee36ae95e5c0d447dd1e30fcbe9c28d6ec52b0415252b74791152ec485ddc918a1f010d9cc7b9a0f4b29
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
DOCS="Copyright DOCS/tech-overview.txt DOCS/OUTDATED-tech/*
$DOCS"
WEB_SITE=http://mpv.io/
diff --git a/video/mpv/HISTORY b/video/mpv/HISTORY
index 9b1417f..a669ec2 100644
--- a/video/mpv/HISTORY
+++ b/video/mpv/HISTORY
@@ -1,3 +1,11 @@
+2014-04-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on lua instead of LUA
+
+2014-04-03 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.3.7
+ * BUILD, CONFIGURE, DEPENDS, INSTALL, PRE_BUILD: switch to waf
+ build system
+
2014-03-16 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 0.3.6

diff --git a/video/mpv/INSTALL b/video/mpv/INSTALL
index 947d266..cc0acc7 100755
--- a/video/mpv/INSTALL
+++ b/video/mpv/INSTALL
@@ -1,4 +1,4 @@
-make V=1 install &&
+./waf install

install -vm 755 -d "$INSTALL_ROOT/etc/mpv" &&

diff --git a/video/mpv/PRE_BUILD b/video/mpv/PRE_BUILD
new file mode 100755
index 0000000..4e9edd3
--- /dev/null
+++ b/video/mpv/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd $SOURCE_DIRECTORY &&
+./bootstrap.py
diff --git a/x11/unclutter/DEPENDS b/x11/unclutter/DEPENDS
new file mode 100755
index 0000000..6b7403c
--- /dev/null
+++ b/x11/unclutter/DEPENDS
@@ -0,0 +1,3 @@
+depends imake &&
+depends libxext &&
+depends libx11
diff --git a/x11/unclutter/DETAILS b/x11/unclutter/DETAILS
index 3f077f1..d3f6454 100755
--- a/x11/unclutter/DETAILS
+++ b/x11/unclutter/DETAILS
@@ -1,8 +1,8 @@
SPELL=unclutter
VERSION=8
- SOURCE=$SPELL-$VERSION.tar.Z
+ SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL
- SOURCE_URL[0]=http://www.ibiblio.org/pub/X11/contrib/utilities/$SOURCE
+ SOURCE_URL[0]=http://www.ibiblio.org/pub/X11/contrib/utilities/$SOURCE

SOURCE_HASH=sha512:9a64e6eceae685cf34b1ea85818735f8f85514ba1eea262476653886d74e469cfd6b9a39edbd098b138a5c89e6b97b42cf251bee59272c76cbeba190979744b4
WEB_SITE=http://www.ibiblio.org
ENTERED=20010924
diff --git a/x11/unclutter/HISTORY b/x11/unclutter/HISTORY
index 25cf671..4670e8e 100644
--- a/x11/unclutter/HISTORY
+++ b/x11/unclutter/HISTORY
@@ -1,3 +1,7 @@
+2014-04-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: depend on imake, libx11 and libxext
+ * DETAILS: fix SOURCE_URL[0]
+
2006-10-03 Juuso Alasuutari <iuso AT sourcemage.org>
* DETAILS: [automated] Removed UPDATED.

diff --git a/xfce/ristretto/DEPENDS b/xfce/ristretto/DEPENDS
index 81014cf..4d0bec2 100755
--- a/xfce/ristretto/DEPENDS
+++ b/xfce/ristretto/DEPENDS
@@ -1,10 +1,10 @@
depends dbus-glib &&
depends gtk+2 &&
+depends xfconf &&
depends libxfce4util &&
depends libxfcegui4 &&
depends libexif &&
-depends thunar &&
-depends thunar-vfs &&
+depends cairo &&

optional_depends gettext \
"--enable-nls" \
diff --git a/xfce/ristretto/HISTORY b/xfce/ristretto/HISTORY
index 4e555a9..d9c427a 100644
--- a/xfce/ristretto/HISTORY
+++ b/xfce/ristretto/HISTORY
@@ -1,3 +1,6 @@
+2014-04-05 Vlad Glagolev <stealth AT sourcemage.org>
+ * DEPENDS: renewed dependencies
+
2012-11-30 Vlad Glagolev <stealth AT sourcemage.org>
* DEPENDS: added tumbler suggest dep




  • [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (1e028da2a80cc9b8d112342d6b6ddfea5603e8b0), Treeve Jelbert, 04/11/2014

Archive powered by MHonArc 2.6.24.

Top of Page