Commit Graph

847 Commits

Author SHA1 Message Date
Juan RP
ec0d38c469 Implement per pkg RSA signatures and on-demand repository access. 2013-12-24 10:43:55 +01:00
Juan RP
3c0edd40c8 lib/package_unpack.c: only create rootdir if it doesn't exist once. 2013-12-21 12:03:38 +01:00
Juan RP
2a21354a1c Make some reorganization in struct xbps_handle.
The variables to set cachedir, rootdir and metadir have been
changed to "array of chars", this way there are no extra allocations.

Update clients accordingly and bump API version.
2013-12-16 11:46:39 +01:00
Juan RP
2c16e23646 lib/transaction_sortdeps.c: bump copyright year. 2013-12-16 09:18:54 +01:00
Juan RP
a84d7c0199 lib/transaction_sortdeps.c: remove dead code. 2013-12-16 09:18:19 +01:00
Juan RP
67cfc4ebad rpool: switch "struct xbps_repo" to be part of the rpool simpleq.
The previous internal "struct rpool" was an extra structure that
can be avoided by just using "struct xbps_repo" directly.

This makes rpool use (at least) 4KB less per repository and 1
extra allocation.
2013-12-16 08:49:33 +01:00
Juan RP
b1309644e5 lib/transaction_sortdeps.c: there's no need to use TAILQ_FOREACH_SAFE. 2013-12-16 08:44:14 +01:00
Juan RP
851eb26596 xbps_repo_open: fix f7b4587 and really pass the correct size this time. 2013-12-16 07:45:51 +01:00
Juan RP
f7b4587e11 xbps_repo_open: pass the correct size to realloc(). 2013-12-16 07:31:15 +01:00
Juan RP
cc19818680 Improve stats in the transaction dictionary. 2013-12-16 07:24:17 +01:00
Juan RP
ec6f7a3013 lib/transaction_dictionary.c: modify how transaction stats are computed. 2013-12-14 04:54:52 +01:00
Juan RP
2ab90bdc09 Fixed issue #26 (Replacing an installed pkg multiple times). 2013-12-12 18:24:24 +01:00
Juan RP
865dffde58 xbps_repo_open: switch to archive_read_data_block() and misc tweaks. 2013-12-12 00:18:08 +01:00
Juan RP
4f6fb2ff67 lib/rpool_get.c: move asserts to the parent function. 2013-12-08 08:08:26 +01:00
Juan RP
d95d5ba113 xbps_array_foreach_cb_multi: remove useless mutex. 2013-12-08 08:07:45 +01:00
Juan RP
2c9ab6a1f2 xbps_pkgdb_get_pkg_metadata: avoid an extra function call. 2013-12-08 08:07:10 +01:00
Juan RP
2d5a8dee19 xbps_find_pkg_orphans: minor optimizations. 2013-12-08 08:06:28 +01:00
Juan RP
e23c64bc84 lib/portableproplib: fixes to allow building with NDEBUG (assert()s disabled). 2013-12-06 11:54:34 +01:00
Juan RP
ae9363b620 lib/plist_fetch.c: fix a memleak in error path. 2013-12-05 16:55:26 +01:00
Juan RP
4403caa434 Add repos set in xbps_handle::repositories to the top of the list.
That means that now xbps-install(8) and xbps-query(8) --repository
option does not override the repository list of a configuration file.
2013-12-04 16:59:15 +01:00
Juan RP
d98468515a Fix #25 correctly: compare against repo->signature. 2013-11-30 08:30:25 +01:00
Juan RP
dce26db1de libxbps: pkg remove: never remove base symlinks in the root directory.
The /bin, /sbin, /lib, /lib32, /lib64, /var/run symlinks should never be removed
in Void, so be safe and ignore the removal of them.

Added another test to the testsuite to verify its correctness.
2013-11-28 10:27:36 +01:00
Juan RP
4e427ded92 xbps_file_hash: simplify and use read(2). 2013-11-26 13:08:44 +01:00
Juan RP
a30623c65c Revert "lib/util_hash.c: xbps_file_hash: remove unnecessary memset() call."
This reverts commit febc673f1e.
2013-11-26 10:40:53 +01:00
Juan RP
5a7eb2255d Revert "lib/download.c: xbps_fetch_file: remove unnecesary memset() calls."
This reverts commit 74970f2e92.
2013-11-26 10:31:16 +01:00
Juan RP
79bf795e1a lib/package_unpack.c: make clang stfu due to -Wmissing-field-initializers. 2013-11-19 10:39:46 +01:00
Juan RP
8d7c899d48 lib/package_unpack.c: initiliaze struct rather than memset. 2013-11-18 18:23:31 +01:00
Juan RP
74970f2e92 lib/download.c: xbps_fetch_file: remove unnecesary memset() calls. 2013-11-18 18:20:41 +01:00
Juan RP
febc673f1e lib/util_hash.c: xbps_file_hash: remove unnecessary memset() call. 2013-11-18 18:12:58 +01:00
Juan RP
ef67a79419 lib/repo_keys.c: remove unnecessary OpenSSL_add_all_xxx() calls. 2013-11-18 17:35:09 +01:00
Juan RP
8882b0215f Redo how the repository keys are stored.
- Repository keys are now stored in a new directory on metadir (/var/db/xbps):

	<metadir>/key>

