case COMPRESSED_LRZIP:
t = "%{__lrzip} -dqo-";
break;
+ case COMPRESSED_7ZIP:
+ t = "%{__7zip} x";
+ needtar = 0;
+ break;
}
zipper = rpmGetPath(t, NULL);
if (needtar) {
dnl
dnl Find some common programs
dnl
+AC_PATH_PROG(__7ZIP, 7zip, /usr/bin/7za, $MYPATH)
AC_PATH_PROG(__BZIP2, bzip2, /usr/bin/bzip2, $MYPATH)
AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
AC_PATH_PROG(__CHGRP, chgrp, /bin/chgrp, $MYPATH)
#==============================================================================
# ---- Generally useful path macros.
#
+%__7zip @__7ZIP@
%__awk @AWK@
%__bzip2 @__BZIP2@
%__cat @__CAT@
case COMPRESSED_LRZIP:
sprintf(be, "%%__lrzip -dqo- %s", b);
break;
+ case COMPRESSED_7ZIP:
+ sprintf(be, "%%__7zip x %s", b);
+ break;
}
b = be;
} else if (STREQ("getenv", f, fn)) {
((magic[0] == 0037) && (magic[1] == 0235)) /* compress */
) {
*compressed = COMPRESSED_OTHER;
+ } else if ((magic[0] == '7') && (magic[1] == 'z') &&
+ (magic[2] == 0xbc) && (magic[3] == 0xaf) &&
+ (magic[4] == 0x27) && (magic[5] == 0x1c)) {
+ *compressed = COMPRESSED_7ZIP;
} else if (rpmFileHasSuffix(file, ".lzma")) {
*compressed = COMPRESSED_LZMA;
}
COMPRESSED_LZMA = 4, /*!< lzma can handle */
COMPRESSED_XZ = 5, /*!< xz can handle */
COMPRESSED_LZIP = 6, /*!< lzip can handle */
- COMPRESSED_LRZIP = 7 /*!< lrzip can handle */
+ COMPRESSED_LRZIP = 7, /*!< lrzip can handle */
+ COMPRESSED_7ZIP = 8 /*!< 7zip can handle */
} rpmCompressedMagic;
/** \ingroup rpmfileutil