--- cd-discid-0.6.orig/Makefile
+++ cd-discid-0.6/Makefile
@@ -0,0 +1,41 @@
+VERSION = 0.6
+CC = gcc
+CFLAGS = -g -O2
+LDFLAGS =
+LIBS = 
+DEFS =  
+INSTALL = /usr/bin/install -c
+
+# Installation directories
+prefix = ${DESTDIR}/usr
+exec_prefix = ${prefix}
+mandir = ${prefix}/share/man/man1
+bindir = ${exec_prefix}/bin
+etcdir = ${DESTDIR}/etc
+
+INCL = 
+SRCS = cd-discid.c
+OBJS = $(SRCS:.c=.o)
+
+.SUFFIXES: .c .o
+
+.c.o:
+	$(CC) $(DEFS) $(CFLAGS) -c $<
+
+all: cd-discid
+
+cd-discid: $(OBJS)
+	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+clean:
+	rm -f *~ *.o core cd-discid
+
+install: cd-discid
+	$(INSTALL) -d -m 755 $(bindir)
+	$(INSTALL) -s -m 755 -o 0 cd-discid $(bindir)
+	$(INSTALL) -d -m 755 $(mandir)
+	$(INSTALL) -m 644 -o 0 cd-discid.1 $(mandir)
+
+tarball:
+	@cd .. && tar czvf cd-discid_$(VERSION).orig.tar.gz \
+		cd-discid-$(VERSION)/{COPYING,README,cd-discid.1,cd-discid.c,changelog}
--- cd-discid-0.6.orig/debian/changelog
+++ cd-discid-0.6/debian/changelog
@@ -0,0 +1,43 @@
+cd-discid (0.6-1) unstable; urgency=low
+
+  * OpenBSD support, thanks to Marcus Daniel <danielm@uni-muenster.de>
+
+ -- Robert Woodcock <rcw@debian.org>  Thu,  8 Feb 2001 21:33:23 -0800
+
+cd-discid (0.5-1) unstable; urgency=low
+
+  * FreeBSD support, thanks to Niels Bakker
+
+ -- Robert Woodcock <rcw@debian.org>  Wed, 18 Oct 2000 20:21:05 -0700
+
+cd-discid (0.4-1) unstable; urgency=low
+
+  * Now opens cdrom device with O_RDONLY | O_NONBLOCK for better
+    compatibility, thanks to Tommy U. Schonfeld
+  * Removed the last references to cdgrab
+  * Prints device name on failure (this can be handy for abcde users
+    who aren't aware of the default device)
+
+ -- Robert Woodcock <rcw@debian.org>  Sun, 14 May 2000 10:34:50 -0700
+
+cd-discid (0.3-1) unstable; urgency=low
+
+  * Now compiles on Solaris, thanks to David Champion
+
+ -- Robert Woodcock <rcw@debian.org>  Sat, 18 Mar 2000 03:20:13 -0800
+
+cd-discid (0.2-2) unstable; urgency=low
+
+  * FHS compliance.
+
+ -- Robert Woodcock <rcw@debian.org>  Mon, 11 Oct 1999 22:35:25 -0700
+
+cd-discid (0.2-1) unstable; urgency=low
+
+  * Split off from the cdgrab package.
+
+ -- Robert Woodcock <rcw@debian.org>  Fri,  7 May 1999 20:18:36 -0700
+
+Local variables:
+mode: debian-changelog
+End:
--- cd-discid-0.6.orig/debian/copyright
+++ cd-discid-0.6/debian/copyright
@@ -0,0 +1,16 @@
+This package was debianized by Robert Woodcock <rcw@debian.org> on
+Fri,  7 May 1999 20:20:14 -0700
+
+It is made available at: http://frantica.lly.org/~rcw/cd-discid/
+
+Upstream Author: me :)
+
+Copyright:
+
+Copyright (c) 1998,1999 Robert Woodcock <rcw@debian.org>
+This code is hereby licensed for public consumption under either the
+GNU GPL v2 or greater, or Larry Wall's Artistic license - your choice.
+
+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.
--- cd-discid-0.6.orig/debian/dirs
+++ cd-discid-0.6/debian/dirs
@@ -0,0 +1 @@
+usr/bin
--- cd-discid-0.6.orig/debian/docs
+++ cd-discid-0.6/debian/docs
@@ -0,0 +1 @@
+README
--- cd-discid-0.6.orig/debian/control
+++ cd-discid-0.6/debian/control
@@ -0,0 +1,13 @@
+Source: cd-discid
+Section: sound
+Priority: optional
+Maintainer: Robert Woodcock <rcw@debian.org>
+Standards-Version: 2.5.0
+
+Package: cd-discid
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: cdgrab (<< 0.7)
+Description: CDDB DiscID utility
+ cd-discid is a backend utility to get CDDB discid information from a CD-ROM
+ disc.
--- cd-discid-0.6.orig/debian/rules
+++ cd-discid-0.6/debian/rules
@@ -0,0 +1,75 @@
+#!/usr/bin/make -f
+#-*- makefile -*-
+# Made with the aid of dh_make, by Craig Small
+# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
+# Some lines taken from debmake, by Christoph Lameter.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build: build-stamp
+build-stamp:
+	dh_testdir
+
+	
+	# Add here commands to compile the package.
+	$(MAKE) 
+
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp install-stamp
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) clean
+
+	dh_clean
+
+install: install-stamp
+install-stamp: build-stamp
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp.
+	$(MAKE) install DESTDIR=`pwd`/debian/tmp
+
+	touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+#	dh_testversion
+	dh_testdir
+	dh_testroot
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installemacsen
+#	dh_installinit
+	dh_installcron
+	dh_installmanpages
+#	dh_undocumented
+	dh_installchangelogs changelog
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_makeshlibs
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+source diff:                                                                  
+	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- cd-discid-0.6.orig/cd-discid.c.patch
+++ cd-discid-0.6/cd-discid.c.patch
@@ -0,0 +1,167 @@
+*** cd-discid.c.orig	Tue Jan 30 19:33:57 2001
+--- cd-discid.c.newall	Thu Feb  1 11:29:41 2001
+***************
+*** 41,49 ****
+  #define        cdte_addr       entry.addr
+  
+  #else
+  # error "Your OS isn't supported yet."
+  #endif	/* os selection */
+  
+! struct cdrom_tocentry TocEntry[101];
+  
+  int cddb_sum (int n)
+--- 41,65 ----
+  #define        cdte_addr       entry.addr
+  
++ /* OpenBSD port by Marcus Daniel <danielm@uni-muenster.de> */
++ #elif defined(__OpenBSD__)
++ #include <sys/cdio.h>
++ #define        CDROM_LBA       CD_LBA_FORMAT   /* first frame is 0 */
++ #define        CD_MSF_OFFSET   150     /* MSF offset of first frame */
++ #define        CD_FRAMES       75      /* per second */
++ #define        CDROM_LEADOUT   0xAA    /* leadout track */
++ #define        CDROMREADTOCHDR         CDIOREADTOCHEADER
++ #define        cdrom_tochdr    ioc_toc_header
++ #define        cdth_trk0       starting_track
++ #define        cdth_trk1       ending_track
++ #define        cdrom_tocentry  cd_toc_entry
++ #define        cdte_track      track
++ #define        cdte_addr       addr
++ 
++ 
+  #else
+  # error "Your OS isn't supported yet."
+  #endif	/* os selection */
+  
+! struct cdrom_tocentry *TocEntry;
+  
+  int cddb_sum (int n)
+***************
+*** 62,65 ****
+--- 78,85 ----
+  int main(int argc, char *argv[])
+  {
++ #if defined(__OpenBSD__)
++ 	struct ioc_read_toc_entry t;
++ #endif
++ 	int len;
+  	int drive, i, totaltime;
+  	long int cksum=0;
+***************
+*** 88,93 ****
+  	last=hdr.cdth_trk1;
+  
+! 	for (i=1; i<=last; i++) {
+! 		TocEntry[i].cdte_track = i;
+  		TocEntry[i].cdte_format = CDROM_LBA;
+  		if (ioctl(drive, CDROMREADTOCENTRY, &TocEntry[i]) < 0) {
+--- 108,136 ----
+  	last=hdr.cdth_trk1;
+  
+! 	len = (last + 1) * sizeof (struct cdrom_tocentry);
+! 	if (TocEntry) {
+! 	  free(TocEntry);
+! 	  TocEntry = 0;
+! 	}
+! 	TocEntry = malloc (len);
+! 	if (!TocEntry) {
+! 	  printf("Can't allocate memory for TOC entries\n");
+! 	  return (-1);
+! 	}
+! 
+! #if defined(__OpenBSD__)
+! 	t.address_format = CDROM_LBA;
+! 	t.starting_track = 0;
+! 	t.data_len = len;
+! 	t.data = TocEntry;
+! 
+! 	if (ioctl(drive, CDIOREADTOCENTRYS, (char *) &t) < 0) {
+! 		fprintf(stderr, "cd-discid: %s: ", argv[1]);
+! 		perror("CDIOREADTOCENTRYS");
+! 	}	
+! #else
+! 
+! 	for (i=0; i < last; i++) {
+! 		TocEntry[i].cdte_track = i + 1; /* tracks start with 1, but i starts with 0 because of OpenBSD */
+  		TocEntry[i].cdte_format = CDROM_LBA;
+  		if (ioctl(drive, CDROMREADTOCENTRY, &TocEntry[i]) < 0) {
+***************
+*** 96,106 ****
+  		}
+  	}
+! 	
+! 	TocEntry[last+1].cdte_track = CDROM_LEADOUT;
+! 	TocEntry[last+1].cdte_format = CDROM_LBA;
+  	if (ioctl(drive, CDROMREADTOCENTRY, &TocEntry[i]) < 0) {
+  		fprintf(stderr, "cd-discid: %s: ", argv[1]);
+  		perror("CDROMREADTOCENTRY");
+  	}
+  
+  #if defined(__FreeBSD__)
+--- 139,150 ----
+  		}
+  	}
+! 
+! 	TocEntry[last].cdte_track = CDROM_LEADOUT;
+! 	TocEntry[last].cdte_format = CDROM_LBA;
+  	if (ioctl(drive, CDROMREADTOCENTRY, &TocEntry[i]) < 0) {
+  		fprintf(stderr, "cd-discid: %s: ", argv[1]);
+  		perror("CDROMREADTOCENTRY");
+  	}
++ #endif
+  
+  #if defined(__FreeBSD__)
+***************
+*** 108,120 ****
+  #endif
+  
+! 	for (i=1; i<last+1; i++) {
+  #if defined(__FreeBSD__)
+  		TocEntry[i].cdte_addr.lba = ntohl(TocEntry[i].cdte_addr.lba);
+  #endif
+  		cksum += cddb_sum((TocEntry[i].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  	}
+  
+! 	totaltime = ((TocEntry[last+1].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES) -
+! 		    ((TocEntry[1].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  
+  	/* print discid */
+--- 152,165 ----
+  #endif
+  
+! 	for (i=0; i < last; i++) {
+  #if defined(__FreeBSD__)
+  		TocEntry[i].cdte_addr.lba = ntohl(TocEntry[i].cdte_addr.lba);
++ 		
+  #endif
+  		cksum += cddb_sum((TocEntry[i].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  	}
+  
+! 	totaltime = ((TocEntry[last].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES) -
+! 		    ((TocEntry[0].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  
+  	/* print discid */
+***************
+*** 125,134 ****
+  
+  	/* print frame offsets of all tracks */
+! 	for (i = 1; i <= last; i++) {
+  		printf(" %d", TocEntry[i].cdte_addr.lba + CD_MSF_OFFSET);
+  	}
+  	
+  	/* print length of disc in seconds */
+! 	printf(" %d\n", (TocEntry[last+1].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  
+          return 0;
+--- 170,179 ----
+  
+  	/* print frame offsets of all tracks */
+! 	for (i = 0; i < last; i++) {
+  		printf(" %d", TocEntry[i].cdte_addr.lba + CD_MSF_OFFSET);
+  	}
+  	
+  	/* print length of disc in seconds */
+! 	printf(" %d\n", (TocEntry[last].cdte_addr.lba + CD_MSF_OFFSET) / CD_FRAMES);
+  
+          return 0;
--- cd-discid-0.6.orig/cd-discid.c.patch.minimal
+++ cd-discid-0.6/cd-discid.c.patch.minimal
@@ -0,0 +1,88 @@
+*** cd-discid.c.orig	Tue Jan 30 19:33:57 2001
+--- cd-discid.c.newjustobsd	Thu Feb  1 11:02:42 2001
+***************
+*** 41,48 ****
+--- 41,67 ----
+  #define        cdte_addr       entry.addr
+  
++ /* OpenBSD port by Marcus Daniel <danielm@uni-muenster.de> */
++ #elif defined(__OpenBSD__)
++ #include <sys/cdio.h>
++ #define        CDROM_LBA       CD_LBA_FORMAT   /* first frame is 0 */
++ #define        CD_MSF_OFFSET   150     /* MSF offset of first frame */
++ #define        CD_FRAMES       75      /* per second */
++ #define        CDROM_LEADOUT   0xAA    /* leadout track */
++ #define        CDROMREADTOCHDR         CDIOREADTOCHEADER
++ #define        cdrom_tochdr    ioc_toc_header
++ #define        cdth_trk0       starting_track
++ #define        cdth_trk1       ending_track
++ #define        cdrom_tocentry  cd_toc_entry
++ #define        cdte_track      track
++ #define        cdte_addr       addr
++ 
+  #else
+  # error "Your OS isn't supported yet."
+  #endif	/* os selection */
+  
++ #if defined(__OpenBSD__)
++ struct cdrom_tocentry *obsd_TocEntry;
++ #endif
++ 
+  struct cdrom_tocentry TocEntry[101];
+  
+***************
+*** 62,65 ****
+--- 81,88 ----
+  int main(int argc, char *argv[])
+  {
++ #if defined(__OpenBSD__)
++ 	int len;
++ 	struct ioc_read_toc_entry t;
++ #endif
+  	int drive, i, totaltime;
+  	long int cksum=0;
+***************
+*** 88,91 ****
+--- 111,144 ----
+  	last=hdr.cdth_trk1;
+  
++ #if defined(__OpenBSD__)
++ 	len = (last + 1) * sizeof (struct cdrom_tocentry);
++ 	if (obsd_TocEntry) {
++ 	  free(obsd_TocEntry);
++ 	  obsd_TocEntry = 0;
++ 	}
++ 	obsd_TocEntry = malloc (len);
++ 	if (!obsd_TocEntry) {
++ 	  printf("Can't allocate memory for TOC entries\n");
++ 	  return (-1);
++ 	}
++ 
++ 	t.address_format = CDROM_LBA;
++ 	t.starting_track = 0;
++ 	t.data_len = len;
++ 	t.data = obsd_TocEntry;
++ 
++ 	if (ioctl(drive, CDIOREADTOCENTRYS, (char *) &t) < 0) {
++ 		fprintf(stderr, "cd-discid: %s: ", argv[1]);
++ 		perror("CDIOREADTOCENTRYS");
++ 	}
++ 
++ /* I don't like copying the whole strucure into another, but it seemed
++    to be the easiest way, to give each entry a higher index number, so
++    the rest of the code works. */
++    	
++ 	for (i=0; i<last+1; i++)
++ 		TocEntry[i+1] = obsd_TocEntry[i];
++ #else
++ 
+  	for (i=1; i<=last; i++) {
+  		TocEntry[i].cdte_track = i;
+***************
+*** 103,106 ****
+--- 156,160 ----
+  		perror("CDROMREADTOCENTRY");
+  	}
++ #endif
+  
+  #if defined(__FreeBSD__)

