]> pd.if.org Git - zpackage/blobdiff - zpm.h
add structs for packages and other objects
[zpackage] / zpm.h
diff --git a/zpm.h b/zpm.h
index 4a213c853e5171d8f3efd915ecd43b93b27b8283..43d394cdc11affde6911744a54a410bf6106415c 100644 (file)
--- a/zpm.h
+++ b/zpm.h
@@ -2,29 +2,77 @@
 #define ZPM_H_ 1
 
 #include <stdint.h>
+#include <stdio.h>
 #include <time.h>
+#include <limits.h>
+
 #include <sqlite3.h>
 
+#define ZPM_HASH_STRLEN 64
+
+#ifdef PATH_MAX
+#define ZPM_PATH_MAX PATH_MAX
+#else
+#define ZPM_PATH_MAX 256
+#endif
+
+#define ZPM_PACKAGE_NAME_MAX 191
+#define ZPM_PACKAGE_VERSION_MAX 58
+#define ZPM_PACKAGE_RELEASE_MAX 4
+#define ZPM_PACKAGE_ID_MAX 255
+
+#define ZPM_TAG_MAX 15
+
+struct zpm_package;
+
 struct zpm {
        sqlite3 *db;
-       char *path; /* path to package file */
+       char *path; /* path to db file */
+       int error;
+       struct zpm_package *current_package;
+};
+
+struct zpm_dependency {
+       char minpkg[ZPM_PACKAGE_ID_MAX+1];
+       char maxpkg[ZPM_PACKAGE_ID_MAX+1];
+       struct zpm_dependency *next;
+};
+
+struct zpm_tag {
+       char tag[ZPM_TAG_MAX+1];
+       struct zpm_tag *next;
+};
+
+struct zpm_package {
+       struct zpm *zpm;
+       char *name;
        char *version;
        int release;
-       char *pkgname;
-       int error; /* internal error number */
-       time_t installed; /* install time, 0 for not installed */
+       char *id;
+       char *tags;
+       char *description;
+       char *architecture;
+       char *url;
+       char *status;
+       char *licenses;
+       char *package;
+       time_t build_time;
+       time_t install_time;
+       char checksum[ZPM_HASH_STRLEN+1];
 };
 
 struct zpm_file {
-       char *path;
+       char path[ZPM_PATH_MAX];
        int mode;
-       char *tags;
-       char *owner;
-       char *group;
+       char tags[64];
+       char owner[32];
+       char group[32];
        time_t mtime;
+       char hash[ZPM_HASH_STRLEN+1];
        struct zpm_file *next; /* so you can make a linked list */
 };
 
+
 /* NULL?  Create? */
 int zpm_open(struct zpm *pkg, char *path);
 int zpm_pkgname(char *base, char *version, int release); /* construct a package file name */
@@ -92,7 +140,7 @@ int zpm_checkinstall(struct zpm *local);
 
 int zpm_merge(struct zpm *z, struct zpm *src, uint32_t flags);
 
-#if 0
+#if 1
 void uncompresslzma(void *buf, size_t bufsize, FILE *out);
 void *compresslzma(void *buf, size_t bufsize, size_t *len);
 #endif