Commit Graph

51 Commits

Author SHA1 Message Date
marius
0adda65533 MFC: r260041
Record the IEEE P1282 Rock Ridge version 1.12 POSIX File Serial Number,
i. e. the POSIX:5.6.1 st_ino field, which can be used to detect hard links
in the file system. This is also the default in mkisofs(8) and according to
its man page, no system only being able to cope with Rock Ridge version 1.10
is known to exist.

PR:		185138
Submitted by:	Kurt Lidl
2014-04-25 21:20:22 +00:00
gjb
4d4391770d Mark the makefs(8) '-p' flag as deprecated in preference for
the '-Z' flag for compatibility with NetBSD.

Submitted by:	Eric van Gyzen (via stable@)
MFC after:	3 days
2013-08-16 05:30:13 +00:00
marius
1ff1c7f523 - Set the System Identifier in the Primary Volume Descriptor to FreeBSD
rather than NetBSD.
- Correctly set the Expiration Time in the Primary Volume Descriptor;
  according to ISO 9660 8.4.26.1 unspecified date and time are denoted
  by the digit 0 in RBP 1 to 16 but the number 0 in RBP 17. [1]
- Merge iso9660_rrip.c rev. 1.11 from NetBSD: name_len should be read
  as unsigned byte. [2]
  Note: This is according to ISO 9660 9.1.10.
- Rock Ridge TF entries should use a length of 5, because after the 4
  bytes of generic SUSP header there is one byte of flags. See typedef
  of ISO_RRIP_TF in iso9660_rrip.h. [1]

Submitted by:	Thomas Schmitt [1]
Obtained from:	NetBSD [2]
MFC after:	3 days
2013-07-27 15:28:31 +00:00
marius
5063721eee Ensure that makefs.h is included when using ufs_bswap.h so the FFS_EI macro
is picked up when defined. Previously, ffs_subr.c was always built without
support for opposite endianess as it doesn't include makefs.h on its own.

MFC after:	3 days
2013-07-26 14:22:03 +00:00
marcel
99aa6ad820 Set st_nlink in the stat structure within the inode to 1 as well.
The cd9660 file system uses that field for the link count and it
was 0. This impacts pwd_mkdb(8) as it checks for st_nlink not being
0 as part of closing a race.
2013-05-13 18:34:33 +00:00
brooks
ac45fc3bdc Remove duplicated copies of various NetBSD compatibility shims used by
makefs and use libnetbsd, contrib/mtree, and contrib/mknod instead.

Sponsored by:	DARPA, AFRLo
MFC after:	1 month
2013-05-09 14:43:36 +00:00
joel
d5b5017793 Remove contractions. 2013-04-11 18:46:41 +00:00
brooks
518d1fe89b Support hardlinks in manifest files by the same logic as the treewalk
code.

Reviewed by:	marcel
Sponsored by:	DARPA, AFRL
2013-02-20 19:32:31 +00:00
brooks
3279672226 Allow '.' components in manifest paths. They are always the first
component of mtree -C and install -M output and are easily skipped.

Reviewed by:	marcel
Sponsored by:	DARPA, AFRL
2013-02-20 15:28:40 +00:00
brooks
4694fe4330 Fix the -N option in manifest mode by using pwcache(3). This also
speeds up image creation appreciably.

Reviewed by:	marcel
Sponsored by:	DARPA, AFRL
2013-02-20 15:25:40 +00:00
brooks
dabbf96e6d Add a -D flag that causes duplicate entries in an mtree manifest to be
treated as warnings rather than errors.

Reviewed by:	marcel
Sponsored by:	DARPA, AFRL
2013-02-20 15:18:42 +00:00
sjg
7588f44e16 If no contents keyword is specified, the default for files is
the named file.

Approved by:	marcel (mentor)
2012-11-03 00:10:30 +00:00
mdf
a782f0b8bd Fix usr.bin/ and usr.sbin/ build with a 64-bit ino_t.
Original code by:	Gleb Kurtsou
2012-09-27 23:31:19 +00:00
joel
b3dd08c908 Remove trailing whitespace. 2012-08-31 16:57:16 +00:00
hrs
54fa7a2ba8 Sort options. 2012-08-22 19:27:42 +00:00
hrs
7ad4e5cce6 Add -p flag to create the image as a sparse file.
Submitted by:	Shesha Sreenivasamurthy
PR:		bin/167779
2012-08-22 06:37:30 +00:00
mjg
b45a39ac78 Remove unused member of struct indir (in_exists) from UFS and EXT2 code.
Reviewed by:	mckusick
Approved by:	trasz (mentor)
MFC after:	1 week
2012-08-17 17:45:27 +00:00
andreast
7201e74020 - Write the ISO9660 descriptor after the apm partition entries.
- Fill the needed pmPartStatus flags. At least the OpenBIOS
  implementation relies on these flags.

This commit fixes the panic seen on OS-X when inserting a FreeBSD/ppc disc.
Additionally OpenBIOS recognizes the partition where the boot code is located.
This lets us load a FreeBSD/ppc PowerMac kernel inside qemu.

