Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -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.

View File

@@ -0,0 +1,101 @@
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/openembedded-core
layers: meta
branch: scarthgap
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
branch: scarthgap
Patches
=======
Please submit any patches against the filesystems layer to the
OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
with '[meta-filesystems][scarthgap]' in the subject.
Layer 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][scarthgap][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.

View File

@@ -0,0 +1,9 @@
# List of known non-reproducible package of the meta-filesystems layer
# Please keep this list sorted
KNOWN_NON_REPRO_META_FILESYSTEMS = " \
e2tools-ptest \
xfsprogs-doc \
zfs \
zfs-dbg \
zfs-dev \
"

View File

@@ -0,0 +1,18 @@
#
# Lists of the ptest in meta-filesystems, sorted into two sets by the time they take
# Please keep these sorted in alphabetical order
#
# A first pass at getting all meta-filesystems recipes which inherit ptest
# meta_filesystems_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-filesystems --inherits ptest --bare | sed -e '1,/=== Matching recipes: ===/d')
# ptests which take less than ~30s each
PTESTS_FAST_META_FILESYSTEMS = "\
e2tools \
fuse3 \
"
PTESTS_SLOW_META_FILESYSTEMS = "\
"
PTESTS_PROBLEMS_META_FILESYSTEMS = "\
sshfs-fuse \
"

View File

@@ -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 = "5"
# 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 networking-layer"
LAYERSERIES_COMPAT_filesystems-layer = "scarthgap"

View File

@@ -0,0 +1,3 @@
fsgqa:x:700:nogroup::/:/bin/nologin
123456-fsgqa:x:701:nogroup::/:/bin/nologin
fsgqa2:x:702:nogroup::/:/bin/nologin

View File

@@ -0,0 +1,13 @@
SUMMARY = "library to write an ISO-9660 file system to physical media"
HOMEPAGE = "https://libburnia-project.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
file://COPYRIGHT;md5=a91b9b862895b64e68e5b321873c9111"
SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
SRC_URI[sha256sum] = "7295491b4be5eeac5e7a3fb2067e236e2955ffdc6bbd45f546466edee321644b"
inherit autotools pkgconfig lib_package
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,27 @@
SUMMARY = "library and tool to create and burn ISO-9660 images"
HOMEPAGE = "https://libburnia-project.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
file://COPYRIGHT;md5=43cfe25a7e4a65f722d6253fa0649bb1"
SRC_URI = "http://files.libburnia-project.org/releases/libisoburn-${PV}.tar.gz"
SRC_URI[sha256sum] = "2b80a6f73dd633a5d243facbe97a15e5c9a07644a5e1a242c219b9375a45f71b"
DEPENDS = "libisofs libburn"
# This replaces the xorriso recipe
PROVIDES += "xorriso"
inherit autotools pkgconfig
EXTRA_OECONF = "--enable-pkg-check-modules"
do_install:append() {
# This is a proof-of-concept UI using Tk, don't ship it
rm -f ${D}${bindir}/xorriso-tcltk
}
PACKAGE_BEFORE_PN = "xorriso"
FILES:xorriso = "${bindir}"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,15 @@
SUMMARY = "library to create an ISO-9660 filesystem"
HOMEPAGE = "https://libburnia-project.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
file://COPYRIGHT;md5=1c1e5a960562d65f6449bb1d21e1dffc"
SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
SRC_URI[sha256sum] = "0152d66a9d340b659fe9c880eb9190f3570fb477ac07cf52e8bcd134a1d30d70"
DEPENDS = "acl zlib"
inherit autotools
BBCLASSEXTEND = "native"

View File

@@ -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 = "https://github.com/relan/exfat"
SECTION = "universe/otherosfs"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
UPSTREAM_CHECK_URI = "https://github.com/relan/exfat/releases"
DEPENDS = "fuse virtual/libc"
RRECOMMENDS:${PN} = "util-linux-mount"
inherit autotools pkgconfig
SRC_URI[sha256sum] = "a1cfedc55e0e7a12c184605aa0f0bf44b24a3fb272449b20b2c8bbe6edb3001e"
EXTRA_OECONF += "sbindir=${base_sbindir}"

View File

@@ -0,0 +1,22 @@
SUMMARY = "This is a filesystem client based on the HTTP using FUSE"
HOMEPAGE = "http://httpfs.sourceforge.net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=83f224c5182f148ec92e0b9f84b3c6c7"
inherit pkgconfig
DEPENDS += "fuse"
RDEPENDS:${PN} += "fuse"
SRC_URI += "${SOURCEFORGE_MIRROR}/project/httpfs/httpfs2/httpfs2-${PV}.tar.gz"
SRC_URI[sha256sum] = "01cb4bb38deb344f540da6f1464dc7edbdeb51213ad810b8c9c282c1e17e0fc1"
S = "${WORKDIR}/httpfs2-${PV}"
do_compile() {
oe_runmake -C ${S} httpfs2
}
do_install() {
install -Dm 0755 ${S}/httpfs2 ${D}${bindir}/httpfs2
}

View File

@@ -0,0 +1,13 @@
SUMMARY = "A fuse filesystem to access the contents of an iPhone or iPod Touch"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
HOMEPAGE ="http://www.libimobiledevice.org/"
DEPENDS = "fuse libimobiledevice"
SRC_URI = "https://github.com/libimobiledevice/ifuse/releases/download/${PV}/ifuse-${PV}.tar.bz2"
SRC_URI[md5sum] = "cd31fbd0ea945b2ff1e39eac8d198fdd"
SRC_URI[sha256sum] = "3550702ef94b2f5f16c7db91c6b3282b2aed1340665834a03e47458e09d98d87"
inherit autotools pkgconfig

View File

@@ -0,0 +1,3 @@
require recipes-core/images/core-image-base.bb
IMAGE_INSTALL += "packagegroup-meta-filesystems"

View File

@@ -0,0 +1,25 @@
DESCRIPTION = "Recipe to trigger execution of all meta-filesystems ptest images."
HOMEPAGE = "https://www.openembedded.org/"
LICENSE = "MIT"
inherit features_check nopackages
REQUIRED_DISTRO_FEATURES = "ptest"
require conf/include/ptest-packagelists-meta-filesystems.inc
# Include the full set of ptests
PTESTS_META_FILESYSTEMS = "${PTESTS_FAST_META_FILESYSTEMS} ${PTESTS_SLOW_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
do_testimage[noexec] = "1"
do_testimage[depends] = "${@' '.join(['meta-filesystems-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
do_build[depends] = "${@' '.join(['meta-filesystems-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
# normally image.bbclass would do this
EXCLUDE_FROM_WORLD = "1"
python () {
if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
bb.build.addtask("do_testimage", "", "", d)
}

View File

@@ -0,0 +1,5 @@
require meta-filesystems-image-ptest-all.bb
DESCRIPTION = "Recipe to trigger execution of all fast meta-filesystems ptest images."
PTESTS_META_FILESYSTEMS = "${PTESTS_FAST_META_FILESYSTEMS}"

View File

@@ -0,0 +1,40 @@
inherit features_check
REQUIRED_DISTRO_FEATURES = "ptest"
require recipes-core/images/core-image-minimal.bb
require conf/include/ptest-packagelists-meta-filesystems.inc
SUMMARY = "meta-filesystems ptest test image"
DESCRIPTION += "Also including the ${MCNAME} ptest package."
HOMEPAGE = "https://www.openembedded.org/"
PTESTS_META_FILESYSTEMS = "${PTESTS_SLOW_META_FILESYSTEMS} ${PTESTS_FAST_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
# box) and explicitly add up to 1500MB.
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_ROOTFS_EXTRA_SPACE = "324288"
# If a particular ptest needs more space, it can be customized:
#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
# ptests need more memory than standard to avoid the OOM killer
QB_MEM = "-m 1024"
# If a particular ptest needs more memroy, it can be customized:
#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
TEST_SUITES = "ping ssh parselogs ptest"
# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
PTEST_EXPECT_FAILURE = "1"
python () {
if not d.getVar("MCNAME"):
raise bb.parse.SkipRecipe("No class extension set")
}

View File

@@ -0,0 +1,48 @@
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>
---
Upstream-Status: Pending
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

View File

@@ -0,0 +1,137 @@
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>
---
Upstream-Status: Pending
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

View File

@@ -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>

View File

@@ -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 = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02"
DEPENDS = "zlib"
SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git;branch=master;protocol=https \
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"

View File

@@ -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

View File

@@ -0,0 +1,53 @@
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 = "GPL-2.0-only & LGPL-2.0-only"
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[sha256sum] = "f20e36ee68074b845e3629e6bced4706ad053804cbaf062fbae60738f854170c"
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 a symbolic link to let mount find ntfs.
ln -sf mount.ntfs-3g ${D}${base_sbindir}/mount.ntfs
rmdir ${D}${libdir}/ntfs-3g
# Handle when usrmerge is in effect. Some files are installed to /sbin
# regardless of the value of ${base_sbindir}.
if [ "${base_sbindir}" != /sbin ] && [ -d ${D}/sbin ]; then
mkdir -p ${D}${base_sbindir}
mv ${D}/sbin/* ${D}${base_sbindir}
rmdir ${D}/sbin
fi
}
# Satisfy the -dev runtime dependency
ALLOW_EMPTY:${PN} = "1"
CVE_PRODUCT = "tuxera:ntfs-3g"

View File

@@ -0,0 +1,27 @@
From dfeadd4eb43e829aafb0d10f611fa22ae81bfca4 Mon Sep 17 00:00:00 2001
From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Date: Sun, 20 Oct 2019 17:00:45 +0900
Subject: [PATCH] Add build rule for README.
fix do_configure error:
Makefile.am: required file `./README' not found
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
Upstream-Status: Pending
Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.am b/Makefile.am
index e0c4ad6..0449321 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -35,3 +35,4 @@ rpmcvs: preparerpm
@LN_S@ -f `pwd`/@PACKAGE@-@VERSION@.tar.gz ${RPMDIR}/SOURCES/@PACKAGE@-@VERSION@_cvs_`date +"%Y%m%d"`.tar.gz
cd ${RPMDIR}/SPECS && @RPMBUILD@ -ba @PACKAGE@.spec --define 'cvs 1'
+README: README.md
--
2.7.4

View File

@@ -0,0 +1,44 @@
From a812202d22a2861318b8e39f1cd74cd222f8e76f Mon Sep 17 00:00:00 2001
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
Date: Tue, 9 Jun 2020 11:30:38 +0300
Subject: [PATCH] Fix compilation with GCC10
Fixed compilation with -fno-common, which enabled in GCC 10 by default.
See https://bugs.gentoo.org/707438.
Upstream-Status: Backport [https://github.com/owfs/owfs/pull/62]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
module/owserver/src/c/owserver.c | 2 ++
module/owserver/src/include/owserver.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/module/owserver/src/c/owserver.c b/module/owserver/src/c/owserver.c
index db29988e..2ed29161 100644
--- a/module/owserver/src/c/owserver.c
+++ b/module/owserver/src/c/owserver.c
@@ -36,6 +36,8 @@
#include "owserver.h"
+pthread_mutex_t persistence_mutex ;
+
/* --- Prototypes ------------ */
static void SetupAntiloop(int argc, char **argv);
diff --git a/module/owserver/src/include/owserver.h b/module/owserver/src/include/owserver.h
index 8be582f0..a257ed02 100644
--- a/module/owserver/src/include/owserver.h
+++ b/module/owserver/src/include/owserver.h
@@ -18,7 +18,7 @@
#include "ow.h"
#include "ow_connection.h"
-pthread_mutex_t persistence_mutex ;
+extern pthread_mutex_t persistence_mutex ;
#define PERSISTENCELOCK _MUTEX_LOCK( persistence_mutex ) ;
#define PERSISTENCEUNLOCK _MUTEX_UNLOCK( persistence_mutex ) ;
--
2.28.0

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,81 @@
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 = "GPL-2.0-only & LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=628b867016631792781a8735a04760e5 \
file://COPYING.LIB;md5=9021b7435efdd9fb22beef8291134099"
DEPENDS = "fuse virtual/libusb0"
# v3.2p3
SRCREV = "3744375dfaa350e31c9b360eb1e1a517bbeb5c47"
SRC_URI = "git://github.com/owfs/owfs;branch=master;protocol=https \
file://0001-Add-build-rule-for-README.patch \
file://0001-Fix-compilation-with-GCC10.patch \
file://owhttpd \
file://owserver \
"
S = "${WORKDIR}/git"
inherit autotools-brokensep update-rc.d pkgconfig systemd
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 ${systemd_system_unitdir}/owftpd.service"
FILES:owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd \
${systemd_system_unitdir}/owhttpd.service"
FILES:owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver \
${systemd_system_unitdir}/owserver.service \
${systemd_system_unitdir}/owserver.socket"
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-*"
FILES:${PN} += "${systemd_system_unitdir}/owfs.service"
INITSCRIPT_PACKAGES = "owhttpd owserver"
INITSCRIPT_NAME:owserver = "owserver"
INITSCRIPT_NAME:owhttpd = "owhttpd"
INITSCRIPT_PARAMS:owserver = "defaults 20"
INITSCRIPT_PARAMS:owhttpd = "defaults 21"
SYSTEMD_SERVICE:${PN} = "owfs.service"
SYSTEMD_SERVICE:${PN}-owftpd = "owftpd.service"
SYSTEMD_SERVICE:${PN}-owhttpd = "owhttpd.service"
SYSTEMD_SERVICE:${PN}-owserver = "owserver.service owserver.socket"

View File

@@ -0,0 +1,55 @@
SUMMARY = "Meta-filesystem packagegroups"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
inherit packagegroup
PROVIDES = "${PACKAGES}"
PACKAGES = ' \
packagegroup-meta-filesystems \
packagegroup-meta-filesystems-support \
packagegroup-meta-filesystems-utils \
'
RDEPENDS:packagegroup-meta-filesystems = "\
packagegroup-meta-filesystems \
packagegroup-meta-filesystems-support \
packagegroup-meta-filesystems-utils \
"
RDEPENDS:packagegroup-meta-filesystems = "\
ifuse \
libisofs \
libburn \
libisoburn \
logfsprogs \
fuse-exfat \
owfs \
${@bb.utils.contains("DISTRO_FEATURES", "pam", "smbnetfs", "", d)} \
simple-mtpfs \
yaffs2-utils \
ntfs-3g-ntfsprogs \
httpfs2 \
unionfs-fuse \
sshfs-fuse \
"
RDEPENDS:packagegroup-meta-filesystems-support = "\
fuse3 \
fuse \
physfs \
"
RDEPENDS:packagegroup-meta-filesystems-utils = "\
aufs-util \
exfat-utils \
fatcat \
xfsdump \
f2fs-tools \
fatresize \
udevil \
ufs-utils \
xfsprogs \
xorriso \
"
EXCLUDE_FROM_WORLD = "1"

View File

@@ -0,0 +1,14 @@
DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
BUGTRACKER = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
DEPENDS = "fuse libmtp autoconf-archive"
inherit autotools pkgconfig
SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
SRCREV = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,44 @@
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>
---
Upstream-Status: Pending
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

View File

@@ -0,0 +1,11 @@
Upstream-Status: Pending
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_INIT([SMBNetFS],[0.6.3])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_HEADERS([src/config.h])
AC_PROG_CC

View File

@@ -0,0 +1,32 @@
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 = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
HOMEPAGE ="http://sourceforge.net/projects/smbnetfs"
DEPENDS = "fuse samba"
DEPENDS:append:libc-musl = " libexecinfo"
inherit autotools pkgconfig features_check
# samba depends on libpam
REQUIRED_DISTRO_FEATURES = "pam"
PV = "0.6.3"
SRCREV = "736d5e599df3bebce3450125118ac2e70358b0c9"
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"

View File

@@ -0,0 +1,34 @@
From 03ee1f8aa0899268ec02b2f54849352df92a3a1d Mon Sep 17 00:00:00 2001
From: Gabriel Staples <ercaguy@gmail.com>
Date: Tue, 22 Dec 2020 23:33:55 -0800
Subject: [PATCH] pytest.ini: fix test warning
Warning:
```
test/util.py:99
sshfs/build/test/util.py:99: PytestUnknownMarkWarning: Unknown pytest.mark.uses_fuse - is this a typo?
You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html
return pytest.mark.uses_fuse()
```
References for the fix:
1. https://stackoverflow.com/questions/60806473/pytestunknownmarkwarning-unknown-pytest-mark-xxx-is-this-a-typo/60813297#60813297
1. https://docs.pytest.org/en/stable/mark.html
Upstream-Status: Submitted [https://github.com/libfuse/sshfs/pull/238]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/pytest.ini | 2 ++
1 file changed, 2 insertions(+)
diff --git a/test/pytest.ini b/test/pytest.ini
index 95161546..7a7efed4 100644
--- a/test/pytest.ini
+++ b/test/pytest.ini
@@ -1,2 +1,4 @@
[pytest]
addopts = --verbose --assert=rewrite --tb=native -x -r a
+markers =
+ uses_fuse

View File

@@ -0,0 +1,31 @@
From a1d58ae1be99571a88b8439b027abe6349b74658 Mon Sep 17 00:00:00 2001
From: Gabriel Staples <ercaguy@gmail.com>
Date: Tue, 22 Dec 2020 23:26:40 -0800
Subject: [PATCH] Fix deprecated warning in conftest.py
```
test/conftest.py:66
sshfs/build/test/conftest.py:66: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(autouse=True)
```
Upstream-Status: Submitted [https://github.com/libfuse/sshfs/pull/238]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/conftest.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/conftest.py b/test/conftest.py
index 70cd0c62..d58d45b2 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -63,7 +63,7 @@ def register_output(self, pattern, count=1, flags=re.MULTILINE):
# relies on tests running sequential (i.e., don't dare to use e.g. the xdist
# plugin)
current_capfd = None
-@pytest.yield_fixture(autouse=True)
+@pytest.fixture(autouse=True)
def save_cap_fixtures(request, capfd):
global current_capfd
capfd.false_positives = []

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'

View File

@@ -0,0 +1,30 @@
SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE"
HOMEPAGE = "https://github.com/libfuse/sshfs"
SECTION = "console/network"
LICENSE = "GPL-2.0-only"
DEPENDS = "glib-2.0 fuse3"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/libfuse/sshfs;branch=master;protocol=https \
file://03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch \
file://a1d58ae1be99571a88b8439b027abe6349b74658.patch \
"
SRCREV = "c91eb9a9a992f1a36c49a8e6f1146e45b5e1c8e7"
S = "${WORKDIR}/git"
inherit meson pkgconfig ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
bash \
fuse \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
}

View File

@@ -0,0 +1,31 @@
From 6e794a36564a2639a07d8720260e33d7c9435aa4 Mon Sep 17 00:00:00 2001
From: Alper Ak <alperyasinak1@gmail.com>
Date: Fri, 10 Nov 2023 20:50:48 +0300
Subject: [PATCH] support cross compiling
Do not override OE CMAKE variables
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Upstream-Status: Pending
---
src/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f549496..ab71fb2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,9 +4,9 @@ set(UNIONFS_SRCS unionfs.c opts.c debug.c findbranch.c readdir.c
fuse_ops.c)
set(UNIONFSCTL_SRCS unionfsctl.c)
-SET(CMAKE_C_FLAGS "-pipe -W -Wall -D_FORTIFY_SOURCE=2")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -D_FORTIFY_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")
add_executable(unionfs ${UNIONFS_SRCS} ${HASHTABLE_SRCS})

View File

@@ -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;protocol=https \
file://0001-support-cross-compiling.patch \
"
SRCREV = "773f1853b043eeb64b7459f903a2c65bd096f9d9"
DEPENDS = "fuse3"
RDEPENDS:${PN} = "bash"
S = "${WORKDIR}/git"
inherit cmake pkgconfig

View File

@@ -0,0 +1,32 @@
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>
---
Upstream-Status: Pending
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

View File

@@ -0,0 +1,34 @@
From 05cc2b958090f96d6fa128da43aa69669625e529 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 5 Mar 2024 12:03:23 +0000
Subject: [PATCH] yaffs_guts.h: define YTIME_T if not already defined
Fixed:
yaffs_guts.h:501:9: error: unknown type name 'YTIME_T'
501 | YTIME_T yst_uid;
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
yaffs_guts.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/yaffs_guts.h b/yaffs_guts.h
index 74ded0b..598271b 100644
--- a/yaffs_guts.h
+++ b/yaffs_guts.h
@@ -487,6 +487,10 @@ struct yaffs_obj {
YCHAR short_name[YAFFS_SHORT_NAME_LENGTH + 1];
+#ifndef YTIME_T
+#define YTIME_T time_t
+#endif
+
#ifdef CONFIG_YAFFS_WINCE
//these are always 64 bits
u32 win_ctime[2];
--
2.35.5

View File

@@ -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:

View File

@@ -0,0 +1,53 @@
SUMMARY = "Yet Another Flash File System"
DESCRIPTION = "Tools for managing 'yaffs2' file systems."
SECTION = "base"
HOMEPAGE = "http://www.yaffs.net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=11;endline=13;md5=5f5464f9b3e981ca574e65b00e438561 \
file://utils/mkyaffsimage.c;beginline=10;endline=12;md5=5f5464f9b3e981ca574e65b00e438561 \
"
# The commit date of SRCREV
PV = "20221209"
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 \
file://0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch \
"
SRCREV = "613a901a229e8a701c18f003dd0aee18453e0670"
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"
# Fixed make clean error:
#make -C /lib/modules/4.4.0-112-generic/build M=<snip>
#make: *** /lib/modules/4.4.0-112-generic/build: No such file or directory. Stop.
#make: *** [clean] Error 2
CLEANBROKEN = "1"

View File

@@ -0,0 +1,34 @@
From cc0cd6f71f6ef96fca2d7b730a3f0f6722fec696 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 7 May 2022 12:15:22 -0700
Subject: [PATCH] Define strndupa if it does not exist
musl e.g. does not supply strndupa, unlike glibc
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
etc/systemd/system-generators/zfs-mount-generator.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/etc/systemd/system-generators/zfs-mount-generator.c b/etc/systemd/system-generators/zfs-mount-generator.c
index f4c6c26..255bee4 100644
--- a/etc/systemd/system-generators/zfs-mount-generator.c
+++ b/etc/systemd/system-generators/zfs-mount-generator.c
@@ -193,6 +193,15 @@ fopenat(int dirfd, const char *pathname, int flags,
return (fdopen(fd, stream_mode));
}
+#ifndef strndupa
+#define strndupa(s, n) \
+ (__extension__ ({const char *__in = (s); \
+ size_t __len = strnlen (__in, (n)) + 1; \
+ char *__out = (char *) alloca (__len); \
+ __out[__len-1] = '\0'; \
+ (char *) memcpy (__out, __in, __len-1);}))
+#endif
+
static int
line_worker(char *line, const char *cachefile)
{

View File

@@ -0,0 +1,46 @@
From 1f9a5cb860b3509791e59a8cae9d5f265e832ed0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 28 May 2023 16:33:15 -0700
Subject: [PATCH] fs-tests/cmd/readmmap: Replace uint_t with uint32_t
Makes it portable across glibc and musl
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
tests/zfs-tests/cmd/readmmap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
index 704ffd55c8..a2590e0e8d 100644
--- a/tests/zfs-tests/cmd/readmmap.c
+++ b/tests/zfs-tests/cmd/readmmap.c
@@ -38,6 +38,7 @@
* 0 : no errors
* --------------------------------------------------------------
*/
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -55,7 +56,7 @@ main(int argc, char **argv)
char *buf = NULL;
char *map = NULL;
int fd = -1, bytes, retval = 0;
- uint_t seed;
+ uint32_t seed;
if (argc < 2 || optind == argc) {
(void) fprintf(stderr,
@@ -92,7 +93,7 @@ main(int argc, char **argv)
retval = 1;
goto end;
}
- seed = (uint_t)time(NULL);
+ seed = (uint32_t)time(NULL);
srandom(seed);
idx = random() % size;
--
2.40.1

View File

@@ -0,0 +1,56 @@
From aaf28a4630af60496c9d33db1d06a7d7d8983422 Mon Sep 17 00:00:00 2001
From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Date: Tue, 23 May 2023 13:50:24 +0600
Subject: [PATCH] fixes broken aarch64 inline assembly for gcc 13.1
fixes the following error
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:549:24: error: the register specified for 'w7' is not general enough to be used as a register variable
549 | register unsigned char w7 asm("v7") __attribute__((vector_size(16)));
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:193:9: note: in expansion of macro 'GEN_X_DEFINE_6_7'
193 | GEN_X_DEFINE_6_7() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
| ^~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:551:24: error: the register specified for 'w8' is not general enough to be used as a register variable
551 | register unsigned char w8 asm("v8") __attribute__((vector_size(16))); \
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
194 | GEN_X_DEFINE_8_9() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
| ^~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:552:24: error: the register specified for 'w9' is not general enough to be used as a register variable
552 | register unsigned char w9 asm("v9") __attribute__((vector_size(16)));
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
194 | GEN_X_DEFINE_8_9() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
Upstream-Status: Pending [https://github.com/BrainSlayer/zfs/commit/aaf28a4630af60496c9d33db1d06a7d7d8983422]
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
module/Kbuild.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/module/Kbuild.in
+++ b/module/Kbuild.in
@@ -57,9 +57,9 @@ asflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_
ccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
ifeq ($(CONFIG_ARM64),y)
-CFLAGS_REMOVE_zcommon/zfs_fletcher_aarch64_neon.o += -mgeneral-regs-only
-CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neon.o += -mgeneral-regs-only
-CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neonx2.o += -mgeneral-regs-only
+CFLAGS_REMOVE_zcommon/zfs_fletcher_aarch64_neon.o = -mgeneral-regs-only
+CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neon.o = -mgeneral-regs-only
+CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neonx2.o = -mgeneral-regs-only
endif
# Suppress unused-value warnings in sparc64 architecture headers

View File

@@ -0,0 +1,77 @@
SUMMARY = "OpenZFS on Linux and FreeBSD"
DESCRIPTION = "OpenZFS on Linux and FreeBSD"
LICENSE = "CDDL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
HOMEPAGE ="https://github.com/openzfs/zfs"
SRCREV = "494aaaed89cb9fe9f2da3b6c6f465a4bc9f6a7e1"
SRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=zfs-2.2-release \
file://0001-Define-strndupa-if-it-does-not-exist.patch \
file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
file://0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch \
"
S = "${WORKDIR}/git"
# Using both 'module' and 'autotools' classes seems a bit odd, they both
# define a do_compile function.
# That's why we opt for module-base, also this prevents module splitting.
inherit module-base pkgconfig autotools bash-completion
DEPENDS = "virtual/kernel zlib util-linux libtirpc openssl curl"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd sysvinit', d)}"
PACKAGECONFIG[pam] = "--enable-pam --with-pamconfigsdir=${datadir}/pam-configs --with-pammoduledir=${libdir}/security, --disable-pam"
PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,"
PACKAGECONFIG[sysvinit] = "--enable-sysvinit,--disable-sysvinit,"
EXTRA_OECONF:append = " \
--disable-pyzfs \
--with-linux=${STAGING_KERNEL_DIR} --with-linux-obj=${STAGING_KERNEL_BUILDDIR} \
--with-mounthelperdir=${base_sbin} \
--with-udevdir=${base_libdir}/udev \
--with-systemdunitdir=${systemd_system_unitdir} \
--with-systemdgeneratordir=${nonarch_base_libdir}/systemd/system-generators \
--with-systemdpresetdir=${nonarch_base_libdir}/systemd/system-preset \
--with-systemdmodulesloaddir=${sysconfdir}/module-load.d \
--without-dracutdir \
"
EXTRA_OEMAKE:append = " \
INSTALL_MOD_PATH=${D}${root_prefix} \
"
do_install:append() {
# /usr/share/zfs contains the zfs-tests folder which we do not need:
rm -rf ${D}${datadir}/zfs
rm -rf ${D}${datadir}/initramfs-tools
}
FILES:${PN} += "\
${nonarch_base_libdir}/modules \
${systemd_system_unitdir} \
${nonarch_base_libdir}/systemd/system-generators \
${nonarch_base_libdir}/systemd/system-preset \
${sysconfdir}/modules-load.d/${BPN}.conf \
${sysconfdir}/default/${BPN} \
${sysconfdir}/sudoers.d/${BPN} \
${sysconfdir}/${BPN} \
${base_libdir}/udev \
${sbindir} \
${bindir} \
${libexecdir}/${BPN} \
${libdir} \
"
FILES:${PN}-dev += "\
${prefix}/src/zfs-${PV} \
${prefix}/src/spl-${PV} \
"
# Not yet ported to rv32
COMPATIBLE_HOST:riscv32 = "null"
# conflicting definition of ABS macro from asm/asm.h from kernel
COMPATIBLE_HOST:mips = "null"
# FTBFS on aarch64 with 6.2+ kernel see https://github.com/openzfs/zfs/issues/14555
COMPATIBLE_HOST:aarch64 = "null"

View File

@@ -0,0 +1,23 @@
SUMMARY = "Tools to handle creating and mounting composefs images"
HOMEPAGE = "https://github.com/containers/composefs"
LICENSE = "GPL-3.0-or-later & LGPL-2.0-or-later & Apache-2.0"
LIC_FILES_CHKSUM = "\
file://BSD-2-Clause.txt;md5=121c8a0a8fa5961a26b7863034ebcce8 \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.Apache-2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
"
DEPENDS = "fuse3 openssl"
SRCREV = "2d5cdcb9176cfe4ccf1761ef6d78e1c48de35649"
PV = "1.0.3"
SRC_URI = "\
git://github.com/containers/composefs.git;protocol=https;branch=main \
file://0001-musl-basename-use-portable-implementation-for-basena.patch \
"
S = "${WORKDIR}/git"
inherit autotools pkgconfig

View File

@@ -0,0 +1,75 @@
From b21a9d4f10a066cac76bb345d31fdd24afcf3e6f Mon Sep 17 00:00:00 2001
From: Fathi Boudra <fathi.boudra@linaro.org>
Date: Tue, 9 Apr 2024 08:47:37 +0200
Subject: [PATCH] musl: basename: use portable implementation for basename API
musl has removed the non-prototype declaration of basename from string.h which
now results in build errors with newer clang compilers.
Implement GNU basename behavior using strchr which is portable across libcs.
Fixes:
| ../../git/tools/mountcomposefs.c:43:20:
| error: call to undeclared function 'basename'; ISO C99 and later do not
| support implicit function declarations [-Wimplicit-function-declaration]
| 43 | const char *bin = basename(argv0);
| | ^
| ../../git/tools/mountcomposefs.c:43:14:
| error: incompatible integer to pointer conversion initializing 'const char *'
| with an expression of type 'int' [-Wint-conversion]
| 43 | const char *bin = basename(argv0);
| | ^ ~~~~~~~~~~~~~~~
For reference:
https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
Closes: https://github.com/containers/composefs/issues/272
Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Upstream-Status: Submitted [https://github.com/containers/composefs/pull/273]
---
libcomposefs/lcfs-utils.h | 6 ++++++
tools/mkcomposefs.c | 2 +-
tools/mountcomposefs.c | 3 ++-
3 files changed, 9 insertions(+), 2 deletions(-)
--- a/tools/mountcomposefs.c
+++ b/tools/mountcomposefs.c
@@ -37,10 +37,11 @@
#include <linux/fsverity.h>
#include "libcomposefs/lcfs-mount.h"
+#include "libcomposefs/lcfs-utils.h"
static void usage(const char *argv0)
{
- const char *bin = basename(argv0);
+ const char *bin = gnu_basename(argv0);
fprintf(stderr,
"usage: %s [-t type] [-o opt[,opts..]] IMAGE MOUNTPOINT\n"
"Example:\n"
--- a/libcomposefs/lcfs-utils.h
+++ b/libcomposefs/lcfs-utils.h
@@ -161,4 +161,10 @@ static inline void *steal_pointer(void *
/* type safety */
#define steal_pointer(pp) (0 ? (*(pp)) : (steal_pointer)(pp))
+static inline const char *gnu_basename(const char *filename)
+{
+ const char *p = strrchr(filename, '/');
+ return p ? p+1 : filename;
+}
+
#endif
--- a/tools/mkcomposefs.c
+++ b/tools/mkcomposefs.c
@@ -315,7 +315,7 @@ static int fill_store(struct lcfs_node_s
static void usage(const char *argv0)
{
- const char *bin = basename(argv0);
+ const char *bin = gnu_basename(argv0);
fprintf(stderr,
"Usage: %s [OPTIONS] SOURCE IMAGE\n"
"Options:\n"

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,53 @@
Upstream-Status: Pending
From: Sam James <sam@gentoo.org>
Date: Sat, 24 Jul 2021 22:02:45 +0100
Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix
glibc-2.34+)
closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since
it's available in glibc 2.34+, we want to detect it and only define our
fallback if the libc doesn't provide it.
Bug: https://bugs.gentoo.org/803923
Signed-off-by: Sam James <sam@gentoo.org>
--- a/configure.ac
+++ b/configure.ac
@@ -55,6 +55,7 @@ fi
AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
AC_CHECK_FUNCS([posix_fallocate])
+AC_CHECK_FUNCS([closefrom])
AC_CHECK_MEMBERS([struct stat.st_atim])
AC_CHECK_MEMBERS([struct stat.st_atimespec])
--- a/util/ulockmgr_server.c
+++ b/util/ulockmgr_server.c
@@ -22,6 +22,10 @@
#include <sys/socket.h>
#include <sys/wait.h>
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
struct message {
unsigned intr : 1;
unsigned nofd : 1;
@@ -124,6 +128,7 @@ static int receive_message(int sock, voi
return res;
}
+#if !defined(HAVE_CLOSEFROM)
static int closefrom(int minfd)
{
DIR *dir = opendir("/proc/self/fd");
@@ -141,6 +146,7 @@ static int closefrom(int minfd)
}
return 0;
}
+#endif
static void send_reply(int cfd, struct message *msg)
{

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'

View File

@@ -0,0 +1,99 @@
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 = "GPL-2.0-only & LGPL-2.0-only"
LIC_FILES_CHKSUM = " \
file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66 \
"
SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.gz \
file://fuse3.conf \
"
SRC_URI[sha256sum] = "f797055d9296b275e981f5f62d4e32e089614fc253d1ef2985851025b8a0ce87"
S = "${WORKDIR}/fuse-${PV}"
UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>3(\.\d+)+).tar.xz"
CVE_PRODUCT = "fuse_project:fuse"
inherit meson pkgconfig ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-looseversion \
bash \
"
RRECOMMENDS:${PN}-ptest += " kernel-module-cuse"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/test
install -d ${D}${PTEST_PATH}/example
install -d ${D}${PTEST_PATH}/util
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
example_excutables=`find ${B}/example -type f -executable`
util_excutables=`find ${B}/util -type f -executable`
test_excutables=`find ${B}/test -type f -executable`
for e in $example_excutables
do
cp -rf $e ${D}${PTEST_PATH}/example/
done
for e in $util_excutables
do
cp -rf $e ${D}${PTEST_PATH}/util/
done
for e in $test_excutables
do
cp -rf $e ${D}${PTEST_PATH}/test
done
}
DEPENDS = "udev"
PACKAGES =+ "fuse3-utils"
RPROVIDES:${PN}-dbg += "fuse3-utils-dbg"
RRECOMMENDS:${PN}:class-target = "kernel-module-fuse fuse3-utils"
FILES:${PN} += "${libdir}/libfuse3.so.*"
FILES:${PN}-dev += "${libdir}/libfuse3*.la"
# Forbid auto-renaming to libfuse3-utils
FILES:fuse3-utils = "${bindir} ${base_sbindir}"
DEBIAN_NOAUTONAME:fuse3-utils = "1"
DEBIAN_NOAUTONAME:${PN}-dbg = "1"
SYSTEMD_SERVICE:${PN} = ""
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}/fuse3.conf ${D}${sysconfdir}/modules-load.d
fi
}

View File

@@ -0,0 +1,81 @@
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 = "GPL-2.0-only & LGPL-2.0-only"
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://fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch \
file://fuse.conf \
"
SRC_URI[md5sum] = "8000410aadc9231fd48495f7642f3312"
SRC_URI[sha256sum] = "d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5"
UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>2(\.\d+)+).tar.gz"
CVE_PRODUCT = "fuse_project:fuse"
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}/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
}
do_install:append:class-nativesdk() {
install -d ${D}${sysconfdir}
mv ${D}/etc/* ${D}${sysconfdir}/
rmdir ${D}/etc
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,15 @@
SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
HOMEPAGE = "http://icculus.org/physfs"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=96801882d1120239dcafbf888e821a6e"
DEPENDS = "readline zlib"
inherit cmake
PE = "1"
SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
SRC_URI[md5sum] = "dc751294aaf59d1359bbe34e693d1d87"
SRC_URI[sha256sum] = "304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863"
EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"

View File

@@ -0,0 +1,14 @@
# Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "Version numbering for anarchists and software realists"
HOMEPAGE = "https://github.com/effigies/looseversion"
LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d5605fc335ce1bab614032468d0a1e00"
DEPENDS = "python3-hatchling-native"
SRC_URI[sha256sum] = "ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e"
inherit pypi python_hatchling
PYPI_PACKAGE = "looseversion"

View File

@@ -0,0 +1,32 @@
From 12ba95281d0bbea3576350d635b4dee0f953b94a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Nov 2022 18:38:07 -0800
Subject: [PATCH] libau: Do not build LFS version of readdir
rdu64 is providing largefile supported version of readdir and readdir_r
however, we enable largefile support unconditionally in OE therefore its
not needed since readdir() and readdir_r() are already LFS capable
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
libau/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libau/Makefile b/libau/Makefile
index 9ada831..1fd1ccc 100644
--- a/libau/Makefile
+++ b/libau/Makefile
@@ -30,7 +30,7 @@ STRIP ?= strip
all: ${LibSo}
ifeq (${Glibc},yes)
-LibSoObj += rdu64.o
+#LibSoObj += rdu64.o
# this is unnecessary on 64bit system?
rdu64.c: rdu.c
--
2.38.1

View File

@@ -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)

View File

@@ -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}

View File

@@ -0,0 +1,67 @@
SUMMARY = "Tools for managing AUFS mounts"
SECTION = "base"
HOMEPAGE = "http://aufs.sourceforge.net/"
LICENSE = "GPL-2.0-only"
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 \
file://0001-libau-Do-not-build-LFS-version-of-readdir.patch \
"
SRC_URI[aufs_type.md5sum] = "b37129ef0703de72a852db7e48bdedc6"
SRC_URI[aufs_type.sha256sum] = "7ff6566adb9c7a3b6862cdc85a690ab546f1d0bc81ddd595fd663c0a69031683"
UPSTREAM_CHECK_COMMITS = "1"
PV = "4.9+git"
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}:class-target += "kernel-module-aufs"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,15 @@
SUMMARY = "A FUSE filesystem for mounting a directory to another location"
DESCRIPTION = "bindfs is a FUSE filesystem for mounting a directory to another location, similarly to mount --bind."
HOMEPAGE = "https://bindfs.org/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "fuse"
RDEPENDS:${PN} = "fuse"
SRC_URI = "git://github.com/mpartel/bindfs;protocol=https;branch=master"
SRCREV = "3f5e3cb1fcac5fb8034fa4712764317fab51ebe0"
S = "${WORKDIR}/git"
inherit autotools pkgconfig gettext

View File

@@ -0,0 +1,58 @@
SUMMARY = "Services for periodic btrfs maintenance tasks"
DESCRIPTION = "A set of scripts supplementing the btrfs filesystem and aims \
to automate a few maintenance tasks. This means the scrub, balance, trim \
or defragmentation."
HOMEPAGE = "https://github.com/kdave/btrfsmaintenance"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
SECTION = "base"
SRC_URI = "git://github.com/kdave/${BPN};branch=master;protocol=https \
file://0001-change-sysconfig-path-to-etc-default.patch \
file://0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch \
"
SRCREV = "be42cb6267055d125994abd6927cf3a26deab74c"
UPSTREAM_CHECK_URI = "https://github.com/kdave/${BPN}/tags"
UPSTREAM_CHECK_REGEX = "${BPN}/releases/tag/v(?P<pver>\d+(?:\.\d+)*)"
RDEPENDS:${PN} = "bash btrfs-tools"
S = "${WORKDIR}/git"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install() {
install -Dm0644 ${S}/btrfsmaintenance-refresh.path \
${D}${systemd_system_unitdir}/btrfsmaintenance-refresh.path
install -Dm0644 ${S}/*.timer \
${D}${systemd_system_unitdir}
install -Dm0644 ${S}/*.service \
${D}${systemd_system_unitdir}
install -Dm0644 ${S}/btrfsmaintenance-functions \
${D}${datadir}/${BPN}/btrfsmaintenance-functions
install -Dm0755 ${S}/*.sh \
${D}${datadir}/${BPN}
install -Dm0644 ${S}/sysconfig.btrfsmaintenance \
${D}${sysconfdir}/default/btrfsmaintenance
}
inherit systemd
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = " \
btrfs-scrub.timer \
btrfs-scrub.service \
btrfs-trim.timer \
btrfs-trim.service \
btrfs-balance.timer \
btrfs-balance.service \
btrfs-defrag.timer \
btrfs-defrag.service \
btrfsmaintenance-refresh.service \
btrfsmaintenance-refresh.path \
"

View File

@@ -0,0 +1,47 @@
From b49dbe17e0d9ae463e5a34e6991aa2d3c70d2fb1 Mon Sep 17 00:00:00 2001
From: Claudius Heine <ch@denx.de>
Date: Wed, 11 May 2022 14:33:13 +0200
Subject: [PATCH] change sysconfig path to /etc/default
OE uses /etc/default for service configuration, not /etc/sysconfig which
is used by SUSE and RedHat based distributions.
Change the files accordingly
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Claudius Heine <ch@denx.de>
---
btrfsmaintenance-refresh.path | 4 ++--
btrfsmaintenance-refresh.service | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/btrfsmaintenance-refresh.path b/btrfsmaintenance-refresh.path
index d56ad11..f0b4132 100644
--- a/btrfsmaintenance-refresh.path
+++ b/btrfsmaintenance-refresh.path
@@ -1,8 +1,8 @@
[Unit]
-Description=Watch /etc/sysconfig/btrfsmaintenance
+Description=Watch /etc/default/btrfsmaintenance
[Path]
-PathChanged=/etc/sysconfig/btrfsmaintenance
+PathChanged=/etc/default/btrfsmaintenance
[Install]
WantedBy=multi-user.target
diff --git a/btrfsmaintenance-refresh.service b/btrfsmaintenance-refresh.service
index 4ed1eb4..d6225a6 100644
--- a/btrfsmaintenance-refresh.service
+++ b/btrfsmaintenance-refresh.service
@@ -1,5 +1,5 @@
[Unit]
-Description=Update cron periods from /etc/sysconfig/btrfsmaintenance
+Description=Update cron periods from /etc/default/btrfsmaintenance
[Service]
ExecStart=/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh systemd-timer
--
2.33.3

View File

@@ -0,0 +1,33 @@
From 420ae0f395838b852ae8b8fe5528056c36dc0919 Mon Sep 17 00:00:00 2001
From: Claudius Heine <ch@denx.de>
Date: Wed, 11 May 2022 15:14:22 +0200
Subject: [PATCH] add WantedBy directive to btrfsmaintenance-refresh.service
Just trigger the service on the first boot, to configure services to the
configuration file deployed in the package, afterwards disable the
service, so that is only triggered when the configuration file has
changed.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Claudius Heine <ch@denx.de>
---
btrfsmaintenance-refresh.service | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/btrfsmaintenance-refresh.service b/btrfsmaintenance-refresh.service
index d6225a6..58d0e09 100644
--- a/btrfsmaintenance-refresh.service
+++ b/btrfsmaintenance-refresh.service
@@ -3,4 +3,8 @@ Description=Update cron periods from /etc/default/btrfsmaintenance
[Service]
ExecStart=/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh systemd-timer
+ExecStart=systemctl disable btrfsmaintenance-refresh.service
Type=oneshot
+
+[Install]
+WantedBy=multi-user.target
--
2.33.3

View File

@@ -0,0 +1,75 @@
SUMMARY = "Set of GPL'ed utilities to ext2/ext3 filesystem."
DESCRIPTION = "e2tools is a simple set of GPL'ed utilities to read, write, \
and manipulate files in an ext2/ext3 filesystem. These utilities access a \
filesystem directly using the ext2fs library. Can also be used on a Linux \
machine to read/write to disk images or floppies without having to mount \
them or have root access."
HOMEPAGE = "https://github.com/e2tools/e2tools"
SECTION = "base"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS += "coreutils e2fsprogs"
PV = "0.1.0+git"
SRC_URI = " \
git://github.com/e2tools/e2tools;protocol=https;branch=master \
file://run-ptest \
"
SRCREV = "fd092754a6b65c3a769f74f888668c066f09c36d"
S = "${WORKDIR}/git"
inherit autotools pkgconfig ptest
do_configure:prepend() {
git -C "${WORKDIR}/git" reset --hard HEAD
# To install ptest for this package, special configuration needs to be
# done before do_configure(). So, do_configure_ptest() which is scheduled
# after do_configure() cannot be used.
# We only do special configuration if we are installing ptest for this
# package.
if [ "${@d.getVar('PTEST_ENABLED')}" -eq "1" ]; then
# Since we guarantee run-time dependency when installing the ptest for
# this package, we do not need the check macros under section "checks
# for programs" in "configure.ac". Plus, these check macros set the
# ouput variables to incorrect values as these checks are performed on
# the host environment. Still, we need these variables outputted from
# these check macros. So, we insert the following lines to manually
# set these output variables to the correct value in "configure.ac".
# Note that HAVE_DD_COMMAND and HAVE_MKE2FS_COMMAND are only ever used
# in tests/Makefile-files which determines whether to include the test
# cases. As for output variables CHMOD, DD, and MKE2FS, they only
# point to the programs which test cases need to run. Since these
# commands are guaranteed to be present due to RDEPENDS and are
# guaranteed to be accessible under PATH environment variable on the
# target, we only need to specify the name of these programs.
perl -i -0777 -pe 's/(^dnl\s*=+\s*^dnl\s*Checks for compiler flags\s*^dnl\s*=+)/
AC_SUBST([CHMOD], 'chmod')
AC_SUBST([DD], 'dd')
AC_SUBST([MKE2FS], 'mke2fs')
AM_CONDITIONAL([HAVE_DD_COMMAND], [true])
AM_CONDITIONAL([HAVE_MKE2FS_COMMAND], [true])
\1/ms' "${WORKDIR}/git/configure.ac"
fi
}
do_install_ptest() {
rm -rf "${D}${PTEST_PATH}/*"
cp -r ../build "${D}${PTEST_PATH}"
cp -r "${S}/build-aux" "${D}${PTEST_PATH}/build"
cp -r "${S}" "${D}${PTEST_PATH}"
rm -rf ${D}${PTEST_PATH}/build/config.log ${D}${PTEST_PATH}/build/autom4te.cache \
${D}${PTEST_PATH}/git/.git ${D}${PTEST_PATH}/git/autom4te.cache
sed -i -e 's;${TMPDIR};;g' ${D}${PTEST_PATH}/build/config.status
}
RDEPENDS:${PN}-ptest += "bash coreutils e2fsprogs e2tools gawk make perl"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -e
make -C build check

View File

@@ -0,0 +1,24 @@
SUMMARY = "exFAT filesystem userspace utilities"
DESCRIPTION = "\
As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is \
created as an official userspace utilities that contain all of the standard \
utilities for creating and fixing and debugging exfat filesystem in linux \
system. The goal of exfatprogs is to provide high performance and quality \
at the level of exfat utilities in windows. And this software is licensed \
under the GNU General Public License Version 2."
HOMEPAGE = "https://github.com/${BPN}/${BPN}"
SECTION = "universe/otherosfs"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
SRC_URI[sha256sum] = "61d517231f8ec177eeb5955fd6edb89748d3f88ba412c48bcb32741b430e359a"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
inherit autotools
RPROVIDES:${PN} = "exfat-utils"
RCONFLICTS:${PN} = "exfat-utils"
RREPLACES:${PN} = "exfat-utils"

View File

@@ -0,0 +1,183 @@
From 3c0314e1820afc9a98e890cc5f7973c3c81877f8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 21 Dec 2022 18:23:03 -0800
Subject: [PATCH] f2fs_io: Define _FILE_OFFSET_BITS=64
Remove _LARGEFILE64_SOURCE, this is redundant when _FILE_OFFSET_BITS=64
additionally it fixes build with musl because the detection logic for
lseek64 fails because when using _LARGEFILE64_SOURCE musl also define's
lseek64 as an alias to lseek
Upstream-Status: Submitted [https://lore.kernel.org/linux-f2fs-devel/20221222022830.976309-2-raj.khem@gmail.com/T/#u]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
lib/libf2fs_io.c | 4 +++-
tools/f2fs_io/f2fs_io.c | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
--- a/lib/libf2fs_io.c
+++ b/lib/libf2fs_io.c
@@ -11,7 +11,9 @@
*
* Dual licensed under the GPL or LGPL version 2 licenses.
*/
-#define _LARGEFILE64_SOURCE
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
+#endif
#include <stdio.h>
#include <stdlib.h>
@@ -67,22 +69,13 @@ static int __get_device_fd(__u64 *offset
return -1;
}
-#ifndef HAVE_LSEEK64
-typedef off_t off64_t;
-
-static inline off64_t lseek64(int fd, __u64 offset, int set)
-{
- return lseek(fd, offset, set);
-}
-#endif
-
/* ---------- dev_cache, Least Used First (LUF) policy ------------------- */
/*
* Least used block will be the first victim to be replaced when max hash
* collision exceeds
*/
static bool *dcache_valid; /* is the cached block valid? */
-static off64_t *dcache_blk; /* which block it cached */
+static off_t *dcache_blk; /* which block it cached */
static uint64_t *dcache_lastused; /* last used ticks for cache entries */
static char *dcache_buf; /* cached block data */
static uint64_t dcache_usetick; /* current use tick */
@@ -172,7 +165,7 @@ static int dcache_alloc_all(long n)
{
if (n <= 0)
return -1;
- if ((dcache_blk = (off64_t *) malloc(sizeof(off64_t) * n)) == NULL
+ if ((dcache_blk = (off_t *) malloc(sizeof(off_t) * n)) == NULL
|| (dcache_lastused = (uint64_t *)
malloc(sizeof(uint64_t) * n)) == NULL
|| (dcache_buf = (char *) malloc (F2FS_BLKSIZE * n)) == NULL
@@ -257,7 +250,7 @@ static inline long dcache_relocate(long
dcache_config.num_cache_entry;
}
-static long dcache_find(off64_t blk)
+static long dcache_find(off_t blk)
{
register long n = dcache_config.num_cache_entry;
register unsigned m = dcache_config.max_hash_collision;
@@ -278,10 +271,10 @@ static long dcache_find(off64_t blk)
}
/* Physical read into cache */
-static int dcache_io_read(int fd, long entry, off64_t offset, off64_t blk)
+static int dcache_io_read(int fd, long entry, off_t offset, off_t blk)
{
- if (lseek64(fd, offset, SEEK_SET) < 0) {
- MSG(0, "\n lseek64 fail.\n");
+ if (lseek(fd, offset, SEEK_SET) < 0) {
+ MSG(0, "\n lseek fail.\n");
return -1;
}
if (read(fd, dcache_buf + entry * F2FS_BLKSIZE, F2FS_BLKSIZE) < 0) {
@@ -308,12 +301,12 @@ static int dcache_io_read(int fd, long e
* 1: cache not available (uninitialized)
* -1: error
*/
-static int dcache_update_rw(int fd, void *buf, off64_t offset,
+static int dcache_update_rw(int fd, void *buf, off_t offset,
size_t byte_count, bool is_write)
{
- off64_t blk;
+ off_t blk;
int addr_in_blk;
- off64_t start;
+ off_t start;
if (!dcache_initialized)
dcache_init(); /* auto initialize */
@@ -377,13 +370,13 @@ static int dcache_update_rw(int fd, void
* return value: 1: cache not available
* 0: success, -1: I/O error
*/
-int dcache_update_cache(int fd, void *buf, off64_t offset, size_t count)
+int dcache_update_cache(int fd, void *buf, off_t offset, size_t count)
{
return dcache_update_rw(fd, buf, offset, count, true);
}
/* handles read into cache + read into buffer */
-int dcache_read(int fd, void *buf, off64_t offset, size_t count)
+int dcache_read(int fd, void *buf, off_t offset, size_t count)
{
return dcache_update_rw(fd, buf, offset, count, false);
}
@@ -395,7 +388,7 @@ int dev_read_version(void *buf, __u64 of
{
if (c.sparse_mode)
return 0;
- if (lseek64(c.kd, (off64_t)offset, SEEK_SET) < 0)
+ if (lseek(c.kd, (off_t)offset, SEEK_SET) < 0)
return -1;
if (read(c.kd, buf, len) < 0)
return -1;
@@ -537,10 +530,10 @@ int dev_read(void *buf, __u64 offset, si
/* err = 1: cache not available, fall back to non-cache R/W */
/* err = 0: success, err=-1: I/O error */
- err = dcache_read(fd, buf, (off64_t)offset, len);
+ err = dcache_read(fd, buf, (off_t)offset, len);
if (err <= 0)
return err;
- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
+ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
return -1;
if (read(fd, buf, len) < 0)
return -1;
@@ -586,9 +579,9 @@ int dev_write(void *buf, __u64 offset, s
* dcache_update_cache() just update cache, won't do I/O.
* Thus even no error, we need normal non-cache I/O for actual write
*/
- if (dcache_update_cache(fd, buf, (off64_t)offset, len) < 0)
+ if (dcache_update_cache(fd, buf, (off_t)offset, len) < 0)
return -1;
- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
+ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
return -1;
if (write(fd, buf, len) < 0)
return -1;
@@ -602,7 +595,7 @@ int dev_write_block(void *buf, __u64 blk
int dev_write_dump(void *buf, __u64 offset, size_t len)
{
- if (lseek64(c.dump_fd, (off64_t)offset, SEEK_SET) < 0)
+ if (lseek(c.dump_fd, (off_t)offset, SEEK_SET) < 0)
return -1;
if (write(c.dump_fd, buf, len) < 0)
return -1;
@@ -627,7 +620,7 @@ int dev_fill(void *buf, __u64 offset, si
/* Only allow fill to zero */
if (*((__u8*)buf))
return -1;
- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
+ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
return -1;
if (write(fd, buf, len) < 0)
return -1;
--- a/tools/f2fs_io/f2fs_io.c
+++ b/tools/f2fs_io/f2fs_io.c
@@ -12,8 +12,8 @@
#ifndef _LARGEFILE_SOURCE
#define _LARGEFILE_SOURCE
#endif
-#ifndef _LARGEFILE64_SOURCE
-#define _LARGEFILE64_SOURCE
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
#endif
#ifndef O_LARGEFILE
#define O_LARGEFILE 0

View File

@@ -0,0 +1,20 @@
SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
# to provide libuuid
DEPENDS = "util-linux"
SRCREV = "06c027abc6153c4a97cba5317844e8dcaaee3cf7"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;branch=master \
file://0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch \
"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
inherit pkgconfig autotools
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,48 @@
From 455001cb0112f7324ab50f555aa5ed5eae1bb93b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 16 Jan 2023 19:23:18 -0800
Subject: [PATCH] Replace std::ptr_fun for c++17
std::ptr_fun was deprecated in C++11, and removed completely in C++17.
Similarly, std::not1 is deprecated since C++17.
Modern compilers like clang >= 16 have started to notice it
src/FatUtils.h:41:46: error: use of undeclared identifier 'ptr_fun'
| s.erase(find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(), s.end());
Therefore replace ptr_fun with lambda
Also use 'unsigned char' parameter to std::isspace, for reason see [1]
[1] https://en.cppreference.com/w/cpp/string/byte/isspace#Notes
Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/36]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/FatUtils.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/FatUtils.h b/src/FatUtils.h
index 5080f2a..a8d69ee 100644
--- a/src/FatUtils.h
+++ b/src/FatUtils.h
@@ -32,13 +32,13 @@ using namespace std;
// trim from start
static inline string ltrim(string s) {
- s.erase(s.begin(), find_if(s.begin(), s.end(), not1(ptr_fun<int, int>(isspace))));
+ s.erase(s.begin(), find_if(s.begin(), s.end(), [](unsigned char c) {return !isspace(c);}));
return s;
}
// trim from end
static inline string rtrim(string s) {
- s.erase(find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(), s.end());
+ s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char c) {return !isspace(c);}).base(), s.end());
return s;
}
--
2.39.0

View File

@@ -0,0 +1,37 @@
From 14ef83291096e019ebc48040cf63530a2574a26d Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Sun, 19 Jan 2020 16:03:21 +0000
Subject: [PATCH] Use unistd.h not argp.h for all POSIX systems
getopt(3) is found in unistd.h on all POSIX systems and we make no use
of any of the GNU specific argp extensions. Include unistd.h directly to
allow building with musl on linux, whilst retaining compatibility with
glibc and other unices.
Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/34]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/fatcat.cpp | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/fatcat.cpp b/src/fatcat.cpp
index ce23ca07bb99..b4427e465bde 100644
--- a/src/fatcat.cpp
+++ b/src/fatcat.cpp
@@ -1,14 +1,10 @@
#include <stdlib.h>
-#include<string.h>
-#ifdef __APPLE__
-#include <unistd.h>
-#else
+#include <string.h>
#ifdef __WIN__
#include <ctype.h>
#include "xgetopt/xgetopt.h"
#else
-#include <argp.h>
-#endif
+#include <unistd.h>
#endif
#include <stdio.h>

View File

@@ -0,0 +1,71 @@
From 0383fff94471278c92ef2ad5edc14abbb40a9acd Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 16 Dec 2022 18:54:55 -0800
Subject: [PATCH] Enable 64bit off_t
Ensure that off_t is always 64-bit by specifying -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 this will ensure that normal lseek() function is
same as lseek64
This helps compiling on latest musl where lseek64 and friends are not
available
Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/34]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
CMakeLists.txt | 2 ++
src/core/FatSystem.cpp | 4 ++--
src/core/FatSystem.h | 2 --
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d6a2649..4cdd1fb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,6 +34,8 @@ IF(DEFINE_WIN)
add_definitions(-D__WIN__)
ENDIF(DEFINE_WIN)
+add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64)
+
include_directories("${CMAKE_SOURCE_DIR}/src")
add_executable(fatcat "src/fatcat.cpp" ${ALL_SOURCES})
diff --git a/src/core/FatSystem.cpp b/src/core/FatSystem.cpp
index 79cda8c..1f52e82 100644
--- a/src/core/FatSystem.cpp
+++ b/src/core/FatSystem.cpp
@@ -90,7 +90,7 @@ int FatSystem::readData(unsigned long long address, char *buffer, int size)
cerr << "! Trying to read outside the disk" << endl;
}
- lseek64(fd, globalOffset+address, SEEK_SET);
+ lseek(fd, globalOffset+address, SEEK_SET);
int n;
int pos = 0;
@@ -112,7 +112,7 @@ int FatSystem::writeData(unsigned long long address, const char *buffer, int siz
throw string("Trying to write data while write mode is disabled");
}
- lseek64(fd, globalOffset+address, SEEK_SET);
+ lseek(fd, globalOffset+address, SEEK_SET);
int n;
int pos = 0;
diff --git a/src/core/FatSystem.h b/src/core/FatSystem.h
index cd3c914..f9f2ca3 100644
--- a/src/core/FatSystem.h
+++ b/src/core/FatSystem.h
@@ -11,11 +11,9 @@
#ifdef __APPLE__
#define O_LARGEFILE 0
-#define lseek64 lseek
#endif
#ifdef __WIN__
#define O_LARGEFILE 0
-#define lseek64 lseek
#endif
using namespace std;

View File

@@ -0,0 +1,20 @@
SUMMARY = "FAT filesystems explore, extract, repair, and forensic tool"
DESCRIPTION = "This tool is designed to manipulate FAT filesystems, in order to \
explore, extract, repair, recover and forensic them. It currently supports \
FAT12, FAT16 and FAT32."
HOMEPAGE = "https://github.com/Gregwar/fatcat"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=57fbbfebd0dd1d6ff21b8cecb552a03f"
SRC_URI = "git://github.com/Gregwar/fatcat.git;branch=master;protocol=https \
file://0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch \
file://0002-Enable-64bit-off_t.patch \
file://0001-Replace-std-ptr_fun-for-c-17.patch \
"
SRCREV = "99cb99fc86eb1601ac7ae27f5bba23add04d2543"
S = "${WORKDIR}/git"
inherit cmake

View File

@@ -0,0 +1,27 @@
From b16373da7e5a45cf92df83b39e2fdee939439c84 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 17 Jul 2021 08:55:42 -0700
Subject: [PATCH] build: Do not build .sgml file
It needs docbook-to-man tool which we do not have recipe for
Upstream-Status: Inappropriate [needs native docbook-to-man tool]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 2becb84..858df00 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,4 +14,4 @@ SUFFIXES = .1
CLEANFILES = $(man_MANS)
.sgml.1:
- docbook-to-man $< > $@
+ @echo "Needs docbook-to-man"
--
2.32.0

View File

@@ -0,0 +1,34 @@
From 69647e5d393a52ed3892eccc172ee750d6aaa45d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 30 Dec 2022 21:08:25 -0800
Subject: [PATCH] configure: Do not add -D_FILE_OFFSET_BITS to CFLAGS
AC_SYS_LARGEFILE macro is in use and this will add a definition for
_FILE_OFFSET_BITS in generated config.h which is already included as
first include file in fatresize.c hence its not required to be added via
CFLAGS, this also fixes a case when -D_FILE_OFFSET_BITS=64 is passed via
CC from environment, where the autoconf macros set
ac_cv_sys_file_offset_bits=no and that means we will have
-D_FILE_OFFSET_BITS=no added to CFLAGS which messes up builds.
Upstream-Status: Submitted [https://salsa.debian.org/parted-team/fatresize/-/merge_requests/3]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index d6e6cb2..4dcec28 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,7 +29,6 @@ AC_CHECK_FUNCS([memset strtoll])
# Check for LFS
AC_SYS_LARGEFILE
-CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}"
dnl libparted
# hack
--
2.39.0

View File

@@ -0,0 +1,16 @@
SUMMARY = "Resize FAT partitions using libparted"
SECTION = "console/tools"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "git://salsa.debian.org/parted-team/fatresize.git;protocol=https;branch=master \
file://0001-build-Do-not-build-.sgml-file.patch \
file://0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch \
"
SRCREV = "12da22087de2ec43f0fe5af1237389e94619c483"
S = "${WORKDIR}/git"
DEPENDS = "parted"
inherit autotools pkgconfig

View File

@@ -0,0 +1,28 @@
DESCRIPTION = "Maintenance tools for OverlayFS"
HOMEPAGE = "https://github.com/kmxz/overlayfs-tools"
LICENSE = "WTFPL"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f312a7c4d02230e8f2b537295d375c69"
SRC_URI = "\
git://github.com/kmxz/overlayfs-tools.git;protocol=https;branch=master \
"
PV = "1.0+git"
SRCREV = "b5e5a829895ac98ccfe4629fbfbd8b819262bd00"
S = "${WORKDIR}/git"
B = "${S}"
# Required to have the fts.h header for musl
DEPENDS:append:libc-musl = " fts"
EXTRA_OEMAKE += "'CC=${CC} -O2'"
# Fix the missing fts libs when using musl
EXTRA_OEMAKE:append:libc-musl = " LDLIBS=-lfts"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install () {
install -d ${D}${bindir}
install -m 0755 ${B}/overlay ${D}${bindir}
install -m 0755 ${B}/fsck.overlay ${D}${bindir}
}

View File

@@ -0,0 +1,14 @@
Upstream-Status: Pending
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 *

View File

@@ -0,0 +1,34 @@
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>
---
Upstream-Status: Pending
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

View File

@@ -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-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit autotools pkgconfig 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"

View File

@@ -0,0 +1,31 @@
SUMMARY = "Tool to access UFS (Universal Flash Storage) devices"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
BRANCH ?= "dev"
SRCREV = "18c0a8454ca1cf8969170049f8c628d88627beec"
SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=https;branch=${BRANCH} \
"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" CFLAGS="${CFLAGS}""
CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__ -D_GNU_SOURCE"
do_configure() {
sed -i -e "s|-static$||g" ${S}/Makefile
}
do_install() {
install -D -m 755 ${S}/ufs-utils ${D}${bindir}/ufs-utils
}
PROVIDES += "ufs-tool"
RPROVIDES:${PN} += "ufs-tool"

View File

@@ -0,0 +1,45 @@
From 45a532ad73b1ba27fc951657a33f39e8fa915765 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 25 Mar 2024 10:02:20 -0700
Subject: [PATCH] include libgen.h for basename API prototype
basename prototype has been removed from string.h from latest musl [1]
compilers e.g. clang-18 flags the absense of prototype as error. therefore
include libgen.h for providing it.
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20240325170941.3279129-1-raj.khem@gmail.com/T/#u]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
common/main.c | 1 +
invutil/invidx.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/common/main.c b/common/main.c
index 1db07d4..ca3b7d4 100644
--- a/common/main.c
+++ b/common/main.c
@@ -16,6 +16,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <libgen.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
diff --git a/invutil/invidx.c b/invutil/invidx.c
index 5874e8d..c4e2e21 100644
--- a/invutil/invidx.c
+++ b/invutil/invidx.c
@@ -19,6 +19,7 @@
#include <xfs/xfs.h>
#include <xfs/jdm.h>
+#include <libgen.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
--
2.44.0

View File

@@ -0,0 +1,52 @@
From fea8c4634469784c16211e2597411c18c72dfa4a Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 5 Mar 2020 14:36:14 +0800
Subject: [PATCH] xfsdump: support usrmerge
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
dump/Makefile | 6 +-----
restore/Makefile | 6 +-----
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/dump/Makefile b/dump/Makefile
index 66f00d3..cc2d973 100644
--- a/dump/Makefile
+++ b/dump/Makefile
@@ -97,12 +97,8 @@ default: depend $(LTCOMMAND)
include $(BUILDRULES)
install: default
- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
$(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
- # skip symlink when /sbin is alread symlinked to /usr/sbin, like on Fedora
- test $(PKG_ROOT_SBIN_DIR) -ef $(PKG_SBIN_DIR) || \
- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
+ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
install-dev:
.dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON)
diff --git a/restore/Makefile b/restore/Makefile
index ac3f8c8..3c46394 100644
--- a/restore/Makefile
+++ b/restore/Makefile
@@ -111,12 +111,8 @@ default: depend $(LTCOMMAND)
include $(BUILDRULES)
install: default
- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
$(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
- # skip symlink when /sbin is alread symlinked to /usr/sbin, like on Fedora
- test $(PKG_ROOT_SBIN_DIR) -ef $(PKG_SBIN_DIR) || \
- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
+ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
install-dev:
.dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON)
--
2.7.4

View File

@@ -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

View File

@@ -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 = "GPL-2.0-only"
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 \
file://0001-include-libgen.h-for-basename-API-prototype.patch \
${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-xfsdump-support-usrmerge.patch','',d)} \
"
SRC_URI[sha256sum] = "f39c4c1b306b2dd7ec979c0e94d60fe69083d2ecf9af051cac5ef3bed772c74a"
inherit autotools-brokensep
PARALLEL_MAKE = ""
PACKAGECONFIG ??= ""
PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
CFLAGS += "-D_FILE_OFFSET_BITS=64"
TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
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
}

View File

@@ -0,0 +1,40 @@
From e81633a276dd6a9f919e5e5c15481ac50a8e485d Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 30 Aug 2019 14:59:06 +0800
Subject: [PATCH] support usrmerge
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.ac | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4b7e4c8..f1afbd6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,8 +110,7 @@ AC_ARG_ENABLE(libicu,
# If the user specified a libdir ending in lib64 do not append another
# 64 to the library names.
#
-base_libdir=`basename "$libdir"`
-case $base_libdir in
+case `basename "$libdir"` in
lib64)
enable_lib64=no
esac
@@ -125,8 +124,8 @@ esac
#
case $exec_prefix:$prefix in
NONE:NONE | NONE:/usr | /usr:*)
- root_sbindir='/sbin'
- root_libdir="/${base_libdir}"
+ root_sbindir="${base_sbindir}"
+ root_libdir="${base_libdir}"
;;
*)
root_sbindir="${sbindir}"
--
2.7.4

View File

@@ -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"

View File

@@ -0,0 +1,27 @@
From f62d3e5cc1d4e416b97778059f0b3c20d777a4c2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 21 Dec 2022 17:40:11 -0800
Subject: [PATCH] configure: Use AC_SYS_LARGERFILE autoconf macro
Helps define largefile support on relevant platforms
Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20221222015327.939932-1-raj.khem@gmail.com/T/#t]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 3 +++
1 file changed, 3 insertions(+)
diff --git a/configure.ac b/configure.ac
index 5a6bf185..a6f556ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,6 +10,9 @@ AC_PROG_INSTALL
LT_INIT
AC_PROG_CC
+
+AC_SYS_LARGEFILE
+
AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
if test "${BUILD_CC+set}" != "set"; then
if test $cross_compiling = no; then

View File

@@ -0,0 +1,724 @@
From f260099fc45f0653aa4758d1d581e07f5b9c6a54 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 21 Dec 2022 17:43:07 -0800
Subject: [PATCH] Replace off64_t/stat64 with off_t/stat
When using AC_SYS_LARGEFILE, it will automatically add
-D_FILE_OFFSET_BITS=64 to enable 64bit off_t and all lfs64 support
helps compile on musl where off_t was always 64bit and lfs64 were never
needed
Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20221222015327.939932-1-raj.khem@gmail.com/T/#t]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
copy/xfs_copy.c | 2 +-
fsr/xfs_fsr.c | 2 +-
io/bmap.c | 6 +++---
io/copy_file_range.c | 4 ++--
io/cowextsize.c | 6 +++---
io/fadvise.c | 2 +-
io/fiemap.c | 6 +++---
io/fsmap.c | 6 +++---
io/io.h | 10 +++++-----
io/madvise.c | 2 +-
io/mincore.c | 2 +-
io/mmap.c | 12 ++++++------
io/pread.c | 22 +++++++++++-----------
io/pwrite.c | 20 ++++++++++----------
io/reflink.c | 4 ++--
io/seek.c | 6 +++---
io/sendfile.c | 6 +++---
io/stat.c | 2 +-
io/sync_file_range.c | 2 +-
io/truncate.c | 2 +-
libxfs/rdwr.c | 8 ++++----
mdrestore/xfs_mdrestore.c | 2 +-
repair/prefetch.c | 2 +-
scrub/spacemap.c | 6 +++---
spaceman/freesp.c | 4 ++--
spaceman/trim.c | 2 +-
26 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 0420649..98a578a 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -881,7 +881,7 @@ main(int argc, char **argv)
}
} else {
char *lb = memalign(wbuf_align, XFS_MAX_SECTORSIZE);
- off64_t off;
+ off_t off;
ssize_t len;
/* ensure device files are sufficiently large */
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index ba02506..12fffbd 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -1148,7 +1148,7 @@ packfile(char *fname, char *tname, int fd,
struct dioattr dio;
static xfs_swapext_t sx;
struct xfs_flock64 space;
- off64_t cnt, pos;
+ off_t cnt, pos;
void *fbuf = NULL;
int ct, wc, wc_b4;
char ffname[SMBUFSZ];
diff --git a/io/bmap.c b/io/bmap.c
index 722a389..6182e1c 100644
--- a/io/bmap.c
+++ b/io/bmap.c
@@ -257,7 +257,7 @@ bmap_f(
#define FLG_BSW 0000010 /* Not on begin of stripe width */
#define FLG_ESW 0000001 /* Not on end of stripe width */
int agno;
- off64_t agoff, bbperag;
+ off_t agoff, bbperag;
int foff_w, boff_w, aoff_w, tot_w, agno_w;
char rbuf[32], bbuf[32], abuf[32];
int sunit, swidth;
@@ -267,8 +267,8 @@ bmap_f(
if (is_rt)
sunit = swidth = bbperag = 0;
else {
- bbperag = (off64_t)fsgeo.agblocks *
- (off64_t)fsgeo.blocksize / BBSIZE;
+ bbperag = (off_t)fsgeo.agblocks *
+ (off_t)fsgeo.blocksize / BBSIZE;
sunit = (fsgeo.sunit * fsgeo.blocksize) / BBSIZE;
swidth = (fsgeo.swidth * fsgeo.blocksize) / BBSIZE;
}
diff --git a/io/copy_file_range.c b/io/copy_file_range.c
index d154fa7..422e691 100644
--- a/io/copy_file_range.c
+++ b/io/copy_file_range.c
@@ -54,7 +54,7 @@ copy_file_range_cmd(int fd, long long *src_off, long long *dst_off, size_t len)
return 0;
}
-static off64_t
+static off_t
copy_src_filesize(int fd)
{
struct stat st;
@@ -154,7 +154,7 @@ copy_range_f(int argc, char **argv)
}
if (!len_specified) {
- off64_t sz;
+ off_t sz;
sz = copy_src_filesize(fd);
if (sz < 0 || (unsigned long long)sz > SIZE_MAX) {
diff --git a/io/cowextsize.c b/io/cowextsize.c
index f6b134d..00e40c6 100644
--- a/io/cowextsize.c
+++ b/io/cowextsize.c
@@ -50,10 +50,10 @@ static int
set_cowextsize(const char *path, int fd, long extsz)
{
struct fsxattr fsx;
- struct stat64 stat;
+ struct stat stat;
- if (fstat64(fd, &stat) < 0) {
- perror("fstat64");
+ if (fstat(fd, &stat) < 0) {
+ perror("fstat");
exitcode = 1;
return 0;
}
diff --git a/io/fadvise.c b/io/fadvise.c
index 60cc0f0..0966c41 100644
--- a/io/fadvise.c
+++ b/io/fadvise.c
@@ -39,7 +39,7 @@ fadvise_f(
int argc,
char **argv)
{
- off64_t offset = 0, length = 0;
+ off_t offset = 0, length = 0;
int c, range = 0, advise = POSIX_FADV_NORMAL;
while ((c = getopt(argc, argv, "dnrsw")) != EOF) {
diff --git a/io/fiemap.c b/io/fiemap.c
index f0c74df..b41f71b 100644
--- a/io/fiemap.c
+++ b/io/fiemap.c
@@ -234,9 +234,9 @@ fiemap_f(
int tot_w = 5; /* 5 since its just one number */
int flg_w = 5;
__u64 last_logical = 0; /* last extent offset handled */
- off64_t start_offset = 0; /* mapping start */
- off64_t length = -1LL; /* mapping length */
- off64_t range_end = -1LL; /* mapping end*/
+ off_t start_offset = 0; /* mapping start */
+ off_t length = -1LL; /* mapping length */
+ off_t range_end = -1LL; /* mapping end*/
size_t fsblocksize, fssectsize;
struct stat st;
diff --git a/io/fsmap.c b/io/fsmap.c
index 7db5184..bf11963 100644
--- a/io/fsmap.c
+++ b/io/fsmap.c
@@ -170,7 +170,7 @@ dump_map_verbose(
unsigned long long i;
struct fsmap *p;
int agno;
- off64_t agoff, bperag;
+ off_t agoff, bperag;
int foff_w, boff_w, aoff_w, tot_w, agno_w, own_w;
int nr_w, dev_w;
char rbuf[40], bbuf[40], abuf[40], obuf[40];
@@ -183,8 +183,8 @@ dump_map_verbose(
dev_w = 3;
nr_w = 4;
tot_w = MINTOT_WIDTH;
- bperag = (off64_t)fsgeo->agblocks *
- (off64_t)fsgeo->blocksize;
+ bperag = (off_t)fsgeo->agblocks *
+ (off_t)fsgeo->blocksize;
sunit = (fsgeo->sunit * fsgeo->blocksize);
swidth = (fsgeo->swidth * fsgeo->blocksize);
diff --git a/io/io.h b/io/io.h
index fe474fa..68e5e48 100644
--- a/io/io.h
+++ b/io/io.h
@@ -53,7 +53,7 @@ extern int stat_f(int argc, char **argv);
typedef struct mmap_region {
void *addr; /* address of start of mapping */
size_t length; /* length of mapping */
- off64_t offset; /* start offset into backing file */
+ off_t offset; /* start offset into backing file */
int prot; /* protection mode of the mapping */
int flags; /* MAP_* flags passed to mmap() */
char *name; /* name of backing file */
@@ -63,13 +63,13 @@ extern mmap_region_t *maptable; /* mmap'd region array */
extern int mapcount; /* #entries in the mapping table */
extern mmap_region_t *mapping; /* active mapping table entry */
extern int maplist_f(void);
-extern void *check_mapping_range(mmap_region_t *, off64_t, size_t, int);
+extern void *check_mapping_range(mmap_region_t *, off_t, size_t, int);
/*
* Various xfs_io helper routines/globals
*/
-extern off64_t filesize(void);
+extern off_t filesize(void);
extern int openfile(char *, struct xfs_fsop_geom *, int, mode_t,
struct fs_path *);
extern int addfile(char *, int , struct xfs_fsop_geom *, int,
@@ -84,9 +84,9 @@ extern size_t io_buffersize;
extern int vectors;
extern struct iovec *iov;
extern int alloc_buffer(size_t, int, unsigned int);
-extern int read_buffer(int, off64_t, long long, long long *,
+extern int read_buffer(int, off_t, long long, long long *,
int, int);
-extern void dump_buffer(off64_t, ssize_t);
+extern void dump_buffer(off_t, ssize_t);
extern void attr_init(void);
extern void bmap_init(void);
diff --git a/io/madvise.c b/io/madvise.c
index bde3153..6e9c5b1 100644
--- a/io/madvise.c
+++ b/io/madvise.c
@@ -39,7 +39,7 @@ madvise_f(
int argc,
char **argv)
{
- off64_t offset, llength;
+ off_t offset, llength;
size_t length;
void *start;
int advise = MADV_NORMAL, c;
diff --git a/io/mincore.c b/io/mincore.c
index 67f1d6c..24147ac 100644
--- a/io/mincore.c
+++ b/io/mincore.c
@@ -17,7 +17,7 @@ mincore_f(
int argc,
char **argv)
{
- off64_t offset, llength;
+ off_t offset, llength;
size_t length;
size_t blocksize, sectsize;
void *start;
diff --git a/io/mmap.c b/io/mmap.c
index 7114404..128a2c0 100644
--- a/io/mmap.c
+++ b/io/mmap.c
@@ -64,11 +64,11 @@ print_mapping(
void *
check_mapping_range(
mmap_region_t *map,
- off64_t offset,
+ off_t offset,
size_t length,
int pagealign)
{
- off64_t relative;
+ off_t relative;
if (offset < mapping->offset) {
printf(_("offset (%lld) is before start of mapping (%lld)\n"),
@@ -156,7 +156,7 @@ mmap_f(
int argc,
char **argv)
{
- off64_t offset;
+ off_t offset;
ssize_t length = 0, length2 = 0;
void *address = NULL;
char *filename;
@@ -309,7 +309,7 @@ msync_f(
int argc,
char **argv)
{
- off64_t offset;
+ off_t offset;
ssize_t length;
void *start;
int c, flags = 0;
@@ -402,7 +402,7 @@ mread_f(
int argc,
char **argv)
{
- off64_t offset, tmp, dumpoffset, printoffset;
+ off_t offset, tmp, dumpoffset, printoffset;
ssize_t length;
size_t dumplen, cnt = 0;
char *bp;
@@ -567,7 +567,7 @@ mwrite_f(
int argc,
char **argv)
{
- off64_t offset, tmp;
+ off_t offset, tmp;
ssize_t length;
void *start;
char *sp;
diff --git a/io/pread.c b/io/pread.c
index 0f1d8b9..79990c6 100644
--- a/io/pread.c
+++ b/io/pread.c
@@ -116,7 +116,7 @@ alloc_buffer(
static void
__dump_buffer(
void *buf,
- off64_t offset,
+ off_t offset,
ssize_t len)
{
int i, j;
@@ -141,7 +141,7 @@ __dump_buffer(
void
dump_buffer(
- off64_t offset,
+ off_t offset,
ssize_t len)
{
int i, l;
@@ -164,7 +164,7 @@ dump_buffer(
static ssize_t
do_preadv(
int fd,
- off64_t offset,
+ off_t offset,
long long count)
{
int vecs = 0;
@@ -199,7 +199,7 @@ do_preadv(
static ssize_t
do_pread(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
size_t buffer_size)
{
@@ -212,13 +212,13 @@ do_pread(
static int
read_random(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
long long *total,
unsigned int seed,
int eof)
{
- off64_t end, off, range;
+ off_t end, off, range;
ssize_t bytes;
int ops = 0;
@@ -259,12 +259,12 @@ read_random(
static int
read_backward(
int fd,
- off64_t *offset,
+ off_t *offset,
long long *count,
long long *total,
int eof)
{
- off64_t end, off = *offset;
+ off_t end, off = *offset;
ssize_t bytes = 0, bytes_requested;
long long cnt = *count;
int ops = 0;
@@ -319,7 +319,7 @@ read_backward(
static int
read_forward(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
long long *total,
int verbose,
@@ -353,7 +353,7 @@ read_forward(
int
read_buffer(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
long long *total,
int verbose,
@@ -368,7 +368,7 @@ pread_f(
char **argv)
{
size_t bsize;
- off64_t offset;
+ off_t offset;
unsigned int zeed = 0;
long long count, total, tmp;
size_t fsblocksize, fssectsize;
diff --git a/io/pwrite.c b/io/pwrite.c
index 467bfa9..8d134c5 100644
--- a/io/pwrite.c
+++ b/io/pwrite.c
@@ -54,7 +54,7 @@ pwrite_help(void)
static ssize_t
do_pwritev(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
int pwritev2_flags)
{
@@ -97,7 +97,7 @@ do_pwritev(
static ssize_t
do_pwrite(
int fd,
- off64_t offset,
+ off_t offset,
long long count,
size_t buffer_size,
int pwritev2_flags)
@@ -110,13 +110,13 @@ do_pwrite(
static int
write_random(
- off64_t offset,
+ off_t offset,
long long count,
unsigned int seed,
long long *total,
int pwritev2_flags)
{
- off64_t off, range;
+ off_t off, range;
ssize_t bytes;
int ops = 0;
@@ -155,12 +155,12 @@ write_random(
static int
write_backward(
- off64_t offset,
+ off_t offset,
long long *count,
long long *total,
int pwritev2_flags)
{
- off64_t end, off = offset;
+ off_t end, off = offset;
ssize_t bytes = 0, bytes_requested;
long long cnt = *count;
int ops = 0;
@@ -214,11 +214,11 @@ write_backward(
static int
write_buffer(
- off64_t offset,
+ off_t offset,
long long count,
size_t bs,
int fd,
- off64_t skip,
+ off_t skip,
long long *total,
int pwritev2_flags)
{
@@ -253,7 +253,7 @@ write_buffer(
static int
write_once(
- off64_t offset,
+ off_t offset,
long long count,
long long *total,
int pwritev2_flags)
@@ -275,7 +275,7 @@ pwrite_f(
char **argv)
{
size_t bsize;
- off64_t offset, skip = 0;
+ off_t offset, skip = 0;
long long count, total, tmp;
unsigned int zeed = 0, seed = 0xcdcdcdcd;
size_t fsblocksize, fssectsize;
diff --git a/io/reflink.c b/io/reflink.c
index 8e4f389..b6a3c05 100644
--- a/io/reflink.c
+++ b/io/reflink.c
@@ -98,7 +98,7 @@ dedupe_f(
int argc,
char **argv)
{
- off64_t soffset, doffset;
+ off_t soffset, doffset;
long long count, total;
char *infile;
int condensed, quiet_flag;
@@ -226,7 +226,7 @@ reflink_f(
int argc,
char **argv)
{
- off64_t soffset, doffset;
+ off_t soffset, doffset;
long long count = 0, total;
char *infile = NULL;
int condensed, quiet_flag;
diff --git a/io/seek.c b/io/seek.c
index 6734ecb..ffe7439 100644
--- a/io/seek.c
+++ b/io/seek.c
@@ -63,8 +63,8 @@ static void
seek_output(
int startflag,
char *type,
- off64_t start,
- off64_t offset)
+ off_t start,
+ off_t offset)
{
if (offset == -1) {
if (errno == ENXIO) {
@@ -92,7 +92,7 @@ seek_f(
int argc,
char **argv)
{
- off64_t offset, start;
+ off_t offset, start;
size_t fsblocksize, fssectsize;
int c;
int current; /* specify data or hole */
diff --git a/io/sendfile.c b/io/sendfile.c
index a003bb5..2ce569c 100644
--- a/io/sendfile.c
+++ b/io/sendfile.c
@@ -34,12 +34,12 @@ sendfile_help(void)
static int
send_buffer(
- off64_t offset,
+ off_t offset,
size_t count,
int fd,
long long *total)
{
- off64_t off = offset;
+ off_t off = offset;
ssize_t bytes, bytes_remaining = count;
int ops = 0;
@@ -66,7 +66,7 @@ sendfile_f(
int argc,
char **argv)
{
- off64_t offset = 0;
+ off_t offset = 0;
long long count, total;
size_t blocksize, sectsize;
struct timeval t1, t2;
diff --git a/io/stat.c b/io/stat.c
index b57f9ee..e8f68dc 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -21,7 +21,7 @@ static cmdinfo_t stat_cmd;
static cmdinfo_t statfs_cmd;
static cmdinfo_t statx_cmd;
-off64_t
+off_t
filesize(void)
{
struct stat st;
diff --git a/io/sync_file_range.c b/io/sync_file_range.c
index 94285c2..2375a06 100644
--- a/io/sync_file_range.c
+++ b/io/sync_file_range.c
@@ -30,7 +30,7 @@ sync_range_f(
int argc,
char **argv)
{
- off64_t offset = 0, length = 0;
+ off_t offset = 0, length = 0;
int c, sync_mode = 0;
size_t blocksize, sectsize;
diff --git a/io/truncate.c b/io/truncate.c
index 1d04919..a74b613 100644
--- a/io/truncate.c
+++ b/io/truncate.c
@@ -16,7 +16,7 @@ truncate_f(
int argc,
char **argv)
{
- off64_t offset;
+ off_t offset;
size_t blocksize, sectsize;
init_cvtnum(&blocksize, &sectsize);
diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c
index 0e33211..153007d 100644
--- a/libxfs/rdwr.c
+++ b/libxfs/rdwr.c
@@ -576,7 +576,7 @@ libxfs_balloc(
static int
-__read_buf(int fd, void *buf, int len, off64_t offset, int flags)
+__read_buf(int fd, void *buf, int len, off_t offset, int flags)
{
int sts;
@@ -638,7 +638,7 @@ libxfs_readbufr_map(struct xfs_buftarg *btp, struct xfs_buf *bp, int flags)
buf = bp->b_addr;
for (i = 0; i < bp->b_nmaps; i++) {
- off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
+ off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
int len = BBTOB(bp->b_maps[i].bm_len);
error = __read_buf(fd, buf, len, offset, flags);
@@ -797,7 +797,7 @@ err:
}
static int
-__write_buf(int fd, void *buf, int len, off64_t offset, int flags)
+__write_buf(int fd, void *buf, int len, off_t offset, int flags)
{
int sts;
@@ -863,7 +863,7 @@ libxfs_bwrite(
void *buf = bp->b_addr;
for (i = 0; i < bp->b_nmaps; i++) {
- off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
+ off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
int len = BBTOB(bp->b_maps[i].bm_len);
bp->b_error = __write_buf(fd, buf, len, offset,
diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
index 8e3998d..334bdd2 100644
--- a/mdrestore/xfs_mdrestore.c
+++ b/mdrestore/xfs_mdrestore.c
@@ -160,7 +160,7 @@ verify_device_size(
} else {
/* ensure device is sufficiently large enough */
char lb[XFS_MAX_SECTORSIZE] = { 0 };
- off64_t off;
+ off_t off;
off = nr_blocks * blocksize - sizeof(lb);
if (pwrite(dev_fd, lb, sizeof(lb), off) < 0)
diff --git a/repair/prefetch.c b/repair/prefetch.c
index 78c1e39..b0dd197 100644
--- a/repair/prefetch.c
+++ b/repair/prefetch.c
@@ -475,7 +475,7 @@ pf_batch_read(
{
struct xfs_buf *bplist[MAX_BUFS];
unsigned int num;
- off64_t first_off, last_off, next_off;
+ off_t first_off, last_off, next_off;
int len, size;
int i;
int inode_bufs;
diff --git a/scrub/spacemap.c b/scrub/spacemap.c
index b6fd411..9cefe07 100644
--- a/scrub/spacemap.c
+++ b/scrub/spacemap.c
@@ -97,11 +97,11 @@ scan_ag_rmaps(
struct scrub_ctx *ctx = (struct scrub_ctx *)wq->wq_ctx;
struct scan_blocks *sbx = arg;
struct fsmap keys[2];
- off64_t bperag;
+ off_t bperag;
int ret;
- bperag = (off64_t)ctx->mnt.fsgeom.agblocks *
- (off64_t)ctx->mnt.fsgeom.blocksize;
+ bperag = (off_t)ctx->mnt.fsgeom.agblocks *
+ (off_t)ctx->mnt.fsgeom.blocksize;
memset(keys, 0, sizeof(struct fsmap) * 2);
keys->fmr_device = ctx->fsinfo.fs_datadev;
diff --git a/spaceman/freesp.c b/spaceman/freesp.c
index 70dcdb5..f5177cb 100644
--- a/spaceman/freesp.c
+++ b/spaceman/freesp.c
@@ -62,7 +62,7 @@ static void
addtohist(
xfs_agnumber_t agno,
xfs_agblock_t agbno,
- off64_t len)
+ off_t len)
{
long i;
@@ -152,7 +152,7 @@ scan_ag(
struct fsmap *l, *h;
struct fsmap *p;
struct xfs_fd *xfd = &file->xfd;
- off64_t aglen;
+ off_t aglen;
xfs_agblock_t agbno;
unsigned long long freeblks = 0;
unsigned long long freeexts = 0;
diff --git a/spaceman/trim.c b/spaceman/trim.c
index e9ed47e..727dd81 100644
--- a/spaceman/trim.c
+++ b/spaceman/trim.c
@@ -26,7 +26,7 @@ trim_f(
struct xfs_fd *xfd = &file->xfd;
struct xfs_fsop_geom *fsgeom = &xfd->fsgeom;
xfs_agnumber_t agno = 0;
- off64_t offset = 0;
+ off_t offset = 0;
ssize_t length = 0;
ssize_t minlen = 0;
int aflag = 0;

View File

@@ -0,0 +1,15 @@
Upstream-Status: Pending
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)

View File

@@ -0,0 +1,74 @@
SUMMARY = "XFS Filesystem Utilities"
HOMEPAGE = "http://oss.sgi.com/projects/xfs"
SECTION = "base"
LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LICENSE:libhandle = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
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://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
file://0001-support-usrmerge.patch \
file://0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch \
file://0005-Replace-off64_t-stat64-with-off_t-stat.patch \
"
SRC_URI[sha256sum] = "50ca2f4676df8fab4cb4c3ef3dd512d5551e6844d40a65a31d5b8e03593d22df"
inherit autotools-brokensep pkgconfig
PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
DEPENDS += "util-linux libinih liburcu"
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 \
--enable-scrub=no \
INSTALL_USER=root \
INSTALL_GROUP=root \
ac_cv_header_aio_h=yes \
ac_cv_lib_rt_lio_listio=yes \
OPTIMIZER='${SELECTED_OPTIMIZATION}' \
"
DISABLE_STATIC = ""
EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
PACKAGECONFIG ??= "blkid"
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
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:append() {
oe_runmake 'DESTDIR=${D}' install-dev
rm ${D}${libdir}/*.la
rmdir --ignore-fail-on-non-empty ${D}${libdir}
if [ ${libdir} != ${base_libdir} ];then
ln -sf -r ${D}${libdir}/libhandle.a ${D}${base_libdir}/libhandle.a
ln -sf -r ${D}${base_libdir}/libhandle.so ${D}${libdir}/libhandle.so
fi
}

View File

@@ -0,0 +1,41 @@
From 5facddc332c5ff8330f93c0a7e1b7f6d7bbd24a3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 5 Nov 2023 08:31:21 -0800
Subject: [PATCH] add missing FTW_ macros when not available in libc
Fixes build with musl
| xfsfind.c:176:13: error: use of undeclared identifier 'FTW_STOP'
| 176 | retval = FTW_STOP;
| | ^
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/global.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/global.h b/src/global.h
index 49570ef1..1c247488 100644
--- a/src/global.h
+++ b/src/global.h
@@ -190,4 +190,16 @@ roundup_64(unsigned long long x, unsigned int y)
return rounddown_64(x + y - 1, y);
}
+#ifndef FTW_ACTIONRETVAL
+#define FTW_ACTIONRETVAL 16
+#endif
+
+#ifndef FTW_CONTINUE
+#define FTW_CONTINUE 0
+#endif
+
+#ifndef FTW_STOP
+#define FTW_STOP 1
+#endif
+
#endif /* GLOBAL_H */
--
2.42.1

View File

@@ -0,0 +1,84 @@
From 37caab7a43da5ede0ff1eb700f0257a213ac4b18 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 25 Mar 2024 10:46:50 -0700
Subject: [PATCH 1/2] include libgen.h for basename API prototype
basename prototype has been removed from string.h from latest musl [1]
compilers e.g. clang-18 flags the absense of prototype as error. therefore
include libgen.h for providing it.
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-1-raj.khem@gmail.com/T/#t]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/splice-test.c | 1 +
src/stat_test.c | 1 +
src/t_ext4_dax_inline_corruption.c | 1 +
src/t_ext4_dax_journal_corruption.c | 1 +
src/t_mmap_collision.c | 1 +
5 files changed, 5 insertions(+)
diff --git a/src/splice-test.c b/src/splice-test.c
index eb863673..7b7094f5 100644
--- a/src/splice-test.c
+++ b/src/splice-test.c
@@ -11,6 +11,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <err.h>
+#include <libgen.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/src/stat_test.c b/src/stat_test.c
index 95cfdc4f..77e1acdd 100644
--- a/src/stat_test.c
+++ b/src/stat_test.c
@@ -4,6 +4,7 @@
* Written by David Howells (dhowells@redhat.com)
*/
+#include <libgen.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/t_ext4_dax_inline_corruption.c b/src/t_ext4_dax_inline_corruption.c
index e1a39a6c..a40c5df5 100644
--- a/src/t_ext4_dax_inline_corruption.c
+++ b/src/t_ext4_dax_inline_corruption.c
@@ -2,6 +2,7 @@
/* Copyright (c) 2018 Intel Corporation. */
#include <errno.h>
#include <fcntl.h>
+#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/t_ext4_dax_journal_corruption.c b/src/t_ext4_dax_journal_corruption.c
index ba7a96e4..53be10c2 100644
--- a/src/t_ext4_dax_journal_corruption.c
+++ b/src/t_ext4_dax_journal_corruption.c
@@ -2,6 +2,7 @@
/* Copyright (c) 2018 Intel Corporation. */
#include <errno.h>
#include <fcntl.h>
+#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/t_mmap_collision.c b/src/t_mmap_collision.c
index c872f4e2..d9315fcf 100644
--- a/src/t_mmap_collision.c
+++ b/src/t_mmap_collision.c
@@ -15,6 +15,7 @@
*/
#include <errno.h>
#include <fcntl.h>
+#include <libgen.h>
#include <pthread.h>
#include <stdbool.h>
#include <stdio.h>
--
2.44.0

View File

@@ -0,0 +1,42 @@
From 052818e91314b797d96d87672c60f6784160f935 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 25 Mar 2024 10:50:59 -0700
Subject: [PATCH 2/2] Add missing STATX_ATTR_* defines from musl sys/stat.h
These defines are not provided by sys/stat.h on musl but are
in glibc's sys/stat.h, therefore to compile the tests on musl
based systems add the missing defines from linux/stat.h
if they are not provided
Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-2-raj.khem@gmail.com/T/#u]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/statx.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/statx.h b/src/statx.h
index 3f239d79..12599f5b 100644
--- a/src/statx.h
+++ b/src/statx.h
@@ -12,6 +12,18 @@
#define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */
#endif
+#ifndef STATX_ATTR_COMPRESSED
+#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
+#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
+#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
+#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
+#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
+#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
+#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */
+#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
+#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */
+#endif
+
#ifndef AT_NO_AUTOMOUNT
#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */
#endif
--
2.44.0

View File

@@ -0,0 +1,31 @@
From 79c4715a46b80653eb98b61731c094c85e969220 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 14 Aug 2022 13:33:05 -0700
Subject: [PATCH] Drop detached_mounts_propagation and remove sys/mount.h from
vfs/utils.c
with glibc 2.36+ sys/mount.h conflicts with linux/mount.h and here
linux/mount.h is included via xfs/xfs.h header and we need sys/mount.h
for the mount() API prototype. Until thats resolved lets not build this
testcase
Upstream-Status: Inappropriate [Libc specific Workaround]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
index e7442487..970f087a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -33,7 +33,7 @@ LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
dio-invalidate-cache stat_test t_encrypted_d_revalidate \
attr_replace_test swapon mkswap t_attr_corruption t_open_tmpfiles \
fscrypt-crypt-util bulkstat_null_ocount splice-test chprojid_fail \
- detached_mounts_propagation ext4_resize t_readdir_3 splice2pipe \
+ ext4_resize t_readdir_3 splice2pipe \
uuid_ioctl t_snapshot_deleted_subvolume
EXTRA_EXECS = dmerror fill2attr fill2fs fill2fs_check scaleread.sh \

View File

@@ -0,0 +1,67 @@
SUMMARY = "File system QA test suite"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038"
SRCREV = "088e5bd4cb6d7295612430a56ae84ff5c8f54730"
SRCREV_unionmount = "e3825b16b46f4c4574a1a69909944c059835f914"
SRCREV_FORMAT = "default_unionmount"
SRC_URI = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master \
git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite \
file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \
file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
file://0001-include-libgen.h-for-basename-API-prototype.patch \
file://0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch \
"
S = "${WORKDIR}/git"
# brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue)
inherit autotools-brokensep useradd
DEPENDS += "xfsprogs acl"
RDEPENDS:${PN} += "\
bash \
bc \
coreutils \
e2fsprogs \
e2fsprogs-tune2fs \
e2fsprogs-resize2fs \
libaio \
libcap-bin \
overlayfs-tools \
perl \
python3 \
python3-core \
xfsprogs \
acl \
gawk \
"
USERADD_PACKAGES = "${PN}"
# these users are necessary to run the tests
USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2"
EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
do_configure:prepend() {
# this is done by Makefile configure target, but we don't call it in do_configure
cp -a ${S}/include/install-sh .
}
do_install() {
# otherwise install-sh duplicates DESTDIR prefix
export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}"
oe_runmake install
unionmount_target_dir=${D}${prefix}/xfstests/unionmount-testsuite
install -d $unionmount_target_dir/tests
install ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests
install ${WORKDIR}/unionmount-testsuite/*.py -t $unionmount_target_dir
install ${WORKDIR}/unionmount-testsuite/run -t $unionmount_target_dir
install ${WORKDIR}/unionmount-testsuite/README -t $unionmount_target_dir
}
FILES:${PN} += "${prefix}/xfstests"