Your message dated Fri, 07 Mar 2008 12:17:04 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#457805: fixed in cdrdao 1:1.2.2-12
has caused the Debian Bug report #457805,
regarding cdrdao: Patch to allow toc2mp3 to be added to package
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
457805: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=457805
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: cdrdao
Version: 1:1.2.2-7
Severity: normal
Tags: patch

I attach a patch to toc2mp3 to dlopen lame, without needing any part
of LAME while building, so that toc2mp3 can be distributed.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (700, 'testing'), (600, 'experimental'), (600, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-3-686 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages cdrdao depends on:
ii  libao2                      0.8.8-3      Cross Platform Audio Output Librar
ii  libc6                       2.7-4        GNU C Library: Shared libraries
ii  libgcc1                     1:4.2.2-4    GCC support library
ii  libogg0                     1.1.3-2      Ogg Bitstream Library
ii  libstdc++6                  4.2.2-4      The GNU Standard C++ Library v3
ii  libvorbis0a                 1.2.0.dfsg-2 The Vorbis General Audio Compressi
ii  libvorbisfile3              1.2.0.dfsg-2 The Vorbis General Audio Compressi

cdrdao recommends no packages.

-- no debconf information
diff -Nur cdrdao-1.2.2/utils/Makefile.am cdrdao-1.2.2-dlopen-lame/utils/Makefile.am
--- cdrdao-1.2.2/utils/Makefile.am	2005-04-22 03:01:47.000000000 +0100
+++ cdrdao-1.2.2-dlopen-lame/utils/Makefile.am	2006-11-22 03:27:40.000000000 +0000
@@ -13,7 +13,7 @@
 
 toc2cddb_LDADD = -L$(top_builddir)/trackdb -ltrackdb
 toc2cue_LDADD = -L$(top_builddir)/trackdb -ltrackdb
-toc2mp3_LDADD = -L$(top_builddir)/trackdb -ltrackdb @LAME_LIBS@
+toc2mp3_LDADD = -L$(top_builddir)/trackdb -ltrackdb -lmad -lm
 
 if COND_MP3
 toc2cddb_LDADD += @MAD_LIBS@
diff -Nur cdrdao-1.2.2/utils/toc2mp3.cc cdrdao-1.2.2-dlopen-lame/utils/toc2mp3.cc
--- cdrdao-1.2.2/utils/toc2mp3.cc	2003-02-22 10:16:56.000000000 +0000
+++ cdrdao-1.2.2-dlopen-lame/utils/toc2mp3.cc	2006-11-22 03:26:49.000000000 +0000
@@ -33,8 +33,6 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#include <lame/lame.h>
-
 #include "util.h"
 #include "Toc.h"
 #include "CdTextItem.h"
@@ -47,6 +45,101 @@
 static int CREATE_ALBUM_DIRECTORY = 0;
 static std::string TARGET_DIRECTORY;
 
+#include <dlfcn.h>
+ 
+#define STEREO 0
+#define LAME_MAXMP3BUFFER   16384
+
+typedef void *lame_global_flags;
+static lame_global_flags *(*dl_lame_init)(void);
+typedef void lame_msgfun(const char *fmt, va_list args);
+static void (*dl_lame_set_msgf)(lame_global_flags *lf, lame_msgfun *f);
+static void (*dl_lame_set_debugf)(lame_global_flags *lf, lame_msgfun *f);
+static void (*dl_lame_set_errorf)(lame_global_flags *lf, lame_msgfun *f);
+static void (*dl_lame_set_in_samplerate)(lame_global_flags *lf, int rate);
+static void (*dl_lame_set_num_channels)(lame_global_flags *lf, int chans);
+static void (*dl_lame_set_quality)(lame_global_flags *lf, int q);
+static void (*dl_lame_set_mode)(lame_global_flags *lf, int mode);
+static void (*dl_lame_set_brate)(lame_global_flags *lf, int bitrate);
+static int (*dl_lame_encode_buffer)(lame_global_flags *lf, short int *leftSamples, short int *rightSamples, int samples, unsigned char *mp3buffer, int bufsize);
+static int (*dl_lame_encode_flush_nogap)(lame_global_flags *lf, unsigned char *mp3buffer, int bufsize);
+static void (*dl_lame_mp3_tags_fid)(lame_global_flags *lf, FILE *fp);
+static int (*dl_lame_init_params)(lame_global_flags *lf);
+static void (*dl_lame_print_config)(lame_global_flags *lf);
+static void (*dl_lame_print_internals)(lame_global_flags *lf);
+static int (*dl_lame_init_bitstream)(lame_global_flags *lf);
+static void (*dl_lame_close)(lame_global_flags *lf);
+static char *(*dl_get_lame_version)(void);
+static int (*dl_bitrate_table)[3][16];
+static void (*dl_id3tag_init)(lame_global_flags *lf);
+static void (*dl_id3tag_add_v2)(lame_global_flags *lf);
+static void (*dl_id3tag_set_title)(lame_global_flags *lf, const char *title);
+static void (*dl_id3tag_set_artist)(lame_global_flags *lf, const char *artist);
+static void (*dl_id3tag_set_album)(lame_global_flags *lf, const char *album);
+static void (*dl_id3tag_set_track)(lame_global_flags *lf, const char *track);
+
+static int load_lame(void) {
+  static int loaded=0;
+  void *library;
+
+  if (loaded) return 0;
+
+  library = dlopen("libmp3lame.so", RTLD_NOW);
+
+  if (!(dl_lame_init = (lame_global_flags *(*)(void))dlsym(library, "lame_init")))
+    return -1;
+  if (!(dl_lame_set_msgf = (void (*)(lame_global_flags *, lame_msgfun *))dlsym(library, "lame_set_msgf")))
+    return -1;
+  if (!(dl_lame_set_debugf = (void (*)(lame_global_flags *, lame_msgfun *))dlsym(library, "lame_set_debugf")))
+    return -1;
+  if (!(dl_lame_set_errorf = (void (*)(lame_global_flags *, lame_msgfun *))dlsym(library, "lame_set_errorf")))
+    return -1;
+  if (!(dl_lame_set_in_samplerate = (void (*)(lame_global_flags *, int))dlsym(library, "lame_set_in_samplerate")))
+    return -1;
+  if (!(dl_lame_set_num_channels = (void (*)(lame_global_flags *, int))dlsym(library, "lame_set_num_channels")))
+    return -1;
+  if (!(dl_lame_set_quality = (void (*)(lame_global_flags *, int))dlsym(library, "lame_set_quality")))
+    return -1;
+  if (!(dl_lame_set_mode = (void (*)(lame_global_flags *, int))dlsym(library, "lame_set_mode")))
+    return -1;
+  if (!(dl_lame_set_brate = (void (*)(lame_global_flags *, int))dlsym(library, "lame_set_brate")))
+    return -1;
+  if (!(dl_lame_encode_buffer = (int (*)(lame_global_flags *, short int *, short int *, int, unsigned char *, int))dlsym(library, "lame_encode_buffer")))
+    return -1;
+  if (!(dl_lame_encode_flush_nogap = (int (*)(lame_global_flags *, unsigned char *, int))dlsym(library, "lame_encode_flush_nogap")))
+    return -1;
+  if (!(dl_lame_mp3_tags_fid = (void (*)(lame_global_flags *, FILE *))dlsym(library, "lame_mp3_tags_fid")))
+    return -1;
+  if (!(dl_lame_init_params = (int (*)(lame_global_flags *))dlsym(library, "lame_init_params")))
+    return -1;
+  if (!(dl_lame_print_config = (void (*)(lame_global_flags *))dlsym(library, "lame_print_config")))
+    return -1;
+  if (!(dl_lame_print_internals = (void (*)(lame_global_flags *))dlsym(library, "lame_print_internals")))
+    return -1;
+  if (!(dl_lame_init_bitstream = (int (*)(lame_global_flags *))dlsym(library, "lame_init_bitstream")))
+    return -1;
+  if (!(dl_lame_close = (void (*)(lame_global_flags *))dlsym(library, "lame_close")))
+    return -1;
+  if (!(dl_get_lame_version = (char * (*)(void))dlsym(library, "get_lame_version")))
+    return -1;
+  if (!(dl_bitrate_table = (int (*)[3][16])dlsym(library, "bitrate_table")))
+    return -1;
+  if (!(dl_id3tag_init = (void (*)(lame_global_flags *))dlsym(library, "id3tag_init")))
+    return -1;
+  if (!(dl_id3tag_add_v2 = (void (*)(lame_global_flags *lf))dlsym(library, "id3tag_add_v2")))
+    return -1;
+  if (!(dl_id3tag_set_title = (void (*)(lame_global_flags *, const char *))dlsym(library, "id3tag_set_title")))
+    return -1;
+  if (!(dl_id3tag_set_artist = (void (*)(lame_global_flags *, const char *))dlsym(library, "id3tag_set_artist")))
+    return -1;
+  if (!(dl_id3tag_set_album = (void (*)(lame_global_flags *, const char *))dlsym(library, "id3tag_set_album")))
+    return -1;
+  if (!(dl_id3tag_set_track = (void (*)(lame_global_flags *, const char *))dlsym(library, "id3tag_set_track")))
+    return -1;
+
+  loaded++;
+  return 0;
+}
 
 void message_args(int level, int addNewLine, const char *fmt, va_list args)
 {
@@ -141,10 +234,10 @@
 
   message(0, "");
 
-  message(0, "LAME encoder version: %s", get_lame_version());
+  message(0, "LAME encoder version: %s", dl_get_lame_version());
   message(0, "Supported bit rates: ");
-  for (int i = 0; i < 16 && bitrate_table[1][i] >= 0; i++) {
-    message(0, "%d ", bitrate_table[1][i]);
+  for (int i = 0; i < 16 && (*dl_bitrate_table)[1][i] >= 0; i++) {
+    message(0, "%d ", (*dl_bitrate_table)[1][i]);
   }
   message(0, "");
 }
@@ -238,8 +331,8 @@
   lame_global_flags *lf;
   int bitrateOk = 0;
 
-  for (int i = 0; bitrate_table[1][i] >= 0 && !bitrateOk; i++) {
-    if (bitrate == bitrate_table[1][i])
+  for (int i = 0; (*dl_bitrate_table)[1][i] >= 0 && !bitrateOk; i++) {
+    if (bitrate == (*dl_bitrate_table)[1][i])
       bitrateOk = 1;
   }
 
@@ -248,23 +341,23 @@
     return NULL;
   }
 
-  if ((lf = lame_init()) == NULL) {
+  if ((lf = dl_lame_init()) == NULL) {
     return NULL;
   }
 
-  lame_set_msgf(lf, lame_message);
-  lame_set_debugf(lf, lame_message);
-  lame_set_errorf(lf, lame_error_message);
+  dl_lame_set_msgf(lf, lame_message);
+  dl_lame_set_debugf(lf, lame_message);
+  dl_lame_set_errorf(lf, lame_error_message);
 
-  lame_set_in_samplerate(lf, 44100);
+  dl_lame_set_in_samplerate(lf, 44100);
 
-  lame_set_num_channels(lf, 2);
+  dl_lame_set_num_channels(lf, 2);
 
-  lame_set_quality(lf, 2);
+  dl_lame_set_quality(lf, 2);
 
-  lame_set_mode(lf, STEREO);
+  dl_lame_set_mode(lf, STEREO);
 
-  lame_set_brate(lf, bitrate);
+  dl_lame_set_brate(lf, bitrate);
   
   //lame_set_VBR(lf, vbr_abr);
 
@@ -287,22 +380,22 @@
 {
   char buf[100];
 
-  id3tag_init(lf);
+  dl_id3tag_init(lf);
 
-  id3tag_add_v2(lf);
+  dl_id3tag_add_v2(lf);
 
   if (!title.empty())
-    id3tag_set_title(lf, title.c_str());
+    dl_id3tag_set_title(lf, title.c_str());
 
   if (!artist.empty())
-    id3tag_set_artist(lf, artist.c_str());
+    dl_id3tag_set_artist(lf, artist.c_str());
 
   if (!album.empty())
-    id3tag_set_album(lf, album.c_str());
+    dl_id3tag_set_album(lf, album.c_str());
 
   if (tracknr > 0 && tracknr <= 255) {
     sprintf(buf, "%d", tracknr);
-    id3tag_set_track(lf, buf);
+    dl_id3tag_set_track(lf, buf);
   }
 }
 
@@ -346,7 +439,7 @@
       rightSamples[i] = audioData[i].right();
     }
 
-    int count = lame_encode_buffer(lf, leftSamples, rightSamples,
+    int count = dl_lame_encode_buffer(lf, leftSamples, rightSamples,
 				   SAMPLES_PER_BLOCK, mp3buffer,
 				   sizeof(mp3buffer));
 
@@ -368,7 +461,7 @@
   }
     
   if (ret != 0) {
-    int count = lame_encode_flush_nogap(lf, mp3buffer, sizeof(mp3buffer));
+    int count = dl_lame_encode_flush_nogap(lf, mp3buffer, sizeof(mp3buffer));
 
     if (count > 0) {
       if (fullWrite(fd, mp3buffer, count) != count) {
@@ -387,7 +480,7 @@
     FILE *fp = fopen(fileName.c_str(), "a+");
 
     if (fp != NULL) {
-      lame_mp3_tags_fid(lf, fp);
+      dl_lame_mp3_tags_fid(lf, fp);
       fclose(fp);
     }
     else {
@@ -449,6 +542,9 @@
 
   PRGNAME = *argv;
 
+  if (load_lame())
+     message(-10, "Cannot load libmp3lame.so");
+
   switch (parseCommandLine(argc, argv, &tocFile, &bitrate)) {
   case 0:
     printUsage();
@@ -600,17 +696,17 @@
 	set_id3_tags(lf, trackNr, title, performer, album);
 
 	if (firstEncodedTrack) {
-	  if (lame_init_params(lf) < 0) {
+	  if (dl_lame_init_params(lf) < 0) {
 	    message(-2, "Setting of lame parameters failed");
 	    err = 1;
 	    break;
 	  }
 	  message(1, "Lame encoder settings:");
-	  lame_print_config(lf);
+	  dl_lame_print_config(lf);
 	  message(1, "Selected bit rate: %d kbit/s", bitrate);
 
 	  if (VERBOSE >= 2)
-	    lame_print_internals(lf);
+	    dl_lame_print_internals(lf);
 
 	  message(1, "");
 
@@ -621,7 +717,7 @@
 	  firstEncodedTrack = 0;
 	}
 	else {
-	  if (lame_init_bitstream(lf) != 0) {
+	  if (dl_lame_init_bitstream(lf) != 0) {
 	    message(-2, "Cannot initialize bit stream.");
 	    err = 1;
 	    break;
@@ -648,7 +744,7 @@
       nextTrack = titr.next(nstart, nend);
   }
 
-  lame_close(lf);
+  dl_lame_close(lf);
 
   exit(err);
 }

--- End Message ---
--- Begin Message ---
Source: cdrdao
Source-Version: 1:1.2.2-12

We believe that the bug you reported is fixed in the latest version of
cdrdao, which is due to be installed in the Debian FTP archive:

cdrdao_1.2.2-12.diff.gz
  to pool/main/c/cdrdao/cdrdao_1.2.2-12.diff.gz
cdrdao_1.2.2-12.dsc
  to pool/main/c/cdrdao/cdrdao_1.2.2-12.dsc
cdrdao_1.2.2-12_i386.deb
  to pool/main/c/cdrdao/cdrdao_1.2.2-12_i386.deb
gcdmaster_1.2.2-12_i386.deb
  to pool/main/c/cdrdao/gcdmaster_1.2.2-12_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Daniel Baumann <[EMAIL PROTECTED]> (supplier of updated cdrdao package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Fri,  7 Mar 2008 12:12:00 +0100
Source: cdrdao
Binary: cdrdao gcdmaster
Architecture: source i386
Version: 1:1.2.2-12
Distribution: unstable
Urgency: medium
Maintainer: Daniel Baumann <[EMAIL PROTECTED]>
Changed-By: Daniel Baumann <[EMAIL PROTECTED]>
Description: 
 cdrdao     - records CDs in Disk-At-Once (DAO) mode
 gcdmaster  - GNOME GUI for cdrdao
Closes: 455309 457805 460191
Changes: 
 cdrdao (1:1.2.2-12) unstable; urgency=medium
 .
   * Applied patch from Reuben Thomas <[EMAIL PROTECTED]> to toc2mp3 to dlopen 
lame,
     without needing any part of LAME while building, so that toc2mp3 can be
     distributed (Closes: #457805).
   * Updated patch to fix build failures with g++-4.3 (Closes: #455309).
   * Fixed spelling mistake in package description.
   * Removing even more of that shily buildsystem stuff in clean target,
     hopefully fixes the FTBFS caused by that on alpha (Closes: #460191).
Files: 
 4b54d9c2abb630573cd4de032655b582 708 otherosfs optional cdrdao_1.2.2-12.dsc
 69dec9d397411aeb4bd2a5c85f356ae4 55506 otherosfs optional 
cdrdao_1.2.2-12.diff.gz
 5428b6ec60663468bc1a1e22fcc454af 428392 otherosfs optional 
cdrdao_1.2.2-12_i386.deb
 4564fb39117c8c97b7e5cf826cad6aed 497006 sound optional 
gcdmaster_1.2.2-12_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFH0S/p+C5cwEsrK54RAjbnAJ9kT9Epflw5KN9HeaLquktYYJsi9ACgnFp3
aSHRsrZ88B+k84McLrw6dl0=
=uRQl
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to