Hello community,
here is the log from the commit of package gramofile for openSUSE:Factory
checked in at Fri Feb 11 02:23:02 CET 2011.
--------
--- gramofile/gramofile.changes 2007-03-30 01:57:14.000000000 +0200
+++ /mounts/work_src_done/STABLE/gramofile/gramofile.changes 2011-02-07 23:39:30.000000000 +0100
@@ -1,0 +2,11 @@
+Mon Feb 7 22:35:48 UTC 2011 - lars@linux-schulserver.de
+
+- added manpage from debian
+- added the following debian patches:
+ 20-no-busy-wait-after-rec.dpatch
+ 80_fix_wav_length.dpatch
+ 90_report_recording_errors.dpatch
+ please refer to the documentation in the patches for details
+- beautify specfile
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
20-no-busy-wait-after-rec.dpatch
90_report_recording_errors.dpatch
gramofile.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gramofile.spec ++++++
--- /var/tmp/diff_new_pack.OhWACK/_old 2011-02-11 02:22:36.000000000 +0100
+++ /var/tmp/diff_new_pack.OhWACK/_new 2011-02-11 02:22:36.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package gramofile (Version 1.6)
+# spec file for package gramofile
#
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,17 +20,20 @@
Name: gramofile
BuildRequires: ncurses-devel
-Url: http://panic.et.tudelft.nl/~costar/gramofile
+Url: http://www.opensourcepartners.nl/~costar/gramofile/
Version: 1.6
-Release: 371
-License: GPL v2 or later
+Release: 379
+License: GPLv2+
Group: Productivity/Multimedia/Sound/Editors and Convertors
Summary: Digitize Audio Records
-Source: gramofile-%{version}.tar.gz
+Source0: gramofile-%{version}.tar.gz
+Source1: gramofile.1
Patch1: gramofile-1.6-makefiles.dif
Patch2: gramofile-codecleanup.dif
-Provides: gramofil
-Obsoletes: gramofil
+Patch20: 20-no-busy-wait-after-rec.dpatch
+Patch90: 90_report_recording_errors.dpatch
+Provides: gramofil = %{version}-%{release}
+Obsoletes: gramofil < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -50,19 +53,25 @@
%setup -q
%patch1 -p1
%patch2 -p1
+%patch20 -p0
+%patch90 -p0
%build
-make
+%{__make} %{?_smp_mflags}
%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir}/%{name} install
+make DESTDIR=%{buildroot} docdir=%{_docdir}/%{name} install
+install -Dm644 %{SOURCE1} %{buildroot}%{_mandir}/man1/gramofile.1
+
+%clean
+rm -rf %{buildroot}
%files
%defattr(-,root,root)
/usr/bin/bplay_gramo
/usr/bin/brec_gramo
/usr/bin/gramofile
+%{_mandir}/man1/gramofile.1*
%dir %{_docdir}/%{name}
%{_docdir}/%{name}/ChangeLog
%{_docdir}/%{name}/COPYING
++++++ 20-no-busy-wait-after-rec.dpatch ++++++
# Do not busy wait for confirmation after recording. [dk]
#PATCHOPTIONS: -p0
Index: bplaysrc/shmbuf.c
===================================================================
--- bplaysrc/shmbuf.c.orig
+++ bplaysrc/shmbuf.c
@@ -443,7 +443,7 @@ printw(" %d",cbuff);
cleanupsems();
#ifdef VUMETER
- nodelay(stdscr, TRUE);
+ nodelay(stdscr, FALSE);
/* child has displayed informative data */
do
++++++ 90_report_recording_errors.dpatch ++++++
# Report errors during recording to the user. [dk]
#PATCHOPTIONS: -p0
Index: bplaysrc/shmbuf.c
===================================================================
--- bplaysrc/shmbuf.c.orig
+++ bplaysrc/shmbuf.c
@@ -80,10 +80,12 @@ static char *bigbuff;
static char **buffarr;
static int numbuffs, numsemblks;
static blockinf_t *buffinf;
+static volatile int stoprecording;
/* prototypes */
void cleanupsems(void);
static void sighandler(int i);
+static void childerrhandler(int i);
/* Extern globals */
extern int abuf_size;
@@ -194,6 +196,8 @@ void init_shm(void)
}
/* Catch some signals, so we clean up semaphores */
signal(SIGINT, sighandler);
+ /* Out of disk space errors are handled explicitly already. */
+ signal(SIGXFSZ, SIG_IGN);
}
@@ -240,6 +244,7 @@ void shmrec(int outfd, long totalcount,
{
int cbuff = 0;
long totalrd = 0; /* we need it here too... */
+ int err = 0;
#ifdef VUMETER
signed short *ssptr;
@@ -276,6 +281,13 @@ void shmrec(int outfd, long totalcount,
totalrd += count;
}
+ if (count == -1 && errno != EINTR) {
+ err = errno;
+ for (i = 0; i < numbuffs; i++)
+ up(sndsemid, i);
+ break;
+ }
+
#ifdef VUMETER
maxleft = 0;
maxright = 0;
@@ -342,19 +354,27 @@ void shmrec(int outfd, long totalcount,
printw("\n\n");
printw(" Recording information:\n\n\n");
- fsec2hmsf ( (double) totalrd / (4 * 44100) , timestring);
- printw(" Recorded time : %s\n", timestring);
- printw(" Recorded samples : %11ld\n", totalrd / 4);
- printw(" Recorded bytes : %11ld (excl. header)\n", totalrd);
- printw("\n");
- printw(" Samples above 50%% of max. volume : %9ld (%5.1f%%)\n",
- samplesabove50pct, samplesabove50pct * 100. / (totalrd/4));
- printw(" Samples above 90%% of max. volume : %9ld (%5.1f%%)\n",
- samplesabove90pct, samplesabove90pct * 100. / (totalrd/4));
- printw(" Samples above 99%% of max. volume : %9ld (%5.1f%%)\n",
- samplesabove99pct, samplesabove99pct * 100. / (totalrd/4));
- printw(" Really too loud (clipped) samples : %9ld (%5.1f%%)\n",
- samplestooloud, samplestooloud * 100. / (totalrd/4));
+
+ if (!err) {
+
+ fsec2hmsf ( (double) totalrd / (4 * 44100) , timestring);
+ printw(" Recorded time : %s\n", timestring);
+ printw(" Recorded samples : %11ld\n", totalrd / 4);
+ printw(" Recorded bytes : %11ld (excl. header)\n", totalrd);
+ printw("\n");
+ printw(" Samples above 50%% of max. volume : %9ld (%5.1f%%)\n",
+ samplesabove50pct, samplesabove50pct * 100. / (totalrd/4));
+ printw(" Samples above 90%% of max. volume : %9ld (%5.1f%%)\n",
+ samplesabove90pct, samplesabove90pct * 100. / (totalrd/4));
+ printw(" Samples above 99%% of max. volume : %9ld (%5.1f%%)\n",
+ samplesabove99pct, samplesabove99pct * 100. / (totalrd/4));
+ printw(" Really too loud (clipped) samples : %9ld (%5.1f%%)\n",
+ samplestooloud, samplestooloud * 100. / (totalrd/4));
+
+ } else {
+ printw(" Recording has terminated due to an error.\n");
+ printw(" Operating system reports: %s\n", strerror(err));
+ }
#if 0
/* The computation of the avg volume is not simple. One approach
@@ -379,6 +399,11 @@ void shmrec(int outfd, long totalcount,
3, strlen (ok_button.text) + 2);
move (0, 79);
refresh();
+
+ /* Tell parent to stop recording */
+ if (err)
+ kill(getppid(), SIGUSR1);
+
#endif
exit(0);
@@ -389,9 +414,10 @@ void shmrec(int outfd, long totalcount,
int cbuff = 0;
long totalrd = 0;
- int stoprecording=0;
int in_ch;
+ signal(SIGUSR1, childerrhandler);
+
while (totalrd < totalcount && !stoprecording)
{
long trgt, count, numrd;
@@ -401,11 +427,15 @@ void shmrec(int outfd, long totalcount,
trgt = abuf_size;
/* Get the buffer. Blocks until OK to do so */
down(sndsemid, cbuff);
+ if (stoprecording)
+ break;
+
/* Read a block of data */
numrd = 0;
tmpptr = buffarr[cbuff];
while( (numrd < trgt) &&
- ((count = read(audio, tmpptr, trgt - numrd)) > 0) )
+ ((count = read(audio, tmpptr, trgt - numrd)) > 0) &&
+ !stoprecording)
{
numrd += count;
tmpptr += count;
@@ -674,3 +704,8 @@ static void sighandler(int i)
finish_curses(1);
exit(1);
}
+
+static void childerrhandler(int i)
+{
+ stoprecording = 1;
+}
++++++ gramofile.1 ++++++
.\" GramoFile -- Sample and process analog recordings
.\" Copyright (c) 2001 Daniel Kobras
.\"
.\" This manual page 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 2 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, write to the Free Software
.\" Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\"
.\" This manual page was written especially for Debian Linux.
.\"
.TH GRAMOFILE 1 "17 September 2001" "Version 1.6"
.SH NAME
gramofile \- Sample and process analog recordings
.SH SYNOPSIS
.B gramofile
.SH DESCRIPTION
\fBGramoFile\fR provides an interactive, integrated front end to sample audio
data from gramophone records or similar sources, to analyse and enhance
them. While being text-based, it uses a menu system that yields easy
access to individual functions. Highlights include a mode for automatic
detection and splitting of single tracks from a larger recording, and
several filters to reduce ticks and other noise in the audio data. An
integrated help system offers context sensitive information.
.SH "OTHER INFO"
The official \fBGramoFile\fR web page is located at
\fIhttp://www.opensourcepartners.nl/~costar/gramofile/\fR. Technical details on some
of the filters can be found in the documentation accompanying \fBGramoFile\fR,
usually located in \fI/usr/share/doc/gramofile/\fR.
.SH "KNOWN BUGS"
This man page had better contain less marketing speak, but some actual
information on use of the program.
.SH AUTHORS
\fBGramoFile\fR was written by J.A. Bezemer