<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/usr.sbin/makefs, branch releng/14.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2025-03-04T20:57:26Z</updated>
<entry>
<title>makefs: Make cd9660 Rock Ridge inodes reproducible</title>
<updated>2025-03-04T20:57:26Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2025-02-26T16:44:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e4bcef6daba71546570c623e6091fdef982a596b'/>
<id>urn:sha1:e4bcef6daba71546570c623e6091fdef982a596b</id>
<content type='text'>
Rock Ridge extensions include an inode field:

    "POSIX File Serial Number" shall have the same meaning as and may be
    used for the st_ino field of POSIX:5.6.1. This field shall be
    recorded according to ISO 9660:7.3.3. Directory Records which share
    the value of this field are defined as links (see POSIX:2.2.2.17)
    and, by definition, point to the same file or directory.

Previously we'd store the source file's st_ino (except that in metalog
mode we'd record 0 for files with nlink = 1).  This had two issues: the
generated ISO image was nonreproducible due to the arbitrary inode
numbers, and files without hard links would falsely be detected (by
certain tools) as hard links to each other.

Note that the kernel's cd9660(5) file system ignores the Rock Ridge
PX File Serial Number, so this issue isn't observed by mounting such a
file system.

Instead of using the source inode directly, assign target inode numbers
sequentially.  Use a map so that files with the same source inode (hard
links) still receive the same target inode number.

PR:		284795
PR:		285027
Reviewed by:	brooks
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49141

(cherry picked from commit 518cdd344ec51584478f39b9a9cac77fc0766ce1)
(cherry picked from commit 337f5e7a44c4d5ac29e0b0c0fe957bb3b9bae222)
(cherry picked from commit a18be39aafc1b55fd67603ee6a6d820d0fcd877f)
</content>
</entry>
<entry>
<title>Defer the January 19, 2038 date limit in UFS1 filesystems to February 7, 2106</title>
<updated>2025-02-06T19:25:09Z</updated>
<author>
<name>Kirk McKusick</name>
<email>mckusick@FreeBSD.org</email>
</author>
<published>2025-01-31T01:27:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5572827428bb54e5a22aa81c8c8826d033205406'/>
<id>urn:sha1:5572827428bb54e5a22aa81c8c8826d033205406</id>
<content type='text'>
Standardize the definition of a UFS dinode

Differential Revision: https://reviews.freebsd.org/D48472

(cherry picked from commit 1111a44301da39d7b7459c784230e1405e8980f8)
(cherry picked from commit aa90fbed151de512ab6e59f75df009533a15751f)
(cherry picked from commit 256389eaf158acaf67f0530764be8af68edee78c)
(cherry picked from commit 6cd973d903c8f214d84daf91eb75047631bf1618)
(cherry picked from commit e1ebda4458bbaf7d85fb803e20f3afc5441f24d9)
</content>
</entry>
<entry>
<title>makefs: Handle special file types when creating a zpool</title>
<updated>2025-01-21T14:08:40Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2025-01-07T14:31:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0ec93987e5302495f9512f8534a2375d7da4ee2a'/>
<id>urn:sha1:0ec93987e5302495f9512f8534a2375d7da4ee2a</id>
<content type='text'>
Previously, anything other than a regular file, directory or symlink
would cause makefs to exit with an assertion failure.  Make it a bit
more resilient to user error: print a warning and skip the file.  Add a
regression test wherein we create an image from a devfs mount.

PR:		283583
MFC after:	2 weeks

(cherry picked from commit ce878284318e71217d8d8f43f7d590b6c338d3aa)
</content>
</entry>
<entry>
<title>makefs: Fix cd9660 duplicate directory names</title>
<updated>2025-01-14T21:07:39Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2024-12-30T15:01:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=40b11c1c16d85b3339be4c3c4fde2ef7fa36f3ff'/>
<id>urn:sha1:40b11c1c16d85b3339be4c3c4fde2ef7fa36f3ff</id>
<content type='text'>
Previously we could create cd9660 images with duplicate short (level 2)
names.

cd9660_level2_convert_filename used a 30-character limit (for files and
directories), not including the '.' separator.  cd9660_rename_filename
used a 31-character limit, including the '.'.  Directory names 31
characters or longer (without '.') were shortened to 30 characters, and
if a collision occurred cd9660_rename_filename uniquified them starting
with the 31st character.  Unfortunately the directory record's name_len
was already set, so the unique part of the name was stripped off.

Directories are up to 31 d-characters (i.e., A-Z 0-9 and _); there is no
provision for a '.' in a directory name.  Increase the name length limit
to 31 for directories, and exclude '.'s.

This name mapping and deduplication code is still fragile and convoluted
and would beenfit from a more holistic effort.

PR:		283238, 283112
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48251

(cherry picked from commit 1f31d437428014e864bcce1223cf7017180e2608)
</content>
</entry>
<entry>
<title>makefs: Remove impossible if condition</title>
<updated>2025-01-14T21:07:39Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2024-12-24T01:58:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=302be497fc0349979df05b700a7d27ffdac941f4'/>
<id>urn:sha1:302be497fc0349979df05b700a7d27ffdac941f4</id>
<content type='text'>
This test is inside the else block for `if (*oldname == '.')`, so
*oldname cannot be '.' here.

Reviewed by:	kevans
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48243

(cherry picked from commit 788e1eb7c199297aa438fc5cb6caabc9be01b419)
</content>
</entry>
<entry>
<title>makefs: Fix cd9660 filename buffer maximum length</title>
<updated>2025-01-14T21:07:39Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2024-12-24T16:08:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=999c7a888f4fbe74573bc342052f3146b8d756c9'/>
<id>urn:sha1:999c7a888f4fbe74573bc342052f3146b8d756c9</id>
<content type='text'>
The maximum length is 30 characters for name and extension, two
separators (. and ;) and 5 characters for file version from 1 to 32767,
which is 37 characters.  Add one for the null term as we treat these
buffers as C strings.

This is not an issue in practice, as the file version is always 1 in
makefs.

While here, drop `_WITH_PADDING` from the macro name and update the
previously-unused ISO_FILENAME_MAXLENGTH for the corrected length.
A 0x00 padding byte is used by ISO9660 when needed for alignment, which
can be the null byte at the end of the string.

Use sizeof where appropriate.

Reviewed by:	kevans
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48193

(cherry picked from commit 2e09cef8dc6f46faba8bab87c42c3f19ba2ffe87)
</content>
</entry>
<entry>
<title>makefs: Crudely fix a sprintf warning</title>
<updated>2025-01-14T21:07:39Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2024-12-22T16:00:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fb0239e69f17400b08421a002a72b9520afd8285'/>
<id>urn:sha1:fb0239e69f17400b08421a002a72b9520afd8285</id>
<content type='text'>
Reviewed by:	kevans
Obtained from:	OpenBSD d95291fdb2dc
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48178

(cherry picked from commit 2069f6ecb1b1268deac980176c652ffab264970e)
</content>
</entry>
<entry>
<title>makefs: Remove dead code in inode_type()</title>
<updated>2025-01-14T14:14:27Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2025-01-07T14:30:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e59fdfbf2524a320dbe4bcfc8fce30ef1e22f860'/>
<id>urn:sha1:e59fdfbf2524a320dbe4bcfc8fce30ef1e22f860</id>
<content type='text'>
No functional change intended.

MFC after:	1 week

(cherry picked from commit 2be86b6cc168615e19350710347b77616c4b7f19)
</content>
</entry>
<entry>
<title>makefs: Exit with error if writing cd image fails</title>
<updated>2024-12-30T22:20:04Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2024-12-23T15:54:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=afb7a85e52c323aca544f0d235b67123bf87d342'/>
<id>urn:sha1:afb7a85e52c323aca544f0d235b67123bf87d342</id>
<content type='text'>
Obtained from:	OpenBSD c8f48d9b1ea9
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit b45f84cc6213854ead00a4bfc7973332eda65676)
</content>
</entry>
<entry>
<title>makefs.8: Clarify that makefs-generated zpools always have the same GUID</title>
<updated>2024-11-28T14:38:17Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2024-11-19T21:07:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c9f9f1a282ab81276feb81d0509e44535ebda504'/>
<id>urn:sha1:c9f9f1a282ab81276feb81d0509e44535ebda504</id>
<content type='text'>
PR:		282832
MFC after:	1 week

(cherry picked from commit a20249443be111e8a3cb3b7bbe4a0d0e460a6058)
</content>
</entry>
</feed>
