xbps-create: added support for --shlib-{provides,requires} options.

This commit is contained in:
Juan RP 2012-12-24 10:55:17 +01:00
parent dd8f3bfe8c
commit 1fa3601893
3 changed files with 23 additions and 5 deletions

7
NEWS
View File

@ -1,4 +1,9 @@
xbps-0.19.1 (???):
xbps-0.20 (???):
* xbps-create(8): new long options: --shlib-provides and --shlib-requires,
to add list of required and provided shared libraries in a package.
xbps-0.19.1 (2012-12-22):
* libxbps: when a package has not been configured and there's an update
in transaction, libxbps incorrectly tried to ignore the update and

2
TODO
View File

@ -7,8 +7,6 @@ libxbps:
xbps-create:
- Move all configuration files to <prefix>/share/<pkgname>/conf/<cffile>.
- Add -i --installed option to create binpkg from an installed version.
- Add new properties 'shlib-requires' and 'shlib-provides' to know what
shlibs are required by this package and what shlibs this package provides.
All:
- Add support to sign with PGP or RSA the repository index files.

View File

@ -85,7 +85,11 @@ usage(void)
" e.g: 'foo>=1.0 blah<2.0').\n"
" -S --long-desc Long description (80 cols per line).\n"
" -s --desc Short description (max 80 characters).\n"
" -V --version Prints XBPS release version.\n\n"
" -V --version Prints XBPS release version.\n"
" --shlib-provides List of provided shared libraries (blank separated list,\n"
" e.g 'libfoo.so.1 libblah.so.2').\n"
" --shlib-requires List of required shared libraries (blank separated list,\n"
" e.g 'libfoo.so.1 libblah.so.2').\n\n"
"NOTE:\n"
" At least three flags are required: architecture, pkgver and desc.\n\n"
"EXAMPLE:\n"
@ -555,6 +559,8 @@ main(int argc, char **argv)
{ "long-desc", required_argument, NULL, 'S' },
{ "desc", required_argument, NULL, 's' },
{ "version", no_argument, NULL, 'V' },
{ "shlib-provides", required_argument, NULL, '0' },
{ "shlib-requires", required_argument, NULL, '1' },
{ NULL, 0, NULL, 0 }
};
struct archive *ar;
@ -564,6 +570,7 @@ main(int argc, char **argv)
const char *conflicts, *deps, *homepage, *license, *maint, *bwith;
const char *provides, *pkgver, *replaces, *desc, *ldesc;
const char *arch, *config_files, *mutable_files, *version;
const char *shlib_provides, *shlib_requires;
const char *srcrevs = NULL;
char *pkgname, *binpkg, *tname, *p, cwd[PATH_MAX-1];
bool quiet = false, preserve = false;
@ -572,7 +579,7 @@ main(int argc, char **argv)
arch = conflicts = deps = homepage = license = maint = NULL;
provides = pkgver = replaces = desc = ldesc = bwith = NULL;
config_files = mutable_files = NULL;
config_files = mutable_files = shlib_provides = shlib_requires = NULL;
while ((c = getopt_long(argc, argv, shortopts, longopts, NULL)) != -1) {
if (optarg && strcmp(optarg, "") == 0)
@ -636,6 +643,12 @@ main(int argc, char **argv)
case 'V':
printf("%s\n", XBPS_RELVER);
exit(EXIT_SUCCESS);
case '0':
shlib_provides = optarg;
break;
case '1':
shlib_requires = optarg;
break;
case '?':
default:
usage();
@ -708,6 +721,8 @@ main(int argc, char **argv)
process_array("conflicts", conflicts);
process_array("provides", provides);
process_array("replaces", replaces);
process_array("shlib-provides", shlib_provides);
process_array("shlib-requires", shlib_requires);
/* save cwd */
memset(&cwd, 0, sizeof(cwd));