rdate: make it do something remotely sane, facing 32-bit time overflow
[oweals/busybox.git] / archival / rpm.c
index 3c386d2385c36a8db877e7f8e866d487462ba112..83160f975eaecd5671cb3c0628cce1f9e9bc4f1e 100644 (file)
@@ -7,6 +7,13 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
+//config:config RPM
+//config:      bool "rpm"
+//config:      default y
+//config:      help
+//config:        Mini RPM applet - queries and extracts RPM packages.
+
+//applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
 //kbuild:lib-$(CONFIG_RPM) += rpm.o
 
 //usage:#define rpm_trivial_usage
@@ -22,6 +29,7 @@
 //usage:     "\n       -qpc    List config files"
 
 #include "libbb.h"
+#include "common_bufsiz.h"
 #include "bb_archive.h"
 #include "rpm.h"
 
@@ -86,8 +94,8 @@ struct globals {
        rpm_index **mytags;
        int tagcount;
 } FIX_ALIASING;
-#define G (*(struct globals*)&bb_common_bufsiz1)
-#define INIT_G() do { } while (0)
+#define G (*(struct globals*)bb_common_bufsiz1)
+#define INIT_G() do { setup_common_bufsiz(); } while (0)
 
 static void extract_cpio(int fd, const char *source_rpm)
 {
@@ -115,7 +123,7 @@ static void extract_cpio(int fd, const char *source_rpm)
        archive_handle->src_fd = fd;
        /*archive_handle->offset = 0; - init_handle() did it */
 
-       setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_detected:*/ 1);
+       setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_compressed:*/ 1);
        while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
                continue;
 }