Author: glen Date: Wed Oct 12 08:06:02 2011 GMT Module: packages Tag: AC-branch ---- Log message: - enable inotify support in tail
---- Files affected: packages/coreutils: coreutils.spec (1.175.2.2 -> 1.175.2.3) , inotify-nosys.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/coreutils/coreutils.spec diff -u packages/coreutils/coreutils.spec:1.175.2.2 packages/coreutils/coreutils.spec:1.175.2.3 --- packages/coreutils/coreutils.spec:1.175.2.2 Mon Apr 4 11:13:45 2011 +++ packages/coreutils/coreutils.spec Wed Oct 12 10:05:57 2011 @@ -8,7 +8,7 @@ Summary(pl.UTF-8): GNU Core-utils - podstawowe narzędzia działające z linii poleceń Name: coreutils Version: 8.10 -Release: 3 +Release: 4 License: GPL v3+ Group: Applications/System Source0: http://ftp.gnu.org/gnu/coreutils/%{name}-%{version}.tar.xz @@ -31,7 +31,7 @@ Patch5: %{name}-date-man.patch Patch6: %{name}-mem.patch Patch7: %{name}-7.4-sttytcsadrain.patch - +Patch8: inotify.patch Patch9: %{name}-fmt-wchars.patch Patch10: %{name}-runuser.patch Patch11: %{name}-split-pam.patch @@ -47,6 +47,7 @@ BuildRequires: automake >= 1:1.11.1 BuildRequires: gcc >= 5:3.2 BuildRequires: gettext-devel >= 0.17 +BuildRequires: glibc-headers >= 6:2.3.6-17 BuildRequires: gmp-devel BuildRequires: help2man BuildRequires: libcap-devel @@ -121,6 +122,7 @@ %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 @@ -256,6 +258,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.175.2.3 2011/10/12 08:05:57 glen +- enable inotify support in tail + Revision 1.175.2.2 2011/04/04 09:13:45 glen - bugfix ================================================================ Index: packages/coreutils/inotify-nosys.patch diff -u /dev/null packages/coreutils/inotify-nosys.patch:1.1 --- /dev/null Wed Oct 12 10:06:02 2011 +++ packages/coreutils/inotify-nosys.patch Wed Oct 12 10:05:57 2011 @@ -0,0 +1,213 @@ +--- coreutils-8.10/m4/jm-macros.m4~ 2011-10-11 21:46:32.000000000 +0300 ++++ coreutils-8.10/m4/jm-macros.m4 2011-10-11 21:46:35.895126130 +0300 +@@ -67,9 +67,21 @@ + AC_CHECK_FUNCS_ONCE([nl_langinfo]) + + # Used by tail.c. +- AC_CHECK_FUNCS([inotify_init], +- [AC_DEFINE([HAVE_INOTIFY], [1], +- [Define to 1 if you have usable inotify support.])]) ++ AC_MSG_CHECKING([whether sys/inotify.h actually works]) ++ AC_RUN_IFELSE( ++ AC_LANG_PROGRAM([[#include <sys/inotify.h>]], ++ [[return (-1 == inotify_init());]] ++ ), ++ [ ++ AC_MSG_RESULT([yup]) ++ AC_DEFINE([SYS_INOTIFY_H_EXISTS_AND_WORKS],[1],[sys/inotify.h exists and works correctly]) ++ ], ++ [ ++ AC_MSG_RESULT([nope, using own inotify headers]) ++ ] ++ AC_DEFINE([HAVE_INOTIFY], [1], ++ [Define to 1 if you have usable inotify support.]) ++ ) + + AC_CHECK_FUNCS_ONCE( \ + endgrent \ +--- coreutils-8.10/src/tail.c~ 2011-01-31 14:40:38.000000000 +0200 ++++ coreutils-8.10/src/tail.c 2011-10-11 22:40:08.891065080 +0300 +@@ -48,7 +48,13 @@ + + #if HAVE_INOTIFY + # include "hash.h" ++ ++#ifdef SYS_INOTIFY_H_EXISTS_AND_WORKS + # include <sys/inotify.h> ++#else ++#include "inotify-nosys.h" ++#endif ++ + /* `select' is used by tail_forever_inotify. */ + # include <sys/select.h> + +--- /dev/null 2008-11-04 20:33:38.146691408 +0200 ++++ coreutils-8.10/lib/inotify-nosys.h 2007-12-30 10:50:22.000000000 +0200 +@@ -0,0 +1,167 @@ ++/* ++ * This header is used if <sys/inotify.h> cannot be found. ++ * ++ * Inode based directory notification for Linux ++ * ++ * Copyright (C) 2005 John McCutchan ++ */ ++ ++#ifndef _LINUX_INOTIFY_H ++#define _LINUX_INOTIFY_H ++ ++#include <stdint.h> ++#include <sys/syscall.h> ++#include <unistd.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 { ++ int wd; /* watch descriptor */ ++ uint32_t mask; /* watch mask */ ++ uint32_t cookie; /* cookie to synchronize two events */ ++ uint32_t len; /* length (including nulls) of name */ ++ char name __flexarr; /* stub for possible 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) ++ ++#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 ++ ++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 /* _LINUX_INOTIFY_H */ ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/coreutils/coreutils.spec?r1=1.175.2.2&r2=1.175.2.3&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
