Commit Graph

91 Commits

Author SHA1 Message Date
Juan RP
769a997afb Introduce xbps_plist_{array,dictionary}_from_file().
Those are a wrapper around xbps_{array,dictionary}_internalize_from_zfile()
that prints a debugging msg when the plist file cannot be internalized.

Update xbps to use these wrappers.
2015-05-28 10:15:05 +02:00
Juan RP
c4ed1b5845 xbps-pkgdb: if pkg metafile cannot be internalized print a proper errmsg. 2015-05-28 09:44:01 +02:00
Juan RP
42831b97d4 xbps-pkgdb: add two assertions. 2015-05-28 09:41:00 +02:00
Juan RP
0027e54532 xbps-pkgdb.1: fix a mandoc -Wall warning. 2015-05-28 09:13:12 +02:00
Juan RP
fcdd71aac4 Move xbps utils manpages to the section 1 (user commands). 2015-05-16 09:46:10 +02:00
Juan RP
4922c808f4 Implemented feature #77 (Add package repository locked mode)
Close #77
2015-03-03 12:11:28 +01:00
Juan RP
04da57e4f9 xbps-pkgdb: when checking pkg files, ignore mtime with mutable files. 2015-02-27 10:38:50 +01:00
Juan RP
c712c99ced xbps-pkgdb: exit with error if any test fails. 2015-02-26 12:01:20 +01:00
Juan RP
b909e8edc3 xbps-pkgdb: fix use-after-free introduced in 3855d2e. 2015-02-23 08:26:20 +01:00
Juan RP
3855d2e2fb xbps-pkgdb(8): check pkg file mtime (iff the obj is available). 2015-02-22 18:45:47 +01:00
Juan RP
a05e039cce Revert "Stop converting relative symlinks to absolute."
This reverts commit 9ae3638429.

This change is ok, but cannot be used right now because all existing
binpkgs were created with an old xbps-create(8).
2015-02-19 11:11:58 +01:00
Juan RP
9ae3638429 Stop converting relative symlinks to absolute.
There's no reason to make them absolute, simply store in the metadata
the target file as is. This vastly simplifies the code and makes all
test pass correctly.
2015-02-19 11:04:34 +01:00
Juan RP
67eba7d912 Improve detection of target file in relative symlinks.
If xbps-create(8) did not guess the target file of relative symlinks for
some reason, just compare the current symlink and what's stored as is,
without converting it to absolute.

This might happen with dangling relative symlinks or existing binary
packages that were not created with a newer xbps-create(8).
2015-02-19 10:24:24 +01:00
Juan RP
05f879ec09 Introduce xbps_symlink_target() and use it in two places.
This code is now shared by xbps-pkgdb and libxbps/xbps-remove.
2015-02-19 09:47:09 +01:00
Juan RP
1251583154 xbps-{pkgdb,reconfigure}: flush pkgdb in case it was modified.
Regression introduced with the recent xbps_end() changes.
2015-01-17 12:06:13 +01:00
Juan RP
ee175a2a68 Improve xbps_end() and use it before exit(3)ing.
- Simplify xbps_repo_open::repo_get_dict().
- Use xbps_end() in the utils where necessary.
- Make xbps_end() call xbps_pkgdb_unlock() if necessary.
- Make xbps_end() release rpool resources.
- Make xbps_end() release resources from xbps_handle.
- Fixed 90% of reported leaks (still reachable at exit) from valgrind.

