rdate: make it do something remotely sane, facing 32-bit time overflow
[oweals/busybox.git] / archival / rpm.c
index 86ba4dca490fbe09006a8814fe5eaea9038d7be4..83160f975eaecd5671cb3c0628cce1f9e9bc4f1e 100644 (file)
@@ -7,6 +7,15 @@
  * 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
 //usage:       "-i PACKAGE.rpm; rpm -qp[ildc] PACKAGE.rpm"
 //usage:#define rpm_full_usage "\n\n"
@@ -20,6 +29,7 @@
 //usage:     "\n       -qpc    List config files"
 
 #include "libbb.h"
+#include "common_bufsiz.h"
 #include "bb_archive.h"
 #include "rpm.h"
 
@@ -84,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)
 {
@@ -113,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;
 }