libopkg: do not clobber package flags during parsing
[project/opkg-lede.git] / libopkg / pkg.h
index 7fdbea2386d9d2379c52c6501db3f9992fa72b02..3237f839e1bd725882c08d59a500ca2ae6a622f8 100644 (file)
@@ -60,6 +60,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,8 +90,6 @@ enum pkg_fields {
        PKG_LOCAL_FILENAME,
        PKG_VERSION,
        PKG_REVISION,
-       PKG_ARCHITECTURE,
-       PKG_ARCH_PRIORITY,
        PKG_DESCRIPTION,
        PKG_MD5SUM,
        PKG_SHA256SUM,
@@ -146,9 +145,8 @@ struct pkg {
        pkg_src_t *src;
        pkg_dest_t *dest;
        pkg_state_want_t state_want:3;
-       pkg_state_flag_t state_flag:10;
+       pkg_state_flag_t state_flag:11;
        pkg_state_status_t state_status:4;
-       struct active_list list;        /* Used for installing|upgrading */
 
        abstract_pkg_t *parent;
 
@@ -169,6 +167,8 @@ struct pkg {
        int auto_installed:1;
        int is_upgrade:1;
 
+       int arch_index:3;
+
        struct blob_buf blob;
 };
 
@@ -207,6 +207,16 @@ static inline void * pkg_get_ptr(const pkg_t *pkg, int 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);
 
 /*