libopkg: store compressed package lists
[oweals/opkg-lede.git] / libopkg / pkg.h
index 3f7d6b6aec1828182cd5b636ed9c6bc6c28f158a..775b656408cc47ec5ac704519ea1acd264856155 100644 (file)
@@ -18,9 +18,9 @@
 #ifndef PKG_H
 #define PKG_H
 
+#include "config.h"
+
 #include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
 
 #include "pkg_vec.h"
 #include "str_list.h"
@@ -85,10 +85,12 @@ struct abstract_pkg{
     pkg_vec_t * pkgs;
     pkg_state_status_t state_status;
     pkg_state_flag_t state_flag;
-    struct abstract_pkg ** depended_upon_by; /* @@@@ this should be abstract_pkg_vec_t -Jamey */
+
+    /* XXX: This should be abstract_pkg_vec_t for consistency. */
+    struct abstract_pkg ** depended_upon_by;
+
     abstract_pkg_vec_t * provided_by;
     abstract_pkg_vec_t * replaced_by;
-    struct active_list   searched_node;   /* Used for hash search */
 };
 
 #include "pkg_depends.h"
@@ -130,41 +132,39 @@ struct pkg
      pkg_state_flag_t state_flag;
      pkg_state_status_t state_status;
      char **depends_str;
-     int depends_count;
+     unsigned int depends_count;
      char **pre_depends_str;
-     int pre_depends_count;
+     unsigned int pre_depends_count;
      char **recommends_str;
-     int recommends_count;
+     unsigned int recommends_count;
      char **suggests_str;
-     int suggests_count;
+     unsigned int suggests_count;
      struct active_list list; /* Used for installing|upgrading */
-     struct active_list searched_node;  /* Used for searching */
      compound_depend_t * depends;
 
-     /* Abhaya: new conflicts */
      char **conflicts_str;
      compound_depend_t * conflicts;
-     int conflicts_count;
-       
+     unsigned int conflicts_count;
+
      char **replaces_str;
-     int replaces_count;
+     unsigned int replaces_count;
      abstract_pkg_t ** replaces;
 
      char **provides_str;
-     int provides_count;
+     unsigned int provides_count;
      abstract_pkg_t ** provides;
 
      abstract_pkg_t *parent;
 
-     pkg_t *old_pkg; /* during upgrade, points from installee to previously installed */
-
      char *filename;
      char *local_filename;
-     char *url;
      char *tmp_unpack_dir;
      char *md5sum;
-     char *size;
-     char *installed_size;
+#if defined HAVE_SHA256
+     char *sha256sum;
+#endif
+     unsigned long size;               /* in bytes */
+     unsigned long installed_size;     /* in bytes */
      char *priority;
      char *source;
      conffile_list_t conffiles;
@@ -187,17 +187,15 @@ struct pkg
 };
 
 pkg_t *pkg_new(void);
-int pkg_init(pkg_t *pkg);
 void pkg_deinit(pkg_t *pkg);
 int pkg_init_from_file(pkg_t *pkg, const char *filename);
 abstract_pkg_t *abstract_pkg_new(void);
-int abstract_pkg_init(abstract_pkg_t *ab_pkg);
 
-/* 
+/*
  * merges fields from newpkg into oldpkg.
- * Forcibly sets oldpkg state_status, state_want and state_flags if set_status is nonzero 
+ * Forcibly sets oldpkg state_status, state_want and state_flags
  */
-int pkg_merge(pkg_t *oldpkg, pkg_t *newpkg, int set_status);
+int pkg_merge(pkg_t *oldpkg, pkg_t *newpkg);
 
 char *pkg_version_str_alloc(pkg_t *pkg);
 
@@ -205,36 +203,29 @@ int pkg_compare_versions(const pkg_t *pkg, const pkg_t *ref_pkg);
 int pkg_name_version_and_architecture_compare(const void *a, const void *b);
 int abstract_pkg_name_compare(const void *a, const void *b);
 
-char * pkg_formatted_info(pkg_t *pkg );
-char * pkg_formatted_field(pkg_t *pkg, const char *field );
+void pkg_formatted_info(FILE *fp, pkg_t *pkg);
+void pkg_formatted_field(FILE *fp, pkg_t *pkg, const char *field);
 
-void set_flags_from_control(opkg_conf_t *conf, pkg_t *pkg);
+void set_flags_from_control(pkg_t *pkg);
 
-void pkg_print_info(pkg_t *pkg, FILE *file);
 void pkg_print_status(pkg_t * pkg, FILE * file);
-void pkg_print_field(pkg_t *pkg, FILE *file, const char *field);
 str_list_t *pkg_get_installed_files(pkg_t *pkg);
-int pkg_free_installed_files(pkg_t *pkg);
-int pkg_remove_installed_files_list(opkg_conf_t *conf, pkg_t *pkg);
+void pkg_free_installed_files(pkg_t *pkg);
+void pkg_remove_installed_files_list(pkg_t *pkg);
 conffile_t *pkg_get_conffile(pkg_t *pkg, const char *file_name);
-int pkg_run_script(struct opkg_conf *conf, pkg_t *pkg,
-                  const char *script, const char *args);
+int pkg_run_script(pkg_t *pkg, const char *script, const char *args);
 
 /* enum mappings */
-char *pkg_state_want_to_str(pkg_state_want_t sw);
 pkg_state_want_t pkg_state_want_from_str(char *str);
-char *pkg_state_flag_to_str(pkg_state_flag_t sf);
 pkg_state_flag_t pkg_state_flag_from_str(const char *str);
-char *pkg_state_status_to_str(pkg_state_status_t ss);
 pkg_state_status_t pkg_state_status_from_str(const char *str);
 
 int pkg_version_satisfied(pkg_t *it, pkg_t *ref, const char *op);
 
-int pkg_arch_supported(opkg_conf_t *conf, pkg_t *pkg);
-int pkg_info_preinstall_check(opkg_conf_t *conf);
-int pkg_free_installed_files(pkg_t *pkg);
+int pkg_arch_supported(pkg_t *pkg);
+void pkg_info_preinstall_check(void);
 
-int pkg_write_filelist(opkg_conf_t *conf, pkg_t *pkg);
-int pkg_write_changed_filelists(opkg_conf_t *conf);
+int pkg_write_filelist(pkg_t *pkg);
+int pkg_write_changed_filelists(void);
 
 #endif