xbps-bin: syslog support, enabled by default.
This commit is contained in:
parent
afde2a6653
commit
3f45f563be
5
NEWS
5
NEWS
@ -1,5 +1,10 @@
|
||||
xbps-0.11.0 (???):
|
||||
|
||||
* Support for syslog logging common operations, such as install, update,
|
||||
remove and purge via LOG_NOTICE, and errors with LOG_ERR.
|
||||
By default we enable this in configuration file `conf.plist', set the
|
||||
boolean `syslog-enabled' key to false to disable.
|
||||
|
||||
* xbps-repo(8): new target: pkg-list [index]. This target will list all
|
||||
packages from repository with index [index]. If optional argument
|
||||
[index] (decimal) not set, all repositories will be used.
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <syslog.h>
|
||||
#include <xbps_api.h>
|
||||
#include "defs.h"
|
||||
|
||||
@ -38,6 +39,9 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata)
|
||||
|
||||
(void)cbdata;
|
||||
|
||||
if (xhp->syslog_enabled)
|
||||
openlog("xbps-bin", LOG_CONS, LOG_USER);
|
||||
|
||||
switch (xscd->state) {
|
||||
/* notifications */
|
||||
case XBPS_STATE_TRANS_DOWNLOAD:
|
||||
@ -100,18 +104,34 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata)
|
||||
case XBPS_STATE_INSTALL_DONE:
|
||||
printf("Installed `%s-%s' successfully.\n",
|
||||
xscd->pkgname, xscd->version);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_NOTICE, "Installed `%s-%s' successfully "
|
||||
"(rootdir: %s).", xscd->pkgname, xscd->version,
|
||||
prop_string_cstring_nocopy(xhp->rootdir));
|
||||
break;
|
||||
case XBPS_STATE_UPDATE_DONE:
|
||||
printf("Updated `%s' to `%s' successfully.\n",
|
||||
xscd->pkgname, xscd->version);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_NOTICE, "Updated `%s' to `%s' successfully "
|
||||
"(rootdir: %s).", xscd->pkgname, xscd->version,
|
||||
prop_string_cstring_nocopy(xhp->rootdir));
|
||||
break;
|
||||
case XBPS_STATE_REMOVE_DONE:
|
||||
printf("Removed `%s-%s' successfully.\n",
|
||||
xscd->pkgname, xscd->version);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_NOTICE, "Removed `%s-%s' successfully "
|
||||
"(rootdir: %s).", xscd->pkgname, xscd->version,
|
||||
prop_string_cstring_nocopy(xhp->rootdir));
|
||||
break;
|
||||
case XBPS_STATE_PURGE_DONE:
|
||||
printf("Purged `%s-%s' successfully.\n",
|
||||
xscd->pkgname, xscd->version);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_NOTICE, "Purged `%s-%s' successfully "
|
||||
"(rootdir: %s).", xscd->pkgname, xscd->version,
|
||||
prop_string_cstring_nocopy(xhp->rootdir));
|
||||
break;
|
||||
/* errors */
|
||||
case XBPS_STATE_UNPACK_FAIL:
|
||||
@ -126,6 +146,8 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata)
|
||||
case XBPS_STATE_REPOSYNC_FAIL:
|
||||
case XBPS_STATE_CONFIG_FILE_FAIL:
|
||||
xbps_error_printf("%s\n", xscd->desc);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_ERR, "%s", xscd->desc);
|
||||
break;
|
||||
case XBPS_STATE_REMOVE_FILE_FAIL:
|
||||
case XBPS_STATE_REMOVE_FILE_HASH_FAIL:
|
||||
@ -135,6 +157,8 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata)
|
||||
return;
|
||||
|
||||
xbps_error_printf("%s\n", xscd->desc);
|
||||
if (xhp->syslog_enabled)
|
||||
syslog(LOG_ERR, "%s", xscd->desc);
|
||||
break;
|
||||
default:
|
||||
xbps_dbg_printf("unknown state %d\n", xscd->state);
|
||||
|
@ -23,5 +23,9 @@
|
||||
<!-- Default timeout limit for connections, in seconds. -->
|
||||
<key>fetch-timeout-connection</key>
|
||||
<integer>30</integer>
|
||||
|
||||
<!-- Enable syslog messages, set the value to false to disable. -->
|
||||
<key>syslog-enabled</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -55,7 +55,7 @@
|
||||
*/
|
||||
#define XBPS_PKGINDEX_VERSION "1.3"
|
||||
|
||||
#define XBPS_API_VERSION "20111203"
|
||||
#define XBPS_API_VERSION "20111206"
|
||||
#define XBPS_VERSION "0.11.0"
|
||||
|
||||
/**
|
||||
@ -528,6 +528,14 @@ struct xbps_handle {
|
||||
* it will never will be found as orphan.
|
||||
*/
|
||||
bool install_reason_manual;
|
||||
/**
|
||||
* @var syslog_enabled
|
||||
*
|
||||
* Set to true to make the client aware that some operations
|
||||
* shall be sent to the syslog daemon if the option has been
|
||||
* enabled in configuration file.
|
||||
*/
|
||||
bool syslog_enabled;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -162,6 +162,9 @@ xbps_init(struct xbps_handle *xh)
|
||||
xbps_dbg_printf("fetch_timeout: %zu\n",
|
||||
xhp->fetch_timeout);
|
||||
|
||||
prop_dictionary_get_bool(confd, "syslog-enabled", &xhp->syslog_enabled);
|
||||
xbps_dbg_printf("syslog logging: %d\n", xhp->syslog_enabled);
|
||||
|
||||
/*
|
||||
* Initialize regpkgdb dictionary.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user