X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libopkg%2Fpkg.h;h=1ecb59e7558ba88dd3a06cc8a5a6a3635a7aecdb;hb=16b176283f668177e3bdd0a13caf88f1b6f2f476;hp=6e09f0a2b934c4e4768d2ce27abca7aaf2a17b59;hpb=2035cbf3a489fd762c4077478602d2022cb537f6;p=oweals%2Fopkg-lede.git diff --git a/libopkg/pkg.h b/libopkg/pkg.h index 6e09f0a..1ecb59e 100644 --- a/libopkg/pkg.h +++ b/libopkg/pkg.h @@ -18,8 +18,6 @@ #ifndef PKG_H #define PKG_H -#include "config.h" - #include #include @@ -60,6 +58,7 @@ enum pkg_state_flag { SF_MARKED = 64, /* temporary mark */ SF_FILELIST_CHANGED = 128, /* needs filelist written */ SF_USER = 256, + SF_NEED_DETAIL = 512, SF_LAST_STATE_FLAG }; typedef enum pkg_state_flag pkg_state_flag_t; @@ -89,10 +88,18 @@ enum pkg_fields { PKG_LOCAL_FILENAME, PKG_VERSION, PKG_REVISION, - PKG_ARCHITECTURE, PKG_DESCRIPTION, PKG_MD5SUM, PKG_SHA256SUM, + PKG_SIZE, + PKG_INSTALLED_SIZE, + PKG_INSTALLED_TIME, + PKG_TMP_UNPACK_DIR, + PKG_REPLACES, + PKG_PROVIDES, + PKG_DEPENDS, + PKG_CONFLICTS, + PKG_CONFFILES, }; struct abstract_pkg { @@ -135,39 +142,12 @@ struct pkg { char *name; pkg_src_t *src; pkg_dest_t *dest; - pkg_state_want_t state_want; - pkg_state_flag_t state_flag; - pkg_state_status_t state_status; - char **depends_str; - unsigned int depends_count; - char **pre_depends_str; - unsigned int pre_depends_count; - char **recommends_str; - unsigned int recommends_count; - char **suggests_str; - unsigned int suggests_count; - struct active_list list; /* Used for installing|upgrading */ - compound_depend_t *depends; - - char **conflicts_str; - compound_depend_t *conflicts; - unsigned int conflicts_count; - - char **replaces_str; - unsigned int replaces_count; - abstract_pkg_t **replaces; - - char **provides_str; - unsigned int provides_count; - abstract_pkg_t **provides; + pkg_state_want_t state_want:3; + pkg_state_flag_t state_flag:11; + pkg_state_status_t state_status:4; abstract_pkg_t *parent; - char *tmp_unpack_dir; - unsigned long size; /* in bytes */ - unsigned long installed_size; /* in bytes */ - conffile_list_t conffiles; - time_t installed_time; /* As pointer for lazy evaluation */ str_list_t *installed_files; /* XXX: CLEANUP: I'd like to perhaps come up with a better @@ -175,7 +155,6 @@ struct pkg { installed_files list was being freed from an inner loop while still being used within an outer loop. */ int installed_files_ref_cnt; - int arch_priority; int essential:1; /* Adding this flag, to "force" opkg to choose a "provided_by_hand" package, if there are multiple choice */ @@ -186,6 +165,8 @@ struct pkg { int auto_installed:1; int is_upgrade:1; + int arch_index:3; + struct blob_buf blob; }; @@ -215,14 +196,26 @@ static inline char *pkg_get_string(const pkg_t *pkg, int id) static inline void * pkg_set_ptr(pkg_t *pkg, int id, void *ptr) { - return pkg_set_raw(pkg, id, ptr, sizeof(ptr)); + void **res = pkg_set_raw(pkg, id, &ptr, sizeof(ptr)); + return res ? *res : NULL; } static inline void * pkg_get_ptr(const pkg_t *pkg, int id) { - return pkg_get_raw(pkg, id); + void **ptr = pkg_get_raw(pkg, id); + return ptr ? *ptr : NULL; } +char *pkg_set_architecture(pkg_t *pkg, const char *architecture, ssize_t len); +char *pkg_get_architecture(const pkg_t *pkg); +int pkg_get_arch_priority(const pkg_t *pkg); + +char *pkg_get_md5(const pkg_t *pkg); +char *pkg_set_md5(pkg_t *pkg, const char *cksum); + +char *pkg_get_sha256(const pkg_t *pkg); +char *pkg_set_sha256(pkg_t *pkg, const char *cksum); + abstract_pkg_t *abstract_pkg_new(void); /*