Package: gonzui
Version: 1.2+cvs20070129-1
Severity: normal
Tags: patch

Due to API changes, your package does not work with libdb-ruby 0.6.4
(currently only in unstable).  The problem is that the method
BDB::{Btree,Recno,…}#duplicates has changed its semantics and signature:
Instead of returning an array of duplicate values, it returns an array
of arrays containing the duplicate values in the first position.  When
adding a second false parameter, though, the old behavior is restored.

The attached patch works around this problem and stays compatible with
the older versions of the Ruby BDB library (for gonzui, this is
libdb4.3-ruby1.8).  It works fine; feel free to re-write it in a more
efficient manner, though.

This bug might become release critical, depending on the release team’s
final decision on [1] and the migration speed of libdb-ruby.

[1] http://lists.debian.org/debian-release/2008/08/msg00401.html

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

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

Versions of packages gonzui depends on:
ii  libc6                  2.7-13            GNU C Library: Shared libraries
ii  libdb-ruby1.8 [libdb4. 0.6.4-1           Interface to Berkeley DB for Ruby 
pn  libiconv-ruby1.8       <none>            (no description available)
ii  liblangscan-ruby       1.2+cvs20070125-1 Ruby module of scanners for progra
ii  libruby1.8 [libzlib-ru 1.8.7.22-2        Libraries necessary to run Ruby 1.
pn  libstrscan-ruby1.8     <none>            (no description available)
pn  libwebrick-ruby1.8     <none>            (no description available)
ii  ruby                   4.2               An interpreter of object-oriented 
ii  ruby1.8                1.8.7.22-2        Interpreter of object-oriented scr

gonzui recommends no packages.

Versions of packages gonzui suggests:
ii  bzip2                       1.0.5-0.1    high-quality block-sorting file co
ii  cvs                         1:1.12.13-11 Concurrent Versions System
pn  libppi-perl                 <none>       (no description available)
pn  libprogressbar-ruby1.8      <none>       (no description available)
pn  rpm                         <none>       (no description available)
ii  subversion                  1.5.1dfsg1-1 Advanced version control system
ii  unzip                       5.52-12      De-archiver for .zip files

-- no debconf information

Best regards,
-- 
Michael Schutte <[EMAIL PROTECTED]>
Index: gonzui-1.2+cvs20070129/gonzui/dbm.rb
===================================================================
--- gonzui-1.2+cvs20070129.orig/gonzui/dbm.rb	2008-08-09 12:17:20.000000000 +0200
+++ gonzui-1.2+cvs20070129/gonzui/dbm.rb	2008-08-09 12:56:07.000000000 +0200
@@ -453,7 +453,7 @@
     end
 
     def get_format_ids_from_package_id(package_id)
-      @pkgid_fmtids.duplicates(package_id)
+      @pkgid_fmtids.copies(package_id)
     end
 
     def get_format_name(format_id)
@@ -473,7 +473,7 @@
     end
 
     def get_license_ids_from_package_id(package_id)
-      @pkgid_lcsids.duplicates(package_id)
+      @pkgid_lcsids.copies(package_id)
     end
 
     def get_license_name(license_id)
@@ -502,7 +502,7 @@
 
     def get_ncontents_in_package(package_name)
       package_id = get_package_id(package_name)
-      @pkgid_pathids.duplicates(package_id).length
+      @pkgid_pathids.copies(package_id).length
     end
 
     def get_nformats
@@ -530,7 +530,7 @@
     end
 
     def get_package_ids(word_id)
-      @wordid_pkgids.duplicates(word_id)
+      @wordid_pkgids.copies(word_id)
     end
 
     def get_package_name(package_id)
@@ -543,7 +543,7 @@
 
     def get_package_options(package_id)
       options = {}
-      values = @pkgid_options.duplicates(package_id)
+      values = @pkgid_options.copies(package_id)
       values.each {|value|
         k, v = value.split(":", 2)
         k = k.intern
@@ -571,12 +571,12 @@
     end
 
     def get_path_ids(package_id)
-      @pkgid_pathids.duplicates(package_id)
+      @pkgid_pathids.copies(package_id)
     end
 
     def get_path_ids_from_package_and_word_id(package_id, word_id)
       package_word_id = AutoPack.pack_id2(package_id, word_id)
-      return @pkgwordid_pathids.duplicates(package_word_id)
+      return @pkgwordid_pathids.copies(package_word_id)
     end
 
     def get_source_uri(package_id)
Index: gonzui-1.2+cvs20070129/gonzui/bdbdbm.rb
===================================================================
--- gonzui-1.2+cvs20070129.orig/gonzui/bdbdbm.rb	2008-08-09 12:17:35.000000000 +0200
+++ gonzui-1.2+cvs20070129/gonzui/bdbdbm.rb	2008-08-09 12:54:44.000000000 +0200
@@ -74,6 +74,12 @@
   end
 
   module BDBExtension
+    def copies(val)
+      duplicates val, false
+    rescue
+      duplicates val
+    end
+
     def each_by_prefix(prefix)
       values = []
       cursor = self.cursor

Attachment: signature.asc
Description: Digital signature

Reply via email to