[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#676372: marked as done (API breakage)



Your message dated Thu, 14 Jun 2012 08:55:08 +0200
with message-id <20120614065508.GA18080@wavehammer.waldi.eu.org>
and subject line Re: Bug#676372: API breakage
has caused the Debian Bug report #676372,
regarding API breakage
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 owner@bugs.debian.org
immediately.)


-- 
676372: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676372
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libdebian-installer4
Version: 0.80
Severity: serious
File: /usr/lib/libdebian-installer.so.4

At some point between squeeze and wheezy the declaration of
di_release_file.sum has changed from char * to char **. This breaks
the API making it impossible to compile software (e.g. cdebootstrap)
for stable and testing/unstable without ugly hacks. For example in
cdebootstrap the following code is needed:

 if (sizeof(item->sum[0]) == sizeof(char*)) { 
    if (item->sum[1]) 
      return check_sum (target, "sha1sum", (const char*)(intptr_t)item->sum[1],
		        buf_name); 
    if (item->sum[0]) 
      return check_sum (target, "md5sum", (const char*)(intptr_t)item->sum[0],
			buf_name); 
  } else { 
    return check_sum (target, "md5sum", (const char*)item->sum,
		      buf_name); 
  } 

This is an API and ABI breakage requiring a rename to
libdebian-installter5[-dev].


Alternatively change the declaration of struct di_release_file to

struct di_release_file
{
  union
  {
    char *filename;                             /**< filename */
    di_rstring key;                             /**< @internal */
  };
  unsigned int size;                            /**< size */
  char *sum;                                    /**< checksum, currently md5 or sha */
  char *sums[2];                                 /**< checksums, currently md5 and sha1 */
};

filling both sum and sums.

It would be nice to also have some define declared so sources can
check if di_release_file.sums is available. Something simpler than
having to compare the LIBDI_VERSION like

#define DEBIAN_INSTALLER__RELEASE_MULTISUM 1
#define DEBIAN_INSTALLER__RELEASE_SUM0 md5
#define DEBIAN_INSTALLER__RELEASE_SUM1 sha1

MfG
	Goswin

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash

Versions of packages libdebian-installer4 depends on:
ii  libc6  2.13-32

libdebian-installer4 recommends no packages.

libdebian-installer4 suggests no packages.

-- no debconf information



--- End Message ---
--- Begin Message ---
On Wed, Jun 06, 2012 at 04:22:11PM +0200, Goswin von Brederlow wrote:
> This is an API and ABI breakage requiring a rename to
> libdebian-installter5[-dev].

This is only an API breakage and I will not do anything about it.

Bastian

-- 
What kind of love is that?  Not to be loved; never to have shown love.
		-- Commissioner Nancy Hedford, "Metamorphosis",
		   stardate 3219.8


--- End Message ---

Reply to: