summaryrefslogtreecommitdiff
path: root/meta-openvuplus
diff options
context:
space:
mode:
authorChang.H.S <jhs@dev3>2012-11-27 07:45:31 (GMT)
committerChang.H.S <jhs@dev3>2012-11-27 07:45:31 (GMT)
commit4a8d962497eff022a8306264d68b13b2e6314c2f (patch)
treefb1b6c3862aeae566ef9c67ef73d421602b954e7 /meta-openvuplus
parentb627e67813ba7a1e70d2614267ab7d0c0009cdef (diff)
add base packages..
Diffstat (limited to 'meta-openvuplus')
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/020_auto_net_path_sortlocale_mountoptions.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/037_let_debian_rules_decide_on_CFLAGS.patch34
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/042_default_auto_master_all_commented_out.patch18
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/060_non_replicated_ping.patch228
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/061_multi_parse_fix.patch60
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/062_fix_memory_leak.patch32
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/063_misc_fixes.patch82
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/064_support_options_on_nis_maps.patch45
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/065_fix_master_map_in_ldap.patch22
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/066_canonicalise_mount_points.patch24
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_allow_disabling_bind_mounts.patch77
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_ldap_no_first_message.patch28
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/068_fix_invalid_rpcgen_code.patch21
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/069_support_spaces_in_smb_share_names.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/070_fix_regex_typo.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/071_fix_ldap_mounts.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/072_fix_auto_net_sort.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/073_configurable_locking.patch173
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/074_auto_smb_cifs.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/075_auto_net_escape_hash.patch16
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/076_ldap_deprecated.patch265
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/078_locking_fix_1.patch82
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/079_no_unlink_upstream.patch55
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/080_auto_smb_probe_credentials.patch37
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/081_auto_net_showmount_quotes.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/082_samples_makefile_typo.patch18
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/083_clarify_program_map_outputsyntax.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/084_init_lsb_header.patch26
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/085_auto_net_lp111612.patch20
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/Makefile.rules-cross.patch19
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.hotplug1
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.master11
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.network2
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.default2
-rwxr-xr-xmeta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.init803
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/cross.patch42
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/install.patch71
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/no-bash.patch18
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs-4.1.4/volatiles.99_autofs2
-rw-r--r--meta-openvuplus/recipes-base/autofs/autofs_4.1.4.bb80
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps.bb18
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/GPL-1.0252
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.info2
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.kmapbin0 -> 2823 bytes
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.info2
-rw-r--r--meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.kmapbin0 -> 2823 bytes
-rw-r--r--meta-openvuplus/recipes-base/fakelocale/fakelocale.bb48
-rw-r--r--meta-openvuplus/recipes-base/fakelocale/files/locale.alias28
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg-collateral.bbappend3
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg-collateral/dest5
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch32
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0002-Don-t-mark-Conflicts-as-Depends.patch29
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0003-Statically-link-libopkg-and-libbb.patch107
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0004-Makefile.am-remove-g-and-O-compiler-flags.patch50
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0005-pkg_depends-remove-unused-variables-to-fix-compiler-.patch48
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0006-pkg_hash_fetch_conflicts-fix-possible-segfaults.patch34
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch94
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch49
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch100
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg/0010-opkg_remove-auto-delete-.pyo-files.patch33
-rw-r--r--meta-openvuplus/recipes-base/opkg/opkg_svn.bbappend14
-rw-r--r--meta-openvuplus/recipes-base/vuplus-compat/vuplus-compat_1.0.bb22
62 files changed, 3536 insertions, 0 deletions
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/020_auto_net_path_sortlocale_mountoptions.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/020_auto_net_path_sortlocale_mountoptions.patch
new file mode 100644
index 0000000..ed747b3
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/020_auto_net_path_sortlocale_mountoptions.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 020_auto_net_path_sortlocale_mountoptions.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.net .A/samples/auto.net
+--- .B/samples/auto.net 2005-04-05 13:02:09.000000000 +0000
++++ .A/samples/auto.net 2007-01-07 21:36:35.000000000 +0000
+@@ -11,7 +11,7 @@
+
+ # add "nosymlink" here if you want to suppress symlinking local filesystems
+ # add "nonstrict" to make it OK for some filesystems to not mount
+-opts="-fstype=nfs,hard,intr,nodev,nosuid"
++opts="-fstype=nfs,hard,intr,nodev,nosuid,nonstrict,async"
+
+ # Showmount comes in a number of names and varieties. "showmount" is
+ # typically an older version which accepts the '--no-headers' flag
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/037_let_debian_rules_decide_on_CFLAGS.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/037_let_debian_rules_decide_on_CFLAGS.patch
new file mode 100644
index 0000000..d0a129f
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/037_let_debian_rules_decide_on_CFLAGS.patch
@@ -0,0 +1,34 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 037_let_debian_rules_decide_on_CFLAGS.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/Makefile.rules .A/Makefile.rules
+--- .B/Makefile.rules 2004-01-29 16:01:22.000000000 +0000
++++ .A/Makefile.rules 2007-01-07 21:36:35.000000000 +0000
+@@ -17,15 +17,15 @@
+ # Compilers, linkers and flags
+ # The STRIP defined here *must not* remove any dynamic-loading symbols
+
+-ifdef DEBUG
+-CFLAGS = -O2 -g -DDEBUG
+-LDFLAGS = -g
++#ifdef DEBUG
++#CFLAGS = -O2 -g -DDEBUG
++#LDFLAGS = -g
+ STRIP = :
+-else
+-CFLAGS = -O3 -fomit-frame-pointer -Wall
+-LDFLAGS = -s
+-STRIP = strip --strip-debug
+-endif
++#else
++#CFLAGS = -O3 -fomit-frame-pointer -Wall
++#LDFLAGS = -s
++#STRIP = strip --strip-debug
++#endif
+
+ CC = gcc
+ CXX = g++
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/042_default_auto_master_all_commented_out.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/042_default_auto_master_all_commented_out.patch
new file mode 100644
index 0000000..e3986cd
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/042_default_auto_master_all_commented_out.patch
@@ -0,0 +1,18 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 042_default_auto_master_all_commented_out.dpatch by
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.master .A/samples/auto.master
+--- .B/samples/auto.master 2005-01-04 14:36:54.000000000 +0000
++++ .A/samples/auto.master 2007-01-07 21:36:35.000000000 +0000
+@@ -7,5 +7,5 @@
+ # For details of the format look at autofs(5).
+ #/misc /etc/auto.misc --timeout=60
+ #/smb /etc/auto.smb
+-/misc /etc/auto.misc
+-/net /etc/auto.net
++#/misc /etc/auto.misc
++#/net /etc/auto.net
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/060_non_replicated_ping.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/060_non_replicated_ping.patch
new file mode 100644
index 0000000..c8493da
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/060_non_replicated_ping.patch
@@ -0,0 +1,228 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 060_non_replicated_ping.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
+--- .B/modules/mount_nfs.c 2005-04-05 12:42:42.000000000 +0000
++++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
+@@ -31,6 +31,7 @@
+ #include <netinet/in.h>
+ #include <linux/nfs.h>
+ #include <linux/nfs2.h>
++#include <ctype.h>
+
+ #define MODULE_MOUNT
+ #include "automount.h"
+@@ -105,28 +106,117 @@
+
+ return 1;
+ }
++
++/*
++ * If the entry doesn't contain a ',' or doesn't contain more than
++ * one ':' then @what is not a replicated server entry.
++ */
++static int inline is_replicated_entry(char *what)
++{
++ return strchr(what, ',') ||
++ (strchr(what, ':') != strrchr(what, ':'));
++}
++
++/*
++ * Check to see if the 'host:path' or 'host' is on the local machine
++ * Returns < 0 if there is a host lookup problem, otherwise returns 0
++ * if it's not a local mount, and returns > 0 if it is a local mount.
++ */
++int is_local_mount(const char *hostpath)
++{
++ struct hostent *he;
++ char **haddr;
++ char *delim;
++ char *hostname;
++ int hostnamelen;
++ int local = 0;
++
++ debug(MODPREFIX "is_local_mount: %s", hostpath);
++ delim = strpbrk(hostpath,":");
++
++ if (delim)
++ hostnamelen = delim - hostpath;
++ else
++ hostnamelen = strlen(hostpath);
++
++ hostname = malloc(hostnamelen+1);
++ strncpy(hostname, hostpath, hostnamelen);
++ hostname[hostnamelen] = '\0';
++ he = gethostbyname(hostname);
++ if (!he) {
++ error(MODPREFIX "host %s: lookup failure", hostname);
++ return -1;
++ }
++
++ for (haddr = he->h_addr_list; *haddr; haddr++) {
++ local = is_local_addr(hostname, *haddr, he->h_length);
++ if (local < 0)
++ return local;
++ if (local) {
++ debug(MODPREFIX "host %s: is localhost",
++ hostname);
++ return local;
++ }
++ }
++ return 0;
++}
++
+ /*
+ * Given a mount string, return (in the same string) the
+- * best mount to use based on weight/locality/rpctime
++ * best mount to use based on locality/weight/rpctime.
++ *
++ * If longtimeout is set to 0 then we only do 100 ms pings to hosts. In
++ * the event that this fails, we call ourself recursively with the
++ * longtimeout option set to 1. In this case we ping for up to 10s and
++ * skip logic for detecting if a localhost has been passed. (if a local
++ * host had been passed, we would have returned that mount as the best
++ * mount. The skipping of local maps in this case is an optimization).
++ *
+ * - return -1 and what = '\0' on error,
+ * 1 and what = local mount path if local bind,
+ * else 0 and what = remote mount path
+ */
+-int get_best_mount(char *what, const char *original, int longtimeout, int skiplocal)
++int get_best_mount(char *what, const char *original, int longtimeout)
+ {
+ char *p = what;
+ char *winner = NULL;
+ int winner_weight = INT_MAX, local = 0;
+ double winner_time = 0;
+- char *delim;
++ char *delim, *pstrip;
+ int sec = (longtimeout) ? 10 : 0;
+ int micros = (longtimeout) ? 0 : 100000;
++ int skiplocal = longtimeout; /* clearly local is not available */
+
+ if (!p) {
+ *what = '\0';
+ return -1;
+ }
+
++ /*
++ * If only one mountpoint has been passed in, we don't need to
++ * do anything except strip whitespace from the end of the string.
++ */
++ if (!is_replicated_entry(p)) {
++ for (pstrip = p+strlen(p) - 1; pstrip >= p; pstrip--)
++ if (isspace(*pstrip))
++ *pstrip = '\0';
++
++ /* Check if the host is the localhost */
++ if (is_local_mount(p) > 0) {
++ debug(MODPREFIX "host %s: is localhost", p);
++
++ /* Strip off hostname and ':' */
++ delim = strchr(p,':');
++ while (delim && *delim != '\0') {
++ delim++;
++ *what = *delim;
++ what++;
++ }
++ return 1;
++ }
++ return 0;
++ }
++
+ while (p && *p) {
+ char *next;
+ unsigned int ping_stat = 0;
+@@ -171,37 +261,17 @@
+ /* p points to a server, "next is our next parse point */
+ if (!skiplocal) {
+ /* Check if it's localhost */
+- struct hostent *he;
+- char **haddr;
+-
+- he = gethostbyname(p);
+- if (!he) {
+- error(MODPREFIX "host %s: lookup failure", p);
+- p = next;
+- continue;
+- }
+-
+- /* Check each host in round robin list */
+- for (haddr = he->h_addr_list; *haddr; haddr++) {
+- local = is_local_addr(p, *haddr, he->h_length);
+-
+- if (local < 0)
+- continue;
+-
+- if (local) {
+- winner = p;
+- break;
+- }
+- }
+-
++ local = is_local_mount(p);
+ if (local < 0) {
+ local = 0;
+ p = next;
+ continue;
+ }
+
+- if (local)
++ if (local) {
++ winner = p;
+ break;
++ }
+ }
+
+ /* ping each (or the) entry to see if it's alive. */
+@@ -214,6 +284,7 @@
+ /* First unweighted or only host is alive so set winner */
+ if (!winner) {
+ winner = p;
++ winner_time = 1;
+ /* No more to check, return it */
+ if (!next || !*next)
+ break;
+@@ -256,7 +327,7 @@
+ */
+ if (!local && winner_weight == INT_MAX) {
+ /* We had more than one contender and none responded in time */
+- if (winner_time != 0 && winner_time > 500) {
++ if (winner_time == 0 || winner_time > 500) {
+ /* We've already tried a longer timeout */
+ if (!longtimeout) {
+ /* Reset string and try again */
+@@ -267,16 +338,14 @@
+ "retrying with longer timeout",
+ original);
+
+- return get_best_mount(what, original, 1, 1);
++ return get_best_mount(what, original, 1);
+ }
+ }
+ }
+
+- /* No winner found so bail */
+- if (!winner) {
+- *what = '\0';
+- return 0;
+- }
++ /* No winner found so return first */
++ if (!winner)
++ winner = what;
+
+ /*
+ * We now have our winner, copy it to the front of the string,
+@@ -395,7 +464,7 @@
+ /* No colon, take this as a bind (local) entry */
+ local = 1;
+ } else if (!nosymlink) {
+- local = get_best_mount(whatstr, what, 0, 0);
++ local = get_best_mount(whatstr, what, 0);
+ if (!*whatstr) {
+ warn(MODPREFIX "no host elected");
+ return 1;
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/061_multi_parse_fix.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/061_multi_parse_fix.patch
new file mode 100644
index 0000000..8b11264
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/061_multi_parse_fix.patch
@@ -0,0 +1,60 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 061_multi_parse_fix.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/modules/parse_sun.c .A/modules/parse_sun.c
+--- .B/modules/parse_sun.c 2005-04-05 12:42:42.000000000 +0000
++++ .A/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
+@@ -766,7 +766,16 @@
+ {
+ const char *p = (char *) mapent;
+ int multi = 0;
+- int first_chunk = 0;
++ int not_first_chunk = 0;
++
++ if (!p) {
++ crit("check_is_multi: unexpected NULL map entry pointer");
++ return 0;
++ }
++
++ /* If first character is "/" it's a multi-mount */
++ if (*p == '/')
++ return 1;
+
+ while (*p) {
+ p = skipspace(p);
+@@ -779,7 +788,7 @@
+ * path that begins with '/' indicates a mutil-mount
+ * entry.
+ */
+- if (first_chunk) {
++ if (not_first_chunk) {
+ if (*p == '/' || *p == '-') {
+ multi = 1;
+ break;
+@@ -796,7 +805,7 @@
+ * after which it's a multi mount.
+ */
+ p += chunklen(p, check_colon(p));
+- first_chunk++;
++ not_first_chunk++;
+ }
+
+ return multi;
+@@ -883,7 +892,12 @@
+ return 1;
+ }
+
+- path = dequote(p, l = chunklen(p, 0));
++ if (*p != '/') {
++ l = 0;
++ path = dequote("/", 1);
++ } else
++ path = dequote(p, l = chunklen(p, 0));
++
+ if (!path) {
+ error(MODPREFIX "out of memory");
+ free(myoptions);
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/062_fix_memory_leak.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/062_fix_memory_leak.patch
new file mode 100644
index 0000000..1ba0cea
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/062_fix_memory_leak.patch
@@ -0,0 +1,32 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 062_fix_memory_leak.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
+--- .B/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
++++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
+@@ -145,16 +145,20 @@
+ he = gethostbyname(hostname);
+ if (!he) {
+ error(MODPREFIX "host %s: lookup failure", hostname);
++ free(hostname);
+ return -1;
+ }
+
+ for (haddr = he->h_addr_list; *haddr; haddr++) {
+ local = is_local_addr(hostname, *haddr, he->h_length);
+- if (local < 0)
++ if (local < 0) {
++ free(hostname);
+ return local;
++ }
+ if (local) {
+ debug(MODPREFIX "host %s: is localhost",
+ hostname);
++ free(hostname);
+ return local;
+ }
+ }
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/063_misc_fixes.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/063_misc_fixes.patch
new file mode 100644
index 0000000..fcfc8a2
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/063_misc_fixes.patch
@@ -0,0 +1,82 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 063_misc_fixes.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/lib/cache.c .A/lib/cache.c
+--- .B/lib/cache.c 2005-02-06 06:00:53.000000000 +0000
++++ .A/lib/cache.c 2007-01-07 21:36:35.000000000 +0000
+@@ -337,8 +337,10 @@
+ if (!path)
+ return;
+
+- if (is_mounted(_PATH_MOUNTED, path))
++ if (is_mounted(_PATH_MOUNTED, path)) {
++ free(path);
+ continue;
++ }
+
+ if (me->age < age) {
+ mapent_hash[i] = me->next;
+diff -Naur .B/modules/lookup_file.c .A/modules/lookup_file.c
+--- .B/modules/lookup_file.c 2005-04-06 15:14:23.000000000 +0000
++++ .A/modules/lookup_file.c 2007-01-07 21:36:35.000000000 +0000
+@@ -157,6 +157,10 @@
+ break;
+
+ case st_compare:
++ if (kptr - key > KEY_MAX_LEN) {
++ state = st_badent;
++ break;
++ }
+ if (ch == '\n')
+ state = st_begin;
+ else if (isspace(ch) && !escape) {
+diff -Naur .B/modules/parse_sun.c .A/modules/parse_sun.c
+--- .B/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
++++ .A/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
+@@ -680,6 +680,10 @@
+ "mounting root %s, mountpoint %s, what %s, fstype %s, options %s\n",
+ root, mountpoint, what, fstype, options);
+
++ /* A malformed entry of the form key /xyz will trigger this case */
++ if (!what || *what == '\0')
++ return 1;
++
+ if (!strcmp(fstype, "nfs")) {
+ rv = mount_nfs->mount_mount(root, mountpoint, strlen(mountpoint),
+ what, fstype, options, mount_nfs->context);
+@@ -695,6 +699,18 @@
+ return rv;
+ }
+
++static int key_exists(struct multi_mnt *list, char *path, int pathlen)
++{
++ struct multi_mnt *mmptr = list;
++
++ while (mmptr && pathlen == strlen(mmptr->path)) {
++ if (!strncmp(mmptr->path, path, pathlen))
++ return 1;
++ mmptr = mmptr->next;
++ }
++ return 0;
++}
++
+ /*
+ * Build list of mounts in shortest -> longest order.
+ * Pass in list head and return list head.
+@@ -725,6 +741,12 @@
+ mmptr = mmptr->next;
+ }
+
++ /* if a multimount entry has duplicate keys, it is invalid */
++ if (key_exists(mmptr, path, plen)) {
++ free(new);
++ return NULL;
++ }
++
+ if (old)
+ old->next = new;
+ new->next = mmptr;
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/064_support_options_on_nis_maps.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/064_support_options_on_nis_maps.patch
new file mode 100644
index 0000000..b71d9f5
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/064_support_options_on_nis_maps.patch
@@ -0,0 +1,45 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 064_support_options_on_nis_maps.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
+--- .B/samples/rc.autofs.in 2005-04-11 11:30:54.000000000 +0000
++++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
+@@ -129,7 +129,17 @@
+ else
+ map="$1"
+ fi
+- /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
++
++ # Append the map's options at the _start_ if there are any options already
++ # (ie. myopt -> $2,myopt), otherwise just append them at the end.
++ if [ -z "$2" ]; then
++ /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
++ else
++ /usr/bin/ypcat -k "$map" 2> /dev/null |
++ sed -e '/^#/d' -e '/^$/d' \
++ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]\+-\([^ \t]\+\)/\1 \2 $2,\3/" \
++ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]*$/\1 \2 $2/"
++ fi
+ }
+
+ function getfilemounts()
+@@ -141,10 +151,11 @@
+ if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
+ echo $auto_master_in
+ else
+- for nismap in `cat /etc/auto.master | grep '^\+' |
+- sed -e '/^#/d' -e '/^$/d'`; do
+- catnismap `echo "$nismap" | sed -e 's/^\+//'`
+- done
++ cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
++ while read map options; do
++ catnismap `echo "$map" | sed -e 's/^\+//'` $options
++ done
++ )
+ fi
+ done
+ )
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/065_fix_master_map_in_ldap.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/065_fix_master_map_in_ldap.patch
new file mode 100644
index 0000000..1898571
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/065_fix_master_map_in_ldap.patch
@@ -0,0 +1,22 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 065_fix_master_map_in_ldap.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
+--- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
++++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
+@@ -175,7 +175,11 @@
+ function getldapmounts()
+ {
+ if [ -x @@autofslibdir@@/autofs-ldap-auto-master ]; then
++ [ ! -z $LDAPURI ] && export LDAPURI="$LDAPURI"
++ [ ! -z $LDAPBASE ] && export LDAPBASE="$LDAPBASE"
+ @@autofslibdir@@/autofs-ldap-auto-master 2> /dev/null
++ @@autofslibdir@@/autofs-ldap-auto-master -m automountMap \
++ -e automount -n ou -k cn -v automountInformation 2> /dev/null
+ fi
+ }
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/066_canonicalise_mount_points.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/066_canonicalise_mount_points.patch
new file mode 100644
index 0000000..0d1588c
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/066_canonicalise_mount_points.patch
@@ -0,0 +1,24 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 066_canonicalise_mount_points.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
+--- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
++++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
+@@ -244,6 +244,13 @@
+ continue
+ fi
+
++ # If possible, canonicalise the path so it will always unmount
++ # cleanly.
++ link=`readlink -f "$dir"`
++ if [ ! -z "$link" ]; then
++ dir="$link"
++ fi
++
+ # Do not include a map if it is a duplicate, maps on top of
+ # another map or another map, maps on top of it.
+ for knownmap in $knownmaps
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_allow_disabling_bind_mounts.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_allow_disabling_bind_mounts.patch
new file mode 100644
index 0000000..71ed3f1
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_allow_disabling_bind_mounts.patch
@@ -0,0 +1,77 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 067_allow_disabling_bind_mounts.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/modules/mount_bind.c .A/modules/mount_bind.c
+--- .B/modules/mount_bind.c 2005-01-10 13:28:29.000000000 +0000
++++ .A/modules/mount_bind.c 2007-01-07 21:36:35.000000000 +0000
+@@ -107,7 +107,7 @@
+ if (options == NULL || *options == '\0')
+ options = "defaults";
+
+- if (bind_works) {
++ if (bind_works && strcmp(options, "symlink") != 0) {
+ int status, existed = 1;
+
+ debug(MODPREFIX "calling mkdir_path %s", fullpath);
+diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
+--- .B/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
++++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
+@@ -391,7 +391,8 @@
+ char *whatstr;
+ char *nfsoptions = NULL;
+ int local, err;
+- int nosymlink = 0;
++ int nosymlink = 0; /* Actually misnamed, should be "nobind" now */
++ int symlink = 0; /* Prefer symlinks to bind mounts? */
+ int ro = 0; /* Set if mount bind should be read-only */
+
+ debug(MODPREFIX "root=%s name=%s what=%s, fstype=%s, options=%s",
+@@ -405,7 +406,10 @@
+ strcpy(whatstr, what);
+
+ /* Extract "nosymlink" pseudo-option which stops local filesystems
+- from being symlinked */
++ from being bind mounted, and "symlink" pseudo-option which does not
++ do the exact opposite, but rather makes any bind mount into a
++ symlink instead. (Both nosymlink and symlink at the same time
++ make no sense, of course.) */
+ if (options) {
+ const char *comma;
+ char *nfsp;
+@@ -446,6 +450,8 @@
+ #endif
+ if (strncmp("nosymlink", cp, end - cp + 1) == 0)
+ nosymlink = 1;
++ else if (strncmp("symlink", cp, end - cp + 1) == 0)
++ symlink = 1;
+ else {
+ /* Check for options that also make sense
+ with bind mounts */
+@@ -457,8 +463,8 @@
+ }
+ }
+
+- debug(MODPREFIX "nfs options=\"%s\", nosymlink=%d, ro=%d",
+- nfsoptions, nosymlink, ro);
++ debug(MODPREFIX "nfs options=\"%s\", nosymlink=%d, symlink=%d, ro=%d",
++ nfsoptions, nosymlink, symlink, ro);
+ }
+
+ local = 0;
+@@ -490,7 +496,11 @@
+ if (local) {
+ /* Local host -- do a "bind" */
+
+- const char *bind_options = ro ? "ro" : "";
++ const char *bind_options;
++ if (symlink)
++ bind_options = "symlink";
++ else
++ bind_options = ro ? "ro" : "";
+
+ debug(MODPREFIX "%s is local, doing bind", name);
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_ldap_no_first_message.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_ldap_no_first_message.patch
new file mode 100644
index 0000000..e85d37b
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/067_ldap_no_first_message.patch
@@ -0,0 +1,28 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 067_ldap_no_first_message.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/modules/lookup_ldap.c .A/modules/lookup_ldap.c
+--- .B/modules/lookup_ldap.c 2005-02-27 05:37:14.000000000 +0000
++++ .A/modules/lookup_ldap.c 2007-01-07 21:36:35.000000000 +0000
+@@ -437,7 +437,7 @@
+
+ e = ldap_first_entry(ldap, result);
+ if (!e) {
+- crit(MODPREFIX "got answer, but no first entry for %s", query);
++ debug(MODPREFIX "got answer, but no first entry for %s", query);
+ ldap_msgfree(result);
+ ldap_unbind(ldap);
+ return CHE_MISSING;
+@@ -545,7 +545,7 @@
+
+ e = ldap_first_entry(ldap, result);
+ if (!e) {
+- crit(MODPREFIX "got answer, but no first entry for %s", query);
++ debug(MODPREFIX "got answer, but no first entry for %s", query);
+ ldap_msgfree(result);
+ ldap_unbind(ldap);
+ return CHE_MISSING;
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/068_fix_invalid_rpcgen_code.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/068_fix_invalid_rpcgen_code.patch
new file mode 100644
index 0000000..abb61ea
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/068_fix_invalid_rpcgen_code.patch
@@ -0,0 +1,21 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 068_fix_invalid_rpcgen_code.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/lib/Makefile .A/lib/Makefile
+--- .B/lib/Makefile 2005-01-09 09:16:43.000000000 +0000
++++ .A/lib/Makefile 2007-01-07 21:36:36.000000000 +0000
+@@ -39,6 +39,10 @@
+
+ mount_xdr.c: mount.h
+ $(RPCGEN) -c -o mount_xdr.c mount.x
++ sed -i -e 's/IXDR_GET_LONG(\([^)]*\))/((long)IXDR_GET_U_INT32(\1))/' mount_xdr.c
++ sed -i -e 's/IXDR_PUT_LONG(\([^)]*\),\([^)]*\))/((long)IXDR_PUT_INT32(\1,(long)(\2)))/' mount_xdr.c
++ sed -i -e 's/IXDR_GET_SHORT(\([^)]*\))/((short)IXDR_GET_U_INT32(\1))/' mount_xdr.c
++ sed -i -e 's/IXDR_PUT_SHORT(\([^)]*\),\([^)]*\))/((long)IXDR_PUT_INT32(\1,(long)(\2)))/' mount_xdr.c
+
+ mount_xdr.o: mount_xdr.c
+ $(CC) $(CFLAGS) -Wno-unused-variable -o mount_xdr.o -c mount_xdr.c
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/069_support_spaces_in_smb_share_names.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/069_support_spaces_in_smb_share_names.patch
new file mode 100644
index 0000000..a07e966
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/069_support_spaces_in_smb_share_names.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 069_support_spaces_in_smb_share_names.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.smb .A/samples/auto.smb
+--- .B/samples/auto.smb 2005-04-05 13:02:09.000000000 +0000
++++ .A/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
+@@ -20,7 +20,7 @@
+
+ $SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
+ BEGIN { ORS=""; first=1 }
+- /Disk/ { if (first) { print opts; first=0 }; print " \\\n\t /" $2, "://" key "/" $2 }
++ /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 }
+ END { if (!first) print "\n"; else exit 1 }
+ '
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/070_fix_regex_typo.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/070_fix_regex_typo.patch
new file mode 100644
index 0000000..46f2159
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/070_fix_regex_typo.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 070_fix_regex_typo.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
+--- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
++++ .A/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
+@@ -148,7 +148,7 @@
+ cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
+ while read auto_master_in
+ do
+- if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
++ if [ "`echo $auto_master_in | grep '^\+'`" = "" ]; then
+ echo $auto_master_in
+ else
+ cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/071_fix_ldap_mounts.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/071_fix_ldap_mounts.patch
new file mode 100644
index 0000000..ee0c4ef
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/071_fix_ldap_mounts.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 071_fix_ldap_mounts.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
+--- .B/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
++++ .A/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
+@@ -319,7 +319,7 @@
+ maptype=`echo $map | cut -f1 -d:`
+ # Handle degenerate map specifiers
+ if [ "$maptype" = "$map" ] ; then
+- if [ "$map" = "hesiod" -o "$map" = "userhome" ] ; then
++ if [ "$map" = "hesiod" -o "$map" = "userhome" -o "$map" = "ldap" ] ; then
+ maptype=$map
+ map=
+ elif [ "$map" = "multi" ] ; then
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/072_fix_auto_net_sort.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/072_fix_auto_net_sort.patch
new file mode 100644
index 0000000..5edec83
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/072_fix_auto_net_sort.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 072_fix_auto_net_sort.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.net .A/samples/auto.net
+--- .B/samples/auto.net 2007-01-07 21:36:35.000000000 +0000
++++ .A/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
+@@ -37,7 +37,7 @@
+ # Newer distributions get this right
+ SHOWMOUNT="$SMNT --no-headers -e $key"
+
+-$SHOWMOUNT | LC_ALL=C sort +0 | \
++$SHOWMOUNT | LC_ALL=C sort -k 1 | \
+ awk -v key="$key" -v opts="$opts" -- '
+ BEGIN { ORS=""; first=1 }
+ { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/073_configurable_locking.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/073_configurable_locking.patch
new file mode 100644
index 0000000..94058ca
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/073_configurable_locking.patch
@@ -0,0 +1,173 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 073_configurable_locking.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/configure .A/configure
+--- .B/configure 2005-04-06 15:24:37.000000000 +0000
++++ .A/configure 2007-01-07 21:36:36.000000000 +0000
+@@ -842,6 +842,7 @@
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-ext-env disable search in environment for substitution variable
++--disable-mount-locking disable use of locking when spawning mount command
+
+ Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+@@ -4308,6 +4309,23 @@
+ fi
+
+ #
++# Disable use of locking when spawning mount command
++#
++# Check whether --enable-mount-locking or --disable-mount-locking was given.
++if test "${enable_mount_locking+set}" = set; then
++ enableval="$enable_mount_locking"
++
++else
++ enableval=yes
++fi;
++if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
++ cat >>confdefs.h <<\_ACEOF
++#define ENABLE_MOUNT_LOCKING 1
++_ACEOF
++
++fi
++
++#
+ # Write Makefile.conf and include/config.h
+ #
+ ac_config_headers="$ac_config_headers include/config.h"
+diff -Naur .B/configure.in .A/configure.in
+--- .B/configure.in 2005-04-06 15:24:37.000000000 +0000
++++ .A/configure.in 2007-01-07 21:36:36.000000000 +0000
+@@ -167,6 +167,16 @@
+ fi
+
+ #
++# Disable use of locking when spawning mount command
++#
++AC_ARG_ENABLE(mount-locking,
++--disable-mount-locking disable use of locking when spawning mount command,,
++ enableval=yes)
++if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
++ AC_DEFINE(ENABLE_MOUNT_LOCKING, 1)
++fi
++
++#
+ # Write Makefile.conf and include/config.h
+ #
+ AC_CONFIG_HEADER(include/config.h)
+diff -Naur .B/daemon/spawn.c .A/daemon/spawn.c
+--- .B/daemon/spawn.c 2005-02-10 12:56:53.000000000 +0000
++++ .A/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
+@@ -322,6 +322,7 @@
+ return do_spawn(logpri, 0, prog, (const char **) argv);
+ }
+
++#ifdef ENABLE_MOUNT_LOCKING
+ int spawnll(int logpri, const char *prog, ...)
+ {
+ va_list arg;
+@@ -342,3 +343,4 @@
+
+ return do_spawn(logpri, 1, prog, (const char **) argv);
+ }
++#endif
+diff -Naur .B/include/automount.h .A/include/automount.h
+--- .B/include/automount.h 2005-01-26 13:03:02.000000000 +0000
++++ .A/include/automount.h 2007-01-07 21:36:36.000000000 +0000
+@@ -121,9 +121,13 @@
+
+ int aquire_lock(void);
+ void release_lock(void);
+-int spawnll(int logpri, const char *prog, ...);
+ int spawnl(int logpri, const char *prog, ...);
+-int spawnv(int logpri, const char *prog, const char *const *argv);
++#ifdef ENABLE_MOUNT_LOCKING
++int spawnll(int logpri, const char *prog, ...);
++#else
++#define spawnll spawnl
++#endif
++int spawnv(int ogpri, const char *prog, const char *const *argv);
+ void reset_signals(void);
+ void ignore_signals(void);
+ void discard_pending(int sig);
+diff -Naur .B/include/config.h.in .A/include/config.h.in
+--- .B/include/config.h.in 2004-02-03 15:23:21.000000000 +0000
++++ .A/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
+@@ -25,3 +25,5 @@
+ #undef HAVE_SLOPPY_MOUNT
+
+ #undef ENABLE_EXT_ENV
++
++#undef ENABLE_MOUNT_LOCKING
+diff -Naur .B/patches/util-linux-2.12a-flock.patch .A/patches/util-linux-2.12a-flock.patch
+--- .B/patches/util-linux-2.12a-flock.patch 1970-01-01 00:00:00.000000000 +0000
++++ .A/patches/util-linux-2.12a-flock.patch 2007-01-07 21:36:36.000000000 +0000
+@@ -0,0 +1,30 @@
++--- util-linux-2.12a/mount/fstab.c.flock 2005-09-17 01:36:03.000000000 +0800
+++++ util-linux-2.12a/mount/fstab.c 2005-09-17 01:41:12.000000000 +0800
++@@ -488,7 +488,7 @@ lock_mtab (void) {
++ }
++ /* proceed anyway */
++ }
++- we_created_lockfile = 1;
+++ we_created_lockfile = fd;
++ } else {
++ static int tries = 0;
++
++@@ -510,9 +510,8 @@ lock_mtab (void) {
++ MOUNTED_LOCK);
++ sleep(1);
++ }
+++ close(fd);
++ }
++-
++- close(fd);
++ }
++ }
++
++@@ -520,6 +519,7 @@ lock_mtab (void) {
++ void
++ unlock_mtab (void) {
++ if (we_created_lockfile) {
+++ close(we_created_lockfile);
++ unlink (MOUNTED_LOCK);
++ we_created_lockfile = 0;
++ }
+diff -Naur .B/patches/util-linux-2.12q-flock.patch .A/patches/util-linux-2.12q-flock.patch
+--- .B/patches/util-linux-2.12q-flock.patch 1970-01-01 00:00:00.000000000 +0000
++++ .A/patches/util-linux-2.12q-flock.patch 2007-01-07 21:36:36.000000000 +0000
+@@ -0,0 +1,29 @@
++--- util-linux-2.12q/mount/fstab.c.flock 2005-09-17 01:10:37.000000000 +0800
+++++ util-linux-2.12q/mount/fstab.c 2005-09-17 01:16:51.000000000 +0800
++@@ -417,6 +417,7 @@
++ unlock_mtab (void) {
++ if (we_created_lockfile) {
++ unlink (MOUNTED_LOCK);
+++ close(we_created_lock_file);
++ we_created_lockfile = 0;
++ }
++ }
++@@ -528,6 +529,7 @@
++ }
++ /* proceed anyway */
++ }
+++ we_created_lock_file = fd;
++ } else {
++ static int tries = 0;
++
++@@ -549,9 +551,8 @@
++ MOUNTED_LOCK);
++ sleep(1);
++ }
+++ close(fd);
++ }
++-
++- close(fd);
++ }
++ }
++
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/074_auto_smb_cifs.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/074_auto_smb_cifs.patch
new file mode 100644
index 0000000..28590ee
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/074_auto_smb_cifs.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 074_auto_smb_cifs.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.smb .A/samples/auto.smb
+--- .B/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
++++ .A/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
+@@ -5,7 +5,7 @@
+ # This file must be executable to work! chmod 755!
+
+ key="$1"
+-opts="-fstype=smbfs"
++opts="-fstype=cifs"
+
+ for P in /bin /sbin /usr/bin /usr/sbin
+ do
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/075_auto_net_escape_hash.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/075_auto_net_escape_hash.patch
new file mode 100644
index 0000000..09c0ccb
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/075_auto_net_escape_hash.patch
@@ -0,0 +1,16 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 075_auto_net_escape_hash.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.net .A/samples/auto.net
+--- .B/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
++++ .A/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
+@@ -42,4 +42,4 @@
+ BEGIN { ORS=""; first=1 }
+ { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
+ END { if (!first) print "\n"; else exit 1 }
+- '
++ ' | sed 's/#/\\#/g'
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/076_ldap_deprecated.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/076_ldap_deprecated.patch
new file mode 100644
index 0000000..93cfc05
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/076_ldap_deprecated.patch
@@ -0,0 +1,265 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 076_ldap_deprecated.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/aclocal.m4 .A/aclocal.m4
+--- .B/aclocal.m4 2003-09-29 08:22:35.000000000 +0000
++++ .A/aclocal.m4 2007-01-07 21:36:36.000000000 +0000
+@@ -9,8 +9,8 @@
+ AC_DEFUN(AF_PATH_INCLUDE,
+ [AC_PATH_PROGS($1,$2,$3,$4)
+ if test -n "$$1"; then
+- AC_DEFINE(HAVE_$1)
+- AC_DEFINE_UNQUOTED(PATH_$1, "$$1")
++ AC_DEFINE(HAVE_$1,1,[define if you have $1])
++ AC_DEFINE_UNQUOTED(PATH_$1, "$$1", [define if you have $1])
+ HAVE_$1=1
+ else
+ HAVE_$1=0
+@@ -28,7 +28,7 @@
+ [if test -n "$MOUNT" ; then
+ AC_MSG_CHECKING([if mount accepts the -s option])
+ if "$MOUNT" -s > /dev/null 2>&1 ; then
+- AC_DEFINE(HAVE_SLOPPY_MOUNT)
++ AC_DEFINE(HAVE_SLOPPY_MOUNT, 1, [define if the mount command supports the -s option])
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+diff -Naur .B/configure .A/configure
+--- .B/configure 2007-01-07 21:36:36.000000000 +0000
++++ .A/configure 2007-01-07 21:36:36.000000000 +0000
+@@ -1359,11 +1359,13 @@
+ test -n "$MOUNT" || MOUNT="/bin/mount"
+
+ if test -n "$MOUNT"; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MOUNT 1
+ _ACEOF
+
+- cat >>confdefs.h <<_ACEOF
++
++cat >>confdefs.h <<_ACEOF
+ #define PATH_MOUNT "$MOUNT"
+ _ACEOF
+
+@@ -1418,11 +1420,13 @@
+ test -n "$UMOUNT" || UMOUNT="/bin/umount"
+
+ if test -n "$UMOUNT"; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define HAVE_UMOUNT 1
+ _ACEOF
+
+- cat >>confdefs.h <<_ACEOF
++
++cat >>confdefs.h <<_ACEOF
+ #define PATH_UMOUNT "$UMOUNT"
+ _ACEOF
+
+@@ -1476,11 +1480,13 @@
+ done
+
+ if test -n "$E2FSCK"; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define HAVE_E2FSCK 1
+ _ACEOF
+
+- cat >>confdefs.h <<_ACEOF
++
++cat >>confdefs.h <<_ACEOF
+ #define PATH_E2FSCK "$E2FSCK"
+ _ACEOF
+
+@@ -1534,11 +1540,13 @@
+ done
+
+ if test -n "$E3FSCK"; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define HAVE_E3FSCK 1
+ _ACEOF
+
+- cat >>confdefs.h <<_ACEOF
++
++cat >>confdefs.h <<_ACEOF
+ #define PATH_E3FSCK "$E3FSCK"
+ _ACEOF
+
+@@ -1556,7 +1564,8 @@
+ echo "$as_me:$LINENO: checking if mount accepts the -s option" >&5
+ echo $ECHO_N "checking if mount accepts the -s option... $ECHO_C" >&6
+ if "$MOUNT" -s > /dev/null 2>&1 ; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define HAVE_SLOPPY_MOUNT 1
+ _ACEOF
+
+@@ -3403,6 +3412,7 @@
+ fi;
+ if test -z "$HAVE_LDAP"; then
+ HAVE_LDAP=0
++ LDAP_FLAGS="$LDAP_FLAGS -DLDAP_DEPRECATED=1"
+ echo "$as_me:$LINENO: checking for ldap_init in -lldap" >&5
+ echo $ECHO_N "checking for ldap_init in -lldap... $ECHO_C" >&6
+ if test "${ac_cv_lib_ldap_ldap_init+set}" = set; then
+@@ -4302,7 +4312,8 @@
+ enableval=yes
+ fi;
+ if test x$enable_ext_env = xyes; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define ENABLE_EXT_ENV 1
+ _ACEOF
+
+@@ -4319,7 +4330,8 @@
+ enableval=yes
+ fi;
+ if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
+- cat >>confdefs.h <<\_ACEOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define ENABLE_MOUNT_LOCKING 1
+ _ACEOF
+
+diff -Naur .B/configure.in .A/configure.in
+--- .B/configure.in 2007-01-07 21:36:36.000000000 +0000
++++ .A/configure.in 2007-01-07 21:36:36.000000000 +0000
+@@ -118,6 +118,7 @@
+ )
+ if test -z "$HAVE_LDAP"; then
+ HAVE_LDAP=0
++ LDAP_FLAGS="$LDAP_FLAGS -DLDAP_DEPRECATED=1"
+ AC_CHECK_LIB(ldap, ldap_init, HAVE_LDAP=1 LIBLDAP="$LIBLDAP -lldap -llber -lresolv", ,
+ -llber -lresolv $LIBS)
+ fi
+@@ -163,7 +164,7 @@
+ --disable-ext-env disable search in environment for substitution variable,,
+ enableval=yes)
+ if test x$enable_ext_env = xyes; then
+- AC_DEFINE(ENABLE_EXT_ENV, 1)
++ AC_DEFINE(ENABLE_EXT_ENV, 1, [leave this alone])
+ fi
+
+ #
+@@ -173,7 +174,7 @@
+ --disable-mount-locking disable use of locking when spawning mount command,,
+ enableval=yes)
+ if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
+- AC_DEFINE(ENABLE_MOUNT_LOCKING, 1)
++ AC_DEFINE(ENABLE_MOUNT_LOCKING, 1, [disable mount table locking -- use this if your maps contain recursive mounts -- EXPERIMENTAL])
+ fi
+
+ #
+diff -Naur .B/include/config.h.in .A/include/config.h.in
+--- .B/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
++++ .A/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
+@@ -1,29 +1,80 @@
+-#ident "$Id: config.h.in,v 1.4 2004/02/03 15:23:21 raven Exp $"
+-/* -*- c -*-
+- *
+- * config.h.in: Pattern file for autofs to be filled in by configure
+- *
+- */
++/* include/config.h.in. Generated from configure.in by autoheader. */
+
+-/* Program paths */
++/* leave this alone */
++#undef ENABLE_EXT_ENV
++
++/* disable mount table locking -- use this if your maps contain recursive
++ mounts -- EXPERIMENTAL */
++#undef ENABLE_MOUNT_LOCKING
++
++/* define if you have E2FSCK */
++#undef HAVE_E2FSCK
++
++/* define if you have E3FSCK */
++#undef HAVE_E3FSCK
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#undef HAVE_INTTYPES_H
++
++/* Define to 1 if you have the <memory.h> header file. */
++#undef HAVE_MEMORY_H
++
++/* define if you have MOUNT */
+ #undef HAVE_MOUNT
+-#undef PATH_MOUNT
+
++/* define if the mount command supports the -s option */
++#undef HAVE_SLOPPY_MOUNT
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#undef HAVE_STDINT_H
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#undef HAVE_STDLIB_H
++
++/* Define to 1 if you have the <strings.h> header file. */
++#undef HAVE_STRINGS_H
++
++/* Define to 1 if you have the <string.h> header file. */
++#undef HAVE_STRING_H
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#undef HAVE_SYS_STAT_H
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#undef HAVE_SYS_TYPES_H
++
++/* define if you have UMOUNT */
+ #undef HAVE_UMOUNT
+-#undef PATH_UMOUNT
+
+-#undef HAVE_SMBMOUNT
+-#undef PATH_SMBMOUNT
++/* Define to 1 if you have the <unistd.h> header file. */
++#undef HAVE_UNISTD_H
+
+-#undef HAVE_E2FSCK
++/* Define to the address where bug reports for this package should be sent. */
++#undef PACKAGE_BUGREPORT
++
++/* Define to the full name of this package. */
++#undef PACKAGE_NAME
++
++/* Define to the full name and version of this package. */
++#undef PACKAGE_STRING
++
++/* Define to the one symbol short name of this package. */
++#undef PACKAGE_TARNAME
++
++/* Define to the version of this package. */
++#undef PACKAGE_VERSION
++
++/* define if you have E2FSCK */
+ #undef PATH_E2FSCK
+
+-#undef HAVE_E3FSCK
++/* define if you have E3FSCK */
+ #undef PATH_E3FSCK
+
+-/* Define this option if mount(8) supports the -s (sloppy) option */
+-#undef HAVE_SLOPPY_MOUNT
++/* define if you have MOUNT */
++#undef PATH_MOUNT
+
+-#undef ENABLE_EXT_ENV
++/* define if you have UMOUNT */
++#undef PATH_UMOUNT
+
+-#undef ENABLE_MOUNT_LOCKING
++/* Define to 1 if you have the ANSI C header files. */
++#undef STDC_HEADERS
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/078_locking_fix_1.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/078_locking_fix_1.patch
new file mode 100644
index 0000000..eb22a2b
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/078_locking_fix_1.patch
@@ -0,0 +1,82 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 078_locking_fix_1.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/daemon/spawn.c .A/daemon/spawn.c
+--- .B/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
++++ .A/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
+@@ -214,14 +214,15 @@
+ sigfillset(&allsignals);
+ sigprocmask(SIG_BLOCK, &allsignals, &oldsig);
+
+- if (pipe(pipefd))
++ if (pipe(pipefd)) {
++ if (use_lock)
++ release_lock();
++ sigprocmask(SIG_SETMASK, &oldsig, NULL);
+ return -1;
++ }
+
+ f = fork();
+- if (f < 0) {
+- sigprocmask(SIG_SETMASK, &oldsig, NULL);
+- return -1;
+- } else if (f == 0) {
++ if (f == 0) {
+ reset_signals();
+ close(pipefd[0]);
+ dup2(pipefd[1], STDOUT_FILENO);
+@@ -243,6 +244,8 @@
+
+ if (f < 0) {
+ close(pipefd[0]);
++ if (use_lock)
++ release_lock();
+ sigprocmask(SIG_SETMASK, &oldsig, NULL);
+ return -1;
+ }
+@@ -287,11 +290,11 @@
+ if (waitpid(f, &status, 0) != f)
+ status = -1; /* waitpid() failed */
+
+- sigprocmask(SIG_SETMASK, &oldsig, NULL);
+-
+ if (use_lock)
+ release_lock();
+
++ sigprocmask(SIG_SETMASK, &oldsig, NULL);
++
+ return status;
+ }
+ }
+diff -Naur .B/lib/lock.c .A/lib/lock.c
+--- .B/lib/lock.c 2005-01-17 15:09:28.000000000 +0000
++++ .A/lib/lock.c 2007-01-07 21:36:36.000000000 +0000
+@@ -208,9 +208,6 @@
+ */
+ static int wait_for_lockf(const char *lockf)
+ {
+- struct timespec t = { 0, WAIT_INTERVAL };
+- struct timespec r;
+- int ts_size = sizeof(struct timespec);
+ int tries = WAIT_TRIES;
+ int status = 0;
+ struct stat st;
+@@ -218,10 +215,13 @@
+ while (tries-- && !status) {
+ status = stat(lockf, &st);
+ if (!status) {
++ struct timespec t = { 0, WAIT_INTERVAL };
++ struct timespec r;
++
+ while (nanosleep(&t, &r) == -1 && errno == EINTR) {
+ if (got_term)
+ return 0;
+- memcpy(&t, &r, ts_size);
++ memcpy(&t, &r, sizeof(struct timespec));
+ }
+ }
+ }
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/079_no_unlink_upstream.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/079_no_unlink_upstream.patch
new file mode 100644
index 0000000..eb062e4
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/079_no_unlink_upstream.patch
@@ -0,0 +1,55 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 079_no_unlink_upstream.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/daemon/automount.c .A/daemon/automount.c
+--- .B/daemon/automount.c 2007-01-07 21:36:36.000000000 +0000
++++ .A/daemon/automount.c 2007-01-07 21:36:37.000000000 +0000
+@@ -232,16 +232,38 @@
+ static int rm_unwanted_fn(const char *file, const struct stat *st, int when, void *arg)
+ {
+ int rmsymlink = *(int *) arg;
++ struct stat newst;
+
+ if (when == 0) {
+ if (st->st_dev != ap.dev)
+ return 0;
+- } else {
+- info("rm_unwanted: %s\n", file);
+- if (S_ISDIR(st->st_mode))
+- rmdir(file);
+- else if (!S_ISLNK(st->st_mode) || rmsymlink)
+- unlink(file);
++ return 1;
++ }
++
++ if (lstat(file, &newst)) {
++ crit ("rm_unwanted: unable to stat file, possible race "
++ "condition.");
++ return 0;
++ }
++
++ if (newst.st_dev != ap.dev) {
++ crit ("rm_unwanted: file %s has the wrong device, possible "
++ "race condition.",file);
++ return 0;
++ }
++
++ if (S_ISDIR(newst.st_mode)) {
++ if (rmdir(file)) {
++ info ("rm_unwanted: unable to remove directory"
++ " %s", file);
++ return 0;
++ }
++ } else if (S_ISREG(newst.st_mode)) {
++ crit ("rm_unwanted: attempting to remove files from a mounted "
++ "directory.");
++ return 0;
++ } else if (S_ISLNK(newst.st_mode) && rmsymlink) {
++ unlink(file);
+ }
+
+ return 1;
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/080_auto_smb_probe_credentials.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/080_auto_smb_probe_credentials.patch
new file mode 100644
index 0000000..0b6ca44
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/080_auto_smb_probe_credentials.patch
@@ -0,0 +1,37 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 080_auto_smb_probe_credentials.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.smb .A/samples/auto.smb
+--- .B/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
++++ .A/samples/auto.smb 2007-01-07 21:36:37.000000000 +0000
+@@ -5,7 +5,9 @@
+ # This file must be executable to work! chmod 755!
+
+ key="$1"
+-opts="-fstype=cifs"
++mountopts="-fstype=cifs"
++smbopts=""
++credfile="/etc/auto.smb.$key"
+
+ for P in /bin /sbin /usr/bin /usr/sbin
+ do
+@@ -18,7 +20,14 @@
+
+ [ -x $SMBCLIENT ] || exit 1
+
+-$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
++if [ -e $credfile ]; then
++ mountopts="$mountopts,credentials=$credfile"
++ smbopts="-A $credfile"
++else
++ smbopts="-N"
++fi
++
++$SMBCLIENT $smbopts -gL $key 2>/dev/null| awk -v key="$key" -v opts="$mountopts" -F'|' -- '
+ BEGIN { ORS=""; first=1 }
+ /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 }
+ END { if (!first) print "\n"; else exit 1 }
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/081_auto_net_showmount_quotes.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/081_auto_net_showmount_quotes.patch
new file mode 100644
index 0000000..25d5ec8
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/081_auto_net_showmount_quotes.patch
@@ -0,0 +1,19 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 081_auto_net_showmount_quotes.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/auto.net .A/samples/auto.net
+--- .B/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
++++ .A/samples/auto.net 2007-01-07 21:36:37.000000000 +0000
+@@ -32,7 +32,7 @@
+ done
+ done
+
+-[ -x $SMNT ] || exit 1
++[ -x "$SMNT" ] || exit 1
+
+ # Newer distributions get this right
+ SHOWMOUNT="$SMNT --no-headers -e $key"
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/082_samples_makefile_typo.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/082_samples_makefile_typo.patch
new file mode 100644
index 0000000..5667232
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/082_samples_makefile_typo.patch
@@ -0,0 +1,18 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 082_samples_makefile_typo.dpatch
+##
+## DP: No description.
+
+@DPATCH@
+
+diff -Naur .B/samples/Makefile .A/samples/Makefile
+--- .B/samples/Makefile 2005-01-04 14:36:54.000000000 +0000
++++ .A/samples/Makefile 2007-01-07 21:36:37.000000000 +0000
+@@ -42,6 +42,6 @@
+ install -c autofs-ldap-auto-master -m 755 $(INSTALLROOT)$(autofslibdir)
+ endif
+
+-clean):
++clean:
+ rm -f *.o *.s autofs-ldap-auto-master rc.autofs
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/083_clarify_program_map_outputsyntax.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/083_clarify_program_map_outputsyntax.patch
new file mode 100644
index 0000000..e772b90
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/083_clarify_program_map_outputsyntax.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 083_clarify_program_map_outputsyntax.dpatch <hesso@pool.math.tu-berlin.de>
+##
+## DP: Explicitly mention that the queried key has to be omitted in the output of
+## DP: program maps.
+
+@DPATCH@
+--- autofs-4.1.4+debian.orig/man/autofs.5 2007-06-30 00:29:12.000000000 +0200
++++ autofs-4.1.4+debian/man/autofs.5 2007-06-30 00:30:27.000000000 +0200
+@@ -153,7 +153,8 @@
+ .B program
+ map will be called as a script with the key as an argument. It may
+ return no lines of output if there's an error, or one or more lines
+-containing a map (with \\ quoting line breaks).
++containing a map (starting with the second column, i.e. omitting the
++key, and quoting line breaks with \\).
+ .P
+ To use a
+ .B program
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/084_init_lsb_header.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/084_init_lsb_header.patch
new file mode 100644
index 0000000..8a07693
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/084_init_lsb_header.patch
@@ -0,0 +1,26 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 84_init_lsb_header.dpatch by <hesso@pool.math.tu-berlin.de>
+##
+## DP: Add an LSB-conformant header to the initscript.
+
+@DPATCH@
+
+--- autofs-4.1.4+debian/samples/rc.autofs.in.orig 2007-07-05 16:43:32.000000000 +0200
++++ autofs-4.1.4+debian/samples/rc.autofs.in 2007-07-05 16:43:42.000000000 +0200
+@@ -9,6 +9,16 @@
+ # On most distributions, this file should be called:
+ # /etc/rc.d/init.d/autofs or /etc/init.d/autofs
+ #
++### BEGIN INIT INFO
++# Provides: autofs
++# Required-Start: $local_fs
++# Required-Stop: $local_fs
++# Default-Start: 2 3 4 5
++# Default-Stop: 0 1 6
++# Short-Description: automount daemon
++# Description: daemon to mount (possibly remote) filesystems
++# automatically upon entering the mountpoint
++### END INIT INFO
+
+ # For Redhat-ish systems
+ #
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/085_auto_net_lp111612.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/085_auto_net_lp111612.patch
new file mode 100644
index 0000000..23e455b
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/085_auto_net_lp111612.patch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 085-auto.net-lp111612 by Morten Kjeldgaard <mok@bioxray.au.dk>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix problem with directories exported multiple times to different
+## DP: hosts (LP: #111612).
+
+@DPATCH@
+
+--- samples/auto.net 2008-04-09 16:32:59.000000000 +0200
++++ foo/samples/auto.net 2008-04-09 16:34:29.000000000 +0200
+@@ -37,7 +37,7 @@
+ # Newer distributions get this right
+ SHOWMOUNT="$SMNT --no-headers -e $key"
+
+-$SHOWMOUNT | LC_ALL=C sort -k 1 | \
++$SHOWMOUNT | LC_ALL=C cut -d' ' -f1 | LC_ALL=C sort -k 1 | \
+ awk -v key="$key" -v opts="$opts" -- '
+ BEGIN { ORS=""; first=1 }
+ { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/Makefile.rules-cross.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/Makefile.rules-cross.patch
new file mode 100644
index 0000000..1f9ea41
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/Makefile.rules-cross.patch
@@ -0,0 +1,19 @@
+Index: autofs-4.1.4/Makefile.rules
+===================================================================
+--- autofs-4.1.4.orig/Makefile.rules
++++ autofs-4.1.4/Makefile.rules
+@@ -27,10 +27,10 @@ STRIP = :
+ #STRIP = strip --strip-debug
+ #endif
+
+-CC = gcc
+-CXX = g++
+-CXXFLAGS = $(CFLAGS)
+-LD = ld
++CC ?= gcc
++CXX ?= g++
++CXXFLAGS ?= $(CFLAGS)
++LD ?= ld
+ SOLDFLAGS = -shared -Xlinker -rpath -Xlinker $(autofslibdir)
+
+ # Standard rules
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.hotplug b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.hotplug
new file mode 100644
index 0000000..67cf4c5
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.hotplug
@@ -0,0 +1 @@
+* -fstype=auto,rw,sync :/dev/&
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.master b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.master
new file mode 100644
index 0000000..41c2389
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.master
@@ -0,0 +1,11 @@
+#
+# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
+#
+# Sample auto.master file
+# This is an automounter map and it has the following format
+# key [ -mount-options-separated-by-comma ] location
+# For details of the format look at autofs(5).
+#/smb /etc/auto.smb
+#/net /etc/auto.net
+/autofs /etc/auto.hotplug
+/media/net /etc/auto.network
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.network b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.network
new file mode 100644
index 0000000..c1835d9
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/auto.network
@@ -0,0 +1,2 @@
+# automatically generated by enigma 2
+# do NOT change manually!
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.default b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.default
new file mode 100644
index 0000000..e8619eb
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.default
@@ -0,0 +1,2 @@
+daemonoptions='--ghost'
+TIMEOUT=5
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.init b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.init
new file mode 100755
index 0000000..c32d08e
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/autofs.init
@@ -0,0 +1,803 @@
+#!/bin/sh
+#
+# $Id: rc.autofs.in,v 1.58 2005/04/11 11:30:54 raven Exp $
+#
+# rc file for automount using a Sun-style "master map".
+# We first look for a local /etc/auto.master, then a YP
+# map with that name
+#
+# On most distributions, this file should be called:
+# /etc/rc.d/init.d/autofs or /etc/init.d/autofs
+#
+### BEGIN INIT INFO
+# Provides: autofs
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: automount daemon
+# Description: daemon to mount (possibly remote) filesystems
+# automatically upon entering the mountpoint
+### END INIT INFO
+
+# For Redhat-ish systems
+#
+# chkconfig: 345 28 72
+# processname: /usr/sbin/automount
+# config: /etc/auto.master
+# description: Automounts filesystems on demand
+
+# This is used in the Debian distribution to determine the proper
+# location for the S- and K-links to this init file.
+# The following value is extracted by debstd to figure out how to
+# generate the postinst script. Edit the field to change the way the
+# script is registered through update-rc.d (see the manpage for
+# update-rc.d!)
+#
+FLAGS="defaults 21"
+
+#
+# Location of the automount daemon and the init directory
+#
+DAEMON=/usr/sbin/automount
+prog=`basename $DAEMON`
+initdir=/etc/init.d
+
+test -e $DAEMON || exit 0
+
+#
+# Determine which kind of configuration we're using
+#
+system=debian
+if [ -f /etc/redhat-release ]; then
+ system=redhat
+fi
+
+if [ $system = redhat ]; then
+ . $initdir/functions
+fi
+
+if [ $system = debian ]; then
+ thisscript="$0"
+ if [ ! -f "$thisscript" ]; then
+ echo "$0: Cannot find myself" 1>&2
+ exit 1
+ fi
+fi
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+export PATH
+
+#
+# We can add local options here
+# e.g. localoptions='rsize=8192,wsize=8192'
+#
+localoptions=''
+
+#
+# Daemon options
+# e.g. --timeout=60
+#
+daemonoptions=''
+
+#
+# load custom settings
+#
+if [ "$system" = "redhat" ]; then
+ LOCALOPTIONS=""
+ DAEMONOPTIONS=""
+ UNDERSCORETODOT=1
+ DISABLE_DIRECT=1
+ DAEMON_EXIT_WAIT=20
+
+ [ -f /etc/sysconfig/autofs ] && . /etc/sysconfig/autofs
+
+ # Over-ride localoptions if set
+ if [ -n "$LOCALOPTIONS" ]; then
+ localoptions=$LOCALOPTIONS
+ fi
+
+ # Over-ride daemonoptions if set
+ if [ -n "$DAEMONOPTIONS" ]; then
+ daemonoptions=$DAEMONOPTIONS
+ fi
+elif [ "$system" = "debian" ]; then
+ TIMEOUT=300
+ DISABLE_DIRECT=1
+ DAEMON_EXIT_WAIT=20
+
+ [ -f /etc/default/autofs ] && . /etc/default/autofs
+
+ daemonoptions="$daemonoptions --timeout=$TIMEOUT"
+fi
+
+#
+# Check for all maps that are to be loaded
+#
+getschemes()
+{
+ SOURCES=`grep ^automount: /etc/nsswitch.conf | \
+ sed -e 's/^.*://' -e 's/\[.*\]/ /g'`
+
+ if [ `echo $SOURCES | awk '{print NF}'` -gt 0 ]
+ then
+ echo ${SOURCES}
+ else
+ echo files
+ fi
+}
+
+catnismap()
+{
+ if [ -z "$1" ] ; then
+ map="auto_master"
+ else
+ map="$1"
+ fi
+
+ # Append the map's options at the _start_ if there are any options already
+ # (ie. myopt -> $2,myopt), otherwise just append them at the end.
+ if [ -z "$2" ]; then
+ /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
+ else
+ /usr/bin/ypcat -k "$map" 2> /dev/null |
+ sed -e '/^#/d' -e '/^$/d' \
+ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]\+-\([^ \t]\+\)/\1 \2 $2,\3/" \
+ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]*$/\1 \2 $2/"
+ fi
+}
+
+getfilemounts()
+{
+ if [ -f /etc/auto.master ] ; then
+ cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
+ while read auto_master_in
+ do
+ if [ "`echo $auto_master_in | grep '^\+'`" = "" ]; then
+ echo $auto_master_in
+ else
+ cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
+ while read map options; do
+ catnismap `echo "$map" | sed -e 's/^\+//'` $options
+ done
+ )
+ fi
+ done
+ )
+ fi
+}
+
+getnismounts()
+{
+ YPMAP=`catnismap auto.master`
+ if [ -z "$YPMAP" ]; then
+ catnismap
+ else
+ catnismap auto.master
+ fi
+}
+
+getldapmounts()
+{
+ if [ -x /usr/lib/autofs/autofs-ldap-auto-master ]; then
+ [ ! -z $LDAPURI ] && export LDAPURI="$LDAPURI"
+ [ ! -z $LDAPBASE ] && export LDAPBASE="$LDAPBASE"
+ /usr/lib/autofs/autofs-ldap-auto-master 2> /dev/null
+ /usr/lib/autofs/autofs-ldap-auto-master -m automountMap \
+ -e automount -n ou -k cn -v automountInformation 2> /dev/null
+ fi
+}
+
+getrawmounts()
+{
+ for scheme in `getschemes` ; do
+ case "$scheme" in
+ files)
+ if [ -z "$filescheme" ] ; then
+ getfilemounts
+ filescheme=1
+ export filescheme
+ fi
+ ;;
+ nis)
+ if [ -z "$nisscheme" ] ; then
+ getnismounts
+ nisscheme=1
+ export nisscheme
+ fi
+ ;;
+ ldap*)
+ if [ -z "$ldapscheme" ] ; then
+ getldapmounts
+ ldapscheme=1
+ export ldapscheme
+ fi
+ ;;
+ esac
+ done
+}
+
+
+#
+# This function will build a list of automount commands to execute in
+# order to activate all the mount points. It is used to figure out
+# the difference of automount points in case of a reload
+#
+getmounts()
+{
+ local LC_ALL=C
+ export LC_ALL
+ knownmaps=" "
+ getrawmounts | (
+ while read dir map options
+ do
+ # These checks screen out duplicates and skip over directories
+ # where the map is '-'.
+ # We can't do empty or direct host maps, so don't bother trying.
+
+ # Strip trailing slashes from the dir line if it exists to aid
+ # in checking for duplicate maps
+ dir=`echo "$dir" | sed -e "s/\/*$//"`
+
+ if [ ! -z "$map" -a "$map" = "-hosts" ] ; then
+ continue
+ fi
+
+ if [ $DISABLE_DIRECT -eq 1 \
+ -a x`echo $dir | grep -E "^/-"` != 'x' ]
+ then
+ continue
+ fi
+
+ # If possible, canonicalise the path so it will always unmount
+ # cleanly.
+ link=`readlink -f "$dir"`
+ if [ ! -z "$link" ]; then
+ dir="$link"
+ fi
+
+ # Do not include a map if it is a duplicate, maps on top of
+ # another map or another map, maps on top of it.
+ for knownmap in $knownmaps
+ do
+ if [ "`echo $dir/ | grep ^$knownmap`" != "" \
+ -o "`echo $knownmap | grep ^$dir/`" != "" \]
+ then
+ continue 2
+ fi
+ done
+
+ if [ ! -z "$dir" -a ! -z "$map" \
+ -a x`echo "$map" | cut -c1` != 'x-' ]
+ then
+ # If the options include a -t or --timeout, a -g or --ghost,
+ # a -v or --verbose or a -d or --debug paramter, then pull
+ # those particular options out.
+ : echo DAEMONOPTIONS OPTIONS $daemonoptions $options
+ startupoptions=
+ if echo "$options" | grep -qE -- '\B-(t\b|-timeout\b=)' ;
+ then
+ startupoptions="--timeout=$(echo $options |\
+ sed 's/.*-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
+ elif echo "$daemonoptions" | grep -q -- '-t' ;
+ then
+ # It's okay to be sloppy with DAEMONOPTIONS as there is no
+ # possibility of conflicting with mount or map options.
+ startupoptions="--timeout=$(echo $daemonoptions | \
+ sed 's/.*--*t\(imeout\)*[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
+ fi
+
+ # Check for the ghost option
+ if echo "$daemonoptions $options" | grep -qE -- '\B-(g\b|-ghost\b)' ;
+ then
+ startupoptions="$startupoptions --ghost"
+ fi
+ # Dont even deal with conflicts between --ghost and [no]browse
+ # Its just insane to configure things like that.
+ if echo "$options" | grep -qE -- '\B-browse\b' ;
+ then
+ startupoptions="$startupoptions --ghost"
+ fi
+ # Check for verbose
+ if echo "$daemonoptions $options" | \
+ grep -qE -- '\B-(v\b|-verbose\b)' ;
+ then
+ startupoptions="$startupoptions --verbose"
+ fi
+
+ # Check for debug
+ if echo "$daemonoptions $options" | \
+ grep -qE -- '\B-(d\b|-debug\b)' ;
+ then
+ startupoptions="$startupoptions --debug"
+ fi
+
+ # Other option flags are intended for maps.
+ mapoptions="$(echo "$daemonoptions $options" |\
+ sed 's/-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\)//g' |
+ sed 's/-\(g\b\|-ghost\b\)//g' |
+ sed 's/-\(v\b\|-verbose\b\)//g' |
+ sed 's/-\(d\b\|-debug\b\)//g' |
+ sed 's/-\b\(no\)\?browse\b//g')"
+
+ # Break up the maptype and map, if the map type is specified
+ maptype=`echo $map | cut -f1 -d:`
+ # Handle degenerate map specifiers
+ if [ "$maptype" = "$map" ] ; then
+ if [ "$map" = "hesiod" -o "$map" = "userhome" -o "$map" = "ldap" ] ; then
+ maptype=$map
+ map=
+ elif [ "$map" = "multi" ] ; then
+ maptype=$map
+ map=
+# elif echo "$map" | grep -q '^!'; then
+# map=`echo "$map"| sed -e 's/^!//g'`
+ elif `echo $map | grep -q "^/"` && [ -x "$map" ]; then
+ maptype=program
+ elif [ -x "/etc/$map" ]; then
+ maptype=program
+ map=`echo /etc/$map | sed 's^//^/^g'`
+ elif `echo $map | grep -q "^/"` && [ -f "$map" ]; then
+ maptype=file
+ elif [ -f "/etc/$map" ]; then
+ maptype=file
+ map=`echo /etc/$map | sed 's^//^/^g'`
+ else
+ maptype=yp
+ if [ "$UNDERSCORETODOT" = "1" ] ; then
+ map=`basename $map | sed -e s/^auto_home/auto.home/ -e s/^auto_mnt/auto.mnt/`
+ else
+ map=`basename $map | sed 's^//^/^g'`
+ fi
+ fi
+ fi
+ map=`echo $map | cut -f2- -d:`
+
+ : echo STARTUPOPTIONS $startupoptions
+ : echo DIR $dir
+ : echo MAPTYPE $maptype
+ : echo MAP $map
+ : echo MAPOPTIONS $mapoptions
+ : echo LOCALOPTIONS $localoptions
+
+ NEWOPTIONS=""
+ for m in $mapoptions
+ do
+ if [ x"$m" = x"--" ]; then
+ NEWOPTIONS="$NEWOPTIONS $localoptions --"
+ else
+ NEWOPTIONS="$NEWOPTIONS $m"
+ fi
+ done
+ mapoptions=$NEWOPTIONS
+
+ echo "$DAEMON $startupoptions $dir $maptype $map $mapoptions $localoptions" | sed -e 's/ / /g' -e 's/ */ /g'
+
+ : echo ------------------------
+ knownmaps=" $dir/ $knownmaps"
+ fi
+ done
+ )
+}
+
+#
+# Status lister.
+#
+status()
+{
+ echo -e $"Configured Mount Points:\n------------------------"
+ getmounts
+ echo ""
+ echo -e $"Active Mount Points:\n--------------------"
+ ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
+ while read pid tt stat time command; do echo $command; done
+ )
+}
+
+get_command_from_pid()
+{
+ ps ax | grep "[0-9]:[0-9][0-9] $DAEMON " | (
+ while read pid tt stat time command; do
+ if [ "$pid" = "$1" ] ; then
+ echo `echo "$command" | \
+ sed 's/--pid-file.*\.pid/ /'`
+ return 0
+ fi
+ done
+ )
+ return 0
+}
+
+# return true if at least one pid is alive
+alive()
+{
+ if [ -z "$*" ]; then
+ return 1
+ fi
+ for i in $*; do
+ if kill -0 $i 2> /dev/null; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+#
+# Find pids of process group leaders
+#
+get_pgrp_pids()
+{
+ ps -eo pid,pgrp,cmd|grep $DAEMON|\
+ awk '{print $1,$2}'|\
+ while read pid pgrp
+ do
+ if [ $pid -eq $pgrp ]
+ then
+ echo $pid
+ fi
+ done
+}
+
+#
+# Signal each automount process group leader
+#
+signal_automounts()
+{
+ RETVAL=0
+ pgrp_pids=`get_pgrp_pids`
+ for pid in $pgrp_pids
+ do
+ kill -USR2 $pid 2 > /dev/null
+ count=0
+ while ps ax|grep -v grep|grep $pid >/dev/null
+ do
+ sleep 1
+ count=$(expr $count + 1)
+ if [ $count -gt $DAEMON_EXIT_WAIT ]; then
+ break;
+ fi
+ done
+ done
+
+ if [ -n "`pidof $DAEMON`" ] ; then
+ RETVAL=1
+ fi
+
+ return $RETVAL
+}
+
+umount_loopback()
+{
+ loops=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
+ automounts=`LC_ALL=C awk '!/^#/ && $1 ~ /^automount/ {print $2}' /proc/mounts`
+
+ for l in $loops
+ do
+ # If a loop device is mounted into a subdir of the automount point,
+ # umount it here.
+ for a in $automounts
+ do
+ match=`echo $l | grep -E "^$a[\$|/]" || true`
+ if [ -n "$match" ]; then
+ echo ""
+ echo -n $"Unmounting loopback filesystem $match: "
+ loopdev=`LC_ALL=C grep $l /proc/mounts | awk '{print $1}'`
+ umount -d $match
+ if [ $? -eq 0 ]; then
+ echo "done"
+ else
+ echo "failed ($?)"
+ fi
+ fi
+ done
+ done
+
+ # If the loop device file exists under the automount point, umount
+ # it here.
+ loopmnts=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
+ for l in $loopmnts
+ do
+ loopmnt=`losetup $l | awk -F\( '{print $2}' | awk -F\) '{print $1}'`
+ for a in $automounts
+ do
+ match=`echo $loopmnt | grep -E "^$a[\$|/]" || true`
+ if [ -n "$match" ]; then
+ echo ""
+ echo -n $"Unmounting loopback filesystem $match: "
+ umount -d $match
+ if [ $? -eq 0 ]; then
+ echo "done"
+ else
+ echo "failed ($?)"
+ fi
+ fi
+ done
+ done
+}
+
+#
+# Redhat start/stop function.
+#
+redhat()
+{
+
+#
+# See how we were called.
+#
+case "$1" in
+ start)
+ # Make sure the autofs filesystem type is available.
+ (grep -q autofs /proc/filesystems || /sbin/modprobe -k autofs4 || /sbin/modprobe -k autofs) 2> /dev/null
+ echo -n $"Starting $prog: "
+ TMP=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
+ getmounts | tee $TMP | sh
+ RETVAL=$?
+ if [ -s $TMP ] ; then
+ if [ $RETVAL -eq 0 ] ; then
+ success "$prog startup"
+ else
+ failure "$prog startup"
+ fi
+ [ $RETVAL = 0 ] && touch /var/lock/subsys/autofs
+ else
+ echo -n $"No Mountpoints Defined"
+ success "$prog startup"
+ fi
+ rm -f $TMP
+ echo
+ ;;
+ stop)
+ echo -n $"Stopping $prog:"
+ if [ -z "`pidofproc $prog`" -a -z "`getmounts`" ]; then
+ RETVAL=0
+ else
+ umount_loopback
+ signal_automounts
+ RETVAL=$?
+ fi
+ count=0
+ while [ -n "`/sbin/pidof $DAEMON`" -a $count -lt 10 ] ; do
+ killproc $DAEMON -USR2 >& /dev/null
+ RETVAL=$?
+ [ $RETVAL = 0 -a -z "`/sbin/pidof $DAEMON`" ] || sleep 3
+ count=`expr $count + 1`
+ done
+ umount -a -f -t autofs
+ rm -f /var/lock/subsys/autofs
+ if [ -n "`/sbin/pidof $DAEMON`" ] ; then
+ failure "$prog shutdown"
+ else
+ success "$prog shutdown"
+ fi
+ echo
+ ;;
+ restart)
+ redhat stop
+ redhat start
+ ;;
+ reload)
+ if [ ! -f /var/lock/subsys/autofs ]; then
+ echo $"$prog not running"
+ RETVAL=1
+ return
+ fi
+ echo $"Checking for changes to /etc/auto.master ...."
+ TMP1=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
+ TMP2=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
+ getmounts >$TMP1
+ ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
+ while read pid tt stat time command; do
+ echo "$command" >>$TMP2
+ if ! grep -q "^$command" $TMP1; then
+ if ! echo "$command" | grep -q -e --submount; then
+ kill -USR2 $pid 2> /dev/null
+ echo $"Stop $command"
+ fi
+ else
+ kill -HUP $pid 2> /dev/null
+ echo $"Reload map $command"
+ fi
+ done
+ )
+ cat $TMP1 | ( while read x; do
+ if ! grep -q "^$x" $TMP2; then
+ $x
+ echo $"Start $x"
+ fi
+ done )
+ rm -f $TMP1 $TMP2
+ ;;
+ status)
+ status
+ ;;
+ condrestart)
+ [ -f /var/lock/subsys/autofs ] && redhat restart
+ RETVAL=0
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
+ RETVAL=0
+esac
+}
+
+#
+# Debian start/stop functions.
+#
+debian()
+{
+
+case "$1" in
+start)
+ echo -n 'Starting automounter:'
+
+ # make sure autofs4 is loaded
+ if ! grep -q autofs /proc/filesystems
+ then
+ # autofs filesystem support not loaded
+ echo -n ' loading autofs4 kernel module,'
+ modprobe autofs4 || true
+ elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]; then
+ # wrong autofs filesystem module loaded
+ echo
+ echo "WARNING: autofs kernel module is loaded, autofs4 needed"
+ echo " for correct behaviour. You might experience mount failures."
+ fi
+
+ # Check that maps exist
+ if [ -z "$(getrawmounts)" ]
+ then
+ echo " no automount maps defined."
+ exit 0
+ fi
+
+ # ensure pid file directory exists
+ if [ ! -e /var/run/autofs ]
+ then
+ mkdir /var/run/autofs
+ fi
+
+ getmounts | while read cmd rest
+ do
+ mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
+ pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
+
+ start-stop-daemon --start --pidfile $pidfile --quiet \
+ --exec $DAEMON -- --pid-file=$pidfile $rest
+
+ ret=$?
+
+ if [ $ret -ne 0 ]
+ then
+ echo
+ echo " failed to start automount point $mnt"
+ fi
+ done
+
+ echo " done."
+ ;;
+stop)
+ echo -n 'Stopping automounter:'
+
+ umount_loopback
+
+ any=0
+ for file in `ls /var/run/autofs/*.pid 2>/dev/null`
+ do
+ if [ -e "$file" ]
+ then
+ any=1
+ pid=`head -n 1 $file`
+ mnt=`ps -wwo 'cmd=' $pid | sed -e \
+ 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
+ dname=`basename $DAEMON`
+
+ start-stop-daemon --stop --quiet \
+ --retry USR2/$DAEMON_EXIT_WAIT \
+ --pidfile $file --name $dname
+
+ ret=$?
+
+ case $ret in
+ 0)
+# echo -n " $mnt"
+ rm -f $file
+ ;;
+ 1)
+ echo -n -e "\n No process for automount $mnt"
+ rm -f $file
+ ;;
+ 2)
+ echo -n -e "\n Couldn't stop automount for $mnt"
+ ;;
+ *)
+ echo -n -e \
+ "\n Strange start-stop-daemon exit status: $ret"
+ ;;
+ esac
+ fi
+ done
+
+ echo " done."
+ ;;
+reload)
+ echo "Reloading automounter: checking for changes ... "
+
+ TMP1=`mktemp -t autofs.XXXXXX`
+ TMP2=`mktemp -t autofs.XXXXXX`
+
+ getmounts >$TMP1
+
+ for i in `ls /var/run/autofs/*.pid 2>/dev/null`
+ do
+ pid=`head -n 1 $i 2>/dev/null`
+ [ "$pid" = "" ] && continue
+
+ cmd=`get_command_from_pid $pid`
+ echo $cmd >>$TMP2
+
+ mnt=`ps -wwo 'cmd=' $pid | sed -e \
+ 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
+
+ if ! grep -q "$cmd" $TMP1; then
+ echo "Stopping automounter for: $mnt"
+ kill -USR2 $pid 2> /dev/null
+ else
+ echo "Reloading automounter map for: $mnt"
+ kill -HUP $pid 2> /dev/null
+ fi
+ done
+
+ cat $TMP1 | (while read x; do
+ if ! grep -q "^$x" $TMP2; then
+ echo $x | while read cmd rest; do
+
+ mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
+ pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
+
+ start-stop-daemon --start --pidfile $pidfile --quiet \
+ --exec $DAEMON -- --pid-file=$pidfile $rest
+
+ ret=$?
+
+ if [ $ret -ne 0 ]
+ then
+ echo
+ echo " failed to start automount point $mnt"
+ else
+ echo "Started automounter: $mnt"
+ fi
+ done
+ fi
+ done)
+
+ rm -f $TMP1 $TMP2
+ ;;
+force-reload|restart)
+ debian stop
+ debian start
+ ;;
+status)
+ status
+ ;;
+getmounts)
+ getmounts
+ ;;
+active)
+ alive
+ ;;
+*)
+ echo "Usage: $initdir/autofs {start|stop|restart|reload|status|getmounts|active}" >&2
+ exit 1
+ ;;
+esac
+}
+
+RETVAL=0
+if [ $system = debian ]; then
+ debian "$@"
+elif [ $system = redhat ]; then
+ redhat "$@"
+fi
+
+exit $RETVAL
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/cross.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/cross.patch
new file mode 100644
index 0000000..f27cc0a
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/cross.patch
@@ -0,0 +1,42 @@
+Index: autofs-4.1.4/aclocal.m4
+===================================================================
+--- autofs-4.1.4.orig/aclocal.m4
++++ autofs-4.1.4/aclocal.m4
+@@ -9,6 +9,8 @@ dnl ------------------------------------
+ AC_DEFUN(AF_PATH_INCLUDE,
+ [AC_PATH_PROGS($1,$2,$3,$4)
+ if test -n "$$1"; then
++ AH_TEMPLATE([HAVE_$1], [Have $2])
++ AH_TEMPLATE([PATH_$1], [Have $2])
+ AC_DEFINE(HAVE_$1,1,[define if you have $1])
+ AC_DEFINE_UNQUOTED(PATH_$1, "$$1", [define if you have $1])
+ HAVE_$1=1
+Index: autofs-4.1.4/configure.in
+===================================================================
+--- autofs-4.1.4.orig/configure.in
++++ autofs-4.1.4/configure.in
+@@ -135,12 +135,14 @@ AC_PROG_CC
+ cat > pietest.c <<EOF
+ int main(void) { return 0; }
+ EOF
++AF_tmp_ldflags="$LDFLAGS"
++AF_tmp_cflags="$CFLAGS"
+ CFLAGS=-fPIE
+ LDFLAGS=-pie
+ DAEMON_CFLAGS=
+ DAEMON_LDFLAGS=
+ AC_MSG_CHECKING([whether gcc -fPIE works])
+-AC_RUN_IFELSE([AC_LANG_PROGRAM([[]], [[int main(void) {return 0;}]])],
++AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main(void) {return 0;}]])],
+ [gcc_supports_pie=yes], [gcc_supports_pie=no])
+ AC_MSG_RESULT([$gcc_supports_pie])
+ if test $gcc_supports_pie = yes ; then
+@@ -150,6 +152,8 @@ fi
+ rm -f pietest.c
+ AC_SUBST(DAEMON_CFLAGS)
+ AC_SUBST(DAEMON_LDFLAGS)
++CFLAGS="${AF_tmp_cflags}"
++LDFLAGS="${AF_tmp_ldflags}"
+
+ #
+ # Location of init.d directory?
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/install.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/install.patch
new file mode 100644
index 0000000..ef13fd8
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/install.patch
@@ -0,0 +1,71 @@
+Index: autofs-4.1.4/man/Makefile
+===================================================================
+--- autofs-4.1.4.orig/man/Makefile 2003-09-29 10:22:35.000000000 +0200
++++ autofs-4.1.4/man/Makefile 2006-06-19 15:09:33.124583912 +0200
+@@ -14,9 +14,9 @@
+
+ install: all
+ install -d -m 755 $(INSTALLROOT)$(mandir)/man5
+- install -c *.5 -m 644 $(INSTALLROOT)$(mandir)/man5
++ install -c -m 644 *.5 $(INSTALLROOT)$(mandir)/man5
+ install -d -m 755 $(INSTALLROOT)$(mandir)/man8
+- install -c *.8 -m 644 $(INSTALLROOT)$(mandir)/man8
++ install -c -m 644 *.8 $(INSTALLROOT)$(mandir)/man8
+
+ clean:
+ rm -f $(GENFILES)
+Index: autofs-4.1.4/modules/Makefile
+===================================================================
+--- autofs-4.1.4.orig/modules/Makefile 2004-08-29 14:46:23.000000000 +0200
++++ autofs-4.1.4/modules/Makefile 2006-06-19 15:09:33.125583760 +0200
+@@ -53,7 +53,7 @@
+ # mount_smbfs.so is an obsolete module which must be removed
+ install: all
+ install -d -m 755 $(INSTALLROOT)$(autofslibdir)
+- install -c $(MODS) -m 755 $(INSTALLROOT)$(autofslibdir)
++ install -c -m 755 $(MODS) $(INSTALLROOT)$(autofslibdir)
+ -rm -f $(INSTALLROOT)$(autofslibdir)/mount_smbfs.so
+ ifeq ($(EXT2FS), 1)
+ ifeq ($(EXT3FS), 1)
+Index: autofs-4.1.4/samples/Makefile
+===================================================================
+--- autofs-4.1.4.orig/samples/Makefile 2005-01-04 15:36:54.000000000 +0100
++++ autofs-4.1.4/samples/Makefile 2006-06-19 15:09:33.125583760 +0200
+@@ -27,19 +27,19 @@
+ install: all
+ install -d -m 755 $(INSTALLROOT)/etc
+ -mv -f $(INSTALLROOT)/etc/auto.master $(INSTALLROOT)/etc/auto.master.old
+- install -c auto.master -m 644 $(INSTALLROOT)/etc
++ install -c -m 644 auto.master $(INSTALLROOT)/etc
+ -mv -f $(INSTALLROOT)/etc/auto.misc $(INSTALLROOT)/etc/auto.misc.old
+- install -c auto.misc -m 644 $(INSTALLROOT)/etc
++ install -c -m 644 auto.misc $(INSTALLROOT)/etc
+ -mv -f $(INSTALLROOT)/etc/auto.net $(INSTALLROOT)/etc/auto.net.old
+- install -c auto.net -m 755 $(INSTALLROOT)/etc
++ install -c -m 755 auto.net $(INSTALLROOT)/etc
+ -mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old
+- install -c auto.smb -m 755 $(INSTALLROOT)/etc
++ install -c -m 755 auto.smb $(INSTALLROOT)/etc
+ install -d -m 755 $(INSTALLROOT)$(initdir)
+- install -c rc.autofs -m 755 $(INSTALLROOT)$(initdir)/autofs
++ install -c -m 755 rc.autofs $(INSTALLROOT)$(initdir)/autofs
+ install -d -m 755 $(INSTALLROOT)$(autofslibdir)
+ install -d -m 755 $(INSTALLROOT)/var/run/autofs
+ ifeq ($(LDAP), 1)
+- install -c autofs-ldap-auto-master -m 755 $(INSTALLROOT)$(autofslibdir)
++ install -c -m 755 autofs-ldap-auto-master $(INSTALLROOT)$(autofslibdir)
+ endif
+
+ clean):
+Index: autofs-4.1.4/daemon/Makefile
+===================================================================
+--- autofs-4.1.4.orig/daemon/Makefile 2006-06-19 15:10:47.526273136 +0200
++++ autofs-4.1.4/daemon/Makefile 2006-06-19 15:10:58.661580312 +0200
+@@ -26,6 +26,6 @@
+
+ install: all
+ install -d -m 755 $(INSTALLROOT)$(sbindir)
+- install -c automount -m 755 $(INSTALLROOT)$(sbindir)
++ install -c -m 755 automount $(INSTALLROOT)$(sbindir)
+
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/no-bash.patch b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/no-bash.patch
new file mode 100644
index 0000000..16e83a0
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/no-bash.patch
@@ -0,0 +1,18 @@
+diff -Naur autofs-4.1.4/samples.orig/auto.net autofs-4.1.4/samples/auto.net
+--- autofs-4.1.4/samples.orig/auto.net 2007-11-21 11:29:57.000000000 -0600
++++ autofs-4.1.4/samples/auto.net 2007-11-21 11:30:27.000000000 -0600
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ # $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $
+
+diff -Naur autofs-4.1.4/samples.orig/auto.smb autofs-4.1.4/samples/auto.smb
+--- autofs-4.1.4/samples.orig/auto.smb 2007-11-21 11:29:57.000000000 -0600
++++ autofs-4.1.4/samples/auto.smb 2007-11-21 11:30:34.000000000 -0600
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ # $Id: auto.smb,v 1.3 2005/04/05 13:02:09 raven Exp $
+
diff --git a/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/volatiles.99_autofs b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/volatiles.99_autofs
new file mode 100644
index 0000000..fc14d33
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs-4.1.4/volatiles.99_autofs
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d root root 0700 /var/run/autofs none
diff --git a/meta-openvuplus/recipes-base/autofs/autofs_4.1.4.bb b/meta-openvuplus/recipes-base/autofs/autofs_4.1.4.bb
new file mode 100644
index 0000000..f8d9bff
--- /dev/null
+++ b/meta-openvuplus/recipes-base/autofs/autofs_4.1.4.bb
@@ -0,0 +1,80 @@
+SUMMARY = "kernel-based automounter for Linux"
+SECTION = "base"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+PR = "r10"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v4/${BP}.tar.bz2 \
+ file://020_auto_net_path_sortlocale_mountoptions.patch \
+ file://037_let_debian_rules_decide_on_CFLAGS.patch \
+ file://042_default_auto_master_all_commented_out.patch \
+ file://060_non_replicated_ping.patch \
+ file://061_multi_parse_fix.patch \
+ file://062_fix_memory_leak.patch \
+ file://063_misc_fixes.patch \
+ file://064_support_options_on_nis_maps.patch \
+ file://065_fix_master_map_in_ldap.patch \
+ file://066_canonicalise_mount_points.patch \
+ file://067_allow_disabling_bind_mounts.patch \
+ file://067_ldap_no_first_message.patch \
+ file://068_fix_invalid_rpcgen_code.patch \
+ file://069_support_spaces_in_smb_share_names.patch \
+ file://070_fix_regex_typo.patch \
+ file://071_fix_ldap_mounts.patch \
+ file://072_fix_auto_net_sort.patch \
+ file://073_configurable_locking.patch \
+ file://074_auto_smb_cifs.patch \
+ file://075_auto_net_escape_hash.patch \
+ file://076_ldap_deprecated.patch \
+ file://078_locking_fix_1.patch \
+ file://079_no_unlink_upstream.patch \
+ file://080_auto_smb_probe_credentials.patch \
+ file://081_auto_net_showmount_quotes.patch \
+ file://082_samples_makefile_typo.patch \
+ file://083_clarify_program_map_outputsyntax.patch \
+ file://084_init_lsb_header.patch \
+ file://085_auto_net_lp111612.patch \
+ file://cross.patch \
+ file://Makefile.rules-cross.patch \
+ file://install.patch \
+ file://no-bash.patch \
+ file://auto.hotplug \
+ file://auto.master \
+ file://auto.network \
+ file://autofs.default \
+ file://autofs.init \
+ file://volatiles.99_autofs \
+"
+SRC_URI[md5sum] = "7e3949114c00665b4636f0c318179657"
+SRC_URI[sha256sum] = "e25caa0e9639ea54dd7c4f21e8146ac9859a61fa126f397edf874b5fdc147430"
+
+S = "${WORKDIR}/${BP}"
+
+inherit autotools update-rc.d
+
+do_configure_prepend () {
+ if [ ! -e acinclude.m4 ]; then
+ cp aclocal.m4 acinclude.m4
+ fi
+}
+do_install () {
+ oe_runmake 'INSTALLROOT=${D}' install
+ install -d ${D}${sysconfdir}/default
+ install -m 644 ${WORKDIR}/autofs.default ${D}${sysconfdir}/default/autofs
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/autofs.init ${D}${sysconfdir}/init.d/autofs
+ install -m 644 ${WORKDIR}/auto.hotplug ${D}${sysconfdir}/auto.hotplug
+ install -m 644 ${WORKDIR}/auto.master ${D}${sysconfdir}/auto.master
+ install -m 644 ${WORKDIR}/auto.network ${D}${sysconfdir}/auto.network
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_autofs ${D}${sysconfdir}/default/volatiles/99_autofs
+}
+
+RDEPENDS_${PN} = "procps"
+
+INITSCRIPT_NAME = "autofs"
+INITSCRIPT_PARAMS = "defaults"
+
+PARALLEL_MAKE = ""
+
+INSANE_SKIP_${PN} = "dev-so"
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps.bb b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps.bb
new file mode 100644
index 0000000..4ab2603
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Dreambox Keyboard Keymap files"
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://${THISDIR}/${PN}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRC_URI = "file://dream-de.info file://dream-de.kmap file://eng.info file://eng.kmap"
+
+PR = "r1"
+
+FILES_${PN} = "/"
+PACKAGE_ARCH = "all"
+
+do_install() {
+ install -d ${D}/usr/share/keymaps
+ for x in dream-de.info dream-de.kmap eng.info eng.kmap; do
+ install -m 0644 ${WORKDIR}/$x ${D}/usr/share/keymaps/$x
+ done
+}
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/GPL-1.0 b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/GPL-1.0
new file mode 100644
index 0000000..9d4ef93
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/GPL-1.0
@@ -0,0 +1,252 @@
+
+GNU General Public License, version 1
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The license agreements of most software companies try to keep users
+at the mercy of those companies. By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. The
+General Public License applies to the Free Software Foundation`s
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author`s protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors` reputations.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License. The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications. Each
+licensee is addressed as "you".
+
+ 1. You may copy and distribute verbatim copies of the Program`s source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program. You may charge a fee for the physical act of
+transferring a copy.
+
+ 2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+ a) cause the modified files to carry prominent notices stating that
+ you changed the files and the date of any change; and
+
+ b) cause the whole of any work that you distribute or publish, that
+ in whole or in part contains the Program or any part thereof, either
+ with or without modifications, to be licensed at no charge to all
+ third parties under the terms of this General Public License (except
+ that you may choose to grant warranty protection to some or all
+ third parties, at your option).
+
+ c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the simplest and most usual way, to print or display an
+ announcement including an appropriate copyright notice and a notice
+ that there is no warranty (or else, saying that you provide a
+ warranty) and that users may redistribute the program under these
+ conditions, and telling the user how to view a copy of this General
+ Public License.
+
+ d) You may charge a fee for the physical act of transferring a
+ copy, and you may at your option offer warranty protection in
+ exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+ 3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+ a) accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ b) accompany it with a written offer, valid for at least three
+ years, to give any third party free (except for a nominal charge
+ for the cost of distribution) a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ c) accompany it with the information you received as to where the
+ corresponding source code may be obtained. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it. For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+ 4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License. However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+ 5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients` exercise of the rights granted herein.
+
+ 7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+ 8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program`s name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19xx name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w`.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c` for details.
+
+The hypothetical commands `show w` and `show c` should show the
+appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than `show w` and `show
+c`; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ program `Gnomovision` (a program to direct compilers to make passes
+ at assemblers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+That`s all there is to it!
+
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.info b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.info
new file mode 100644
index 0000000..d7f5b07
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.info
@@ -0,0 +1,2 @@
+kmap=dream-de.kmap
+name=Dreambox Keyboard Deutsch
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.kmap b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.kmap
new file mode 100644
index 0000000..693317a
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/dream-de.kmap
Binary files differ
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.info b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.info
new file mode 100644
index 0000000..d73372c
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.info
@@ -0,0 +1,2 @@
+kmap=eng.kmap
+name=Keyboard English
diff --git a/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.kmap b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.kmap
new file mode 100644
index 0000000..15a722f
--- /dev/null
+++ b/meta-openvuplus/recipes-base/dreambox-keymaps/dreambox-keymaps/eng.kmap
Binary files differ
diff --git a/meta-openvuplus/recipes-base/fakelocale/fakelocale.bb b/meta-openvuplus/recipes-base/fakelocale/fakelocale.bb
new file mode 100644
index 0000000..aa50ca6
--- /dev/null
+++ b/meta-openvuplus/recipes-base/fakelocale/fakelocale.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Fake locale support"
+LICENSE = "CLOSED"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r3"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/fakelocale.tar.gz file://locale.alias"
+SRC_URI[md5sum] = "d11a901c9e4dc2947cbc560044de2b67"
+SRC_URI[sha256sum] = "b424804aff7a23efaa1fa25d27a55ac25173d0e7e95d07fe31096250bb498cc6"
+
+S = "${WORKDIR}/fakelocale"
+
+inherit allarch
+
+LOCALEDIR = "${libdir}/locale"
+LOCALEDIR2 = "/usr/share/locale"
+
+LANGUAGES = "ar_AE cs_CZ da_DK de_DE el_GR es_ES et_EE fi_FI fr_FR fy_FY hr_HR \
+ hu_HU is_IS it_IT lt_LT nl_NL no_NO pl_PL pt_PT ro_RO ru_RU sk_SK sl_SI \
+ sr_YU sv_SE tr_TR ur_IN"
+
+RPROVIDES = "virtual-locale-ar virtual-locale-cs virtual-locale-da \
+ virtual-locale-de virtual-locale-el virtual-locale-es virtual-locale-et \
+ virtual-locale-fi virtual-locale-fr virtual-locale-fy virtual-locale-hr \
+ virtual-locale-hu virtual-locale-is virtual-locale-it virtual-locale-lt \
+ virtual-locale-nl virtual-locale-no virtual-locale-pl virtual-locale-pt \
+ virtual-locale-ro virtual-locale-ru virtual-locale-sk virtual-locale-sl \
+ virtual-locale-sr virtual-locale-sv virtual-locale-tr virtual-locale-ur"
+
+LOCALE_FILES = " LC_TIME LC_TELEPHONE LC_PAPER LC_NUMERIC LC_NAME LC_MONETARY LC_MESSAGES/SYS_LC_MESSAGES LC_MEASUREMENT \
+ LC_IDENTIFICATION LC_CTYPE LC_COLLATE LC_ADDRESS"
+
+do_install() {
+ install -d ${D}${LOCALEDIR}/fake/LC_MESSAGES
+ install -d ${D}${LOCALEDIR2}
+
+ for x in ${LOCALE_FILES}; do
+ install ${S}/$x ${D}${LOCALEDIR}/fake/$x
+ done
+
+ for lang in ${LANGUAGES}; do
+ ln -s fake ${D}${LOCALEDIR}/${lang}
+ done
+
+ install ${WORKDIR}/locale.alias ${D}${LOCALEDIR2}
+}
+
+FILES_${PN} = "${LOCALEDIR} ${LOCALEDIR2}"
diff --git a/meta-openvuplus/recipes-base/fakelocale/files/locale.alias b/meta-openvuplus/recipes-base/fakelocale/files/locale.alias
new file mode 100644
index 0000000..b66b1eb
--- /dev/null
+++ b/meta-openvuplus/recipes-base/fakelocale/files/locale.alias
@@ -0,0 +1,28 @@
+English C
+Arabic ar_AE
+Czech cs_CZ
+Danish da_DK
+Deutsch de_DE
+Ellinika el_GR
+Spanish es_ES
+Estonian et_EE
+Suomi fi_FI
+French fr_FR
+Frisian fy_FY
+Croatia hr_HR
+Hungarian hu_HU
+Icelandic is_IS
+Italian it_IT
+Lithuanian lt_LT
+Dutch nl_NL
+Norwegian no_NO
+Polish pl_PL
+Portugues pt_PT
+Romania ro_RO
+Russian ru_RU
+Slovakian sk_SK
+Slovenian sl_SI
+Serbian sr_YU
+Svenska sv_SE
+Turkish tr_TR
+Urdu ur_IN \ No newline at end of file
diff --git a/meta-openvuplus/recipes-base/opkg/opkg-collateral.bbappend b/meta-openvuplus/recipes-base/opkg/opkg-collateral.bbappend
new file mode 100644
index 0000000..429c37f
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg-collateral.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+PR .= "-vuplus0"
diff --git a/meta-openvuplus/recipes-base/opkg/opkg-collateral/dest b/meta-openvuplus/recipes-base/opkg/opkg-collateral/dest
new file mode 100644
index 0000000..e041eb7
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg-collateral/dest
@@ -0,0 +1,5 @@
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch b/meta-openvuplus/recipes-base/opkg/opkg/0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch
new file mode 100644
index 0000000..4553124
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch
@@ -0,0 +1,32 @@
+Upstream-Status: Backport
+
+From 319d02609992273e887242ed9788db68d3310b6c Mon Sep 17 00:00:00 2001
+From: "pixdamix@gmail.com"
+ <pixdamix@gmail.com@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
+Date: Thu, 19 Jan 2012 13:52:06 +0000
+Subject: [PATCH 01/10] Fixed opkg losing auto_installed flag on upgrading
+
+Thanks-to: Christian Hitz <christian.hitz@aizo.com>
+
+git-svn-id: http://opkg.googlecode.com/svn/trunk@635 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
+---
+ libopkg/opkg_install.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c
+index 74a2ce1..3925f58 100644
+--- a/libopkg/opkg_install.c
++++ b/libopkg/opkg_install.c
+@@ -1449,6 +1449,9 @@ opkg_install_pkg(pkg_t *pkg, int from_upgrade)
+ /* removing files from old package, to avoid ghost files */
+ remove_data_files_and_list(old_pkg);
+ remove_maintainer_scripts(old_pkg);
++
++ /* maintain the "Auto-Installed: yes" flag */
++ pkg->auto_installed = old_pkg->auto_installed;
+ }
+
+
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0002-Don-t-mark-Conflicts-as-Depends.patch b/meta-openvuplus/recipes-base/opkg/opkg/0002-Don-t-mark-Conflicts-as-Depends.patch
new file mode 100644
index 0000000..9e122de
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0002-Don-t-mark-Conflicts-as-Depends.patch
@@ -0,0 +1,29 @@
+From 8c00c6be3723a0dcf05a10b5aba8c1c3b1fe4cf7 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Wed, 16 May 2012 23:29:04 +0200
+Subject: [PATCH 02/10] Don't mark Conflicts as Depends
+
+- Fixes 'whatconflicts' sub-command.
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/pkg_depends.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index 1e14d1f..a61e80e 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -609,8 +609,8 @@ void buildConflicts(pkg_t * pkg)
+
+ conflicts = pkg->conflicts = xcalloc(pkg->conflicts_count, sizeof(compound_depend_t));
+ for (i = 0; i < pkg->conflicts_count; i++) {
+- conflicts->type = CONFLICTS;
+ parseDepends(conflicts, pkg->conflicts_str[i]);
++ conflicts->type = CONFLICTS;
+ free(pkg->conflicts_str[i]);
+ conflicts++;
+ }
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0003-Statically-link-libopkg-and-libbb.patch b/meta-openvuplus/recipes-base/opkg/opkg/0003-Statically-link-libopkg-and-libbb.patch
new file mode 100644
index 0000000..cfb7268
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0003-Statically-link-libopkg-and-libbb.patch
@@ -0,0 +1,107 @@
+From 698fdfccb2b2855fbe73ecad159b7987b49ddded Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:23:43 +0200
+Subject: [PATCH 03/10] Statically link libopkg and libbb
+
+* Based on https://dev.openwrt.org/browser/trunk/package/opkg/patches/007-force_static.patch
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libbb/Makefile.am | 8 ++++----
+ libopkg/Makefile.am | 14 +++-----------
+ src/Makefile.am | 4 ++--
+ tests/Makefile.am | 6 +++---
+ 4 files changed, 12 insertions(+), 20 deletions(-)
+
+diff --git a/libbb/Makefile.am b/libbb/Makefile.am
+index 1cc82df..337d94f 100644
+--- a/libbb/Makefile.am
++++ b/libbb/Makefile.am
+@@ -2,9 +2,9 @@ HOST_CPU=@host_cpu@
+ BUILD_CPU=@build_cpu@
+ ALL_CFLAGS=-g -O -Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@
+
+-noinst_LTLIBRARIES = libbb.la
++noinst_LIBRARIES = libbb.a
+
+-libbb_la_SOURCES = gz_open.c \
++libbb_a_SOURCES = gz_open.c \
+ libbb.h \
+ unzip.c \
+ wfopen.c \
+@@ -22,5 +22,5 @@ libbb_la_SOURCES = gz_open.c \
+ all_read.c \
+ mode_string.c
+
+-libbb_la_CFLAGS = $(ALL_CFLAGS)
+-#libbb_la_LDFLAGS = -static
++libbb_a_CFLAGS = $(ALL_CFLAGS)
++#libbb_a_LDFLAGS = -static
+diff --git a/libopkg/Makefile.am b/libopkg/Makefile.am
+index 043c5c4..5882595 100644
+--- a/libopkg/Makefile.am
++++ b/libopkg/Makefile.am
+@@ -38,18 +38,10 @@ if HAVE_SHA256
+ opkg_util_sources += sha256.c sha256.h
+ endif
+
+-lib_LTLIBRARIES = libopkg.la
+-libopkg_la_SOURCES = \
++noinst_LIBRARIES = libopkg.a
++libopkg_a_SOURCES = \
+ $(opkg_libcore_sources) \
+ $(opkg_cmd_sources) $(opkg_db_sources) \
+ $(opkg_util_sources) $(opkg_list_sources)
+
+-libopkg_la_LIBADD = $(top_builddir)/libbb/libbb.la $(CURL_LIBS) $(GPGME_LIBS) $(OPENSSL_LIBS) $(PATHFINDER_LIBS)
+-
+-libopkg_la_LDFLAGS = -version-info 1:0:0
+-
+-# make sure we only export symbols that are for public use
+-#libopkg_la_LDFLAGS = -export-symbols-regex "^opkg_.*"
+-
+-
+-
++libopkg_a_LIBADD = $(top_builddir)/libbb/libbb.a $(CURL_LIBS) $(GPGME_LIBS) $(OPENSSL_LIBS) $(PATHFINDER_LIBS)
+diff --git a/src/Makefile.am b/src/Makefile.am
+index efdc19d..bb7a792 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -2,5 +2,5 @@ AM_CFLAGS = -I${top_srcdir}/libopkg ${ALL_CFLAGS}
+ bin_PROGRAMS = opkg-cl
+
+ opkg_cl_SOURCES = opkg-cl.c
+-opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.la \
+- $(top_builddir)/libbb/libbb.la
++opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.a \
++ $(top_builddir)/libbb/libbb.a
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 1a6f565..132c792 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -4,11 +4,11 @@ AM_CFLAGS = $(ALL_CFLAGS) -Wall -g -O3 -I${top_srcdir}/libopkg
+ #noinst_PROGRAMS = libopkg_test opkg_active_list_test
+ noinst_PROGRAMS = libopkg_test
+
+-#opkg_hash_test_LDADD = $(top_builddir)/libbb/libbb.la $(top_builddir)/libopkg/libopkg.la
++#opkg_hash_test_LDADD = $(top_builddir)/libbb/libbb.a $(top_builddir)/libopkg/libopkg.a
+ #opkg_hash_test_SOURCES = opkg_hash_test.c
+ #opkg_hash_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
+
+-#opkg_extract_test_LDADD = $(top_builddir)/libbb/libbb.la $(top_builddir)/libopkg/libopkg.la
++#opkg_extract_test_LDADD = $(top_builddir)/libbb/libbb.a $(top_builddir)/libopkg/libopkg.a
+ #opkg_extract_test_SOURCES = opkg_extract_test.c
+ #opkg_extract_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
+
+@@ -16,7 +16,7 @@ noinst_PROGRAMS = libopkg_test
+ #opkg_active_list_test_SOURCES = opkg_active_list_test.c
+ #opkg_active_list_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
+
+-libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.la
++libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.a $(top_builddir)/libbb/libbb.a
+ libopkg_test_SOURCE = libopkg_test.c
+ libopkg_test_LDFLAGS = -static
+
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0004-Makefile.am-remove-g-and-O-compiler-flags.patch b/meta-openvuplus/recipes-base/opkg/opkg/0004-Makefile.am-remove-g-and-O-compiler-flags.patch
new file mode 100644
index 0000000..c9b9d6b
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0004-Makefile.am-remove-g-and-O-compiler-flags.patch
@@ -0,0 +1,50 @@
+From ca86fc9ad82713e17cd69e92ce2033631fa73675 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:32:43 +0200
+Subject: [PATCH 04/10] Makefile.am: remove -g and -O compiler flags
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ Makefile.am | 2 +-
+ libbb/Makefile.am | 2 +-
+ tests/Makefile.am | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 26f2d99..1c6226f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -6,7 +6,7 @@ SUBDIRS = libbb libopkg src tests utils man
+ HOST_CPU=@host_cpu@
+ BUILD_CPU=@build_cpu@
+ OPKGLIBDIR=@opkglibdir@
+-ALL_CFLAGS=-g -O -Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DDATADIR=\"@datadir@\"
++ALL_CFLAGS=-Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DDATADIR=\"@datadir@\"
+
+ PATHFINDER_CFLAGS = @PATHFINDER_CFLAGS@
+ PATHFINDER_LIBS = @PATHFINDER_LIBS@
+diff --git a/libbb/Makefile.am b/libbb/Makefile.am
+index 337d94f..6af5f04 100644
+--- a/libbb/Makefile.am
++++ b/libbb/Makefile.am
+@@ -1,6 +1,6 @@
+ HOST_CPU=@host_cpu@
+ BUILD_CPU=@build_cpu@
+-ALL_CFLAGS=-g -O -Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@
++ALL_CFLAGS=-Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@
+
+ noinst_LIBRARIES = libbb.a
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 132c792..4dccb74 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -1,4 +1,4 @@
+-AM_CFLAGS = $(ALL_CFLAGS) -Wall -g -O3 -I${top_srcdir}/libopkg
++AM_CFLAGS = $(ALL_CFLAGS) -Wall -I${top_srcdir}/libopkg
+
+ #noinst_PROGRAMS = opkg_hash_test opkg_extract_test
+ #noinst_PROGRAMS = libopkg_test opkg_active_list_test
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0005-pkg_depends-remove-unused-variables-to-fix-compiler-.patch b/meta-openvuplus/recipes-base/opkg/opkg/0005-pkg_depends-remove-unused-variables-to-fix-compiler-.patch
new file mode 100644
index 0000000..1820e52
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0005-pkg_depends-remove-unused-variables-to-fix-compiler-.patch
@@ -0,0 +1,48 @@
+From 4a5bc6cbce81497442f79ded5c78389024df0e60 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:14:23 +0200
+Subject: [PATCH 05/10] pkg_depends: remove unused variables to fix compiler
+ warnings
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/pkg_depends.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index a61e80e..68a81f9 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -269,13 +269,10 @@ is_pkg_a_replaces(pkg_t *pkg_scout,pkg_t *pkg)
+ {
+ int i ;
+ int replaces_count = pkg->replaces_count;
+- abstract_pkg_t **replaces;
+
+ if (pkg->replaces_count==0) // No replaces, it's surely a conflict
+ return 0;
+
+- replaces = pkg->replaces;
+-
+ for (i = 0; i < replaces_count; i++) {
+ if (strcmp(pkg_scout->name,pkg->replaces[i]->name)==0) { // Found
+ opkg_msg(DEBUG2, "Seems I've found a replace %s %s\n",
+@@ -295,7 +292,6 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ depend_t ** possible_satisfiers;
+ depend_t * possible_satisfier;
+ int i, j, k;
+- int count;
+ abstract_pkg_t * ab_pkg;
+ pkg_t **pkg_scouts;
+ pkg_t *pkg_scout;
+@@ -315,7 +311,6 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ }
+ installed_conflicts = pkg_vec_alloc();
+
+- count = pkg->conflicts_count;
+
+
+
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0006-pkg_hash_fetch_conflicts-fix-possible-segfaults.patch b/meta-openvuplus/recipes-base/opkg/opkg/0006-pkg_hash_fetch_conflicts-fix-possible-segfaults.patch
new file mode 100644
index 0000000..89934f2
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0006-pkg_hash_fetch_conflicts-fix-possible-segfaults.patch
@@ -0,0 +1,34 @@
+From e2b289330280e9f9fb5dd2cc10c736ca06d273f4 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:15:15 +0200
+Subject: [PATCH 06/10] pkg_hash_fetch_conflicts: fix possible segfaults
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/pkg_depends.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index 68a81f9..6ff75f1 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -322,10 +322,14 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ /* foreach possible satisfier */
+ for(j = 0; j < conflicts->possibility_count; j++){
+ possible_satisfier = possible_satisfiers[j];
+- if (!possible_satisfier)
++ if (!possible_satisfier) {
+ opkg_msg(ERROR, "Internal error: possible_satisfier=NULL\n");
+- if (!possible_satisfier->pkg)
++ continue;
++ }
++ if (!possible_satisfier->pkg) {
+ opkg_msg(ERROR, "Internal error: possible_satisfier->pkg=NULL\n");
++ continue;
++ }
+ test_vec = possible_satisfier->pkg->pkgs;
+ if (test_vec) {
+ /* pkg_vec found, it is an actual package conflict
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch b/meta-openvuplus/recipes-base/opkg/opkg/0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch
new file mode 100644
index 0000000..575c1e1
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch
@@ -0,0 +1,94 @@
+From b925a520a63fb291675f707e602d04295236c85b Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:17:52 +0200
+Subject: [PATCH 07/10] pkg_hash_fetch_conflicts: move iteration over
+ conflicts to subroutine
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/pkg_depends.c | 46 ++++++++++++++++++++++++----------------------
+ 1 file changed, 24 insertions(+), 22 deletions(-)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index 6ff75f1..1999b64 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -284,39 +284,22 @@ is_pkg_a_replaces(pkg_t *pkg_scout,pkg_t *pkg)
+
+ }
+
+-
+-pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
++static void __pkg_hash_fetch_conflicts(pkg_t * pkg, pkg_vec_t * installed_conflicts)
+ {
+- pkg_vec_t * installed_conflicts, * test_vec;
++ pkg_vec_t * test_vec;
+ compound_depend_t * conflicts;
+ depend_t ** possible_satisfiers;
+ depend_t * possible_satisfier;
+ int i, j, k;
+- abstract_pkg_t * ab_pkg;
+ pkg_t **pkg_scouts;
+ pkg_t *pkg_scout;
+
+- /*
+- * this is a setup to check for redundant/cyclic dependency checks,
+- * which are marked at the abstract_pkg level
+- */
+- if(!(ab_pkg = pkg->parent)){
+- opkg_msg(ERROR, "Internal error: %s not in hash table\n", pkg->name);
+- return (pkg_vec_t *)NULL;
+- }
+-
+ conflicts = pkg->conflicts;
+- if(!conflicts){
+- return (pkg_vec_t *)NULL;
+- }
+- installed_conflicts = pkg_vec_alloc();
+-
+-
+-
++ if(!conflicts)
++ return;
+
+ /* foreach conflict */
+ for(i = 0; i < pkg->conflicts_count; i++){
+-
+ possible_satisfiers = conflicts->possibilities;
+
+ /* foreach possible satisfier */
+@@ -352,11 +335,30 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ }
+ conflicts++;
+ }
++}
++
++pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
++{
++ pkg_vec_t * installed_conflicts;
++ abstract_pkg_t * ab_pkg;
++
++ /*
++ * this is a setup to check for redundant/cyclic dependency checks,
++ * which are marked at the abstract_pkg level
++ */
++ if(!(ab_pkg = pkg->parent)){
++ opkg_msg(ERROR, "Internal error: %s not in hash table\n", pkg->name);
++ return (pkg_vec_t *)NULL;
++ }
++
++ installed_conflicts = pkg_vec_alloc();
++
++ __pkg_hash_fetch_conflicts(pkg, installed_conflicts);
+
+ if (installed_conflicts->len)
+ return installed_conflicts;
+ pkg_vec_free(installed_conflicts);
+- return (pkg_vec_t *)NULL;
++ return (pkg_vec_t *)NULL;
+ }
+
+ int version_constraints_satisfied(depend_t * depends, pkg_t * pkg)
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch b/meta-openvuplus/recipes-base/opkg/opkg/0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch
new file mode 100644
index 0000000..e958289
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch
@@ -0,0 +1,49 @@
+From 53de52b533ee30676d051ee941cfc0a517e9190e Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 01:18:42 +0200
+Subject: [PATCH 08/10] pkg_hash_fetch_conflicts: take into account conflicts
+ of installed packages
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/pkg_depends.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index 1999b64..f237733 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -337,6 +337,22 @@ static void __pkg_hash_fetch_conflicts(pkg_t * pkg, pkg_vec_t * installed_confli
+ }
+ }
+
++static void __pkg_hash_fetch_conflictees(pkg_t *pkg, pkg_vec_t *installed_conflicts)
++{
++ int i;
++
++ pkg_vec_t *available_pkgs = pkg_vec_alloc();
++ pkg_hash_fetch_all_installed(available_pkgs);
++
++ for (i = 0; i < available_pkgs->len; i++) {
++ pkg_t *cpkg = available_pkgs->pkgs[i];
++ if (pkg_conflicts(cpkg, pkg) && !is_pkg_in_pkg_vec(installed_conflicts, cpkg))
++ pkg_vec_insert(installed_conflicts, cpkg);
++ }
++
++ pkg_vec_free(available_pkgs);
++}
++
+ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ {
+ pkg_vec_t * installed_conflicts;
+@@ -354,6 +370,7 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
+ installed_conflicts = pkg_vec_alloc();
+
+ __pkg_hash_fetch_conflicts(pkg, installed_conflicts);
++ __pkg_hash_fetch_conflictees(pkg, installed_conflicts);
+
+ if (installed_conflicts->len)
+ return installed_conflicts;
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch b/meta-openvuplus/recipes-base/opkg/opkg/0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch
new file mode 100644
index 0000000..bf61aef
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch
@@ -0,0 +1,100 @@
+From 70d10c10288da23755055c881bea01b61a2d4df7 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 17 May 2012 22:57:35 +0200
+Subject: [PATCH 09/10] Revert "Add Recommended packages to the
+ depended_upon_by field."
+
+This reverts commit ac2222f7d6514fb403ce0848f6812a22a48f75c7.
+---
+ libopkg/pkg_depends.c | 70 ++++++++++++++++++++++---------------------------
+ 1 file changed, 32 insertions(+), 38 deletions(-)
+
+diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
+index f237733..ec60b99 100644
+--- a/libopkg/pkg_depends.c
++++ b/libopkg/pkg_depends.c
+@@ -787,49 +787,43 @@ pkg_depend_str(pkg_t *pkg, int idx)
+ return str;
+ }
+
++/*
++ * WARNING: This function assumes pre_depends and depends are at the
++ * start of the pkg->depends array.
++ */
+ void buildDependedUponBy(pkg_t * pkg, abstract_pkg_t * ab_pkg)
+ {
+- compound_depend_t * depends;
+- int count, othercount;
+- int i, j;
+- abstract_pkg_t * ab_depend;
+- abstract_pkg_t ** temp;
+-
+- count = pkg->pre_depends_count +
+- pkg->depends_count +
+- pkg->recommends_count +
+- pkg->suggests_count;
+-
+- for (i = 0; i < count; i++) {
+- depends = &pkg->depends[i];
+- if (depends->type != PREDEPEND
+- && depends->type != DEPEND
+- && depends->type != RECOMMEND)
+- continue;
+- for (j = 0; j < depends->possibility_count; j++) {
+- ab_depend = depends->possibilities[j]->pkg;
+- if (!ab_depend->depended_upon_by) {
+- ab_depend->depended_upon_by =
+- xcalloc(1, sizeof(abstract_pkg_t *));
+- }
++ compound_depend_t * depends;
++ int count, othercount;
++ int i, j;
++ abstract_pkg_t * ab_depend;
++ abstract_pkg_t ** temp;
+
+- temp = ab_depend->depended_upon_by;
+- othercount = 1;
+- while (*temp) {
+- temp++;
+- othercount++;
+- }
+- *temp = ab_pkg;
++ count = pkg->pre_depends_count + pkg->depends_count;
++ depends = pkg->depends;
+
+- ab_depend->depended_upon_by =
+- xrealloc(ab_depend->depended_upon_by,
+- (othercount + 1) * sizeof(abstract_pkg_t *));
++ for (i = 0; i < count; i++) {
++ for (j = 0; j < depends->possibility_count; j++){
++ ab_depend = depends->possibilities[j]->pkg;
++ if(!ab_depend->depended_upon_by)
++ ab_depend->depended_upon_by = xcalloc(1, sizeof(abstract_pkg_t *));
++
++ temp = ab_depend->depended_upon_by;
++ othercount = 1;
++ while(*temp){
++ temp++;
++ othercount++;
++ }
++ *temp = ab_pkg;
+
+- /* the array may have been moved by realloc */
+- temp = ab_depend->depended_upon_by + othercount;
+- *temp = NULL;
+- }
+- }
++ ab_depend->depended_upon_by = xrealloc(ab_depend->depended_upon_by,
++ (othercount + 1) * sizeof(abstract_pkg_t *));
++ /* the array may have moved */
++ temp = ab_depend->depended_upon_by + othercount;
++ *temp = NULL;
++ }
++ depends++;
++ }
+ }
+
+ static depend_t * depend_init(void)
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg/0010-opkg_remove-auto-delete-.pyo-files.patch b/meta-openvuplus/recipes-base/opkg/opkg/0010-opkg_remove-auto-delete-.pyo-files.patch
new file mode 100644
index 0000000..3bc2e5d
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg/0010-opkg_remove-auto-delete-.pyo-files.patch
@@ -0,0 +1,33 @@
+From 719cc4ab765c008bd7e4f2d085692657c33d171e Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Mon, 21 May 2012 14:05:37 +0200
+Subject: [PATCH 10/10] opkg_remove: auto-delete .pyo files
+
+Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
+---
+ libopkg/opkg_remove.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libopkg/opkg_remove.c b/libopkg/opkg_remove.c
+index 5f4219b..4320dc3 100644
+--- a/libopkg/opkg_remove.c
++++ b/libopkg/opkg_remove.c
+@@ -375,8 +375,15 @@ remove_data_files_and_list(pkg_t *pkg)
+ }
+
+ if (!conf->noaction) {
++ size_t l = strlen(file_name);
+ opkg_msg(INFO, "Deleting %s.\n", file_name);
+ unlink(file_name);
++ if (l >= 3 && !strcmp(&file_name[l - 3], ".py")) {
++ char pyo_file_name[l + 2];
++ strcpy(pyo_file_name, file_name);
++ strcat(pyo_file_name, "o");
++ unlink(pyo_file_name);
++ }
+ } else
+ opkg_msg(INFO, "Not deleting %s. (noaction)\n",
+ file_name);
+--
+1.7.9.5
+
diff --git a/meta-openvuplus/recipes-base/opkg/opkg_svn.bbappend b/meta-openvuplus/recipes-base/opkg/opkg_svn.bbappend
new file mode 100644
index 0000000..e5a54e4
--- /dev/null
+++ b/meta-openvuplus/recipes-base/opkg/opkg_svn.bbappend
@@ -0,0 +1,14 @@
+PR .= "-vuplus0"
+
+SRC_URI += "file://0001-Fixed-opkg-losing-auto_installed-flag-on-upgrading.patch \
+ file://0002-Don-t-mark-Conflicts-as-Depends.patch \
+ file://0003-Statically-link-libopkg-and-libbb.patch \
+ file://0004-Makefile.am-remove-g-and-O-compiler-flags.patch \
+ file://0005-pkg_depends-remove-unused-variables-to-fix-compiler-.patch \
+ file://0006-pkg_hash_fetch_conflicts-fix-possible-segfaults.patch \
+ file://0007-pkg_hash_fetch_conflicts-move-iteration-over-conflic.patch \
+ file://0008-pkg_hash_fetch_conflicts-take-into-account-conflicts.patch \
+ file://0009-Revert-Add-Recommended-packages-to-the-depended_upon.patch \
+ file://0010-opkg_remove-auto-delete-.pyo-files.patch"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-openvuplus/recipes-base/vuplus-compat/vuplus-compat_1.0.bb b/meta-openvuplus/recipes-base/vuplus-compat/vuplus-compat_1.0.bb
new file mode 100644
index 0000000..25c096a
--- /dev/null
+++ b/meta-openvuplus/recipes-base/vuplus-compat/vuplus-compat_1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Vuplus compatibility links"
+SECTION = "base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+PRIORITY = "required"
+PR = "r0"
+
+inherit allarch
+
+do_install() {
+ install -d ${D}${base_libdir}
+ ln -sf libcrypto.so.0.9.8 ${D}${base_libdir}/libcrypto.so.0.9.7
+ ln -sf libgcc_s.so.1 ${D}${base_libdir}/libgcc_s_nof.so.1
+ install -d ${D}${libdir}
+ ln -sf libdvbsi++.so.1 ${D}${libdir}/libdvbsi++.so.0
+ ln -sf libgif.so.4 ${D}${libdir}/libungif.so.4
+ ln -sf libjpeg.so.8 ${D}${libdir}/libjpeg.so.62
+ ln -sf libssl.so.0.9.8 ${D}${libdir}/libssl.so.0.9.7
+ ln -sf libpython2.7.so.1.0 ${D}${libdir}/libpython2.6.so.1.0
+}
+
+PACKAGES = "${PN}"