diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2012-05-31 16:32:49 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2012-05-31 16:32:49 +0000 |
commit | 2ed96c6eb798c762b61a93a8b4cf80220c00ac1f (patch) | |
tree | c5236b776b3871b4608cb683bb2500b9c20567ba | |
parent | f5a8de28b86c2c838a28e79aa54f8b4c3fbd869e (diff) |
Thu May 31 16:32:49 UTC 2012
89 files changed, 0 insertions, 7870 deletions
diff --git a/community-testing/multipath-tools/all-in-one.patch b/community-testing/multipath-tools/all-in-one.patch deleted file mode 100644 index ff8f6824c..000000000 --- a/community-testing/multipath-tools/all-in-one.patch +++ /dev/null @@ -1,209 +0,0 @@ -diff -rupN upstream/Makefile.inc devel/Makefile.inc ---- upstream/Makefile.inc 2010-05-22 14:01:58.000000000 +0200 -+++ devel/Makefile.inc 2012-05-26 10:14:46.969786387 +0200 -@@ -32,11 +32,10 @@ rcdir = $(prefix)/etc/init.d - syslibdir = $(prefix)/$(LIB) - libdir = $(prefix)/$(LIB)/multipath - --GZIP = /bin/gzip -9 -c - INSTALL_PROGRAM = install - --OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes --CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" -+OPTFLAGS = -Wall -Wunused -Wstrict-prototypes -+CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" - SHARED_FLAGS = -shared - - %.o: %.c -diff -rupN upstream/kpartx/Makefile devel/kpartx/Makefile ---- upstream/kpartx/Makefile 2010-05-22 14:01:58.000000000 +0200 -+++ devel/kpartx/Makefile 2012-05-26 10:23:38.909780754 +0200 -@@ -6,7 +6,7 @@ include ../Makefile.inc - - CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 - --LDFLAGS = -ldevmapper -+LIBS = -ldevmapper - OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \ - gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o - EXEC = kpartx -@@ -14,22 +14,22 @@ EXEC = kpartx - all: $(EXEC) - - $(EXEC): $(OBJS) -- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS) -- $(GZIP) $(EXEC).8 > $(EXEC).8.gz -+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC) - - install: $(EXEC) $(EXEC).8 - $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir) - $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir) -- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d -- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/ -+ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d -+ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules - $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) -- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) -+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir) - - uninstall: - rm -f $(DESTDIR)$(bindir)/$(EXEC) -- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz -+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8 -+ rm -f $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules - - clean: -- rm -f core *.o $(EXEC) *.gz -+ rm -f core *.o $(EXEC) -diff -rupN upstream/kpartx/kpartx.rules devel/kpartx/kpartx.rules ---- upstream/kpartx/kpartx.rules 2010-05-22 14:01:58.000000000 +0200 -+++ devel/kpartx/kpartx.rules 2012-05-26 10:30:32.769776372 +0200 -@@ -27,9 +27,9 @@ ENV{DM_PART}=="?*", \ - - # Create dm tables for partitions - ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="mpath-*", \ -- RUN+="/sbin/kpartx -a -p -part /dev/$name" -+ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name" - ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="dmraid-*", \ -- RUN+="/sbin/kpartx -a -p -part /dev/$name" -+ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name" - - LABEL="kpartx_end" - -diff -rupN upstream/multipath/Makefile devel/multipath/Makefile ---- upstream/multipath/Makefile 2010-05-22 14:01:58.000000000 +0200 -+++ devel/multipath/Makefile 2012-05-26 10:22:38.819781391 +0200 -@@ -7,32 +7,30 @@ include ../Makefile.inc - OBJS = main.o - - CFLAGS += -I$(multipathdir) --LDFLAGS += -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir) -+LIBS = -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath - - EXEC = multipath - - all: $(EXEC) - - $(EXEC): $(OBJS) -- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) -- $(GZIP) $(EXEC).8 > $(EXEC).8.gz -- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz -+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC) - - install: - $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/ -- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d -- $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/ -+ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d -+ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules - $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) -- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) -+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) -- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir) -+ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir) - - uninstall: -- rm $(DESTDIR)/etc/udev/rules.d/multipath.rules -- rm $(DESTDIR)$(bindir)/$(EXEC) -- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz -- rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz -+ rm -f $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules -+ rm -f $(DESTDIR)$(bindir)/$(EXEC) -+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8 -+ rm -f $(DESTDIR)$(man5dir)/$(EXEC).conf.5 - - clean: -- rm -f core *.o $(EXEC) *.gz -+ rm -f core *.o $(EXEC) -diff -rupN upstream/multipath/multipath.rules devel/multipath/multipath.rules ---- upstream/multipath/multipath.rules 2010-05-22 14:01:58.000000000 +0200 -+++ devel/multipath/multipath.rules 2012-05-26 10:17:34.849784609 +0200 -@@ -1,7 +1,24 @@ --# --# udev rules for multipathing. --# The persistent symlinks are created with the kpartx rules --# -+# multipath wants the devmaps presented as meaninglful device names -+# so name them after their devmap name -+SUBSYSTEM!="block", GOTO="end_mpath" - --# socket for uevents --SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event" -+ENV{MPATH_SBIN_PATH}="/sbin" -+TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin" -+ -+ACTION=="add", ENV{DEVTYPE}!="partition", \ -+ ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \ -+ PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -c $tempnode", \ -+ ENV{DM_MULTIPATH_DEVICE_PATH}="1" -+ -+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{DEVTYPE}!="partition", \ -+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}" -+ -+RUN+="socket:/org/kernel/dm/multipath_event" -+KERNEL!="dm-*", GOTO="end_mpath" -+ACTION!="change", GOTO="end_mpath" -+ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10" -+ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath" -+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath" -+ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath" -+RUN+="$env{MPATH_SBIN_PATH}/kpartx -a -p p $tempnode" -+LABEL="end_mpath" -diff -rupN upstream/multipath-tools.spec.in devel/multipath-tools.spec.in ---- upstream/multipath-tools.spec.in 2010-05-22 14:01:58.000000000 +0200 -+++ devel/multipath-tools.spec.in 2012-05-26 10:24:16.989780353 +0200 -@@ -47,8 +47,8 @@ rm -rf $RPM_BUILD_ROOT - %{prefix}/usr/share/man/man8/multipathd.8.gz - %{prefix}/usr/share/man/man5/multipath.conf.5.gz - %{prefix}/sbin/multipathd --%{prefix}/etc/udev/rules.d/multipath.rules --%{prefix}/etc/udev/rules.d/kpartx.rules -+%{prefix}/usr/lib/udev/rules.d/multipath.rules -+%{prefix}/usr/lib/udev/rules.d/kpartx.rules - %{prefix}/lib/udev/kpartx_id - %{prefix}/lib/multipath/*.so - -diff -rupN upstream/multipathd/Makefile devel/multipathd/Makefile ---- upstream/multipathd/Makefile 2010-05-22 14:01:58.000000000 +0200 -+++ devel/multipathd/Makefile 2012-05-26 10:14:46.969786387 +0200 -@@ -6,8 +6,8 @@ include ../Makefile.inc - # basic flags setting - # - CFLAGS += -I$(multipathdir) --LDFLAGS += -lpthread -ldevmapper -lreadline -lncurses -ldl \ -- -lmultipath -L$(multipathdir) -+LIBS = -lpthread -ldevmapper -lreadline -lncurses -ldl \ -+ -L$(multipathdir) -lmultipath - - # - # debuging stuff -@@ -28,21 +28,20 @@ OBJS = main.o pidfile.o uxlsnr.o uxclnt. - all : $(EXEC) - - $(EXEC): $(OBJS) -- $(CC) $(CFLAGS) $(LDFLAGS) -o $(EXEC) $(OBJS) -- $(GZIP) $(EXEC).8 > $(EXEC).8.gz -+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC) - - install: - $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) -- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) -+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir) - - uninstall: - rm -f $(DESTDIR)$(bindir)/$(EXEC) - rm -f $(DESTDIR)$(rcdir)/$(EXEC) -- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz -+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8 - - clean: -- rm -f core *.o $(EXEC) *.gz -+ rm -f core *.o $(EXEC) - diff --git a/community/libmediainfo/gcc-4.7.patch b/community/libmediainfo/gcc-4.7.patch deleted file mode 100644 index 5bdfc53e3..000000000 --- a/community/libmediainfo/gcc-4.7.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff -aur MediaInfoLib/Source/MediaInfo/Reader/Reader_libcurl.cpp MediaInfoLib.patched/Source/MediaInfo/Reader/Reader_libcurl.cpp ---- MediaInfoLib/Source/MediaInfo/Reader/Reader_libcurl.cpp 2012-04-08 20:25:35.000000000 +0200 -+++ MediaInfoLib.patched/Source/MediaInfo/Reader/Reader_libcurl.cpp 2012-04-13 05:14:46.924995168 +0200 -@@ -249,15 +249,15 @@ - #else
- libcurl_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("./" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/local/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/local/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- #endif
- if (!libcurl_Module)
- {
-diff -aur MediaInfoLib/Source/MediaInfoDLL/MediaInfoDLL.h MediaInfoLib.patched/Source/MediaInfoDLL/MediaInfoDLL.h ---- MediaInfoLib/Source/MediaInfoDLL/MediaInfoDLL.h 2012-04-08 12:08:50.000000000 +0200 -+++ MediaInfoLib.patched/Source/MediaInfoDLL/MediaInfoDLL.h 2012-04-13 05:14:05.481020899 +0200 -@@ -248,24 +248,24 @@ -
- #ifdef MEDIAINFO_GLIBC
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- if (!g_module_symbol (MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfo_##_Name)) \
-+ if (!g_module_symbol (MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2, (gpointer*)&MediaInfo_##_Name)) \
- Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- if (!g_module_symbol (MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfoList_##_Name)) \
-+ if (!g_module_symbol (MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2, (gpointer*)&MediaInfoList_##_Name)) \
- Errors++;
- #elif defined (_WIN32) || defined (WIN32)
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfo_##_Name==NULL) Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfoList_##_Name==NULL) Errors++;
- #else
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfo_##_Name==NULL) Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfoList_##_Name==NULL) Errors++;
- #endif
-
-@@ -317,15 +317,15 @@ - #else
- MediaInfo_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("./" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/local/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/local/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- #endif
- if (!MediaInfo_Module)
- return (size_t)-1;
diff --git a/extra/cups-filters/PKGBUILD b/extra/cups-filters/PKGBUILD deleted file mode 100644 index b702d997e..000000000 --- a/extra/cups-filters/PKGBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# $Id: PKGBUILD 160054 2012-05-28 15:36:43Z andyrtr $ -# Maintainer: Andreas Radke <andyrtr@archlinux.org> - -pkgname=cups-filters -pkgver=1.0.18 -pkgrel=2 -pkgdesc="OpenPrinting CUPS Filters" -arch=('i686' 'x86_64') -url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" -license=('GPL') -depends=('lcms2' 'poppler') -makedepends=('ghostscript') -optdepends=('ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images' - 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly' - 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly' - 'foomatic-db-nonfree: drivers use Ghostscript to convert PostScript to a printable form directly') -backup=(etc/fonts/conf.d/99pdftoopvp.conf) -source=(http://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.gz) -md5sums=(63972b426b7224915cdbb42b2a937374'') - -build() { - cd "$srcdir/$pkgname-$pkgver" - ./configure --prefix=/usr --sysconfdir=/etc - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - #make DESTDIR="$pkgdir/" install - make install BUILDROOT="$pkgdir/" - # drop static lib - rm -f ${pkgdir}/usr/lib/*.a -} diff --git a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch b/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch deleted file mode 100644 index 6a83fef1c..000000000 --- a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch +++ /dev/null @@ -1,268 +0,0 @@ -From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001 -From: Linus Torvalds <torvalds@linux-foundation.org> -Date: Tue, 17 Jan 2012 15:21:19 -0800 -Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very -robust, and it also doesn't match the permission checking of any of the -other related files. - -This changes it to do the permission checks at open time, and instead of -tracking the process, it tracks the VM at the time of the open. That -simplifies the code a lot, but does mean that if you hold the file -descriptor open over an execve(), you'll continue to read from the _old_ -VM. - -That is different from our previous behavior, but much simpler. If -somebody actually finds a load where this matters, we'll need to revert -this commit. - -I suspect that nobody will ever notice - because the process mapping -addresses will also have changed as part of the execve. So you cannot -actually usefully access the fd across a VM change simply because all -the offsets for IO would have changed too. - -Reported-by: Jüri Aedla <asd@ut.ee> -Cc: Al Viro <viro@zeniv.linux.org.uk> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - fs/proc/base.c | 145 +++++++++++++++----------------------------------------- - 1 files changed, 39 insertions(+), 106 deletions(-) - -diff --git a/fs/proc/base.c b/fs/proc/base.c -index 5485a53..662ddf2 100644 ---- a/fs/proc/base.c -+++ b/fs/proc/base.c -@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path) - return result; - } - --static struct mm_struct *__check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- -- mm = get_task_mm(task); -- if (!mm) -- return ERR_PTR(-EINVAL); -- -- /* -- * A task can always look at itself, in case it chooses -- * to use system calls instead of load instructions. -- */ -- if (task == current) -- return mm; -- -- /* -- * If current is actively ptrace'ing, and would also be -- * permitted to freshly attach with ptrace now, permit it. -- */ -- if (task_is_stopped_or_traced(task)) { -- int match; -- rcu_read_lock(); -- match = (ptrace_parent(task) == current); -- rcu_read_unlock(); -- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) -- return mm; -- } -- -- /* -- * No one else is allowed. -- */ -- mmput(mm); -- return ERR_PTR(-EPERM); --} -- --/* -- * If current may access user memory in @task return a reference to the -- * corresponding mm, otherwise ERR_PTR. -- */ --static struct mm_struct *check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- int err; -- -- /* -- * Avoid racing if task exec's as we might get a new mm but validate -- * against old credentials. -- */ -- err = mutex_lock_killable(&task->signal->cred_guard_mutex); -- if (err) -- return ERR_PTR(err); -- -- mm = __check_mem_permission(task); -- mutex_unlock(&task->signal->cred_guard_mutex); -- -- return mm; --} -- --struct mm_struct *mm_for_maps(struct task_struct *task) -+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) - { - struct mm_struct *mm; - int err; -@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - - mm = get_task_mm(task); - if (mm && mm != current->mm && -- !ptrace_may_access(task, PTRACE_MODE_READ)) { -+ !ptrace_may_access(task, mode)) { - mmput(mm); - mm = ERR_PTR(-EACCES); - } -@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - return mm; - } - -+struct mm_struct *mm_for_maps(struct task_struct *task) -+{ -+ return mm_access(task, PTRACE_MODE_READ); -+} -+ - static int proc_pid_cmdline(struct task_struct *task, char * buffer) - { - int res = 0; -@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = { - - static int mem_open(struct inode* inode, struct file* file) - { -- file->private_data = (void*)((long)current->self_exec_id); -+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ struct mm_struct *mm; -+ -+ if (!task) -+ return -ESRCH; -+ -+ mm = mm_access(task, PTRACE_MODE_ATTACH); -+ put_task_struct(task); -+ -+ if (IS_ERR(mm)) -+ return PTR_ERR(mm); -+ - /* OK to pass negative loff_t, we can catch out-of-range */ - file->f_mode |= FMODE_UNSIGNED_OFFSET; -+ file->private_data = mm; -+ - return 0; - } - - static ssize_t mem_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) - { -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ int ret; - char *page; - unsigned long src = *ppos; -- int ret = -ESRCH; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- ret = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out; -- -- mm = check_mem_permission(task); -- ret = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- ret = -EIO; -- -- if (file->private_data != (void*)((long)current->self_exec_id)) -- goto out_put; -+ return -ENOMEM; - - ret = 0; - -@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf, - } - *ppos = src; - --out_put: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out: -- put_task_struct(task); --out_no_task: - return ret; - } - -@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - { - int copied; - char *page; -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - unsigned long dst = *ppos; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- copied = -ESRCH; -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- copied = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out_task; -- -- mm = check_mem_permission(task); -- copied = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- copied = -EIO; -- if (file->private_data != (void *)((long)current->self_exec_id)) -- goto out_mm; -+ return -ENOMEM; - - copied = 0; - while (count > 0) { -@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - } - *ppos = dst; - --out_mm: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out_task: -- put_task_struct(task); --out_no_task: - return copied; - } - -@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig) - return file->f_pos; - } - -+static int mem_release(struct inode *inode, struct file *file) -+{ -+ struct mm_struct *mm = file->private_data; -+ -+ mmput(mm); -+ return 0; -+} -+ - static const struct file_operations proc_mem_operations = { - .llseek = mem_lseek, - .read = mem_read, - .write = mem_write, - .open = mem_open, -+ .release = mem_release, - }; - - static ssize_t environ_read(struct file *file, char __user *buf, --- -1.7.6.5 - diff --git a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch b/kernels/linux-libre-aufs_friendly/dib0700-fix.patch deleted file mode 100644 index 48f07e6fd..000000000 --- a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch +++ /dev/null @@ -1,1487 +0,0 @@ -commit 198c545cd7306dc90aaae1d61e64175e70a70dc8 -Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> -Date: Wed Aug 3 17:08:21 2011 +0200 - - [media] DiBcom: protect the I2C bufer access - - This patch protect the I2C buffer access in order to manage concurrent - access. This protection is done using mutex. - Furthermore, for the dib9000, if a pid filtering command is - received during the tuning, this pid filtering command is delayed to - avoid any concurrent access issue. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c -index 1d47d4d..dc1cb17 100644 ---- a/drivers/media/dvb/frontends/dib0070.c -+++ b/drivers/media/dvb/frontends/dib0070.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -78,10 +79,18 @@ struct dib0070_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - --static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) -+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0070 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } - state->i2c_write_buffer[0] = reg; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0070 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { \ -@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter - state->cfg = cfg; - state->i2c = i2c; - state->fe = fe; -+ mutex_init(&state->i2c_buffer_lock); - fe->tuner_priv = state; - - if (dib0070_reset(fe) != 0) -diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c -index c9c935a..b174d1c 100644 ---- a/drivers/media/dvb/frontends/dib0090.c -+++ b/drivers/media/dvb/frontends/dib0090.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -196,6 +197,7 @@ struct dib0090_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - struct dib0090_fw_state { -@@ -208,10 +210,18 @@ struct dib0090_fw_state { - struct i2c_msg msg; - u8 i2c_write_buffer[2]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = reg & 0xff; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(&state->msg, 0, sizeof(struct i2c_msg)); -@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = val >> 8; - state->i2c_write_buffer[1] = val & 0xff; - -@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0) -@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (config->wbd == NULL) -@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (dib0090_fw_reset_digital(fe, st->config) != 0) -diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c -index 79cb1c2..dbb76d7 100644 ---- a/drivers/media/dvb/frontends/dib7000m.c -+++ b/drivers/media/dvb/frontends/dib7000m.c -@@ -11,6 +11,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -55,6 +56,7 @@ struct dib7000m_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000m_power_mode { -@@ -69,6 +71,13 @@ enum dib7000m_power_mode { - - static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) | 0x80; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d",reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf) - { -@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - st->timf_default = cfg->bw->timf; - -diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c -index 0c9f40c..292bc19 100644 ---- a/drivers/media/dvb/frontends/dib7000p.c -+++ b/drivers/media/dvb/frontends/dib7000p.c -@@ -10,6 +10,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_math.h" - #include "dvb_frontend.h" -@@ -68,6 +69,7 @@ struct dib7000p_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000p_power_mode { -@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff); - - static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf) -@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau - return -ENOMEM; - - dpst->i2c_adap = i2c; -+ mutex_init(&dpst->i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - dpst->cfg = cfg[k]; -@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */ - -@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - st->version = dib7000p_read_word(st, 897); - - /* FIXME: make sure the dev.parent field is initialized, or else -- request_firmware() will hit an OOPS (this should be moved somewhere -- more common) */ -+ request_firmware() will hit an OOPS (this should be moved somewhere -+ more common) */ -+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent; - - dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr); - -diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c -index 7d2ea11..fe284d5 100644 ---- a/drivers/media/dvb/frontends/dib8000.c -+++ b/drivers/media/dvb/frontends/dib8000.c -@@ -10,6 +10,8 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> -+ - #include "dvb_math.h" - - #include "dvb_frontend.h" -@@ -37,6 +39,7 @@ struct i2c_device { - u8 addr; - u8 *i2c_write_buffer; - u8 *i2c_read_buffer; -+ struct mutex *i2c_buffer_lock; - }; - - struct dib8000_state { -@@ -77,6 +80,7 @@ struct dib8000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib8000_power_mode { -@@ -86,24 +90,39 @@ enum dib8000_power_mode { - - static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg) - { -+ u16 ret; - struct i2c_msg msg[2] = { -- {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 2}, -- {.addr = i2c->addr >> 1, .flags = I2C_M_RD, -- .buf = i2c->i2c_read_buffer, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2}, - }; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ -+ msg[0].buf = i2c->i2c_write_buffer; - msg[0].buf[0] = reg >> 8; - msg[0].buf[1] = reg & 0xff; -+ msg[1].buf = i2c->i2c_read_buffer; - - if (i2c_transfer(i2c->adap, msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ mutex_unlock(i2c->i2c_buffer_lock); -+ return ret; - } - - static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static u32 dib8000_read32(struct dib8000_state *state, u16 reg) -@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg) - - static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val) - { -- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 4}; -+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4}; - int ret = 0; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ msg.buf = i2c->i2c_write_buffer; - msg.buf[0] = (reg >> 8) & 0xff; - msg.buf[1] = reg & 0xff; - msg.buf[2] = (val >> 8) & 0xff; - msg.buf[3] = val & 0xff; - - ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(i2c->i2c_buffer_lock); - - return ret; - } - - static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static const s16 coeff_2k_sb_1seg_dqpsk[8] = { -@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - if (!client.i2c_read_buffer) { - dprintk("%s: not enough memory", __func__); - ret = -ENOMEM; -- goto error_memory; -+ goto error_memory_read; -+ } -+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL); -+ if (!client.i2c_buffer_lock) { -+ dprintk("%s: not enough memory", __func__); -+ ret = -ENOMEM; -+ goto error_memory_lock; - } -+ mutex_init(client.i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - /* designated i2c address */ -@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - } - - error: -+ kfree(client.i2c_buffer_lock); -+error_memory_lock: - kfree(client.i2c_read_buffer); --error_memory: -+error_memory_read: - kfree(client.i2c_write_buffer); - - return ret; -@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s - state->i2c.addr = i2c_addr; - state->i2c.i2c_write_buffer = state->i2c_write_buffer; - state->i2c.i2c_read_buffer = state->i2c_read_buffer; -+ mutex_init(&state->i2c_buffer_lock); -+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock; - state->gpio_val = cfg->gpio_val; - state->gpio_dir = cfg->gpio_dir; - -diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c -index a085588..b931074 100644 ---- a/drivers/media/dvb/frontends/dib9000.c -+++ b/drivers/media/dvb/frontends/dib9000.c -@@ -38,6 +38,15 @@ struct i2c_device { - #define DibInitLock(lock) mutex_init(lock) - #define DibFreeLock(lock) - -+struct dib9000_pid_ctrl { -+#define DIB9000_PID_FILTER_CTRL 0 -+#define DIB9000_PID_FILTER 1 -+ u8 cmd; -+ u8 id; -+ u16 pid; -+ u8 onoff; -+}; -+ - struct dib9000_state { - struct i2c_device i2c; - -@@ -99,6 +108,10 @@ struct dib9000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[255]; - u8 i2c_read_buffer[255]; -+ DIB_LOCK demod_lock; -+ u8 get_frontend_internal; -+ struct dib9000_pid_ctrl pid_ctrl[10]; -+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */ - }; - - static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio); - int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef; -+ u16 val; -+ int ret; -+ -+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter cmd postpone"); -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); -+ -+ val = dib9000_read_word(state, 294 + 1) & 0xffef; - val |= (onoff & 0x1) << 4; - - dprintk("PID filter enabled %d", onoff); -- return dib9000_write_word(state, 294 + 1, val); -+ ret = dib9000_write_word(state, 294 + 1, val); -+ DibReleaseLock(&state->demod_lock); -+ return ret; -+ - } - EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); - - int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -+ int ret; -+ -+ if (state->pid_ctrl_index != -2) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter postpone"); -+ if (state->pid_ctrl_index < 9) { -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER; -+ state->pid_ctrl[state->pid_ctrl_index].id = id; -+ state->pid_ctrl[state->pid_ctrl_index].pid = pid; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ } else -+ dprintk("can not add any more pid ctrl cmd"); -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); - dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); -- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); -+ ret = dib9000_write_word(state, 300 + 1 + id, -+ onoff ? (1 << 13) | pid : 0); -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - EXPORT_SYMBOL(dib9000_fw_pid_filter); - -@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod) - DibFreeLock(&state->platform.risc.mbx_lock); - DibFreeLock(&state->platform.risc.mem_lock); - DibFreeLock(&state->platform.risc.mem_mbx_lock); -+ DibFreeLock(&state->demod_lock); - dibx000_exit_i2c_master(&st->i2c_master); - - i2c_del_adapter(&st->tuner_adap); -@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe) - { - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend; -- int ret; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); - if (ret < 0) -- return ret; -+ goto error; - } -- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune) -@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend, sub_index_frontend; - fe_status_t stat; -- int ret; -+ int ret = 0; -+ -+ if (state->get_frontend_internal == 0) -+ DibAcquireLock(&state->demod_lock); - - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); -@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.rolloff; - } - } -- return 0; -+ ret = 0; -+ goto return_value; - } - } - - /* get the channel from master chip */ - ret = dib9000_fw_get_channel(fe, fep); - if (ret != 0) -- return ret; -+ goto return_value; - - /* synchronize the cache with the other frontends */ - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { -@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP; - state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff; - } -+ ret = 0; - -- return 0; -+return_value: -+ if (state->get_frontend_internal == 0) -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) -@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - dprintk("dib9000: must specify bandwidth "); - return 0; - } -+ -+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */ -+ DibAcquireLock(&state->demod_lock); -+ - fe->dtv_property_cache.delivery_system = SYS_DVBT; - - /* set the master status */ -@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* check the tune result */ - if (exit_condition == 1) { /* tune failed */ - dprintk("tune failed"); -+ DibReleaseLock(&state->demod_lock); -+ /* tune failed; put all the pid filtering cmd to junk */ -+ state->pid_ctrl_index = -1; - return 0; - } - - dprintk("tune success on frontend%i", index_frontend_success); - - /* synchronize all the channel cache */ -+ state->get_frontend_internal = 1; - dib9000_get_frontend(state->fe[0], fep); -+ state->get_frontend_internal = 0; - - /* retune the other frontends with the found channel */ - channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; -@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* turn off the diversity for the last frontend */ - dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); - -+ DibReleaseLock(&state->demod_lock); -+ if (state->pid_ctrl_index >= 0) { -+ u8 index_pid_filter_cmd; -+ u8 pid_ctrl_index = state->pid_ctrl_index; -+ -+ state->pid_ctrl_index = -2; -+ for (index_pid_filter_cmd = 0; -+ index_pid_filter_cmd <= pid_ctrl_index; -+ index_pid_filter_cmd++) { -+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL) -+ dib9000_fw_pid_filter_ctrl(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER) -+ dib9000_fw_pid_filter(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].id, -+ state->pid_ctrl[index_pid_filter_cmd].pid, -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ } -+ } -+ /* do not postpone any more the pid filtering */ -+ state->pid_ctrl_index = -2; -+ - return 0; - } - -@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - u8 index_frontend; - u16 lock = 0, lock_slave = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - lock_slave |= dib9000_read_lock(state->fe[index_frontend]); - -@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - if ((lock & 0x0008) || (lock_slave & 0x0008)) - *stat |= FE_HAS_LOCK; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, - state->i2c_read_buffer, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); -@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - c = (u16 *)state->i2c_read_buffer; - - *ber = c[10] << 16 | c[11]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) -@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - u8 index_frontend; - u16 *c = (u16 *)state->i2c_read_buffer; - u16 val; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - *strength = 0; - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); -@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - } - - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - -@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - *strength = 65535; - else - *strength += val; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static u32 dib9000_get_snr(struct dvb_frontend *fe) -@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - u8 index_frontend; - u32 snr_master; - -+ DibAcquireLock(&state->demod_lock); - snr_master = dib9000_get_snr(fe); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - snr_master += dib9000_get_snr(state->fe[index_frontend]); -@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - } else - *snr = 0; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c = (u16 *)state->i2c_read_buffer; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - - *unc = c[12]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr) -@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c - DibInitLock(&st->platform.risc.mbx_lock); - DibInitLock(&st->platform.risc.mem_lock); - DibInitLock(&st->platform.risc.mem_mbx_lock); -+ DibInitLock(&st->demod_lock); -+ st->get_frontend_internal = 0; -+ -+ st->pid_ctrl_index = -2; - - st->fe[0] = fe; - fe->demodulator_priv = st; -diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c -index dc5d17a..774d507 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.c -+++ b/drivers/media/dvb/frontends/dibx000_common.c -@@ -1,4 +1,5 @@ - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dibx000_common.h" - -@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)"); - - static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - mst->i2c_write_buffer[0] = (reg >> 8) & 0xff; - mst->i2c_write_buffer[1] = reg & 0xff; - mst->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - mst->msg[0].buf = mst->i2c_write_buffer; - mst->msg[0].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - mst->i2c_write_buffer[0] = reg >> 8; - mst->i2c_write_buffer[1] = reg & 0xff; - -@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) -@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = { -@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = { -@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap, - int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - struct i2c_adapter *i2c_adap, u8 i2c_addr) - { -- u8 tx[4]; -- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 }; -+ int ret; -+ -+ mutex_init(&mst->i2c_buffer_lock); -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg)); -+ mst->msg[0].addr = i2c_addr >> 1; -+ mst->msg[0].flags = 0; -+ mst->msg[0].buf = mst->i2c_write_buffer; -+ mst->msg[0].len = 4; - - mst->device_rev = device_rev; - mst->i2c_adap = i2c_adap; -@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - "DiBX000: could not initialize the master i2c_adapter\n"); - - /* initialize the i2c-master by closing the gate */ -- dibx000_i2c_gate_ctrl(mst, tx, 0, 0); -+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0); -+ -+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1); -+ mutex_unlock(&mst->i2c_buffer_lock); - -- return i2c_transfer(i2c_adap, &m, 1) == 1; -+ return ret; - } - - EXPORT_SYMBOL(dibx000_init_i2c_master); -diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h -index f031165..5e01147 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.h -+++ b/drivers/media/dvb/frontends/dibx000_common.h -@@ -33,6 +33,7 @@ struct dibx000_i2c_master { - struct i2c_msg msg[34]; - u8 i2c_write_buffer[8]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, -commit 45cbff13693d645fa5dcbba964e802e1746b2e57 -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Mon Aug 1 17:45:58 2011 +0200 - - [media] dib0700: protect the dib0700 buffer access - - This patch protects the common buffer access inside the dib0700 in order - to manage concurrent access. This protection is done using mutex. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Javier Marcet <javier@marcet.info> - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 5eb91b4..291b645 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - struct dib0700_state *st = d->priv; - int ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), - REQUEST_GET_VERSION, - USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, -@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - if (fwtype != NULL) - *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | - (st->buf[14] << 8) | st->buf[15]; -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen - int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_GPIO; - st->buf[1] = gpio; -@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - - ret = dib0700_ctrl_wr(d, st->buf, 3); - -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - int ret; - - if (st->fw_version >= 0x10201) { -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_USB_XFER_LEN; - st->buf[1] = (nb_ts_packets >> 8) & 0xff; - st->buf[2] = nb_ts_packets & 0xff; -@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets); - - ret = dib0700_ctrl_wr(d, st->buf, 3); -+ mutex_unlock(&d->usb_mutex); - } else { - deb_info("this firmware does not allow to change the USB xfer len\n"); - ret = -EIO; -@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - - } else { - /* Write request */ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - st->buf[0] = REQUEST_NEW_I2C_WRITE; - st->buf[1] = msg[i].addr << 1; - st->buf[2] = (en_start << 7) | (en_stop << 6) | -@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - USB_TYPE_VENDOR | USB_DIR_OUT, - 0, 0, st->buf, msg[i].len + 4, - USB_CTRL_GET_TIMEOUT); -+ mutex_unlock(&d->usb_mutex); - if (result < 0) { - deb_info("i2c write error (status = %d)\n", result); - break; -@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - for (i = 0; i < num; i++) { - /* fill in the address */ -@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - break; - } - } -+ mutex_unlock(&d->usb_mutex); - mutex_unlock(&d->i2c_mutex); - - return i; -@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - u16 pll_loopdiv, u16 free_div, u16 dsuScaler) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_CLOCK; - st->buf[1] = (en_pll << 7) | (pll_src << 6) | -@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - st->buf[9] = dsuScaler & 0xff; /* LSB */ - - ret = dib0700_ctrl_wr(d, st->buf, 10); -+ mutex_unlock(&d->usb_mutex); - - return ret; - } -@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - { - struct dib0700_state *st = d->priv; - u16 divider; -+ int ret; - - if (scl_kHz == 0) - return -EINVAL; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_I2C_PARAM; - divider = (u16) (30000 / scl_kHz); - st->buf[1] = 0; -@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", - (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | - st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); -- return dib0700_ctrl_wr(d, st->buf, 8); -+ -+ ret = dib0700_ctrl_wr(d, st->buf, 8); -+ mutex_unlock(&d->usb_mutex); -+ -+ return ret; - } - - -@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - } - -+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_ENABLE_VIDEO; - /* this bit gives a kind of command, - * rather than enabling something or not */ -@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - - deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); - -- return dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ mutex_unlock(&adap->dev->usb_mutex); -+ -+ return ret; - } - - int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) -@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - struct dib0700_state *st = d->priv; - int new_proto, ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_RC; - st->buf[1] = 0; - st->buf[2] = 0; -@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - else if (rc_type == RC_TYPE_NEC) - new_proto = 0; - else if (rc_type == RC_TYPE_RC6) { -- if (st->fw_version < 0x10200) -- return -EINVAL; -+ if (st->fw_version < 0x10200) { -+ ret = -EINVAL; -+ goto out; -+ } - - new_proto = 2; -- } else -- return -EINVAL; -+ } else { -+ ret = -EINVAL; -+ goto out; -+ } - - st->buf[1] = new_proto; - - ret = dib0700_ctrl_wr(d, st->buf, 3); - if (ret < 0) { - err("ir protocol setup failed"); -- return ret; -+ goto out; - } - - d->props.rc.core.protocol = rc_type; - -+out: -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -commit aeb2d456b746164a4bd19e53de0a6678ca63fcad -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Thu Aug 4 18:10:03 2011 +0200 - - [media] dib0700: correct error message - - The goal of this patch is to correct a previous patch. In case of error, - the err() function should be used instead of dprintk() function. - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 291b645..b693ed1 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - - if (st->fw_version >= 0x10201) { - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - } else { - /* Write request */ - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - st->buf[0] = REQUEST_NEW_I2C_WRITE; -@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - return -EINVAL; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - - if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - int new_proto, ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - diff --git a/kernels/linux-libre-aufs_friendly/fix-i915.patch b/kernels/linux-libre-aufs_friendly/fix-i915.patch deleted file mode 100644 index 3b631361a..000000000 --- a/kernels/linux-libre-aufs_friendly/fix-i915.patch +++ /dev/null @@ -1,26 +0,0 @@ -Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> -Tested-by: Santi <santi@agolina.net> ---- - drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c -index dc83b7a..c8f67bf 100644 ---- a/drivers/gpu/drm/i915/intel_tv.c -+++ b/drivers/gpu/drm/i915/intel_tv.c -@@ -1267,6 +1267,15 @@ - DAC_B_0_7_V | - DAC_C_0_7_V); - -+ /* -+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise -+ * the TV is misdetected. This is hardware requirement. -+ */ -+ if (IS_GM45(dev)) -+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | -+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); -+ -+ - I915_WRITE(TV_CTL, tv_ctl); - I915_WRITE(TV_DAC, tv_dac); - POSTING_READ(TV_DAC); diff --git a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch b/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch deleted file mode 100644 index e1addbb05..000000000 --- a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4 -Author: Thomas Bächler <thomas@archlinux.org> -Date: Mon Oct 31 19:16:18 2011 +0100 - - Change accidental error message to debug message. - - According to https://lkml.org/lkml/2011/9/19/80, this is not supposed - to be an error message, but a debug message. This worries users. - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 04411ad..02d5794 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev) - } else { - /* Enable SSC on PCH eDP if needed */ - if (intel_panel_use_ssc(dev_priv)) { -- DRM_ERROR("enabling SSC on PCH\n"); -+ DRM_DEBUG("enabling SSC on PCH\n"); - temp |= DREF_SUPERSPREAD_SOURCE_ENABLE; - } - } diff --git a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch b/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch deleted file mode 100644 index 5840c9181..000000000 --- a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 389a55581e30607af0fcde6cdb4e54f189cf46cf -Author: Chris Wilson <chris@chris-wilson.co.uk> -Date: Tue Nov 29 15:12:16 2011 +0000 - - drm/i915: Only clear the GPU domains upon a successful finish - - By clearing the GPU read domains before waiting upon the buffer, we run - the risk of the wait being interrupted and the domains prematurely - cleared. The next time we attempt to wait upon the buffer (after - userspace handles the signal), we believe that the buffer is idle and so - skip the wait. - - There are a number of bugs across all generations which show signs of an - overly haste reuse of active buffers. - - Such as: - - https://bugs.freedesktop.org/show_bug.cgi?id=29046 - https://bugs.freedesktop.org/show_bug.cgi?id=35863 - https://bugs.freedesktop.org/show_bug.cgi?id=38952 - https://bugs.freedesktop.org/show_bug.cgi?id=40282 - https://bugs.freedesktop.org/show_bug.cgi?id=41098 - https://bugs.freedesktop.org/show_bug.cgi?id=41102 - https://bugs.freedesktop.org/show_bug.cgi?id=41284 - https://bugs.freedesktop.org/show_bug.cgi?id=42141 - - A couple of those pre-date i915_gem_object_finish_gpu(), so may be - unrelated (such as a wild write from a userspace command buffer), but - this does look like a convincing cause for most of those bugs. - - Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> - Cc: stable@kernel.org - Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> - Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index d560175..036bc58 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj) - return ret; - } - -+ ret = i915_gem_object_wait_rendering(obj); -+ if (ret) -+ return ret; -+ - /* Ensure that we invalidate the GPU's caches and TLBs. */ - obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS; -- -- return i915_gem_object_wait_rendering(obj); -+ return 0; - } - - /** diff --git a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch b/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch deleted file mode 100644 index a53a3a425..000000000 --- a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch +++ /dev/null @@ -1,38 +0,0 @@ -This fix regression introduced by commit: - -commit 15b3f3b006b42a678523cad989bfd60b76bf4403 -Author: Wey-Yi Guy <wey-yi.w.guy@intel.com> -Date: Fri Jun 3 07:54:13 2011 -0700 - - iwlagn: set smps mode after assoc for 1000 device - -Also remove unneeded brackets on the way. - -Address: -https://bugzilla.redhat.com/show_bug.cgi?id=744155 - -If fix will not get 3.1 release, it should be applied in 3.1 stable. - -Cc: stable@kernel.org # 3.1+ -Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> ---- - drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -index ca632f9..5004342 100644 ---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv, - return ret; - } - -- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) && -- priv->cfg->ht_params->smps_mode) -+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && -+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode) - ieee80211_request_smps(ctx->vif, - priv->cfg->ht_params->smps_mode); - --- -1.7.1 diff --git a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch deleted file mode 100644 index 880849db5..000000000 --- a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001 -From: NeilBrown <neilb@suse.de> -Date: Mon, 31 Oct 2011 12:59:44 +1100 -Subject: md/raid10: Fix bug when activating a hot-spare. - -From: NeilBrown <neilb@suse.de> - -commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream. - -This is a fairly serious bug in RAID10. - -When a RAID10 array is degraded and a hot-spare is activated, the -spare does not take up the empty slot, but rather replaces the first -working device. -This is likely to make the array non-functional. It would normally -be possible to recover the data, but that would need care and is not -guaranteed. - -This bug was introduced in commit - 2bb77736ae5dca0a189829fbb7379d43364a9dac -which first appeared in 3.1. - -Signed-off-by: NeilBrown <neilb@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/md/raid10.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/md/raid10.c -+++ b/drivers/md/raid10.c -@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde - mirror_info_t *p = &conf->mirrors[mirror]; - if (p->recovery_disabled == mddev->recovery_disabled) - continue; -- if (!p->rdev) -+ if (p->rdev) - continue; - - disk_stack_limits(mddev->gendisk, rdev->bdev, diff --git a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch b/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch deleted file mode 100644 index 9e570dd3f..000000000 --- a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch +++ /dev/null @@ -1,99 +0,0 @@ -commit 2394d67e446bf616a0885167d5f0d397bdacfdfc -Author: Oliver Neukum <oneukum@suse.de> -Date: Tue Sep 13 08:42:21 2011 +0200 - - USB: add RESET_RESUME for webcams shown to be quirky - - The new runtime PM code has shown that many webcams suffer - from a race condition that may crash them upon resume. - Runtime PM is especially prone to show the problem because - it retains power to the cameras at all times. However - system suspension may also crash the devices and retain - power to the devices. - The only way to solve this problem without races is in - usbcore with the RESET_RESUME quirk. - - Signed-off-by: Oliver Neukum <oneukum@suse.de> - Signed-off-by: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 81ce6a8..38f0510 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Creative SB Audigy 2 NX */ - { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C200 */ -+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C250 */ -+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam B/C500 */ -+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam Pro 9000 */ -+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C310 */ -+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C270 */ -+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Harmony 700-series */ - { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, - -@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = { - { USB_DEVICE(0x06a3, 0x0006), .driver_info = - USB_QUIRK_CONFIG_INTF_STRINGS }, - -+ /* Guillemot Webcam Hercules Dualpix Exchange*/ -+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* M-Systems Flash Disk Pioneers */ - { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, - -commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc -Author: Jon Levell <linuxusb@coralbark.net> -Date: Thu Sep 29 20:42:52 2011 +0100 - - USB: add quirk for Logitech C300 web cam - - My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound. - The following trivial patch fixes it. - - Signed-off-by: Jon Levell <linuxusb@coralbark.net> - Cc: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 38f0510..d6a8d82 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam C250 */ - { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C300 */ -+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index d6a8d82..caa1991 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C600 */ -+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam Pro 9000 */ - { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, - diff --git a/libre-testing/icedove-libre/PKGBUILD b/libre-testing/icedove-libre/PKGBUILD deleted file mode 100644 index 9beba51a8..000000000 --- a/libre-testing/icedove-libre/PKGBUILD +++ /dev/null @@ -1,87 +0,0 @@ -# Maintainer : Márcio Silva <coadde@adinet.com.uy> -# Maintainer : André Silva <andre.paulista@adinet.com.uy> -# Contributor: Esteban V. Carnevale <evcarnevale@gmail.com> - -# We're getting this from Debian Sid -_debname=icedove -_debver=10.0.3 -_debrel=3 -_debrepo=http://ftp.debian.org/debian/pool/main/ -debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } - -_pkgname=$_debname -pkgname=$_debname-libre -pkgver=$_debver -pkgrel=1 -pkgdesc="A libre version of Debian Icedove, the Standalone Mail/News reader based on Mozilla thunderbird." -arch=('i586' 'i686' 'x86_64' 'mips64el') -license=('GPL2' 'MPL' 'LGPL') -depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification') -makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt') -optdepends=('libcanberra: for sound support') -url="http://packages.debian.org/source/sid/$_pkgname" -install=$_pkgname.install -source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" - "$_debrepo/`debfile $_debname`_$_debver-$_debrel.debian.tar.gz" - "$_debrepo/`debfile $_debname`_$_debver-$_debrel.dsc" - mozconfig - channel-prefs.js - vendor.js - makefile.patch - gcc47.patch - rules.patch - searchplugins-libre.patch) -md5sums=('3efe2ef4d5471aae3b79531ce8aee9dc' - 'cb3dba2916bdf2deb72248b0984c4302' - '57e21e997a75d85fcc0dcfe30b83f1ee' - '76e01cfd6de4d4289265882774d1ba7d' - '476ec205162340fb0679f522c9d31c3b' - '4eecc4fc5aafaf0da651a09eadc90bee' - '5a6282bb005d596aa4ab1884ac6b0517' - '66376a8e934013078f0e646e49614937' - '2e6a57dc04b4a7255f5f1f3642af23ac' - '8f6d5be227bb68e1558dd6674cbba446') - -build() { - export QUILT_PATCHES=debian/patches - export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' - export QUILT_DIFF_ARGS='--no-timestamps' - export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname" - export PYTHON="/usr/bin/python2" - - mv comm-esr10 "$srcdir/mozilla-build" - mv debian "$srcdir/mozilla-build" - - cd "$srcdir/mozilla-build" - quilt push -a - - cp "$srcdir/mozconfig" .mozconfig - patch -Np1 -i "$srcdir/gcc47.patch" - patch -Np1 -i "$srcdir/makefile.patch" - patch -Np1 -i "$srcdir/rules.patch" - - # Removing non-free search plugins replacing them with duckduckgo and identi.ca - patch -Np0 -i "$srcdir/searchplugins-libre.patch" - - make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS" -} - -package() { - cd "$srcdir/mozilla-build" - make -j1 -f client.mk DESTDIR="$pkgdir" install - - install -m644 "$srcdir/vendor.js" "$pkgdir/usr/lib/$_pkgname/defaults/pref" - install -m644 "$srcdir/channel-prefs.js" "$pkgdir/usr/lib/$_pkgname/defaults/pref" # Recommend free addons - - for i in 16x16 22x22 24x24 32x32 48x48 256x256; do - install -Dm644 debian/app-icons/$_pkgname${i/x*/}.png \ - "$pkgdir/usr/share/icons/hicolor/$i/apps/$_pkgname.png" - install -Dm644 debian/app-icons/icedovebig.svg \ - "$pkgdir/usr/share/icons/hicolor/scalable/apps/$_pkgname.svg" - done - - rm -rf "$pkgdir"/usr/lib/$_pkgname/{dictionaries,hyphenation} - ln -sf /usr/share/hunspell "$pkgdir/usr/lib/$_pkgname/dictionaries" - ln -sf /usr/share/hyphen "$pkgdir/usr/lib/$_pkgname/hyphenation" - rm -r "$pkgdir"/usr/{include,lib/$_pkgname-devel,share/idl} # We don't want the development stuff -} diff --git a/libre-testing/icedove-libre/channel-prefs.js b/libre-testing/icedove-libre/channel-prefs.js deleted file mode 100644 index 13b1ba388..000000000 --- a/libre-testing/icedove-libre/channel-prefs.js +++ /dev/null @@ -1,9 +0,0 @@ -//@line 2 "/build/src/comm-release/mail/app/profile/channel-prefs.js" -pref("app.update.channel", "default"); - -//Recommend free addons -pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html"); -pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html"); -pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html"); diff --git a/libre-testing/icedove-libre/gcc47.patch b/libre-testing/icedove-libre/gcc47.patch deleted file mode 100644 index 9824e6ab2..000000000 --- a/libre-testing/icedove-libre/gcc47.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- mozilla-build.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-03-06 14:26:03.000000000 -0200 -+++ mozilla-build/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-04 18:50:02.094431651 -0300 -@@ -8,7 +8,7 @@ - #include <io.h> - #endif - #include <stdio.h> --#if defined(ANDROID) -+#if defined(ANDROID) || defined(OS_POSIX) - #include <unistd.h> - #endif - ---- mozilla-build.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-03-06 14:26:03.000000000 -0200 -+++ mozilla-build/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-04 19:55:24.140455837 -0300 -@@ -6,6 +6,7 @@ - - #include <errno.h> - #include <fcntl.h> -+#include <unistd.h> - - #include "eintr_wrapper.h" - #include "base/logging.h" - ---- mozilla-build.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-03-06 14:26:03.000000000 -0200 -+++ mozilla-build/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-04 20:49:49.756138306 -0300 -@@ -5,6 +5,7 @@ - #include "base/file_util.h" - - #include <fcntl.h> -+#include <unistd.h> - - #include <string> - #include <vector> - ---- mozilla-build.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-03-06 14:26:03.000000000 -0200 -+++ mozilla-build/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-04 20:55:12.678037291 -0300 -@@ -8,6 +8,7 @@ - #include <mach/mach_time.h> - #endif - #include <sys/time.h> -+#include <unistd.h> - #ifdef ANDROID - #include <time64.h> - #else - diff --git a/libre-testing/icedove-libre/icedove.install b/libre-testing/icedove-libre/icedove.install deleted file mode 100644 index 4d4a283db..000000000 --- a/libre-testing/icedove-libre/icedove.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - update-desktop-database -q - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre-testing/icedove-libre/makefile.patch b/libre-testing/icedove-libre/makefile.patch deleted file mode 100644 index 284ca68c2..000000000 --- a/libre-testing/icedove-libre/makefile.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla-build/debian/icedove-branding/Makefile.in 2012-04-05 06:50:17.708640714 -0300 -+++ mozilla-build/debian/icedove-branding/Makefile.in 2012-04-05 06:50:41.902614597 -0300 -@@ -38,7 +38,7 @@ - # Branding Makefile for Icedove branding - - DEPTH = ../../.. --topsrcdir = ../../../ -+topsrcdir = ../../ - srcdir = @srcdir@ - VPATH = @srcdir@ - diff --git a/libre-testing/icedove-libre/mozconfig b/libre-testing/icedove-libre/mozconfig deleted file mode 100644 index 4ad7c655c..000000000 --- a/libre-testing/icedove-libre/mozconfig +++ /dev/null @@ -1,47 +0,0 @@ -ac_add_options --prefix=/usr -ac_add_options --libdir=/usr/lib - -# System libraries -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --with-system-jpeg -ac_add_options --with-system-zlib -ac_add_options --with-system-bz2 -ac_add_options --with-system-png -ac_add_options --with-system-libevent -ac_add_options --with-system-libvpx -ac_add_options --enable-system-hunspell -ac_add_options --enable-system-sqlite -ac_add_options --enable-system-ffi -ac_add_options --enable-system-cairo -ac_add_options --enable-system-pixman -ac_add_options --with-pthreads - -# Features -ac_add_options --enable-startup-notification -ac_add_options --enable-gio - -ac_add_options --disable-gnomevfs -ac_add_options --disable-crashreporter -ac_add_options --disable-updater -ac_add_options --disable-tests -ac_add_options --disable-mochitest -ac_add_options --disable-installer - -# Optimization -ac_add_options --enable-optimize - -export MOZILLA_OFFICIAL=1 -mk_add_options MOZILLA_OFFICIAL=1 -mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/moz-objdir - -# Icedove -ac_add_options --disable-official-branding -ac_add_options --with-branding=debian/icedove-branding - -# Parabola -ac_add_options --disable-safe-browsing -export BUILD_OFFICIAL=1 -mk_add_options BUILD_OFFICIAL=1 - -# Build-generated diff --git a/libre-testing/icedove-libre/rules.patch b/libre-testing/icedove-libre/rules.patch deleted file mode 100644 index ce857ebd3..000000000 --- a/libre-testing/icedove-libre/rules.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- mozilla-build/config/rules.mk.orig 2012-03-06 13:44:49.000000000 -0200 -+++ mozilla-build/config/rules.mk 2012-04-05 22:24:29.473430588 -0300 -@@ -48,11 +48,11 @@ - endif - - ifndef INCLUDED_CONFIG_MK --include $(topsrcdir)/config/config.mk -+include /build/src/mozilla-build/config/config.mk - endif - - ifndef INCLUDED_VERSION_MK --include $(topsrcdir)/config/version.mk -+include /build/src/mozilla-build/config/version.mk - endif - - ifdef SDK_XPIDLSRCS diff --git a/libre-testing/icedove-libre/searchplugins-libre.patch b/libre-testing/icedove-libre/searchplugins-libre.patch deleted file mode 100644 index 19c1ea5ab..000000000 --- a/libre-testing/icedove-libre/searchplugins-libre.patch +++ /dev/null @@ -1,141 +0,0 @@ ---- mail.orig/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300 -+++ mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300 -@@ -1,8 +1,5 @@ --amazondotcom --aol-web-search --bing -+duckduckgo-ssl - eBay --google --twitter -+identica-notice-search -+identica-people-search - wikipedia --yahoo ---- mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300 -+++ /dev/null 2012-04-12 23:52:53.981159155 -0300 -@@ -1,11 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> --<ShortName>Amazon.com</ShortName> --<Description>Amazon.com Search</Description> --<InputEncoding>ISO-8859-1</InputEncoding> --<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image> --<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/"> -- <Param name="field-keywords" value="{searchTerms}"/> -- <Param name="mode" value="blended"/> --</Url> --<SearchForm>http://www.amazon.com/</SearchForm> --</SearchPlugin> ---- mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300 -+++ /dev/null 2012-04-12 23:52:53.981159155 -0300 -@@ -1,10 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> --<os:ShortName>AOL Web Search</os:ShortName> --<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description> --<os:InputEncoding>UTF-8</os:InputEncoding> --<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image> --<SearchForm>http://search.aol.com</SearchForm> --<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search"> -- <os:Param name="query" value="{searchTerms}"/> --</os:Url> --</SearchPlugin> ---- mail/locales/en-US/searchplugins/bing.xml 2012-03-06 13:44:50.000000000 -0200 -+++ /dev/null 2012-04-25 14:16:16.847855589 -0300 -@@ -1,17 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> -- <ShortName>Bing</ShortName> -- <Description>Bing. Search by Microsoft.</Description> -- <InputEncoding>UTF-8</InputEncoding> -- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image> -- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx"> -- <Param name="query" value="{searchTerms}"/> -- <Param name="form" value="OSDJAS"/> -- </Url> -- <Url type="text/html" method="GET" template="http://www.bing.com/search"> -- <Param name="q" value="{searchTerms}"/> -- </Url> -- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search"> -- <Param name="q" value="{searchTerms}"/> -- </Url> -- <SearchForm>http://www.bing.com/search</SearchForm> --</SearchPlugin> ---- mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300 -+++ /dev/null 2012-04-12 23:52:53.981159155 -0300 -@@ -1,14 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> --<ShortName>Google</ShortName> --<Description>Google Search</Description> --<InputEncoding>UTF-8</InputEncoding> --<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image> --<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&hl={moz:locale}&q={searchTerms}"/> --<Url type="text/html" method="GET" template="http://www.google.com/search"> -- <Param name="q" value="{searchTerms}"/> -- <Param name="ie" value="utf-8"/> -- <Param name="oe" value="utf-8"/> -- <Param name="aq" value="t"/> --</Url> --<SearchForm>http://www.google.com</SearchForm> --</SearchPlugin> ---- mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300 -+++ /dev/null 2012-04-12 23:52:53.981159155 -0300 -@@ -1,10 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> --<ShortName>Twitter Search</ShortName> --<Description>Realtime Twitter Search</Description> --<InputEncoding>UTF-8</InputEncoding> --<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image> --<Url type="text/html" method="get" -- template="http://search.twitter.com/search?q={searchTerms}"/> --<SearchForm>http://search.twitter.com/</SearchForm> --</SearchPlugin> -- ---- mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300 -+++ /dev/null 2012-04-12 23:52:53.981159155 -0300 -@@ -1,13 +0,0 @@ --<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> --<ShortName>Yahoo</ShortName> --<Description>Yahoo Search</Description> --<InputEncoding>UTF-8</InputEncoding> --<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image> --<Url type="application/x-suggestions+json" method="GET" -- template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}" /> --<Url type="text/html" method="GET" template="http://search.yahoo.com/search"> -- <Param name="p" value="{searchTerms}"/> -- <Param name="ei" value="UTF-8"/> --</Url> --<SearchForm>http://search.yahoo.com/</SearchForm> --</SearchPlugin> ---- /dev/null 2012-04-12 23:52:53.981159155 -0300 -+++ mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300 -@@ -0,0 +1,11 @@ -+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> -+<os:ShortName>DuckDuckGo RU SSL</os:ShortName> -+<os:Description>DDG Search + Google's suggestions (Russian)</os:Description> -+<os:InputEncoding>UTF-8</os:InputEncoding> -+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image> -+<SearchForm>https://duckduckgo.com/</SearchForm> -+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&kl=ru-ru"> -+</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&hl=ru&q={searchTerms}"> -+</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self"> -+</os:Url> -+</SearchPlugin> ---- /dev/null 2012-04-12 23:52:53.981159155 -0300 -+++ mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300 -@@ -0,0 +1,7 @@ -+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> -+<os:ShortName>Identi.ca Notice Search</os:ShortName> -+<os:InputEncoding>UTF-8</os:InputEncoding> -+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image> -+<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}"> -+</os:Url> -+</SearchPlugin> ---- /dev/null 2012-04-12 23:52:53.981159155 -0300 -+++ mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300 -@@ -0,0 +1,7 @@ -+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> -+<os:ShortName>Identi.ca People Search</os:ShortName> -+<os:InputEncoding>UTF-8</os:InputEncoding> -+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image> -+<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}"> -+</os:Url> -+</SearchPlugin> diff --git a/libre-testing/icedove-libre/vendor.js b/libre-testing/icedove-libre/vendor.js deleted file mode 100644 index 279bdc158..000000000 --- a/libre-testing/icedove-libre/vendor.js +++ /dev/null @@ -1,12 +0,0 @@ -// Forbid application updates -lockPref("app.update.enabled", false); - -// Use LANG environment variable to choose locale -pref("intl.locale.matchOS", true); - -// Disable default mailer checking. -pref("mail.shell.checkDefaultMail", false); - -// Don't disable our bundled extensions in the application directory -pref("extensions.autoDisableScopes", 11); -pref("extensions.shownSelectionUI", true); diff --git a/libre/foomatic/PKGBUILD b/libre/foomatic/PKGBUILD deleted file mode 100644 index 5446bb579..000000000 --- a/libre/foomatic/PKGBUILD +++ /dev/null @@ -1,92 +0,0 @@ -# $Id: PKGBUILD 155771 2012-04-06 10:09:10Z andyrtr $ -# Maintainer: Andreas Radke <andyrtr@archlinux.org> - -pkgbase="foomatic" -pkgname=('foomatic-db' 'foomatic-filters-libre' 'foomatic-db-engine') -arch=('i686' 'x86_64' 'mips64el') # needs to be changed in the subpackages when makepkg will support it -_snapdate=20120406 -_filtersver=4.0.15 -_enginever=4.0.8 -pkgver=${_filtersver}_${_snapdate} -pkgrel=1 -epoch=1 -makedepends=('cups' 'perl' 'libxml2' 'enscript' 'perl' 'net-snmp' 'bash') -#_url=http://www.openprinting.org/download/foomatic/ # switch after build -_url=ftp://ftp.archlinux.org/other/foomatic/ -source=(https://repo.parabolagnulinux.org/other/${pkgbase}-filters-libre-${_filtersver}.tar.gz - ${_url}/$pkgbase-db-engine-${_enginever}.tar.gz - ${_url}/$pkgbase-db-4.0-${_snapdate}.tar.gz) -url="http://www.linuxprinting.org/foomatic.html" -options=('!emptydirs') - -mksource() { - if [ ! -d ${pkgbase}-filters-libre-${_filtersver}/ ]; then - wget -O - http://www.openprinting.org/download/foomatic/foomatic-filters-${_filtersver}.tar.gz | \ - bsdtar xzf - - - mv ${pkgbase}-filters{,-libre}-${_filtersver}/ - fi - - rm -rfv ${pkgbase}-filters-libre-${_filtersver}/test/{lsbfuncs,shfuncs,tcm,tetapi}.sh - bsdtar cvzf ${pkgbase}-filters-libre-${_filtersver}.tar.gz ${pkgbase}-filters-libre-${_filtersver}/ -} - -package_foomatic-db() { - - pkgdesc="Foomatic - The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files." -# arch=('any') - license=('GPL' 'custom') - depends=('perl' 'libxml2') - replaces=('foomatic-db-ppd' 'foomatic-db-hpijs') - conflicts=('foomatic-db-ppd' 'foomatic-db-hpijs') - provides=('foomatic-db-hpijs') - - cd ${srcdir}/${pkgname}-${_snapdate} - ./configure --prefix=/usr - make DESTDIR=${pkgdir} install - install -v -Dm644 ${srcdir}/${pkgname}-${_snapdate}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING -} - -package_foomatic-filters-libre() { - - pkgdesc="Foomatic - Filter scripts used by the printer spoolers to convert the incoming PostScript data into the printer's native format." -# arch=('i686' 'x86_64') - license=('GPL') - backup=(etc/foomatic/filter.conf) - depends=('glibc') - provides=("foomatic-filters=${pkgver}") - replaces=('foomatic-filters') - conflicts=('foomatic-filters') - optdepends=('perl: for the "beh" Backend End Handler used by cups' - 'net-snmp: certain (mostly HP) printers need it to work') - - cd ${srcdir}/${pkgname}-${_filtersver} - ./configure --prefix=/usr --sysconfdir=/etc - make - make DESTDIR=${pkgdir} install -} - -package_foomatic-db-engine() { - - pkgdesc="Foomatic - Foomatic's database engine generates PPD files from the data in Foomatic's XML database. It also contains scripts to directly generate print queues and handle jobs." -# arch=(i686 x86_64) - license=('GPL') - depends=('perl' 'libxml2' 'foomatic-filters' 'bash') - - cd ${srcdir}/foomatic-db-engine-${_enginever} - ./configure --prefix=/usr - make - eval `perl -V:archname` - make DESTDIR=${pkgdir} \ - INSTALLARCHLIB=/usr/lib/perl5/vendor_perl/ \ - INSTALLSITELIB=/usr/lib/perl5/vendor_perl/ \ - INSTALLSITEARCH=/usr/lib/perl5/vendor_perl/ install - /usr/bin/find ${pkgdir} -name '.packlist' -delete - # fix permissions - chmod 755 ${pkgdir}/usr/lib{,/perl5,/perl5/vendor_perl} -} - - -md5sums=('957a07820f47804ce76dbb59cd79cd1b' - '5283cd5125a96dc0b35d896326512b1a' - 'ccb72c201e14bfc5eb23ea839ecc0623') diff --git a/libre/ghostscript-libre/SRCBUILD b/libre/ghostscript-libre/SRCBUILD deleted file mode 100644 index dc28e857e..000000000 --- a/libre/ghostscript-libre/SRCBUILD +++ /dev/null @@ -1,32 +0,0 @@ -# $Id: PKGBUILD 123066 2011-05-07 23:01:49Z stephane $ -# Maintainer: AndyRTR <andyrtr@archlinux.org> -# Maintainer (Parabola): xihh - -pkgname=ghostscript-libre -pkgver=9.04 -pkgrel=5 -pkgdesc="An interpreter for the PostScript language without non-free files" -arch=('any') -license=('GPL3') #non free files removed -url="http://www.ghostscript.com/" -source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2) -md5sums=('9f6899e821ab6d78ab2c856f10fa3023') -options=(!strip !docs !libtool !emptydirs !zipman !purge) - -build() { - cd ${srcdir}/ghostscript-${pkgver} - - export PKGEXT=.src.tar.xz - - # delete non-free packages - grep -l "are not altered" Resource/CMap/* | xargs rm -fv -} - -package() { - cd ${srcdir} - export PKGEXT=.src.tar.xz - export PKGDEST=${startdir} - - mv ghostscript-${pkgver} ${pkgdir}/ - -} diff --git a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch deleted file mode 100644 index f6ae2dae7..000000000 --- a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch +++ /dev/null @@ -1,263 +0,0 @@ -diff -up ghostscript-9.04/cups/gdevcups.c.cups-rgbw ghostscript-9.04/cups/gdevcups.c ---- ghostscript-9.04/cups/gdevcups.c.cups-rgbw 2011-08-05 12:12:21.000000000 +0100 -+++ ghostscript-9.04/cups/gdevcups.c 2011-08-22 10:54:24.614010581 +0100 -@@ -225,6 +225,7 @@ typedef struct gx_device_cups_s - unsigned short EncodeLUT[gx_max_color_value + 1];/* RGB value to output color LUT */ - int Density[CUPS_MAX_VALUE + 1];/* Density LUT */ - int Matrix[3][3][CUPS_MAX_VALUE + 1];/* Color transform matrix LUT */ -+ int user_icc; - int cupsRasterVersion; - - /* Used by cups_put_params(): */ -@@ -426,6 +427,7 @@ gx_device_cups gs_cups_device = - {0x00}, /* EncodeLUT */ - {0x00}, /* Density */ - {0x00}, /* Matrix */ -+ 0, - 3 /* cupsRasterVersion */ - }; - -@@ -1182,15 +1184,18 @@ cups_map_cmyk(gx_device *pdev, /* I - D - - case CUPS_CSPACE_RGB : - case CUPS_CSPACE_RGBW : -+ c0 = c + k; -+ c1 = m + k; -+ c2 = y + k; - if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { -- c0 = c; -- c1 = m; -- c2 = y; -- c3 = k; -- } else { -- c0 = c + k; -- c1 = m + k; -- c2 = y + k; -+ if ((k >= frac_1 - 1) || -+ ((c0 >= frac_1) && (c1 >= frac_1) && (c2 >= frac_1))) { -+ c0 = frac_1; -+ c1 = frac_1; -+ c2 = frac_1; -+ c3 = frac_1; -+ } else -+ c3 = 0; - } - - if (c0 < 0) -@@ -1212,11 +1217,12 @@ cups_map_cmyk(gx_device *pdev, /* I - D - out[2] = frac_1 - (frac)cups->Density[c2]; - - if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { -- if (c3 < 0) -- c3 = 0; -- else if (c3 > frac_1) -- c3 = frac_1; -- out[3] = frac_1 - (frac)cups->Density[c3]; -+ if (c3 == 0) -+ out[3] = frac_1; -+ else if (c3 == frac_1) -+ out[3] = 0; -+ else -+ out[3] = frac_1; - } - break; - -@@ -2034,10 +2040,15 @@ cups_map_color_rgb(gx_device *pdev, - * cups->DecodeLUT actually maps to RGBW, not CMYK... - */ - -- k = cups->DecodeLUT[c3]; -- c = cups->DecodeLUT[c0] + k - gx_max_color_value; -- m = cups->DecodeLUT[c1] + k - gx_max_color_value; -- y = cups->DecodeLUT[c2] + k - gx_max_color_value; -+ if (c3 == 0) { -+ c = 0; -+ m = 0; -+ y = 0; -+ } else { -+ c = cups->DecodeLUT[c0]; -+ m = cups->DecodeLUT[c1]; -+ y = cups->DecodeLUT[c2]; -+ } - - if (c > gx_max_color_value) - prgb[0] = gx_max_color_value; -@@ -2282,20 +2293,20 @@ cups_map_rgb_color(gx_device *pdev, - switch (cups->header.cupsBitsPerColor) - { - default : -- i = 0x0e; -+ i = 0x00; - break; - case 2 : -- i = 0xfc; -+ i = 0x00; - break; - case 4 : -- i = 0xfff0; -+ i = 0x0000; - break; - case 8 : -- i = 0xffffff00; -+ i = 0x00000000; - break; - #ifdef GX_COLOR_INDEX_TYPE - case 16 : -- i = 0xffffffffffff0000; -+ i = 0x0000000000000000; - break; - #endif /* GX_COLOR_INDEX_TYPE */ - } -@@ -2929,7 +2940,10 @@ cups_put_params(gx_device *pdev, /* - int xflip = 0, - yflip = 0; - int found = 0; -- -+ gs_param_string icc_pro_dummy; -+ int old_cmps = cups->color_info.num_components; -+ int old_depth = cups->color_info.depth; -+ - #ifdef DEBUG - dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist); - #endif /* DEBUG */ -@@ -3024,6 +3038,11 @@ cups_put_params(gx_device *pdev, /* - margins_set = param_read_float_array(plist, "Margins", &arrayval) == 0; - color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 || - param_read_int(plist, "cupsBitsPerColor", &intval) == 0; -+ -+ if (!cups->user_icc) { -+ cups->user_icc = param_read_string(plist, "OutputICCProfile", &icc_pro_dummy) == 0; -+ } -+ - /* We set the old dimensions to 1 if we have a color depth change, so - that memory reallocation gets forced. This is perhaps not the correct - approach to prevent crashes like in bug 690435. We keep it for the -@@ -3134,12 +3153,20 @@ cups_put_params(gx_device *pdev, /* - if ((code = gdev_prn_put_params(pdev, plist)) < 0) - return (code); - -+ /* If cups_set_color_info() changed the color model of the device we want to -+ * force the raster memory to be recreated/reinitialized -+ */ -+ if (cups->color_info.num_components != old_cmps || cups->color_info.depth != old_depth) { -+ width_old = 0; -+ height_old = 0; -+ } -+ else { - /* pdev->width/height may have been changed by the call to - * gdev_prn_put_params() - */ -- width_old = pdev->width; -- height_old = pdev->height; -- -+ width_old = pdev->width; -+ height_old = pdev->height; -+ } - /* - * Update margins/sizes as needed... - */ -@@ -4044,22 +4071,88 @@ cups_set_color_info(gx_device *pdev) /* - for (k = 0; k <= CUPS_MAX_VALUE; k ++) - cups->Density[k] = k; - } -- /* Set up the ICC profile for ghostscript to use based upon the color space. -- This is different than the PPD profile above which appears to be some sort -- of matrix based TRC profile */ -- switch (cups->header.cupsColorSpace) { -- /* Use RGB profile for this */ -- case CUPS_CSPACE_RGBW: -- if (pdev->icc_struct == NULL) { -- pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); -- } -- if (pdev->icc_struct->device_profile[gsDEFAULTPROFILE] == NULL) { -- code = gsicc_set_device_profile(pdev, pdev->memory, -- DEFAULT_RGB_ICC, gsDEFAULTPROFILE); -- } -- break; -- default: -- break; -+ if (!cups->user_icc) { -+ /* Set up the ICC profile for ghostscript to use based upon the color space. -+ This is different than the PPD profile above which appears to be some sort -+ of matrix based TRC profile */ -+ switch (cups->header.cupsColorSpace) -+ { -+ default : -+ case CUPS_CSPACE_RGBW : -+ case CUPS_CSPACE_RGB : -+ case CUPS_CSPACE_RGBA : -+ case CUPS_CSPACE_CMY : -+ case CUPS_CSPACE_YMC : -+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC -+ case CUPS_CSPACE_CIELab : -+ case CUPS_CSPACE_ICC1 : -+ case CUPS_CSPACE_ICC2 : -+ case CUPS_CSPACE_ICC3 : -+ case CUPS_CSPACE_ICC4 : -+ case CUPS_CSPACE_ICC5 : -+ case CUPS_CSPACE_ICC6 : -+ case CUPS_CSPACE_ICC7 : -+ case CUPS_CSPACE_ICC8 : -+ case CUPS_CSPACE_ICC9 : -+ case CUPS_CSPACE_ICCA : -+ case CUPS_CSPACE_ICCB : -+ case CUPS_CSPACE_ICCC : -+ case CUPS_CSPACE_ICCD : -+ case CUPS_CSPACE_ICCE : -+ case CUPS_CSPACE_ICCF : -+# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ -+ if (!pdev->icc_struct || (pdev->icc_struct && -+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsRGB)) { -+ -+ if (pdev->icc_struct) { -+ rc_decrement(pdev->icc_struct, "cups_set_color_info"); -+ } -+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); -+ -+ code = gsicc_set_device_profile(pdev, pdev->memory, -+ (char *)DEFAULT_RGB_ICC, gsDEFAULTPROFILE); -+ } -+ break; -+ -+ case CUPS_CSPACE_W : -+ case CUPS_CSPACE_WHITE : -+ case CUPS_CSPACE_K : -+ case CUPS_CSPACE_GOLD : -+ case CUPS_CSPACE_SILVER : -+ if (!pdev->icc_struct || (pdev->icc_struct && -+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsGRAY)) { -+ -+ if (pdev->icc_struct) { -+ rc_decrement(pdev->icc_struct, "cups_set_color_info"); -+ } -+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); -+ -+ code = gsicc_set_device_profile(pdev, pdev->memory->non_gc_memory, -+ (char *)DEFAULT_GRAY_ICC, gsDEFAULTPROFILE); -+ } -+ break; -+ case CUPS_CSPACE_KCMYcm : -+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC -+ case CUPS_CSPACE_CIEXYZ : -+#endif -+ case CUPS_CSPACE_CMYK : -+ case CUPS_CSPACE_YMCK : -+ case CUPS_CSPACE_KCMY : -+ case CUPS_CSPACE_GMCK : -+ case CUPS_CSPACE_GMCS : -+ if (!pdev->icc_struct || (pdev->icc_struct && -+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsCMYK)) { -+ -+ if (pdev->icc_struct) { -+ rc_decrement(pdev->icc_struct, "cups_set_color_info"); -+ } -+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); -+ -+ code = gsicc_set_device_profile(pdev, pdev->memory, -+ (char *)DEFAULT_CMYK_ICC, gsDEFAULTPROFILE); -+ } -+ break; -+ } - } - } - diff --git a/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch b/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch deleted file mode 100644 index 1a81863be..000000000 --- a/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur ghostscript-9.04/base/Makefile.in ghostscript-9.04.new/base/Makefile.in ---- ghostscript-9.04/base/Makefile.in 2011-08-05 13:12:20.000000000 +0200 -+++ ghostscript-9.04.new/base/Makefile.in 2011-08-16 16:06:50.487377337 +0200 -@@ -375,7 +375,7 @@ - # Solaris may need -lnsl -lsocket -lposix4. - # (Libraries required by individual drivers are handled automatically.) - --EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@ -+EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@ @FT_LIBS@ - - # Define the standard libraries to search at the end of linking. - # Most platforms require -lpthread for the POSIX threads library; diff --git a/libre/ghostscript-libre/gs_bug691759and691760.diff b/libre/ghostscript-libre/gs_bug691759and691760.diff deleted file mode 100644 index ca394427a..000000000 --- a/libre/ghostscript-libre/gs_bug691759and691760.diff +++ /dev/null @@ -1,215 +0,0 @@ -Modified: trunk/gs/base/gdevnfwd.c -=================================================================== ---- trunk/gs/base/gdevnfwd.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gdevnfwd.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -1117,3 +1117,29 @@ - { - return 0; - } -+ -+bool -+fwd_uses_fwd_cmap_procs(gx_device * dev) -+{ -+ const gx_cm_color_map_procs *pprocs; -+ -+ pprocs = dev_proc(dev, get_color_mapping_procs)(dev); -+ if (pprocs == &FwdDevice_cm_map_procs) { -+ return true; -+ } -+ return false; -+} -+ -+const gx_cm_color_map_procs* -+fwd_get_target_cmap_procs(gx_device * dev) -+{ -+ const gx_cm_color_map_procs *pprocs; -+ gx_device_forward * const fdev = (gx_device_forward *)dev; -+ gx_device * const tdev = fdev->target; -+ -+ pprocs = dev_proc(tdev, get_color_mapping_procs(tdev)); -+ while (pprocs == &FwdDevice_cm_map_procs) { -+ pprocs = fwd_get_target_cmap_procs(tdev); -+ } -+ return pprocs; -+} -\ No newline at end of file - -Modified: trunk/gs/base/gdevp14.c -=================================================================== ---- trunk/gs/base/gdevp14.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gdevp14.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -900,7 +900,11 @@ - nos->parent_color_info_procs->num_components, 1, - false, false, true, tos->planestride, - tos->rowstride, num_rows, num_cols); -- /* Transform the data */ -+ /* Transform the data. Since the pdf14 device should be -+ using RGB, CMYK or Gray buffers, this transform -+ does not need to worry about the cmap procs of -+ the target device. Those are handled when we do -+ the pdf14 put image operation */ - gscms_transform_color_buffer(icc_link, &input_buff_desc, - &output_buff_desc, tos->data, - new_data_buf); - -Modified: trunk/gs/base/gxcmap.c -=================================================================== ---- trunk/gs/base/gxcmap.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gxcmap.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -31,6 +31,7 @@ - #include "gsicc_manage.h" - #include "gdevdevn.h" - #include "gsicc_cache.h" -+#include "gscms.h" - - /* Structure descriptor */ - public_st_device_color(); -@@ -1744,3 +1745,37 @@ - - } - } -+ -+bool -+gx_device_uses_std_cmap_procs(gx_device * dev) -+{ -+ const gx_cm_color_map_procs *pprocs; -+ -+ if (dev->device_icc_profile != NULL) { -+ pprocs = dev_proc(dev, get_color_mapping_procs)(dev); -+ /* Check if they are forwarding procs */ -+ if (fwd_uses_fwd_cmap_procs(dev)) { -+ pprocs = fwd_get_target_cmap_procs(dev); -+ } -+ switch(dev->device_icc_profile->data_cs) { -+ case gsGRAY: -+ if (pprocs == &DeviceGray_procs) { -+ return true; -+ } -+ break; -+ case gsRGB: -+ if (pprocs == &DeviceRGB_procs) { -+ return true; -+ } -+ break; -+ case gsCMYK: -+ if (pprocs == &DeviceCMYK_procs) { -+ return true; -+ } -+ break; -+ default: -+ break; -+ } -+ } -+ return false; -+} - -Modified: trunk/gs/base/gxcmap.h -=================================================================== ---- trunk/gs/base/gxcmap.h 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gxcmap.h 2011-01-07 04:49:42 UTC (rev 12005) -@@ -284,5 +284,11 @@ - * [0,1] - */ - frac gx_unit_frac(float fvalue); -+/* Determine if the device is using the standard color mapping procs. In -+ such a case, we can make use of the faster icc color conversions for -+ images */ -+bool gx_device_uses_std_cmap_procs(gx_device * dev); -+bool fwd_uses_fwd_cmap_procs(gx_device * dev); -+const gx_cm_color_map_procs* fwd_get_target_cmap_procs(gx_device * dev); - - #endif /* gxcmap_INCLUDED */ - -Modified: trunk/gs/base/gxi12bit.c -=================================================================== ---- trunk/gs/base/gxi12bit.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gxi12bit.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -113,6 +113,8 @@ - irender_proc_t - gs_image_class_2_fracs(gx_image_enum * penum) - { -+ bool std_cmap_procs; -+ - if (penum->bps > 8) { - if (penum->use_mask_color) { - /* Convert color mask values to fracs. */ -@@ -122,9 +124,14 @@ - penum->mask_color.values[i] = - bits2frac(penum->mask_color.values[i], 12); - } -+ /* If the device has some unique color mapping procs due to its color space, -+ then we will need to use those and go through pixel by pixel instead -+ of blasting through buffers. This is true for example with many of -+ the color spaces for CUPs */ -+ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev); - if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN && - penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color || -- penum->bps != 16 || -+ penum->bps != 16 || !std_cmap_procs || - gs_color_space_get_index(penum->pcs) == gs_color_space_index_DevicePixel) { - /* DevicePixel color space used in mask from 3x type. Basically - a simple color space that just is scaled to the device bit - -Modified: trunk/gs/base/gxicolor.c -=================================================================== ---- trunk/gs/base/gxicolor.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gxicolor.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -97,6 +97,8 @@ - irender_proc_t - gs_image_class_4_color(gx_image_enum * penum) - { -+ bool std_cmap_procs; -+ - if (penum->use_mask_color) { - /* - * Scale the mask colors to match the scaling of each sample to -@@ -128,8 +130,14 @@ - penum->mask_color.mask = 0; - penum->mask_color.test = ~0; - } -+ /* If the device has some unique color mapping procs due to its color space, -+ then we will need to use those and go through pixel by pixel instead -+ of blasting through buffers. This is true for example with many of -+ the color spaces for CUPs */ -+ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev); - if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN && -- penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ) { -+ penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color || -+ !std_cmap_procs) { - return &image_render_color_DeviceN; - } else { - /* Set up the link now */ - -Modified: trunk/gs/base/gxiscale.c -=================================================================== ---- trunk/gs/base/gxiscale.c 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/gxiscale.c 2011-01-07 04:49:42 UTC (rev 12005) -@@ -104,6 +104,13 @@ - != penum->dev->color_info.num_components) { - use_icc = false; - } -+ /* If the device has some unique color mapping procs due to its color space, -+ then we will need to use those and go through pixel by pixel instead -+ of blasting through buffers. This is true for example with many of -+ the color spaces for CUPs */ -+ if(!gx_device_uses_std_cmap_procs(penum->dev)) { -+ use_icc = false; -+ } - /* - * USE_CONSERVATIVE_INTERPOLATION_RULES is normally NOT defined since - * the MITCHELL digital filter seems OK as long as we are going out to - -Modified: trunk/gs/base/lib.mak -=================================================================== ---- trunk/gs/base/lib.mak 2011-01-06 23:48:14 UTC (rev 12004) -+++ trunk/gs/base/lib.mak 2011-01-07 04:49:42 UTC (rev 12005) -@@ -602,7 +602,7 @@ - $(gxalpha_h) $(gxcspace_h) $(gxfarith_h) $(gxfrac_h)\ - $(gxdcconv_h) $(gxdevice_h) $(gxcmap_h) $(gsnamecl_h) $(gxlum_h)\ - $(gzstate_h) $(gxdither_h) $(gxcdevn_h) $(string__h)\ -- $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) -+ $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) $(gscms_h) - $(GLCC) $(GLO_)gxcmap.$(OBJ) $(C_) $(GLSRC)gxcmap.c - - $(GLOBJ)gxcpath.$(OBJ) : $(GLSRC)gxcpath.c $(GXERR)\ - diff --git a/libre/kdenetwork-libre/PKGBUILD b/libre/kdenetwork-libre/PKGBUILD deleted file mode 100644 index 6e231389d..000000000 --- a/libre/kdenetwork-libre/PKGBUILD +++ /dev/null @@ -1,121 +0,0 @@ -# $Id: PKGBUILD 154726 2012-03-30 16:15:21Z andrea $ -# Maintainer: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Pierre Schmitz <pierre@archlinux.de> -# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy> - -_pkgbase=kdenetwork -pkgbase=kdenetwork-libre -pkgname=('kdenetwork-filesharing' - 'kdenetwork-kdnssd' - 'kdenetwork-kget' - 'kdenetwork-kopete-libre' - 'kdenetwork-kppp' - 'kdenetwork-krdc' - 'kdenetwork-krfb') -pkgver=4.8.2 -pkgrel=1 -arch=('i686' 'x86_64') -url='http://www.kde.org' -license=('GPL' 'LGPL' 'FDL') -groups=('kde' 'kdenetwork') -makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp' - 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn' - 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu' - 'libktorrent' 'libmms' 'mediastreamer') -source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz") -sha1sums=('a899a9ef1637612a5ec14bb3ff950f3ed565d60e') - -build() { - cd "${srcdir}" - -# Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34. - sed -i 's/Skype protocol" ON/Skype protocol" OFF/g' "${_pkgbase}-${pkgver}/kopete/protocols/CMakeLists.txt" - rm -rf "${_pkgbase}-${pkgver}/kopete/protocols/skype" - sed 's/, Skype//' -i "${_pkgbase}-${pkgver}/doc/kopete/index.docbook" - - mkdir build - cd build - cmake ../${_pkgbase}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_SKIP_RPATH=ON \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \ - -DWITH_Xmms=OFF \ - -DWITH_LibMeanwhile=OFF - make -} - -package_kdenetwork-filesharing() { - pkgdesc='Konqueror properties dialog plugin to share a directory with the local network' - depends=('kdelibs' 'smbclient') - install='kdenetwork.install' - cd $srcdir/build/filesharing - make DESTDIR=$pkgdir install -} - -package_kdenetwork-kdnssd() { - pkgdesc='Monitors the network for DNS-SD services' - depends=('kdelibs') - cd $srcdir/build/kdnssd - make DESTDIR=$pkgdir install -} - -package_kdenetwork-kget() { - pkgdesc='Download Manager' - depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms') - url="http://kde.org/applications/internet/kget/" - install='kdenetwork-kget.install' - cd $srcdir/build/kget - make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kget - make DESTDIR=$pkgdir install -} - -package_kdenetwork-kopete-libre() { - pkgdesc='Instant Messenger (without skype support)' - depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn' - 'libidn' 'qimageblitz' 'libgadu' 'mediastreamer') - conflicts=('kdenetwork-kopete') - provides=("kdenetwork-kopete=${pkgver}") - replaces=('kdenetwork-kopete') - url="http://kde.org/applications/internet/kopete/" - install='kdenetwork-kopete.install' - cd $srcdir/build/kopete - make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kopete - make DESTDIR=$pkgdir install -} - -package_kdenetwork-kppp() { - pkgdesc='Internet Dial-Up Tool' - depends=('kdebase-runtime' 'ppp') - url="http://kde.org/applications/internet/kppp/" - install='kdenetwork-kppp.install' - cd $srcdir/build/kppp - make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kppp - make DESTDIR=$pkgdir install -} - -package_kdenetwork-krdc() { - pkgdesc='Remote Desktop Client' - depends=('kdebase-runtime' 'libvncserver' 'rdesktop') - optdepends=('kdebase-keditbookmarks: to edit bookmarks') - url="http://kde.org/applications/internet/krdc/" - cd $srcdir/build/krdc - make DESTDIR=$pkgdir install - cd $srcdir/build/doc/krdc - make DESTDIR=$pkgdir install -} - -package_kdenetwork-krfb() { - pkgdesc='Desktop Sharing' - # note on libxdamage: - # not detected by namcap because libgl depends on it - # but nvidia providing libgl does not depend on libxdamage - depends=('kdebase-runtime' 'libvncserver' 'libxdamage') - cd $srcdir/build/krfb - make DESTDIR=$pkgdir install - cd $srcdir/build/doc/krfb - make DESTDIR=$pkgdir install -} diff --git a/libre/kdenetwork-libre/kdenetwork-kget.install b/libre/kdenetwork-libre/kdenetwork-kget.install deleted file mode 100644 index 5495fb1b5..000000000 --- a/libre/kdenetwork-libre/kdenetwork-kget.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null - update-desktop-database -q -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre/kdenetwork-libre/kdenetwork-kopete.install b/libre/kdenetwork-libre/kdenetwork-kopete.install deleted file mode 100644 index 5495fb1b5..000000000 --- a/libre/kdenetwork-libre/kdenetwork-kopete.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null - update-desktop-database -q -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre/kdenetwork-libre/kdenetwork-kppp.install b/libre/kdenetwork-libre/kdenetwork-kppp.install deleted file mode 100644 index 5495fb1b5..000000000 --- a/libre/kdenetwork-libre/kdenetwork-kppp.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null - update-desktop-database -q -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre/kdenetwork-libre/kdenetwork.install b/libre/kdenetwork-libre/kdenetwork.install deleted file mode 100644 index e70c054ec..000000000 --- a/libre/kdenetwork-libre/kdenetwork.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/libre/linux-libre-lts/CVE-2012-0056.patch b/libre/linux-libre-lts/CVE-2012-0056.patch deleted file mode 100644 index 4098f3506..000000000 --- a/libre/linux-libre-lts/CVE-2012-0056.patch +++ /dev/null @@ -1,269 +0,0 @@ -From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001 -From: Linus Torvalds <torvalds@linux-foundation.org> -Date: Tue, 17 Jan 2012 15:21:19 -0800 -Subject: proc: clean up and fix /proc/<pid>/mem handling -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Linus Torvalds <torvalds@linux-foundation.org> - -commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream. - -Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very -robust, and it also doesn't match the permission checking of any of the -other related files. - -This changes it to do the permission checks at open time, and instead of -tracking the process, it tracks the VM at the time of the open. That -simplifies the code a lot, but does mean that if you hold the file -descriptor open over an execve(), you'll continue to read from the _old_ -VM. - -That is different from our previous behavior, but much simpler. If -somebody actually finds a load where this matters, we'll need to revert -this commit. - -I suspect that nobody will ever notice - because the process mapping -addresses will also have changed as part of the execve. So you cannot -actually usefully access the fd across a VM change simply because all -the offsets for IO would have changed too. - -Reported-by: Jüri Aedla <asd@ut.ee> -Cc: Al Viro <viro@zeniv.linux.org.uk> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - fs/proc/base.c | 145 +++++++++++++++------------------------------------------ - 1 file changed, 39 insertions(+), 106 deletions(-) - ---- a/fs/proc/base.c -+++ b/fs/proc/base.c -@@ -194,65 +194,7 @@ static int proc_root_link(struct inode * - return result; - } - --static struct mm_struct *__check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- -- mm = get_task_mm(task); -- if (!mm) -- return ERR_PTR(-EINVAL); -- -- /* -- * A task can always look at itself, in case it chooses -- * to use system calls instead of load instructions. -- */ -- if (task == current) -- return mm; -- -- /* -- * If current is actively ptrace'ing, and would also be -- * permitted to freshly attach with ptrace now, permit it. -- */ -- if (task_is_stopped_or_traced(task)) { -- int match; -- rcu_read_lock(); -- match = (tracehook_tracer_task(task) == current); -- rcu_read_unlock(); -- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) -- return mm; -- } -- -- /* -- * No one else is allowed. -- */ -- mmput(mm); -- return ERR_PTR(-EPERM); --} -- --/* -- * If current may access user memory in @task return a reference to the -- * corresponding mm, otherwise ERR_PTR. -- */ --static struct mm_struct *check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- int err; -- -- /* -- * Avoid racing if task exec's as we might get a new mm but validate -- * against old credentials. -- */ -- err = mutex_lock_killable(&task->signal->cred_guard_mutex); -- if (err) -- return ERR_PTR(err); -- -- mm = __check_mem_permission(task); -- mutex_unlock(&task->signal->cred_guard_mutex); -- -- return mm; --} -- --struct mm_struct *mm_for_maps(struct task_struct *task) -+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) - { - struct mm_struct *mm; - int err; -@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct tas - - mm = get_task_mm(task); - if (mm && mm != current->mm && -- !ptrace_may_access(task, PTRACE_MODE_READ)) { -+ !ptrace_may_access(task, mode)) { - mmput(mm); - mm = ERR_PTR(-EACCES); - } -@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct tas - return mm; - } - -+struct mm_struct *mm_for_maps(struct task_struct *task) -+{ -+ return mm_access(task, PTRACE_MODE_READ); -+} -+ - static int proc_pid_cmdline(struct task_struct *task, char * buffer) - { - int res = 0; -@@ -816,38 +763,39 @@ static const struct file_operations proc - - static int mem_open(struct inode* inode, struct file* file) - { -- file->private_data = (void*)((long)current->self_exec_id); -+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ struct mm_struct *mm; -+ -+ if (!task) -+ return -ESRCH; -+ -+ mm = mm_access(task, PTRACE_MODE_ATTACH); -+ put_task_struct(task); -+ -+ if (IS_ERR(mm)) -+ return PTR_ERR(mm); -+ - /* OK to pass negative loff_t, we can catch out-of-range */ - file->f_mode |= FMODE_UNSIGNED_OFFSET; -+ file->private_data = mm; -+ - return 0; - } - - static ssize_t mem_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) - { -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ int ret; - char *page; - unsigned long src = *ppos; -- int ret = -ESRCH; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- ret = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out; -- -- mm = check_mem_permission(task); -- ret = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- ret = -EIO; -- -- if (file->private_data != (void*)((long)current->self_exec_id)) -- goto out_put; -+ return -ENOMEM; - - ret = 0; - -@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * fi - } - *ppos = src; - --out_put: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out: -- put_task_struct(task); --out_no_task: - return ret; - } - -@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * f - { - int copied; - char *page; -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - unsigned long dst = *ppos; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- copied = -ESRCH; -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- copied = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out_task; -- -- mm = check_mem_permission(task); -- copied = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- copied = -EIO; -- if (file->private_data != (void *)((long)current->self_exec_id)) -- goto out_mm; -+ return -ENOMEM; - - copied = 0; - while (count > 0) { -@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * f - } - *ppos = dst; - --out_mm: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out_task: -- put_task_struct(task); --out_no_task: - return copied; - } - -@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff - return file->f_pos; - } - -+static int mem_release(struct inode *inode, struct file *file) -+{ -+ struct mm_struct *mm = file->private_data; -+ -+ mmput(mm); -+ return 0; -+} -+ - static const struct file_operations proc_mem_operations = { - .llseek = mem_lseek, - .read = mem_read, - .write = mem_write, - .open = mem_open, -+ .release = mem_release, - }; - - static ssize_t environ_read(struct file *file, char __user *buf, diff --git a/libre/linux-libre/CVE-2012-0056.patch b/libre/linux-libre/CVE-2012-0056.patch deleted file mode 100644 index 6a83fef1c..000000000 --- a/libre/linux-libre/CVE-2012-0056.patch +++ /dev/null @@ -1,268 +0,0 @@ -From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001 -From: Linus Torvalds <torvalds@linux-foundation.org> -Date: Tue, 17 Jan 2012 15:21:19 -0800 -Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very -robust, and it also doesn't match the permission checking of any of the -other related files. - -This changes it to do the permission checks at open time, and instead of -tracking the process, it tracks the VM at the time of the open. That -simplifies the code a lot, but does mean that if you hold the file -descriptor open over an execve(), you'll continue to read from the _old_ -VM. - -That is different from our previous behavior, but much simpler. If -somebody actually finds a load where this matters, we'll need to revert -this commit. - -I suspect that nobody will ever notice - because the process mapping -addresses will also have changed as part of the execve. So you cannot -actually usefully access the fd across a VM change simply because all -the offsets for IO would have changed too. - -Reported-by: Jüri Aedla <asd@ut.ee> -Cc: Al Viro <viro@zeniv.linux.org.uk> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - fs/proc/base.c | 145 +++++++++++++++----------------------------------------- - 1 files changed, 39 insertions(+), 106 deletions(-) - -diff --git a/fs/proc/base.c b/fs/proc/base.c -index 5485a53..662ddf2 100644 ---- a/fs/proc/base.c -+++ b/fs/proc/base.c -@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path) - return result; - } - --static struct mm_struct *__check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- -- mm = get_task_mm(task); -- if (!mm) -- return ERR_PTR(-EINVAL); -- -- /* -- * A task can always look at itself, in case it chooses -- * to use system calls instead of load instructions. -- */ -- if (task == current) -- return mm; -- -- /* -- * If current is actively ptrace'ing, and would also be -- * permitted to freshly attach with ptrace now, permit it. -- */ -- if (task_is_stopped_or_traced(task)) { -- int match; -- rcu_read_lock(); -- match = (ptrace_parent(task) == current); -- rcu_read_unlock(); -- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) -- return mm; -- } -- -- /* -- * No one else is allowed. -- */ -- mmput(mm); -- return ERR_PTR(-EPERM); --} -- --/* -- * If current may access user memory in @task return a reference to the -- * corresponding mm, otherwise ERR_PTR. -- */ --static struct mm_struct *check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- int err; -- -- /* -- * Avoid racing if task exec's as we might get a new mm but validate -- * against old credentials. -- */ -- err = mutex_lock_killable(&task->signal->cred_guard_mutex); -- if (err) -- return ERR_PTR(err); -- -- mm = __check_mem_permission(task); -- mutex_unlock(&task->signal->cred_guard_mutex); -- -- return mm; --} -- --struct mm_struct *mm_for_maps(struct task_struct *task) -+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) - { - struct mm_struct *mm; - int err; -@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - - mm = get_task_mm(task); - if (mm && mm != current->mm && -- !ptrace_may_access(task, PTRACE_MODE_READ)) { -+ !ptrace_may_access(task, mode)) { - mmput(mm); - mm = ERR_PTR(-EACCES); - } -@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - return mm; - } - -+struct mm_struct *mm_for_maps(struct task_struct *task) -+{ -+ return mm_access(task, PTRACE_MODE_READ); -+} -+ - static int proc_pid_cmdline(struct task_struct *task, char * buffer) - { - int res = 0; -@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = { - - static int mem_open(struct inode* inode, struct file* file) - { -- file->private_data = (void*)((long)current->self_exec_id); -+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ struct mm_struct *mm; -+ -+ if (!task) -+ return -ESRCH; -+ -+ mm = mm_access(task, PTRACE_MODE_ATTACH); -+ put_task_struct(task); -+ -+ if (IS_ERR(mm)) -+ return PTR_ERR(mm); -+ - /* OK to pass negative loff_t, we can catch out-of-range */ - file->f_mode |= FMODE_UNSIGNED_OFFSET; -+ file->private_data = mm; -+ - return 0; - } - - static ssize_t mem_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) - { -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ int ret; - char *page; - unsigned long src = *ppos; -- int ret = -ESRCH; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- ret = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out; -- -- mm = check_mem_permission(task); -- ret = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- ret = -EIO; -- -- if (file->private_data != (void*)((long)current->self_exec_id)) -- goto out_put; -+ return -ENOMEM; - - ret = 0; - -@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf, - } - *ppos = src; - --out_put: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out: -- put_task_struct(task); --out_no_task: - return ret; - } - -@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - { - int copied; - char *page; -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - unsigned long dst = *ppos; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- copied = -ESRCH; -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- copied = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out_task; -- -- mm = check_mem_permission(task); -- copied = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- copied = -EIO; -- if (file->private_data != (void *)((long)current->self_exec_id)) -- goto out_mm; -+ return -ENOMEM; - - copied = 0; - while (count > 0) { -@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - } - *ppos = dst; - --out_mm: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out_task: -- put_task_struct(task); --out_no_task: - return copied; - } - -@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig) - return file->f_pos; - } - -+static int mem_release(struct inode *inode, struct file *file) -+{ -+ struct mm_struct *mm = file->private_data; -+ -+ mmput(mm); -+ return 0; -+} -+ - static const struct file_operations proc_mem_operations = { - .llseek = mem_lseek, - .read = mem_read, - .write = mem_write, - .open = mem_open, -+ .release = mem_release, - }; - - static ssize_t environ_read(struct file *file, char __user *buf, --- -1.7.6.5 - diff --git a/libre/linux-libre/dib0700-fix.patch b/libre/linux-libre/dib0700-fix.patch deleted file mode 100644 index 48f07e6fd..000000000 --- a/libre/linux-libre/dib0700-fix.patch +++ /dev/null @@ -1,1487 +0,0 @@ -commit 198c545cd7306dc90aaae1d61e64175e70a70dc8 -Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> -Date: Wed Aug 3 17:08:21 2011 +0200 - - [media] DiBcom: protect the I2C bufer access - - This patch protect the I2C buffer access in order to manage concurrent - access. This protection is done using mutex. - Furthermore, for the dib9000, if a pid filtering command is - received during the tuning, this pid filtering command is delayed to - avoid any concurrent access issue. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c -index 1d47d4d..dc1cb17 100644 ---- a/drivers/media/dvb/frontends/dib0070.c -+++ b/drivers/media/dvb/frontends/dib0070.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -78,10 +79,18 @@ struct dib0070_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - --static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) -+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0070 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } - state->i2c_write_buffer[0] = reg; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0070 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { \ -@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter - state->cfg = cfg; - state->i2c = i2c; - state->fe = fe; -+ mutex_init(&state->i2c_buffer_lock); - fe->tuner_priv = state; - - if (dib0070_reset(fe) != 0) -diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c -index c9c935a..b174d1c 100644 ---- a/drivers/media/dvb/frontends/dib0090.c -+++ b/drivers/media/dvb/frontends/dib0090.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -196,6 +197,7 @@ struct dib0090_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - struct dib0090_fw_state { -@@ -208,10 +210,18 @@ struct dib0090_fw_state { - struct i2c_msg msg; - u8 i2c_write_buffer[2]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = reg & 0xff; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(&state->msg, 0, sizeof(struct i2c_msg)); -@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = val >> 8; - state->i2c_write_buffer[1] = val & 0xff; - -@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0) -@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (config->wbd == NULL) -@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (dib0090_fw_reset_digital(fe, st->config) != 0) -diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c -index 79cb1c2..dbb76d7 100644 ---- a/drivers/media/dvb/frontends/dib7000m.c -+++ b/drivers/media/dvb/frontends/dib7000m.c -@@ -11,6 +11,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -55,6 +56,7 @@ struct dib7000m_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000m_power_mode { -@@ -69,6 +71,13 @@ enum dib7000m_power_mode { - - static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) | 0x80; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d",reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf) - { -@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - st->timf_default = cfg->bw->timf; - -diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c -index 0c9f40c..292bc19 100644 ---- a/drivers/media/dvb/frontends/dib7000p.c -+++ b/drivers/media/dvb/frontends/dib7000p.c -@@ -10,6 +10,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_math.h" - #include "dvb_frontend.h" -@@ -68,6 +69,7 @@ struct dib7000p_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000p_power_mode { -@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff); - - static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf) -@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau - return -ENOMEM; - - dpst->i2c_adap = i2c; -+ mutex_init(&dpst->i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - dpst->cfg = cfg[k]; -@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */ - -@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - st->version = dib7000p_read_word(st, 897); - - /* FIXME: make sure the dev.parent field is initialized, or else -- request_firmware() will hit an OOPS (this should be moved somewhere -- more common) */ -+ request_firmware() will hit an OOPS (this should be moved somewhere -+ more common) */ -+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent; - - dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr); - -diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c -index 7d2ea11..fe284d5 100644 ---- a/drivers/media/dvb/frontends/dib8000.c -+++ b/drivers/media/dvb/frontends/dib8000.c -@@ -10,6 +10,8 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> -+ - #include "dvb_math.h" - - #include "dvb_frontend.h" -@@ -37,6 +39,7 @@ struct i2c_device { - u8 addr; - u8 *i2c_write_buffer; - u8 *i2c_read_buffer; -+ struct mutex *i2c_buffer_lock; - }; - - struct dib8000_state { -@@ -77,6 +80,7 @@ struct dib8000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib8000_power_mode { -@@ -86,24 +90,39 @@ enum dib8000_power_mode { - - static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg) - { -+ u16 ret; - struct i2c_msg msg[2] = { -- {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 2}, -- {.addr = i2c->addr >> 1, .flags = I2C_M_RD, -- .buf = i2c->i2c_read_buffer, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2}, - }; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ -+ msg[0].buf = i2c->i2c_write_buffer; - msg[0].buf[0] = reg >> 8; - msg[0].buf[1] = reg & 0xff; -+ msg[1].buf = i2c->i2c_read_buffer; - - if (i2c_transfer(i2c->adap, msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ mutex_unlock(i2c->i2c_buffer_lock); -+ return ret; - } - - static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static u32 dib8000_read32(struct dib8000_state *state, u16 reg) -@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg) - - static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val) - { -- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 4}; -+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4}; - int ret = 0; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ msg.buf = i2c->i2c_write_buffer; - msg.buf[0] = (reg >> 8) & 0xff; - msg.buf[1] = reg & 0xff; - msg.buf[2] = (val >> 8) & 0xff; - msg.buf[3] = val & 0xff; - - ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(i2c->i2c_buffer_lock); - - return ret; - } - - static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static const s16 coeff_2k_sb_1seg_dqpsk[8] = { -@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - if (!client.i2c_read_buffer) { - dprintk("%s: not enough memory", __func__); - ret = -ENOMEM; -- goto error_memory; -+ goto error_memory_read; -+ } -+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL); -+ if (!client.i2c_buffer_lock) { -+ dprintk("%s: not enough memory", __func__); -+ ret = -ENOMEM; -+ goto error_memory_lock; - } -+ mutex_init(client.i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - /* designated i2c address */ -@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - } - - error: -+ kfree(client.i2c_buffer_lock); -+error_memory_lock: - kfree(client.i2c_read_buffer); --error_memory: -+error_memory_read: - kfree(client.i2c_write_buffer); - - return ret; -@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s - state->i2c.addr = i2c_addr; - state->i2c.i2c_write_buffer = state->i2c_write_buffer; - state->i2c.i2c_read_buffer = state->i2c_read_buffer; -+ mutex_init(&state->i2c_buffer_lock); -+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock; - state->gpio_val = cfg->gpio_val; - state->gpio_dir = cfg->gpio_dir; - -diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c -index a085588..b931074 100644 ---- a/drivers/media/dvb/frontends/dib9000.c -+++ b/drivers/media/dvb/frontends/dib9000.c -@@ -38,6 +38,15 @@ struct i2c_device { - #define DibInitLock(lock) mutex_init(lock) - #define DibFreeLock(lock) - -+struct dib9000_pid_ctrl { -+#define DIB9000_PID_FILTER_CTRL 0 -+#define DIB9000_PID_FILTER 1 -+ u8 cmd; -+ u8 id; -+ u16 pid; -+ u8 onoff; -+}; -+ - struct dib9000_state { - struct i2c_device i2c; - -@@ -99,6 +108,10 @@ struct dib9000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[255]; - u8 i2c_read_buffer[255]; -+ DIB_LOCK demod_lock; -+ u8 get_frontend_internal; -+ struct dib9000_pid_ctrl pid_ctrl[10]; -+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */ - }; - - static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio); - int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef; -+ u16 val; -+ int ret; -+ -+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter cmd postpone"); -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); -+ -+ val = dib9000_read_word(state, 294 + 1) & 0xffef; - val |= (onoff & 0x1) << 4; - - dprintk("PID filter enabled %d", onoff); -- return dib9000_write_word(state, 294 + 1, val); -+ ret = dib9000_write_word(state, 294 + 1, val); -+ DibReleaseLock(&state->demod_lock); -+ return ret; -+ - } - EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); - - int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -+ int ret; -+ -+ if (state->pid_ctrl_index != -2) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter postpone"); -+ if (state->pid_ctrl_index < 9) { -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER; -+ state->pid_ctrl[state->pid_ctrl_index].id = id; -+ state->pid_ctrl[state->pid_ctrl_index].pid = pid; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ } else -+ dprintk("can not add any more pid ctrl cmd"); -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); - dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); -- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); -+ ret = dib9000_write_word(state, 300 + 1 + id, -+ onoff ? (1 << 13) | pid : 0); -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - EXPORT_SYMBOL(dib9000_fw_pid_filter); - -@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod) - DibFreeLock(&state->platform.risc.mbx_lock); - DibFreeLock(&state->platform.risc.mem_lock); - DibFreeLock(&state->platform.risc.mem_mbx_lock); -+ DibFreeLock(&state->demod_lock); - dibx000_exit_i2c_master(&st->i2c_master); - - i2c_del_adapter(&st->tuner_adap); -@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe) - { - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend; -- int ret; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); - if (ret < 0) -- return ret; -+ goto error; - } -- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune) -@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend, sub_index_frontend; - fe_status_t stat; -- int ret; -+ int ret = 0; -+ -+ if (state->get_frontend_internal == 0) -+ DibAcquireLock(&state->demod_lock); - - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); -@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.rolloff; - } - } -- return 0; -+ ret = 0; -+ goto return_value; - } - } - - /* get the channel from master chip */ - ret = dib9000_fw_get_channel(fe, fep); - if (ret != 0) -- return ret; -+ goto return_value; - - /* synchronize the cache with the other frontends */ - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { -@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP; - state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff; - } -+ ret = 0; - -- return 0; -+return_value: -+ if (state->get_frontend_internal == 0) -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) -@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - dprintk("dib9000: must specify bandwidth "); - return 0; - } -+ -+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */ -+ DibAcquireLock(&state->demod_lock); -+ - fe->dtv_property_cache.delivery_system = SYS_DVBT; - - /* set the master status */ -@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* check the tune result */ - if (exit_condition == 1) { /* tune failed */ - dprintk("tune failed"); -+ DibReleaseLock(&state->demod_lock); -+ /* tune failed; put all the pid filtering cmd to junk */ -+ state->pid_ctrl_index = -1; - return 0; - } - - dprintk("tune success on frontend%i", index_frontend_success); - - /* synchronize all the channel cache */ -+ state->get_frontend_internal = 1; - dib9000_get_frontend(state->fe[0], fep); -+ state->get_frontend_internal = 0; - - /* retune the other frontends with the found channel */ - channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; -@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* turn off the diversity for the last frontend */ - dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); - -+ DibReleaseLock(&state->demod_lock); -+ if (state->pid_ctrl_index >= 0) { -+ u8 index_pid_filter_cmd; -+ u8 pid_ctrl_index = state->pid_ctrl_index; -+ -+ state->pid_ctrl_index = -2; -+ for (index_pid_filter_cmd = 0; -+ index_pid_filter_cmd <= pid_ctrl_index; -+ index_pid_filter_cmd++) { -+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL) -+ dib9000_fw_pid_filter_ctrl(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER) -+ dib9000_fw_pid_filter(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].id, -+ state->pid_ctrl[index_pid_filter_cmd].pid, -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ } -+ } -+ /* do not postpone any more the pid filtering */ -+ state->pid_ctrl_index = -2; -+ - return 0; - } - -@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - u8 index_frontend; - u16 lock = 0, lock_slave = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - lock_slave |= dib9000_read_lock(state->fe[index_frontend]); - -@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - if ((lock & 0x0008) || (lock_slave & 0x0008)) - *stat |= FE_HAS_LOCK; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, - state->i2c_read_buffer, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); -@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - c = (u16 *)state->i2c_read_buffer; - - *ber = c[10] << 16 | c[11]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) -@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - u8 index_frontend; - u16 *c = (u16 *)state->i2c_read_buffer; - u16 val; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - *strength = 0; - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); -@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - } - - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - -@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - *strength = 65535; - else - *strength += val; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static u32 dib9000_get_snr(struct dvb_frontend *fe) -@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - u8 index_frontend; - u32 snr_master; - -+ DibAcquireLock(&state->demod_lock); - snr_master = dib9000_get_snr(fe); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - snr_master += dib9000_get_snr(state->fe[index_frontend]); -@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - } else - *snr = 0; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c = (u16 *)state->i2c_read_buffer; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - - *unc = c[12]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr) -@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c - DibInitLock(&st->platform.risc.mbx_lock); - DibInitLock(&st->platform.risc.mem_lock); - DibInitLock(&st->platform.risc.mem_mbx_lock); -+ DibInitLock(&st->demod_lock); -+ st->get_frontend_internal = 0; -+ -+ st->pid_ctrl_index = -2; - - st->fe[0] = fe; - fe->demodulator_priv = st; -diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c -index dc5d17a..774d507 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.c -+++ b/drivers/media/dvb/frontends/dibx000_common.c -@@ -1,4 +1,5 @@ - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dibx000_common.h" - -@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)"); - - static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - mst->i2c_write_buffer[0] = (reg >> 8) & 0xff; - mst->i2c_write_buffer[1] = reg & 0xff; - mst->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - mst->msg[0].buf = mst->i2c_write_buffer; - mst->msg[0].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - mst->i2c_write_buffer[0] = reg >> 8; - mst->i2c_write_buffer[1] = reg & 0xff; - -@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) -@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = { -@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = { -@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap, - int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - struct i2c_adapter *i2c_adap, u8 i2c_addr) - { -- u8 tx[4]; -- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 }; -+ int ret; -+ -+ mutex_init(&mst->i2c_buffer_lock); -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg)); -+ mst->msg[0].addr = i2c_addr >> 1; -+ mst->msg[0].flags = 0; -+ mst->msg[0].buf = mst->i2c_write_buffer; -+ mst->msg[0].len = 4; - - mst->device_rev = device_rev; - mst->i2c_adap = i2c_adap; -@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - "DiBX000: could not initialize the master i2c_adapter\n"); - - /* initialize the i2c-master by closing the gate */ -- dibx000_i2c_gate_ctrl(mst, tx, 0, 0); -+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0); -+ -+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1); -+ mutex_unlock(&mst->i2c_buffer_lock); - -- return i2c_transfer(i2c_adap, &m, 1) == 1; -+ return ret; - } - - EXPORT_SYMBOL(dibx000_init_i2c_master); -diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h -index f031165..5e01147 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.h -+++ b/drivers/media/dvb/frontends/dibx000_common.h -@@ -33,6 +33,7 @@ struct dibx000_i2c_master { - struct i2c_msg msg[34]; - u8 i2c_write_buffer[8]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, -commit 45cbff13693d645fa5dcbba964e802e1746b2e57 -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Mon Aug 1 17:45:58 2011 +0200 - - [media] dib0700: protect the dib0700 buffer access - - This patch protects the common buffer access inside the dib0700 in order - to manage concurrent access. This protection is done using mutex. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Javier Marcet <javier@marcet.info> - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 5eb91b4..291b645 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - struct dib0700_state *st = d->priv; - int ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), - REQUEST_GET_VERSION, - USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, -@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - if (fwtype != NULL) - *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | - (st->buf[14] << 8) | st->buf[15]; -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen - int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_GPIO; - st->buf[1] = gpio; -@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - - ret = dib0700_ctrl_wr(d, st->buf, 3); - -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - int ret; - - if (st->fw_version >= 0x10201) { -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_USB_XFER_LEN; - st->buf[1] = (nb_ts_packets >> 8) & 0xff; - st->buf[2] = nb_ts_packets & 0xff; -@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets); - - ret = dib0700_ctrl_wr(d, st->buf, 3); -+ mutex_unlock(&d->usb_mutex); - } else { - deb_info("this firmware does not allow to change the USB xfer len\n"); - ret = -EIO; -@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - - } else { - /* Write request */ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - st->buf[0] = REQUEST_NEW_I2C_WRITE; - st->buf[1] = msg[i].addr << 1; - st->buf[2] = (en_start << 7) | (en_stop << 6) | -@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - USB_TYPE_VENDOR | USB_DIR_OUT, - 0, 0, st->buf, msg[i].len + 4, - USB_CTRL_GET_TIMEOUT); -+ mutex_unlock(&d->usb_mutex); - if (result < 0) { - deb_info("i2c write error (status = %d)\n", result); - break; -@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - for (i = 0; i < num; i++) { - /* fill in the address */ -@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - break; - } - } -+ mutex_unlock(&d->usb_mutex); - mutex_unlock(&d->i2c_mutex); - - return i; -@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - u16 pll_loopdiv, u16 free_div, u16 dsuScaler) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_CLOCK; - st->buf[1] = (en_pll << 7) | (pll_src << 6) | -@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - st->buf[9] = dsuScaler & 0xff; /* LSB */ - - ret = dib0700_ctrl_wr(d, st->buf, 10); -+ mutex_unlock(&d->usb_mutex); - - return ret; - } -@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - { - struct dib0700_state *st = d->priv; - u16 divider; -+ int ret; - - if (scl_kHz == 0) - return -EINVAL; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_I2C_PARAM; - divider = (u16) (30000 / scl_kHz); - st->buf[1] = 0; -@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", - (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | - st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); -- return dib0700_ctrl_wr(d, st->buf, 8); -+ -+ ret = dib0700_ctrl_wr(d, st->buf, 8); -+ mutex_unlock(&d->usb_mutex); -+ -+ return ret; - } - - -@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - } - -+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_ENABLE_VIDEO; - /* this bit gives a kind of command, - * rather than enabling something or not */ -@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - - deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); - -- return dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ mutex_unlock(&adap->dev->usb_mutex); -+ -+ return ret; - } - - int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) -@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - struct dib0700_state *st = d->priv; - int new_proto, ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_RC; - st->buf[1] = 0; - st->buf[2] = 0; -@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - else if (rc_type == RC_TYPE_NEC) - new_proto = 0; - else if (rc_type == RC_TYPE_RC6) { -- if (st->fw_version < 0x10200) -- return -EINVAL; -+ if (st->fw_version < 0x10200) { -+ ret = -EINVAL; -+ goto out; -+ } - - new_proto = 2; -- } else -- return -EINVAL; -+ } else { -+ ret = -EINVAL; -+ goto out; -+ } - - st->buf[1] = new_proto; - - ret = dib0700_ctrl_wr(d, st->buf, 3); - if (ret < 0) { - err("ir protocol setup failed"); -- return ret; -+ goto out; - } - - d->props.rc.core.protocol = rc_type; - -+out: -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -commit aeb2d456b746164a4bd19e53de0a6678ca63fcad -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Thu Aug 4 18:10:03 2011 +0200 - - [media] dib0700: correct error message - - The goal of this patch is to correct a previous patch. In case of error, - the err() function should be used instead of dprintk() function. - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 291b645..b693ed1 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - - if (st->fw_version >= 0x10201) { - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - } else { - /* Write request */ - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - st->buf[0] = REQUEST_NEW_I2C_WRITE; -@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - return -EINVAL; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - - if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - int new_proto, ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - diff --git a/libre/linux-libre/ext4-options.patch b/libre/linux-libre/ext4-options.patch deleted file mode 100644 index ea48c384b..000000000 --- a/libre/linux-libre/ext4-options.patch +++ /dev/null @@ -1,50 +0,0 @@ -Report: https://bbs.archlinux.org/profile.php?id=33804 -Signed-off-by: Tom Gundersen <teg@jklm.no> -Cc: Thomas Baechler <thomas@archlinux.org> -Cc: Tobias Powalowski <tobias.powalowski@googlemail.com> -Cc: Dave Reisner <d@falconindy.com> ---- - fs/ext4/super.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 502c61f..30de9cd 100644 ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -1333,6 +1333,7 @@ enum { - Opt_inode_readahead_blks, Opt_journal_ioprio, - Opt_dioread_nolock, Opt_dioread_lock, - Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, -+ Opt_nocheck, Opt_reservation, Opt_noreservation, Opt_journal_inum, - }; - - static const match_table_t tokens = { -@@ -1408,6 +1409,10 @@ static const match_table_t tokens = { - {Opt_init_itable, "init_itable=%u"}, - {Opt_init_itable, "init_itable"}, - {Opt_noinit_itable, "noinit_itable"}, -+ {Opt_nocheck, "nocheck"}, -+ {Opt_reservation, "reservation"}, -+ {Opt_noreservation, "noreservation"}, -+ {Opt_journal_inum, "journal=%u"}, - {Opt_err, NULL}, - }; - -@@ -1904,6 +1909,16 @@ set_qf_format: - case Opt_noinit_itable: - clear_opt(sb, INIT_INODE_TABLE); - break; -+#ifdef CONFIG_EXT4_USE_FOR_EXT23 -+ case Opt_nocheck: -+ case Opt_reservation: -+ case Opt_noreservation: -+ case Opt_journal_inum: -+ ext4_msg(sb, KERN_WARNING, -+ "ext3 mount option \"%s\" ignored " -+ "by ext4 module", p); -+ break; -+#endif - default: - ext4_msg(sb, KERN_ERR, - "Unrecognized mount option \"%s\" " - diff --git a/libre/linux-libre/fix-i915.patch b/libre/linux-libre/fix-i915.patch deleted file mode 100644 index 3b631361a..000000000 --- a/libre/linux-libre/fix-i915.patch +++ /dev/null @@ -1,26 +0,0 @@ -Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> -Tested-by: Santi <santi@agolina.net> ---- - drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c -index dc83b7a..c8f67bf 100644 ---- a/drivers/gpu/drm/i915/intel_tv.c -+++ b/drivers/gpu/drm/i915/intel_tv.c -@@ -1267,6 +1267,15 @@ - DAC_B_0_7_V | - DAC_C_0_7_V); - -+ /* -+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise -+ * the TV is misdetected. This is hardware requirement. -+ */ -+ if (IS_GM45(dev)) -+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | -+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); -+ -+ - I915_WRITE(TV_CTL, tv_ctl); - I915_WRITE(TV_DAC, tv_dac); - POSTING_READ(TV_DAC); diff --git a/libre/linux-libre/fix-memblock-3.3.x.patch b/libre/linux-libre/fix-memblock-3.3.x.patch deleted file mode 100644 index 3f6c984f4..000000000 --- a/libre/linux-libre/fix-memblock-3.3.x.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: Tejun Heo <tj <at> kernel.org> -Subject: [PATCH 3.4-rc3] memblock: memblock should be able to handle zero length operations -Newsgroups: gmane.linux.kernel, gmane.linux.kernel.stable -Date: 2012-04-20 15:31:34 GMT (2 days, 14 hours and 59 minutes ago) -24aa07882b "memblock, x86: Replace memblock_x86_reserve/free_range() -with generic ones" replaced x86 specific memblock operations with the -generic ones; unfortunately, it lost zero length operation handling in -the process making the kernel panic if somebody tries to reserve zero -length area. - -There isn't much to be gained by being cranky to zero length -operations and panicking is almost the worst response. Drop the -BUG_ON() in memblock_reserve() and update -memblock_add_region/isolate_range() so that all zero length operations -are handled as noops. - -Signed-off-by: Tejun Heo <tj <at> kernel.org> -Cc: stable <at> vger.kernel.org -Reported-by: Valere Monseur <valere.monseur <at> ymail.com> -Bisected-by: Joseph Freeman <jfree143dev <at> gmail.com> -Tested-by: Joseph Freeman <jfree143dev <at> gmail.com> -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43098 ---- -This is causing early panics if anyone tries to reserve zero len area, -which unfortunately isn't too uncommon depending on BIOS. The fix is -fairly safe. Unsure which tree it should go through. Cc'ing Linus -and Ingo. - -Thanks. - - mm/memblock.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/mm/memblock.c b/mm/memblock.c -index 99f2855..a44eab3 100644 ---- a/mm/memblock.c -+++ b/mm/memblock.c -@@ -330,6 +330,9 @@ static int __init_memblock memblock_add_region(struct memblock_type *type, - phys_addr_t end = base + memblock_cap_size(base, &size); - int i, nr_new; - -+ if (!size) -+ return 0; -+ - /* special case for empty array */ - if (type->regions[0].size == 0) { - WARN_ON(type->cnt != 1 || type->total_size); -@@ -430,6 +433,9 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type, - - *start_rgn = *end_rgn = 0; - -+ if (!size) -+ return 0; -+ - /* we'll create at most two more regions */ - while (type->cnt + 2 > type->max) - if (memblock_double_array(type) < 0) -@@ -514,7 +520,6 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) - (unsigned long long)base, - (unsigned long long)base + size, - (void *)_RET_IP_); -- BUG_ON(0 == size); - - return memblock_add_region(_rgn, base, size, MAX_NUMNODES); - } diff --git a/libre/linux-libre/fix-r8712u-3.3.2.patch b/libre/linux-libre/fix-r8712u-3.3.2.patch deleted file mode 100644 index a83618dcd..000000000 --- a/libre/linux-libre/fix-r8712u-3.3.2.patch +++ /dev/null @@ -1,56 +0,0 @@ -commit 2080913e017ab9f88379d93fd09546ad95faf87b -Author: Larry Finger <Larry.Finger@lwfinger.net> -Date: Sat Feb 25 18:10:21 2012 -0600 - - staging: r8712u: Fix regression caused by commit 8c213fa - - In commit 8c213fa "staging: r8712u: Use asynchronous firmware loading", - the command to release the firmware was placed in the wrong routine. - - In combination with the bug introduced in commit a5ee652 "staging: r8712u: - Interface-state not fully tracked", the driver attempts to upload firmware - that had already been released. This bug is the source of one of the - problems in https://bugs.archlinux.org/task/27996#comment89833. - - Tested-by: Alberto Lago Ballesteros <saniukeokusainaya@gmail.com> - Tested-by: Adrian <agib@gmx.de> - Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> - Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - -diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c -index 4cf175f..7bbd53a 100644 ---- a/drivers/staging/rtl8712/os_intfs.c -+++ b/drivers/staging/rtl8712/os_intfs.c -@@ -475,9 +475,6 @@ static int netdev_close(struct net_device *pnetdev) - r8712_free_assoc_resources(padapter); - /*s2-4.*/ - r8712_free_network_queue(padapter); -- release_firmware(padapter->fw); -- /* never exit with a firmware callback pending */ -- wait_for_completion(&padapter->rtl8712_fw_ready); - return 0; - } - -diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c -index fe0e2ff..e01fe14 100644 ---- a/drivers/staging/rtl8712/usb_intf.c -+++ b/drivers/staging/rtl8712/usb_intf.c -@@ -30,6 +30,7 @@ - - #include <linux/usb.h> - #include <linux/module.h> -+#include <linux/firmware.h> - - #include "osdep_service.h" - #include "drv_types.h" -@@ -620,6 +621,10 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf) - struct _adapter *padapter = netdev_priv(pnetdev); - struct usb_device *udev = interface_to_usbdev(pusb_intf); - -+ if (padapter->fw_found) -+ release_firmware(padapter->fw); -+ /* never exit with a firmware callback pending */ -+ wait_for_completion(&padapter->rtl8712_fw_ready); - usb_set_intfdata(pusb_intf, NULL); - if (padapter) { - if (drvpriv.drv_registered == true) diff --git a/libre/linux-libre/i915-fix-incorrect-error-message.patch b/libre/linux-libre/i915-fix-incorrect-error-message.patch deleted file mode 100644 index e1addbb05..000000000 --- a/libre/linux-libre/i915-fix-incorrect-error-message.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4 -Author: Thomas Bächler <thomas@archlinux.org> -Date: Mon Oct 31 19:16:18 2011 +0100 - - Change accidental error message to debug message. - - According to https://lkml.org/lkml/2011/9/19/80, this is not supposed - to be an error message, but a debug message. This worries users. - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 04411ad..02d5794 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev) - } else { - /* Enable SSC on PCH eDP if needed */ - if (intel_panel_use_ssc(dev_priv)) { -- DRM_ERROR("enabling SSC on PCH\n"); -+ DRM_DEBUG("enabling SSC on PCH\n"); - temp |= DREF_SUPERSPREAD_SOURCE_ENABLE; - } - } diff --git a/libre/linux-libre/i915-gpu-finish.patch b/libre/linux-libre/i915-gpu-finish.patch deleted file mode 100644 index 5840c9181..000000000 --- a/libre/linux-libre/i915-gpu-finish.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 389a55581e30607af0fcde6cdb4e54f189cf46cf -Author: Chris Wilson <chris@chris-wilson.co.uk> -Date: Tue Nov 29 15:12:16 2011 +0000 - - drm/i915: Only clear the GPU domains upon a successful finish - - By clearing the GPU read domains before waiting upon the buffer, we run - the risk of the wait being interrupted and the domains prematurely - cleared. The next time we attempt to wait upon the buffer (after - userspace handles the signal), we believe that the buffer is idle and so - skip the wait. - - There are a number of bugs across all generations which show signs of an - overly haste reuse of active buffers. - - Such as: - - https://bugs.freedesktop.org/show_bug.cgi?id=29046 - https://bugs.freedesktop.org/show_bug.cgi?id=35863 - https://bugs.freedesktop.org/show_bug.cgi?id=38952 - https://bugs.freedesktop.org/show_bug.cgi?id=40282 - https://bugs.freedesktop.org/show_bug.cgi?id=41098 - https://bugs.freedesktop.org/show_bug.cgi?id=41102 - https://bugs.freedesktop.org/show_bug.cgi?id=41284 - https://bugs.freedesktop.org/show_bug.cgi?id=42141 - - A couple of those pre-date i915_gem_object_finish_gpu(), so may be - unrelated (such as a wild write from a userspace command buffer), but - this does look like a convincing cause for most of those bugs. - - Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> - Cc: stable@kernel.org - Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> - Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index d560175..036bc58 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj) - return ret; - } - -+ ret = i915_gem_object_wait_rendering(obj); -+ if (ret) -+ return ret; -+ - /* Ensure that we invalidate the GPU's caches and TLBs. */ - obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS; -- -- return i915_gem_object_wait_rendering(obj); -+ return 0; - } - - /** diff --git a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch b/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch deleted file mode 100644 index a53a3a425..000000000 --- a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch +++ /dev/null @@ -1,38 +0,0 @@ -This fix regression introduced by commit: - -commit 15b3f3b006b42a678523cad989bfd60b76bf4403 -Author: Wey-Yi Guy <wey-yi.w.guy@intel.com> -Date: Fri Jun 3 07:54:13 2011 -0700 - - iwlagn: set smps mode after assoc for 1000 device - -Also remove unneeded brackets on the way. - -Address: -https://bugzilla.redhat.com/show_bug.cgi?id=744155 - -If fix will not get 3.1 release, it should be applied in 3.1 stable. - -Cc: stable@kernel.org # 3.1+ -Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> ---- - drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -index ca632f9..5004342 100644 ---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv, - return ret; - } - -- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) && -- priv->cfg->ht_params->smps_mode) -+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && -+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode) - ieee80211_request_smps(ctx->vif, - priv->cfg->ht_params->smps_mode); - --- -1.7.1 diff --git a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch deleted file mode 100644 index 880849db5..000000000 --- a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001 -From: NeilBrown <neilb@suse.de> -Date: Mon, 31 Oct 2011 12:59:44 +1100 -Subject: md/raid10: Fix bug when activating a hot-spare. - -From: NeilBrown <neilb@suse.de> - -commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream. - -This is a fairly serious bug in RAID10. - -When a RAID10 array is degraded and a hot-spare is activated, the -spare does not take up the empty slot, but rather replaces the first -working device. -This is likely to make the array non-functional. It would normally -be possible to recover the data, but that would need care and is not -guaranteed. - -This bug was introduced in commit - 2bb77736ae5dca0a189829fbb7379d43364a9dac -which first appeared in 3.1. - -Signed-off-by: NeilBrown <neilb@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/md/raid10.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/md/raid10.c -+++ b/drivers/md/raid10.c -@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde - mirror_info_t *p = &conf->mirrors[mirror]; - if (p->recovery_disabled == mddev->recovery_disabled) - continue; -- if (!p->rdev) -+ if (p->rdev) - continue; - - disk_stack_limits(mddev->gendisk, rdev->bdev, diff --git a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch b/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch deleted file mode 100644 index 9e570dd3f..000000000 --- a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch +++ /dev/null @@ -1,99 +0,0 @@ -commit 2394d67e446bf616a0885167d5f0d397bdacfdfc -Author: Oliver Neukum <oneukum@suse.de> -Date: Tue Sep 13 08:42:21 2011 +0200 - - USB: add RESET_RESUME for webcams shown to be quirky - - The new runtime PM code has shown that many webcams suffer - from a race condition that may crash them upon resume. - Runtime PM is especially prone to show the problem because - it retains power to the cameras at all times. However - system suspension may also crash the devices and retain - power to the devices. - The only way to solve this problem without races is in - usbcore with the RESET_RESUME quirk. - - Signed-off-by: Oliver Neukum <oneukum@suse.de> - Signed-off-by: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 81ce6a8..38f0510 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Creative SB Audigy 2 NX */ - { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C200 */ -+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C250 */ -+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam B/C500 */ -+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam Pro 9000 */ -+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C310 */ -+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C270 */ -+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Harmony 700-series */ - { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, - -@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = { - { USB_DEVICE(0x06a3, 0x0006), .driver_info = - USB_QUIRK_CONFIG_INTF_STRINGS }, - -+ /* Guillemot Webcam Hercules Dualpix Exchange*/ -+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* M-Systems Flash Disk Pioneers */ - { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, - -commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc -Author: Jon Levell <linuxusb@coralbark.net> -Date: Thu Sep 29 20:42:52 2011 +0100 - - USB: add quirk for Logitech C300 web cam - - My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound. - The following trivial patch fixes it. - - Signed-off-by: Jon Levell <linuxusb@coralbark.net> - Cc: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 38f0510..d6a8d82 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam C250 */ - { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C300 */ -+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index d6a8d82..caa1991 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C600 */ -+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam Pro 9000 */ - { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, - diff --git a/libre/thunderbird-libre/gcc46.patch b/libre/thunderbird-libre/gcc46.patch deleted file mode 100644 index 71a3686ea..000000000 --- a/libre/thunderbird-libre/gcc46.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc comm-1.9.2/mozilla/gfx/ots/src/os2.cc ---- comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc 2011-04-14 11:37:21.000000000 -0700 -+++ comm-1.9.2/mozilla/gfx/ots/src/os2.cc 2011-04-29 09:10:23.635807433 -0700 -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include <cstddef> -+ - #include "os2.h" - - #include "head.h" diff --git a/libre/thunderbird-libre/gnuzilla-addons.patch b/libre/thunderbird-libre/gnuzilla-addons.patch deleted file mode 100644 index 2c0e4a68f..000000000 --- a/libre/thunderbird-libre/gnuzilla-addons.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- usr/lib/thunderbird-3.1/defaults/pref/all-thunderbird.js 2011-03-04 17:28:11.000000000 -0300 -+++ all-thunderbird.js 2011-03-08 11:22:31.437207173 -0300 -@@ -144,9 +144,9 @@ - pref("extensions.update.interval", 86400); // Check for updates to Extensions and - // Themes every day - // Non-symmetric (not shared by extensions) extension-specific [update] preferences --pref("extensions.getMoreExtensionsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/extensions/"); --pref("extensions.getMoreThemesURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/themes/"); --pref("extensions.getMorePluginsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/plugins/"); -+pref("extensions.getMoreExtensionsURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -+pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -+pref("extensions.getMorePluginsURL", "http://www.gnu.org/software/gnuzilla/addons.html"); - pref("extensions.dss.enabled", false); // Dynamic Skin Switching - pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next - -@@ -155,14 +155,14 @@ - - // Preferences for the Get Add-ons pane - pref("extensions.getAddons.showPane", true); --pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%"); -+pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html"); - pref("extensions.getAddons.maxResults", 5); --pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended"); --pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%"); --pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%"); --pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%"); -+pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -+pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html"); -+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html"); -+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html"); - --pref("xpinstall.whitelist.add", "addons.mozilla.org"); -+pref("xpinstall.whitelist.add", "www.gnu.org"); - pref("xpinstall.whitelist.add.36", "getpersonas.com"); - - pref("mail.shell.checkDefaultClient", true); diff --git a/libre/thunderbird-libre/libvpx.patch b/libre/thunderbird-libre/libvpx.patch deleted file mode 100644 index d0f9a0f4c..000000000 --- a/libre/thunderbird-libre/libvpx.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur comm-release.orig/mozilla/configure.in comm-release/mozilla/configure.in ---- comm-release.orig/mozilla/configure.in 2012-02-05 18:02:17.376830377 +0000 -+++ comm-release/mozilla/configure.in 2012-02-05 18:03:25.246274275 +0000 -@@ -5629,7 +5629,7 @@ - dnl v0.9.6 one to check for. - AC_TRY_COMPILE([ - #include <vpx/vpx_decoder.h> -- #if !defined(VPX_CODEC_USE_INPUT_PARTITION) -+ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS) - #error "test failed." - #endif - ], diff --git a/libre/thunderbird-libre/mozilla-notify.patch b/libre/thunderbird-libre/mozilla-notify.patch deleted file mode 100644 index 952567b0e..000000000 --- a/libre/thunderbird-libre/mozilla-notify.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp ---- comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify 2010-10-27 09:05:36.000000000 +0200 -+++ comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp 2010-11-08 13:28:04.564002379 +0100 -@@ -204,7 +204,7 @@ nsAlertsIconListener::ShowAlert(GdkPixbu - { - NotifyNotification* notify = notify_notification_new(mAlertTitle.get(), - mAlertText.get(), -- NULL, NULL); -+ NULL); - if (!notify) - return NS_ERROR_OUT_OF_MEMORY; - diff --git a/libre/thunderbird-libre/python2.7.patch b/libre/thunderbird-libre/python2.7.patch deleted file mode 100644 index 2d159d479..000000000 --- a/libre/thunderbird-libre/python2.7.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.in 2010-10-13 08:37:29.000000000 -0700 -+++ configure.in~ 2010-10-19 10:32:06.360019362 -0700 -@@ -878,7 +878,7 @@ - AC_MSG_RESULT([yes]) - fi - --MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python) -+MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.6 python2.5 python2.4 python) - if test -z "$PYTHON"; then - AC_MSG_ERROR([python was not found in \$PATH]) - fi diff --git a/libre/thunderbird-libre/thunderbird-appversion.patch b/libre/thunderbird-libre/thunderbird-appversion.patch deleted file mode 100644 index 3f7a54686..000000000 --- a/libre/thunderbird-libre/thunderbird-appversion.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru comm-1.9.2.orig/mail/installer/Makefile.in comm-1.9.2/mail/installer/Makefile.in ---- comm-1.9.2.orig/mail/installer/Makefile.in 2010-04-30 22:41:37.000000000 +0300 -+++ comm-1.9.2/mail/installer/Makefile.in 2010-05-05 20:20:29.551660469 +0300 -@@ -42,6 +42,8 @@ - - include $(DEPTH)/config/autoconf.mk - -+MOZ_APP_VERSION="3.1" -+ - include $(topsrcdir)/config/rules.mk - - MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in diff --git a/libre/thunderbird-libre/thunderbird-preferences.patch b/libre/thunderbird-libre/thunderbird-preferences.patch deleted file mode 100644 index 627f02434..000000000 --- a/libre/thunderbird-libre/thunderbird-preferences.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -Nur comm-1.9.2.orig/mail/app/profile/all-thunderbird.js comm-1.9.2/mail/app/profile/all-thunderbird.js ---- comm-1.9.2.orig/mail/app/profile/all-thunderbird.js 2010-06-23 20:43:08.000000000 +0300 -+++ comm-1.9.2/mail/app/profile/all-thunderbird.js 2010-06-25 00:37:36.518929684 +0300 -@@ -125,7 +125,7 @@ - pref("app.update.showInstalledUI", false); - - // Release notes URL --pref("app.releaseNotesURL", "http://live.mozillamessaging.com/%APP%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); -+pref("app.releaseNotesURL", "http://www.mozillamessaging.com/%APP%/%VERSION%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); - - // Base URL for web-based support pages. - pref("app.support.baseURL", "http://support.live.mozillamessaging.com/%LOCALE%/%APP%/%APPBUILDID%/"); -diff -Nur comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js comm-1.9.2/mail/branding/nightly/thunderbird-branding.js ---- comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js 2010-06-23 20:43:08.000000000 +0300 -+++ comm-1.9.2/mail/branding/nightly/thunderbird-branding.js 2010-06-25 00:36:10.605569121 +0300 -@@ -1,11 +1,11 @@ - // Default start page --pref("mailnews.start_page.url","https://live.mozillamessaging.com/%APP%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); -+pref("mailnews.start_page.url","https://www.mozillamessaging.com/%APP%/%VERSION%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); - - // first launch welcome page --pref("mailnews.start_page.welcome_url","https://live.mozillamessaging.com/%APP%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); -+pref("mailnews.start_page.welcome_url","https://www.mozillamessaging.com/%APP%/%VERSION%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); - - // start page override to load after an update --pref("mailnews.start_page.override_url","https://live.mozillamessaging.com/%APP%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); -+pref("mailnews.start_page.override_url","https://www.mozillamessaging.com/%APP%/%VERSION%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%"); - - // Interval: Time between checks for a new version (in seconds) - // nightly=8 hours, official=24 hours diff --git a/libre/thunderbird-libre/thunderbird-shared-error.patch b/libre/thunderbird-libre/thunderbird-shared-error.patch deleted file mode 100644 index ae41bbc1e..000000000 --- a/libre/thunderbird-libre/thunderbird-shared-error.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up comm-central/mail/installer/Makefile.in.shared-error comm-central/mail/installer/Makefile.in ---- comm-central/mail/installer/Makefile.in.shared-error 2009-09-16 13:47:43.000000000 +0200 -+++ comm-central/mail/installer/Makefile.in 2009-09-16 13:48:25.000000000 +0200 -@@ -95,9 +95,11 @@ endif - # mozconfig instead. - ifndef MAIL_PKG_SHARED - ifndef BUILD_STATIC_LIBS -+ifeq (BUILD_STATIC_LIBS, 1) - $(error you need an "--enable-static" build to package a build) - endif - endif -+endif - - # On mozilla-central, packager.mk uses core_abspath to redefine DIST - # As the comm-central config.mk doesn't set it, do it ourselves instead diff --git a/libre/thunderbird-libre/xulrunner-png14.patch b/libre/thunderbird-libre/xulrunner-png14.patch deleted file mode 100644 index 1dc0ecda5..000000000 --- a/libre/thunderbird-libre/xulrunner-png14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100 -+++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100 -@@ -135,7 +135,7 @@ - - // initialize - mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING, -- png_voidp_NULL, -+ NULL, - ErrorCallback, - ErrorCallback); - if (! mPNG) diff --git a/testing/krb5/PKGBUILD b/testing/krb5/PKGBUILD deleted file mode 100644 index 4709af354..000000000 --- a/testing/krb5/PKGBUILD +++ /dev/null @@ -1,77 +0,0 @@ -# $Id: PKGBUILD 159408 2012-05-23 20:51:29Z stephane $ -# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> - -pkgname=krb5 -pkgver=1.10.1 -pkgrel=3 -pkgdesc="The Kerberos network authentication system" -arch=('i686' 'x86_64') -url="http://web.mit.edu/kerberos/" -license=('custom') -depends=('e2fsprogs' 'libldap' 'keyutils') -makedepends=('perl') -backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf') -source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.10/${pkgname}-${pkgver}-signed.tar - krb5-1.10.1-gcc47.patch - krb5-kadmind - krb5-kdc - krb5-kpropd) -sha1sums=('f9f3b77173f68b268b43e4f9c29bf7c9f3fd1f0e' - '78b759d566b1fdefd9bbcd06df14f07f12effe96' - '2aa229369079ed1bbb201a1ef72c47bf143f4dbe' - '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393' - '7f402078fa65bb9ff1beb6cbbbb017450df78560') -options=('!emptydirs') - -build() { - tar zxvf ${pkgname}-${pkgver}.tar.gz - cd "${srcdir}/${pkgname}-${pkgver}/src" - - # With gcc47 : deltat.c:1694:12: error: 'yylval' may be used uninitialized - # in this function [-Werror=maybe-uninitialized] - # As this is generated code, just ignore the complaint. - patch -Np2 -i ../../krb5-1.10.1-gcc47.patch - rm lib/krb5/krb/deltat.c - - # FS#25384 - sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4 - - export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all" - export CPPFLAGS+=" -I/usr/include/et" - ./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --localstatedir=/var/lib \ - --enable-shared \ - --with-system-et \ - --with-system-ss \ - --disable-rpath \ - --without-tcl \ - --enable-dns-for-realm \ - --with-ldap \ - --without-system-verto - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}/src" - make DESTDIR="${pkgdir}" EXAMPLEDIR=/usr/share/doc/${pkgname}/examples install - - # Fix FS#29889 - install -m 644 plugins/kdb/ldap/libkdb_ldap/kerberos.{ldif,schema} "${pkgdir}"/usr/share/doc/${pkgname}/examples - - # Sample KDC config file - install -dm 755 "${pkgdir}"/var/lib/krb5kdc - install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf - - # Default configuration file - install -dm 755 "${pkgdir}"/etc - install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf - - install -dm 755 "${pkgdir}"/etc/rc.d - install -m 755 ../../krb5-{kdc,kadmind,kpropd} "${pkgdir}"/etc/rc.d - - install -dm 755 "${pkgdir}"/usr/share/aclocal - install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal - - install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} diff --git a/testing/krb5/krb5-1.10.1-gcc47.patch b/testing/krb5/krb5-1.10.1-gcc47.patch deleted file mode 100644 index ffd01c2a3..000000000 --- a/testing/krb5/krb5-1.10.1-gcc47.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y krb5-1.10.1/src/lib/krb5/krb/x-deltat.y ---- krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y 2011-09-06 07:34:32.000000000 -0400 -+++ krb5-1.10.1/src/lib/krb5/krb/x-deltat.y 2012-03-24 13:15:11.543551318 -0400 -@@ -44,6 +44,7 @@ - #ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wuninitialized" -+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - #endif - - #include <ctype.h> diff --git a/testing/krb5/krb5-kadmind b/testing/krb5/krb5-kadmind deleted file mode 100644 index 04df0dcff..000000000 --- a/testing/krb5/krb5-kadmind +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/kadmind` -case "$1" in - start) - stat_busy "Starting Kerberos Admin Daemon" - if [ -z "$PID" ]; then - /usr/sbin/kadmind - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon krb5-kadmind - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Admin Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon krb5-kadmind - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/krb5/krb5-kdc b/testing/krb5/krb5-kdc deleted file mode 100644 index 05a03411e..000000000 --- a/testing/krb5/krb5-kdc +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/krb5kdc` -case "$1" in - start) - stat_busy "Starting Kerberos Authentication" - if [ -z "$PID" ]; then - /usr/sbin/krb5kdc - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon krb5-kdc - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Authentication" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon krb5-kdc - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/krb5/krb5-kpropd b/testing/krb5/krb5-kpropd deleted file mode 100644 index a0077d68e..000000000 --- a/testing/krb5/krb5-kpropd +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/kpropd` -case "$1" in - start) - stat_busy "Starting Kerberos Database Propagation Daemon" - if [ -z "$PID" ]; then - /usr/sbin/kpropd -S - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon kpropd - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Database Propagation Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon kpropd - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/mdadm/PKGBUILD b/testing/mdadm/PKGBUILD deleted file mode 100644 index 1043e191b..000000000 --- a/testing/mdadm/PKGBUILD +++ /dev/null @@ -1,58 +0,0 @@ -# $Id: PKGBUILD 159624 2012-05-25 23:53:03Z dreisner $ -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> -# Contributor: Judd Vinet <jvinet@zeroflux.org> -pkgname=mdadm -pkgver=3.2.5 -pkgrel=2 -pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID" -arch=(i686 x86_64) -license=('GPL') -url="http://neil.brown.name/blog/mdadm" -groups=('base') -conflicts=('mkinitcpio<0.7') -depends=('glibc') -backup=('etc/mdadm.conf') -source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2 - mdadm - mdadm.conf - mdadm_install - mdadm_hook - mdadm_udev_install - mdadm.service - disable-werror.patch) -replaces=('raidtools') -md5sums=('83ba4a6249ae24677e915e44c9cfcc58' - '8333d405f550317c2bacd5510bf1cb60' - '00cbed931db4f15b6ce49e3e7d433966' - '609d10888727710cb20db7ac3e096116' - 'fbb5542d9bdf87441a11dd7e7a0a17f8' - 'd1d8e9eb81ce9347de74f3c84a9db09e' - 'aafb5f9ac8437a284cbf948b9b13b179' - '4ad87b74a4bc9a34621280abe0e0c3e4') - -build() { - cd $srcdir/$pkgname-$pkgver - patch -Np0 -i ../disable-werror.patch - make CXFLAGS="$CFLAGS" - # build static mdassemble for Arch's initramfs - make MDASSEMBLE_AUTO=1 mdassemble - -} - -package() { - cd $srcdir/$pkgname-$pkgver - make INSTALL=/usr/bin/install DESTDIR=$pkgdir install - install -D -m755 mdassemble $pkgdir/sbin/mdassemble - install -D -m644 ../mdadm.conf $pkgdir/etc/mdadm.conf - install -D -m755 ../mdadm $pkgdir/etc/rc.d/mdadm - install -D -m644 ../mdadm_install $pkgdir/usr/lib/initcpio/install/mdadm - install -D -m644 ../mdadm_hook $pkgdir/usr/lib/initcpio/hooks/mdadm - install -D -m644 ../mdadm_udev_install $pkgdir/usr/lib/initcpio/install/mdadm_udev - # symlink for backward compatibility - ln -sf /usr/lib/initcpio/hooks/mdadm $pkgdir/usr/lib/initcpio/hooks/raid - # move /lib/* to /usr/lib/ - mv $pkgdir/lib/udev $pkgdir/usr/lib/ - rm -rf $pkgdir/lib - # systemd service file - install -D -m644 $srcdir/mdadm.service $pkgdir/usr/lib/systemd/system/mdadm.service -} diff --git a/testing/mdadm/disable-werror.patch b/testing/mdadm/disable-werror.patch deleted file mode 100644 index 50a33f19d..000000000 --- a/testing/mdadm/disable-werror.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Makefile.old 2011-06-17 09:38:03.269238332 +0200 -+++ Makefile 2011-06-17 09:38:14.122398837 +0200 -@@ -42,7 +42,7 @@ - - CC = $(CROSS_COMPILE)gcc - CXFLAGS = -ggdb --CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter -+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter - ifdef WARN_UNUSED - CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O - endif diff --git a/testing/mdadm/linux-3.0.patch b/testing/mdadm/linux-3.0.patch deleted file mode 100644 index cd9d5473c..000000000 --- a/testing/mdadm/linux-3.0.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f161d047eed634b3380262767f955eb888502e88 Mon Sep 17 00:00:00 2001 -From: NeilBrown <neilb@suse.de> -Date: Fri, 17 Jun 2011 22:49:24 +1000 -Subject: [PATCH 1/1] util: correctly parse shorter linux version numbers. - -The next version of Linux might be 3.0. If it is, get_linux_version -will fail. -So make it more robust. - -Reported-by: Namhyung Kim <namhyung@gmail.com> -Reported-by: Milan Broz <mbroz@redhat.com> -Signed-off-by: NeilBrown <neilb@suse.de> ---- - util.c | 10 +++++----- - 1 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/util.c b/util.c -index 10bbe56..55d171a 100644 ---- a/util.c -+++ b/util.c -@@ -146,16 +146,16 @@ int get_linux_version() - { - struct utsname name; - char *cp; -- int a,b,c; -+ int a = 0, b = 0,c = 0; - if (uname(&name) <0) - return -1; - - cp = name.release; - a = strtoul(cp, &cp, 10); -- if (*cp != '.') return -1; -- b = strtoul(cp+1, &cp, 10); -- if (*cp != '.') return -1; -- c = strtoul(cp+1, NULL, 10); -+ if (*cp == '.') -+ b = strtoul(cp+1, &cp, 10); -+ if (*cp == '.') -+ c = strtoul(cp+1, &cp, 10); - - return (a*1000000)+(b*1000)+c; - } --- -1.7.2.3 - diff --git a/testing/mdadm/mdadm b/testing/mdadm/mdadm deleted file mode 100755 index 9bf468e98..000000000 --- a/testing/mdadm/mdadm +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions - -pidfile=/run/mdadm.pid -if [[ -r $pidfile ]]; then - read -r PID <"$pidfile" - if [[ $PID && ! -d /proc/$PID ]]; then - # stale pidfile - unset PID - rm -f "$pidfile" - fi -fi - -case $1 in - start) - stat_busy "Starting mdadm RAID Monitor" - if [[ -z $PID ]] && mdadm --monitor --scan -i "$pidfile" -f; then - add_daemon mdadm - stat_done - else - stat_fail - fi - ;; - stop) - stat_busy "Stopping mdadm RAID Monitor" - if [[ $PID ]] && kill "$PID" &>/dev/null; then - rm_daemon mdadm - stat_done - else - stat_fail - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac diff --git a/testing/mdadm/mdadm.conf b/testing/mdadm/mdadm.conf deleted file mode 100644 index 57bd4c683..000000000 --- a/testing/mdadm/mdadm.conf +++ /dev/null @@ -1,67 +0,0 @@ -# mdadm configuration file -# -# mdadm will function properly without the use of a configuration file, -# but this file is useful for keeping track of arrays and member disks. -# In general, a mdadm.conf file is created, and updated, after arrays -# are created. This is the opposite behavior of /etc/raidtab which is -# created prior to array construction. -# -# -# the config file takes two types of lines: -# -# DEVICE lines specify a list of devices of where to look for -# potential member disks -# -# ARRAY lines specify information about how to identify arrays so -# so that they can be activated -# - - -# You can have more than one device line and use wild cards. The first -# example includes SCSI the first partition of SCSI disks /dev/sdb, -# /dev/sdc, /dev/sdd, /dev/sdj, /dev/sdk, and /dev/sdl. The second -# line looks for array slices on IDE disks. -# -#DEVICE /dev/sd[bcdjkl]1 -#DEVICE /dev/hda1 /dev/hdb1 -# -# The designation "partitions" will scan all partitions found in -# /proc/partitions -DEVICE partitions - - -# ARRAY lines specify an array to assemble and a method of identification. -# Arrays can currently be identified by using a UUID, superblock minor number, -# or a listing of devices. -# -# super-minor is usually the minor number of the metadevice -# UUID is the Universally Unique Identifier for the array -# Each can be obtained using -# -# mdadm -D <md> -# -# To capture the UUIDs for all your RAID arrays to this file, run these: -# to get a list of running arrays: -# # mdadm -D --scan >>/etc/mdadm.conf -# to get a list from superblocks: -# # mdadm -E --scan >>/etc/mdadm.conf -# -#ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371 -#ARRAY /dev/md1 super-minor=1 -#ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1 -# -# ARRAY lines can also specify a "spare-group" for each array. mdadm --monitor -# will then move a spare between arrays in a spare-group if one array has a -# failed drive but no spare -#ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1 -#ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1 -# - - -# When used in --follow (aka --monitor) mode, mdadm needs a -# mail address and/or a program. To start mdadm's monitor mode, add -# "mdadm" to your DAEMONS array in /etc/rc.conf -# -# If the lines are not found, mdadm will exit quietly -#MAILADDR root@mydomain.tld -#PROGRAM /usr/sbin/handle-mdadm-events diff --git a/testing/mdadm/mdadm.service b/testing/mdadm/mdadm.service deleted file mode 100644 index 8389715e8..000000000 --- a/testing/mdadm/mdadm.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=MDADM Event Monitor - -[Service] -ExecStart=/sbin/mdadm --monitor --scan - -[Install] -WantedBy=multi-user.target diff --git a/testing/mdadm/mdadm_hook b/testing/mdadm/mdadm_hook deleted file mode 100755 index 787be5d0c..000000000 --- a/testing/mdadm/mdadm_hook +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/ash - -run_hook() { - local i= mdconfig=/etc/mdadm.conf - - # for partitionable raid, we need to load md_mod first! - modprobe md_mod 2>/dev/null - - if [ -n "$md" ]; then - echo 'DEVICE partitions' >"$mdconfig" - for i in $(cat /proc/cmdline); do - case $i in - # raid - md=[0-9]*,/*) - device=${i%%,*} - device=${device/=/} - array=${i#*,} - echo "ARRAY /dev/$device devices=$array" - ;; - # partitionable raid - md=d[0-9]*,/*) - device=${i%%,*} - device=${device/=/_} - array=${i#*,} - echo "ARRAY /dev/$device devices=$array" - ;; - # raid UUID - md=[0-9]*,[0-9,a-fA-F]*) - device=${i%%,*} - device=${device/=/} - array=${i#*,} - echo "ARRAY /dev/$device UUID=$array" - ;; - # partitionable raid UUID - md=d[0-9]*,[0-9,a-fA-F]*) - device=${i%%,*} - device=${device/=/_} - array=${i#*,} - echo "ARRAY /dev/$device UUID=$array" - ;; - esac - done >>"$mdconfig" - fi - - # assemble everything - [ -s "$mdconfig" ] && /sbin/mdassemble -} - -# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/mdadm/mdadm_install b/testing/mdadm/mdadm_install deleted file mode 100644 index cf6159e40..000000000 --- a/testing/mdadm/mdadm_install +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -build() { - add_checked_modules -f 'dm-' 'drivers/md/*' - - # check if a custom mdadm.conf exists - if grep -q ^ARRAY /etc/mdadm.conf; then - echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays." - add_file "/etc/mdadm.conf" - fi - add_binary "/sbin/mdassemble" - - add_runscript -} - -help() { - cat <<HELPEOF -This hook loads the necessary modules for any raid root device, -and assembles the raid device when run. - -If arrays are defined in /etc/mdadm.conf, the file will be used instead -of command line assembling. - -Command Line Setup: -- for raid arrays with persistent superblocks: - md=<md device no.>,dev0,dev1,...,devn - md=<md device no.>,uuid -- for partitionable raid arrays with persistent superblocks: - md=d<md device no.>,dev0,dev1,...,devn - md=d<md device no.>,uuid - -Parameters: -- <md device no.> = the number of the md device: - 0 means md0, 1 means md1, ... -- <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1 - or 0900878d:f95f6057:c39a36e9:55efa60a -Examples: -- md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1 - This will setup 2 md partitionable arrays. -- md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1 - This will setup 2 md arrays with persistent superblocks. -HELPEOF -} - -# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/mdadm/mdadm_udev_install b/testing/mdadm/mdadm_udev_install deleted file mode 100644 index f6f5de4ad..000000000 --- a/testing/mdadm/mdadm_udev_install +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -build() { - add_checked_modules -f 'dm-' 'drivers/md/*' - - # check if a custom mdadm.conf exists - if grep -qw ^ARRAY "$BASEDIR/etc/mdadm.conf"; then - echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays." - add_file "/etc/mdadm.conf" - fi - - add_binary "mdadm" - add_file "/usr/lib/udev/rules.d/64-md-raid.rules" -} - -help() { - cat <<HELPEOF -This hook loads the necessary modules for a RAID array and uses incremental -assembly via udev at runtime to create the devices. This hook with NOT work -without the udev hook included on the image. -HELPEOF -} - -# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/nfs-utils/PKGBUILD b/testing/nfs-utils/PKGBUILD deleted file mode 100644 index cf92438b4..000000000 --- a/testing/nfs-utils/PKGBUILD +++ /dev/null @@ -1,105 +0,0 @@ -# $Id: PKGBUILD 159425 2012-05-24 07:56:08Z tpowa $ -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> -# Contributor: John Proctor <jproctor@prium.net> -# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org> -# Contributor: abelstr <abel@pinklf.eu> -# Contributor: Marco Lima <cipparello gmail com> - -pkgname=nfs-utils -pkgver=1.2.6 -pkgrel=1 -pkgdesc="Support programs for Network File Systems" -arch=('i686' 'x86_64') -url='http://nfs.sourceforge.net' -license=('GPL') -backup=(etc/{exports,idmapd.conf,nfsmount.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf}) -depends=('glibc' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=2.0.10' 'libgssglue' 'device-mapper') -makedepends=('pkgconfig' 'autoconf' 'automake') -source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2 - nfs-common - nfs-common.conf - nfs-server - nfs-server.conf - exports - idmapd.conf - start-statd.patch - nfs - nfs-utils-1.1.4-mtab-sym.patch - nfs-utils-1.1.4-no-exec.patch - rpc-gssd.service - rpc-mountd.service - rpc-svcgssd.service - rpc-idmapd.service - rpc-statd.service - nfsd.service - var-lib-nfs-rpc_pipefs.mount - proc-fs-nfsd.mount - blkmapd.service - nfs-utils.conf) -install=nfs-utils.install -md5sums=('8be543ca270c2234ff18f8c8d35e0d37' - 'dd0d65fc6e8f422fa12520813098264b' - 'f73f197a16b02c3e248488ec35c4cf43' - 'e619f18354ff958ed624d05d08853d8f' - '9cef69bc686cc5dcac23fbb51450747d' - 'ff585faf410a62c4333a027c50b56bae' - 'eb4f4027fab6fc1201f1ca04f5954c76' - 'e9144277a89a620d9bc80413158a7d27' - 'f5e7bba09a46c5c5d7007cac6eff9df5' - '7674106eaaa4c149bccd4f05fe3604e9' - '4f4827dfc93008dfadd0a530ad0872b2' - '38855936dc55a5afe37d84edc0f11066' - '965311784d49a7d126d512cadbe91deb' - 'e05705d9ccccaeaeb1ecaee20adc05bc' - 'd7df7bc311fd95c5b80017dd1741570d' - '2e72ee082cba5d3ec6f51d2a105664da' - '5d33d2e754fd37280365b287603bac90' - '1cd65909fa0983047f3f06a3ab352401' - '02a34835aa077146a90eb7d191e612d0' - '8ffc2ebe932d29efe17d6f3f23d5b975' - '8ac484023d786766d287ccbe878ae4ba') - -build() { - cd $srcdir/${pkgname}-${pkgver} - patch -Np1 -i ../nfs-utils-1.1.4-mtab-sym.patch - #patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch - # arch specific patch - patch -Np0 -i $srcdir/start-statd.patch - - ./configure --prefix=/usr --enable-nfsv4 --enable-nfsv41 --enable-gss \ - --without-tcp-wrappers --with-statedir=/var/lib/nfs \ - --enable-ipv6 --sysconfdir=/etc --enable-libmount-mount \ - --enable-mountconfig - - make -} - -package() { - cd $srcdir/${pkgname}-${pkgver} - # fix make install - mkdir -p $pkgdir/sbin - make DESTDIR=$pkgdir install - - # support python2 (FS#25120) - sed -i '1s/python$/python2/' "$pkgdir"/usr/sbin/{nfsiostat,mountstats} - - # NFS & NFSv4 init scripts - install -D -m 755 ../nfs-common "$pkgdir/"etc/rc.d/nfs-common - install -D -m 755 ../nfs-server "$pkgdir/"etc/rc.d/nfs-server - # Configuration - install -D -m 644 ../exports "$pkgdir/"etc/exports - install -D -m 644 ../idmapd.conf "$pkgdir/"etc/idmapd.conf - install -D -m 644 ../nfs-common.conf "$pkgdir/"etc/conf.d/nfs-common.conf - install -D -m 644 ../nfs-server.conf "$pkgdir/"etc/conf.d/nfs-server.conf - install -D -m 644 ../nfs "$pkgdir/"etc/conf.d/nfs - install -D -m 644 utils/mount/nfsmount.conf "$pkgdir/"etc/nfsmount.conf - # systemd files - for i in ${srcdir}/*.{service,mount}; do - install -D -m 644 $i "$pkgdir/usr/lib/systemd/system/${i##*/}" - done - install -D -m 644 ../nfs-utils.conf "$pkgdir/"usr/lib/modules-load.d/nfs-utils.conf - # directories - mkdir "$pkgdir/"etc/exports.d - mkdir "$pkgdir/"var/lib/nfs/rpc_pipefs - mkdir "$pkgdir/"var/lib/nfs/v4recovery -} diff --git a/testing/nfs-utils/blkmapd.service b/testing/nfs-utils/blkmapd.service deleted file mode 100644 index 16cb68bbb..000000000 --- a/testing/nfs-utils/blkmapd.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=pNFS block layout mapping daemon -After=var-lib-nfs-rpc_pipefs.mount nfsd.service -Requires=var-lib-nfs-rpc_pipefs.mount - -[Service] -Type=forking -ExecStart=/usr/sbin/blkmapd - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/exports b/testing/nfs-utils/exports deleted file mode 100644 index 8f4aac598..000000000 --- a/testing/nfs-utils/exports +++ /dev/null @@ -1,15 +0,0 @@ -# /etc/exports -# -# List of directories exported to NFS clients. See exports(5). -# Use exportfs -arv to reread. -# -# Example for NFSv2 and NFSv3: -# /srv/home hostname1(rw,sync) hostname2(ro,sync) -# -# Example for NFSv4: -# /srv/nfs4 hostname1(rw,sync,fsid=0) -# /srv/nfs4/home hostname1(rw,sync,nohide) -# Using Kerberos and integrity checking: -# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) -# /srv/nfs4/home gss/krb5i(rw,sync,nohide) -# diff --git a/testing/nfs-utils/idmapd.conf b/testing/nfs-utils/idmapd.conf deleted file mode 100644 index b1b23afe9..000000000 --- a/testing/nfs-utils/idmapd.conf +++ /dev/null @@ -1,14 +0,0 @@ -[General] - -Verbosity = 0 -Pipefs-Directory = /var/lib/nfs/rpc_pipefs -Domain = localdomain - -[Mapping] - -Nobody-User = nobody -Nobody-Group = nobody - -[Translation] - -Method = nsswitch diff --git a/testing/nfs-utils/nfs b/testing/nfs-utils/nfs deleted file mode 100644 index 2d33cf3d4..000000000 --- a/testing/nfs-utils/nfs +++ /dev/null @@ -1,40 +0,0 @@ -# -# Optinal options passed to rquotad -RPCRQUOTADOPTS="" -# -# Optional arguments passed to in-kernel lockd -#LOCKDARG= -# TCP port rpc.lockd should listen on. -#LOCKD_TCPPORT=32803 -# UDP port rpc.lockd should listen on. -#LOCKD_UDPPORT=32769 -# -# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8) -RPCNFSDARGS="" -# Number of nfs server processes to be started. -# The default is 8. -RPCNFSDCOUNT=8 -# Set V4 grace period in seconds -#NFSD_V4_GRACE=90 -# -# Optional arguments passed to rpc.mountd. See rpc.mountd(8) -RPCMOUNTDOPTS="" -# -# Optional arguments passed to rpc.statd. See rpc.statd(8) -STATDARG="" -# -# Optional arguments passed to rpc.idmapd. See rpc.idmapd(8) -RPCIDMAPDARGS="" -# -# Optional arguments passed to rpc.gssd. See rpc.gssd(8) -RPCGSSDARGS="" -# -# Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8) -RPCSVCGSSDARGS="" -# -# To enable RDMA support on the server by setting this to -# the port the server should listen on -#RDMA_PORT=20049 -# -# Optional arguments passed to blkmapd. See blkmapd(8) -BLKMAPDARGS="" diff --git a/testing/nfs-utils/nfs-common b/testing/nfs-utils/nfs-common deleted file mode 100644 index 7b16b4b3c..000000000 --- a/testing/nfs-utils/nfs-common +++ /dev/null @@ -1,315 +0,0 @@ -#!/bin/bash - -daemon_name=nfs-common - -NEED_STATD= -STATD_OPTS= -NEED_IDMAPD= -IDMAPD_OPTS= -NEED_GSSD= -GSSD_OPTS= -PIPEFS_MOUNTPOINT= -PIPEFS_MOUNTOPTS= - -# rpc.statd daemon & binary location -STATD_DAEMON_NAME=rpc.statd -STATD="/usr/sbin/rpc.statd" - -# rpc.idmapd daemon & binary location -IDMAPD_DAEMON_NAME=rpc.idmapd -IDMAPD="/usr/sbin/rpc.idmapd" - -# rpc.gssd daemon & binary location -GSSD_DAEMON_NAME=rpc.gssd -GSSD="/usr/sbin/rpc.gssd" - -. /etc/rc.conf -. /etc/rc.d/functions -. /etc/conf.d/$daemon_name.conf - -# Default mountpoint and options for rpc_pipefs filesystem -[ -z "$PIPEFS_MOUNTPOINT" ] && PIPEFS_MOUNTPOINT="/var/lib/nfs/rpc_pipefs" -[ -z "$PIPEFS_MOUNTOPTS" ] && PIPEFS_MOUNTOPTS="defaults" - -# Parse the fstab file, and determine whether we need idmapd and gssd. (The -# /etc/conf.d/nfs-common settings, if any, will override our autodetection.) -AUTO_NEED_IDMAPD=no -AUTO_NEED_GSSD=no - -if [ -f /etc/fstab ]; then - exec 9<&0 </etc/fstab - - while read DEV MTPT FSTYPE OPTS REST; do - if [ "$FSTYPE" = "nfs4" ]; then - AUTO_NEED_IDMAPD=yes - fi - case "$OPTS" in - sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*) - AUTO_NEED_GSSD=yes - ;; - esac - done - - exec 0<&9 9<&- -fi - -# We also need idmapd if we run an NFSv4 server. It's fairly difficult -# to autodetect whether there are NFSv4 exports or not, and idmapd is not a -# particularily heavy daemon, so we auto-enable it if we find an /etc/exports -# file. This does not mean that there are NFSv4 or other mounts active (or -# even that nfs-kernel-server is installed), but it matches what the "start" -# condition in nfs-kernel-server's init script does, which has a value in -# itself. -if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then - AUTO_NEED_IDMAPD=yes -fi - -case "$NEED_STATD" in - yes|no) - ;; - *) - NEED_STATD=yes - ;; -esac - -case "$NEED_IDMAPD" in - yes|no) - ;; - *) - NEED_IDMAPD=$AUTO_NEED_IDMAPD - ;; -esac - -case "$NEED_GSSD" in - yes|no) - ;; - *) - NEED_GSSD=$AUTO_NEED_GSSD - ;; -esac - -do_modprobe() { - if [ -x /sbin/modprobe -a -f /proc/modules ]; then - modprobe -q "$1" || true - fi -} - -do_mount() { - if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then - return 1 - fi - - if grep -vw "$1" /proc/mounts &> /dev/null ; then - if ! mountpoint -q "$2" ; then - mount -t "$1" "$1" "$2" -o "$3" - return - fi - fi - return 0 -} - -do_umount() { - if mountpoint -q "$1" ; then - umount "$1" - fi - return 0 -} - -get_pid() { - pidof -o %PPID "$1" -} - -case "$1" in - start) - ck_daemon rpcbind && { echo -n "Start rpcbind first." >&2; stat_die; } - rc=0 - if [ "$NEED_STATD" = yes ]; then - stat_busy "Starting $STATD_DAEMON_NAME daemon" - PID=$(get_pid $STATD) - if [ -z "$PID" ]; then - [ -f /var/run/$STATD_DAEMON_NAME.pid ] && rm -f /var/run/$STATD_DAEMON_NAME.pid - # RUN - $STATD $STATD_OPTS - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $STATD) > /var/run/$STATD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - # Run sm-notify - /usr/sbin/sm-notify $SMNOTIFY_OPTS - fi - - if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then - stat_busy "Mounting pipefs filesystem" - do_modprobe sunrpc - do_modprobe nfs - do_modprobe nfsd - do_mount rpc_pipefs "$PIPEFS_MOUNTPOINT" "$PIPEFS_MOUNTOPTS" - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - stat_done - fi - - if [ "$NEED_IDMAPD" = yes ]; then - stat_busy "Starting $IDMAPD_DAEMON_NAME daemon" - PID=$(get_pid $IDMAPD) - if [ -z "$PID" ]; then - [ -f /var/run/$IDMAPD_DAEMON_NAME.pid ] && rm -f /var/run/$IDMAPD_DAEMON_NAME.pid - # RUN - $IDMAPD $IDMAPD_OPTS - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $IDMAPD) > /var/run/$IDMAPD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - fi - - if [ "$NEED_GSSD" = yes ]; then - do_modprobe rpcsec_gss_krb5 - stat_busy "Starting $GSSD_DAEMON_NAME daemon" - PID=$(get_pid $GSSD) - if [ -z "$PID" ]; then - [ -f /var/run/$GSSD_DAEMON_NAME.pid ] && rm -f /var/run/$GSSD_DAEMON_NAME.pid - # RUN - $GSSD $GSSD_OPTS - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $GSSD) > /var/run/$GSSD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - fi - fi - - add_daemon $daemon_name - ;; - - stop) - rc=0 - if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then - - if [ "$NEED_GSSD" = yes ]; then - stat_busy "Stopping $GSSD_DAEMON_NAME daemon" - PID=$(get_pid $GSSD) - # KILL - [ ! -z "$PID" ] && kill $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - rm -f /var/run/$GSSD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - fi - - if [ "$NEED_IDMAPD" = yes ]; then - stat_busy "Stopping $IDMAPD_DAEMON_NAME daemon" - PID=$(get_pid $IDMAPD) - # KILL - [ ! -z "$PID" ] && kill $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - rm -f /var/run/$IDMAPD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - fi - do_umount "$PIPEFS_MOUNTPOINT" 2>/dev/null || true - fi - - if [ "$NEED_STATD" = yes ]; then - stat_busy "Stopping $STATD_DAEMON_NAME daemon" - PID=$(get_pid $STATD) - # KILL - [ ! -z "$PID" ] && kill $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - rm -f /var/run/$STATD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - fi - - rm_daemon $daemon_name - ;; - - status) - stat_busy "Checking $daemon_name status"; - ck_status $daemon_name - - if [ "$NEED_STATD" = yes ]; then - stat_busy "Daemon $STATD_DAEMON_NAME running" - PID=$(get_pid $STATD) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - fi - - if [ "$NEED_GSSD" = yes ]; then - stat_busy "Daemon $GSSD_DAEMON_NAME running" - PID=$(get_pid $GSSD) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - fi - - if [ "$NEED_IDMAPD" = yes ]; then - stat_busy "Daemon $IDMAPD_DAEMON_NAME running" - PID=$(get_pid $IDMAPD) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - fi - echo - ;; - - restart) - $0 stop - sleep 3 - $0 start - ;; - *) - echo "usage: $0 {start|stop|status|restart}" -esac -exit 0 - diff --git a/testing/nfs-utils/nfs-common.conf b/testing/nfs-utils/nfs-common.conf deleted file mode 100644 index 12466b3e5..000000000 --- a/testing/nfs-utils/nfs-common.conf +++ /dev/null @@ -1,40 +0,0 @@ -# Parameters to be passed to nfs-common (nfs clients & server) init script. -# - -# If you do not set values for the NEED_ options, they will be attempted -# autodetected; this should be sufficient for most people. Valid alternatives -# for the NEED_ options are "yes" and "no". - -# Do you want to start the statd daemon? It is not needed for NFSv4. -NEED_STATD="" - -# Options to pass to rpc.statd. -# See rpc.statd(8) for more details. -# N.B. statd normally runs on both client and server, and run-time -# options should be specified accordingly. -# STATD_OPTS="-p 32765 -o 32766" -STATD_OPTS="" - -# Options to pass to sm-notify -# e.g. SMNOTIFY_OPTS="-p 32764" -SMNOTIFY_OPTS="" - -# Do you want to start the idmapd daemon? It is only needed for NFSv4. -NEED_IDMAPD="" - -# Options to pass to rpc.idmapd. -# See rpc.idmapd(8) for more details. -IDMAPD_OPTS="" - -# Do you want to start the gssd daemon? It is required for Kerberos mounts. -NEED_GSSD="" - -# Options to pass to rpc.gssd. -# See rpc.gssd(8) for more details. -GSSD_OPTS="" - -# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs". -PIPEFS_MOUNTPOINT="" - -# Options used to mount rpc_pipefs filesystem; the default is "defaults". -PIPEFS_MOUNTOPTS="" diff --git a/testing/nfs-utils/nfs-server b/testing/nfs-utils/nfs-server deleted file mode 100644 index 6aa609d8c..000000000 --- a/testing/nfs-utils/nfs-server +++ /dev/null @@ -1,299 +0,0 @@ -#!/bin/bash - -daemon_name=nfs-server - -NFSD_COUNT= -NFSD_OPTS= -NEED_SVCGSSD= -SVCGSSD_OPTS= -MOUNTD_OPTS= -PROCNFSD_MOUNTPOINT= -PROCNFSD_MOUNTOPTS= - -# rpc.nfsd daemon & binary location -NFSD_PROCESS_NAME=nfsd -NFSD_DAEMON_NAME=rpc.nfsd -NFSD="/usr/sbin/rpc.nfsd" - -# rpc.svcgssd daemon & binary location -SVCGSSD_DAEMON_NAME=rpc.svcgssd -SVCGSSD="/usr/sbin/rpc.svcgssd" - -# rpc.idmapd daemon & binary location -IDMAPD_DAEMON_NAME=rpc.idmapd -IDMAPD="/usr/sbin/rpc.idmapd" - -# rpc.mountd daemon & binary location -MOUNTD_DAEMON_NAME=rpc.mountd -MOUNTD="/usr/sbin/rpc.mountd" - -# exortfs binary location -EXPORTFS="/usr/sbin/exportfs" - -. /etc/rc.conf -. /etc/rc.d/functions -. /etc/conf.d/$daemon_name.conf - -# Default number of nfsd servers -[ -z "$NFSD_COUNT" ] && NFSD_COUNT=8 - -# Default mountpoint and options for nfsd filesystem -[ -z "$PROCNFSD_MOUNTPOINT" ] && PROCNFSD_MOUNTPOINT="/proc/fs/nfsd" -[ -z "$PROCNFSD_MOUNTOPTS" ] && PROCNFSD_MOUNTOPTS="rw,nodev,noexec,nosuid" - -case "$NEED_SVCGSSD" in - yes|no) - ;; - *) - NEED_SVCGSSD=no - ;; -esac - -do_modprobe() { - if [ -x /sbin/modprobe -a -f /proc/modules ]; then - modprobe -q "$1" || true - fi -} - -do_mount() { - if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then - return 1 - fi - - if grep -vw "$1" /proc/mounts &> /dev/null ; then - if ! mountpoint -q "$2" ; then - mount -t "$1" "$1" "$2" -o "$3" - return - fi - fi - return 0 -} - -do_umount() { - if mountpoint -q "$1" ; then - umount "$1" - fi - return 0 -} - -get_pid() { - pidof -o %PPID "$1" -} - -case "$1" in - start) - ck_daemon nfs-common && { echo -n "Start nfs-common first." >&2; stat_die; } - rc=0 - stat_busy "Mounting nfsd filesystem" - do_modprobe nfsd - do_mount nfsd "$PROCNFSD_MOUNTPOINT" "$PROCNFSD_MOUNTOPTS" - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - stat_done - fi - - stat_busy "Exporting all directories" - $EXPORTFS -r - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - stat_done - fi - - stat_busy "Starting $NFSD_DAEMON_NAME daemon" - PID=$(get_pid $NFSD_PROCESS_NAME) - if [ -z "$PID" ]; then - [ -f /var/run/$NFSD_DAEMON_NAME.pid ] && rm -f /var/run/$NFSD_DAEMON_NAME.pid - # RUN - $NFSD $NFSD_OPTS $NFSD_COUNT - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $NFSD_PROCESS_NAME) > /var/run/$NFSD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - - if [ "$NEED_SVCGSSD" = yes ]; then - do_modprobe rpcsec_gss_krb5 - stat_busy "Starting $SVCGSSD_DAEMON_NAME daemon" - PID=$(get_pid $SVCGSSD) - if [ -z "$PID" ]; then - [ -f /var/run/$SVCGSSD_DAEMON_NAME.pid ] && rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid - # RUN - $SVCGSSD $SVCGSSD_OPTS - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $SVCGSSD) > /var/run/$SVCGSSD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - fi - - PID=$(get_pid $IDMAPD) - [ ! -z "$PID" ] && kill -SIGHUP $IDMAPD_DAEMON_NAME &> /dev/null - - stat_busy "Starting $MOUNTD_DAEMON_NAME daemon" - PID=$(get_pid $MOUNTD) - if [ -z "$PID" ]; then - [ -f /var/run/$MOUNTD_DAEMON_NAME.pid ] && rm -f /var/run/$MOUNTD_DAEMON_NAME.pid - # RUN - $MOUNTD $MOUNTD_OPTS - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - echo $(get_pid $MOUNTD) > /var/run/$MOUNTD_DAEMON_NAME.pid - stat_done - fi - else - stat_fail - exit 1 - fi - - add_daemon $daemon_name - ;; - - stop) - rc=0 - stat_busy "Stopping $MOUNTD_DAEMON_NAME daemon" - PID=$(get_pid $MOUNTD) - # KILL - [ ! -z "$PID" ] && kill $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - rm -f /var/run/$MOUNTD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - - if [ "$NEED_SVCGSSD" = yes ]; then - stat_busy "Stopping $SVCGSSD_DAEMON_NAME daemon" - PID=$(get_pid $SVCGSSD) - # KILL - [ ! -z "$PID" ] && kill $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - fi - - stat_busy "Stopping $NFSD_DAEMON_NAME daemon" - PID=$(get_pid $NFSD_PROCESS_NAME) - # KILL (SIGINT) - [ ! -z "$PID" ] && kill -2 $PID &> /dev/null - # - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - sleep 1 - PID=$(get_pid $NFSD_PROCESS_NAME) - # KILL (KILL) - just to be sure - [ ! -z "$PID" ] && kill -9 $PID &> /dev/null - # - rm -f /var/run/$NFSD_DAEMON_NAME.pid &> /dev/null - stat_done - fi - - stat_busy "Unexporting all directories" - $EXPORTFS -au - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - stat_done - fi - - # flush everything out of the kernels export table - if mountpoint -q "$PROCNFSD_MOUNTPOINT" ; then - $EXPORTFS -f - fi - do_umount "$PROCNFSD_MOUNTPOINT" 2>/dev/null || true - rm_daemon $daemon_name - ;; - - status) - stat_busy "Checking $daemon_name status"; - ck_status $daemon_name - - stat_busy "Daemon $NFSD_DAEMON_NAME running" - PID=$(get_pid $NFSD_PROCESS_NAME) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - - stat_busy "Daemon $MOUNTD_DAEMON_NAME running" - PID=$(get_pid $MOUNTD) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - - if [ "$NEED_SVCGSSD" = yes ]; then - stat_busy "Daemon $SVCGSSD_DAEMON_NAME running" - PID=$(get_pid $SVCGSSD) - if [ -z "$PID" ]; then - stat_fail - else - stat_done - fi - fi - echo - ;; - - reload) - rc=0 - stat_busy "Re-exporting all directories" - $EXPORTFS -r - rc=$(($rc+$?)) - if [ $rc -gt 0 ]; then - stat_fail - exit $rc - else - stat_done - fi - ;; - - restart) - $0 stop - sleep 3 - $0 start - ;; - *) - echo "usage: $0 {start|stop|status|reload|restart}" -esac -exit 0 diff --git a/testing/nfs-utils/nfs-server.conf b/testing/nfs-utils/nfs-server.conf deleted file mode 100644 index 581e26350..000000000 --- a/testing/nfs-utils/nfs-server.conf +++ /dev/null @@ -1,29 +0,0 @@ -# Parameters to be passed to nfs-server init script. -# - -# Options to pass to rpc.nfsd. -# See rpc.nfsd(8) for more details. -NFSD_OPTS="" - -# Number of servers to start up; the default is 8 servers. -NFSD_COUNT="" - -# Where to mount nfsd filesystem; the default is "/proc/fs/nfsd". -PROCNFSD_MOUNTPOINT="" - -# Options used to mount nfsd filesystem; the default is "rw,nodev,noexec,nosuid". -PROCNFSD_MOUNTOPTS="" - -# Options for rpc.mountd. -# If you have a port-based firewall, you might want to set up -# a fixed port here using the --port option. -# See rpc.mountd(8) for more details. -MOUNTD_OPTS="" - -# Do you want to start the svcgssd daemon? It is only required for Kerberos -# exports. Valid alternatives are "yes" and "no"; the default is "no". -NEED_SVCGSSD="" - -# Options to pass to rpc.svcgssd. -# See rpc.svcgssd(8) for more details. -SVCGSSD_OPTS="" diff --git a/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch b/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch deleted file mode 100644 index c9e60afc7..000000000 --- a/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch +++ /dev/null @@ -1,39 +0,0 @@ -ripped from Debian - ---- nfs-utils-1.1.4/utils/mount/fstab.c -+++ nfs-utils-1.1.4/utils/mount/fstab.c -@@ -57,7 +57,7 @@ mtab_does_not_exist(void) { - return var_mtab_does_not_exist; - } - --static int -+int - mtab_is_a_symlink(void) { - get_mtab_info(); - return var_mtab_is_a_symlink; ---- nfs-utils-1.1.4/utils/mount/fstab.h -+++ nfs-utils-1.1.4/utils/mount/fstab.h -@@ -7,6 +7,7 @@ - #define _PATH_FSTAB "/etc/fstab" - #endif - -+int mtab_is_a_symlink(void); - int mtab_is_writable(void); - int mtab_does_not_exist(void); - void reset_mtab_info(void); ---- nfs-utils-1.1.4/utils/mount/mount.c -+++ nfs-utils-1.1.4/utils/mount/mount.c -@@ -230,6 +230,13 @@ create_mtab (void) { - int flags; - mntFILE *mfp; - -+ /* Avoid writing if the mtab is a symlink to /proc/mounts, since -+ that would create a file /proc/mounts in case the proc filesystem -+ is not mounted, and the fchmod below would also fail. */ -+ if (mtab_is_a_symlink()) { -+ return EX_SUCCESS; -+ } -+ - lock_mtab(); - - mfp = nfs_setmntent (MOUNTED, "a+"); diff --git a/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch b/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch deleted file mode 100644 index ea50a21d8..000000000 --- a/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch +++ /dev/null @@ -1,15 +0,0 @@ -ripped from Debian - ---- nfs-utils-1.1.2/utils/mount/mount.c -+++ nfs-utils-1.1.2/utils/mount/mount.c -@@ -381,10 +381,6 @@ - mount_error(NULL, mount_point, ENOTDIR); - return 1; - } -- if (access(mount_point, X_OK) < 0) { -- mount_error(NULL, mount_point, errno); -- return 1; -- } - - return 0; - } diff --git a/testing/nfs-utils/nfs-utils.conf b/testing/nfs-utils/nfs-utils.conf deleted file mode 100644 index 33c97b838..000000000 --- a/testing/nfs-utils/nfs-utils.conf +++ /dev/null @@ -1 +0,0 @@ -nfs diff --git a/testing/nfs-utils/nfs-utils.install b/testing/nfs-utils/nfs-utils.install deleted file mode 100644 index 7dcdf9575..000000000 --- a/testing/nfs-utils/nfs-utils.install +++ /dev/null @@ -1,32 +0,0 @@ -## arg 1: the new package version -post_install() { -cat << 'EOM' - ==> PLEASE NOTE: - ==> Extended configuration options for NFS (clients & server) are available in - ==> /etc/conf.d/nfs-common.conf and in /etc/conf.d/nfs-server.conf - ==> - ==> Please refer to http://wiki.archlinux.org/index.php/Nfs - ==> for further information on NFS; for NFSv4, refer to - ==> http://wiki.archlinux.org/index.php/NFSv4 -EOM -} - -## arg 1: the new package version -## arg 2: the old package version -post_upgrade() { - if [ "$(vercmp $2 1.2.0-2)" -lt 0 ]; then -cat << 'EOM' - ==> IMPORTANT NFS UTILS CHANGES: - ==> This is a rather important upgrade, you are going to have to change config files. - ==> /etc/rc.conf daemons changes: - ==> Change portmap to rpcbind - ==> Change nfslock to nfs-common - ==> Change nfsd to nfs-server - ==> - ==> Extended configuration options for NFS (clients & server) are available in: - ==> /etc/conf.d/nfs-common - ==> /etc/conf.d/nfs-server - ==> Please change them to your needs. -EOM - fi -} diff --git a/testing/nfs-utils/nfsd.service b/testing/nfs-utils/nfsd.service deleted file mode 100644 index e5481c3d1..000000000 --- a/testing/nfs-utils/nfsd.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=NFS server -After=rpcbind.service -Requires=rpcbind.service - -[Service] -Type=oneshot -EnvironmentFile=/etc/conf.d/nfs-server.conf -ExecStart=/usr/sbin/rpc.nfsd $NFSD_OPTS $NFSD_COUNT -ExecStartPost=/usr/sbin/exportfs -a -ExecStop=/usr/sbin/rpc.nfsd 0 -ExecStopPost=/usr/sbin/exportfs -a -u -RemainAfterExit=yes - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/proc-fs-nfsd.mount b/testing/nfs-utils/proc-fs-nfsd.mount deleted file mode 100644 index f8664a8be..000000000 --- a/testing/nfs-utils/proc-fs-nfsd.mount +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=RPC Pipe File System -DefaultDependencies=no - -[Mount] -What=sunrpc -Where=/proc/fs/nfsd -Type=rpc_pipefs diff --git a/testing/nfs-utils/rpc-gssd.service b/testing/nfs-utils/rpc-gssd.service deleted file mode 100644 index 446864d18..000000000 --- a/testing/nfs-utils/rpc-gssd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=RPC GSS-API client-side daemon -After=rpcbind.service var-lib-nfs-rpc_pipefs.mount -Requires=rpcbind.service var-lib-nfs-rpc_pipefs.mount - -[Service] -Type=forking -EnvironmentFile=/etc/conf.d/nfs-common.conf -ExecStart=/usr/sbin/rpc.gssd $GSSD_OPTS - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/rpc-idmapd.service b/testing/nfs-utils/rpc-idmapd.service deleted file mode 100644 index 72cd26a93..000000000 --- a/testing/nfs-utils/rpc-idmapd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=NFSv4 ID-name mapping daemon -After=var-lib-nfs-rpc_pipefs.mount nfsd.service -Requires=var-lib-nfs-rpc_pipefs.mount - -[Service] -Type=forking -EnvironmentFile=/etc/conf.d/nfs-common.conf -ExecStart=/usr/sbin/rpc.idmapd $IDMAPD_OPTS - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/rpc-mountd.service b/testing/nfs-utils/rpc-mountd.service deleted file mode 100644 index edd8c851d..000000000 --- a/testing/nfs-utils/rpc-mountd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=NFS Mount Daemon -After=rpcbind.service nfsd.service -Requires=rpcbind.service nfsd.service - -[Service] -Type=forking -EnvironmentFile=/etc/conf.d/nfs-server.conf -ExecStart=/usr/sbin/rpc.mountd $MOUNTD_OPTS - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/rpc-statd.service b/testing/nfs-utils/rpc-statd.service deleted file mode 100644 index 983b4044f..000000000 --- a/testing/nfs-utils/rpc-statd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=NFSv2/3 Network Status Monitor Daemon -After=rpcbind.service -Requires=rpcbind.service - -[Service] -Type=forking -EnvironmentFile=/etc/conf.d/nfs-common.conf -ExecStart=/usr/sbin/rpc.statd $STATD_OPTS - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/rpc-svcgssd.service b/testing/nfs-utils/rpc-svcgssd.service deleted file mode 100644 index 8152e8338..000000000 --- a/testing/nfs-utils/rpc-svcgssd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=RPC GSS-API server-side daemon -After=rpcbind.service -Requires=rpcbind.service - -[Service] -Type=forking -EnvironmentFile=/etc/conf.d/nfs-server.conf -ExecStart=/usr/sbin/rpc.svcgssd $SVCGSSD_OPTS - -[Install] -WantedBy=multi-user.target diff --git a/testing/nfs-utils/start-statd.patch b/testing/nfs-utils/start-statd.patch deleted file mode 100644 index 5d73b6e35..000000000 --- a/testing/nfs-utils/start-statd.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- utils/statd/start-statd 2007-05-11 04:40:57.000000000 +0100 -+++ utils/statd/start-statd.new 2007-09-21 17:11:34.000000000 +0100 -@@ -1,9 +1,16 @@ --#!/bin/bash -p -+#!/bin/sh -+ -+# Original script provided by the NFS project -+# Modified for Arch Linux by Tom Killian -+ - # nfsmount calls this script when mounting a filesystem with locking - # enabled, but when statd does not seem to be running (based on - # /var/run/rpc.statd.pid). - # It should run statd with whatever flags are apropriate for this - # site. --PATH=/sbin:/usr/sbin --exec rpc.statd --no-notify -+ -+# source application-specific settings -+[ -f /etc/conf.d/nfs-common.conf ] && . /etc/conf.d/nfs-common.conf -+ -+exec /usr/sbin/rpc.statd $STATD_OPTS - diff --git a/testing/nfs-utils/var-lib-nfs-rpc_pipefs.mount b/testing/nfs-utils/var-lib-nfs-rpc_pipefs.mount deleted file mode 100644 index 4bd440f24..000000000 --- a/testing/nfs-utils/var-lib-nfs-rpc_pipefs.mount +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=RPC pipe filesystem - -[Mount] -What=rpc_pipefs -Where=/var/lib/nfs/rpc_pipefs -Type=rpc_pipefs diff --git a/~lukeshu/parabolaweb-git/PKGBUILD b/~lukeshu/parabolaweb-git/PKGBUILD deleted file mode 100644 index 962b1c977..000000000 --- a/~lukeshu/parabolaweb-git/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> -# This does not follow normal package guidelines; it is not a normal package. - -pkgname=parabolaweb-git -pkgver=20120228 -pkgrel=2 -pkgdesc="The Parabola website, fork of archweb" -arch=('any') -url="https://projects.parabolagnulinux.org/parabolaweb.git/" -license=('GPL2') - -_requirements=https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt -depends=('python2' 'git' - `curl -s "$_requirements" | sed -r -e 's/.*/\L&/' -e 's/==/=/' \ - -e 's/^(south)/python-&/' \ - -e 's/^(markdown|psycopg2|pyinotify|pytz)/python2-&/'`) -install=parabolaweb.install - -# These will make it install into /http/srv/web -_install_dir=/srv/http -_gitname=web - -_gitroot=https://projects.parabolagnulinux.org/parabolaweb.git -_gitbranch="master" - -build() { - sed -i \ - -e "s|^_install_dir=.*|_install_dir='$_install_dir'|" \ - -e "s|^_gitname=.*|_gitname='$_gitname'|" \ - -e "s|^_gitroot=.*|_gitroot='$_gitroot'|" \ - -e "s|^_gitbranch=.*|_gitbranch='$_gitbranch'|" \ - ../parabolaweb.install -} - -package() { - install -d "${pkgdir}/${_install_dir}" -} diff --git a/~lukeshu/parabolaweb-git/parabolaweb.install b/~lukeshu/parabolaweb-git/parabolaweb.install deleted file mode 100644 index 53374ccc3..000000000 --- a/~lukeshu/parabolaweb-git/parabolaweb.install +++ /dev/null @@ -1,65 +0,0 @@ -# These will make it install into /http/srv/web -_install_dir='/srv/http' -_gitname='web' - -_gitroot='https://projects.parabolagnulinux.org/parabolaweb.git' -_gitbranch='master' - -msg() { - echo $@ -} - -_main() { - set -e - if [ ! -d "$_install_dir" ]; then - mkdir "$_install_dir" - fi - cd "$_install_dir" - - msg "Connecting to GIT server...." - if [ -d ${_gitname} ] ; then - cd ${_gitname} - git pull ${_gitroot} - msg "The local files are updated." - else - git clone ${_gitroot} ${_gitname} - cd ${_gitname} - fi - git checkout ${_gitbranch} - msg "GIT checkout done or server timeout" - - msg "Checking configuration...." - if [ ! -f local_settings.py ]; then - cp local_settings.py.example local_settings.py.tmp - $EDITOR local_settings.py.tmp - mv local_settings.py.tmp local_settings.py - msg "Creating database...." - ./manage.py syncdb - fi - - msg "Purging old .pyc files...." - find . -name '*.pyc' -delete - - msg "Updating database...." - ./manage.py migrate - ./manage.py loaddata */fixtures/*.json - - msg "Checking media/admin_media symlink...." - if [ ! -e media/admin-media ]; then - rm media/admin_media - ln -s /usr/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media - fi -} - -# arg 1: the new package version -post_install() { - _main -} - -# arg 1: the new package version -# arg 2: the old package version -post_upgrade() { - _main -} - -# vim:set ts=2 sw=2 et: |