--- workbone-2.40.orig/hardware.c +++ workbone-2.40/hardware.c @@ -177,7 +177,7 @@ if (cd_fd < 0) { - if ((cd_fd = open(cd_device, 0)) < 0) + if ((cd_fd = open(cd_device, O_RDONLY | O_NONBLOCK)) < 0) { if (errno == EACCES) @@ -611,7 +611,7 @@ if (fcntl(fd, F_SETLK, &fl) < 0) exit(0); - if (open(cd_device, 0) >= 0) + if (open(cd_device, O_RDONLY | O_NONBLOCK) >= 0) { brk(&end); pause(); --- workbone-2.40.orig/workbone.c +++ workbone-2.40/workbone.c @@ -96,7 +96,7 @@ { int sss, sel_stat, dly; - int fastin = FALSE; + int fastin = TRUE; int scmd = 0, tmppos = 0; int save_track = 1; fd_set rset; @@ -166,6 +166,22 @@ /* set graphics */ if(play_track<0) setgraf (); /* check if drive is mounted (from Mark Buckaway's cdplayer code) */ + /* link reading code from cdtool */ + + /* find out if the device is a link, resolve link name */ + { + + char *pszTest; + char caB[100]; + int ii; + + ii = readlink(cd_device, caB, sizeof(caB)-1); + if (ii < 0) { + pszTest = cd_device; + }else { + pszTest = &caB[0]; + caB[ii] = '\0'; + } if ((fp = setmntent (MOUNTED, "r")) == NULL) { fprintf (stderr, "Couldn't open %s: %s\n", MOUNTED, strerror (errno)); @@ -173,7 +189,7 @@ } while ((mnt = getmntent (fp)) != NULL) { - if (strcmp (mnt->mnt_type, "iso9660") == 0) + if (strstr (mnt->mnt_fsname, pszTest) != NULL) { fputs ("CDROM already mounted. Operation aborted.\n", stderr); endmntent (fp); @@ -181,6 +197,7 @@ } } endmntent (fp); + } /* end mount checking block */ /* display control panel template */ if(play_track<0) control_panel (); --- workbone-2.40.orig/debian/README.debian +++ workbone-2.40/debian/README.debian @@ -0,0 +1,14 @@ +workbone for DEBIAN +---------------------- + +Workbone for Debian is a nice CD player. I've created a login called +cdplay that has workman as its shell. That way I can enjoy the +benefits of workman without the security hassle of leaving a virtual +console open. + +Stephen Pitts , Tue, 29 Oct 1996 18:27:01 -0600 + +Workbone no longer has a delay at startup. This was annoying and seems to +serve no purpose with modern cdroms. + +Martin Mitchell --- workbone-2.40.orig/debian/changelog +++ workbone-2.40/debian/changelog @@ -0,0 +1,64 @@ +workbone (2.40-3) unstable; urgency=low + + * Update to standards version 3.5.6. + * Update copyright file. + * Fix typo in package description. (closes: #125506) + * Add symlink to doc directory. (closes: #58785) + * Add open nonblocking patch from Chris Waters. (closes: #88641) + + -- Martin Mitchell Thu, 25 Apr 2002 00:45:59 +1000 + +workbone (2.40-2) unstable; urgency=low + + * Update to standards version 3.0.1. + * Update copyright file. + * Fix cd mounted detection to ignore iso9660 fs. (closes: #32056, #33973) + + -- Martin Mitchell Fri, 22 Oct 1999 03:04:38 +1000 + +workbone (2.40-1) unstable; urgency=low + + * New upstream release. + * Update copyright file. + * Update to standards version 2.4.1. + * Clean up rules file. + + -- Martin Mitchell Wed, 14 Oct 1998 02:11:49 +1000 + +workbone (2.31-5) unstable; urgency=low + + * Libc6 compile. + * Remove startup delay. (#10958) + * New maintainer. + + -- Martin Mitchell Tue, 11 Nov 1997 02:17:24 +1100 + +workbone (2.31-4) unstable; urgency=low + + * Added a postinst to let you know if you have a /dev/cdrom + * Closed all pending bugs + + -- Stephen Pitts Sat, 16 Nov 1996 13:27:57 -0600 + +workbone (2.31-3) unstable; urgency=low + + * Changed architecture from i386 to any + + -- Stephen Pitts Mon, 11 Nov 1996 20:02:03 -0600 + +workbone (2.31-2) unstable; urgency=low + + * Workbone was installed as /usr/bin instead of in /usr/bin. Whoops! + + -- Stephen Pitts Fri, 8 Nov 1996 20:39:05 -0600 + +workbone (2.31-1) unstable; urgency=low + + * Version number incremented because of questionable handling of epoch + by dpkg/dselect + * New maintainer + * Package rebuilt from upstream sources using deb-make! + + -- Stephen Pitts Tue, 29 Oct 1996 18:27:01 -0600 + + --- workbone-2.40.orig/debian/control +++ workbone-2.40/debian/control @@ -0,0 +1,14 @@ +Source: workbone +Section: sound +Priority: optional +Maintainer: Martin Mitchell +Standards-Version: 3.5.6 + +Package: workbone +Architecture: any +Depends: ${shlibs:Depends} +Suggests: cdtool +Description: A simple text-based CD player + Workbone is a simple, curses-based CD player that is controlled by + the num-lock keys. The cdtool package can be used to determine the + contents of a CD before playing it. --- workbone-2.40.orig/debian/copyright +++ workbone-2.40/debian/copyright @@ -0,0 +1,11 @@ +This package was debianized by Stephen Pitts pitts2@memphisonline.com on +Tue, 29 Oct 1996 18:27:01 -0600. + +It was downloaded from ftp.ibiblio.org:/pub/linux/apps/sound/cdrom/curses + +This package is now maintained by Martin Mitchell . + +Copyright: + +workbone is copyrighted under the GNU General Public License, +version 2. A copy can be found in /usr/share/common-licenses/GPL. --- workbone-2.40.orig/debian/rules +++ workbone-2.40/debian/rules @@ -0,0 +1,76 @@ +#!/usr/bin/make -f +# Sample debian.rules file - for GNU Hello (1.3). +# Copyright 1994,1995 by Ian Jackson. +# I hereby give you perpetual unlimited permission to copy, +# modify and relicense this file, provided that you do not remove +# my name from the file itself. (I assert my moral right of +# paternity under the Copyright, Designs and Patents Act 1988.) +# This file may have to be extensively modified + +package=workbone +STRIP=strip --strip-unneeded --remove-section=.note --remove-section=.comment + +build: + $(checkdir) + make CFLAGS="-O2 -g" LDFLAGS="" + touch build + +clean: + $(checkdir) + -rm -f build + make clean + -rm -rf *~ debian/tmp debian/*~ debian/files debian/substvars + +binary-indep: checkroot build + $(checkdir) +# There are no architecture-independent files to be uploaded +# generated by this package. If there were any they would be +# made here. + +binary-arch: checkroot build + $(checkdir) + -rm -rf debian/tmp + install -d debian/tmp/DEBIAN debian/tmp/usr/share/man/man1 debian/tmp/usr/share/doc/workbone debian/tmp/usr/bin + install -m 0755 workbone debian/tmp/usr/bin/workbone + $(STRIP) debian/tmp/usr/bin/workbone + install -m 0644 workbone.1 debian/tmp/usr/share/man/man1 + gzip -9v debian/tmp/usr/share/man/man1/* + install -m 0644 CHANGES README debian/README.debian debian/tmp/usr/share/doc/workbone + install -m 0644 debian/changelog debian/tmp/usr/share/doc/workbone/changelog.Debian + gzip -9v debian/tmp/usr/share/doc/workbone/* + ( cd debian/tmp/usr/share/doc/workbone && ln -s CHANGES.gz changelog.gz ) + install -m 0644 debian/copyright debian/tmp/usr/share/doc/workbone + install -m 0755 debian/postinst debian/tmp/DEBIAN + dpkg-shlibdeps debian/tmp/usr/bin/workbone + + # Manage /usr/share/doc/* -> /usr/doc/* links + for name in workbone; \ + do \ + sed -e "s/PKG/$$name/g" debian/postinst > debian/$$name.postinst ; \ + sed -e "s/PKG/$$name/g" debian/prerm > debian/$$name.prerm ; \ + install -m 0755 debian/$$name.postinst debian/tmp/DEBIAN/postinst ; \ + install -m 0755 debian/$$name.prerm debian/tmp/DEBIAN/prerm ; \ + rm -f debian/$$name.postinst debian/$$name.prerm; \ + done + + dpkg-gencontrol -isp + chown -R root.root debian/tmp + chmod -R g-ws debian/tmp + dpkg --build debian/tmp .. + +define checkdir + test -f debian/rules +endef + +# Below here is fairly generic really + +binary: binary-indep binary-arch + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep clean checkroot --- workbone-2.40.orig/debian/postinst +++ workbone-2.40/debian/postinst @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ]; then + if [ -d /usr/doc -a ! -e /usr/doc/PKG -a -d /usr/share/doc/PKG ] + then + ln -sf ../share/doc/PKG /usr/doc/PKG + fi +fi + +if [ ! -e /dev/cdrom ] +then +echo "Please link /dev/cdrom to your CDROM device before running workbone." +fi --- workbone-2.40.orig/debian/prerm +++ workbone-2.40/debian/prerm @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/PKG ] +then + rm -f /usr/doc/PKG +fi