diff options
Diffstat (limited to 'lib/libalpm/alpm.h')
-rw-r--r-- | lib/libalpm/alpm.h | 136 |
1 files changed, 111 insertions, 25 deletions
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 61702ce7..211ec99b 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -2,6 +2,9 @@ * alpm.h * * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org> + * Copyright (c) 2005 by Aurelien Foret <orelien@chez.com> + * Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu> + * Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,8 +35,8 @@ extern "C" { #define PM_ROOT "/" #define PM_DBPATH "var/lib/pacman" #define PM_CACHEDIR "var/cache/pacman/pkg" +#define PM_LOCK "/tmp/pacman.lck" -#define PM_LOCK "/tmp/pacman.lck" #define PM_EXT_PKG ".pkg.tar.gz" #define PM_EXT_DB ".db.tar.gz" @@ -92,7 +95,27 @@ enum { PM_OPT_SYNCDB, PM_OPT_NOUPGRADE, PM_OPT_NOEXTRACT, - PM_OPT_IGNOREPKG + PM_OPT_IGNOREPKG, + PM_OPT_UPGRADEDELAY, + /* Download */ + PM_OPT_PROXYHOST, + PM_OPT_PROXYPORT, + PM_OPT_XFERCOMMAND, + PM_OPT_NOPASSIVEFTP, + PM_OPT_DLCB, + PM_OPT_DLFNM, + PM_OPT_DLOFFSET, + PM_OPT_DLT0, + PM_OPT_DLT, + PM_OPT_DLRATE, + PM_OPT_DLXFERED1, + PM_OPT_DLETA_H, + PM_OPT_DLETA_M, + PM_OPT_DLETA_S, + /* End of download */ + PM_OPT_HOLDPKG, + PM_OPT_CHOMP, + PM_OPT_NEEDLES }; int alpm_set_option(unsigned char parm, unsigned long data); @@ -104,21 +127,28 @@ int alpm_get_option(unsigned char parm, long *data); /* Info parameters */ enum { - PM_DB_TREENAME = 1 + PM_DB_TREENAME = 1, + PM_DB_FIRSTSERVER }; -PM_DB *alpm_db_register(char *treename); +/* Database registration callback */ +typedef void (*alpm_cb_db_register)(char *, PM_DB *); + +PM_DB *alpm_db_register(char *treename, alpm_cb_db_register); int alpm_db_unregister(PM_DB *db); void *alpm_db_getinfo(PM_DB *db, unsigned char parm); +int alpm_db_setserver(PM_DB *db, char *url); -int alpm_db_update(PM_DB *db, char *archive); +int alpm_db_update(int level, PM_DB *db); PM_PKG *alpm_db_readpkg(PM_DB *db, char *name); PM_LIST *alpm_db_getpkgcache(PM_DB *db); +PM_LIST *alpm_db_whatprovides(PM_DB *db, char *name); PM_GRP *alpm_db_readgrp(PM_DB *db, char *name); PM_LIST *alpm_db_getgrpcache(PM_DB *db); +PM_LIST *alpm_db_search(PM_DB *db); /* * Packages @@ -135,13 +165,17 @@ enum { PM_PKG_LICENSE, PM_PKG_ARCH, PM_PKG_BUILDDATE, + PM_PKG_BUILDTYPE, PM_PKG_INSTALLDATE, PM_PKG_PACKAGER, PM_PKG_SIZE, + PM_PKG_USIZE, PM_PKG_REASON, PM_PKG_MD5SUM, /* Sync DB only */ + PM_PKG_SHA1SUM, /* Sync DB only */ /* Depends entry */ PM_PKG_DEPENDS, + PM_PKG_REMOVES, PM_PKG_REQUIREDBY, PM_PKG_CONFLICTS, PM_PKG_PROVIDES, @@ -159,10 +193,17 @@ enum { #define PM_PKG_REASON_EXPLICIT 0 /* explicitly requested by the user */ #define PM_PKG_REASON_DEPEND 1 /* installed as a dependency for another package */ +/* package name formats */ +#define PM_PKG_WITHOUT_ARCH 0 /* pkgname-pkgver-pkgrel, used under PM_DBPATH */ +#define PM_PKG_WITH_ARCH 1 /* ie, pkgname-pkgver-pkgrel-arch, used under PM_CACHEDIR */ + void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm); int alpm_pkg_load(char *filename, PM_PKG **pkg); int alpm_pkg_free(PM_PKG *pkg); int alpm_pkg_checkmd5sum(PM_PKG *pkg); +int alpm_pkg_checksha1sum(PM_PKG *pkg); +char *alpm_fetch_pkgurl(char *url); +int alpm_parse_config(char *file, alpm_cb_db_register callback, const char *this_section); int alpm_pkg_vercmp(const char *ver1, const char *ver2); /* @@ -209,16 +250,19 @@ enum { }; /* Flags */ -#define PM_TRANS_FLAG_FORCE 0x001 -#define PM_TRANS_FLAG_DBONLY 0x002 -#define PM_TRANS_FLAG_NOSAVE 0x004 -#define PM_TRANS_FLAG_FRESHEN 0x008 -#define PM_TRANS_FLAG_CASCADE 0x010 -#define PM_TRANS_FLAG_RECURSE 0x020 -#define PM_TRANS_FLAG_NODEPS 0x040 -#define PM_TRANS_FLAG_ALLDEPS 0x080 -#define PM_TRANS_FLAG_NOCONFLICTS 0x100 -#define PM_TRANS_FLAG_NOSCRIPTLET 0x200 +#define PM_TRANS_FLAG_NODEPS 0x01 +#define PM_TRANS_FLAG_FORCE 0x02 +#define PM_TRANS_FLAG_NOSAVE 0x04 +#define PM_TRANS_FLAG_FRESHEN 0x08 +#define PM_TRANS_FLAG_CASCADE 0x10 +#define PM_TRANS_FLAG_RECURSE 0x20 +#define PM_TRANS_FLAG_DBONLY 0x40 +#define PM_TRANS_FLAG_DEPENDSONLY 0x80 +#define PM_TRANS_FLAG_ALLDEPS 0x100 +#define PM_TRANS_FLAG_DOWNLOADONLY 0x200 +#define PM_TRANS_FLAG_NOSCRIPTLET 0x400 +#define PM_TRANS_FLAG_NOCONFLICTS 0x800 +#define PM_TRANS_FLAG_PRINTURIS 0x1000 /* Transaction Events */ enum { @@ -226,6 +270,8 @@ enum { PM_TRANS_EVT_CHECKDEPS_DONE, PM_TRANS_EVT_FILECONFLICTS_START, PM_TRANS_EVT_FILECONFLICTS_DONE, + PM_TRANS_EVT_CLEANUP_START, + PM_TRANS_EVT_CLEANUP_DONE, PM_TRANS_EVT_RESOLVEDEPS_START, PM_TRANS_EVT_RESOLVEDEPS_DONE, PM_TRANS_EVT_INTERCONFLICTS_START, @@ -235,16 +281,34 @@ enum { PM_TRANS_EVT_REMOVE_START, PM_TRANS_EVT_REMOVE_DONE, PM_TRANS_EVT_UPGRADE_START, - PM_TRANS_EVT_UPGRADE_DONE + PM_TRANS_EVT_UPGRADE_DONE, + PM_TRANS_EVT_EXTRACT_DONE, + PM_TRANS_EVT_INTEGRITY_START, + PM_TRANS_EVT_INTEGRITY_DONE, + PM_TRANS_EVT_SCRIPTLET_INFO, + PM_TRANS_EVT_SCRIPTLET_START, + PM_TRANS_EVT_SCRIPTLET_DONE, + PM_TRANS_EVT_PRINTURI, + PM_TRANS_EVT_RETRIEVE_START, + PM_TRANS_EVT_RETRIEVE_LOCAL }; /* Transaction Conversations (ie, questions) */ enum { - PM_TRANS_CONV_INSTALL_IGNOREPKG = 1, - PM_TRANS_CONV_REPLACE_PKG, - PM_TRANS_CONV_CONFLICT_PKG, - PM_TRANS_CONV_LOCAL_NEWER, - PM_TRANS_CONV_LOCAL_UPTODATE + PM_TRANS_CONV_INSTALL_IGNOREPKG = 0x01, + PM_TRANS_CONV_REPLACE_PKG = 0x02, + PM_TRANS_CONV_CONFLICT_PKG = 0x04, + PM_TRANS_CONV_CORRUPTED_PKG = 0x08, + PM_TRANS_CONV_LOCAL_NEWER = 0x10, + PM_TRANS_CONV_LOCAL_UPTODATE = 0x20, + PM_TRANS_CONV_REMOVE_HOLDPKG = 0x40 +}; + +/* Transaction Progress */ +enum { + PM_TRANS_PROGRESS_ADD_START, + PM_TRANS_PROGRESS_UPGRADE_START, + PM_TRANS_PROGRESS_REMOVE_START }; /* Transaction Event callback */ @@ -253,6 +317,9 @@ typedef void (*alpm_trans_cb_event)(unsigned char, void *, void *); /* Transaction Conversation callback */ typedef void (*alpm_trans_cb_conv)(unsigned char, void *, void *, void *, int *); +/* Transaction Progress callback */ +typedef void (*alpm_trans_cb_progress)(unsigned char, char *, int, int, int); + /* Info parameters */ enum { PM_TRANS_TYPE = 1, @@ -262,7 +329,7 @@ enum { }; void *alpm_trans_getinfo(unsigned char parm); -int alpm_trans_init(unsigned char type, unsigned int flags, alpm_trans_cb_event cb_event, alpm_trans_cb_conv conv); +int alpm_trans_init(unsigned char type, unsigned int flags, alpm_trans_cb_event cb_event, alpm_trans_cb_conv conv, alpm_trans_cb_progress cb_progress); int alpm_trans_sysupgrade(void); int alpm_trans_addtarget(char *target); int alpm_trans_prepare(PM_LIST **data); @@ -326,13 +393,14 @@ int alpm_list_count(PM_LIST *list); /* md5sums */ char *alpm_get_md5sum(char *name); +char *alpm_get_sha1sum(char *name); /* * Errors */ extern enum __pmerrno_t { - PM_ERR_MEMORY = 1, + PM_ERR_MEMORY = 2, PM_ERR_SYSTEM, PM_ERR_BADPERMS, PM_ERR_NOT_A_FILE, @@ -349,6 +417,9 @@ extern enum __pmerrno_t { PM_ERR_DB_NOT_FOUND, PM_ERR_DB_WRITE, PM_ERR_DB_REMOVE, + /* Servers */ + PM_ERR_SERVER_BAD_LOCATION, + PM_ERR_SERVER_PROTOCOL_UNSUPPORTED, /* Configuration */ PM_ERR_OPT_LOGFILE, PM_ERR_OPT_DBPATH, @@ -363,6 +434,7 @@ extern enum __pmerrno_t { PM_ERR_TRANS_NOT_PREPARED, PM_ERR_TRANS_ABORT, PM_ERR_TRANS_TYPE, + PM_ERR_TRANS_COMMITING, /* Packages */ PM_ERR_PKG_NOT_FOUND, PM_ERR_PKG_INVALID, @@ -371,6 +443,7 @@ extern enum __pmerrno_t { PM_ERR_PKG_INSTALLED, PM_ERR_PKG_CANT_FRESH, PM_ERR_PKG_INVALID_NAME, + PM_ERR_PKG_CORRUPTED, /* Groups */ PM_ERR_GRP_NOT_FOUND, /* Dependencies */ @@ -380,7 +453,21 @@ extern enum __pmerrno_t { /* Misc */ PM_ERR_USER_ABORT, PM_ERR_INTERNAL_ERROR, - PM_ERR_LIBARCHIVE_ERROR + PM_ERR_LIBARCHIVE_ERROR, + PM_ERR_DISK_FULL, + PM_ERR_DB_SYNC, + PM_ERR_RETRIEVE, + PM_ERR_PKG_HOLD, + /* Configuration file */ + PM_ERR_CONF_BAD_SECTION, + PM_ERR_CONF_LOCAL, + PM_ERR_CONF_BAD_SYNTAX, + PM_ERR_CONF_DIRECTIVE_OUTSIDE_SECTION, + PM_ERR_INVALID_REGEX, + PM_ERR_TRANS_DOWNLOADING, + /* Downloading */ + PM_ERR_CONNECT_FAILED, + PM_ERR_FORK_FAILED } pm_errno; char *alpm_strerror(int err); @@ -388,7 +475,6 @@ char *alpm_strerror(int err); #ifdef __cplusplus } #endif - #endif /* _ALPM_H */ /* vim: set ts=2 sw=2 noet: */ |