Improve support for NetBSD

This commit is contained in:
David Howland 2005-11-20 20:10:44 +00:00 committed by Thomas Klausner
parent 0062609383
commit c1eb696e2e
4 changed files with 103 additions and 4 deletions

View file

@ -1,6 +1,8 @@
$NetBSD: distinfo,v 1.4 2005/11/10 22:34:45 dhowland Exp $
$NetBSD: distinfo,v 1.5 2005/11/20 20:10:44 dhowland Exp $
SHA1 (mmpython-0.4.9.tar.gz) = 537fd18de6cbd4400faf62ac5744393de32e9d72
RMD160 (mmpython-0.4.9.tar.gz) = d7096d74dfea2e0b0c7fae0b8d50d0306b578b30
Size (mmpython-0.4.9.tar.gz) = 127953 bytes
SHA1 (patch-aa) = 61ddeafa973f24f0c7794bb61a2d0c8fc388d176
SHA1 (patch-aa) = d3d7ddbac1dc3bf4a198f2d6d6b2c193eb1d2eb1
SHA1 (patch-ab) = 61a51cc047d70bfc2bdd94026820a860e7e79144
SHA1 (patch-ac) = feea09af083f49c1c9cbc7306eae854fee7642f3

View file

@ -1,6 +1,6 @@
$NetBSD: patch-aa,v 1.1 2005/11/10 06:00:47 dhowland Exp $
$NetBSD: patch-aa,v 1.2 2005/11/20 20:10:44 dhowland Exp $
--- disc/cdrommodule.c.orig 2005-11-10 00:57:23.000000000 -0500
--- disc/cdrommodule.c.orig 2003-06-23 15:26:16.000000000 -0400
+++ disc/cdrommodule.c
@@ -41,7 +41,7 @@
#include <linux/cdrom.h>
@ -20,3 +20,48 @@ $NetBSD: patch-aa,v 1.1 2005/11/10 06:00:47 dhowland Exp $
#define CDDB_TOC_HEADER_STRUCT ioc_toc_header
#define CDDB_STARTING_TRACK_FIELD starting_track
@@ -136,7 +136,7 @@ static PyObject *cdrom_toc_entry(PyObjec
int cdrom_fd;
unsigned char track;
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__)
struct cd_toc_entry data;
#endif
@@ -148,7 +148,7 @@ static PyObject *cdrom_toc_entry(PyObjec
entry.CDDB_TRACK_FIELD = track;
entry.CDDB_FORMAT_FIELD = CDDB_MSF_FORMAT;
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__)
entry.data = &data;
entry.data_len = sizeof(data);
#endif
@@ -169,7 +169,7 @@ static PyObject *cdrom_leadout(PyObject
PyObject *cdrom_fileobj;
int cdrom_fd;
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__)
struct cd_toc_entry data;
#endif
@@ -181,7 +181,7 @@ static PyObject *cdrom_leadout(PyObject
entry.CDDB_TRACK_FIELD = CDDB_CDROM_LEADOUT;
entry.CDDB_FORMAT_FIELD = CDDB_MSF_FORMAT;
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__)
entry.data = &data;
entry.data_len = sizeof(data);
#endif
@@ -206,7 +206,7 @@ static PyObject *cdrom_really_close(PyOb
PyObject *cdrom_fileobj;
int cdrom_fd;
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__)
struct cd_toc_entry data;
#endif

View file

@ -0,0 +1,13 @@
$NetBSD: patch-ab,v 1.1 2005/11/20 20:10:44 dhowland Exp $
--- factory.py.orig 2005-05-07 07:37:08.000000000 -0400
+++ factory.py
@@ -247,7 +247,7 @@ class Factory:
if not os.path.exists(name):
return None
try:
- if (os.uname()[0] == 'FreeBSD' and \
+ if (((os.uname()[0] == 'FreeBSD') or (os.uname()[0] == 'NetBSD')) and \
stat.S_ISCHR(os.stat(name)[stat.ST_MODE])) \
or stat.S_ISBLK(os.stat(name)[stat.ST_MODE]):
return self.create_from_device(name)

View file

@ -0,0 +1,39 @@
$NetBSD: patch-ac,v 1.1 2005/11/20 20:10:44 dhowland Exp $
--- disc/discinfo.py.orig 2004-09-14 16:12:25.000000000 -0400
+++ disc/discinfo.py
@@ -138,13 +138,13 @@ def cdrom_disc_status(device, handle_mix
# XXX 0xc0086305 below creates a warning, but 0xc0086305L
# doesn't work. Suppress that warning for Linux users,
# until a better solution can be found.
- if os.uname()[0] == 'FreeBSD':
- CDIOREADTOCENTRYS = 0xc0086305L
+ if ((os.uname()[0] == 'FreeBSD') or (os.uname()[0] == 'NetBSD')):
+ CDIOREADTOCENTRYS = 0xc0086305
CD_MSF_FORMAT = 2
try:
fd = os.open(device, os.O_RDONLY | os.O_NONBLOCK)
- if os.uname()[0] == 'FreeBSD':
+ if ((os.uname()[0] == 'FreeBSD') or (os.uname()[0] == 'NetBSD')):
try:
cd_toc_entry = array.array('c', '\000'*4096)
(address, length) = cd_toc_entry.buffer_info()
@@ -172,7 +172,7 @@ def cdrom_disc_status(device, handle_mix
# no disc, error, whatever
return 0
- if os.uname()[0] == 'FreeBSD':
+ if ((os.uname()[0] == 'FreeBSD') or (os.uname()[0] == 'NetBSD')):
s = 0
# We already have the TOC from above
for i in range(0, 4096, 8):
@@ -239,7 +239,7 @@ def cdrom_disc_id(device, handle_mix=0):
else:
f = open(device,'rb')
- if os.uname()[0] == 'FreeBSD':
+ if ((os.uname()[0] == 'FreeBSD') or (os.uname()[0] == 'NetBSD')):
# FreeBSD can only seek to 2048 multiple boundaries.
# Below works on Linux and FreeBSD:
f.seek(32768)