172 Commits

Author SHA1 Message Date
pfg
9da7bdde06 spdx: initial adoption of licensing ID tags.
The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

Initially, only tag files that use BSD 4-Clause "Original" license.

RelNotes:	yes
Differential Revision:	https://reviews.freebsd.org/D13133
2017-11-18 14:26:50 +00:00
bdrewery
a598c4b809 DIRDEPS_BUILD: Update dependencies.
Sponsored by:	Dell EMC Isilon
2017-10-31 00:07:04 +00:00
eadler
45275e3a26 Update several more URLs
- Primarily http -> https
- Primarily FreeBSD project URLs
2017-10-29 08:17:03 +00:00
benno
2ed87b40c3 Replace makefs' hand-rolled unescaping with strunvis
mtree path names and link attributes are encoded, generally using strvis. Newer
versions of mtree will use C-style escapes but previously the accepted form was
octal escapes. makefs' mtree code spots the C-style escapes but fails to deal
with octal escapes correctly.

Remove mtree's escape-decoding code (except for a few instances where it's
needed) and instead pass pathnames and link targets through strunvis prior to
use.

Reviewed by:	marcel
MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D12104
2017-08-25 16:10:16 +00:00
ngie
7ec8e284a3 MFhead@r321960 2017-08-02 22:28:12 +00:00
ngie
d26727d972 Add HAS_TESTS to all Makefiles that are currently using the
`SUBDIR.${MK_TESTS}+= tests` idiom.

This is a follow up to r321912.
2017-08-02 08:50:42 +00:00
ngie
734d081ed1 MFhead@r321912 2017-08-02 08:38:36 +00:00
emaste
597e9cacf7 makefs: add copies of NetBSD makefs msdos source files
We do not treat makefs as contrib code.  Import copies of makefs msdos
files from NetBSD so that we can track our changes to these files.

These are copied from NetBSD, with only a change to use __FBSDID and
$FreeBSD$ instead of __KERNEL_RCSID and $NetBSD$.  A copy of the
original $NetBSD$ tag remains in each source file.

These two files were missed in r320212.  Also remove a stray blank line
added in msdosfs_vfsops.c.

Submitted by:	Siva Mahadevan
Sponsored by:	The FreeBSD Foundation
2017-06-23 18:58:28 +00:00
emaste
ec2f485e30 makefs: add copies of NetBSD makefs msdos source files
We do not treat makefs as contrib code.  Import copies of makefs msdos
files from NetBSD so that we can track our changes to these files.

These are copied from NetBSD, with only a change to use __FBSDID and
$FreeBSD$ instead of __KERNEL_RCSID and $NetBSD$.  A copy of the
original $NetBSD$ tag remains in each source file.

Submitted by:	Siva Mahadevan
Sponsored by:	The FreeBSD Foundation
2017-06-22 02:46:36 +00:00
asomers
5b4e9524c4 Fix usr.sbin/makefs/makefs_ffs_tests when /etc/fstab does not exist
dumpfs prints a harmless warning message (via ufs_disk_fillout(3) and
getfsfile(3)), when /etc/fstab does not exist.  We can ignore it.

PR:		220165
Reported by:	gjb
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corp
2017-06-20 19:00:55 +00:00
emaste
037fa8d139 makefs: use C standard memcpy/memset in userland
This file does not exist in NetBSD's makefs, but make the chance for
consistency with memcpy/memset used in the rest of makefs.

Sponsored by:	The FreeBSD Foundation
2017-06-12 13:49:57 +00:00
emaste
fc64d31d08 makefs: rename variable for NetBSD diff reduction 2017-06-03 14:28:19 +00:00
emaste
8987ae3ef4 makefs: free buf in case of error
CID:		270190
Submitted by:	Siva Mahadevan <smahadevan@freebsdfoundation.org>
Reported by:	Coverity
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D11011
2017-05-31 16:28:29 +00:00
emaste
1f114f2dcb makefs: add -O (offset) option
NetBSD revs:
ffs.c		1.60
makefs.8	1.44
makefs.c	1.48
makefs.h	1.33
ffs/buf.c	1.20
ffs/mkfs.c	1.27

Obtained from:	NetBSD
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D10780
2017-05-26 15:49:20 +00:00
emaste
7abb2ed1cb makefs: make buf generic
it has nothing to do with ffs and will eventually be moved.
gc sectorsize.

This is a corrected version of r317744.

NetBSD versions:
ffs.c		1.58
ffs/buf.c	1.14 1.18
ffs/buf.h	1.8

Submitted by:	Siva Mahadevan <smahadevan@freebsdfoundation.org>
Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D10803
2017-05-25 21:41:06 +00:00
emaste
2058307255 makefs: drop WARNS back to 2
GCC warns about additional signed comparision issues compared to Clang.
Drop WARNS for now until the underlying issue is fixed.
2017-05-18 17:55:33 +00:00
manu
5758c14ea9 makefs: Add soft-updates option
Add the ffs option to enable soft-updates.
The option is only processed is ufs2 has been selected.

