tags 568423 + patch thanks Dear maintainer,
I've prepared an NMU for liblinux-inotify2-perl (versioned as 1:1.2-0.1) and uploaded it to DELAYED/5. Please feel free to tell me if I should delay it longer. Regards. -- Franck Joncourt
diff -Nru liblinux-inotify2-perl-1.1/Changes liblinux-inotify2-perl-1.2/Changes --- liblinux-inotify2-perl-1.1/Changes 2006-09-29 16:40:20.000000000 +0200 +++ liblinux-inotify2-perl-1.2/Changes 2008-10-07 19:24:06.000000000 +0200 @@ -3,6 +3,13 @@ TODO: document move/renaming issues for fullname TODO: find_watchers($path), or maybe just ->watchers +1.2 Tue Oct 7 19:23:57 CEST 2008 + - include IN_DELETE_SELF in events that cancel watchers, as + the kernel seems to handle it this way only. + - require sys/inotify.h to be installed, remove the local + copy (patch by Adrian Bunk). + - update examples. + 1.1 Fri Sep 29 16:40:14 CEST 2006 - fixed formatting. - add IN_MASK_ADD, IN_DONT_FOLLOW, IN_ONLYDIR. diff -Nru liblinux-inotify2-perl-1.1/debian/changelog liblinux-inotify2-perl-1.2/debian/changelog --- liblinux-inotify2-perl-1.1/debian/changelog 2010-03-23 21:17:55.000000000 +0100 +++ liblinux-inotify2-perl-1.2/debian/changelog 2010-03-23 21:17:57.000000000 +0100 @@ -1,3 +1,11 @@ +liblinux-inotify2-perl (1:1.2-0.1) unstable; urgency=low + + * Non-maintainer upload. + * New upstream release. (Closes: #568423) + * Updated debhelper compatibility from 4 to 5. + + -- Franck Joncourt <fra...@debian.org> Tue, 23 Mar 2010 20:47:14 +0100 + liblinux-inotify2-perl (1:1.1-2.1) unstable; urgency=low * Non-maintainer upload for the Perl 5.10 transition. diff -Nru liblinux-inotify2-perl-1.1/debian/compat liblinux-inotify2-perl-1.2/debian/compat --- liblinux-inotify2-perl-1.1/debian/compat 2010-03-23 21:17:55.000000000 +0100 +++ liblinux-inotify2-perl-1.2/debian/compat 2010-03-23 21:17:57.000000000 +0100 @@ -1 +1 @@ -4 +5 diff -Nru liblinux-inotify2-perl-1.1/Inotify2.pm liblinux-inotify2-perl-1.2/Inotify2.pm --- liblinux-inotify2-perl-1.1/Inotify2.pm 2006-09-29 16:40:29.000000000 +0200 +++ liblinux-inotify2-perl-1.2/Inotify2.pm 2008-10-07 19:24:59.000000000 +0200 @@ -4,21 +4,14 @@ =head1 SYNOPSIS -=head2 Callback interface +=head2 Callback Interface use Linux::Inotify2; # create a new object my $inotify = new Linux::Inotify2 - or die "Unable to create new inotify object: $!"; + or die "unable to create new inotify object: $!"; - # for Event: - Event->io (fd =>$inotify->fileno, poll => 'r', cb => sub { $inotify->poll }); - # for Glib: - add_watch Glib::IO $inotify->fileno, in => sub { $inotify->poll }; - # manually: - 1 while $inotify->poll; - # add watchers $inotify->watch ("/etc/passwd", IN_ACCESS, sub { my $e = shift; @@ -32,6 +25,14 @@ $e->w->cancel; }); + # integration into AnyEvent (works with POE, Glib, Tk...) + my $inotify_w = AnyEvent->io + fh => $inofity, poll => 'r', cb => sub { $inotify->poll } + ); + + # manual event loop + 1 while $inotify->poll; + =head2 Streaming Interface use Linux::Inotify2 ; @@ -81,7 +82,7 @@ use base 'Exporter'; BEGIN { - $VERSION = '1.1'; + $VERSION = '1.2'; @constants = qw( IN_ACCESS IN_MODIFY IN_ATTRIB IN_CLOSE_WRITE @@ -273,7 +274,7 @@ push @res, $_; $w->{cb}->($_) if $w->{cb}; - $w->cancel if $_->{mask} & (IN_IGNORED | IN_UNMOUNT | IN_ONESHOT); + $w->cancel if $_->{mask} & (IN_IGNORED | IN_UNMOUNT | IN_ONESHOT | IN_DELETE_SELF); } delete $self->{ignore}; @@ -428,7 +429,7 @@ =head1 SEE ALSO -L<Linux::Inotify>. +L<AnyEvent>, L<Linux::Inotify>. =head1 AUTHOR diff -Nru liblinux-inotify2-perl-1.1/Inotify2.xs liblinux-inotify2-perl-1.2/Inotify2.xs --- liblinux-inotify2-perl-1.1/Inotify2.xs 2006-09-29 16:30:58.000000000 +0200 +++ liblinux-inotify2-perl-1.2/Inotify2.xs 2008-10-07 19:22:18.000000000 +0200 @@ -7,8 +7,7 @@ #include <unistd.h> #include <fcntl.h> -#include "inotify.h" -#include "inotify-syscalls.h" +#include <sys/inotify.h> MODULE = Linux::Inotify2 PACKAGE = Linux::Inotify2 diff -Nru liblinux-inotify2-perl-1.1/inotify.h liblinux-inotify2-perl-1.2/inotify.h --- liblinux-inotify2-perl-1.1/inotify.h 2006-09-07 10:39:33.000000000 +0200 +++ liblinux-inotify2-perl-1.2/inotify.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,75 +0,0 @@ -/* - * Inode based directory notification for Linux - * - * Copyright (C) 2005 John McCutchan - */ - -#ifndef _LINUX_INOTIFY_H -#define _LINUX_INOTIFY_H - -#include <linux/types.h> - -/* - * struct inotify_event - structure read from the inotify device for each event - * - * When you are watching a directory, you will receive the filename for events - * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. - */ -struct inotify_event { - __s32 wd; /* watch descriptor */ - __u32 mask; /* watch mask */ - __u32 cookie; /* cookie to synchronize two events */ - __u32 len; /* length (including nulls) of name */ - char name[0]; /* stub for possible name */ -}; - -#include "inotify-masks.h" - -#ifdef __KERNEL__ - -#include <linux/dcache.h> -#include <linux/fs.h> -#include <linux/config.h> - -#ifdef CONFIG_INOTIFY - -extern void inotify_inode_queue_event(struct inode *, __u32, __u32, - const char *); -extern void inotify_dentry_parent_queue_event(struct dentry *, __u32, __u32, - const char *); -extern void inotify_unmount_inodes(struct list_head *); -extern void inotify_inode_is_dead(struct inode *); -extern u32 inotify_get_cookie(void); - -#else - -static inline void inotify_inode_queue_event(struct inode *inode, - __u32 mask, __u32 cookie, - const char *filename) -{ -} - -static inline void inotify_dentry_parent_queue_event(struct dentry *dentry, - __u32 mask, __u32 cookie, - const char *filename) -{ -} - -static inline void inotify_unmount_inodes(struct list_head *list) -{ -} - -static inline void inotify_inode_is_dead(struct inode *inode) -{ -} - -static inline u32 inotify_get_cookie(void) -{ - return 0; -} - -#endif /* CONFIG_INOTIFY */ - -#endif /* __KERNEL __ */ - -#endif /* _LINUX_INOTIFY_H */ diff -Nru liblinux-inotify2-perl-1.1/inotify-masks.h liblinux-inotify2-perl-1.2/inotify-masks.h --- liblinux-inotify2-perl-1.1/inotify-masks.h 2006-09-29 16:34:22.000000000 +0200 +++ liblinux-inotify2-perl-1.2/inotify-masks.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -/* - * Inode based directory notification for Linux - * - * Copyright (C) 2005 John McCutchan - */ - -#ifndef _LINUX_INOTIFY_MASKS_H -#define _LINUX_INOTIFY_MASKS_H - -/* the following are legal, implemented events that user-space can watch for */ -#define IN_ACCESS 0x00000001 /* File was accessed */ -#define IN_MODIFY 0x00000002 /* File was modified */ -#define IN_ATTRIB 0x00000004 /* Metadata changed */ -#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */ -#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */ -#define IN_OPEN 0x00000020 /* File was opened */ -#define IN_MOVED_FROM 0x00000040 /* File was moved from X */ -#define IN_MOVED_TO 0x00000080 /* File was moved to Y */ -#define IN_CREATE 0x00000100 /* Subfile was created */ -#define IN_DELETE 0x00000200 /* Subfile was deleted */ -#define IN_DELETE_SELF 0x00000400 /* Self was deleted */ -#define IN_MOVE_SELF 0x00000800 /* Self was moved */ - -/* the following are legal events. they are sent as needed to any watch */ -#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */ -#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ -#define IN_IGNORED 0x00008000 /* File was ignored */ - -/* helper events */ -#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ -#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ - -/* special flags */ -#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ -#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ -#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ -#define IN_ISDIR 0x40000000 /* event occurred against dir */ -#define IN_ONESHOT 0x80000000 /* only send event once */ - -/* - * All of the events - we build the list by hand so that we can add flags in - * the future and not break backward compatibility. Apps will get only the - * events that they originally wanted. Be sure to add new events here! - */ -#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ - IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \ - IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \ - IN_MOVE_SELF) - -#endif /* _LINUX_INOTIFY_H */ - diff -Nru liblinux-inotify2-perl-1.1/inotify-syscalls.h liblinux-inotify2-perl-1.2/inotify-syscalls.h --- liblinux-inotify2-perl-1.1/inotify-syscalls.h 2010-03-23 21:17:55.000000000 +0100 +++ liblinux-inotify2-perl-1.2/inotify-syscalls.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,112 +0,0 @@ -#ifndef _LINUX_INOTIFY_SYSCALLS_H -#define _LINUX_INOTIFY_SYSCALLS_H - -/* - * This file originally came from - * http://kernel.org/pub/linux/kernel/people/rml/inotify/headers/ - * courtesy of Robert Love. - * But it has been modified since then. - */ - -#include <sys/syscall.h> -#include <unistd.h> - -#if !defined(__NR_inotify_init) || !defined(__NR_inotify_add_watch) || !defined(__NR_inotify_rm_watch) -#if defined (__alpha__) -# define __NR_inotify_init 444 -# define __NR_inotify_add_watch 445 -# define __NR_inotify_rm_watch 446 - -#elif defined (__arm__) -# define __NR_inotify_init (__NR_SYSCALL_BASE+316) -# define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317) -# define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318) - -#elif defined (__frv__) -# define __NR_inotify_init 291 -# define __NR_inotify_add_watch 292 -# define __NR_inotify_rm_watch 293 - -#elif defined(__i386__) -# define __NR_inotify_init 291 -# define __NR_inotify_add_watch 292 -# define __NR_inotify_rm_watch 293 - -#elif defined (__ia64__) -# define __NR_inotify_init 1277 -# define __NR_inotify_add_watch 1278 -# define __NR_inotify_rm_watch 1279 - -#elif defined (__mips__) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define __NR_inotify_init (__NR_Linux + 284) -# define __NR_inotify_add_watch (__NR_Linux + 285) -# define __NR_inotify_rm_watch (__NR_Linux + 286) -# endif -# if _MIPS_SIM == _MIPS_SIM_ABI64 -# define __NR_inotify_init (__NR_Linux + 243) -# define __NR_inotify_add_watch (__NR_Linux + 243) -# define __NR_inotify_rm_watch (__NR_Linux + 243) -# endif -# if _MIPS_SIM == _MIPS_SIM_NABI32 -# define __NR_inotify_init (__NR_Linux + 247) -# define __NR_inotify_add_watch (__NR_Linux + 248) -# define __NR_inotify_rm_watch (__NR_Linux + 249) -# endif - -#elif defined(__parisc__) -# define __NR_inotify_init (__NR_Linux + 269) -# define __NR_inotify_add_watch (__NR_Linux + 270) -# define __NR_inotify_rm_watch (__NR_Linux + 271) - -#elif defined(__powerpc__) || defined(__powerpc64__) -# define __NR_inotify_init 275 -# define __NR_inotify_add_watch 276 -# define __NR_inotify_rm_watch 277 - -#elif defined (__s390__) -# define __NR_inotify_init 284 -# define __NR_inotify_add_watch 285 -# define __NR_inotify_rm_watch 286 - -#elif defined (__sh__) -# define __NR_inotify_init 290 -# define __NR_inotify_add_watch 291 -# define __NR_inotify_rm_watch 292 - -#elif defined (__sh64__) -# define __NR_inotify_init 318 -# define __NR_inotify_add_watch 319 -# define __NR_inotify_rm_watch 320 - -#elif defined (__sparc__) || defined (__sparc64__) -# define __NR_inotify_init 151 -# define __NR_inotify_add_watch 152 -# define __NR_inotify_rm_watch 156 - -#elif defined(__x86_64__) -# define __NR_inotify_init 253 -# define __NR_inotify_add_watch 254 -# define __NR_inotify_rm_watch 255 - -#else -# error "Unsupported architecture!" -#endif -#endif - -static inline int inotify_init (void) -{ - return syscall (__NR_inotify_init); -} - -static inline int inotify_add_watch (int fd, const char *name, __u32 mask) -{ - return syscall (__NR_inotify_add_watch, fd, name, mask); -} - -static inline int inotify_rm_watch (int fd, __u32 wd) -{ - return syscall (__NR_inotify_rm_watch, fd, wd); -} - -#endif /* _LINUX_INOTIFY_SYSCALLS_H */ diff -Nru liblinux-inotify2-perl-1.1/MANIFEST liblinux-inotify2-perl-1.2/MANIFEST --- liblinux-inotify2-perl-1.1/MANIFEST 2006-09-29 16:40:58.000000000 +0200 +++ liblinux-inotify2-perl-1.2/MANIFEST 2008-10-07 19:25:05.000000000 +0200 @@ -5,9 +5,6 @@ Makefile.PL Inotify2.pm Inotify2.xs -inotify.h -inotify-masks.h -inotify-syscalls.h eg/simple eg/event t/00_load.t diff -Nru liblinux-inotify2-perl-1.1/META.yml liblinux-inotify2-perl-1.2/META.yml --- liblinux-inotify2-perl-1.1/META.yml 2006-09-29 16:40:58.000000000 +0200 +++ liblinux-inotify2-perl-1.2/META.yml 2008-10-07 19:25:05.000000000 +0200 @@ -1,10 +1,12 @@ -# http://module-build.sourceforge.net/META-spec.html -#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# -name: Linux-Inotify2 -version: 1.1 -version_from: Inotify2.pm -installdirs: site -requires: - -distribution_type: module -generated_by: ExtUtils::MakeMaker version 6.30 +--- #YAML:1.0 +name: Linux-Inotify2 +version: 1.2 +abstract: ~ +license: ~ +author: ~ +generated_by: ExtUtils::MakeMaker version 6.44 +distribution_type: module +requires: +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.3.html + version: 1.3 diff -Nru liblinux-inotify2-perl-1.1/README liblinux-inotify2-perl-1.2/README --- liblinux-inotify2-perl-1.1/README 2006-09-29 16:41:00.000000000 +0200 +++ liblinux-inotify2-perl-1.2/README 2008-10-07 19:25:06.000000000 +0200 @@ -2,21 +2,14 @@ Linux::Inotify2 - scalable directory/file change notification SYNOPSIS - Callback interface + Callback Interface use Linux::Inotify2; # create a new object my $inotify = new Linux::Inotify2 - or die "Unable to create new inotify object: $!"; - - # for Event: - Event->io (fd =>$inotify->fileno, poll => 'r', cb => sub { $inotify->poll }); - # for Glib: - add_watch Glib::IO $inotify->fileno, in => sub { $inotify->poll }; - # manually: - 1 while $inotify->poll; - - # add watchers + or die "unable to create new inotify object: $!"; + + # add watchers $inotify->watch ("/etc/passwd", IN_ACCESS, sub { my $e = shift; my $name = $e->fullname; @@ -24,11 +17,19 @@ print "$name is no longer mounted\n" if $e->IN_UNMOUNT; print "$name is gone\n" if $e->IN_IGNORED; print "events for $name have been lost\n" if $e->IN_Q_OVERFLOW; - - # cancel this watcher: remove no further events + + # cancel this watcher: remove no further events $e->w->cancel; }); + # integration into AnyEvent (works with POE, Glib, Tk...) + my $inotify_w = AnyEvent->io + fh => $inofity, poll => 'r', cb => sub { $inotify->poll } + ); + + # manual event loop + 1 while $inotify->poll; + Streaming Interface use Linux::Inotify2 ; @@ -230,7 +231,7 @@ queued, will not be handled and resources will be freed. SEE ALSO - Linux::Inotify. + AnyEvent, Linux::Inotify. AUTHOR Marc Lehmann <schm...@schmorp.de>
signature.asc
Description: Digital signature