Commit Graph

63 Commits

Author SHA1 Message Date
2b7c4d568a Remove pkg self replacement from pkgdb; this must not be propagated. 2014-09-13 18:14:04 +02:00
411480e43d pkgdb: repository-origin -> repository to match the repo pkg obj. 2014-09-13 10:49:13 +02:00
dea7ea888e bin/*/*.8: sync with reality. 2014-09-11 12:21:33 +02:00
e32f7f4909 xbps-pkgdb: unfix previous, pkg metafile must be internalized. 2014-09-11 08:04:51 +02:00
bd2bb98fa7 xbps-pkgdb: update for pkgdb-0.38. 2014-09-11 08:00:37 +02:00
01dbb968dd Welcome pkgdb-0.38. 2014-09-11 00:12:12 +02:00
8939e8697d bin/*/*.8: add missing End-List macros (.El). 2014-08-23 09:26:02 +02:00
f8d8f91a08 Implement support to "preserve" existent on-disk files.
See NEWS for more information. Fix #51
2014-08-01 15:09:51 +02:00
ccc5a29a27 xbps-pkgdb/check_pkg_symlinks: avoid many small allocations and fix a small memleak. 2014-05-13 22:54:43 +02:00
43090cef2a Xref xbps-uchroot(8) 2014-04-21 10:58:09 +02:00
8244f57320 bin/*: update manpages with Xref xbps-checkvers(8). 2014-04-07 12:22:55 +02:00
0416b067d0 Use a POSIX lock for pkgdb and only issue pkgdb writes in exact points.
- Rather than using a POSIX named semaphore use a POSIX lock (lockf(3))
for pkgdb for writers. Writers that cannot acquire the pkgdb lock will
get EAGAIN rather then being blocked.

- Due to using a file lock we cannot write the pkgdb every time a package
is being unpacked, configured or removed. Instead pkgdb is only written
at the end of a specific point in the transaction (unpack, configure, remove)
or via xbps_pkgdb_unlock().
2014-03-04 14:37:10 +01:00
4d1cdcac0c Fix concurrency issues in pkgdb: only allow 1 write transaction at the same time.
This implementation relies on a POSIX named semaphore, which is also
required by xbps-rindex(8).
2014-02-23 08:23:14 +01:00
0744b76946 xbps-xxx.8: update issues url. 2013-12-17 15:38:56 +01:00
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
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
70047586ee Xref xbps-rkeys(8) 2013-10-12 10:13:32 +02:00
023484ca0b Introduce xbps_{array,pkgdb}_foreach_cb_multi() and use it where appropiate.
In some tasks the single threaded implementation outperms the multithreaded
one. Use it where it really makes a difference. The _multi() routines do not
spawn any thread if _SC_NPROCESSORS_ONLN == 1.

Bump XBPS_API_VERSION.
2013-09-17 16:30:13 +02:00
c5acbc7953 mk/prog.mk: set MAN to $(BIN).8 by default. 2013-09-16 08:57:24 +02:00
4057e4961c Use C99 for loop initializers.
That means that a C99 compiler is now mandatory.
2013-09-15 10:06:49 +02:00
a039330f3c Misc cleanups: use __attribute__((__unused__)); remove dead code. 2013-08-29 10:45:30 +02:00
22ae6295f5 manpages: use github url for bugreports. 2013-08-18 10:17:45 +02:00
776b94e6bc Remove PackagesOnHold from xbps.conf; use xbps-pkgdb -m hold|unhold instead.
To put a package on hold mode:
	$ xbps-pkgdb -m hold foo

To unhold the package:
	$ xbps-pkgdb -m unhold foo

To list packages on hold mode:
	$ xbps-query -H

This also close #12 from github.
2013-08-12 14:46:54 +02:00
0c7701f2bc Introduce xbps_array_foreach_cb() and use it in random code.
This routine will spawn a thread per core to process N items stored
in the specified array, the last thread gets the remainder of items left.

Results have shown that xbps benefits if there is a considerable amount
of items and number of threads being spawned.

Use it in xbps_pkgdb_foreach_cb(), xbps-pkgdb(8), xbps-query(8)
and xbps-rindex(8).

On UP systems there's no overhead because pthread(3) is not used at all.

WIP! investigate if it can be used in libxbps (xbps_rpool_foreach()),
and finish conversion of xbps-rindex(8) -c.
2013-07-27 09:47:16 +02:00
09e116b7f0 xbps_api.h -> xbps.h 2013-06-20 12:31:02 +02:00
42c0766c00 Get rid of libfetch and proplib external dependencies.
The list of required external deps is now confuse, libarchive and openssl.

libxbps now includes a wrapper for proplib prefixed with xbps_ rather than prop_.
2013-06-20 10:26:12 +02:00
db1efb3aa6 Relax memory requirements on 64bit platforms; fix two memleaks. 2013-06-12 10:04:10 +02:00
15b2258b77 xbps-pkgdb: fix issue #9 (remove old code that broke pkgdb mem vs disk comparisions). 2013-05-16 17:16:39 +02:00
111184ea84 xbps-pkgdb: change symlink checks to warning messages not errors. 2013-04-19 10:15:44 +02:00
1f5bb03daf bin/xbps-pkgdb/check_pkg_files.c: remove bogus assignment. 2013-04-04 10:17:00 +02:00
ab445ec307 bin/xbps-pkgdb/check_pkg_files.c: no need to initialize rv. 2013-04-04 10:09:36 +02:00
d536ad39ff xbps-pkgdb: fix two meamleaks in error paths. 2013-04-04 09:54:53 +02:00
7c1a0ac3e8 New pkgdb (0.21) and repo index (1.7) format, see NEWS for info. 2013-03-05 04:08:42 +01:00
da11e55847 xbps-pkgdb.8: explain exactly what checks are executed currently. 2013-02-20 16:32:53 +01:00
0c50c0bb2d xbps-pkgdb: new option -m --mode <auto|manual> to change pkg install mode. 2013-02-20 10:35:55 +01:00
178a6b58ae Remove another transaction obj from pkgdb and make xbps-pkgdb catch it. 2013-02-07 17:49:28 +01:00
e2176ec4b6 bin: no point in cleaning up resources when it's exiting... 2012-12-14 11:58:30 +01:00
647aa0727f xbps-pkgdb/Makefile: remove redundant assignment. 2012-12-14 09:56:12 +01:00
338c0d549f xbps-pkgdb: fixed some memleaks. 2012-12-14 06:04:58 +01:00
33a8150a98 xbps-pkgdb: checking all pkgs with -a/--all is now multithreaded. 2012-12-14 03:31:24 +01:00
f45352dbf8 Added support for dynamic generation of revdeps for installed packages. 2012-11-30 17:40:52 +01:00
63c1883201 Major API/ABI cleanup bringing performance improvements and fixes.
These are the core interfaces in the new API:

rpool - Interface to interact with the repository pool.
rindex - Interface to interact with repository indexes.
pkgdb - Interface to interact with local packages.
transaction - Interface to interact with a transaction.

This also brings new repository index format, making the index file
per architecture and being incompatible with previous versions.

The transaction frequency flush option has been removed, and due to
the nature of package states it was causing more harm than good.

More changes coming soon, but the API shall remain stable from now on.
2012-11-30 07:11:51 +01:00
78cd625c28 xbps-pkgdb: fixed symlinks check; this now detects modified symlinks correctly. 2012-11-19 21:12:04 +01:00
ace91b17e0 xbps-pkgdb: add changes in reqby back to our pkgdb pkg dictionary. 2012-11-18 12:04:57 +01:00
c899572bd4 xbps-pkgdb: don't forget to update pkgdb; some printf fixes. 2012-11-17 18:25:18 +01:00
e763f154a0 xbps-pkgdb: simplify the check code; make the reqby check work again. 2012-11-17 17:43:54 +01:00
b0fab7a3ee Implemented a cache to get pkg dicts from metadir.
This improves xbps-pkgdb -a marginally, but still seems to be a bit slow.
2012-11-16 21:50:52 +01:00
34bd49f85a New pkg metadata structure for 0.18. See the NEWS file for info. 2012-11-16 16:55:35 +01:00
d6735d5685 xbps_xasprintf: do not return NULL anymore; remove checks for this. 2012-11-11 09:37:27 +01:00
11149f058c man: use the same width. 2012-11-06 10:33:29 +01:00