Reviewed by:	emaste, bapt (earlier version), allanjude (earlier version)
Sponsored by:	Gandi.net
Differential Revision:	https://reviews.freebsd.org/D10773
2017-05-18 14:19:06 +00:00
emaste
ca0f527aa8 makefs: clean up signedness warnings and bump WARNS to 3
Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D10650
2017-05-18 14:05:29 +00:00
ngie
4d6d47f98c Restore sectorsize global to unbreak makefs after r317744
This also unbreaks the fstyp tests.

Reported by:	Alastair Hogge <agh@fastmail.fm>, Jenkins
Sponsored by:	Dell EMC Isilon
2017-05-08 18:42:38 +00:00
emaste
5441a42f45 makefs: further size_t warning cleanup (missing from r317944)
Sponsored by:	The FreeBSD Foundation
2017-05-08 16:57:33 +00:00
emaste
adba1e66da makefs: cast snprintf return value to size_t to clear warning
Sponsored by:	The FreeBSD Foundation
2017-05-08 16:34:39 +00:00
emaste
760c85792b makefs: use size_t as appropriate to clean up warnings
Sponsored by:	The FreeBSD Foundation
2017-05-08 13:09:27 +00:00
emaste
aa1b14508d makefs: clean up warnings
- make functions and variables static where appropriate
- use const char * where appropriate
- remove unused variables

Sponsored by:	The FreeBSD Foundation
2017-05-03 14:57:04 +00:00
emaste
b2c36616d6 makefs: make buf generic
it has nothing to do with ffs and will eventually be moved.
gc sectorsize.

NetBSD versions:
ffs.c		1.58
ffs/buf.c	1.14 1.18
ffs/buf.h	1.8

Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
2017-05-03 14:21:18 +00:00
emaste
6d3f34dceb makefs: remove unused cd9660_defaults_set global
Sponsored by:	The FreeBSD Foundation
2017-05-01 00:53:07 +00:00
emaste
e8fb32c10a makefs: Sync with NetBSD (fix unused variable warnings)
NetBSD revs:
cd9660.c		1.45
cd9660/cd9660_write.c	1.17

Obtained from:	NetBSD
2017-04-07 02:31:55 +00:00
brooks
61aff9b4e9 Point out that -F probably does not do what the user expects.
Users attempting to create images from mtree METALOG files created by
installworld often use -F when they should be passing the METALOG file
in place of a directory. This is often produces difficult to debug
error reports.

Reviewed by:	emaste
MFC after:	1 week
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D10038
2017-04-06 23:35:10 +00:00
emaste
b59369b373 makefs: use emalloc and friends
The emalloc set of error-checking memory allocation routines were added
to libnetbsd in r316572. Use them in makefs to reduce differences with
NetBSD.

NetBSD revs:
cd9660.c			1.39
ffs.c				1.56
makefs.c			1.42
walk.c				1.27
cd9660/cd9660_archimedes.c	1.2
cd9660/cd9660_eltorito.c	1.20
cd9660/cd9660_write.c		1.16
cd9660/iso9660_rrip.c		1.12
ffs/buf.c			1.17
ffs/mkfs.c			1.26

Obtained from:	NetBSD
2017-04-06 16:18:42 +00:00
emaste
7b09cd888c makefs: zero memory
NetBSD revs:
ffs/buf.c	1.14

Obtained from:	NetBSD
2017-04-06 00:07:11 +00:00
emaste
c3e003d2f9 makefs: sync with NetBSD
This is a collection of minor changes as diff reduction against NetBSD.

NetBSD revs:
cd9660.c		1.39
cd9660.h		1.19
makefs.c		1.34

Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
2017-03-29 20:49:41 +00:00
emaste
eac687108f makefs: free specfile structure once it has been applied
NetBSD revs:
walk.c		1.21

Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
2017-03-29 15:45:19 +00:00
emaste
b2b399690e makefs: sort roundup with the other off_t members in fsinfo_t
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
2017-03-27 20:24:18 +00:00
brd
a9fa766d5b Check to see if the kernel has cd9660 before running tests that require it
Approved by:	ngie
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D10096
2017-03-27 15:20:31 +00:00
emaste
85811dc7a7 makefs: improve error messages
- remove \n
- use __func__
- err adds the error string itself

NetBSD revs:
cd9660.c	1.48 1.49
ffs/buf.c	1.21
ffs/mkfs.c	1.27

Obtained from:	NetBSD
2017-03-15 18:14:54 +00:00
emaste
2d153bedd9 makefs: don't print pointers in debugging messages
NetBSD revisions:
ffs/buf.c	1.14

Obtained from:	NetBSD
2017-03-15 17:26:19 +00:00
emaste
2a02747aef makefs: use 'm' for cd9660 allow-multidot, per NetBSD
NetBSD revisions:
cd9660.c	1.55

Obtained from:	NetBSD
2017-03-15 16:16:30 +00:00
emaste
be330e4cb2 makefs: sync option parsing with NetBSD
- add support for parsing different types; not just int
- homogenize option parsing
- fix single letter parsing
- remove duplicated code

