diff options
author | markd <markd@pkgsrc.org> | 2006-06-13 12:36:16 +0000 |
---|---|---|
committer | markd <markd@pkgsrc.org> | 2006-06-13 12:36:16 +0000 |
commit | a275f174a7b5137811aa29df8931aec8940d5eb2 (patch) | |
tree | 161c5ea212ef5df2fbb5e529a924481d2ac362bc /sysutils/k3b | |
parent | b73fad9d8cfa065767980199980c1206d650e348 (diff) | |
download | pkgsrc-a275f174a7b5137811aa29df8931aec8940d5eb2.tar.gz |
Rework how device locking/ejecting is done. Bump PKGREVISION.
Diffstat (limited to 'sysutils/k3b')
-rw-r--r-- | sysutils/k3b/Makefile | 3 | ||||
-rw-r--r-- | sysutils/k3b/distinfo | 9 | ||||
-rw-r--r-- | sysutils/k3b/patches/patch-ab | 104 | ||||
-rw-r--r-- | sysutils/k3b/patches/patch-af | 57 | ||||
-rw-r--r-- | sysutils/k3b/patches/patch-am | 14 | ||||
-rw-r--r-- | sysutils/k3b/patches/patch-an | 40 | ||||
-rw-r--r-- | sysutils/k3b/patches/patch-ao | 40 |
7 files changed, 79 insertions, 188 deletions
diff --git a/sysutils/k3b/Makefile b/sysutils/k3b/Makefile index 9fca006ef16..cb7e8ba42d7 100644 --- a/sysutils/k3b/Makefile +++ b/sysutils/k3b/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.7 2006/04/28 01:47:19 markd Exp $ +# $NetBSD: Makefile,v 1.8 2006/06/13 12:36:16 markd Exp $ # DISTNAME= k3b-0.12.15 +PKGREVISION= 1 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=k3b/} EXTRACT_SUFX= .tar.bz2 diff --git a/sysutils/k3b/distinfo b/sysutils/k3b/distinfo index 42e74f72478..4b4960fd96a 100644 --- a/sysutils/k3b/distinfo +++ b/sysutils/k3b/distinfo @@ -1,20 +1,17 @@ -$NetBSD: distinfo,v 1.4 2006/04/28 01:47:20 markd Exp $ +$NetBSD: distinfo,v 1.5 2006/06/13 12:36:16 markd Exp $ SHA1 (k3b-0.12.15.tar.bz2) = 4f2768f6473032fbf6cde2d13b1c2729b7e91e3f RMD160 (k3b-0.12.15.tar.bz2) = 9d0ff14b394153d97ef61fcf7b46894ec5d3d511 Size (k3b-0.12.15.tar.bz2) = 4000389 bytes SHA1 (patch-aa) = 700a7081dfb16fe47558b025519415d12aa2031d -SHA1 (patch-ab) = acf80a5fb55fd236282754b6dda1743eb9790593 +SHA1 (patch-ab) = adf633c8ea5b2da95a6c69a2c5abedfd69b79109 SHA1 (patch-ac) = 3b65ca0ea8e585ce68611c0332a3851a107b68f7 SHA1 (patch-ad) = 8e111ef2a75595261f95eb533459560f01b6fae7 SHA1 (patch-ae) = eb0ac8518ae813027aa09961344c0ab1966d4601 -SHA1 (patch-af) = 58c924ed24897d65f04839638cd96f6b4bf51aac +SHA1 (patch-af) = 672150438329827bf89768bfdac9c5a613f02647 SHA1 (patch-ag) = c89d4310c31ecd991f782cac2fe4927d25a75215 SHA1 (patch-ah) = 7e8822880873b3f7149a73f0d119fb52098114ff SHA1 (patch-ai) = cecb17457caf5bd2039b83eaf6d3e4824f5a2055 SHA1 (patch-aj) = ebb452a3790b0cf228e3b272490bd9d6cb4c6479 SHA1 (patch-ak) = 572915dc31f09b6c8c917749524e2042822966c8 SHA1 (patch-al) = bcc69d3b5b68fad1c46989344b1fb622e7ec6ad4 -SHA1 (patch-am) = de11dbcf76ca29b303dcbc8ac3f19fd4ce8ee661 -SHA1 (patch-an) = 8329615e98f2b08292de9a6f7e875f76fcb8f3a9 -SHA1 (patch-ao) = 3e641c7020937ed2da591cd94a89a39341fd5f91 diff --git a/sysutils/k3b/patches/patch-ab b/sysutils/k3b/patches/patch-ab index 93d2b44256a..95473a91543 100644 --- a/sysutils/k3b/patches/patch-ab +++ b/sysutils/k3b/patches/patch-ab @@ -1,14 +1,14 @@ -$NetBSD: patch-ab,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ +$NetBSD: patch-ab,v 1.2 2006/06/13 12:36:16 markd Exp $ ---- libk3bdevice/k3bdevice.cpp.orig 2005-12-16 02:08:38.000000000 +1300 +--- libk3bdevice/k3bdevice.cpp.orig 2006-04-12 05:26:45.000000000 +1200 +++ libk3bdevice/k3bdevice.cpp @@ -63,6 +63,10 @@ typedef unsigned char u8; #define CD_FRAMESIZE_RAW 2352 #endif -+// #ifdef Q_OS_NETBSD -+// #include <sys/scsiio.h> -+// #endif ++#ifdef Q_OS_NETBSD ++#include <sys/cdio.h> ++#endif + #ifdef HAVE_RESMGR extern "C" { @@ -42,52 +42,86 @@ $NetBSD: patch-ab,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ #ifdef Q_OS_FREEBSD struct cam_device *cam; #endif -@@ -1466,15 +1482,7 @@ bool K3bDevice::Device::fixupToc( K3bDev +@@ -1465,6 +1475,19 @@ bool K3bDevice::Device::fixupToc( K3bDev + bool K3bDevice::Device::block( bool b ) const { ++#ifdef Q_OS_NETBSD ++ bool success = false; ++ bool needToClose = !isOpen(); ++ int arg = b ? 1 : 0; ++ ++ if( open() ) { ++ if ( ::ioctl( d->deviceFd, DIOCLOCK, &arg ) >= 0) ++ success = true; ++ if( needToClose ) ++ close(); ++ } ++ return success; ++#else ScsiCommand cmd( this ); -- cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL; -- if( b ) -- cmd[4] = 0x01; -- int r = cmd.transport(); -- -- if( r ) -- kdDebug() << "(K3bDevice::Device) MMC ALLOW MEDIA REMOVAL failed." << endl; -- -- return ( r == 0 ); -+ return cmd.traylock( b ); + cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL; + if( b ) +@@ -1475,6 +1498,7 @@ bool K3bDevice::Device::block( bool b ) + kdDebug() << "(K3bDevice::Device) MMC ALLOW MEDIA REMOVAL failed." << endl; + + return ( r == 0 ); ++#endif } bool K3bDevice::Device::rewritable() const -@@ -1497,25 +1505,14 @@ bool K3bDevice::Device::rewritable() con +@@ -1496,6 +1520,19 @@ bool K3bDevice::Device::rewritable() con + bool K3bDevice::Device::eject() const { ++#ifdef Q_OS_NETBSD ++ bool success = false; ++ bool needToClose = !isOpen(); ++ int arg = 0; ++ ++ if( open() ) { ++ if ( ::ioctl( d->deviceFd, DIOCEJECT, &arg ) >= 0) ++ success = true; ++ if( needToClose ) ++ close(); ++ } ++ return success; ++#else ScsiCommand cmd( this ); -- cmd[0] = MMC_START_STOP_UNIT; -- -- // Since all other eject methods I saw also start the unit before ejecting -- // we do it also although I don't know why... -- cmd[4] = 0x1; // Start unit -- cmd.transport(); -- -- cmd[4] = 0x2; // LoEj = 1, Start = 0 -- -- return !cmd.transport(); -+ return cmd.eject( true ); + cmd[0] = MMC_START_STOP_UNIT; + +@@ -1507,15 +1544,30 @@ bool K3bDevice::Device::eject() const + cmd[4] = 0x2; // LoEj = 1, Start = 0 + + return !cmd.transport(); ++#endif } bool K3bDevice::Device::load() const { ++#ifdef Q_OS_NETBSD ++ bool success = false; ++ bool needToClose = !isOpen(); ++ int arg = 0; ++ ++ if( open() ) { ++ if ( ::ioctl( d->deviceFd, CDIOCCLOSE, &arg ) >= 0) ++ success = true; ++ if( needToClose ) ++ close(); ++ } ++ return success; ++#else ScsiCommand cmd( this ); -- cmd[0] = MMC_START_STOP_UNIT; -- cmd[4] = 0x3; // LoEj = 1, Start = 1 -- return !cmd.transport(); -+ return !cmd.eject( false ); + cmd[0] = MMC_START_STOP_UNIT; + cmd[4] = 0x3; // LoEj = 1, Start = 1 + return !cmd.transport(); ++#endif } -@@ -1557,7 +1554,7 @@ bool K3bDevice::Device::open( bool write +@@ -1557,7 +1609,7 @@ bool K3bDevice::Device::open( bool write } return (d->cam != 0); #endif @@ -96,7 +130,7 @@ $NetBSD: patch-ab,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ if( d->deviceFd == -1 ) d->deviceFd = openDevice( QFile::encodeName(devicename()), write ); -@@ -1574,7 +1571,7 @@ void K3bDevice::Device::close() const +@@ -1574,7 +1626,7 @@ void K3bDevice::Device::close() const d->cam = 0; } #endif @@ -105,7 +139,7 @@ $NetBSD: patch-ab,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ if( d->deviceFd != -1 ) { ::close( d->deviceFd ); d->deviceFd = -1; -@@ -1588,7 +1585,7 @@ bool K3bDevice::Device::isOpen() const +@@ -1588,7 +1640,7 @@ bool K3bDevice::Device::isOpen() const #ifdef Q_OS_FREEBSD return d->cam; #endif diff --git a/sysutils/k3b/patches/patch-af b/sysutils/k3b/patches/patch-af index b03ee1e329d..2667bdc4d8a 100644 --- a/sysutils/k3b/patches/patch-af +++ b/sysutils/k3b/patches/patch-af @@ -1,8 +1,8 @@ -$NetBSD: patch-af,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ +$NetBSD: patch-af,v 1.2 2006/06/13 12:36:16 markd Exp $ --- /dev/null 2006-01-31 00:47:43.000000000 +1300 -+++ libk3bdevice/k3bscsicommand_netbsd.cpp 2006-01-31 00:08:25.000000000 +1300 -@@ -0,0 +1,136 @@ ++++ libk3bdevice/k3bscsicommand_netbsd.cpp +@@ -0,0 +1,89 @@ +/* + * + */ @@ -14,8 +14,8 @@ $NetBSD: patch-af,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ + +#include <sys/ioctl.h> +#include <sys/scsiio.h> -+#include <sys/cdio.h> -+#include <sys/dkio.h> ++// #include <sys/cdio.h> ++// #include <sys/dkio.h> + +#include <unistd.h> +#include <sys/types.h> @@ -92,50 +92,3 @@ $NetBSD: patch-af,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ + else + return 0; +} -+ -+bool K3bDevice::ScsiCommand::eject ( bool open ) -+{ -+ unsigned long request = open ? DIOCEJECT : CDIOCCLOSE; -+ int arg = 0; -+ bool needToClose = false; -+ if( m_device ) { -+ if( !m_device->isOpen() ) { -+ needToClose = true; -+ } -+ m_device->open( false ); -+ m_deviceHandle = m_device->handle(); -+ } -+ -+ if( m_deviceHandle == -1 ) -+ return false; -+ -+ int i = ::ioctl( m_deviceHandle, request, &arg ); -+ -+ if( needToClose ) -+ m_device->close(); -+ -+ return i >= 0; -+} -+ -+bool K3bDevice::ScsiCommand::traylock ( bool on ) -+{ -+ int arg = on ? 1 : 0; -+ bool needToClose = false; -+ if( m_device ) { -+ if( !m_device->isOpen() ) { -+ needToClose = true; -+ } -+ m_device->open( false ); -+ m_deviceHandle = m_device->handle(); -+ } -+ -+ if( m_deviceHandle == -1 ) -+ return false; -+ -+ int i = ::ioctl( m_deviceHandle, DIOCLOCK, &arg ); -+ -+ if( needToClose ) -+ m_device->close(); -+ -+ return i >= 0; -+} diff --git a/sysutils/k3b/patches/patch-am b/sysutils/k3b/patches/patch-am deleted file mode 100644 index 9546bec7d53..00000000000 --- a/sysutils/k3b/patches/patch-am +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-am,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ - ---- libk3bdevice/k3bscsicommand.h.orig 2005-12-16 02:08:38.000000000 +1300 -+++ libk3bdevice/k3bscsicommand.h -@@ -108,6 +108,9 @@ namespace K3bDevice - void* = 0, - size_t len = 0 ); - -+ bool eject ( bool open ); -+ bool traylock ( bool on ); -+ - private: - static QString senseKeyToString( int key ); - void debugError( int command, int errorCode, int senseKey, int asc, int ascq ); diff --git a/sysutils/k3b/patches/patch-an b/sysutils/k3b/patches/patch-an deleted file mode 100644 index b03e01da5c9..00000000000 --- a/sysutils/k3b/patches/patch-an +++ /dev/null @@ -1,40 +0,0 @@ -$NetBSD: patch-an,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ - ---- libk3bdevice/k3bscsicommand_bsd.cpp.orig 2005-12-16 02:08:38.000000000 +1300 -+++ libk3bdevice/k3bscsicommand_bsd.cpp -@@ -190,3 +190,35 @@ int K3bDevice::ScsiCommand::transport( T - - return ret; - } -+ -+bool K3bDevice::ScsiCommand::eject ( bool b ) -+{ -+ d->cmd.cmd[0] = MMC_START_STOP_UNIT; -+ -+ if ( b ) { -+ // Since all other eject methods I saw also start the unit before ejecting -+ // we do it also although I don't know why... -+ d->cmd.cmd[4] = 0x1; // Start unit -+ transport(); -+ -+ d->cmd.cmd[4] = 0x2; // LoEj = 1, Start = 0 -+ } -+ else -+ d->cmd.cmd[4] = 0x3; // LoEj = 1, Start = 1 -+ -+ return !transport(); -+ -+} -+ -+bool K3bDevice::ScsiCommand::traylock ( bool on ) -+{ -+ d->cmd.cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL; -+ if( on ) -+ d->cmd.cmd[4] = 0x01; -+ int r = transport(); -+ -+ if( r ) -+ kdDebug() << "(K3bDevice::Device) MMC ALLOW MEDIA REMOVAL failed." << endl; -+ -+ return ( r == 0 ); -+} diff --git a/sysutils/k3b/patches/patch-ao b/sysutils/k3b/patches/patch-ao deleted file mode 100644 index 54114135119..00000000000 --- a/sysutils/k3b/patches/patch-ao +++ /dev/null @@ -1,40 +0,0 @@ -$NetBSD: patch-ao,v 1.1.1.1 2006/02/01 00:53:00 markd Exp $ - ---- libk3bdevice/k3bscsicommand_linux.cpp.orig 2005-12-16 02:08:38.000000000 +1300 -+++ libk3bdevice/k3bscsicommand_linux.cpp -@@ -100,3 +100,35 @@ int K3bDevice::ScsiCommand::transport( T - else - return 0; - } -+ -+bool K3bDevice::ScsiCommand::eject ( bool b ) -+{ -+ d->cmd.cmd[0] = MMC_START_STOP_UNIT; -+ -+ if ( b ) { -+ // Since all other eject methods I saw also start the unit before ejecting -+ // we do it also although I don't know why... -+ d->cmd.cmd[4] = 0x1; // Start unit -+ transport(); -+ -+ d->cmd.cmd[4] = 0x2; // LoEj = 1, Start = 0 -+ } -+ else -+ d->cmd.cmd[4] = 0x3; // LoEj = 1, Start = 1 -+ -+ return !transport(); -+ -+} -+ -+bool K3bDevice::ScsiCommand::traylock ( bool on ) -+{ -+ d->cmd.cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL; -+ if( on ) -+ d->cmd.cmd[4] = 0x01; -+ int r = transport(); -+ -+ if( r ) -+ kdDebug() << "(K3bDevice::Device) MMC ALLOW MEDIA REMOVAL failed." << endl; -+ -+ return ( r == 0 ); -+} |