That was to silence valgrind's memcheck with --leak-check=full.
2015-01-10 19:11:31 +01:00
Juan RP
df1608d47d xbps-pkgdb: drop packaged-with from pkgdb; unnecessary and obsolete. 2014-12-26 15:53:02 +01:00
Juan RP
59096a866b bin/*/*.8: mention system configuration directory. 2014-12-15 09:24:55 +01:00
Juan RP
395e147c6c xbps.d(5) - XBPS configuration directory 2014-12-09 11:41:35 +01:00
Juan RP
5b522109f7 Replaced config/system {repo,preserve,virtualpkg}.d with a single directory.
See the NEWS file for more information.
2014-11-06 09:58:04 +01:00
Juan RP
fa6f20ec4f xbps-pkgdb: rework symlinks checks to avoid false positives with -r. 2014-10-25 10:11:46 +02:00
Juan RP
adc0643ee4 Fully switch to zplists. 2014-10-17 10:27:58 +02:00
Juan RP
960c3fdcdf bin/xbps-pkgdb/check.c: CID 62721 (argument cannot be negative) 2014-10-07 07:25:25 +02:00
Juan RP
810c5d8de0 bin/xbps-pkgdb/check_pkg_symlinks.c: buffer not NUL terminated (CID 62665) 2014-10-05 07:43:39 +02:00
Juan RP
a15dc24fe8 bin/xbps-pkgdb/check_pkg_symlinks.c: uninitialized pointer read (CID 62730) 2014-10-05 07:23:53 +02:00
Juan RP
966718bb7d bin/*/*.8: fixed mdoc errors/warnings reported by mandoc -Wall. 2014-09-30 11:36:08 +02:00
Juan RP
ba0cdabe1e bin/xbps-pkgdb/check.c: fix assertion due to double free. 2014-09-27 12:22:13 +02:00
Juan RP
e902619220 Remove empty self replaced pkg arrays from pkgdb. 2014-09-14 18:16:43 +02:00
Juan RP
2b7c4d568a Remove pkg self replacement from pkgdb; this must not be propagated. 2014-09-13 18:14:04 +02:00
Juan RP
411480e43d pkgdb: repository-origin -> repository to match the repo pkg obj. 2014-09-13 10:49:13 +02:00
Juan RP
dea7ea888e bin/*/*.8: sync with reality. 2014-09-11 12:21:33 +02:00
Juan RP
e32f7f4909 xbps-pkgdb: unfix previous, pkg metafile must be internalized. 2014-09-11 08:04:51 +02:00
Juan RP
bd2bb98fa7 xbps-pkgdb: update for pkgdb-0.38. 2014-09-11 08:00:37 +02:00
Juan RP
01dbb968dd Welcome pkgdb-0.38. 2014-09-11 00:12:12 +02:00
Juan RP
8939e8697d bin/*/*.8: add missing End-List macros (.El). 2014-08-23 09:26:02 +02:00
Juan RP
f8d8f91a08 Implement support to "preserve" existent on-disk files.
See NEWS for more information. Fix #51
2014-08-01 15:09:51 +02:00
Juan RP
ccc5a29a27 xbps-pkgdb/check_pkg_symlinks: avoid many small allocations and fix a small memleak. 2014-05-13 22:54:43 +02:00
Juan RP
43090cef2a Xref xbps-uchroot(8) 2014-04-21 10:58:09 +02:00
Juan RP
8244f57320 bin/*: update manpages with Xref xbps-checkvers(8). 2014-04-07 12:22:55 +02:00
Juan RP
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
Juan RP
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
Juan RP
0744b76946 xbps-xxx.8: update issues url. 2013-12-17 15:38:56 +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
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
70047586ee Xref xbps-rkeys(8) 2013-10-12 10:13:32 +02:00
Juan RP
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
Juan RP
c5acbc7953 mk/prog.mk: set MAN to $(BIN).8 by default. 2013-09-16 08:57:24 +02:00
Juan RP
4057e4961c Use C99 for loop initializers.
That means that a C99 compiler is now mandatory.
2013-09-15 10:06:49 +02:00
Juan RP
a039330f3c Misc cleanups: use __attribute__((__unused__)); remove dead code. 2013-08-29 10:45:30 +02:00
Juan RP
22ae6295f5 manpages: use github url for bugreports. 2013-08-18 10:17:45 +02:00