This begins work on adding some sort of hook infrastructure to pacman. There has been much discussion and little code that I have seen, so I figured I would go ahead an implement a very basic skeleton for transaction hooks support. --- lib/libalpm/Makefile.am | 1 + lib/libalpm/{sync.h => hooks.c} | 34 +++++++++++++++++++++++++--------- lib/libalpm/{add.h => hooks.h} | 19 ++++++++----------- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am index 3473a73..b4fdadf 100644 --- a/lib/libalpm/Makefile.am +++ b/lib/libalpm/Makefile.am @@ -44,6 +44,7 @@ libalpm_la_SOURCES = \ sync.h sync.c \ trans.h trans.c \ util.h util.c \ + hooks.h hooks.c \ version.c libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO) diff --git a/lib/libalpm/sync.h b/lib/libalpm/hooks.c similarity index 65% copy from lib/libalpm/sync.h copy to lib/libalpm/hooks.c index 000a09c..9630c70 100644 --- a/lib/libalpm/sync.h +++ b/lib/libalpm/hooks.c @@ -1,9 +1,10 @@ /* - * sync.h + * hooks.c * * Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@xxxxxxxxxxxxx> * Copyright (c) 2002-2006 by Judd Vinet <jvinet@xxxxxxxxxxxx> * Copyright (c) 2005 by Aurelien Foret <orelien@xxxxxxxx> + * Copyright (c) 2005 by Christian Hamar <krics@xxxxxxxxxxxxx> * Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@xxxxxxxxxxxxxx> * * This program is free software; you can redistribute it and/or modify @@ -19,14 +20,29 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _ALPM_SYNC_H -#define _ALPM_SYNC_H -#include "alpm.h" - -int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **data); -int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data); +#include "config.h" -#endif /* _ALPM_SYNC_H */ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/statvfs.h> +#include <errno.h> -/* vim: set ts=2 sw=2 noet: */ +/* libalpm */ +#include "hooks.h" +#include "trans.h" +#include "alpm_list.h" +#include "package.h" +#include "util.h" +#include "log.h" +#include "handle.h" +#include "add.h" +#include "remove.h" +#include "sync.h" +#include "alpm.h" +#include "deps.h" +#include "cache.h" diff --git a/lib/libalpm/add.h b/lib/libalpm/hooks.h similarity index 73% copy from lib/libalpm/add.h copy to lib/libalpm/hooks.h index eb37dc7..d60b1f4 100644 --- a/lib/libalpm/add.h +++ b/lib/libalpm/hooks.h @@ -1,8 +1,11 @@ /* - * add.h + * hooks.h * * Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@xxxxxxxxxxxxx> * Copyright (c) 2002-2006 by Judd Vinet <jvinet@xxxxxxxxxxxx> + * Copyright (c) 2005 by Aurelien Foret <orelien@xxxxxxxx> + * Copyright (c) 2005 by Christian Hamar <krics@xxxxxxxxxxxxx> + * Copyright (c) 2006 by Miklos Vajna <vmiklos@xxxxxxxxxxxxxx> * * 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 @@ -17,15 +20,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _ALPM_ADD_H -#define _ALPM_ADD_H +#ifndef _ALPM_HOOKS_H +#define _ALPM_HOOKS_H -#include "db.h" -#include "alpm_list.h" -#include "trans.h" +#include "alpm.h" -int _alpm_upgrade_packages(pmtrans_t *trans, pmdb_t *db); - -#endif /* _ALPM_ADD_H */ - -/* vim: set ts=2 sw=2 noet: */ +#endif /*ALPM_HOOKS_H */ -- 1.7.1.1