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