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));
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to