[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-openembedded/meta-filesystems/COPYING.MIT b/meta/meta-openembedded/meta-filesystems/COPYING.MIT
new file mode 100644
index 0000000..89de354
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/meta/meta-openembedded/meta-filesystems/README b/meta/meta-openembedded/meta-filesystems/README
new file mode 100644
index 0000000..ac0035a
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/README
@@ -0,0 +1,105 @@
+This README file contains information on the contents of the
+filesystems layer.
+
+Please see the corresponding sections below for details.
+
+
+Dependencies
+============
+
+This layer depends on:
+
+ URI: git://git.openembedded.org/bitbake
+ branch: 1.40
+
+ URI: git://git.openembedded.org/openembedded-core
+ layers: meta
+ branch: thud
+
+ URI: git://git.openembedded.org/meta-openembedded
+ layers: meta-oe
+ branch: thud
+
+Patches
+=======
+
+Please submit any patches against the filesystems layer to the
+OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
+with '[meta-filesystems][thud]' in the subject.
+
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
+
+When sending single patches, please use something like:
+
+ git send-email -1 -M \
+ --to openembedded-devel@lists.openembedded.org \
+ --subject-prefix=meta-filesystems][thud][PATCH
+
+
+Table of Contents
+=================
+
+ I. Adding the filesystems layer to your build
+ II. Misc
+
+
+I. Adding the filesystems layer to your build
+=================================================
+
+In order to use this layer, you need to make the build system aware of
+it.
+
+Assuming the filesystems layer exists at the top-level of your
+yocto build tree, you can add it to the build system by adding the
+location of the filesystems layer to bblayers.conf, along with any
+other layers needed. e.g.:
+
+ BBLAYERS ?= " \
+ /path/to/yocto/meta \
+ /path/to/yocto/meta-oe \
+ /path/to/yocto/meta-filesystems \
+ "
+
+
+II. Misc
+========
+
+ --- physfs ---
+ A library to provide abstract access to various archives
+
+ --- fuse ---
+ Filesystem in Userspace (FUSE) is a simple interface for userspace programs
+ to export a virtual filesystem to the Linux kernel.
+
+ --- ifuse ---
+ A fuse filesystem to access the contents of an iPhone or iPod Touch
+
+ --- sshfs-fuse ---
+ A filesystem client based on the SSH File Transfer Protocol
+
+ --- owfs ---
+ An easy way to use the 1-Wire file system
+
+ --- ntfs-3g-ntfsprogs ---
+ The ntfs-3g is a freely available read/write NTFS driver for Linux and
+ ntfsprogs includes utilities for doing all required tasks to NTFS partitions.
+
+ --- cramfs ---
+ Builds cramfs filesystems for embedded systems
+
+ --- smbnetfs ---
+ SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft
+ network in the same manner as the network neighborhood in Microsoft Windows.
+
+ --- fuse-exfat ---
+ A read and write exFAT driver for FUSE
+
+ --- exfat-utils ---
+ Utilities to create, check, label and dump exFAT filesystem
+
+ --- f2fs-tools ---
+ Tools needed for creating and managing f2fs partitions
+
+ --- xfsprogs ---
+ It provides XFS filesystem utilities.
+
diff --git a/meta/meta-openembedded/meta-filesystems/conf/layer.conf b/meta/meta-openembedded/meta-filesystems/conf/layer.conf
new file mode 100644
index 0000000..002f099
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/conf/layer.conf
@@ -0,0 +1,18 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "filesystems-layer"
+BBFILE_PATTERN_filesystems-layer = "^${LAYERDIR}/"
+BBFILE_PRIORITY_filesystems-layer = "6"
+
+# This should only be incremented on significant changes that will
+# cause compatibility issues with other layers
+LAYERVERSION_filesystems-layer = "1"
+
+LAYERDEPENDS_filesystems-layer = "core openembedded-layer"
+
+LAYERSERIES_COMPAT_filesystems-layer = "thud"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb
new file mode 100644
index 0000000..99bf2be
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "read and write exFAT driver for FUSE"
+DESCRIPTION = "fuse-exfat is a read and write driver implementing the \
+extended file allocation table as a filesystem in userspace. A mounthelper \
+is provided under the name mount.exfat-fuse. \
+"
+HOMEPAGE = "http://code.google.com/p/exfat/"
+SECTION = "universe/otherosfs"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \
+"
+DEPENDS = "fuse virtual/libc"
+RRECOMMENDS_${PN} = "util-linux-mount"
+
+inherit autotools pkgconfig
+
+SRC_URI[md5sum] = "fca71e6598f79d037a3c7c969cb5710c"
+SRC_URI[sha256sum] = "f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9"
+
+S = "${WORKDIR}/${PN}-${PV}"
+EXTRA_OECONF += "sbindir=${base_sbindir}"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb
new file mode 100644
index 0000000..f0b58b9
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A fuse filesystem to access the contents of an iPhone or iPod Touch"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
+HOMEPAGE ="http://www.libimobiledevice.org/"
+
+DEPENDS = "fuse libimobiledevice"
+
+SRC_URI = " \
+ http://www.libimobiledevice.org/downloads/ifuse-${PV}.tar.bz2 \
+"
+
+SRC_URI[md5sum] = "4152526b2ac3c505cb41797d997be14d"
+SRC_URI[sha256sum] = "47835c8afb72588b3202fe0b206d7ea37a68663d9aa4eaf73f0a4bcb6215fc05"
+
+inherit autotools pkgconfig
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch
new file mode 100644
index 0000000..30ad1b8
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch
@@ -0,0 +1,46 @@
+From a322794f80f2718ae4463669c4b6ab2fbb15ffec Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Apr 2017 17:36:45 +0000
+Subject: [PATCH] Add $(LDFLAGS) to linker cmdline
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -14,7 +14,7 @@ ZLIB_O := crc32.o deflate.o adler32.o co
+ CC := gcc
+ CHECK := cgcc
+ CHECKFLAGS := -D__CHECK_ENDIAN__
+-CFLAGS := -std=gnu99
++CFLAGS += -std=gnu99
+ CFLAGS += -Wall
+ CFLAGS += -Os
+ CFLAGS += -D_FILE_OFFSET_BITS=64
+@@ -28,18 +28,18 @@ $(ZLIB_O): /usr/lib/libz.a
+
+ ifdef S
+ EXTRA_OBJ := $(ZLIB_O)
+-CFLAGS += -static
++LDFLAGS += -static
+ else
+-CFLAGS += -lz
++LDFLAGS += -lz
+ endif
+
+ mklogfs: $(EXTRA_OBJ)
+ mklogfs: mkfs.o lib.o btree.o segment.o readwrite.o
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
+ logfsck: $(ZLIB_O)
+ logfsck: fsck.o lib.o journal.o super.o
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
+ $(OBJ): kerncompat.h logfs.h logfs_abi.h btree.h
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch
new file mode 100644
index 0000000..dbf7ae0
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch
@@ -0,0 +1,135 @@
+From 5a8e26157d9642f022587cc1ca7525213c7a5379 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jul 2017 18:41:53 -0700
+Subject: [PATCH] btree: Avoid conflicts with libc namespace about setkey()
+
+This issue is highlighted with musl mainly because the
+function signature from stdlib.h does not match the local
+static function
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ btree.c | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/btree.c b/btree.c
+index eddc33b..dd3fef9 100644
+--- a/btree.c
++++ b/btree.c
+@@ -123,7 +123,7 @@ static unsigned long bval(struct btree_geo *geo, unsigned long *node, int n)
+ return node[geo->no_pairs * geo->keylen + n];
+ }
+
+-static void setkey(struct btree_geo *geo, unsigned long *node,
++static void _setkey(struct btree_geo *geo, unsigned long *node,
+ unsigned long *key, int n)
+ {
+ longcpy(bkey(geo, node, n), key, geo->keylen);
+@@ -292,7 +292,7 @@ static unsigned long *find_level(struct btree_head *head, struct btree_geo *geo,
+ /* FIXME: If the right-most key on higher levels is
+ * always zero, this wouldn't be necessary. */
+ i--;
+- setkey(geo, node, key, i);
++ _setkey(geo, node, key, i);
+ }
+ BUG_ON(i < 0);
+ node = (unsigned long *)bval(geo, node, i);
+@@ -311,7 +311,7 @@ static int btree_grow(struct btree_head *head, struct btree_geo *geo)
+ return -ENOMEM;
+ if (head->node) {
+ fill = getfill(geo, head->node, 0);
+- setkey(geo, node, bkey(geo, head->node, fill - 1), 0);
++ _setkey(geo, node, bkey(geo, head->node, fill - 1), 0);
+ setval(geo, node, (unsigned long)head->node, 0);
+ }
+ head->node = node;
+@@ -342,16 +342,16 @@ static void steal_l(struct btree_head *head, struct btree_geo *geo, int level,
+
+ for (i = rfill - 1; i >= 0; i--) {
+ /* Shift entries on the right */
+- setkey(geo, right, bkey(geo, right, i), i + no_entries);
++ _setkey(geo, right, bkey(geo, right, i), i + no_entries);
+ setval(geo, right, bval(geo, right, i), i + no_entries);
+ }
+ for (i = 0; i < no_entries; i++) {
+ /* Move some entries to the right */
+- setkey(geo, right, bkey(geo, left, lfill - no_entries + i), i);
++ _setkey(geo, right, bkey(geo, left, lfill - no_entries + i), i);
+ setval(geo, right, bval(geo, left, lfill - no_entries + i), i);
+ }
+ /* Set parent key */
+- setkey(geo, parent, bkey(geo, left, lfill - no_entries - 1), lpos);
++ _setkey(geo, parent, bkey(geo, left, lfill - no_entries - 1), lpos);
+ for (i = lfill - no_entries; i < lfill; i++)
+ clearpair(geo, left, i);
+ }
+@@ -366,14 +366,14 @@ static void steal_r(struct btree_head *head, struct btree_geo *geo, int level,
+
+ for (i = 0; i < no_entries; i++) {
+ /* Move some entries to the left */
+- setkey(geo, left, bkey(geo, right, i), lfill + i);
++ _setkey(geo, left, bkey(geo, right, i), lfill + i);
+ setval(geo, left, bval(geo, right, i), lfill + i);
+ }
+ /* Set parent key */
+- setkey(geo, parent, bkey(geo, right, no_entries - 1), lpos);
++ _setkey(geo, parent, bkey(geo, right, no_entries - 1), lpos);
+ /* Shift entries on the right */
+ for ( ; i < rfill; i++) {
+- setkey(geo, right, bkey(geo, right, i), i - no_entries);
++ _setkey(geo, right, bkey(geo, right, i), i - no_entries);
+ setval(geo, right, bval(geo, right, i), i - no_entries);
+ }
+ for (i = rfill - no_entries; i < rfill; i++)
+@@ -399,14 +399,14 @@ static int split(struct btree_head *head, struct btree_geo *geo,
+ return err;
+ }
+ for (i = 0; i < fill / 2; i++) {
+- setkey(geo, new, bkey(geo, node, i), i);
++ _setkey(geo, new, bkey(geo, node, i), i);
+ setval(geo, new, bval(geo, node, i), i);
+- setkey(geo, node, bkey(geo, node, i + fill / 2), i);
++ _setkey(geo, node, bkey(geo, node, i + fill / 2), i);
+ setval(geo, node, bval(geo, node, i + fill / 2), i);
+ clearpair(geo, node, i + fill / 2);
+ }
+ if (fill & 1) {
+- setkey(geo, node, bkey(geo, node, fill - 1), i);
++ _setkey(geo, node, bkey(geo, node, fill - 1), i);
+ setval(geo, node, bval(geo, node, fill - 1), i);
+ clearpair(geo, node, fill - 1);
+ }
+@@ -487,10 +487,10 @@ retry:
+
+ /* shift and insert */
+ for (i = fill; i > pos; i--) {
+- setkey(geo, node, bkey(geo, node, i - 1), i);
++ _setkey(geo, node, bkey(geo, node, i - 1), i);
+ setval(geo, node, bval(geo, node, i - 1), i);
+ }
+- setkey(geo, node, key, pos);
++ _setkey(geo, node, key, pos);
+ setval(geo, node, val, pos);
+
+ return 0;
+@@ -513,7 +513,7 @@ static void merge(struct btree_head *head, struct btree_geo *geo, int level,
+
+ for (i = 0; i < rfill; i++) {
+ /* Move all entries to the left */
+- setkey(geo, left, bkey(geo, right, i), lfill + i);
++ _setkey(geo, left, bkey(geo, right, i), lfill + i);
+ setval(geo, left, bval(geo, right, i), lfill + i);
+ }
+ /* Exchange left and right child in parent */
+@@ -615,7 +615,7 @@ static void *btree_remove_level(struct btree_head *head, struct btree_geo *geo,
+
+ /* remove and shift */
+ for (i = pos; i < fill - 1; i++) {
+- setkey(geo, node, bkey(geo, node, i + 1), i);
++ _setkey(geo, node, bkey(geo, node, i + 1), i);
+ setval(geo, node, bval(geo, node, i + 1), i);
+ }
+ clearpair(geo, node, fill - 1);
+--
+2.13.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
new file mode 100644
index 0000000..86bb0b5
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
@@ -0,0 +1,24 @@
+From 3b02acbb3d5bc93422a6821ce47568633ef4ae5e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 15:09:24 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definition
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkfs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mkfs.c b/mkfs.c
+index e612cbd..b6aa63d 100644
+--- a/mkfs.c
++++ b/mkfs.c
+@@ -21,6 +21,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #define __USE_UNIX98
+ #include <unistd.h>
+ #include <zlib.h>
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
new file mode 100644
index 0000000..d9864ac
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "LogFS Programs: used to create LogFS file system"
+DESCRIPTION = "\
+LogFS is a Linux log-structured and scalable flash file system, intended \
+for use on large devices of flash memory. It is written by Jörn Engel and \
+in part sponsored by the CE Linux Forum. \
+LogFS is included in the mainline Linux kernel and was introduced in \
+version 2.6.34, released on May 16, 2010."
+HOMEPAGE = "https://github.com/prasad-joshi/logfsprogs"
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02"
+DEPENDS = "zlib"
+
+SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git \
+ file://0001-Add-LDFLAGS-to-linker-cmdline.patch \
+ file://0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch \
+ file://0001-include-sys-sysmacros.h-for-major-minor-definition.patch \
+ "
+SRCREV = "45b72c81ce3c6fa17ca19bafc207ea93e76312f4"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "CC="${CC}" LD="${LD}" AR="${AR}""
+
+do_install () {
+ mkdir -p ${D}${bindir}
+ install -m 0755 ${S}/mklogfs ${D}${bindir}/mklogfs
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch
new file mode 100644
index 0000000..7b8eec7
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch
@@ -0,0 +1,52 @@
+From 575591caf1e8972f765885679b76787ef92de77b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 24 Apr 2017 04:24:10 -0400
+Subject: [PATCH] libntfs-3g/Makefile.am: fix install failed while host dir not exist
+
+While cross compiling, if the dir of "$(rootlibdir)" and "$(libdir)"
+(such as "/usr/lib64") do not exist on host system, the do_instal failed.
+-----------------------
+make[3]: Entering directory `tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/build/libntfs-3g'
+if [ ! "/usr/lib64" -ef "/usr/lib64" ]; then \
+ mv -f "tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/image//usr/lib64"/libntfs-3g.so* \
+ "tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/image//usr/lib64"; \
+fi
+mv:...are the same file
+-----------------------
+
+Use `=' rather than `-ef' to compare them, the cross compile does not
+care about host dir.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libntfs-3g/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libntfs-3g/Makefile.am b/libntfs-3g/Makefile.am
+index d6b150e..806109d 100644
+--- a/libntfs-3g/Makefile.am
++++ b/libntfs-3g/Makefile.am
+@@ -59,15 +59,15 @@ endif
+ # And create ldscript or symbolic link from /usr
+ install-exec-hook: install-rootlibLTLIBRARIES
+ if INSTALL_LIBRARY
+- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \
+ $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \
+ fi
+ if GENERATE_LDSCRIPT
+- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \
+ $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
+ fi
+ else
+- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \
+ $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
+ fi
+ endif
+--
+2.8.1
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
new file mode 100644
index 0000000..addb4d3
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support."
+HOMEPAGE = "http://www.ntfs-3g.org/"
+DEPENDS = "fuse libgcrypt"
+PROVIDES = "ntfsprogs ntfs-3g"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \
+ file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \
+"
+S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}"
+SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c"
+SRC_URI[sha256sum] = "3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5"
+
+UPSTREAM_CHECK_URI = "https://www.tuxera.com/community/open-source-ntfs-3g/"
+UPSTREAM_CHECK_REGEX = "ntfs-3g_ntfsprogs-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux"
+
+# required or it calls ldconfig at install step
+EXTRA_OEMAKE = "LDCONFIG=echo"
+
+PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g"
+
+FILES_ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs"
+RDEPENDS_ntfs-3g += "fuse"
+RRECOMMENDS_ntfs-3g = "util-linux-mount"
+
+FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*"
+FILES_libntfs-3g = "${libdir}/*${SOLIBS}"
+
+do_install_append() {
+ # Standard mount will execute the program /sbin/mount.TYPE
+ # when called. Add the symbolic to let mount could find ntfs.
+ ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs
+ rmdir ${D}${libdir}/ntfs-3g
+}
+
+# Satisfy the -dev runtime dependency
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
new file mode 100644
index 0000000..0a990ac
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
@@ -0,0 +1,46 @@
+From dd1af7541f18399bcdcb129a8b6618c18ebd9d63 Mon Sep 17 00:00:00 2001
+From: Tomasz Torcz <tomek@pipebreaker.pl>
+Date: Sat, 17 Mar 2018 12:56:04 +0100
+Subject: [PATCH] include <sys/sysmacros.h> for major()
+
+ Linux glibc ceased to include it in sys/types.h:
+https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ module/owlib/src/include/ow.h | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 86751bf7..d625d3f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -180,7 +180,7 @@ m4_include([src/scripts/m4/acx_pthread.m4])
+ # Checks for header files.
+ AC_HEADER_DIRENT
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
++AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/sysmacros.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
+ AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h])
+ AC_CHECK_HEADERS(sys/event.h sys/inotify.h)
+
+diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h
+index 9dbec5f3..0a310552 100644
+--- a/module/owlib/src/include/ow.h
++++ b/module/owlib/src/include/ow.h
+@@ -188,8 +188,12 @@
+ #include <netdb.h> /* for getaddrinfo */
+ #endif /* HAVE_NETDB_H */
+
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h> /* for major() */
++#endif /* HAVE_SYS_SYSMACROS_H */
++
+ #ifdef HAVE_SYS_MKDEV_H
+-#include <sys/mkdev.h> /* for major() */
++#include <sys/mkdev.h> /* for major() on Solaris */
+ #endif /* HAVE_SYS_MKDEV_H */
+
+ #include <stddef.h> // for offsetof()
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd
new file mode 100755
index 0000000..5d74d13
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+PATH=/sbin:/bin:/usr/bin
+
+DAEMON="owhttpd"
+
+test -f /usr/bin/${DAEMON} || exit 0
+
+if test -f /etc/default/${DAEMON} ; then
+. /etc/default/${DAEMON}
+else
+:
+fi
+
+if [ "$START_OWHTTPD" != "yes" ]
+then
+ exit 0
+fi
+
+
+startdaemon(){
+ echo -n "Starting ${DAEMON}: "
+ start-stop-daemon --start -x /usr/bin/${DAEMON} -- ${CMDLINE} --pid_file /var/run/${DAEMON}.pid
+ echo "done"
+}
+
+stopdaemon(){
+ echo -n "Stopping ${DAEMON}: "
+ start-stop-daemon --stop -p /var/run/${DAEMON}.pid
+ echo "done"
+}
+
+
+
+case "$1" in
+ start)
+ startdaemon
+ ;;
+ stop)
+ stopdaemon
+ ;;
+ force-reload)
+ stopdaemon
+ startdaemon
+ ;;
+ restart)
+ stopdaemon
+ startdaemon
+ ;;
+ reload)
+ stopdaemon
+ startdaemon
+ ;;
+ *)
+ echo "Usage: ${DAEMON} { start | stop | restart | reload }" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver
new file mode 100755
index 0000000..b69ea53
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+PATH=/sbin:/bin:/usr/bin
+
+DAEMON="owserver"
+
+test -f /usr/bin/${DAEMON} || exit 0
+
+if test -f /etc/default/${DAEMON} ; then
+. /etc/default/${DAEMON}
+else
+:
+fi
+
+if [ "$START_OWSERVER" != "yes" ]
+then
+ exit 0
+fi
+
+startdaemon(){
+ echo -n "Starting ${DAEMON}: "
+ start-stop-daemon --start -x /usr/bin/${DAEMON} -- ${CMDLINE} --pid_file /var/run/${DAEMON}.pid
+ echo "done"
+}
+
+stopdaemon(){
+ echo -n "Stopping ${DAEMON}: "
+ start-stop-daemon --stop -p /var/run/${DAEMON}.pid
+ echo "done"
+}
+
+
+
+case "$1" in
+ start)
+ startdaemon
+ ;;
+ stop)
+ stopdaemon
+ ;;
+ force-reload)
+ stopdaemon
+ startdaemon
+ ;;
+ restart)
+ stopdaemon
+ startdaemon
+ ;;
+ reload)
+ stopdaemon
+ startdaemon
+ ;;
+ *)
+ echo "Usage: ${DAEMON} { start | stop | restart | reload }" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb
new file mode 100644
index 0000000..50865cc
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb
@@ -0,0 +1,71 @@
+SUMMARY = "1-Wire file system"
+DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim"
+HOMEPAGE = "http://www.owfs.org/"
+SECTION = "console/network"
+
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12a64df1cc87275e940cab05ee75c37d \
+ file://COPYING.LIB;md5=16ff3ffebed582e19ea7a4f48ec77b42"
+
+DEPENDS = "fuse virtual/libusb0"
+# v3.2p2
+SRCREV = "93c1f36d9ac481075287da331d5184f590f8c0fa"
+SRC_URI = "git://github.com/owfs/owfs \
+ file://owhttpd \
+ file://owserver \
+ file://0001-include-sys-sysmacros.h-for-major.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep update-rc.d pkgconfig
+
+EXTRA_OECONF = " \
+ --with-fuseinclude=${STAGING_INCDIR} \
+ --with-fuselib=${STAGING_LIBDIR} \
+ --enable-owfs \
+ --enable-owhttpd \
+ --enable-w1 \
+ --disable-swig \
+ --disable-owtcl \
+ --disable-owphp \
+ --disable-owpython \
+ --disable-owperl \
+"
+
+do_install_prepend() {
+ install -d ${D}${sysconfdir}/default/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd
+ install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver
+}
+
+PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap"
+
+DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access"
+DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control"
+DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control"
+DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access"
+DESCRIPTION_libowcapi = "easy C-language 1-wire interface "
+DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION_owmon = "Monitor for owserver settings and statistics"
+DESCRIPTION_owtap = "Packet sniffer for the owserver protocol"
+
+FILES_owftpd = "${bindir}/owftpd"
+FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd"
+FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver"
+FILES_owshell = "${bindir}/owread ${bindir}/owwrite \
+ ${bindir}/owdir ${bindir}/owpresent \
+ ${bindir}/owget ${bindir}/owside"
+FILES_owmon = "${bindir}/owmon"
+FILES_owtap = "${bindir}/owtap"
+FILES_libowcapi = "${libdir}/libowcapi-*"
+FILES_libow = "${libdir}/libow-*"
+FILES_libownet = "${libdir}/libownet-*"
+
+INITSCRIPT_PACKAGES = "owhttpd owserver"
+INITSCRIPT_NAME_owserver = "owserver"
+INITSCRIPT_NAME_owhttpd = "owhttpd"
+INITSCRIPT_PARAMS_owserver = "defaults 20"
+INITSCRIPT_PARAMS_owhttpd = "defaults 21"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
new file mode 100644
index 0000000..f85977f
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
+HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = "fuse libmtp"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
+SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404"
+
+S = "${WORKDIR}/git"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch
new file mode 100644
index 0000000..6d60c9d
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch
@@ -0,0 +1,42 @@
+From 7a524d49b3d4459280f18942df2980603400ec52 Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Fri, 19 Jun 2015 11:54:44 +0900
+Subject: [PATCH] Using PKG_CHECK_MODULES to found headers and libraries of
+ smbclient
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+---
+ configure.in | 5 +++++
+ src/Makefile.am | 3 +++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 4c03409..8d22e71 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -119,6 +119,11 @@ AC_CHECK_LIB(smbclient, smbc_setOptionUseCCache, [], [
+ LIBS="$LIBS $SMBCLIENT_LIBS"
+ CFLAGS="$CFLAGS $SMBCLIENT_CFLAGS"
+
++dnl *****************************************************************
++dnl *** Check libsmbclient by pkgconfig to get cflags and ldflags ***
++dnl *****************************************************************
++PKG_CHECK_MODULES(SMBCLIENT, smbclient)
++
+ dnl ******************
+ dnl *** Final step ***
+ dnl ******************
+diff --git a/src/Makefile.am b/src/Makefile.am
+index ccaa8c3..6598317 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -17,3 +17,6 @@ smbnetfs_SOURCES = \
+ event.c event.h \
+ reconfigure.c reconfigure.h \
+ main.c
++
++smbnetfs_CFLAGS=${SMBCLIENT_CFLAGS}
++smbnetfs_LDFLAGS=${SMBCLIENT_LDFLAGS}
+--
+1.8.4.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
new file mode 100644
index 0000000..5527566
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
@@ -0,0 +1,11 @@
+Index: git/configure.in
+===================================================================
+--- git.orig/configure.ac 2014-06-18 16:06:16.040721349 +0000
++++ git/configure.ac 2014-07-18 07:49:17.085552256 +0000
+@@ -1,5 +1,5 @@
+ AC_INIT([SMBNetFS],[0.6.1])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_HEADERS([src/config.h])
+ AC_PROG_CC
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
new file mode 100644
index 0000000..c72936c
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "FUSE module for mounting an entire SMB/NMB network in a single directory"
+DESCRIPTION = "SMBNetFS is a Linux/FreeBSD filesystem that allow you to use \
+ samba/microsoft network in the same manner as the network \
+ neighborhood in Microsoft Windows. Please donate me to help \
+ in SMBNetFS development."
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+HOMEPAGE ="http://sourceforge.net/projects/smbnetfs"
+
+DEPENDS = "fuse samba"
+DEPENDS_append_libc-musl = " libexecinfo"
+
+# samba depends on libpam
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+inherit autotools gitpkgv pkgconfig
+
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "bc6b94b015fdaf7c4dab56ccb996eecea8bc4373"
+
+SRC_URI = "git://smbnetfs.git.sourceforge.net/gitroot/smbnetfs/smbnetfs;branch=master \
+ file://configure.patch \
+ file://Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libsecret] = "--with-libsecret=yes,--with-libsecret=no,libsecret"
+
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-musl = " -lexecinfo"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch
new file mode 100644
index 0000000..c434a03
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch
@@ -0,0 +1,32 @@
+From e3cd445a4ee44a16faa646d7b642d02eea62b1f8 Mon Sep 17 00:00:00 2001
+From: Zoltan Kuscsik <zoltan.kuscsik@linaro.org>
+Date: Fri, 1 Jul 2016 09:30:31 +0200
+Subject: [PATCH] Makefile: fix path for sshfs.1
+
+Fix source path when build directory differs
+from the source dir.
+
+Upstream-Status: Accepted
+
+https://github.com/libfuse/sshfs/pull/24
+
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f003bae..3d8f9cb 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -24,7 +24,7 @@ sshfs.1: sshfs.1.in
+ $(AM_V_GEN)sed \
+ -e 's,__IDMAP_DEFAULT__,$(IDMAP_DEFAULT),g' \
+ -e 's,__UNMOUNT_COMMAND__,$(UNMOUNT_COMMAND),g' \
+- <sshfs.1.in >sshfs.1.tmp || exit 1; \
++ <$(srcdir)/sshfs.1.in >sshfs.1.tmp || exit 1; \
+ mv sshfs.1.tmp sshfs.1
+
+ if SSH_NODELAY_SO
+--
+1.9.1
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb
new file mode 100644
index 0000000..64ccdac
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb
@@ -0,0 +1,16 @@
+SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE"
+AUTHOR = "Miklos Szeredi <miklos@szeredi.hu>"
+HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+DEPENDS = "glib-2.0 fuse"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/libfuse/sshfs;tag=b2fa7593586b141298e6159f40f521d2b0f4f894 \
+ file://0001-Makefile-fix-path-for-sshfs.1.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${libdir}/sshnodelay.so"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch
new file mode 100644
index 0000000..bf363ca
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch
@@ -0,0 +1,32 @@
+From 449cec34c123b86b792627553c6ec7471d2ee7ed Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 30 Jun 2017 14:46:51 +0800
+Subject: [PATCH] support cross compiling
+
+Do not override OE CMAKE variables
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,9 +10,9 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
+ ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
+
+ # Select flags.
+-SET(CMAKE_C_FLAGS "-pipe -W -Wall -DFORTIFY_SOURCE=2")
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -DFORTIFY_SOURCE=2")
+ SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+-SET(CMAKE_C_FLAGS_RELEASE "-O2")
++SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
+ SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG")
+
+ if (UNIX AND APPLE)
+--
+2.8.1
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch
new file mode 100644
index 0000000..8f991cd
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch
@@ -0,0 +1,62 @@
+From 10411fa8658621822ae394160daffaced4a4cd7f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jul 2017 23:07:29 -0700
+Subject: [PATCH] unionfs: Define IOCPARM_LEN if undefined
+
+musl does not have sysctl.h which defines this
+for glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unionfs.c | 8 --------
+ src/unionfs.h | 15 +++++++++++++++
+ 2 files changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/src/unionfs.c b/src/unionfs.c
+index a34d34e..51684a7 100644
+--- a/src/unionfs.c
++++ b/src/unionfs.c
+@@ -21,14 +21,6 @@
+ #include "opts.h"
+ #include "usyslog.h"
+
+-#ifndef _IOC_SIZE
+-#ifdef IOCPARM_LEN
+-#define _IOC_SIZE(x) IOCPARM_LEN(x)
+-#else
+-#error "No mechanism for determining ioctl length found."
+-#endif
+-#endif
+-
+ static struct fuse_opt unionfs_opts[] = {
+ FUSE_OPT_KEY("chroot=%s,", KEY_CHROOT),
+ FUSE_OPT_KEY("cow", KEY_COW),
+diff --git a/src/unionfs.h b/src/unionfs.h
+index 8f5e0bf..b02de5a 100644
+--- a/src/unionfs.h
++++ b/src/unionfs.h
+@@ -17,6 +17,21 @@
+ #define FUSE_META_FILE ".fuse_hidden"
+ #define FUSE_META_LENGTH 12
+
++#ifndef IOCPARM_MASK
++#define IOCPARM_MASK 0x1FFF
++#endif
++#ifndef IOCPARM_LEN
++#define IOCPARM_LEN(a) (((a) >> 16) & IOCPARM_MASK)
++#endif
++
++#ifndef _IOC_SIZE
++#ifdef IOCPARM_LEN
++#define _IOC_SIZE(x) IOCPARM_LEN(x)
++#else
++#error "No mechanism for determining ioctl length found."
++#endif
++#endif
++
+ // file access protection mask
+ #define S_PROT_MASK (S_ISUID| S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
+
+--
+2.13.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb
new file mode 100644
index 0000000..6bedf16
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A FUSE based implemention of unionfs"
+HOMEPAGE = "https://github.com/rpodgorny/unionfs-fuse"
+SECTION = "console/network"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32 \
+ file://LICENSE;md5=7e5a37fce17307066eec6b23546da3b3 \
+"
+
+SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master \
+ file://0001-support-cross-compiling.patch \
+ file://0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch \
+ "
+SRCREV = "c8d23a9a75f1a62988593671839e8a168a79f3e5"
+
+DEPENDS = "fuse"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch
new file mode 100644
index 0000000..df202c8
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch
@@ -0,0 +1,30 @@
+From 848717da4a28d33f8aa8f889377e61e6b1b8ae67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jul 2017 18:29:52 -0700
+Subject: [PATCH] define loff_t if not already defined
+
+Helps to build with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ yaffs_guts.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/yaffs_guts.h b/yaffs_guts.h
+index 6bcf12d..4af17ce 100644
+--- a/yaffs_guts.h
++++ b/yaffs_guts.h
+@@ -18,6 +18,10 @@
+
+ #include "yportenv.h"
+
++#ifndef loff_t
++#define loff_t off_t
++#endif
++
+ #define YAFFS_OK 1
+ #define YAFFS_FAIL 0
+
+--
+2.13.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch
new file mode 100644
index 0000000..bb21899
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/utils/Makefile b/utils/Makefile
+index 710ebbf..6259893 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -57,10 +57,10 @@ $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) : %.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ mkyaffsimage: $(MKYAFFSIMAGEOBJS) $(COMMONOBJS)
+- $(CC) -o $@ $^
++ $(CC) $(LDFLAGS) -o $@ $^
+
+ mkyaffs2image: $(MKYAFFS2IMAGEOBJS) $(COMMONOBJS)
+- $(CC) -o $@ $^
++ $(CC) $(LDFLAGS) -o $@ $^
+
+
+ clean:
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
new file mode 100644
index 0000000..6095e27
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Yet Another Flash File System"
+DESCRIPTION = "Tools for managing 'yaffs2' file systems."
+
+SECTION = "base"
+HOMEPAGE = "http://www.yaffs.net"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=11;endline=13;md5=5f5464f9b3e981ca574e65b00e438561 \
+ file://utils/mkyaffsimage.c;beginline=10;endline=12;md5=5f5464f9b3e981ca574e65b00e438561 \
+ "
+
+PV = "0.0+git${SRCPV}"
+
+DEPENDS = "mtd-utils"
+
+# Source is the HEAD of master branch at the time of writing this recipe
+SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master \
+ file://makefile-add-ldflags.patch \
+ file://0001-define-loff_t-if-not-already-defined.patch \
+ "
+
+SRCREV = "3439fa4e60dd9799766b2c101f799ed9e565b632"
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+CFLAGS_append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES"
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_compile() {
+ cd utils && oe_runmake
+}
+
+INSTALL_FILES = "mkyaffsimage \
+ mkyaffs2image \
+ "
+do_install() {
+ install -d ${D}${sbindir}/
+ for i in ${INSTALL_FILES}; do
+ install -m 0755 utils/$i ${D}${sbindir}/
+ done
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch
new file mode 100644
index 0000000..577dbb5
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch
@@ -0,0 +1,28 @@
+From 2182c423c6cd235c052e6c420203f24ec9bcd6ab Mon Sep 17 00:00:00 2001
+From: Lu Chong <Chong.Lu@windriver.com>
+Date: Wed, 30 Oct 2013 15:27:00 +0800
+Subject: [PATCH] fuse: fix the return value of "--help" option
+
+Upstream-Status: Pending
+
+Signed-off-by: Lu Chong <Chong.Lu@windriver.com>
+---
+ util/fusermount.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util/fusermount.c b/util/fusermount.c
+index b2e87d9..70d7c75 100644
+--- a/util/fusermount.c
++++ b/util/fusermount.c
+@@ -1168,7 +1168,7 @@ static void usage(void)
+ " -q quiet\n"
+ " -z lazy unmount\n",
+ progname);
+- exit(1);
++ exit(0);
+ }
+
+ static void show_version(void)
+--
+1.7.9.5
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch
new file mode 100644
index 0000000..050d114
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch
@@ -0,0 +1,33 @@
+fuse: add aarch64 support
+
+u64/u32 is not defined in sys/types.h, include linux/types.h like
+the kernel version of fuse.h does. Patch sent to upstream mailing list.
+
+Upstream-Status: Submitted
+Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ include/fuse_kernel.h | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h
+index c632b58..e804278 100644
+--- a/include/fuse_kernel.h
++++ b/include/fuse_kernel.h
+@@ -88,12 +88,7 @@
+ #ifndef _LINUX_FUSE_H
+ #define _LINUX_FUSE_H
+
+-#include <sys/types.h>
+-#define __u64 uint64_t
+-#define __s64 int64_t
+-#define __u32 uint32_t
+-#define __s32 int32_t
+-#define __u16 uint16_t
++#include <linux/types.h>
+
+ /*
+ * Version negotiation:
+--
+1.8.1.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf
new file mode 100644
index 0000000..a517c48
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf
@@ -0,0 +1 @@
+fuse
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch
new file mode 100644
index 0000000..d47f692
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch
@@ -0,0 +1,92 @@
+fuse: Fix linking issues with gold linker
+
+fuse has problems when linking with gold since it uses version
+scripts in a way thats so perticular to bfd ld
+
+/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstro
+error: symbol __fuse_exited has undefined version
+| collect2: ld returned 1 exit status
+| make[1]: *** [libfuse.la] Error 1
+| make[1]: *** Waiting for unfinished jobs....
+
+For more details
+
+http://blog.flameeyes.eu/2011/06/01/gold-readiness-obstacle-2-base-versioning
+http://sources.redhat.com/bugzilla/show_bug.cgi?id=10861
+http://comments.gmane.org/gmane.comp.file-systems.fuse.devel/9524
+http://www.airs.com/blog/archives/300
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ lib/fuse.c | 10 +++++-----
+ lib/fuse_mt.c | 2 +-
+ lib/fuse_versionscript | 3 +++
+ lib/helper.c | 6 +++---
+ 4 files changed, 12 insertions(+), 9 deletions(-)
+
+diff --git a/lib/fuse.c b/lib/fuse.c
+index 067d0dc..6d27711 100644
+--- a/lib/fuse.c
++++ b/lib/fuse.c
+@@ -4873,11 +4873,11 @@ struct fuse *fuse_new_compat1(int fd, int flags,
+ 11);
+ }
+
+-FUSE_SYMVER(".symver fuse_exited,__fuse_exited@");
+-FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@");
+-FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@");
+-FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@");
+-FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@");
++FUSE_SYMVER(".symver fuse_exited,__fuse_exited@FUSE_UNVERSIONED");
++FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED");
++FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED");
++FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED");
++FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED");
+ FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2");
+
+ #endif /* __FreeBSD__ || __NetBSD__ */
+diff --git a/lib/fuse_mt.c b/lib/fuse_mt.c
+index f6dbe71..fd5ac23 100644
+--- a/lib/fuse_mt.c
++++ b/lib/fuse_mt.c
+@@ -119,4 +119,4 @@ int fuse_loop_mt(struct fuse *f)
+ return res;
+ }
+
+-FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@");
++FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED");
+diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript
+index 8d91887..de16ab2 100644
+--- a/lib/fuse_versionscript
++++ b/lib/fuse_versionscript
+@@ -1,3 +1,6 @@
++FUSE_UNVERSIONED {
++};
++
+ FUSE_2.2 {
+ global:
+ fuse_destroy;
+diff --git a/lib/helper.c b/lib/helper.c
+index b644012..c5349bf 100644
+--- a/lib/helper.c
++++ b/lib/helper.c
+@@ -436,10 +436,10 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[])
+ return fuse_mount_compat22(mountpoint, NULL);
+ }
+
+-FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@");
++FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED");
+ FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2");
+-FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@");
+-FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@");
++FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@FUSE_UNVERSIONED");
++FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED");
+ FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2");
+
+ #endif /* __FreeBSD__ || __NetBSD__ */
+--
+1.8.1.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb
new file mode 100644
index 0000000..caa75c7
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Implementation of a fully functional filesystem in a userspace program"
+DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \
+ programs to export a virtual filesystem to the Linux kernel. FUSE \
+ also aims to provide a secure method for non privileged users to \
+ create and mount their own filesystem implementations. \
+ "
+HOMEPAGE = "https://github.com/libfuse/libfuse"
+SECTION = "libs"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
+ file://gold-unversioned-symbol.patch \
+ file://aarch64.patch \
+ file://0001-fuse-fix-the-return-value-of-help-option.patch \
+ file://fuse.conf \
+"
+SRC_URI[md5sum] = "f365e848a82504edb0b7a33df790ca78"
+SRC_URI[sha256sum] = "5e84f81d8dd527ea74f39b6bc001c874c02bad6871d7a9b0c14efb57430eafe3"
+
+UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
+UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>2(\.\d+)+).tar.gz"
+
+inherit autotools pkgconfig update-rc.d systemd
+
+INITSCRIPT_NAME = "fuse"
+INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ."
+
+SYSTEMD_SERVICE_${PN} = ""
+
+DEPENDS = "gettext-native"
+
+PACKAGES =+ "fuse-utils libulockmgr libulockmgr-dev"
+
+RPROVIDES_${PN}-dbg += "fuse-utils-dbg libulockmgr-dbg"
+
+RRECOMMENDS_${PN}_class-target = "kernel-module-fuse libulockmgr fuse-utils"
+
+FILES_${PN} += "${libdir}/libfuse.so.*"
+FILES_${PN}-dev += "${libdir}/libfuse*.la"
+
+FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
+FILES_libulockmgr-dev += "${libdir}/libulock*.la"
+
+# Forbid auto-renaming to libfuse-utils
+FILES_fuse-utils = "${bindir} ${base_sbindir}"
+DEBIAN_NOAUTONAME_fuse-utils = "1"
+DEBIAN_NOAUTONAME_${PN}-dbg = "1"
+
+do_configure_prepend() {
+ # Make this explicit so overriding base_sbindir propagates properly.
+ export MOUNT_FUSE_PATH="${base_sbindir}"
+}
+
+do_install_append() {
+ rm -rf ${D}${base_prefix}/dev
+
+ # systemd class remove the sysv_initddir only if systemd_system_unitdir
+ # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
+ rm -rf ${D}${sysconfdir}/init.d/
+ fi
+
+ # Install systemd related configuration file
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/modules-load.d
+ install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb b/meta/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
new file mode 100644
index 0000000..cc97dea
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
+HOMEAPAGE = "http://icculus.org/physfs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2668e2fb051c3e564198e146a9a2d9f0"
+DEPENDS = "readline zlib"
+
+inherit cmake
+
+PE = "1"
+
+SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
+SRC_URI[md5sum] = "359f102bcbd62accf84ef32f4863255d"
+SRC_URI[sha256sum] = "b77b9f853168d9636a44f75fca372b363106f52d789d18a2f776397bf117f2f1"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch
new file mode 100644
index 0000000..c832696
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch
@@ -0,0 +1,30 @@
+From 13a60c631d7cf6c7e1926473d8069795c0def9b6 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 19 Jun 2014 15:09:56 +0100
+Subject: [PATCH] aufs-util: add tool concept to Makefile for cross compiling
+ purpose
+
+In a cross compilation environment, c2sh, c2tmac and ver need to be created first.
+Add a tools target to Makefile to allow for this.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index dbbe43d..aff969e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -152,7 +152,7 @@ aufs.5: aufs.in.5 c2tmac
+ chmod a-w $@
+
+ c2sh c2tmac ver: CC = ${HOSTCC}
+-.INTERMEDIATE: c2sh c2tmac ver
++tools: c2sh c2tmac ver
+
+ install_sbin: File = auibusy aumvdown auplink mount.aufs umount.aufs
+ ifeq (${Glibc},no)
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch
new file mode 100644
index 0000000..b40822c
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch
@@ -0,0 +1,37 @@
+From 9d5e7eff4ae906f1ea6e6527080fded0b595fbd4 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@windriver.com>
+Date: Tue, 9 Apr 2013 18:50:34 -0700
+Subject: [PATCH] aufs-util: don't strip executables
+
+By default, aufs-util strips its binaries. This produces QA warnings
+as follows:
+
+ WARNING: File '/sbin/mount.aufs' from aufs-util was already stripped, this will prevent future debugging!
+ WARNING: File '/sbin/auplink' from aufs-util was already stripped, this will prevent future debugging!
+ WARNING: File '/sbin/umount.aufs' from aufs-util was already stripped, this will prevent future debugging!
+ WARNING: File '/sbin/auibusy' from aufs-util was already stripped, this will prevent future debugging!
+ WARNING: File '/usr/lib/libau.so.2.6' from aufs-util was already stripped, this will prevent future debugging!
+
+To prevent this, we remove -s from LDFLAGS.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 54f8d97..dbbe43d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -118,7 +118,7 @@ clean:
+ ver_test: ver
+ ./ver
+
+-${Bin}: override LDFLAGS += -static -s
++${Bin}: override LDFLAGS += -static
+ ${Bin}: LDLIBS = -L. -lautil
+ ${BinObj}: %.o: %.c ${LibUtilHdr} ${LibUtil}
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
new file mode 100644
index 0000000..6d71fc0
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Tools for managing AUFS mounts"
+SECTION = "base"
+HOMEPAGE = "http://aufs.sourceforge.net/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+DEPENDS = "coreutils-native aufs-util-native"
+DEPENDS_class-native = ""
+
+SRCREV = "8f35db59ef83078f87879ec2828e0bb45719e0ef"
+SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.9 \
+ https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.9/include/uapi/linux/aufs_type.h;name=aufs_type \
+ file://aufs-util-don-t-strip-executables.patch \
+ file://aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch \
+"
+SRC_URI[aufs_type.md5sum] = "b37129ef0703de72a852db7e48bdedc6"
+SRC_URI[aufs_type.sha256sum] = "7ff6566adb9c7a3b6862cdc85a690ab546f1d0bc81ddd595fd663c0a69031683"
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+PV = "4.9+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+export HOSTCC = "${BUILD_CC}"
+do_configure_prepend() {
+ # Replace sbin,bin paths with bitbake environment
+ sed -i -e 's;install_sbin: Tgt = ${DESTDIR}/sbin;install_sbin: Tgt = ${DESTDIR}/${base_sbindir};' \
+ -e 's;install_ubin: Tgt = ${DESTDIR}/usr/sbin;install_sbin: Tgt = ${DESTDIR}/${bindir};' \
+ ${S}/Makefile
+}
+
+do_configure_append () {
+ install -d ${S}/include/linux/
+ cp ${WORKDIR}/aufs_type.h ${S}/include/linux/
+ sed -i -e 's;__user;;' ${S}/include/linux/aufs_type.h
+}
+
+do_configure_append_class-target () {
+ for i in ver c2sh c2tmac; do
+ cp ${STAGING_BINDIR_NATIVE}/aufs-util-${PV}/$i ${B}
+ done
+}
+
+do_compile () {
+ oe_runmake CPPFLAGS="-I${S}/include -I${S}/libau"
+}
+
+do_compile_class-native () {
+ oe_runmake tools CPPFLAGS="-I${S}/include -I${S}/libau" CC="${BUILD_CC}"
+}
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install_sbin install_ubin install_etc
+}
+
+do_install_class-native () {
+ install -d ${D}${bindir}/aufs-util-${PV}
+ for i in ver c2sh c2tmac; do
+ install -m 755 $i ${D}${bindir}/aufs-util-${PV}/$i
+ done
+}
+
+RRECOMMENDS_${PN} += "kernel-module-aufs"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb
new file mode 100644
index 0000000..440f336
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "utilities to create, check, label and dump exFAT filesystem"
+DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \
+This package provides tools to create, check and label the filesystem. It \
+contains \
+ - dumpexfat to dump properties of the filesystem \
+ - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \
+ - exfatlabel to label a exFAT filesystem \
+ - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \
+"
+HOMEPAGE = "http://code.google.com/p/exfat/"
+SECTION = "universe/otherosfs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
+
+DEPENDS = "virtual/libc"
+
+inherit pkgconfig autotools
+
+SRC_URI[md5sum] = "f4e564450aa8159e26dde2869563d242"
+SRC_URI[sha256sum] = "80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
new file mode 100644
index 0000000..cf844bf
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
@@ -0,0 +1,32 @@
+From 3b3c6e6376babcd9a0b0db312b0e1e3bb3ab833e Mon Sep 17 00:00:00 2001
+From: Sven Ebenfeld <sven.ebenfeld@vaillant.de>
+Date: Wed, 26 Nov 2014 10:36:44 +0100
+Subject: [PATCH] Remove AC_CHECK_FILE for cross compilation
+
+---
+ configure.ac | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0111e72..8c286d4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version,
+ [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
+ [Minor version for f2fs-tools])
+
+-AC_CHECK_FILE(.git,
+- AC_DEFINE([F2FS_TOOLS_DATE],
+- "m4_bpatsubst(f2fs_tools_gitdate,
+- [\([0-9-]*\)\(\w\|\W\)*], [\1])",
+- [f2fs-tools date based on Git commits]),
+ AC_DEFINE([F2FS_TOOLS_DATE],
+ "f2fs_tools_date",
+- [f2fs-tools date based on Source releases]))
++ [f2fs-tools date based on Source releases])
+
+ AC_CONFIG_SRCDIR([config.h.in])
+ AC_CONFIG_HEADER([config.h])
+--
+1.8.1.rc3
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch
new file mode 100644
index 0000000..0a3261b
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch
@@ -0,0 +1,29 @@
+From 0fb9d6bc25e903f7831a38468845ea143fb5afd5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 18:49:03 -0700
+Subject: [PATCH] f2fs-tools: Use srcdir prefix to denote include path
+
+This helps builds when builddir != srcdir
+
+Upstream-Status: Submitted [https://lkml.org/lkml/2018/8/12/1]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/sg_write_buffer/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/sg_write_buffer/Makefile.am b/tools/sg_write_buffer/Makefile.am
+index 922c328..19c438d 100644
+--- a/tools/sg_write_buffer/Makefile.am
++++ b/tools/sg_write_buffer/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Makefile.am
+
+ if LINUX
+-AM_CPPFLAGS = -I./include
++AM_CPPFLAGS = -I$(srcdir)/include
+ AM_CFLAGS = -Wall
+ sbin_PROGRAMS = sg_write_buffer
+ sg_write_buffer_SOURCES = sg_write_buffer.c \
+--
+2.18.0
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb
new file mode 100644
index 0000000..2240049
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
+HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
+
+# to provide libuuid
+DEPENDS = "util-linux"
+
+# v1.11.0
+SRCREV = "b98fab3666e498c2e27ad9dcda6874c9b683f06b"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
+ file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \
+ file://0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch \
+ "
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
new file mode 100644
index 0000000..355e93a
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
@@ -0,0 +1,12 @@
+Fix compilation with GCC6
+
+--- a/src/device-info.c 2013-12-09 14:59:27.000000000 +0100
++++ b/src/device-info.c 2017-03-13 07:06:25.506666680 +0100
+@@ -3,6 +3,7 @@
+ * contains code excerpts from udisks v1.0.4
+ ************************************************************************** */
+
++#include <sys/stat.h>
+ #include "device-info.h"
+
+ static char *
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch
new file mode 100644
index 0000000..f014a0f
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch
@@ -0,0 +1,32 @@
+From 80b087193698632e525b90d45b4a49e61e343e1c Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Thu, 13 Jul 2017 21:30:35 +0200
+Subject: [PATCH] etc: Makefile.am: Use systemd_unitdir instead of libdir
+
+Proper directory for installing systemd services is systemd_unitdir, not
+libdir.
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+---
+ etc/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/etc/Makefile.am b/etc/Makefile.am
+index 9b6e7522c20f..6d663241a72f 100644
+--- a/etc/Makefile.am
++++ b/etc/Makefile.am
+@@ -16,8 +16,8 @@ if ADD_SYSTEMD
+ test -f $(DESTDIR)/$(sysconfdir)/conf.d/devmon || $(INSTALL_DATA) \
+ $(srcdir)/systemd/devmon \
+ $(DESTDIR)/$(sysconfdir)/conf.d/devmon
+- test -d $(DESTDIR)/$(libdir)/systemd/system || \
+- mkdir -p -- $(DESTDIR)/$(libdir)/systemd/system
++ test -d $(DESTDIR)/$(systemd_unitdir)/system || \
++ mkdir -p -- $(DESTDIR)/$(systemd_unitdir)/system
+ $(INSTALL_DATA) $(srcdir)/systemd/devmon@.service \
+- $(DESTDIR)/$(libdir)/systemd/system/devmon@.service
++ $(DESTDIR)/$(systemd_unitdir)/system/devmon@.service
+ endif
+--
+2.11.0
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
new file mode 100644
index 0000000..60f84f8
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A command line Linux program which mounts and unmounts removable devices"
+HOMEPAGE = "http://ignorantguru.github.io/udevil/"
+
+DEPENDS = "glib-2.0 \
+ glib-2.0-native \
+ intltool-native \
+ udev \
+"
+RDEPENDS_${PN} = "udev bash"
+
+LICENSE = "GPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit autotools systemd
+
+SRC_URI = "https://github.com/IgnorantGuru/udevil/raw/pkg/${PV}/udevil-${PV}.tar.xz \
+ file://0001-udevil-0.4.3-fix-compile-with-gcc6.patch \
+ file://0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch \
+"
+
+SRC_URI[md5sum] = "dc1c489b603a0500a04dc7e1805ac1d9"
+SRC_URI[sha256sum] = "ce8c51fd4d589cda7be56e75b42188deeb258c66fc911a9b3a70a3945c157739"
+
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+
+SYSTEMD_SERVICE_${PN} = "devmon@.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch
new file mode 100644
index 0000000..e761db3
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch
@@ -0,0 +1,205 @@
+remove install as user
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ include/buildmacros | 2 +-
+ include/install-sh | 95 ++++++++---------------------------------------------
+ 2 files changed, 14 insertions(+), 83 deletions(-)
+
+diff --git a/include/buildmacros b/include/buildmacros
+index 7a01880..0840d55 100644
+--- a/include/buildmacros
++++ b/include/buildmacros
+@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \
+ $(LFILES:.l=.o) \
+ $(YFILES:%.y=%.tab.o)
+
+-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
++INSTALL = $(TOPDIR)/install-sh
+
+ IMAGES_DIR = $(TOPDIR)/all-images
+ DIST_DIR = $(TOPDIR)/dist
+diff --git a/include/install-sh b/include/install-sh
+index c952a71..b9d66f7 100755
+--- a/include/install-sh
++++ b/include/install-sh
+@@ -24,11 +24,11 @@
+ # set set | yes yes
+ #
+ _usage() {
+- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
+- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
+- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
++ echo "Usage: $prog [-m mode] -d directory"
++ echo "or $prog [-m mode] file directory/file"
++ echo "or $prog [-m mode] file [file ...] directory"
+ echo "or $prog -S file target (creates \"target\" symlink)"
+- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory"
++ echo "or $prog -T lt_arg [-m mode] libtool.lai directory"
+ echo ""
+ echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
+ echo "behaviour of this command - see comments in the script."
+@@ -38,32 +38,6 @@ _usage() {
+ exit 1
+ }
+
+-_chown ()
+-{
+- _st=255
+- if [ $# -eq 3 ] ; then
+- chown $1:$2 $3
+- _st=$?
+- if [ $_st -ne 0 ] ; then
+- if [ $REAL_UID != '0' ] ; then
+- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then
+- echo '==============================================='
+- echo Ownership of files under ${DIST_ROOT:-/}
+- echo cannot be changed
+- echo '==============================================='
+- if [ -n "$DIST_ROOT" ] ; then
+- touch $DIST_ROOT/.chown.quiet
+- fi
+- fi
+- _st=0
+- fi
+- fi
+- fi
+-
+- return $_st
+-}
+-
+-
+ _manifest ()
+ {
+ echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
+@@ -77,9 +51,6 @@ Sflag=false
+ Tflag=false
+ DIRMODE=755
+ FILEMODE=644
+-OWNER=`id -u`
+-GROUP=`id -g`
+-REAL_UID=$OWNER
+
+ # default is to install and don't append manifest
+ INSTALL=true
+@@ -94,24 +65,16 @@ MANIFEST=:
+
+ if $INSTALL
+ then
+- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
++ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod;
+ else
+- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
++ CP=true; LN=true; MKDIR=true; CHMOD=true;
+ fi
+
+-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
+-
+-while getopts "Dcm:d:S:o:g:T:" c $*
++while getopts "Dcm:d:S:T:" c $*
+ do
+ case $c in
+ c)
+ ;;
+- g)
+- GROUP=$OPTARG
+- ;;
+- o)
+- OWNER=$OPTARG
+- ;;
+ m)
+ DIRMODE=`expr $OPTARG`
+ FILEMODE=$DIRMODE
+@@ -146,18 +109,7 @@ then
+ # first usage
+ #
+ $MKDIR -p $dir
+- status=$?
+- if [ $status -eq 0 ]
+- then
+- $CHMOD $DIRMODE $dir
+- status=$?
+- fi
+- if [ $status -eq 0 ]
+- then
+- $CHOWN $OWNER $GROUP $dir
+- status=$?
+- fi
+- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
++ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT}
+ elif $Sflag
+ then
+ #
+@@ -203,7 +155,7 @@ then
+ install_name=$target/$solib
+ $CP $solib $install_name
+ status=$?
+- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT}
++ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT}
+ break
+ fi
+ done
+@@ -254,7 +206,7 @@ then
+ install_name=$target/$old_library
+ $CP $old_library $install_name
+ status=$?
+- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT}
++ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT}
+ ;;
+ *)
+ echo "$prog: -T $lt_install invalid"
+@@ -267,7 +219,6 @@ then
+ if [ $status -eq 0 ]
+ then
+ $CHMOD $FILEMODE $install_name
+- $CHOWN $OWNER $GROUP $install_name
+ fi
+ ;;
+ esac
+@@ -292,23 +243,10 @@ else
+ then
+ if [ -f $dir/$f ]
+ then
+- $CHMOD $FILEMODE $dir/$f
+- status=$?
+- if [ $status -eq 0 ]
+- then
+- $CHOWN $OWNER $GROUP $dir/$f
+- status=$?
+- fi
+- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f
+ else
+ $CHMOD $FILEMODE $dir
+- status=$?
+- if [ $status -eq 0 ]
+- then
+- $CHOWN $OWNER $GROUP $dir
+- status=$?
+- fi
+- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
++ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT}
+ fi
+ fi
+ else
+@@ -334,14 +272,7 @@ else
+ status=$?
+ if [ $status -eq 0 ]
+ then
+- $CHMOD $FILEMODE $dir/$f
+- status=$?
+- if [ $status -eq 0 ]
+- then
+- $CHOWN $OWNER $GROUP $dir/$f
+- status=$?
+- fi
+- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f
+ fi
+ [ $status -ne 0 ] && break
+ done
+--
+1.8.1.2
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb
new file mode 100644
index 0000000..54ab30c
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb
@@ -0,0 +1,40 @@
+SUMMARY = "XFS Filesystem Dump Utility"
+DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \
+ number of other utilities for administering XFS filesystems.\
+ xfsdump examines files in a filesystem, determines which \
+ need to be backed up, and copies those files to a \
+ specified disk, tape or other storage medium."
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
+DEPENDS = "xfsprogs attr"
+
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \
+ file://remove-install-as-user.patch \
+ "
+SRC_URI[md5sum] = "84d3bc287b4a2bb5d16b2320a47049a7"
+SRC_URI[sha256sum] = "ed14e67ae5b273c2698e767b43a46f033d361e540fe13feaaf9b110ee0edc585"
+
+inherit autotools-brokensep
+
+PARALLEL_MAKE = ""
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
+
+CFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1"
+
+do_configure () {
+ export DEBUG="-DNDEBUG"
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ oe_runconf
+}
+
+do_install () {
+ export DIST_ROOT=${D}
+ oe_runmake install
+ oe_runmake install-dev
+}
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
new file mode 100644
index 0000000..75b227a
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
@@ -0,0 +1,52 @@
+From f41ef1f06d428c81fcdef73d896dfc7ceda1809c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Aug 2018 04:59:39 +0000
+Subject: [PATCH] Check for MAP_SYNC in sys/mman.h
+
+Not all arches have wired MAP_SYNC e.g. mips
+which have conflicts with definition, so checking
+a generic file is going to mis-configure xfsprogs
+for such arches.
+
+libc now has added the relevant macros to
+sys/mman.h, and returns the right values for arches
+where its implemented and nothing for others
+unlike asm-generic/mman.h which only checks
+for kernel headers and ignored arches
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/linux.h | 3 +--
+ m4/package_libcdev.m4 | 3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/include/linux.h b/include/linux.h
+index 1998941..7e5c9ab 100644
+--- a/include/linux.h
++++ b/include/linux.h
+@@ -331,8 +331,7 @@ fsmap_advance(
+ #define MAP_SYNC 0
+ #define MAP_SHARED_VALIDATE 0
+ #else
+-#include <asm-generic/mman.h>
+-#include <asm-generic/mman-common.h>
++#include <sys/mman.h>
+ #endif /* HAVE_MAP_SYNC */
+
+ #endif /* __XFS_LINUX_H__ */
+diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
+index 0a6b514..2b47d2f 100644
+--- a/m4/package_libcdev.m4
++++ b/m4/package_libcdev.m4
+@@ -335,8 +335,7 @@ AC_DEFUN([AC_HAVE_STATFS_FLAGS],
+ AC_DEFUN([AC_HAVE_MAP_SYNC],
+ [ AC_MSG_CHECKING([for MAP_SYNC])
+ AC_TRY_COMPILE([
+-#include <asm-generic/mman.h>
+-#include <asm-generic/mman-common.h>
++#include <sys/mman.h>
+ ], [
+ int flags = MAP_SYNC | MAP_SHARED_VALIDATE;
+ ], have_map_sync=yes
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
new file mode 100644
index 0000000..231da80
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
@@ -0,0 +1,79 @@
+From f8a22f16c03e51d3c779b12f37d362faaa0ecf31 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Jan 2018 21:28:53 -0800
+Subject: [PATCH] build: Check for sync_file_range libc function
+
+glibc 2.27 now has sync_file_range()
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/builddefs.in | 1 +
+ io/Makefile | 5 ++++-
+ io/io.h | 2 +-
+ io/sync_file_range.c | 3 +++
+ 4 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/include/builddefs.in b/include/builddefs.in
+index b895949..a388c83 100644
+--- a/include/builddefs.in
++++ b/include/builddefs.in
+@@ -95,6 +95,7 @@ HAVE_FIEMAP = @have_fiemap@
+ HAVE_PREADV = @have_preadv@
+ HAVE_PWRITEV2 = @have_pwritev2@
+ HAVE_COPY_FILE_RANGE = @have_copy_file_range@
++HAVE_NR_COPY_FILE_RANGE = @have_nr_copy_file_range@
+ HAVE_SYNC_FILE_RANGE = @have_sync_file_range@
+ HAVE_SYNCFS = @have_syncfs@
+ HAVE_READDIR = @have_readdir@
+diff --git a/io/Makefile b/io/Makefile
+index 00ede48..dd001b0 100644
+--- a/io/Makefile
++++ b/io/Makefile
+@@ -60,10 +60,13 @@ CFILES += inject.c resblks.c
+ LCFLAGS += -DHAVE_INJECT -DHAVE_RESBLKS
+ endif
+
+-ifeq ($(HAVE_COPY_FILE_RANGE),yes)
++ifeq ($(HAVE_NR_COPY_FILE_RANGE),yes)
+ CFILES += copy_file_range.c
++LCFLAGS += -DHAVE_NR_COPY_FILE_RANGE
++ifeq ($(HAVE_COPY_FILE_RANGE),yes)
+ LCFLAGS += -DHAVE_COPY_FILE_RANGE
+ endif
++endif
+
+ ifeq ($(HAVE_SYNC_FILE_RANGE),yes)
+ CFILES += sync_file_range.c
+diff --git a/io/io.h b/io/io.h
+index e1f3d95..fe2e6a2 100644
+--- a/io/io.h
++++ b/io/io.h
+@@ -151,7 +151,7 @@ extern void fiemap_init(void);
+ #define fiemap_init() do { } while (0)
+ #endif
+
+-#ifdef HAVE_COPY_FILE_RANGE
++#if defined(HAVE_NR_COPY_FILE_RANGE) && !defined(HAVE_COPY_FILE_RANGE)
+ extern void copy_range_init(void);
+ #else
+ #define copy_range_init() do { } while (0)
+diff --git a/io/sync_file_range.c b/io/sync_file_range.c
+index 30bbc93..6c49d73 100644
+--- a/io/sync_file_range.c
++++ b/io/sync_file_range.c
+@@ -4,6 +4,7 @@
+ * All Rights Reserved.
+ */
+
++#ifndef HAVE_COPY_FILE_RANGE
+ #include "command.h"
+ #include "input.h"
+ #include "init.h"
+@@ -92,3 +93,5 @@ sync_range_init(void)
+
+ add_command(&sync_range_cmd);
+ }
++
++#endif
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
new file mode 100644
index 0000000..f924cd1
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
@@ -0,0 +1,33 @@
+From 11a42df394de3dc520e72a016296dcc6dea02a7a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Aug 2018 05:33:57 +0000
+Subject: [PATCH] include include/xfs/linux.h after <sys/mman.h>
+
+This helps compiling with musl which goes ahead and undefines MAP_SYNC
+for mips and other architectures where its not wired in kernel
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ io/mmap.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/io/mmap.c b/io/mmap.c
+index dbfcca5..ca00df1 100644
+--- a/io/mmap.c
++++ b/io/mmap.c
+@@ -4,10 +4,11 @@
+ * All Rights Reserved.
+ */
+
+-#include "command.h"
+-#include "input.h"
+ #include <sys/mman.h>
+ #include <signal.h>
++
++#include "command.h"
++#include "input.h"
+ #include "init.h"
+ #include "io.h"
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch
new file mode 100644
index 0000000..c07b4b5
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch
@@ -0,0 +1,30 @@
+From 2bd40e5ed4df0b0a42beff8806b1ec5daa372c48 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 19 Jul 2018 16:49:41 +0800
+Subject: [PATCH] Disable xfs_scrub build
+
+Disable xfs_scrub build since it is experimental.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 7ddfa31..cd60319 100644
+--- a/Makefile
++++ b/Makefile
+@@ -48,7 +48,7 @@ LIBFROG_SUBDIR = libfrog
+ DLIB_SUBDIRS = libxlog libxcmd libhandle
+ LIB_SUBDIRS = libxfs $(DLIB_SUBDIRS)
+ TOOL_SUBDIRS = copy db estimate fsck growfs io logprint mkfs quota \
+- mdrestore repair rtcp m4 man doc debian spaceman scrub
++ mdrestore repair rtcp m4 man doc debian spaceman
+
+ ifneq ("$(PKG_PLATFORM)","darwin")
+ TOOL_SUBDIRS += fsr
+--
+2.7.4
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch
new file mode 100644
index 0000000..bd2d025
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch
@@ -0,0 +1,13 @@
+Index: xfsprogs-4.14.0/include/builddefs.in
+===================================================================
+--- xfsprogs-4.14.0.orig/include/builddefs.in
++++ xfsprogs-4.14.0/include/builddefs.in
+@@ -168,7 +168,7 @@ ifeq ($(ENABLE_GETTEXT),yes)
+ GCFLAGS += -DENABLE_GETTEXT
+ endif
+
+-BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS)
++BUILD_CFLAGS += $(GCFLAGS)
+ # First, Sanitizer, Global, Platform, Local CFLAGS
+ CFLAGS += $(FCFLAGS) $(SANITIZER_CFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
+
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb
new file mode 100644
index 0000000..0a1bacb
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb
@@ -0,0 +1,68 @@
+SUMMARY = "XFS Filesystem Utilities"
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE_libhandle = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \
+ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
+DEPENDS = "util-linux util-linux-native"
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \
+ file://remove_flags_from_build_flags.patch \
+ file://0001-build-Check-for-sync_file_range-libc-function.patch \
+ file://disable-xfs_scrub-build.patch \
+ file://0001-Check-for-MAP_SYNC-in-sys-mman.h.patch \
+ file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
+ "
+SRC_URI[md5sum] = "5f80b631b68df89a8b9283307e96d2e8"
+SRC_URI[sha256sum] = "397dc96f51aeeff73d021d3418d3172377b2685f2740ca60525096c070aa3df1"
+
+inherit autotools-brokensep
+
+PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
+
+DEPENDS += "util-linux"
+
+RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair"
+
+FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs"
+FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs"
+FILES_${PN}-repair = "${base_sbindir}/xfs_repair"
+
+FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}"
+
+EXTRA_OECONF = "--enable-gettext=no \
+ INSTALL_USER=root \
+ INSTALL_GROUP=root \
+ ac_cv_header_aio_h=yes \
+ ac_cv_lib_rt_lio_listio=yes \
+"
+
+DISABLE_STATIC = ""
+EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
+
+PACKAGECONFIG ??= "readline blkid"
+
+PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline"
+PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux"
+
+export DEBUG="-DNDEBUG"
+export BUILD_VERBOSE="1"
+export tagname="CC"
+
+EXTRA_OEMAKE = "DIST_ROOT='${D}'"
+
+do_configure () {
+ export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}"
+ # Prevent Makefile from calling configure without arguments,
+ # when do_configure gets called for a second time.
+ rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure
+ # Recreate configure script.
+ oe_runmake configure
+ oe_runconf
+}
+
+do_install_append() {
+ oe_runmake 'DESTDIR=${D}' install-dev
+ rm ${D}${libdir}/*.la
+ rmdir --ignore-fail-on-non-empty ${D}${libdir}
+}
diff --git a/meta/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb b/meta/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb
new file mode 100644
index 0000000..b26709e
--- /dev/null
+++ b/meta/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \
+into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \
+manipulation of such filesystems"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa"
+SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56"
+
+PACKAGECONFIG ??= "acl attr zlib bzip2 readline"
+PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl,"
+PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr,"
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
+PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2,"
+PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline,"
+
+inherit autotools-brokensep pkgconfig distro_features_check
+
+do_configure_prepend () {
+ touch NEWS
+}
+
+RDEPENDS_${PN} = "tk"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+BBCLASSEXTEND = "native"