New configuration schemas changes, round 3.
struct xbps_handle::conffile has been renamed to confdir, and it now expects the path to a directory, where the configuration files are stored. Change xbps-bin(8) and xbps-repo(8) along with its manpages to mention that -C expects a directory.
This commit is contained in:
parent
c285afebdc
commit
931a03b806
4
NEWS
4
NEWS
@ -1,5 +1,9 @@
|
||||
xbps-0.10.0 (???):
|
||||
|
||||
* xbps-bin(8), xbps-repo(8): the -C flag now expects a path to a
|
||||
directory where the configuration files (conf.plist and
|
||||
repositories.plist) are stored.
|
||||
|
||||
* New configuration scheme for virtual packages as defined in
|
||||
http://code.google.com/p/xbps/issues/detail?id=12
|
||||
|
||||
|
@ -185,12 +185,12 @@ main(int argc, char **argv)
|
||||
struct xferstat xfer;
|
||||
struct list_pkgver_cb lpc;
|
||||
struct sigaction sa;
|
||||
const char *rootdir, *cachedir, *conffile;
|
||||
const char *rootdir, *cachedir, *confdir;
|
||||
int i , c, flags, rv;
|
||||
bool yes, purge, debug, force_rm_with_deps, recursive_rm;
|
||||
bool install_auto, install_manual, show_download_pkglist_url;
|
||||
|
||||
rootdir = cachedir = conffile = NULL;
|
||||
rootdir = cachedir = confdir = NULL;
|
||||
flags = rv = 0;
|
||||
yes = purge = force_rm_with_deps = recursive_rm = debug = false;
|
||||
install_auto = install_manual = show_download_pkglist_url = false;
|
||||
@ -201,7 +201,7 @@ main(int argc, char **argv)
|
||||
install_auto = true;
|
||||
break;
|
||||
case 'C':
|
||||
conffile = optarg;
|
||||
confdir = optarg;
|
||||
break;
|
||||
case 'c':
|
||||
cachedir = optarg;
|
||||
@ -290,8 +290,8 @@ main(int argc, char **argv)
|
||||
xhp->rootdir = prop_string_create_cstring(rootdir);
|
||||
if (cachedir)
|
||||
xhp->cachedir = prop_string_create_cstring(cachedir);
|
||||
if (conffile)
|
||||
xhp->conffile = prop_string_create_cstring(conffile);
|
||||
if (confdir)
|
||||
xhp->confdir = prop_string_create_cstring(confdir);
|
||||
|
||||
xhp->flags = flags;
|
||||
xhp->install_reason_manual = install_manual;
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH "XBPS\-BIN" "8" "07/28/2011" "\ \&" "\ \&"
|
||||
.TH "XBPS\-BIN" "8" "17/10/2011" "\ \&" "\ \&"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -28,9 +28,10 @@ Use of this option takes effect in the \fIautoupdate\fR, \fIinstall\fR and
|
||||
matched.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-C\fR \fIconffile\fR
|
||||
\fB\-C\fR \fIconfdir\fR
|
||||
.RS 4
|
||||
Full path to the \fIxbps-conf.plist\fR plist configuration file.
|
||||
Full path to the XBPS configuration directory where the configuration files are available\&.
|
||||
By default it\(cqs set to \fIETCDIR/xbps\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-c\fR \fIcachedir\fR
|
||||
@ -287,6 +288,7 @@ The package is fully installed, that means it was unpacked and configured correc
|
||||
.RE
|
||||
.PP
|
||||
\fBhalf\-unpacked\fR
|
||||
.RS 4
|
||||
The package was being unpacked but didn't finish properly for unknown reasons.
|
||||
.RE
|
||||
.PP
|
||||
@ -302,11 +304,16 @@ The package has been removed but configuration files and its metadata directory
|
||||
.PP
|
||||
.SH "FILES"
|
||||
.PP
|
||||
\fB/etc/xbps-conf.plist\fR
|
||||
\fB/etc/xbps/conf.plist\fR
|
||||
.RS 4
|
||||
Default XBPS configuration file\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB/etc/xbps/repositories.plist\fR
|
||||
.RS 4
|
||||
Defaults XBPS repositories configuration file\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB/var/db/xbps\fR
|
||||
.RS 4
|
||||
xbps global metadata directory\&.
|
||||
|
@ -90,16 +90,16 @@ main(int argc, char **argv)
|
||||
struct xbps_handle *xhp;
|
||||
struct xferstat xfer;
|
||||
prop_dictionary_t pkgd;
|
||||
const char *rootdir, *cachedir, *conffile;
|
||||
const char *rootdir, *cachedir, *confdir;
|
||||
int c, rv = 0;
|
||||
bool debug = false;
|
||||
|
||||
rootdir = cachedir = conffile = NULL;
|
||||
rootdir = cachedir = confdir = NULL;
|
||||
|
||||
while ((c = getopt(argc, argv, "C:c:dr:V")) != -1) {
|
||||
switch (c) {
|
||||
case 'C':
|
||||
conffile = optarg;
|
||||
confdir = optarg;
|
||||
break;
|
||||
case 'c':
|
||||
cachedir = optarg;
|
||||
@ -143,8 +143,8 @@ main(int argc, char **argv)
|
||||
xhp->rootdir = prop_string_create_cstring(rootdir);
|
||||
if (cachedir)
|
||||
xhp->cachedir = prop_string_create_cstring(cachedir);
|
||||
if (conffile)
|
||||
xhp->conffile = prop_string_create_cstring(conffile);
|
||||
if (confdir)
|
||||
xhp->confdir = prop_string_create_cstring(confdir);
|
||||
|
||||
if ((rv = xbps_init(xhp)) != 0) {
|
||||
xbps_error_printf("xbps-repo: couldn't initialize library: %s\n",
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH "XBPS\-REPO" "8" "07/23/2011" "\ \&" "\ \&"
|
||||
.TH "XBPS\-REPO" "8" "17/10/2011" "\ \&" "\ \&"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -19,9 +19,10 @@ xbps-repo \- XBPS command for binary package repositories
|
||||
The xbps\-repo(8) command is used to handle local or remote binary package repositories in the \fBXBPS binary package system\fR\&. You can use it to create a package index for a local repository, list repositories, search for packages and show information about a binary package in repository pool\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\fB\-C\fR \fIconffile\fR
|
||||
\fB\-C\fR \fIconfdir\fR
|
||||
.RS 4
|
||||
Full path to the \fIxbps-conf.plist\fR plist configuration file.
|
||||
Full path to the XBPS configuration directory where the configuration files are available\&.
|
||||
By default it\(cqs set to \fIETCDIR/xbps\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-c\fR \fIcachedir\fR
|
||||
@ -123,11 +124,16 @@ Syncs the package index file for all registered remote repositories\&. The new f
|
||||
.RE
|
||||
.SH "FILES"
|
||||
.PP
|
||||
\fB/etc/xbps-conf.plist\fR
|
||||
\fB/etc/xbps/conf.plist\fR
|
||||
.RS 4
|
||||
Default XBPS configuration file\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB/etc/xbps/repositories.plist\fR
|
||||
.RS 4
|
||||
Default XBPS repositories configuration file\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB/var/db/xbps/<remoterepodir>/pkg\-index\&.plist\fR
|
||||
.RS 4
|
||||
Remote repository package index file\&.
|
||||
|
@ -113,7 +113,7 @@ main(int argc, char **argv)
|
||||
struct xbps_handle *xhp;
|
||||
struct xferstat xfer;
|
||||
prop_dictionary_t dict;
|
||||
const char *version, *rootdir = NULL, *conffile = NULL;
|
||||
const char *version, *rootdir = NULL, *confdir = NULL;
|
||||
char *plist, *pkgname, *pkgver, *in_chroot_env, *hash;
|
||||
bool debug = false, in_chroot = false;
|
||||
int i, c, rv = 0;
|
||||
@ -121,7 +121,7 @@ main(int argc, char **argv)
|
||||
while ((c = getopt(argc, argv, "C:dr:V")) != -1) {
|
||||
switch (c) {
|
||||
case 'C':
|
||||
conffile = optarg;
|
||||
confdir = optarg;
|
||||
break;
|
||||
case 'r':
|
||||
/* To specify the root directory */
|
||||
@ -158,8 +158,8 @@ main(int argc, char **argv)
|
||||
xhp->xfcd->cookie = &xfer;
|
||||
if (rootdir)
|
||||
xhp->rootdir = prop_string_create_cstring(rootdir);
|
||||
if (conffile)
|
||||
xhp->conffile = prop_string_create_cstring(conffile);
|
||||
if (confdir)
|
||||
xhp->confdir = prop_string_create_cstring(confdir);
|
||||
|
||||
if ((rv = xbps_init(xhp)) != 0) {
|
||||
xbps_error_printf("xbps-uhelper: failed to "
|
||||
|
@ -55,7 +55,7 @@
|
||||
*/
|
||||
#define XBPS_PKGINDEX_VERSION "1.2"
|
||||
|
||||
#define XBPS_API_VERSION "20111017-1"
|
||||
#define XBPS_API_VERSION "20111017-2"
|
||||
#define XBPS_VERSION "0.10.0"
|
||||
|
||||
/**
|
||||
@ -468,11 +468,11 @@ struct xbps_handle {
|
||||
*/
|
||||
prop_string_t cachedir;
|
||||
/**
|
||||
* @var conffile
|
||||
* @var confdir
|
||||
*
|
||||
* Full path to the XBPS_CONF_PLIST configuration file.
|
||||
* Full path to the XBPS_SYSCONF_PATH directory.
|
||||
*/
|
||||
prop_string_t conffile;
|
||||
prop_string_t confdir;
|
||||
/**
|
||||
* @private fetch_timeout
|
||||
*
|
||||
|
@ -37,25 +37,36 @@
|
||||
* @brief Initialization of virtual package settings.
|
||||
*/
|
||||
|
||||
#define _VPKGDIR XBPS_SYSCONF_PATH "/" XBPS_VIRTUALPKGD_PATH
|
||||
|
||||
void HIDDEN
|
||||
xbps_init_virtual_pkgs(struct xbps_handle *xh)
|
||||
{
|
||||
struct dirent *dp;
|
||||
DIR *dirp;
|
||||
prop_dictionary_t vpkgd;
|
||||
prop_string_t vpkgdir;
|
||||
char *vpkgfile;
|
||||
|
||||
if (prop_object_type(xh->confdir) != PROP_TYPE_STRING) {
|
||||
vpkgdir = prop_string_create_cstring(XBPS_SYSCONF_PATH);
|
||||
prop_string_append_cstring(vpkgdir, "/");
|
||||
prop_string_append_cstring(vpkgdir, XBPS_VIRTUALPKGD_PATH);
|
||||
} else {
|
||||
vpkgdir = prop_string_copy(xh->confdir);
|
||||
prop_string_append_cstring(vpkgdir, "/");
|
||||
prop_string_append_cstring(vpkgdir, XBPS_VIRTUALPKGD_PATH);
|
||||
}
|
||||
|
||||
/*
|
||||
* Internalize all plist files from _VPKGDIR and add them
|
||||
* Internalize all plist files from vpkgdir and add them
|
||||
* into xhp->virtualpkgs_array.
|
||||
*/
|
||||
dirp = opendir(_VPKGDIR);
|
||||
dirp = opendir(prop_string_cstring_nocopy(vpkgdir));
|
||||
if (dirp == NULL) {
|
||||
xbps_dbg_printf("%s: cannot access to %s for virtual "
|
||||
"packages: %s\n", __func__, _VPKGDIR,
|
||||
"packages: %s\n", __func__,
|
||||
prop_string_cstring_nocopy(vpkgdir),
|
||||
strerror(errno));
|
||||
prop_object_release(vpkgdir);
|
||||
return;
|
||||
}
|
||||
while ((dp = readdir(dirp)) != NULL) {
|
||||
@ -66,7 +77,8 @@ xbps_init_virtual_pkgs(struct xbps_handle *xh)
|
||||
if (strstr(dp->d_name, ".plist") == NULL)
|
||||
continue;
|
||||
|
||||
vpkgfile = xbps_xasprintf("%s/%s", _VPKGDIR, dp->d_name);
|
||||
vpkgfile = xbps_xasprintf("%s/%s",
|
||||
prop_string_cstring_nocopy(vpkgdir), dp->d_name);
|
||||
if (vpkgfile == NULL) {
|
||||
(void)closedir(dirp);
|
||||
xbps_dbg_printf("%s: failed to alloc mem for %s\n",
|
||||
@ -96,4 +108,5 @@ xbps_init_virtual_pkgs(struct xbps_handle *xh)
|
||||
__func__, dp->d_name);
|
||||
}
|
||||
(void)closedir(dirp);
|
||||
prop_object_release(vpkgdir);
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ int
|
||||
xbps_init(struct xbps_handle *xh)
|
||||
{
|
||||
prop_dictionary_t confd;
|
||||
prop_string_t conffile = NULL, repofile = NULL;
|
||||
const char *conf_rootdir = NULL, *conf_cachedir = NULL;
|
||||
uint16_t fetch_cache_conn = 0, fetch_cache_conn_host = 0;
|
||||
int rv;
|
||||
@ -58,18 +59,29 @@ xbps_init(struct xbps_handle *xh)
|
||||
xhp = xh;
|
||||
debug = xhp->debug;
|
||||
|
||||
/* If conffile not set, defaults to XBPS_SYSCONF_PATH */
|
||||
if (prop_object_type(xhp->conffile) != PROP_TYPE_STRING)
|
||||
xhp->conffile = prop_string_create_cstring(_CONFFILE);
|
||||
/* If confdir not set, defaults to XBPS_SYSCONF_PATH */
|
||||
if (prop_object_type(xhp->confdir) != PROP_TYPE_STRING) {
|
||||
conffile = prop_string_create_cstring(_CONFFILE);
|
||||
repofile = prop_string_create_cstring(_REPOFILE);
|
||||
} else {
|
||||
conffile = prop_string_copy(xhp->confdir);
|
||||
prop_string_append_cstring(conffile, "/");
|
||||
prop_string_append_cstring(conffile, XBPS_CONF_PLIST);
|
||||
|
||||
repofile = prop_string_copy(xhp->confdir);
|
||||
prop_string_append_cstring(repofile, "/");
|
||||
prop_string_append_cstring(repofile, XBPS_CONF_REPOS_PLIST);
|
||||
}
|
||||
/*
|
||||
* Internalize the XBPS_CONF_REPOS_PLIST array.
|
||||
*/
|
||||
xhp->repos_array = prop_array_internalize_from_file(_REPOFILE);
|
||||
xhp->repos_array =
|
||||
prop_array_internalize_from_file(prop_string_cstring_nocopy(repofile));
|
||||
/*
|
||||
* Internalize the XBPS_CONF_PLIST dictionary.
|
||||
*/
|
||||
confd = prop_dictionary_internalize_from_file(
|
||||
prop_string_cstring_nocopy(xhp->conffile));
|
||||
prop_string_cstring_nocopy(conffile));
|
||||
if (confd == NULL) {
|
||||
if (errno != ENOENT) {
|
||||
xbps_dbg_printf("%s: cannot internalize conf "
|
||||
@ -140,11 +152,15 @@ xbps_init(struct xbps_handle *xh)
|
||||
xbps_dbg_printf("cachedir: %s\n",
|
||||
prop_string_cstring_nocopy(xhp->cachedir));
|
||||
xbps_dbg_printf("conffile: %s\n",
|
||||
prop_string_cstring_nocopy(xhp->conffile));
|
||||
xbps_dbg_printf("repofile: %s\n", _REPOFILE);
|
||||
xbps_dbg_printf("fetch_cache_conn: %zu\n", fetch_cache_conn);
|
||||
xbps_dbg_printf("fetch_cacche_conn_host: %zu\n", fetch_cache_conn_host);
|
||||
xbps_dbg_printf("fetch_timeout: %zu\n", xhp->fetch_timeout);
|
||||
prop_string_cstring_nocopy(conffile));
|
||||
xbps_dbg_printf("repofile: %s\n",
|
||||
prop_string_cstring_nocopy(repofile));
|
||||
xbps_dbg_printf("fetch_cache_conn: %zu\n",
|
||||
fetch_cache_conn);
|
||||
xbps_dbg_printf("fetch_cacche_conn_host: %zu\n",
|
||||
fetch_cache_conn_host);
|
||||
xbps_dbg_printf("fetch_timeout: %zu\n",
|
||||
xhp->fetch_timeout);
|
||||
|
||||
/*
|
||||
* Initialize regpkgdb dictionary.
|
||||
@ -157,12 +173,12 @@ xbps_init(struct xbps_handle *xh)
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
/* We don't need the confd dictionary internalized anymore */
|
||||
if (prop_object_type(confd) == PROP_TYPE_DICTIONARY)
|
||||
prop_object_release(confd);
|
||||
/* We don't need the conffile string anymore */
|
||||
if (prop_object_type(xh->conffile) == PROP_TYPE_STRING)
|
||||
prop_object_release(xh->conffile);
|
||||
if (prop_object_type(conffile) == PROP_TYPE_STRING)
|
||||
prop_object_release(conffile);
|
||||
if (prop_object_type(repofile) == PROP_TYPE_STRING)
|
||||
prop_object_release(repofile);
|
||||
|
||||
/* Initialize virtual package settings */
|
||||
xbps_init_virtual_pkgs(xhp);
|
||||
@ -179,6 +195,8 @@ xbps_end(struct xbps_handle *xh)
|
||||
|
||||
if (xh == NULL)
|
||||
return;
|
||||
if (prop_object_type(xh->confdir) == PROP_TYPE_STRING)
|
||||
prop_object_release(xh->confdir);
|
||||
if (prop_object_type(xh->rootdir) == PROP_TYPE_STRING)
|
||||
prop_object_release(xh->rootdir);
|
||||
if (prop_object_type(xh->cachedir) == PROP_TYPE_STRING)
|
||||
|
Loading…
Reference in New Issue
Block a user