[Pkg-ltsp-devel] freeze exception request for ltspfs
Vagrant Cascadian
vagrant at freegeek.org
Fri Oct 31 20:37:05 UTC 2008
i'd like the release team to consider a freeze exception for ltspfs to fix a
segfault in the cdpinger binary. patch attached. i'd also like to add a new
team member to Uploaders. i could upload 0.5.3-3 with those changes.
alternately, i could pull 0.5.5-1 from experimental. the diff between
upstream 0.5.3 and 0.5.5 is pretty small, containing the segfault fix
for cdpinger, and manpages which we are currently shipping in the debian
dir(in 0.5.3-2).
0.5.5-1 contains a small change to debian/rules to allow for different
udev rules priority on ubuntu (adds a build-dep on lsb-release).
ltspfs (0.5.5-1) experimental; urgency=low
* new upstream version
* sync with ubuntu
* conditionally install udev rules at priority 80 on Ubuntu
-- Vagrant Cascadian <vagrant at freegeek.org> Sun, 19 Oct 2008 11:05:23 -0700
ltspfs (0.5.5-0ubuntu1) intrepid; urgency=low
* new upstream version:
* Fix a segfault in cdpinger
* Remove manpages from packaging as they now are upstream
-- Stéphane Graber <stgraber at ubuntu.com> Fri, 10 Oct 2008 19:34:18 -0400
ltspfs (0.5.3-2ubuntu1) intrepid; urgency=low
* Set ltspfs rules to 80 instead of 50. (LP: #273147)
-- Stéphane Graber <stgraber at ubuntu.com> Tue, 07 Oct 2008 13:30:55 -0400
thanks for your consideration!
live well,
vagrant
-------------- next part --------------
=== modified file 'src/cdpinger.c'
--- src/cdpinger.c 2008-04-22 17:22:29 +0000
+++ src/cdpinger.c 2008-10-11 00:06:14 +0000
@@ -18,6 +18,8 @@
CDP_CDROM_UMOUNT
} CdpMountType;
+char *device;
+
/*
* check_cd_status: Switch mounted and unmounted states in the cdrom, and
* call out our shell scripts to handle the actual work of plumbing the
@@ -25,13 +27,13 @@
*/
gboolean
-check_cd_status(gpointer device)
+check_cd_status()
{
char dev[BUFSIZ], cmd[BUFSIZ];
int cdrom, status;
static CdpMountType last = CDP_CDROM_UMOUNT;
- snprintf(dev, sizeof dev, "/dev/%s", (char *)device);
+ snprintf(dev, sizeof dev, "/dev/%s", device);
/*
* Try to open the cdrom device. It might not exist, for a usb cdrom,
@@ -40,9 +42,11 @@
*/
if ((cdrom = open(dev, O_RDONLY|O_NONBLOCK)) < 0) {
- snprintf(cmd, sizeof cmd,
- "/lib/udev/ltspfs_entry remove %s", (char *)device);
- g_spawn_command_line_sync(cmd, NULL, NULL, NULL, NULL);
+ if (last == CDP_CDROM_MOUNT) {
+ snprintf(cmd, sizeof cmd,
+ "/lib/udev/ltspfs_entry remove %s", device);
+ g_spawn_command_line_sync(cmd, NULL, NULL, NULL, NULL);
+ }
return FALSE;
}
@@ -61,7 +65,7 @@
if (status < 0) {
snprintf(cmd, sizeof cmd,
- "/lib/udev/ltspfs_entry remove %s", (char *)device);
+ "/lib/udev/ltspfs_entry remove %s", device);
return g_spawn_command_line_sync(cmd, NULL, NULL, NULL, NULL);
return FALSE;
}
@@ -76,7 +80,7 @@
case CDS_TRAY_OPEN:
if (last == CDP_CDROM_MOUNT) {
snprintf(cmd, sizeof cmd,
- "/lib/udev/ltspfs_entry remove %s", (char *)device);
+ "/lib/udev/ltspfs_entry remove %s", device);
last = CDP_CDROM_UMOUNT;
return g_spawn_command_line_sync(cmd, NULL, NULL, NULL, NULL);
}
@@ -84,7 +88,7 @@
case CDS_DISC_OK:
if (last == CDP_CDROM_UMOUNT) {
snprintf(cmd, sizeof cmd,
- "/lib/udev/ltspfs_entry add %s auto", (char *)device);
+ "/lib/udev/ltspfs_entry add %s auto", device);
last = CDP_CDROM_MOUNT;
return g_spawn_command_line_sync(cmd, NULL, NULL, NULL, NULL);
}
@@ -114,13 +118,17 @@
if (argc != 2)
exit(1);
+ g_type_init();
+
+ device = argv[1];
+
daemon(0,0);
loop = g_main_loop_new (NULL, FALSE);
/* Add a timeout */
g_timeout_add_full(G_PRIORITY_DEFAULT, POLL_INTERVAL * 1000,
- (GSourceFunc)check_cd_status, argv[1],
+ (GSourceFunc)check_cd_status, NULL,
(GDestroyNotify)end_cd_watch);
g_main_loop_run(loop);
More information about the Pkg-ltsp-devel
mailing list