PR:	powerpc/162091
MFC after:	1 week
2012-04-02 16:26:32 +00:00
jkim
a7ddcadb12 Allow contents of multiple directories to be merged to the current image.
Note this patch was submitted to NetBSD and they already adopted it.

http://mail-index.netbsd.org/source-changes/2012/01/28/msg031078.html

MFC after:	1 week
2012-01-31 00:32:37 +00:00
hrs
213e9c8713 Fix a SIGSEGV problem in directory entry renaming. 2012-01-25 07:45:15 +00:00
eadler
18616e8fc9 Fix warning when compiling with gcc46:
error: variable 'parentrecnum' set but not used

Approved by:    dim, cperciva (mentor, blanket for pre-mentorship already-approved commits)
MFC after:      3 days
2012-01-20 01:38:35 +00:00
eadler
958dcdaae7 Fix a variety of warnings when compiling with gcc46
Approved by:	dim, cperciva (mentor, blanket for pre-mentorship already-approved commits)
MFC after:	3 days
2012-01-20 01:38:28 +00:00
eadler
b9b0c09168 Fix warning when compiling with gcc46:
error: variable 'temp' set but not used

Approved by:	dim
Approved by:	cperciva (mentor, blanket for pre-mentorship already-approved commits)
MFC after:	3 days
2012-01-20 01:38:21 +00:00
uqs
415a3a9b96 Spelling fixes for usr.sbin/ 2011-12-30 10:58:14 +00:00
ed
fc75227bac Small cleanups to panic() prototype.
- Let panic() use _Noreturn and __printflike() instead of GCC-specific
  attributes.
- Remove prototype from ffs_subr.c and let it include ffs_extern.h.
- Forward declare struct inode to make ffs_extern.h not depend on it.
2011-12-20 12:34:17 +00:00
eadler
6184b463fa - remove device keyword from makefs manpage
PR:		docs/144408
Submitted by:	gcooper
Approved by:	gjb
Approved by:	sahil (mentor)
MFC after:	1 week
2011-10-17 21:31:03 +00:00
nwhitehorn
058bef5f51 Add support to makefs(8) to add UFS labels to images.
Submitted by:	avg
MFC after:	3 days
2011-10-09 16:22:31 +00:00
mm
5ebe68dec2 Fix buffer overflow and possible ISO image corruption in wrong
handling of "." character case in makefs ISO level 1 and 2 filename
conversion.

Filed as NetBSD PR #45285
http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=45285

Reviewed by:	Christos Zoulas <christos@netbsd.org>
Approved by:	re (kib)
MFC after:	3 days
2011-08-23 19:49:06 +00:00
marius
0043c1697f Sync makefs(8) ISO 9660 support with NetBSD:
o cd9960 -> cd9660
o Move inclusion of sys/endian.h from cd9660_eltorito.c to cd9660.h
  since actual user is not cd9660_eltorito.c but iso.h and
  cd9660_eltorito.h.

  Actually, include order/place of sys/endian.h doesn't matter on
  netbsd since it is always included by sys/types.h but it's not
  true on other system.  This should fix cross build breakage on
  freebsd introduced by rev. 1.16 of cd9660_eltorito.c.
  Problem reported and fix suggested on twitter.
o Fix fd leaks in error cases. Found by cppcheck.
o RRIP RE length should be 4, not 0
o Apply fixes for PR bin/44114 (makefs(8) -t cd9660 -o rockridge creates
  corrupted cd9660fs), iso9660_rrip.c part:
  - cd9660_rrip_finalize_node() should check rr_real_parent in node->parent,
    not in node itself in RRIP_PL case
  - cd9660_rrip_initialize_node() should update only node passed as arg
    so handle RRIP_PL in DOTDOT case

  Fixes malformed dotdot entries in deep (more than 8 level) directories
  moved into .rr_moved dir.

  Should be pulled up to netbsd-5.
  (no official ISO has such deep dirs, but cobalt restorecd is affected)

Reviewed by:	mm
Approved by:	re (kib)
Obtained from:	NetBSD
MFC after:	3 days
2011-08-10 19:12:21 +00:00
mm
6a47448a9e Fix NetBSD PR bin/44114:
makefs with -t cd9660 -o rockridge against directories with
deep structure creates a corrupted cd9660 image.

http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=44114

Fix NetBSD PR bin/45217:
makefs creates ISO9660 images that violate the ECMA-119 (ISO9660)
specification. This is caused by erroneously writing 32 bytes
with value 0x20 to the volume_set_id field and 128 bytes with value 0x20
to the the following 37-byte fields in the PVD:
copyright_file_id, abstract_file_id, bibliographic_file_id

This causes, among other unwanted results the reserved4 field to be
overwritten with the value 0x20. To comply with the specification,
this field muse be zero. As a result, all FreeBSD distribution
images created with makefs have not been 100% valid ISO9660 files.

http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=45217

Reviewed by:	kientzle
Approved by:	re (kib)
Obtained from:	NetBSD
MFC after:	3 days
2011-08-07 08:35:15 +00:00
marcel
20c059f23d Add support for using mtree(5) manifest files to define the image
to be created. The support is based on mtree version 2.0, as used
in libarchive, but adds new features on top of it.

