summaryrefslogtreecommitdiff
path: root/lib/libalpm/alpm.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libalpm/alpm.h')
-rw-r--r--lib/libalpm/alpm.h136
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: */