Download raw body.
Change pax(1) default write format
From 'ustar' to 'pax'.
Since by default most files get an extended header for atime and
mtime, the size of archives increases with lots of small files. But
it gets much better after compression:
pbuild /tmp$ ls -lh /tmp/ports.*
-rw-r--r-- 1 jca wheel 988M Apr 15 17:46 /tmp/ports.pax
-rw-r--r-- 1 jca wheel 806M Apr 15 17:46 /tmp/ports.tar
pbuild /tmp$ gzip -9 ports.pax ports.tar
pbuild /tmp$ ls -lh /tmp/ports.*
-rw-r--r-- 1 jca wheel 355M Apr 15 17:46 /tmp/ports.pax.gz
-rw-r--r-- 1 jca wheel 350M Apr 15 17:46 /tmp/ports.tar.gz
install sets for amd64 grow by 1.8MB which isn't much either.
I suspect we'll end up doing the same for tar(1), but for that tool
I'd like to give people options to opt out first.
ok?
Index: options.c
===================================================================
RCS file: /cvs/src/bin/pax/options.c,v
diff -u -p -r1.107 options.c
--- options.c 9 Dec 2023 23:00:11 -0000 1.107
+++ options.c 15 Apr 2024 11:51:24 -0000
@@ -238,7 +238,11 @@ FSUB fsub[] = {
#define F_CPIO 3 /* format when called as cpio */
#define F_OTAR 4 /* format when called as tar -o */
#define F_TAR 5 /* format when called as tar */
-#define DEFLT 5 /* default write format from list above */
+#ifdef SMALL
+# define DEFLT 5 /* format when called as pax: ustar */
+#else
+# define DEFLT 10 /* format when called as pax: pax */
+#endif
/*
* ford is the archive search order used by get_arc() to determine what kind
Index: pax.1
===================================================================
RCS file: /cvs/src/bin/pax/pax.1,v
diff -u -p -r1.77 pax.1
--- pax.1 9 Dec 2023 23:00:11 -0000 1.77
+++ pax.1 15 Apr 2024 11:56:52 -0000
@@ -810,7 +810,7 @@ field as described in
for more information about device IDs.
.It Fl x Ar format
Specify the output archive format, with the default format being
-.Cm ustar .
+.Cm pax .
.Nm
currently supports the following formats:
.Bl -tag -width "sv4cpio"
--
jca
Change pax(1) default write format