summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-visualization/spectromatic
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-visualization/spectromatic')
-rw-r--r--sci-visualization/spectromatic/Manifest1
-rw-r--r--sci-visualization/spectromatic/files/spectromatic-1.0-makefile.patch49
-rw-r--r--sci-visualization/spectromatic/files/spectromatic-1.0-stringliteral.patch78
-rw-r--r--sci-visualization/spectromatic/files/spectromatic-1.0-waveheaderstruct-amd64.patch103
-rw-r--r--sci-visualization/spectromatic/metadata.xml16
-rw-r--r--sci-visualization/spectromatic/spectromatic-1.0-r2.ebuild41
6 files changed, 288 insertions, 0 deletions
diff --git a/sci-visualization/spectromatic/Manifest b/sci-visualization/spectromatic/Manifest
new file mode 100644
index 00000000000..885e46568eb
--- /dev/null
+++ b/sci-visualization/spectromatic/Manifest
@@ -0,0 +1 @@
+DIST spectromatic_1.0-1.tar.gz 13724 SHA256 5ed057c6c37cc7c5a6a1c8975cb0a74085baa8b18467f4643d40c0986fc45fd4 SHA512 b83acaacd21f7eb12ee3fd955073e8f95c02649de833a6087cf62786b20d8d1bf9a5b62920c17435510237797c6bc3a378921c4c1c2c4e4f74acbca49becfd6c WHIRLPOOL e724a8159624979980241f14bd72010431ad3c51382b9f29a2b5676b3e0585db2dbcb5341fb1fe599706024ece95d290a6aabd6aa5ac64e837640cdaf52a90fe
diff --git a/sci-visualization/spectromatic/files/spectromatic-1.0-makefile.patch b/sci-visualization/spectromatic/files/spectromatic-1.0-makefile.patch
new file mode 100644
index 00000000000..48f9d902335
--- /dev/null
+++ b/sci-visualization/spectromatic/files/spectromatic-1.0-makefile.patch
@@ -0,0 +1,49 @@
+Respect LDFLAGS, CFLAGS, CC #334715
+Fix install paths
+
+--- Makefile
++++ Makefile
+@@ -1,33 +1,29 @@
+ # Makefile for spectromatic
+
+-CFLAGS = -O2 -Wall
+-LIBS = -lgsl -lgslcblas -lpng -lm
++LIBS = -lpng `pkg-config --libs gsl`
+ DESTDIR =
+-TOPLEVEL_HOME = /usr
++TOPLEVEL_HOME ?= /usr
+
+-CC = gcc -I.
+-
+ SRC = spectromatic.c wave.c
+
+ OBJ = $(SRC:.c=.o)
+
+ TARGET = spectromatic
+
+-install: all
+- mkdir -p $(DESTDIR)$(TOPLEVEL_HOME)/bin
+- mkdir -p $(DESTDIR)$(TOPLEVEL_HOME)/man/man1
+- install -o root -g root -m 0755 spectromatic $(DESTDIR)$(TOPLEVEL_HOME)/bin
+- install -o root -g root -m 0644 man/spectromatic.1 $(DESTDIR)$(TOPLEVEL_HOME)/man/man1
+-
+ all: $(OBJ)
+- $(CC) -o $(TARGET) $(OBJ) $(LIBS)
+- strip $(TARGET)
++ $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $(TARGET)
++
++install: $(TARGET)
++ mkdir -p $(DESTDIR)$(TOPLEVEL_HOME)/bin
++ mkdir -p $(DESTDIR)$(TOPLEVEL_HOME)/share/man/man1
++ install -m 0755 spectromatic $(DESTDIR)$(TOPLEVEL_HOME)/bin
++ install -m 0644 man/spectromatic.1 $(DESTDIR)$(TOPLEVEL_HOME)/share/man/man1
+
+ clean:
+ $(RM) $(TARGET) $(OBJ)
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $<
++ $(CC) $(CFLAGS) -I. -c $<
+
+ .o:
+ $(CC) $< $(LIBS) -o $@
diff --git a/sci-visualization/spectromatic/files/spectromatic-1.0-stringliteral.patch b/sci-visualization/spectromatic/files/spectromatic-1.0-stringliteral.patch
new file mode 100644
index 00000000000..2d18f01b216
--- /dev/null
+++ b/sci-visualization/spectromatic/files/spectromatic-1.0-stringliteral.patch
@@ -0,0 +1,78 @@
+diff -ru spectromatic-1.0/spectromatic.c spectromatic-1.0-new/spectromatic.c
+--- spectromatic-1.0/spectromatic.c 2002-03-30 06:17:34.000000000 +0100
++++ spectromatic-1.0-new/spectromatic.c 2004-07-02 21:25:49.485524639 +0200
+@@ -21,6 +21,7 @@
+ ****************************************************************************/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <malloc.h>
+ #include <png.h>
+ #include <string.h>
+@@ -37,36 +38,36 @@
+ void usage (char *pname)
+ {
+ fprintf (stderr,
+-"
+-Usage: %s [options] file.wav
+-
+-Options:
+- --window <size> FFT window size (default: 2048)
+-
+- --step <size> Slide the window by <size> samples each time
+- (default: 200)
+-
+- --inverse White/Colour-on-black
+-
+- --logarithmic Intensity is calculated by
+- log10 (1 + 9 * (amplitude / max_amp)) -
+- better for visualising weaker signals
+-
+- --combine XYZ Determines how a stereo signal is
+- represented as an RGB image. The argument is
+- a 3-character block, each character
+- corresponding to R, G and B components. It
+- may take values of L, R, A, D, X or Z,
+- meaning Left, Right, Average, Difference,
+- Cross-Correlation or Zero respectively.
+-
+- --verbose Slightly less quiet
+-
+- --version Print out the version
+-
+- --help You're in it.
+-
+-", pname);
++"\n"
++"Usage: %s [options] file.wav\n"
++"\n"
++"Options:\n"
++" --window <size> FFT window size (default: 2048)\n"
++"\n"
++" --step <size> Slide the window by <size> samples each time \n"
++" (default: 200)\n"
++"\n"
++" --inverse White/Colour-on-black\n"
++"\n"
++" --logarithmic Intensity is calculated by\n"
++" log10 (1 + 9 * (amplitude / max_amp)) -\n"
++" better for visualising weaker signals\n"
++"\n"
++" --combine XYZ Determines how a stereo signal is\n"
++" represented as an RGB image. The argument is\n"
++" a 3-character block, each character\n"
++" corresponding to R, G and B components. It\n"
++" may take values of L, R, A, D, X or Z,\n"
++" meaning Left, Right, Average, Difference,\n"
++" Cross-Correlation or Zero respectively.\n"
++"\n"
++" --verbose Slightly less quiet\n"
++"\n"
++" --version Print out the version\n"
++"\n"
++" --help You're in it.\n"
++"\n"
++, pname);
+
+
+ exit (-1);
diff --git a/sci-visualization/spectromatic/files/spectromatic-1.0-waveheaderstruct-amd64.patch b/sci-visualization/spectromatic/files/spectromatic-1.0-waveheaderstruct-amd64.patch
new file mode 100644
index 00000000000..edfb7af8c4b
--- /dev/null
+++ b/sci-visualization/spectromatic/files/spectromatic-1.0-waveheaderstruct-amd64.patch
@@ -0,0 +1,103 @@
+--- wave.c.orig 2012-08-06 18:54:21.829756875 -0700
++++ wave.c 2012-08-06 19:04:35.818049655 -0700
+@@ -1,11 +1,26 @@
+ #include <stdio.h>
+ #include <string.h>
++#include <endian.h>
+ #include "wave.h"
+
+ int read_header (FILE *f, waveheaderstruct *header)
+ {
++ waveheaderstruct h;
+ fseek (f, 0, SEEK_SET);
+- return fread (header, 1, sizeof (waveheaderstruct), f);
++ size_t red = fread (&h, 1, sizeof (waveheaderstruct), f);
++
++ h.length = le32toh(h.length);
++ h.length_chunk = le32toh(h.length_chunk);
++ h.format = le16toh(h.format);
++ h.modus = le16toh(h.modus);
++ h.sample_fq = le32toh(h.sample_fq);
++ h.byte_p_sec = le32toh(h.byte_p_sec);
++ h.byte_p_spl = le16toh(h.byte_p_spl);
++ h.bit_p_spl = le16toh(h.bit_p_spl);
++ h.data_length = le32toh(h.data_length);
++
++ *header = h;
++ return red;
+ }
+
+ int read_frames (FILE *f, int start, int length, char *data)
+@@ -52,12 +67,12 @@
+
+ read_header (f, &header);
+
+- printf ("Length: %lu\n", header.length);
+- printf ("Length Chunk: %lu\n", header.length_chunk);
++ printf ("Length: %lu\n", (unsigned long)header.length);
++ printf ("Length Chunk: %lu\n", (unsigned long)header.length_chunk);
+ printf ("Format: %u\n", header.format);
+ printf ("Modus: %u\n", header.modus);
+- printf ("Sample Frequency: %lu\n", header.sample_fq);
+- printf ("Bytes per Second: %lu\n", header.byte_p_sec);
++ printf ("Sample Frequency: %lu\n", (unsigned long)header.sample_fq);
++ printf ("Bytes per Second: %lu\n", (unsigned long)header.byte_p_sec);
+ printf ("Bytes per Sample: %u\n", header.byte_p_spl);
+- printf ("Data Length: %lu\n", header.data_length);
++ printf ("Data Length: %lu\n", (unsigned long)header.data_length);
+ }
+--- wave.h.orig 2012-08-06 18:55:38.009165756 -0700
++++ wave.h 2012-08-06 18:55:50.377232324 -0700
+@@ -22,24 +22,25 @@
+ #ifndef WAVE_H
+ #define WAVE_H
+
+-typedef unsigned long ulongT;
+-typedef unsigned short ushortT;
++#include <stdint.h>
+
++#pragma pack(push,1)
+ typedef struct { /* header for WAV-Files */
+- char main_chunk[4]; /* 'RIFF' */
+- unsigned long length; /* length of file */
+- char chunk_type[4]; /* 'WAVE' */
+- char sub_chunk[4]; /* 'fmt' */
+- unsigned long length_chunk; /* length sub_chunk, always 16 bytes */
+- unsigned short format; /* always 1 = PCM-Code */
+- unsigned short modus; /* 1 = Mono, 2 = Stereo */
+- unsigned long sample_fq; /* Sample Freq */
+- unsigned long byte_p_sec; /* Data per sec */
+- unsigned short byte_p_spl; /* Bytes per sample */
+- unsigned short bit_p_spl; /* bits per sample, 8, 12, 16 */
+- char data_chunk[4]; /* 'data' */
+- unsigned long data_length; /* length of data */
+-} waveheaderstruct;
++ uint8_t main_chunk[4]; /* 'RIFF' */
++ uint32_t length; /* length of file */
++ uint8_t chunk_type[4]; /* 'WAVE' */
++ uint8_t sub_chunk[4]; /* 'fmt' */
++ uint32_t length_chunk; /* length sub_chunk, always 16 bytes */
++ uint16_t format; /* always 1 = PCM-Code */
++ uint16_t modus; /* 1 = Mono, 2 = Stereo */
++ uint32_t sample_fq; /* Sample Freq */
++ uint32_t byte_p_sec; /* Data per sec */
++ uint16_t byte_p_spl; /* Bytes per sample */
++ uint16_t bit_p_spl; /* bits per sample, 8, 12, 16 */
++ uint8_t data_chunk[4]; /* 'data' */
++ uint32_t data_length; /* length of data */
++} __attribute__ ((__packed__)) waveheaderstruct;
++#pragma pack(pop)
+
+ int read_header (FILE *f, waveheaderstruct *header);
+ int read_frames (FILE *f, int start, int length, char *data);
+--- spectromatic.c.orig 2012-08-06 18:54:05.260668605 -0700
++++ spectromatic.c 2012-08-06 19:28:18.637679446 -0700
+@@ -217,7 +217,7 @@
+ if (header.modus == 2)
+ ch2 = (double*) malloc (window_size * sizeof (double));
+
+- fprintf (stderr, "samples = %li, step_size = %i, window_size = %i\n", header.data_length / header.byte_p_spl, step_size, window_size);
++ fprintf (stderr, "samples = %lu, step_size = %i, window_size = %i\n", (unsigned long)header.data_length / header.byte_p_spl, step_size, window_size);
+
+ for (i = -window_size; i < window_size + (int)(header.data_length / header.byte_p_spl); i += step_size) {
+ read_frames (f, i, window_size, data);
diff --git a/sci-visualization/spectromatic/metadata.xml b/sci-visualization/spectromatic/metadata.xml
new file mode 100644
index 00000000000..df3ad6ba7d0
--- /dev/null
+++ b/sci-visualization/spectromatic/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ Spectromatic is a program for generating spectrograms from audio
+ files. Spectrograms are a form of simple time-frequency analysis which
+ lets you see how the distribution of energy at different frequencies
+ in an audio stream change over time. For example, if you play a scale
+ on a musical instrument, you will see a climbing and/or descending
+ pattern of blobs as you move from left to right.
+ Spectromatic reads its input as mono or stereo 16-bit wave files, and
+ writes the output image to an elongated PNG image (colour for stereo,
+ grayscale for mono audio).
+</longdescription>
+</pkgmetadata>
diff --git a/sci-visualization/spectromatic/spectromatic-1.0-r2.ebuild b/sci-visualization/spectromatic/spectromatic-1.0-r2.ebuild
new file mode 100644
index 00000000000..0dcd9f0e1a1
--- /dev/null
+++ b/sci-visualization/spectromatic/spectromatic-1.0-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils toolchain-funcs
+
+MY_P=${PN}_${PV}-1
+
+DESCRIPTION="Generates time-frequency analysis images from wav files"
+HOMEPAGE="http://ieee.uow.edu.au/~daniel/software/spectromatic/"
+SRC_URI="http://ieee.uow.edu.au/~daniel/software/spectromatic/dist/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ media-libs/libpng:0
+ sci-libs/gsl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( README )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-makefile.patch
+ "${FILESDIR}"/${P}-stringliteral.patch
+ "${FILESDIR}"/${P}-waveheaderstruct-amd64.patch
+)
+
+pkg_setup() {
+ tc-export CC
+ export TOPLEVEL_HOME="${EROOT}/usr"
+}
+
+src_prepare() {
+ epatch ${PATCHES[@]}
+}