NetBSD revisions:
cd9660.c        1.36 1.37 1.38 1.41 1.42 1.43
ffs.c           1.50 1.51 1.52 1.53 1.56 1.57
makefs.c        1.36 1.37 1.38 1.39 1.40 1.42 1.43 1.44 1.46
makefs.h        1.28 1.29 1.31 1.32

Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
2017-03-15 13:34:51 +00:00
emaste
fbc7088a82 makefs: sync -T timestamp with NetBSD
NetBSD revision:
makefs.c	1.51

Obtained from:	NetBSD
2017-03-14 18:08:32 +00:00
emaste
15ee298d2f makefs: remove unused variable
NetBSD revisions:
mkfs.c 1.32

Obtained from:	NetBSD
2017-03-14 16:40:18 +00:00
emaste
cea6ec2c57 makefs: remove clause 3 & 4 from Manuel Bouyer license
ffs_bswap.c 1.34
ufs_bswap.h 1.34

Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
2017-03-02 04:11:18 +00:00
emaste
c048ebd3b5 makefs: remove archaic __P prototypes from ufs_bswap.h
This reduces differences with NetBSD

Sponsored by:	The FreeBSD Foundation
2017-03-02 04:08:14 +00:00
emaste
1d77d03b26 makefs: eliminate global cd9660 structure
For diff reduction with NetBSD

NetBSD file versions:
cd9660.c 1.39
cd9660.h 1.19
cd9660/cd9660_debug.c 1.12
cd9660/cd9660_eltorito.c 1.20
cd9660/cd9660_write.c 1.16
cd9660/iso9660_rrip.c 1.12
cd9660/iso9660_rrip.h 1.6

Reviewed by:	ngie
Obtained from:	NetBSD
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9627
2017-02-23 02:28:08 +00:00
emaste
d3e525e5cf makefs: use a macro to simplify per-fs function declarations
makefs.h 1.28

Obtained from:	NetBSD
2017-02-16 03:12:47 +00:00
emaste
8e79b56e85 prefix UFS symbols with UFS_ to reduce namespace pollution
Specifically:
  ROOTINO -> UFS_ROOTINO
  WINO -> UFS_WINO
  NXADDR -> UFS_NXADDR
  NDADDR -> UFS_NDADDR
  NIADDR -> UFS_NIADDR
  MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)

Also prefix ext2's and nandfs's NDADDR and NIADDR with EXT2_ and NANDFS_

Reviewed by:	kib, mckusick
Obtained from:	NetBSD
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9536
2017-02-15 19:50:26 +00:00
emaste
955b6cfdd0 makefs: make the buffer functions look exactly like the kernel ones
From NetBSD christos Sat Jan 26 00:19:39 2013 +0000

make the buffer functions look exactly like the kernel ones and add other
cruft to make the kernel files compile.

ffs.c 1.54
ffs/buf.c 1.13
ffs/buf.h 1.3
ffs/ffs_alloc.c 1.21
ffs/ffs_balloc.c 1.15

Reviewed by:	marcel, ngie
Obtained from:	NetBSD
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D8404
2017-02-11 02:33:48 +00:00
sevan
d42b4777f9 Fix null dereference when running out of nodes during rename.
PR:		212370
Submitted by:	Sascha Wildner <swildner AT gmail>
Reviewed by:	bcr (mentor)
Approved by:	bapt
Obtained from:	NetBSD
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D8643
2016-11-26 13:26:29 +00:00
marcel
6e98c7ae89 Assign a random number to di_gen (for FFS), instead of extracting it
from struct stat.  We don't necessarily have permissions to see the
generation number and the host OS may not have st_gen in struct stat
anyway.  Since the kernel assigns random numbers, there's nothing
meaningful about the generation that requires us to preserve it when
the file system image is created.  With this change, all generation
numbers come from random() and that makes it easier to add support
for reproducible builds at some time in the future (i.e. by adding
an argument to makefs that changes the behaviour of random() so that
it always returns 0 or some predictable sequence).

Differential Revision:	https://reviews.freebsd.org/D8418
2016-11-05 16:23:33 +00:00
marcel
f238e6d92d Be more precise when including headers so that we're less likely to
depend on namespace pollution and as such become more portable. This
means including headers like <sys/types.h> or <stdlib.h>, but also
making sure we include system/host headers before local headers.

While here: define ENOATTR as ENOMSG in mtree.c. There is no ENOATTR
on Linux.

With this, makefs is ready for compilation on macOS and Linux.
2016-10-25 16:29:15 +00:00
marcel
6d43ad44ce Allow building makefs(8) from another Makefile (such as one in
a seperate directory hierarchy used to build tools). This boils
down to replacing the use of ${.CURDIR} with either ${SRCDIR}
or ${SRCTOP}. SRCDIR is defined as the directory in which the
Makefile lives that bmake(1) is currently reading. Use SRCTOP
when reaching outside of makefs's directory.
2016-10-25 16:21:38 +00:00
emaste
be42e2a1a3 makefs: diff reduction with NetBSD
Obtained from:	NetBSD usr.sbin/makefs/cd9660.c 1.33
2016-10-07 19:12:15 +00:00