summaryrefslogtreecommitdiffstats
path: root/usr.bin/ar
diff options
context:
space:
mode:
authorkaiw <kaiw@FreeBSD.org>2010-05-17 09:37:59 +0000
committerkaiw <kaiw@FreeBSD.org>2010-05-17 09:37:59 +0000
commite87f2d48bc38fef35b49a5ba9f33703473cee54a (patch)
treec1fbbf0def71cdcf6cf8e4112b0f5d65cb69f755 /usr.bin/ar
parentbd4ac448d72b03f76644e769f11ee45445c8ead7 (diff)
downloadFreeBSD-src-e87f2d48bc38fef35b49a5ba9f33703473cee54a.zip
FreeBSD-src-e87f2d48bc38fef35b49a5ba9f33703473cee54a.tar.gz
Removed ar(1)'s support for compressed archives. This change removes
ar(1)'s dependencies on compressor libraries -lz, -lbz2 and -llzma and fixes building HEAD on some versions of FreeBSD[78]. Option -j and -z is now accepted but ignored. Compressed ar(1) archives are not useful without a ld(1) that can read them. Also, the current ar(1) compression scheme prevents random access of archive members and needs to be redesigned anyway. Submitted by: kientzle (original patch) Reviewed by: delphij Discussed on: -current mailing list
Diffstat (limited to 'usr.bin/ar')
-rw-r--r--usr.bin/ar/Makefile4
-rw-r--r--usr.bin/ar/acpyacc.y2
-rw-r--r--usr.bin/ar/ar.18
-rw-r--r--usr.bin/ar/ar.c4
-rw-r--r--usr.bin/ar/ar.h1
-rw-r--r--usr.bin/ar/read.c2
-rw-r--r--usr.bin/ar/write.c30
7 files changed, 11 insertions, 40 deletions
diff --git a/usr.bin/ar/Makefile b/usr.bin/ar/Makefile
index 57ff447..e373120 100644
--- a/usr.bin/ar/Makefile
+++ b/usr.bin/ar/Makefile
@@ -3,8 +3,8 @@
PROG= ar
SRCS= ar.c acplex.l acpyacc.y read.c util.c write.c y.tab.h
-DPADD= ${LIBARCHIVE} ${LIBBZ2} ${LIBZ} ${LIBLZMA} ${LIBELF}
-LDADD= -larchive -lbz2 -lz -llzma -lelf
+DPADD= ${LIBARCHIVE} ${LIBELF}
+LDADD= -larchive -lelf
CFLAGS+=-I. -I${.CURDIR}
diff --git a/usr.bin/ar/acpyacc.y b/usr.bin/ar/acpyacc.y
index b686c3f5..e1a6e6d 100644
--- a/usr.bin/ar/acpyacc.y
+++ b/usr.bin/ar/acpyacc.y
@@ -250,7 +250,7 @@ arscp_open(char *fname)
if ((a = archive_read_new()) == NULL)
bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed");
- archive_read_support_compression_all(a);
+ archive_read_support_compression_none(a);
archive_read_support_format_ar(a);
AC(archive_read_open_file(a, fname, DEF_BLKSZ));
if ((r = archive_read_next_header(a, &entry)))
diff --git a/usr.bin/ar/ar.1 b/usr.bin/ar/ar.1
index 250cd20..6e00228 100644
--- a/usr.bin/ar/ar.1
+++ b/usr.bin/ar/ar.1
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 31, 2007
+.Dd May 17, 2010
.Dt AR 1
.Os
.Sh NAME
@@ -186,8 +186,7 @@ Synonymous with option
Synonymous with option
.Fl b .
.It Fl j
-Compress the resulting archive with
-.Xr bzip2 1 .
+This option is accepted but ignored.
.It Fl m
Move archive members specified by arguments
.Ar files ...
@@ -344,8 +343,7 @@ of extraction unless the
.Fl o
option was specified.
.It Fl z
-Compress the resulting archive with
-.Xr gzip 1 .
+This option is accepted but ignored.
.El
.Sh EXAMPLES
To create a new archive
diff --git a/usr.bin/ar/ar.c b/usr.bin/ar/ar.c
index dc4b6c4..1fe92fb 100644
--- a/usr.bin/ar/ar.c
+++ b/usr.bin/ar/ar.c
@@ -178,7 +178,7 @@ main(int argc, char **argv)
bsdar->options |= AR_TR;
break;
case 'j':
- bsdar->options |= AR_J;
+ /* ignored */
break;
case 'l':
/* ignored, for GNU ar comptibility */
@@ -223,7 +223,7 @@ main(int argc, char **argv)
set_mode(bsdar, opt);
break;
case 'z':
- bsdar->options |= AR_Z;
+ /* ignored */
break;
case OPTION_HELP:
bsdar_usage();
diff --git a/usr.bin/ar/ar.h b/usr.bin/ar/ar.h
index 111f944..60fe8e8 100644
--- a/usr.bin/ar/ar.h
+++ b/usr.bin/ar/ar.h
@@ -81,7 +81,6 @@ struct bsdar {
const char *addlib; /* target of ADDLIB. */
const char *posarg; /* position arg for modifiers -a, -b. */
char mode; /* program mode */
- char compression; /* compression mode */
int options; /* command line options */
const char *progname; /* program name */
diff --git a/usr.bin/ar/read.c b/usr.bin/ar/read.c
index 37bd0a1..8df170d 100644
--- a/usr.bin/ar/read.c
+++ b/usr.bin/ar/read.c
@@ -87,7 +87,7 @@ read_archive(struct bsdar *bsdar, char mode)
if ((a = archive_read_new()) == NULL)
bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed");
- archive_read_support_compression_all(a);
+ archive_read_support_compression_none(a);
archive_read_support_format_ar(a);
AC(archive_read_open_file(a, bsdar->filename, DEF_BLKSZ));
diff --git a/usr.bin/ar/write.c b/usr.bin/ar/write.c
index 3d4f93d..8b6fbdf 100644
--- a/usr.bin/ar/write.c
+++ b/usr.bin/ar/write.c
@@ -247,7 +247,7 @@ read_objs(struct bsdar *bsdar, const char *archive, int checkargv)
if ((a = archive_read_new()) == NULL)
bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed");
- archive_read_support_compression_all(a);
+ archive_read_support_compression_none(a);
archive_read_support_format_ar(a);
AC(archive_read_open_filename(a, archive, DEF_BLKSZ));
for (;;) {
@@ -264,13 +264,6 @@ read_objs(struct bsdar *bsdar, const char *archive, int checkargv)
continue;
}
- /*
- * Remember the compression mode of existing archive.
- * If neither -j nor -z is specified, this mode will
- * be used for resulting archive.
- */
- bsdar->compression = archive_compression(a);
-
name = archive_entry_pathname(entry);
/*
@@ -360,9 +353,6 @@ write_archive(struct bsdar *bsdar, char mode)
pos = NULL;
memset(&sb, 0, sizeof(sb));
- /* By default, no compression is assumed. */
- bsdar->compression = ARCHIVE_COMPRESSION_NONE;
-
/*
* Test if the specified archive exists, to figure out
* whether we are creating one here.
@@ -618,23 +608,7 @@ write_objs(struct bsdar *bsdar)
bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_write_new failed");
archive_write_set_format_ar_svr4(a);
-
- /* The compression mode of the existing archive is used
- * for the result archive or if creating a new archive, we
- * do not compress archive by default. This default behavior can
- * be overrided by compression mode specified explicitly
- * through command line option `-j' or `-z'.
- */
- if (bsdar->options & AR_J)
- bsdar->compression = ARCHIVE_COMPRESSION_BZIP2;
- if (bsdar->options & AR_Z)
- bsdar->compression = ARCHIVE_COMPRESSION_GZIP;
- if (bsdar->compression == ARCHIVE_COMPRESSION_BZIP2)
- archive_write_set_compression_bzip2(a);
- else if (bsdar->compression == ARCHIVE_COMPRESSION_GZIP)
- archive_write_set_compression_gzip(a);
- else
- archive_write_set_compression_none(a);
+ archive_write_set_compression_none(a);
AC(archive_write_open_filename(a, bsdar->filename));
OpenPOWER on IntegriCloud