Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=cfpm.git;a=commitdiff;h=43a9f1f36f0188ea0c25467f3c802bfe2ed671ee

commit 43a9f1f36f0188ea0c25467f3c802bfe2ed671ee
Author: James Buren <[email protected]>
Date:   Wed Oct 21 00:27:31 2009 -0500

pacman.pp
* initial draft of binding

diff --git a/src/pacman.pp b/src/pacman.pp
new file mode 100644
index 0000000..5765553
--- /dev/null
+++ b/src/pacman.pp
@@ -0,0 +1,328 @@
+Unit Pacman;
+
+Interface
+
+Uses CTypes;
+
+{$LinkLib pacman}
+{$PackRecords C}
+
+Type
+  (* Opaque Record Types *)
+  TPM_LIST     = record end;
+  TPM_DB       = record end;
+  TPM_PKG      = record end;
+  TPM_GRP      = record end;
+  TPM_SYNCPKG  = record end;
+  TPM_TRANS    = record end;
+  TPM_DEPMISS  = record end;
+  TPM_CONFLICT = record end;
+  TPM_NETBUF   = record end;
+
+  (* Opaque Record Pointer Types *)
+  PPM_LIST     = ^TPM_LIST;
+  PPM_DB       = ^TPM_DB;
+  PPM_PKG      = ^TPM_PKG;
+  PPM_GRP      = ^TPM_GRP;
+  PPM_SYNCPKG  = ^TPM_SYNCPKG;
+  PPM_TRANS    = ^TPM_TRANS;
+  PPM_DEPMISS  = ^TPM_DEPMISS;
+  PPM_CONFLICT = ^TPM_CONFLICT;
+  PPM_NETBUF   = ^TPM_NETBUF;
+
+  (* Callback Types *)
+  TPM_CB_LOG            = Procedure (Parm1 : CUShort ; Parm2 : PCChar); Cdecl;
+  TPM_CB_DB_REGISTER    = Procedure (Parm1 : PCChar ; Parm2 : PPM_DB); Cdecl;
+  TPM_CB_TRANS_EVENT    = Procedure (Parm1 : CUChar ; Parm2, Parm3 : Pointer); 
Cdecl;
+  TPM_CB_TRANS_CONV     = Procedure (Parm1 : CUChar ; Parm2, Parm3, Parm4 : 
Pointer ; Parm5 : PCInt); Cdecl;
+  TPM_CB_TRANS_PROGRESS = Procedure (Parm1 : CUChar ; Parm2 : PCChar ; Parm3, 
Parm4, Parm5 : CInt); Cdecl;
+  TPM_CB_TRANS_DOWNLOAD = Function (Parm1 : PPM_NETBUF ; Parm2 : CInt ; Parm3 
: Pointer) : CInt; Cdecl;
+
+  (* Pacman Error Enumeration Type *)
+  TPM_ERRNO = (
+                PM_ERR_MEMORY := 1,
+                PM_ERR_SYSTEM,
+                PM_ERR_BADPERMS,
+                PM_ERR_NOT_A_FILE,
+                PM_ERR_WRONG_ARGS,
+                PM_ERR_HANDLE_NULL,
+                PM_ERR_HANDLE_NOT_NULL,
+                PM_ERR_HANDLE_LOCK,
+                PM_ERR_DB_OPEN,
+                PM_ERR_DB_CREATE,
+                PM_ERR_DB_NULL,
+                PM_ERR_DB_NOT_NULL,
+                PM_ERR_DB_NOT_FOUND,
+                PM_ERR_DB_WRITE,
+                PM_ERR_DB_REMOVE,
+                PM_ERR_SERVER_BAD_LOCATION,
+                PM_ERR_SERVER_PROTOCOL_UNSUPPORTED,
+                PM_ERR_OPT_LOGFILE,
+                PM_ERR_OPT_DBPATH,
+                PM_ERR_OPT_LOCALDB,
+                PM_ERR_OPT_SYNCDB,
+                PM_ERR_OPT_USESYSLOG,
+                PM_ERR_TRANS_NOT_NULL,
+                PM_ERR_TRANS_NULL,
+                PM_ERR_TRANS_DUP_TARGET,
+                PM_ERR_TRANS_NOT_INITIALIZED,
+                PM_ERR_TRANS_NOT_PREPARED,
+                PM_ERR_TRANS_ABORT,
+                PM_ERR_TRANS_TYPE,
+                PM_ERR_TRANS_COMMITING,
+                PM_ERR_PKG_NOT_FOUND,
+                PM_ERR_PKG_INVALID,
+                PM_ERR_PKG_OPEN,
+                PM_ERR_PKG_LOAD,
+                PM_ERR_PKG_INSTALLED,
+                PM_ERR_PKG_CANT_FRESH,
+                PM_ERR_PKG_INVALID_NAME,
+                PM_ERR_PKG_CORRUPTED,
+                PM_ERR_GRP_NOT_FOUND,
+                PM_ERR_UNSATISFIED_DEPS,
+                PM_ERR_CONFLICTING_DEPS,
+                PM_ERR_FILE_CONFLICTS,
+                PM_ERR_USER_ABORT,
+                PM_ERR_INTERNAL_ERROR,
+                PM_ERR_LIBARCHIVE_ERROR,
+                PM_ERR_DISK_FULL,
+                PM_ERR_DB_SYNC,
+                PM_ERR_RETRIEVE,
+                PM_ERR_PKG_HOLD,
+                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,
+                PM_ERR_CONNECT_FAILED,
+                PM_ERR_FORK_FAILED,
+                PM_ERR_NO_OWNER,
+                PM_ERR_NO_CACHE_ACCESS,
+                PM_ERR_CANT_REMOVE_CACHE,
+                PM_ERR_CANT_CREATE_CACHE,
+                PM_ERR_WRONG_ARCH
+              );
+
+Const
+  (* Constant Macro Strings *)
+  PM_ROOT     = '/';
+  PM_DBPATH   = 'var/lib/pacman-g2';
+  PM_CACHEDIR = 'var/cache/pacman-g2/pkg';
+  PM_LOCK     = '/tmp/pacman-g2.lck';
+  PM_HOOKSDIR = 'etc/pacman-g2/hooks';
+  PM_EXT_PKG  = '.fpm';
+  PM_EXT_DB   = '.fdb';
+
+  (* Log Levels *)
+  PM_LOG_DEBUG    = $01;
+  PM_LOG_ERROR    = $02;
+  PM_LOG_WARNING  = $04;
+  PM_LOG_FLOW1    = $08;
+  PM_LOG_FLOW2    = $10;
+  PM_LOG_FUNCTION = $20;
+
+  (* Unknown Option Constant *)
+  PM_DLFNM_LEN = 1024;
+
+  (* Option Parameters *)
+  PM_OPT_LOGCB        = 1;
+  PM_OPT_LOGMASK      = 2;
+  PM_OPT_USESYSLOG    = 3;
+  PM_OPT_ROOT         = 4;
+  PM_OPT_DBPATH       = 5;
+  PM_OPT_CACHEDIR     = 6;
+  PM_OPT_LOGFILE      = 7;
+  PM_OPT_LOCALDB      = 8;
+  PM_OPT_SYNCDB       = 9;
+  PM_OPT_NOUPGRADE    = 10;
+  PM_OPT_NOEXTRACT    = 11;
+  PM_OPT_IGNOREPKG    = 12;
+  PM_OPT_UPGRADEDELAY = 13;
+  PM_OPT_PROXYHOST    = 14;
+  PM_OPT_PROXYPORT    = 15;
+  PM_OPT_XFERCOMMAND  = 16;
+  PM_OPT_NOPASSIVEFTP = 17;
+  PM_OPT_DLCB         = 18;
+  PM_OPT_DLFNM        = 19;
+  PM_OPT_DLOFFSET     = 20;
+  PM_OPT_DLT0         = 21;
+  PM_OPT_DLT          = 22;
+  PM_OPT_DLRATE       = 23;
+  PM_OPT_DLXFERED1    = 24;
+  PM_OPT_DLETA_H      = 25;
+  PM_OPT_DLETA_M      = 26;
+  PM_OPT_DLETA_S      = 27;
+  PM_OPT_HOLDPKG      = 28;
+  PM_OPT_CHOMP        = 29;
+  PM_OPT_NEEDLES      = 30;
+  PM_OPT_MAXTRIES     = 31;
+  PM_OPT_OLDDELAY     = 32;
+  PM_OPT_DLREMAIN     = 33;
+  PM_OPT_DLHOWMANY    = 34;
+  PM_OPT_HOOKSDIR     = 35;
+
+  (* Database Parameters *)
+  PM_DB_TREENAME    = 1;
+  PM_DB_FIRSTSERVER = 2;
+
+  (* Package Parameters *)
+  PM_PKG_NAME        = 1;
+  PM_PKG_VERSION     = 2;
+  PM_PKG_DESC        = 3;
+  PM_PKG_GROUPS      = 4;
+  PM_PKG_URL         = 5;
+  PM_PKG_LICENSE     = 6;
+  PM_PKG_ARCH        = 7;
+  PM_PKG_BUILDDATE   = 8;
+  PM_PKG_BUILDTYPE   = 9;
+  PM_PKG_INSTALLDATE = 10;
+  PM_PKG_PACKAGER    = 11;
+  PM_PKG_SIZE        = 12;
+  PM_PKG_USIZE       = 13;
+  PM_PKG_REASON      = 14;
+  PM_PKG_MD5SUM      = 15;
+  PM_PKG_SHA1SUM     = 16;
+  PM_PKG_DEPENDS     = 17;
+  PM_PKG_REMOVES     = 18;
+  PM_PKG_REQUIREDBY  = 19;
+  PM_PKG_CONFLICTS   = 20;
+  PM_PKG_PROVIDES    = 21;
+  PM_PKG_REPLACES    = 22;
+  PM_PKG_FILES       = 23;
+  PM_PKG_BACKUP      = 24;
+  PM_PKG_SCRIPLET    = 25;
+  PM_PKG_DATA        = 26;
+  PM_PKG_FORCE       = 27;
+  PM_PKG_STICK       = 28;
+
+  (* Package Installation Reason *)
+  PM_PKG_REASON_EXPLICIT = 0;
+  PM_PKG_REASON_DEPEND   = 1;
+
+  (* Package Name Formats *)
+  PM_PKG_WITHOUT_ARCH = 0;
+  PM_PKG_WITH_ARCH    = 1;
+
+  (* Group Information *)
+  PM_GRP_NAME     = 1;
+  PM_GRP_PKGNAMES = 2;
+
+  (* Sync Types *)
+  PM_SYNC_TYPE_REPLACE = 1;
+  PM_SYNC_TYPE_UPGRADE = 2;
+  PM_SYNC_TYPE_DEPEND  = 3;
+
+  (* Sync Information *)
+  PM_SYNC_TYPE = 1;
+  PM_SYNC_PKG  = 2;
+  PM_SYNC_DATA = 3;
+
+  (* Transaction Types *)
+  PM_TRANS_TYPE_ADD     = 1;
+  PM_TRANS_TYPE_REMOVE  = 2;
+  PM_TRANS_TYPE_UPGRADE = 3;
+  PM_TRANS_TYPE_SYNC    = 4;
+
+  (* Transaction Flags *)
+  PM_TRANS_FLAG_NODEPS       = $01;
+  PM_TRANS_FLAG_FORCE        = $02;
+  PM_TRANS_FLAG_NOSAVE       = $04;
+  PM_TRANS_FLAG_FRESHEN      = $08;
+  PM_TRANS_FLAG_CASCADE      = $10;
+  PM_TRANS_FLAG_RECURSE      = $20;
+  PM_TRANS_FLAG_DBONLY       = $40;
+  PM_TRANS_FLAG_DEPENDSONLY  = $80;
+  PM_TRANS_FLAG_ALLDEPS      = $100;
+  PM_TRANS_FLAG_DOWNLOADONLY = $200;
+  PM_TRANS_FLAG_NOSCRIPTLET  = $400;
+  PM_TRANS_FLAG_NOCONFLICTS  = $800;
+  PM_TRANS_FLAG_PRINTURIS    = $1000;
+  PM_TRANS_FLAG_NOINTEGRITY  = $2000;
+  PM_TRANS_FLAG_NOARCH       = $4000;
+
+  (* Transaction Events *)
+  PM_TRANS_EVT_CHECKDEPS_START      = 1;
+  PM_TRANS_EVT_CHECKDEPS_DONE       = 2;
+  PM_TRANS_EVT_FILECONFLICTS_START  = 3;
+  PM_TRANS_EVT_FILECONFLICTS_DONE   = 4;
+  PM_TRANS_EVT_CLEANUP_START        = 5;
+  PM_TRANS_EVT_CLEANUP_DONE         = 6;
+  PM_TRANS_EVT_RESOLVEDEPS_START    = 7;
+  PM_TRANS_EVT_RESOLVEDEPS_DONE     = 8;
+  PM_TRANS_EVT_INTERCONFLICTS_START = 9;
+  PM_TRANS_EVT_INTERCONFLICTS_DONE  = 10;
+  PM_TRANS_EVT_ADD_START            = 11;
+  PM_TRANS_EVT_ADD_DONE             = 12;
+  PM_TRANS_EVT_REMOVE_START         = 13;
+  PM_TRANS_EVT_REMOVE_DONE          = 14;
+  PM_TRANS_EVT_UPGRADE_START        = 15;
+  PM_TRANS_EVT_UPGRADE_DONE         = 16;
+  PM_TRANS_EVT_EXTRACT_DONE         = 17;
+  PM_TRANS_EVT_INTEGRITY_START      = 18;
+  PM_TRANS_EVT_INTEGRITY_DONE       = 19;
+  PM_TRANS_EVT_SCRIPTLET_INFO       = 20;
+  PM_TRANS_EVT_SCRIPTLET_START      = 21;
+  PM_TRANS_EVT_SCRIPTLET_DONE       = 22;
+  PM_TRANS_EVT_PRINTURI             = 23;
+  PM_TRANS_EVT_RETRIEVE_START       = 24;
+  PM_TRANS_EVT_RETRIEVE_LOCAL       = 25;
+
+  (* Transaction Conversations *)
+  PM_TRANS_CONV_INSTALL_IGNOREPKG = $01;
+  PM_TRANS_CONV_REPLACE_PKG       = $02;
+  PM_TRANS_CONV_CONFLICT_PKG      = $04;
+  PM_TRANS_CONV_CORRUPTED_PKG     = $08;
+  PM_TRANS_CONV_LOCAL_NEWER       = $10;
+  PM_TRANS_CONV_LOCAL_UPTODATE    = $20;
+  PM_TRANS_CONV_REMOVE_HOLDPKG    = $40;
+
+  (* Transaction Progress *)
+  PM_TRANS_PROGRESS_ADD_START            = 0;
+  PM_TRANS_PROGRESS_UPGRADE_START        = 1;
+  PM_TRANS_PROGRESS_REMOVE_START         = 2;
+  PM_TRANS_PROGRESS_CONFLICTS_START      = 3;
+  PM_TRANS_PROGRESS_INTERCONFLICTS_START = 4;
+
+  (* Transaction Information *)
+  PM_TRANS_TYPE     = 1;
+  PM_TRANS_FLAGS    = 2;
+  PM_TRANS_TARGETS  = 3;
+  PM_TRANS_PACKAGES = 4;
+
+  (* Dependencies and Conflicts Modifier? *)
+  PM_DEP_MOD_ANY = 1;
+  PM_DEP_MOD_EQ  = 2;
+  PM_DEP_MOD_GE  = 3;
+  PM_DEP_MOD_LE  = 4;
+  PM_DEP_MOD_GT  = 5;
+  PM_DEP_MOD_LT  = 6;
+
+  (* Dependencies and Conflicts Types *)
+  PM_DEP_TYPE_DEPEND   = 1;
+  PM_DEP_TYPE_REQUIRED = 2;
+  PM_DEP_TYPE_CONFLICT = 3;
+
+  (* Dependencies and Conflicts Information *)
+  PM_DEP_TARGET  = 1;
+  PM_DEP_TYPE    = 2;
+  PM_DEP_MOD     = 3;
+  PM_DEP_NAME    = 4;
+  PM_DEP_VERSION = 5;
+
+  (* File Conflicts Types *)
+  PM_CONFLICT_TYPE_TARGET = 1;
+  PM_CONFLICT_TYPE_FILE   = 2;
+
+  (* File Conflicts Information *)
+  PM_CONFLICT_TARGET  = 1;
+  PM_CONFLICT_TYPE    = 2;
+  PM_CONFLICT_FILE    = 3;
+  PM_CONFLICT_CTARGET = 4;
+
+Var
+  pm_errno : TPM_ERRNO; CVar; External;
+
+Implementation
+
+End.
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to