summaryrefslogtreecommitdiff
path: root/filesystems/e2fsprogs-core/files
diff options
context:
space:
mode:
Diffstat (limited to 'filesystems/e2fsprogs-core/files')
-rw-r--r--filesystems/e2fsprogs-core/files/extrapatch-e2fsck_sigcatcher.c19
-rw-r--r--filesystems/e2fsprogs-core/files/extrapatch-no-sbrk34
-rw-r--r--filesystems/e2fsprogs-core/files/fix-ss_err.h.sed3
-rw-r--r--filesystems/e2fsprogs-core/files/fsck_ext2fs.895
-rw-r--r--filesystems/e2fsprogs-core/files/fsck_ext2fs.c145
-rw-r--r--filesystems/e2fsprogs-core/files/patch-e2fsck__unix.c78
-rw-r--r--filesystems/e2fsprogs-core/files/patch-lib__uuid__gen_uuid.c57
-rw-r--r--filesystems/e2fsprogs-core/files/patch-lib_blkid_devname.c110
-rw-r--r--filesystems/e2fsprogs-core/files/patch-lib_et_com__err.311
-rw-r--r--filesystems/e2fsprogs-core/files/patch-lib_support_plausible.c11
-rw-r--r--filesystems/e2fsprogs-core/files/patch-lib_support_sort__r.h13
-rw-r--r--filesystems/e2fsprogs-core/files/patch-misc__Makefile.in81
-rw-r--r--filesystems/e2fsprogs-core/files/patch-misc_blkid.8.in17
-rw-r--r--filesystems/e2fsprogs-core/files/patch-misc_e2fuzz.c13
-rw-r--r--filesystems/e2fsprogs-core/files/patch-tests_Makefile.in11
-rw-r--r--filesystems/e2fsprogs-core/files/patch-tests_f__detect__junk_script11
-rw-r--r--filesystems/e2fsprogs-core/files/patch-tests_m__offset_script11
-rw-r--r--filesystems/e2fsprogs-core/files/patch-tests_t__mmp__fail_script19
-rw-r--r--filesystems/e2fsprogs-core/files/unwanted8
19 files changed, 747 insertions, 0 deletions
diff --git a/filesystems/e2fsprogs-core/files/extrapatch-e2fsck_sigcatcher.c b/filesystems/e2fsprogs-core/files/extrapatch-e2fsck_sigcatcher.c
new file mode 100644
index 000000000000..10288de1dc58
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/extrapatch-e2fsck_sigcatcher.c
@@ -0,0 +1,19 @@
+--- e2fsck/sigcatcher.c.orig 2020-01-06 23:10:17 UTC
++++ e2fsck/sigcatcher.c
+@@ -17,6 +17,7 @@
+ #ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+ #endif
++#include <libunwind.h>
+
+ #include "e2fsck.h"
+
+@@ -376,7 +377,7 @@ static void die_signal_handler(int signum, siginfo_t *
+ void *stack_syms[32];
+ int frames;
+
+- frames = backtrace(stack_syms, 32);
++ frames = unw_backtrace(stack_syms, 32);
+ backtrace_symbols_fd(stack_syms, frames, 2);
+ }
+ #endif
diff --git a/filesystems/e2fsprogs-core/files/extrapatch-no-sbrk b/filesystems/e2fsprogs-core/files/extrapatch-no-sbrk
new file mode 100644
index 000000000000..6aa12d2b05a5
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/extrapatch-no-sbrk
@@ -0,0 +1,34 @@
+diff -up ./e2fsck/e2fsck.h.orig ./e2fsck/e2fsck.h
+--- ./e2fsck/e2fsck.h.orig 2018-05-16 01:42:44.000000000 +0200
++++ ./e2fsck/e2fsck.h 2018-07-07 12:50:43.420944000 +0200
+@@ -134,7 +134,7 @@ struct dx_dirblock_info {
+ #define DX_FLAG_FIRST 4
+ #define DX_FLAG_LAST 8
+
+-#define RESOURCE_TRACK
++#undef RESOURCE_TRACK
+
+ #ifdef RESOURCE_TRACK
+ /*
+diff -up ./resize/resource_track.c.orig ./resize/resource_track.c
+--- ./resize/resource_track.c.orig 2018-05-16 01:42:44.000000000 +0200
++++ ./resize/resource_track.c 2018-07-07 14:24:54.728576000 +0200
+@@ -27,7 +27,6 @@ void init_resource_track(struct resource
+ io_stats io_start = 0;
+
+ track->desc = desc;
+- track->brk_start = sbrk(0);
+ gettimeofday(&track->time_start, 0);
+ #ifdef HAVE_GETRUSAGE
+ #ifdef sun
+@@ -84,9 +83,7 @@ void print_resource_track(ext2_resize_t
+ kbytes(malloc_info.arena), kbytes(malloc_info.hblkhd),
+ kbytes(malloc_info.uordblks), kbytes(malloc_info.fordblks));
+ #else
+- printf("Memory used: %lu, ",
+- (unsigned long) (((char *) sbrk(0)) -
+- ((char *) track->brk_start)));
++ printf("Memory used: unknown, ");
+ #endif
+ #ifdef HAVE_GETRUSAGE
+ getrusage(RUSAGE_SELF, &r);
diff --git a/filesystems/e2fsprogs-core/files/fix-ss_err.h.sed b/filesystems/e2fsprogs-core/files/fix-ss_err.h.sed
new file mode 100644
index 000000000000..1b72045c519b
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/fix-ss_err.h.sed
@@ -0,0 +1,3 @@
+/#define __ss_err_h__/a\
+#include <stdio.h>
+#include <com_err.h>
diff --git a/filesystems/e2fsprogs-core/files/fsck_ext2fs.8 b/filesystems/e2fsprogs-core/files/fsck_ext2fs.8
new file mode 100644
index 000000000000..3ab4c664f740
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/fsck_ext2fs.8
@@ -0,0 +1,95 @@
+.TH fsck_ext2fs 8 2006-07-02 "Matthias Andree" "FreeBSD Ports"
+.\"
+.\" fsck_ext2fs.8 - manual page for fsck_ext2fs wrapper
+.\"
+.\" (C) Copyright 2006 by Matthias Andree <matthias.andree@gmx.de>
+.\"
+.\" License: This file may be redistributed in accordance with the terms
+.\" of the GNU General Public License v2.
+.\"
+.\" Upstream $Id: fsck_ext2fs.8,v 1.3 2006/07/02 11:45:21 emma Exp $
+.\"
+.SH NAME
+.B fsck_ext2fs
+\- compatibility wrapper for e2fsck
+.SH SYNOPSIS
+.P
+.B fsck_ext2fs
+[\fB\-Fpfnyv\fR] [\fB\-b\fR \fIblock\fR]
+.SH DESCRIPTION
+.P
+\fBfsck_ext2fs\fR maps the traditional FreeBSD \fBfsck_ffs\fR options to
+options with the same functionality for \fBe2fsck,\fR runs \fBe2fsck\fR
+and then maps its exit status to values that FreeBSD understands.
+\fBe2fsck\fR is a utility to check and repair ext2 and ext3 file
+systems.
+
+.SH OPTIONS
+.IP \fB\-F\fR
+(check foreground mode required) Immediately exits with status 1 to tell
+\fBfsck\fR that ext2fs cannot be checked in the background. \fBfsck\fR
+usually runs \fBfsck_*\fR programs twice, first with \fB\-F\fR to find
+out if they can do background checking, then either immediately without
+\fB\-F\fR for foreground checking or deferred in the background with
+\fB\-B\fR.
+.IP \fB\-p\fR
+(preen mode) This option suppresses adding the \fB\-f\fR option (unless
+\fB\-f\fR is also given) and adds the \fB\-p\fR option to the
+\fBe2fsck\fR command line. This causes \fBe2fsck\fR to automatically fix
+any filesystem problems that can safely be fixed without operator
+intervention. Without this option given, \fBe2fsck\fR will be run with
+the \fB\-f\fR option to force a check, since interactive scan and repair
+mode is the default on FreeBSD, but not on Linux where \fBe2fsck\fR
+comes from.
+.IP \fB\-f\fR
+(force check) This option forces the check of a clean file system while
+preening and is passed to \fBe2fsck\fR verbatim.
+.IP \fB\-n\fR
+("no" mode) This option causes the file system to be opened in read-only
+mode and assume "no" as answer to all questions. This is the only way to
+safely run \fBfsck\fR on a mounted ext2 or ext3 file system. This option
+is passed to \fBe2fsck\fR verbatim.
+.IP \fB\-y\fR
+("yes" mode) This option is passed verbatim to \fBe2fsck\fR and causes
+it to assume "yes" as answer to all questions. This allows the
+non-interactive use of e2fsck but is rather aggressive. Use with care.
+.IP \fB\-v\fR
+(verbose output) This option is passed verbatim to \fBe2fsck\fR and
+causes it to verbosely report its progress.
+.IP "\fB\-b\fR \fIblock\fR"
+(use alternate super block) This option is passed verbatim to
+\fBe2fsck\fR and selects an alternate super block, for use when the
+primary super block has been damaged. Please see the \fBe2fsck\fR(8)
+manual page for details.
+
+.SH EXIT STATUS
+If errors remain after \fBe2fsck\fR, an invalid option or too many
+options have been specified, \fBe2fsck\fR was killed with a signal or
+the \fIfork\fB system call failed, \fBfsck_ext2fs\fR exits with status
+EXIT_FAILURE (usually 1). If \fBe2fsck\fR cannot be started, exits with
+status 127. If the file system is clean after \fBe2fsck\fR operation,
+exits with status EXIT_SUCCESS (0).
+
+.SH NOTES
+.P
+This utility is merely meant as an adaptor so that \fBe2fsck\fR can be
+run during the boot process, it does not support all options that
+\fBe2fsck\fR offers. If you need one of its advanced options, please run
+\fBe2fsck\fR directly.
+
+.SH FILES
+.TP
+.I /sbin/e2fsck
+is the location of the \fBe2fsck\fR program to run.
+
+.SH AUTHOR
+.P
+Matthias Andree <matthias.andree@gmx.de> wrote the program and this
+manual page.
+.SH CONFORMING TO
+The FreeBSD 6.1 command line interface for \fBfsck_ufs\fR(8).
+.SH SEE ALSO
+.BR fsck (8),
+.BR e2fsck (8)
+and
+.BR fsck_ufs (8).
diff --git a/filesystems/e2fsprogs-core/files/fsck_ext2fs.c b/filesystems/e2fsprogs-core/files/fsck_ext2fs.c
new file mode 100644
index 000000000000..9634c414242e
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/fsck_ext2fs.c
@@ -0,0 +1,145 @@
+/*
+ * fsck_ext2fs - wrapper for e2fsck on FreeBSD
+ * Copyright (C) 2004,2006 Matthias Andree <matthias.andree@gmx.de>
+ * redistributable in accordance with the
+ * GNU General Public License v2
+ *
+ * Upstream: $Id: fsck_ext2fs.c,v 1.6 2006/07/02 11:37:49 emma Exp $
+ *
+ * format: gindent -kr
+ */
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/wait.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <errno.h>
+
+__attribute__ ((noreturn))
+static int die(const char *tag)
+{
+ perror(tag);
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char **argv)
+{
+ int ch, i = 1, force = 0, status, verbose = 0, t;
+ long block = 0;
+ enum { normal, preen, yes, no } mode = normal;
+ char *cmd[256];
+ pid_t pid;
+
+ cmd[0] = "/sbin/e2fsck";
+ while ((ch = getopt(argc, argv, "BFpfnyb:v")) != -1) {
+ switch (ch) {
+ case 'p':
+ mode = preen;
+ break;
+ case 'f':
+ force = 1;
+ break;
+ case 'n':
+ mode = no;
+ break;
+ case 'y':
+ mode = yes;
+ break;
+ case 'b':
+ block = atol(optarg);
+ break;
+ case 'v':
+ verbose++;
+ break;
+ case 'F':
+ /* e2fsck does not support background checking,
+ * hence exit with nonzero status to force
+ * the foreground check. */
+ exit(1);
+ case 'B':
+ default:
+ fprintf(stderr, "%s: unknown option -%c\n",
+ argv[0], optopt);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (force)
+ cmd[i++] = "-f";
+
+ switch (mode) {
+ case normal:
+ /* FreeBSD needs -f to force a check only in context
+ * with -p -- so map normal to force to match
+ * expectations */
+ if (!force)
+ cmd[i++] = "-f";
+ break;
+ case yes:
+ cmd[i++] = "-y";
+ break;
+ case no:
+ cmd[i++] = "-n";
+ break;
+ case preen:
+ cmd[i++] = "-p";
+ break;
+ }
+
+ if (block) {
+ static char b[30];
+
+ sprintf(b, "-b %ld", block);
+ cmd[i++] = b;
+ }
+
+ /* silently limit verbose to 15 so we don't overflow the cmd array */
+ if (verbose > 15)
+ verbose = 15;
+
+ for (t = verbose; t > 1; t--)
+ cmd[i++] = "-v";
+
+ while (optind < argc) {
+ cmd[i++] = argv[optind++];
+ /* sanity check so we don't overflow the cmd buffer */
+ if (i+1 == sizeof(cmd)/sizeof(cmd[0])) {
+ errno = E2BIG;
+ die(argv[0]);
+ }
+ }
+
+ cmd[i++] = 0;
+
+ if (verbose) {
+ for (i=0; cmd[i]; i++)
+ fputs(cmd[i], stderr),
+ fputc(' ', stderr);
+ fputc('\n', stderr);
+ }
+
+ pid = fork();
+ switch (pid) {
+ case -1:
+ /* error */
+ die("fork");
+ break;
+ case 0:
+ /* child */
+ (void) execv(cmd[0], cmd);
+ perror("execve");
+ _exit(127);
+ default:
+ /* parent */
+ if (pid != waitpid(pid, &status, 0))
+ die("waitpid");
+ if (WIFSIGNALED(status)
+ || (WIFEXITED(status) && WEXITSTATUS(status) >= 4))
+ exit(EXIT_FAILURE);
+ }
+ exit(EXIT_SUCCESS);
+}
diff --git a/filesystems/e2fsprogs-core/files/patch-e2fsck__unix.c b/filesystems/e2fsprogs-core/files/patch-e2fsck__unix.c
new file mode 100644
index 000000000000..fe98d8988b57
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-e2fsck__unix.c
@@ -0,0 +1,78 @@
+// SIGINFO is a Berkeley extension, so we need to
+// remove the #define _XOPEN_SOURCE 600
+// It would hide all non-POSIX declarations, including SIGINFO.
+
+--- e2fsck/unix.c.orig 2024-05-21 02:52:47 UTC
++++ e2fsck/unix.c
+@@ -9,8 +9,6 @@
+ * %End-Header%
+ */
+
+-#define _XOPEN_SOURCE 600 /* for inclusion of sa_handler in Solaris */
+-
+ #include "config.h"
+ #include <stdio.h>
+ #ifdef HAVE_STDLIB_H
+@@ -37,7 +35,7 @@ extern int optind;
+ #include <sys/ioctl.h>
+ #endif
+ #ifdef HAVE_MALLOC_H
+-#include <malloc.h>
++#include <stdlib.h>
+ #endif
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+@@ -608,6 +606,24 @@ static int e2fsck_update_progress(e2fsck_t ctx, int pa
+ return 0;
+ }
+
++static int e2fsck_progress_once(e2fsck_t ctx, int pass, unsigned long cur, unsigned long max)
++{
++ char buf[80];
++ float percent;
++
++ if (pass == 0)
++ return 0;
++
++ percent = calc_percent(&e2fsck_tbl, pass, cur, max);
++ e2fsck_simple_progress(ctx, ctx->device_name,
++ percent, 0);
++
++ printf("\n");
++ ctx->progress = 0;
++ return 0;
++}
++
++
+ #define PATH_SET "PATH=/sbin"
+
+ /*
+@@ -641,6 +657,17 @@ static void signal_progress_on(int sig EXT2FS_ATTR((un
+ ctx->progress = e2fsck_update_progress;
+ }
+
++static void signal_progress_now(int sig EXT2FS_ATTR((unused)))
++{
++ e2fsck_t ctx = e2fsck_global_ctx;
++
++ if (!ctx)
++ return;
++
++ ctx->progress = e2fsck_progress_once;
++ ctx->progress_fd = 0;
++}
++
+ static void signal_progress_off(int sig EXT2FS_ATTR((unused)))
+ {
+ e2fsck_t ctx = e2fsck_global_ctx;
+@@ -1127,6 +1154,10 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t
+ sigaction(SIGUSR1, &sa, 0);
+ sa.sa_handler = signal_progress_off;
+ sigaction(SIGUSR2, &sa, 0);
++ sa.sa_handler = signal_progress_now;
++ if (!getenv("e2fsprogs_inhibit_SIGINFO")) {
++ sigaction(SIGINFO, &sa, 0);
++ }
+ #endif
+
+ /* Update our PATH to include /sbin if we need to run badblocks */
diff --git a/filesystems/e2fsprogs-core/files/patch-lib__uuid__gen_uuid.c b/filesystems/e2fsprogs-core/files/patch-lib__uuid__gen_uuid.c
new file mode 100644
index 000000000000..13e7b8c2f6b5
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-lib__uuid__gen_uuid.c
@@ -0,0 +1,57 @@
+--- lib/uuid/gen_uuid.c.orig 2024-05-21 02:52:47 UTC
++++ lib/uuid/gen_uuid.c
+@@ -92,6 +92,7 @@
+ #ifdef HAVE_SYS_RESOURCE_H
+ #include <sys/resource.h>
+ #endif
++#include <ifaddrs.h>
+
+ #include "uuidP.h"
+ #include "uuidd.h"
+@@ -288,6 +289,28 @@ static int get_node_id(unsigned char *node_id)
+ }
+ }
+ close(sd);
++#else
++ struct ifaddrs *ifaddrsp, *ifaddrp;
++ unsigned char *a;
++
++ if (getifaddrs(&ifaddrsp) < 0)
++ return -1;
++ for (ifaddrp = ifaddrsp; ifaddrp != NULL; ifaddrp = ifaddrp->ifa_next)
++ {
++ if (ifaddrp->ifa_addr == NULL)
++ continue;
++ if (ifaddrp->ifa_addr->sa_family != AF_LINK)
++ continue;
++ a = LLADDR((struct sockaddr_dl *)ifaddrp->ifa_addr);
++ if (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
++ continue;
++ if (node_id) {
++ memcpy(node_id, a, 6);
++ freeifaddrs(ifaddrsp);
++ return 1;
++ }
++ }
++ freeifaddrs(ifaddrsp);
+ #endif
+ return 0;
+ }
+@@ -472,7 +495,7 @@ static void close_all_fds(void)
+ }
+ #endif /* defined(USE_UUIDD) && defined(HAVE_SYS_UN_H) */
+
+-#if __GNUC_PREREQ (4, 6)
++#if __GNUC_PREREQ__ (4, 6)
+ #pragma GCC diagnostic push
+ #if !defined(USE_UUIDD) || !defined(HAVE_SYS_UN_H)
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
+@@ -560,7 +583,7 @@ fail:
+ #endif
+ return -1;
+ }
+-#if __GNUC_PREREQ (4, 6)
++#if __GNUC_PREREQ__ (4, 6)
+ #pragma GCC diagnostic pop
+ #endif
+
diff --git a/filesystems/e2fsprogs-core/files/patch-lib_blkid_devname.c b/filesystems/e2fsprogs-core/files/patch-lib_blkid_devname.c
new file mode 100644
index 000000000000..9a59112ed239
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-lib_blkid_devname.c
@@ -0,0 +1,110 @@
+--- lib/blkid/devname.c.orig 2020-03-21 04:24:04 UTC
++++ lib/blkid/devname.c
+@@ -40,6 +40,9 @@
+ #include <sys/sysmacros.h>
+ #endif
+ #include <time.h>
++#ifdef __FreeBSD__
++#include <sys/sysctl.h>
++#endif
+
+ #include "blkidP.h"
+
+@@ -397,11 +400,15 @@ evms_probe_all(blkid_cache cache, int only_if_new)
+ static int probe_all(blkid_cache cache, int only_if_new)
+ {
+ FILE *proc;
++#ifndef __FreeBSD__
+ char line[1024];
++ int ma, mi;
++#else
++ char *line;
++#endif /* __FreeBSD__ */
+ char ptname0[129], ptname1[129], *ptname = 0;
+ char *ptnames[2];
+ dev_t devs[2];
+- int ma, mi;
+ unsigned long long sz;
+ int lens[2] = { 0, 0 };
+ int which = 0, last = 0;
+@@ -423,20 +430,68 @@ static int probe_all(blkid_cache cache, int only_if_ne
+ lvm_probe_all(cache, only_if_new);
+ #endif
+
++#ifndef __FreeBSD__
+ proc = fopen(PROC_PARTITIONS, "r");
+ if (!proc)
+ return -BLKID_ERR_PROC;
+
+ while (fgets(line, sizeof(line), proc)) {
++#else
++ size_t len, bufsiz = 4096;
++ char *buf = NULL;
++
++ for(;;) {
++ buf = realloc(buf, bufsiz);
++ if (!buf) return -BLKID_ERR_MEM;
++ len = bufsiz - 1;
++ if (sysctlbyname("kern.geom.conftxt", buf, &len, NULL, 0)) {
++ if (ENOMEM != errno) {
++ free(buf);
++ return -BLKID_ERR_IO;
++ }
++ bufsiz <<= 1;
++ } else {
++ if (len < bufsiz) buf[len] = '\0';
++ else buf[bufsiz - 1] = '\0';
++ break;
++ }
++ }
++ char *str = buf;
++ while ((line = strsep(&str, "\n"))) {
++#endif /* __FreeBSD__ */
+ last = which;
+ which ^= 1;
+ ptname = ptnames[which];
+
++#ifndef __FreeBSD__
+ if (sscanf(line, " %d %d %llu %128[^\n ]",
+ &ma, &mi, &sz, ptname) != 4)
+ continue;
+ devs[which] = makedev(ma, mi);
++#else
++ char type[6];
++ int dummy;
+
++ if (sscanf(line, "%*d %5s %128[^ ] %lld %d",
++ type, ptname, &sz, &dummy) != 4)
++ continue;
++ sz /= 1024;
++
++ if (strcmp("PART", type) && strcmp("DISK", type))
++ continue;
++ {
++ struct stat st;
++ char dn[128];
++ if (snprintf(dn, sizeof dn, "/dev/%s", ptname) >= sizeof dn)
++ continue;
++
++ if (stat(dn, &st))
++ continue;
++
++ devs[which] = st.st_rdev;
++ }
++#endif /* __FreeBSD__ */
++
+ DBG(DEBUG_DEVNAME, printf("read partition name %s\n", ptname));
+
+ /* Skip whole disk devs unless they have no partitions.
+@@ -507,7 +562,11 @@ static int probe_all(blkid_cache cache, int only_if_ne
+ if (lens[which])
+ probe_one(cache, ptname, devs[which], 0, only_if_new);
+
++#ifndef __FreeBSD__
+ fclose(proc);
++#else
++ free(buf);
++#endif /* __FreeBSD__ */
+ blkid_flush_cache(cache);
+ return 0;
+ }
diff --git a/filesystems/e2fsprogs-core/files/patch-lib_et_com__err.3 b/filesystems/e2fsprogs-core/files/patch-lib_et_com__err.3
new file mode 100644
index 000000000000..bc3b522f46ea
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-lib_et_com__err.3
@@ -0,0 +1,11 @@
+--- lib/et/com_err.3.orig 2021-08-19 02:53:01 UTC
++++ lib/et/com_err.3
+@@ -18,6 +18,8 @@ proc = reset_com_err_hook ();
+ void initialize_XXXX_error_table ();
+ .fi
+ .SH DESCRIPTION
++This is the manual page for com_err as bundled with the e2fsprogs package.
++.P
+ .I Com_err
+ displays an error message on the standard error stream
+ .I stderr
diff --git a/filesystems/e2fsprogs-core/files/patch-lib_support_plausible.c b/filesystems/e2fsprogs-core/files/patch-lib_support_plausible.c
new file mode 100644
index 000000000000..3d23b30e9c8f
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-lib_support_plausible.c
@@ -0,0 +1,11 @@
+--- lib/support/plausible.c.orig 2020-01-06 23:10:17 UTC
++++ lib/support/plausible.c
+@@ -62,7 +62,7 @@ static void *magic_handle;
+ static int magic_library_available(void)
+ {
+ if (!magic_handle) {
+- magic_handle = dlopen("libmagic.so.1", RTLD_NOW);
++ magic_handle = dlopen("libmagic.so", RTLD_NOW);
+ if (!magic_handle)
+ return 0;
+
diff --git a/filesystems/e2fsprogs-core/files/patch-lib_support_sort__r.h b/filesystems/e2fsprogs-core/files/patch-lib_support_sort__r.h
new file mode 100644
index 000000000000..c01a084feb6b
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-lib_support_sort__r.h
@@ -0,0 +1,13 @@
+--- lib/support/sort_r.h.orig 2024-05-21 02:52:47 UTC
++++ lib/support/sort_r.h
+@@ -238,10 +238,6 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
+
+ #if defined _SORT_R_BSD
+
+- /* Ensure qsort_r is defined */
+- extern void qsort_r(void *base, size_t nel, size_t width, void *thunk,
+- int (*compar)(void *_thunk,
+- const void *_a, const void *_b));
+
+ #endif
+
diff --git a/filesystems/e2fsprogs-core/files/patch-misc__Makefile.in b/filesystems/e2fsprogs-core/files/patch-misc__Makefile.in
new file mode 100644
index 000000000000..ec0ff218a622
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-misc__Makefile.in
@@ -0,0 +1,81 @@
+--- misc/Makefile.in.orig 2021-01-29 22:02:31 UTC
++++ misc/Makefile.in
+@@ -38,17 +38,17 @@ MKDIR_P = @MKDIR_P@
+
+ SPROGS= mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
+ $(E2IMAGE_PROG) @FSCK_PROG@ e2undo
+-USPROGS= mklost+found filefrag e2freefrag $(UUIDD_PROG) \
++USPROGS= mklost+found e2freefrag $(UUIDD_PROG) \
+ $(E4DEFRAG_PROG) $(E4CRYPT_PROG)
+ SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
+ e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
+- logsave.8 filefrag.8 e2freefrag.8 e2undo.8 \
+- $(UUIDD_MAN) $(E4DEFRAG_MAN) $(E4CRYPT_MAN) @FSCK_MAN@ \
++ logsave.8 e2freefrag.8 e2undo.8 \
++ $(E4DEFRAG_MAN) $(E4CRYPT_MAN) @FSCK_MAN@ \
+ e2mmpstatus.8
+ FMANPAGES= mke2fs.conf.5 ext4.5
+
+-UPROGS= chattr lsattr $(FUSE_PROG) @UUID_CMT@ uuidgen
+-UMANPAGES= chattr.1 lsattr.1 @UUID_CMT@ uuidgen.1
++UPROGS= chattr lsattr $(FUSE_PROG)
++UMANPAGES= chattr.1 lsattr.1
+ UMANPAGES+= @FUSE_CMT@ fuse2fs.1
+
+ LPROGS= @E2INITRD_PROG@
+@@ -154,14 +154,14 @@ profiled:
+
+ mke2fs.conf: $(srcdir)/mke2fs.conf.in
+ if test -f $(srcdir)/mke2fs.conf.custom.in ; then \
+- cp $(srcdir)/mke2fs.conf.custom.in mke2fs.conf; \
++ cp $(srcdir)/mke2fs.conf.custom.in mke2fs.conf.dist; \
+ else \
+- cp $(srcdir)/mke2fs.conf.in mke2fs.conf; \
++ cp $(srcdir)/mke2fs.conf.in mke2fs.conf.dist; \
+ fi
+
+ default_profile.c: mke2fs.conf $(srcdir)/profile-to-c.awk
+ $(E) " PROFILE_TO_C mke2fs.conf"
+- $(Q) $(AWK) -f $(srcdir)/profile-to-c.awk < mke2fs.conf \
++ $(Q) $(AWK) -f $(srcdir)/profile-to-c.awk < mke2fs.conf.dist \
+ > default_profile.c
+ findsuper: findsuper.o
+ $(E) " LD $@"
+@@ -612,34 +612,9 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
+ (cd $(DESTDIR)$(man5dir); \
+ $(LN) $(LINK_INSTALL_FLAGS) ext4.5 $$i.5); \
+ done
+- $(Q) if test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \
+- if cmp -s $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+- mke2fs.conf; then \
+- true; \
+- else \
+- if grep -q ext4dev $(DESTDIR)$(root_sysconfdir)/mke2fs.conf ; then \
+- $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+- $(INSTALL_DATA) mke2fs.conf \
+- $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \
+- echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+- echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \
+- else \
+- $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+- mv $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+- $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old; \
+- $(INSTALL_DATA) mke2fs.conf \
+- $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
+- echo "Your mke2fs.conf is too old. Backing up old version in"; \
+- echo "$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old. Please check to see"; \
+- echo "if you have any local customizations that you wish to preserve."; \
+- fi; \
+- echo " "; \
+- fi; \
+- else \
+- $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+- $(INSTALL_DATA) mke2fs.conf \
+- $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
+- fi
++ $(Q) $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
++ $(INSTALL_DATA) mke2fs.conf.dist \
++ $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.dist
+
+ install-strip: install
+ $(Q) for i in $(SPROGS); do \
diff --git a/filesystems/e2fsprogs-core/files/patch-misc_blkid.8.in b/filesystems/e2fsprogs-core/files/patch-misc_blkid.8.in
new file mode 100644
index 000000000000..c6532a4a1a2e
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-misc_blkid.8.in
@@ -0,0 +1,17 @@
+--- misc/blkid.8.in.orig 2020-03-21 04:24:04 UTC
++++ misc/blkid.8.in
+@@ -144,10 +144,10 @@ option.
+ Display tokens from only the specified device. It is possible to
+ give multiple
+ .I device
+-options on the command line. If none is given, all devices which
+-appear in
+-.I /proc/partitions
+-are shown, if they are recognized.
++options on the command line. If none is given, all DISK and PART devices which
++appear in the
++.I kern.geom.conftxt
++sysctl variable are shown, if they are recognized.
+ .SH "RETURN CODE"
+ If the specified token was found, or if any tags were shown from (specified)
+ devices, 0 is returned. If the specified token was not found, or no
diff --git a/filesystems/e2fsprogs-core/files/patch-misc_e2fuzz.c b/filesystems/e2fsprogs-core/files/patch-misc_e2fuzz.c
new file mode 100644
index 000000000000..a9f56490e5b6
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-misc_e2fuzz.c
@@ -0,0 +1,13 @@
+--- misc/e2fuzz.c.orig 2020-03-23 08:29:36 UTC
++++ misc/e2fuzz.c
+@@ -278,8 +278,8 @@ static int process_fs(const char *fsname)
+ c |= 0x80;
+ if (verbose)
+ printf("Corrupting byte %lld in block %lld to 0x%x\n",
+- off % fs->blocksize,
+- off / fs->blocksize, c);
++ (long long)off % fs->blocksize,
++ (long long)off / fs->blocksize, c);
+ if (dryrun)
+ continue;
+ #ifdef HAVE_PWRITE64
diff --git a/filesystems/e2fsprogs-core/files/patch-tests_Makefile.in b/filesystems/e2fsprogs-core/files/patch-tests_Makefile.in
new file mode 100644
index 000000000000..a5f9b50df891
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-tests_Makefile.in
@@ -0,0 +1,11 @@
+--- tests/Makefile.in.orig 2021-01-29 05:51:02 UTC
++++ tests/Makefile.in
+@@ -17,7 +17,7 @@ all:: @DO_TEST_SUITE@ test_one test_script
+ test_one: $(srcdir)/test_one.in Makefile mke2fs.conf test_data.tmp
+ @echo "Creating test_one script..."
+ @[ -f test_one ] && chmod u+w test_one || true
+- @echo "#!/bin/sh" > test_one
++ @echo "#!${SHELL}" > test_one
+ @echo "HTREE=y" >> test_one
+ @echo "QUOTA=y" >> test_one
+ @echo "SRCDIR=@srcdir@" >> test_one
diff --git a/filesystems/e2fsprogs-core/files/patch-tests_f__detect__junk_script b/filesystems/e2fsprogs-core/files/patch-tests_f__detect__junk_script
new file mode 100644
index 000000000000..45b544cf691d
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-tests_f__detect__junk_script
@@ -0,0 +1,11 @@
+--- tests/f_detect_junk/script.orig 2023-02-07 03:31:53 UTC
++++ tests/f_detect_junk/script
+@@ -9,7 +9,7 @@ FSCK_OPT=-fn
+ IMAGE=$test_dir/image.bz2
+
+ bzip2 -d < $IMAGE > $TMPFILE
+-$DD if=/dev/zero of=$TMPFILE conv=notrunc oflag=append bs=1024k count=16 > /dev/null 2>&1
++$DD if=/dev/zero of=$TMPFILE conv=notrunc bs=1024k count=16 2>/dev/null >>$TMPFILE
+
+ # Run fsck to fix things?
+ if [ -x $DEBUGFS_EXE ]; then
diff --git a/filesystems/e2fsprogs-core/files/patch-tests_m__offset_script b/filesystems/e2fsprogs-core/files/patch-tests_m__offset_script
new file mode 100644
index 000000000000..9cc4232eec3a
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-tests_m__offset_script
@@ -0,0 +1,11 @@
+--- tests/m_offset/script.orig 2023-02-02 15:57:32 UTC
++++ tests/m_offset/script
+@@ -13,7 +13,7 @@ $MKE2FS -F -b 1024 -E offset=524288 "$TMPFILE" 1024 >>
+ # compute crc of the first and last 512 1k blocks
+ crc_first2=`$DD if="$TMPFILE" bs=1k count=512 2>/dev/null | $CRCSUM`
+ crc_last2=`$DD if="$TMPFILE" bs=1k count=512 skip=1536 2>/dev/null | $CRCSUM`
+-crc_exp=`yes a | $DD bs=1k count=512 2>/dev/null | $CRCSUM`
++crc_exp=`yes a | $DD bs=1k count=512 iflag=fullblock 2>/dev/null | $CRCSUM`
+ # a warning should be only emitted by the first mke2fs call
+ warning=`grep -c "offset specified without an explicit file system size." \
+ "$OUT"`
diff --git a/filesystems/e2fsprogs-core/files/patch-tests_t__mmp__fail_script b/filesystems/e2fsprogs-core/files/patch-tests_t__mmp__fail_script
new file mode 100644
index 000000000000..77fd70e4ccf2
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/patch-tests_t__mmp__fail_script
@@ -0,0 +1,19 @@
+--- tests/t_mmp_fail/script.orig 2023-02-07 03:31:53 UTC
++++ tests/t_mmp_fail/script
+@@ -10,14 +10,14 @@ fi
+
+ $TUNE2FS -O project $TMPFILE >> $test_name.log 2>&1
+ status=$?
+-if [ "$status" == 0 ] ; then
++if [ "$status" = 0 ] ; then
+ echo "'tune2fs -O project' succeeded on small inode" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return 1
+ fi
+ $TUNE2FS -o bad_option $TMPFILE >> $test_name.log 2>&1
+ status=$?
+-if [ "$status" == 0 ] ; then
++if [ "$status" = 0 ] ; then
+ echo "'tune2fs -o bad_option' succeeded" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return 1
diff --git a/filesystems/e2fsprogs-core/files/unwanted b/filesystems/e2fsprogs-core/files/unwanted
new file mode 100644
index 000000000000..693deb364915
--- /dev/null
+++ b/filesystems/e2fsprogs-core/files/unwanted
@@ -0,0 +1,8 @@
+include/e2fsprogs/blkid/blkid.h
+include/e2fsprogs/blkid/blkid_types.h
+lib/e2fsprogs/libblkid.a
+lib/e2fsprogs/libblkid.so
+lib/e2fsprogs/libblkid.so.1
+lib/e2fsprogs/libblkid.so.1.0
+libdata/pkgconfig/blkid.pc
+man/man3/libblkid.3