summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/parsePrep.c3
-rw-r--r--configure.ac1
-rw-r--r--macros.in1
-rw-r--r--rpmio/macro.c3
-rw-r--r--rpmio/rpmfileutil.c3
-rw-r--r--rpmio/rpmfileutil.h3
6 files changed, 13 insertions, 1 deletions
diff --git a/build/parsePrep.c b/build/parsePrep.c
index de2b2a00a..35d54b497 100644
--- a/build/parsePrep.c
+++ b/build/parsePrep.c
@@ -188,6 +188,9 @@ static char *doUntar(rpmSpec spec, uint32_t c, int quietly)
case COMPRESSED_XZ:
t = "%{__xz} -dc";
break;
+ case COMPRESSED_LZIP:
+ t = "%{__lzip} -dc";
+ break;
}
zipper = rpmGetPath(t, NULL);
if (needtar) {
diff --git a/configure.ac b/configure.ac
index 13c972d36..2f3e5fe3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -106,6 +106,7 @@ AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH)
AC_PATH_PROG(__UNZIP, unzip, /usr/bin/unzip, $MYPATH)
AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
+AC_PATH_PROG(__LZIP, lzip, /usr/bin/lzip, $MYPATH)
AC_PATH_PROG(__XZ, xz, /usr/bin/xz, $MYPATH)
AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH)
AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH)
diff --git a/macros.in b/macros.in
index ca38db128..e4d399732 100644
--- a/macros.in
+++ b/macros.in
@@ -47,6 +47,7 @@
%__id_u %{__id} -u
%__install @__INSTALL@
%__ln_s @LN_S@
+%__lzip @__LZIP@
# Deprecated, use %__xz instead.
%__lzma %__xz --format=lzma
%__xz @__XZ@
diff --git a/rpmio/macro.c b/rpmio/macro.c
index 98830d28a..9444283eb 100644
--- a/rpmio/macro.c
+++ b/rpmio/macro.c
@@ -959,6 +959,9 @@ doFoo(MacroBuf mb, int negate, const char * f, size_t fn,
case COMPRESSED_XZ:
sprintf(be, "%%__xz -dc %s", b);
break;
+ case COMPRESSED_LZIP:
+ sprintf(be, "%%__lzip -dc %s", b);
+ break;
}
b = be;
} else if (STREQ("getenv", f, fn)) {
diff --git a/rpmio/rpmfileutil.c b/rpmio/rpmfileutil.c
index f44eb35e3..60fe292e8 100644
--- a/rpmio/rpmfileutil.c
+++ b/rpmio/rpmfileutil.c
@@ -369,6 +369,9 @@ int rpmFileIsCompressed(const char * file, rpmCompressedMagic * compressed)
(magic[4] == 0x5a) && (magic[5] == 0x00)) {
/* new style xz (lzma) with magic */
*compressed = COMPRESSED_XZ;
+ } else if ((magic[0] == 'L') && (magic[1] == 'Z') &&
+ (magic[2] == 'I') && (magic[3] == 'P')) {
+ *compressed = COMPRESSED_LZIP;
} else if (((magic[0] == 0037) && (magic[1] == 0213)) || /* gzip */
((magic[0] == 0037) && (magic[1] == 0236)) || /* old gzip */
((magic[0] == 0037) && (magic[1] == 0036)) || /* pack */
diff --git a/rpmio/rpmfileutil.h b/rpmio/rpmfileutil.h
index 496d7fda0..c6714151e 100644
--- a/rpmio/rpmfileutil.h
+++ b/rpmio/rpmfileutil.h
@@ -23,7 +23,8 @@ typedef enum rpmCompressedMagic_e {
COMPRESSED_BZIP2 = 2, /*!< bzip2 can handle */
COMPRESSED_ZIP = 3, /*!< unzip can handle */
COMPRESSED_LZMA = 4, /*!< lzma can handle */
- COMPRESSED_XZ = 5 /*!< xz can handle */
+ COMPRESSED_XZ = 5, /*!< xz can handle */
+ COMPRESSED_LZIP = 6 /*!< lzip can handle */
} rpmCompressedMagic;
/** \ingroup rpmfileutil