The current implementation is fully functional, but is envisioned
to grow at least the following additional features over time:
o   Add support for the /include special command so that manifest
    files can be constructed using includable fragments.
o   Add support specifying a search path to locate content files.
o   Content file filters: commands that provide file contents on
    stdout.

The manifest file eliminates the need to first construct a tree
as root in order to create an image and allows images (releases)
to be created directly from object trees and/or source trees.

Reviewed by:	deo
Sponsored by:	Juniper Networks, Inc
2011-06-19 18:34:49 +00:00
mckusick
d97a856c1b Drop the include of <ufs/ffs/ffs_extern.h> from usr.sbin/makefs/ffs/ffs_bswap.c
and usr.sbin/makefs/ffs/ffs_subr.c as they have no need of anything in that
file.  No other programs or libraries include <ufs/ffs/ffs_extern.h> (nor
should they as it is totally in-kernel interfaces). For added protection
I enclosed the entire contents of <ufs/ffs/ffs_extern.h> in ifdef _KERNEL.

Feedback from:	Bruce Evans and Tai-hwa Liang
2011-06-16 23:40:10 +00:00
dim
accb907d3b Use alternative, less messy solution to avoid breakage after r223020:
put the snapdata structure between #ifdef _KERNEL guards.

Suggested by:	kib
2011-06-13 16:05:41 +00:00
dim
4e9fb4c6a0 Apparently makefs needs a few more system headers to compile during
buildworld.
2011-06-13 01:04:00 +00:00
dim
d0da16d0c8 Unbreak usr.sbin/makefs after r223020.
Pointy hat to:	mckusick
2011-06-12 23:09:00 +00:00
nwhitehorn
12ddcc1b33 Add analogs to the -chrp-boot and -prep-boot options to mkisofs. 2011-05-22 19:56:14 +00:00
nwhitehorn
96ef8b6576 Simplify this code somewhat by only writing a 512-byte-sector APM map.
All firmwares can read it, we need to write one anyway for old OF
versions, and if a 512-byte one is present, OS X ignores the 2048-byte one
in favor of it.
2011-05-06 15:40:58 +00:00
nwhitehorn
1b404ba5ee Fix boot on old machines (e.g. blue and white G3s) by synthesizing a
512-byte sector map instead unused space in the first 2048-byte sector.
2011-05-05 00:52:19 +00:00
nwhitehorn
4cd39afdb1 Add support for synthesizing an APM partition map to map Mac PowerPC
bootstrap partitions from the ISO9660 boot catalog. This preserves OS X's
ability to mount the CD, while allowing us a way to provide HFS-ified
bootstrap code for Open Firmware.
2011-05-03 15:12:01 +00:00
bapt
484221faf0 Really fix the confusion, sorry for noise
Submitted by:	avg
Approved by:	cognet
2011-03-24 12:35:59 +00:00
bapt
0b086b5868 Fix confusion between a-characters and d-characters
Submitted by:	avg
Approved by:	cognet
2011-03-24 12:04:42 +00:00
mckusick
242bd272d9 The dump, fsck_ffs, fsdb, fsirand, newfs, makefs, and quot utilities
include sys/time.h instead of time.h. This include is incorrect as
per the manpages for the APIs and the POSIX definitions. This commit
replaces sys/time.h where necessary with time.h.

The commit also includes some minor style(9) header fixup in newfs.

This commit is part of a larger effort by Garrett Cooper started in
//depot/user/gcooper/posix-conformance-work/ -- to make FreeBSD more
POSIX compliant.

Submitted by:  Garrett Cooper   yanegomi at gmail dot com
2011-01-24 06:17:05 +00:00
cognet
69d9f8b92c Sync with the latest version from NetBSD. It notably addds ISO9660 support.
Submitted by:	bapt
2010-11-07 16:05:04 +00:00
joel
f4e8725880 Fix typos and spelling mistakes. 2010-08-06 14:33:42 +00:00
jeff
a574495410 - Merge soft-updates journaling from projects/suj/head into head. This
brings in support for an optional intent log which eliminates the need
   for background fsck on unclean shutdown.

Sponsored by:   iXsystems, Yahoo!, and Juniper.
With help from: McKusick and Peter Holm
2010-04-24 07:05:35 +00:00
imp
79251c9c52 The NetBSD Foundation has given permission to remove clause 3 and 4
from their liceense.

Obtained from:	NetBSD
2010-02-16 21:47:05 +00:00
jmallett
52f89aaf3b Correct copy-paste typo from previous option description. 2010-01-27 07:37:39 +00:00
ed
e2be17ec8c Fix LLVM compiler errors related to K&R declarations with ANSI prototypes.
Submitted by:	Pawel Worach <pawel.worach@gmail.com>
2009-02-26 20:59:05 +00:00
sam
baa715ff9c fix pathnames to work w/ buildworld 2008-12-19 22:59:05 +00:00
sam
578922615a fix 64-bit build 2008-12-19 22:58:39 +00:00