- Repository keys are stored with the hex fingerprint of its RSA
  public key in a plist dictionary:

	<metadir>/keys/xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.plist

- Drop xbps-rkeys(8) and merge its functionality into xbps-install(8) and
  xbps-query(8).

- xbps-query(8) -vL now shows some more details of remote repositories:

 3134 http://localhost:8000 (RSA signed, verified)
      Signed-by: Void Linux
      4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d
   16 http://localhost:8000/nonfree (RSA signed, verified)
      Signed-by: Void Linux
      4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d

Bump XBPS_API_VERSION.
2013-11-18 16:05:46 +01:00
Juan RP
c9825feb29 util.c: add stricter checks for pkgver conformance (v2).
There was another case where it now was failing: "fs-utils-v1.00_1".

Previous code didn't take into account that a valid version might also
contain a non digit after '-'.

Added more tests to the testsuite to verify its correctness.
2013-11-17 12:25:02 +01:00
Juan RP
c44d7070a4 util.c: add stricter checks for pkgver conformance.
Make xbps_pkg_{name,version} return NULL if next character
after the last '-' character is not a digit, and if there's a digit
make sure that there exists a '_' character too.

Added more tests to the testsuite to catch this. With these changes
'python-e_dbus' is properly detected and validated.
2013-11-17 11:34:14 +01:00
Juan RP
d0380d5cd2 lib/package_remove.c: add a bit of debugging if pkg wasn't found in pkgdb. 2013-11-17 11:33:16 +01:00
Juan RP
44533f9f57 lib/package_unpack.c: compute unpack cb stats only once. 2013-11-15 10:36:31 +01:00
Juan RP
6d9bb47fba unpack: make sure to remove only on-disk files if file type does not match.
Added another ATF test-case to make sure it works properly.
2013-11-09 08:59:02 +01:00
Juan RP
efdb0eb5a4 lib/pubkey2fp.c: style tweak. 2013-11-08 12:28:01 +01:00
Juan RP
53ecaf9819 Remove xbps_print_hexfp() from API and move it xbps-rindex, where it belongs. 2013-11-08 09:12:29 +01:00
Juan RP
0909c81cdb xbps_pubkey2fp: simplify and eliminate the extra copy of returned data type. 2013-11-08 09:10:40 +01:00
Juan RP
89ab9a4b0c xbps_repo_key_import: check that returned hex fingerprint is not NULL. 2013-11-08 09:09:35 +01:00
Juan RP
8f36f8e638 Make sure that configuration files are properly kept or unpacked.
Added two new test cases to verify it works as advertised.
2013-11-06 10:45:33 +01:00
Juan RP
c1fafcd339 Fix #20 and added an ATF test-case. 2013-11-05 09:56:36 +01:00
Juan RP
f09eab62cd Fix #18. An ATF test-case will be imported in a while. 2013-11-01 18:05:11 +01:00
Juan RP
747f250202 unpack: apply correctly file permissions to existent files.
Will be backported to the 0.26.x branch.
2013-10-30 12:02:16 +01:00
Juan RP
0247b49f86 xbps_repo_key_import: ignore local repos. 2013-10-28 12:51:03 +01:00
Juan RP
aad0502b95 xbps_repo_key_import: also print repourl in state cb. 2013-10-15 09:58:51 +02:00
Juan RP
a5ecaa493f New utility: xbps-rkeys(8) to manage RSA public keys. 2013-10-09 10:13:07 +02:00
Juan RP
27723e94ff Optimize repository API functions.
- Remove xbps_repo_get_plist() and try to internalize all members at
  xbps_repo_open() time.

- Added xbps_repo_open_idxfiles() to also internalize the index-files
  plist from repository, which is really huge and must only be internalized
  when needed.

- Improve how signed and verified repositories are detected.

- Misc optimizations and small performance improvements.

Bump XBPS_API_VERSION.
2013-10-07 10:19:04 +02:00
Juan RP
c69134f851 xbps_repository_is_remote: optimize and check for http:// first. 2013-10-07 09:23:25 +02:00
Juan RP
8d5c48b861 Added support for the long awaited feature: RSA signed repositories. 2013-10-05 11:38:04 +02:00