1 diff -ur rpm-4.5.orig/build/parsePrep.c rpm-4.5/build/parsePrep.c
2 --- rpm-4.5.orig/build/parsePrep.c 2014-07-29 17:12:39.000000000 +0000
3 +++ rpm-4.5/build/parsePrep.c 2014-07-29 17:14:38.749000000 +0000
12 zipper = rpmGetPath(zipper, NULL);
22 if (rpmIsVerbose() && !quietly)
24 diff -ur rpm-4.5.orig/rpmio/macro.c rpm-4.5/rpmio/macro.c
25 --- rpm-4.5.orig/rpmio/macro.c 2014-07-29 17:12:39.000000000 +0000
26 +++ rpm-4.5/rpmio/macro.c 2014-07-29 17:13:17.613000000 +0000
27 @@ -1241,10 +1241,13 @@
28 sprintf(be, "%%__unzip -qq %s", b);
30 case 4: /* COMPRESSED_LZOP */
31 - sprintf(be, "%%__lzop %s", b);
32 + sprintf(be, "%%__lzop -dc %s", b);
34 case 5: /* COMPRESSED_LZMA */
35 - sprintf(be, "%%__lzma %s", b);
36 + sprintf(be, "%%__lzma -dc %s", b);
38 + case 6: /* COMPRESSED_XZ */
39 + sprintf(be, "%%__xz -dc %s", b);
43 @@ -2257,6 +2260,13 @@
44 magic[11] == 0x00 && magic[12] == 0x00) /* lzmash */
45 *compressed = COMPRESSED_LZMA;
47 + if (magic[0] == 0135 && magic[1] == 0 && magic[2] == 0) /* lzma */
48 + *compressed = COMPRESSED_LZMA;
50 + if (magic[0] == 0xFD && magic[1] == 0x37 && magic[2] == 0x7A
51 + && magic[3] == 0x58 && magic[4] == 0x5A && magic[5] == 0x00) /* xz */
52 + *compressed = COMPRESSED_XZ;
54 if ((magic[0] == 0037 && magic[1] == 0213) /* gzip */
55 || (magic[0] == 0037 && magic[1] == 0236) /* old gzip */
56 || (magic[0] == 0037 && magic[1] == 0036) /* pack */
57 diff -ur rpm-4.5.orig/rpmio/rpmmacro.h rpm-4.5/rpmio/rpmmacro.h
58 --- rpm-4.5.orig/rpmio/rpmmacro.h 2014-07-29 17:12:39.000000000 +0000
59 +++ rpm-4.5/rpmio/rpmmacro.h 2014-07-29 17:13:17.613000000 +0000
61 COMPRESSED_BZIP2 = 2, /*!< bzip2 can handle */
62 COMPRESSED_ZIP = 3, /*!< unzip can handle */
63 COMPRESSED_LZOP = 4, /*!< lzop can handle */
64 - COMPRESSED_LZMA = 5 /*!< lzma can handle */
65 + COMPRESSED_LZMA = 5, /*!< lzma can handle */
66 + COMPRESSED_XZ = 6 /*!< xz can handle */