Apparently, nobody cares about fat packages.
Not surprisingly, killing that code simplifies a few things.
Especially since the necessity of passing arch around was only due to
the possibility of fat packages...
Index: package.5
===
RCS file: /cvs/src/usr.sbin/pkg_add/package.5,v
retrieving revision 1.9
diff -u -p -r1.9 package.5
--- package.5 11 Jan 2010 10:16:20 - 1.9
+++ package.5 24 Aug 2011 10:35:28 -
@@ -29,7 +29,6 @@ and
.Xr pkg_merge 1 ,
and are usually manipulated using
.Xr pkg_add 1 ,
-.Xr pkg_merge 1 ,
.Xr pkg_mklocatedb 1 ,
or
.Xr pkg_info 1 .
@@ -57,9 +56,6 @@ All types of archive contents can be pre
including files, directories, hardlinks, symlinks, fifos, block and character
devices.
.Pp
-A special extension to the format, dubbed fat packages, is described in
-the next section.
-.Pp
In order to allow just-in-time extraction,
packages always begin with a table of contents, named
.Pa +CONTENTS .
@@ -74,8 +70,8 @@ See
for annotation details.
.Pp
This table of contents is always followed by a few special files, some of
-which are optional: the package description (+DESC), an installation script
-(+INSTALL), a display message (+DISPLAY), etc.
+which are optional: the package description (+DESC),
+a display message (+DISPLAY), etc.
.Pp
The ustar format has some limitations with respect to file names.
Accordingly, the package tools will replace very long names with
@@ -103,38 +99,17 @@ Once the packing-list signature is check
will be checksummed, resulting in a
.Sq just-in-time
signature checking.
-.Sh FAT PACKAGES DESCRIPTION
-The
-.Xr pkg_merge 1
-command can create fat packages, which coalesce several normal packages in
-a single ustar archive, by interleaving their contents.
-.Pp
-Other tools, such as
-.Xr pkg_add 1 ,
-are aware of fat packages and can handle them transparently.
.Pp
-In a fat package, every item has a small prefix that identifies the
-original package.
-For instance, after merging two packages, the package will usually
-begin with
-.Pa a/+CONTENTS
-and
-.Pa b/+CONTENTS .
-Individual items will then begin with
-.Pa ab/file ,
-for a file common to both packages;
-.Pa a/file
-for a file belonging to the first package;
-and
-.Pa b/file
-for a file belonging to the second package.
+Fat packages were removed in
+.Ox 5.1 ,
+since no practical application was found.
.Sh SEE ALSO
.Xr pkg_add 1 ,
.Xr pkg_create 1 ,
.Xr pkg_info 1 ,
-.Xr pkg_merge 1 ,
.Xr packages 7 ,
.Xr packages-specs 7
+.Sh HISTORY
.Sh STANDARDS
Packages are valid gzip'ed ustar archives that can be extracted using
.Xr tar 1 .
Index: pkg_merge
===
RCS file: pkg_merge
diff -N pkg_merge
--- pkg_merge 28 Jul 2010 12:19:54 - 1.21
+++ /dev/null 1 Jan 1970 00:00:00 -
@@ -1,257 +0,0 @@
-#! /usr/bin/perl
-# Copyright (c) 2005-2007 Marc Espie es...@openbsd.org
-# $OpenBSD: pkg_merge,v 1.21 2010/07/28 12:19:54 espie Exp $
-#
-# Permission to use, copy, modify, and distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-use strict;
-use warnings;
-
-use OpenBSD::PackageLocator;
-use OpenBSD::PackageInfo;
-use OpenBSD::PackingList;
-use OpenBSD::Getopt;
-use OpenBSD::Error;
-use OpenBSD::Ustar;
-use OpenBSD::ArcCheck;
-use OpenBSD::Paths;
-use OpenBSD::State;
-use File::Copy;
-use File::Path;
-
-package OpenBSD::PackingElement;
-sub copy_over {}
-
-sub mark_tocopy {}
-
-sub make_alias {}
-package OpenBSD::PackingElement::FileBase;
-sub mark_tocopy
-{
- my ($self, $list) = @_;
- push(@$list, $self);
-}
-
-sub copy_over
-{
- my ($self, $wrarc, $prefix, $pkg, $state) = @_;
- my $e = $pkg-{pkg}-next;
- if (!$e-check_name($self)) {
- $state-fatal(Names don't match: #1 vs #2,
- $e-{name}, $self-{name});
- }
- $e-{name} = $prefix./.$e-{name};
- $e-copy_long($wrarc);
-}
-
-sub make_alias
-{
- my ($self, $wrarc, $prefix, $pkg, $alias, $state) = @_;
- my $e = $pkg-{pkg}-next;
- if (!$e-check_name($self)) {
- $state-fatal(Names don't match: #1 vs #2,
- $e-{name}, $self-{name});
- }
- $e-{name} = $prefix./.$e-{name};
- $e-alias($wrarc, $prefix/$alias);
-}
-
-package