[Pkg-utopia-commits] r1301 - in packages/experimental/hal/debian: .
patches
Michael Biebl
biebl at alioth.debian.org
Wed Mar 21 20:07:54 CET 2007
Author: biebl
Date: 2007-03-21 19:07:54 +0000 (Wed, 21 Mar 2007)
New Revision: 1301
Added:
packages/experimental/hal/debian/patches/50_inotify_h.patch
Modified:
packages/experimental/hal/debian/changelog
Log:
Debian unstable still ships glibc 2.3 which doesn't have sys/inotify.h (which is now used to monitor the fdi cache).
This patch adds a local copy of this file.
Modified: packages/experimental/hal/debian/changelog
===================================================================
--- packages/experimental/hal/debian/changelog 2007-03-21 19:01:56 UTC (rev 1300)
+++ packages/experimental/hal/debian/changelog 2007-03-21 19:07:54 UTC (rev 1301)
@@ -28,6 +28,10 @@
* debian/patches/55_nonpolkit-mount-policy.patch
- Removed. We depend on PolicyKit now to check if a user is authorized to
mount local partitions.
+ * debian/patches/50_inotify_h.patch
+ - Added. This patch makes hal compile on systems with glibc < 2.4, which
+ do not ship the sys/inotify.h header.
+ Inotify is used to monitor the fdi cache.
-- Michael Biebl <biebl at debian.org> Tue, 20 Mar 2007 21:01:01 +0100
Added: packages/experimental/hal/debian/patches/50_inotify_h.patch
===================================================================
--- packages/experimental/hal/debian/patches/50_inotify_h.patch 2007-03-21 19:01:56 UTC (rev 1300)
+++ packages/experimental/hal/debian/patches/50_inotify_h.patch 2007-03-21 19:07:54 UTC (rev 1301)
@@ -0,0 +1,215 @@
+diff --git a/hald/linux/inotify.h b/hald/linux/inotify.h
+new file mode 100644
+index 0000000..d4d000e
+--- /dev/null
++++ b/hald/linux/inotify.h
+@@ -0,0 +1,192 @@
++/*
++ * udev_sysdeps.h - wrapping of libc features and kernel defines
++ *
++ * Copyright (C) 2005-2006 Kay Sievers <kay.sievers at vrfy.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation version 2 of the License.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _UDEV_SYSDEPS_H_
++#define _UDEV_SYSDEPS_H_
++
++#include <string.h>
++#include <unistd.h>
++#include <stdint.h>
++
++/* needed until Inotify! syscalls reach glibc */
++#include <sys/syscall.h>
++#ifndef __NR_inotify_init
++#if defined(__i386__)
++# define __NR_inotify_init 291
++# define __NR_inotify_add_watch 292
++# define __NR_inotify_rm_watch 293
++#elif defined(__x86_64__)
++# define __NR_inotify_init 253
++# define __NR_inotify_add_watch 254
++# define __NR_inotify_rm_watch 255
++#elif defined(__powerpc__) || defined(__powerpc64__)
++# define __NR_inotify_init 275
++# define __NR_inotify_add_watch 276
++# define __NR_inotify_rm_watch 277
++#elif defined (__ia64__)
++# define __NR_inotify_init 1277
++# define __NR_inotify_add_watch 1278
++# define __NR_inotify_rm_watch 1279
++#elif defined (__s390__)
++# define __NR_inotify_init 284
++# define __NR_inotify_add_watch 285
++# define __NR_inotify_rm_watch 286
++#elif defined (__mc68000__)
++# define __NR_inotify_init 284
++# define __NR_inotify_add_watch 285
++# define __NR_inotify_rm_watch 286
++#elif defined (__alpha__)
++# define __NR_inotify_init 444
++# define __NR_inotify_add_watch 445
++# define __NR_inotify_rm_watch 446
++#elif defined (__sparc__) || defined (__sparc64__)
++# define __NR_inotify_init 151
++# define __NR_inotify_add_watch 152
++# define __NR_inotify_rm_watch 156
++#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 (__sh__)
++# define __NR_inotify_init 290
++# define __NR_inotify_add_watch 291
++# define __NR_inotify_rm_watch 292
++#elif defined (__m32r__)
++# define __NR_inotify_init 290
++# define __NR_inotify_add_watch 291
++# define __NR_inotify_rm_watch 292
++#elif defined (__hppa__)
++# define __NR_inotify_init 269
++# define __NR_inotify_add_watch 270
++# define __NR_inotify_rm_watch 271
++#elif defined (__mips__)
++# include <sgidefs.h>
++# if _MIPS_SIM == _MIPS_SIM_ABI32
++# define __NR_Linux 4000
++# define __NR_inotify_init (__NR_Linux + 284)
++# define __NR_inotify_add_watch (__NR_Linux + 285)
++# define __NR_inotify_rm_watch (__NR_Linux + 286)
++# elif _MIPS_SIM == _MIPS_SIM_ABI64
++# define __NR_Linux 5000
++# define __NR_inotify_init (__NR_Linux + 243)
++# define __NR_inotify_add_watch (__NR_Linux + 244)
++# define __NR_inotify_rm_watch (__NR_Linux + 245)
++# elif _MIPS_SIM == _MIPS_SIM_NABI32
++# define __NR_Linux 6000
++# define __NR_inotify_init (__NR_Linux + 247)
++# define __NR_inotify_add_watch (__NR_Linux + 248)
++# define __NR_inotify_rm_watch (__NR_Linux + 249)
++# endif
++#else
++# warning "inotify unsupported on this architecture!"
++#endif
++#endif /* __NR_inotify_init */
++
++/* dummy if we don't have the syscalls defined */
++#ifndef __NR_inotify_init
++static inline int inotify_init(void)
++{
++ return -1;
++}
++
++static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
++{
++ return -1;
++}
++
++static inline int inotify_rm_watch(int fd, uint32_t wd)
++{
++ return -1;
++}
++#else
++static inline int inotify_init(void)
++{
++ return syscall(__NR_inotify_init);
++}
++
++static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
++{
++ return syscall(__NR_inotify_add_watch, fd, name, mask);
++}
++
++static inline int inotify_rm_watch(int fd, uint32_t wd)
++{
++ return syscall(__NR_inotify_rm_watch, fd, wd);
++}
++#endif /* __NR_inotify_init */
++
++#ifndef IN_CREATE
++#define IN_CREATE 0x00000100 /* Subfile was created */
++#define IN_MOVED_FROM 0x00000040 /* File was moved from X */
++#define IN_MOVED_TO 0x00000080 /* File was moved to Y */
++#define IN_DELETE 0x00000200 /* Subfile was deleted */
++#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */
++#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
++#endif /* IN_CREATE */
++
++struct inotify_event {
++ int wd;
++ uint32_t mask;
++ uint32_t cookie;
++ uint32_t len;
++ char name[];
++};
++
++/* 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
+diff --git a/hald/linux/osspec.c b/hald/linux/osspec.c
+index 5c2bed4..3d40e91 100644
+--- a/hald/linux/osspec.c
++++ b/hald/linux/osspec.c
+@@ -43,7 +43,12 @@
+ #include <sys/un.h>
+ #include <sys/utsname.h>
+ #include <unistd.h>
++
++#ifdef HAVE_SYS_INOTIFY_H
+ #include <sys/inotify.h>
++#else
++#include "inotify.h"
++#endif
+
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib.h>
More information about the Pkg-utopia-commits
mailing list