Module Name: src
Committed By: christos
Date: Wed May 8 15:57:56 UTC 2024
Modified Files:
src/usr.sbin/makefs: makefs.8 makefs.c walk.c
Log Message:
Add an option to warn and error out for mtree missing entries.
To generate a diff of this commit:
cvs rdiff -u -r1.71 -r1.72 src/usr.sbin/makefs/makefs.8
cvs rdiff -u -r1.57 -r1.58 src/usr.sbin/makefs/makefs.c
cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/makefs/walk.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/makefs/makefs.8
diff -u src/usr.sbin/makefs/makefs.8:1.71 src/usr.sbin/makefs/makefs.8:1.72
--- src/usr.sbin/makefs/makefs.8:1.71 Thu Nov 17 01:40:41 2022
+++ src/usr.sbin/makefs/makefs.8 Wed May 8 11:57:56 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: makefs.8,v 1.71 2022/11/17 06:40:41 chs Exp $
+.\" $NetBSD: makefs.8,v 1.72 2024/05/08 15:57:56 christos Exp $
.\"
.\" Copyright (c) 2001-2003 Wasabi Systems, Inc.
.\" All rights reserved.
@@ -33,7 +33,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 4, 2021
+.Dd May 8, 2024
.Dt MAKEFS 8
.Os
.Sh NAME
@@ -260,6 +260,10 @@ ISO/Ecma UDF file system.
.El
.It Fl x
Exclude file system nodes not explicitly listed in the specfile.
+Repeating this flag causes
+.Nm
+to print a warning for each missing system nodes and exit with an error code
+if there are any missing.
.It Fl Z
Create a sparse file for
.Sy ffs .
Index: src/usr.sbin/makefs/makefs.c
diff -u src/usr.sbin/makefs/makefs.c:1.57 src/usr.sbin/makefs/makefs.c:1.58
--- src/usr.sbin/makefs/makefs.c:1.57 Sun Feb 18 11:59:16 2024
+++ src/usr.sbin/makefs/makefs.c Wed May 8 11:57:56 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: makefs.c,v 1.57 2024/02/18 16:59:16 christos Exp $ */
+/* $NetBSD: makefs.c,v 1.58 2024/05/08 15:57:56 christos Exp $ */
/*
* Copyright (c) 2001-2003 Wasabi Systems, Inc.
@@ -41,7 +41,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: makefs.c,v 1.57 2024/02/18 16:59:16 christos Exp $");
+__RCSID("$NetBSD: makefs.c,v 1.58 2024/05/08 15:57:56 christos Exp $");
#endif /* !__lint */
#include <assert.h>
@@ -261,7 +261,7 @@ main(int argc, char *argv[])
break;
case 'x':
- fsoptions.onlyspec = 1;
+ fsoptions.onlyspec++;
break;
case 'Z':
Index: src/usr.sbin/makefs/walk.c
diff -u src/usr.sbin/makefs/walk.c:1.39 src/usr.sbin/makefs/walk.c:1.40
--- src/usr.sbin/makefs/walk.c:1.39 Wed Apr 24 17:59:39 2024
+++ src/usr.sbin/makefs/walk.c Wed May 8 11:57:56 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: walk.c,v 1.39 2024/04/24 21:59:39 rillig Exp $ */
+/* $NetBSD: walk.c,v 1.40 2024/05/08 15:57:56 christos Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -41,7 +41,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: walk.c,v 1.39 2024/04/24 21:59:39 rillig Exp $");
+__RCSID("$NetBSD: walk.c,v 1.40 2024/05/08 15:57:56 christos Exp $");
#endif /* !__lint */
#include <sys/param.h>
@@ -65,6 +65,7 @@ static void apply_specentry(const char
static fsnode *create_fsnode(const char *, const char *, const char *,
struct stat *);
static fsinode *link_check(fsinode *);
+static size_t missing = 0;
/*
* fsnode_cmp --
@@ -429,6 +430,9 @@ apply_specfile(const char *specfile, con
apply_specdir(dir, root, parent, speconly);
free_nodes(root);
+ if (missing)
+ errx(EXIT_FAILURE, "Add %zu missing entries in `%s'",
+ missing, specfile);
}
static void
@@ -469,6 +473,11 @@ apply_specdir(const char *dir, NODE *spe
break;
}
if (curnode == NULL) {
+ if (speconly > 1) {
+ warnx("missing specfile entry for %s/%s",
+ dir, curfsnode->name);
+ missing++;
+ }
if (debug & DEBUG_APPLY_SPECONLY) {
printf("%s: trimming %s/%s %p\n",
__func__, dir, curfsnode->name,