svn commit: r208189 - head/usr.bin/ar

Kai Wang kaiw at FreeBSD.org
Mon May 17 09:38:00 UTC 2010


Author: kaiw
Date: Mon May 17 09:37:59 2010
New Revision: 208189
URL: http://svn.freebsd.org/changeset/base/208189

Log:
  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

Modified:
  head/usr.bin/ar/Makefile
  head/usr.bin/ar/acpyacc.y
  head/usr.bin/ar/ar.1
  head/usr.bin/ar/ar.c
  head/usr.bin/ar/ar.h
  head/usr.bin/ar/read.c
  head/usr.bin/ar/write.c

Modified: head/usr.bin/ar/Makefile
==============================================================================
--- head/usr.bin/ar/Makefile	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/Makefile	Mon May 17 09:37:59 2010	(r208189)
@@ -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}
 

Modified: head/usr.bin/ar/acpyacc.y
==============================================================================
--- head/usr.bin/ar/acpyacc.y	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/acpyacc.y	Mon May 17 09:37:59 2010	(r208189)
@@ -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)))

Modified: head/usr.bin/ar/ar.1
==============================================================================
--- head/usr.bin/ar/ar.1	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/ar.1	Mon May 17 09:37:59 2010	(r208189)
@@ -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

Modified: head/usr.bin/ar/ar.c
==============================================================================
--- head/usr.bin/ar/ar.c	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/ar.c	Mon May 17 09:37:59 2010	(r208189)
@@ -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();

Modified: head/usr.bin/ar/ar.h
==============================================================================
--- head/usr.bin/ar/ar.h	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/ar.h	Mon May 17 09:37:59 2010	(r208189)
@@ -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 */

Modified: head/usr.bin/ar/read.c
==============================================================================
--- head/usr.bin/ar/read.c	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/read.c	Mon May 17 09:37:59 2010	(r208189)
@@ -87,7 +87,7 @@ read_archive(struct bsdar *bsdar, char m
 
 	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));
 

Modified: head/usr.bin/ar/write.c
==============================================================================
--- head/usr.bin/ar/write.c	Mon May 17 08:46:27 2010	(r208188)
+++ head/usr.bin/ar/write.c	Mon May 17 09:37:59 2010	(r208189)
@@ -247,7 +247,7 @@ read_objs(struct bsdar *bsdar, const cha
 
 	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 cha
 			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 
 	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));
 


More information about the svn-src-all mailing list