Commit Graph

1112 Commits

Author SHA1 Message Date
96a117c558 lib/repo_pkgdeps.c: fix a double free in error branch (CID 62754) 2014-10-05 07:09:40 +02:00
bc9ddcfcc8 lib/initend.c: rename a var to make gcc-4.6.x happy. 2014-10-04 22:02:56 +02:00
2fe35a5bf3 lib/package_unpack.c: do not initialize xucd at all, unnecessary.
Initializing with {0} wasn't understood with gcc-4.6.x on travis-ci,
so just remove it.
2014-10-04 21:59:47 +02:00
742af69185 Fix libxbps/update_shlibs:shlib_bump_revdep_diff test.
How to reproduce it:

	- A-1.0_1 provides liba.so.1
	- B-1.0_1 provides libb.so.1
	- C-1.0_1 requires liba.so.1 and libb.so.1
	- A-2.0_1 provides liba.so.2
	- C-2.0_1 required liba.so.2

This test case failed because it was checking the required shared libraries
from current installed package, rather than the updated pkg in transaction.
2014-09-29 15:25:09 +02:00
42f0152dce trans_find_pkg(): search for reverts match with correct pkgver 2014-09-28 22:22:20 +02:00
2711b07b77 Fix package files removal with only read bit set.
The previous code was checking incorrectly if the file had the write
bit set, and this is wrong because a package could have files with
only the read bit set (0444).
2014-09-28 13:33:15 +02:00
72cefcfc83 Introduce xbps_mmap_file() and use it in strategic points.
Rather than using a random buffer from stack or heap, and decide
what size to use, create a private memory mapped object...

This simplifies the code in lib/verifysig.c and xbps-create.
2014-09-27 13:00:34 +02:00
97045960f9 xbps_pkg_reverts: style. 2014-09-27 11:28:29 +02:00
b5a169b65c xbps_pkg_reverts: this function can do more than just return false! 2014-09-23 21:18:47 +02:00
a421bf7db5 xbps_pkg_reverts: return bool instead of int. 2014-09-23 20:50:34 +02:00
dbab3f2cfc xbps_pkg_reverts: use version instead of pkgname-version to find reverts 2014-09-23 18:22:57 +02:00
50fb6c1605 rename xbps_pkgver_is_reverted to xbps_pkg_reverts 2014-09-23 13:54:06 +02:00
cd9a9e78a8 lib/transaction_ops.c: trans_find_pkg will check the revert field too.
- if a package on the repo has a lower version than installed
  libxbps will check if this package reverts the one installed
  and downgrades to it if so.
2014-09-23 13:54:06 +02:00
18204aeac1 lib/util.c: add function which tests if a given pkgver is reverted by a given pkg. 2014-09-23 13:54:06 +02:00
5bbcdf2c62 lib/util_hash.c: enlarge read buffer for xbps_file_hash to increase performance. 2014-09-18 18:34:15 +02:00
f52eea34d4 xbps-install: abort transaction if there's insufficient disk space on rootdir.
The free disk space wasn't computed correctly and xbps-install(8) wasn't
handling ENOSPC rval in xbps_transaction_prepare().
2014-09-18 12:11:02 +02:00
741f8fbe04 lib/util_hash.c: update copyright year. 2014-09-17 07:24:00 +02:00
72c64c7626 xbps_file_hash: reduce memory footprint and process file in small chunks.
With xbps-rindex(8) -c/-r being multithreaded, the memory usage was
insanely high in the build server, with peaks of almost 4GB (this depends
on the file size being processed and number of threads).

Process the file in small chunks instead to compute the SHA256 hash.
2014-09-17 06:50:46 +02:00
6894980983 lib/package_msg.c: fix a heap overflow (noticed by @Gottox). 2014-09-16 09:13:32 +02:00
e902619220 Remove empty self replaced pkg arrays from pkgdb. 2014-09-14 18:16:43 +02:00
ac2c517bd7 Fixed install/update tests on pkgs with no files. 2014-09-14 18:04:10 +02:00
c9514ad617 libxbps: fixed replaces/replace_vpkg test case. 2014-09-14 12:50:17 +02:00
2b7c4d568a Remove pkg self replacement from pkgdb; this must not be propagated. 2014-09-13 18:14:04 +02:00
dea31f0a15 Add xbps_remove_{pkgname,string}_from_array() to the API. 2014-09-13 18:13:25 +02:00
b42c3d8498 lib/pkgdb_conversion.c: avoid copying dangling pointer if "repository-origin" is unexistent. 2014-09-13 16:59:19 +02:00
d67f8bdc8c xbps_register_pkg: do not modify the transaction pkg dictionary, use a copy instead.
Due to not using a copy the replace tests were failing at the configure phase,
because the "transaction" object was removed.
2014-09-13 13:31:56 +02:00
598022a60b xbps_transaction_commit: add more debugging to know the unconfigured pkg reason. 2014-09-13 12:21:49 +02:00
411480e43d pkgdb: repository-origin -> repository to match the repo pkg obj. 2014-09-13 10:49:13 +02:00
287665009b Drop unused headers. 2014-09-13 08:54:12 +02:00
39aca1bbc9 Implement shlib checks for all pkg revdeps in the transaction.
Added three new test cases to verify its correctness.
2014-09-12 11:49:34 +02:00
4978fe9844 lib/transaction_package_replace.c: misc optimizations. 2014-09-11 17:55:05 +02:00
4ab831888a xbps_repo_sync: fix swapped args (Hi Tox!) 2014-09-11 13:38:26 +02:00
2207517e13 Disable best pkg matching code; see NEWS for more information. 2014-09-11 12:19:52 +02:00
ed6b3c00f5 xbps_entry_install_conf_file: fix non debug build. 2014-09-11 11:56:23 +02:00
e1124800a5 lib/repo_sync.c: xbps_fetch_file_dest() expects 4 args not 5 (hi Tox) 2014-09-11 11:51:20 +02:00
4689b07b85 lib/repo_sync.c: use xbps_fetch_file_dest() instead of xbps_fetch_delta().
Until the generation of deltas does not work reliably just download
the repo files instead of trying to get the delta.
2014-09-11 11:39:54 +02:00
30ea08e605 lib/transaction_ops.c: detect updates when an exact pkg version is set. 2014-09-11 11:13:20 +02:00
e4ff957e42 xbps_find_pkg_orphans: fix regression adding false positives. 2014-09-11 09:05:57 +02:00
dba767fb05 lib/pkgdb_conversion.c: remove metafile-sha256 obj if pkg contains no files. 2014-09-11 08:18:03 +02:00
01dbb968dd Welcome pkgdb-0.38. 2014-09-11 00:12:12 +02:00
fb9c94fab9 Added support to use pkg shlib-{provides,requires} objects.
This effectively checks that all pkgs in a transaction to be installed
or updated, have not unmatched shared libraries, which might happen with
pkgs that had major soname bumps.

This implementation slow downs xbps_transaction_prepare() 2x, due to
the use of xbps_pkgdb_get_pkg_metadata(). A new pkgdb format is required
that adds the pkg shlib-provides objects to pkgdb, avoiding the need
to use xbps_pkgdb_get_pkg_metadata().
2014-09-09 11:08:54 +02:00
c61317e219 lib/external/fexec.c: fix build with glibc>=2.20 (needs _DEFAULT_SOURCE). 2014-09-08 18:46:12 +02:00
b67d4ec975 lib/download.c: debug: print url info only if it's available. 2014-09-07 09:45:47 +02:00
8ad8bca958 xbps_rpool_foreach: take into account xbps_repo_open returning NULL. 2014-09-07 09:35:38 +02:00
5863ec17fe libxbps: two new functions to get the pkgver and arch components in a filename.
- xbps_binpkg_pkgver() returns a heap allocated string with the pkgver component.
- xbps_binpkg_arch() returns a heap allocated string with the architecture component.

A basename, full path or relative path is supported, i.e:

	/path/to/foo-1.0_1.x86_64.xbps
	../../foo/blah-0.1_1.x86_64.xbps
	baz-0.1_1.x86_64.xbps
2014-09-05 20:59:00 +02:00
e2470f8697 xbps_entry_install_conf_file: add more assertions. 2014-09-05 20:58:20 +02:00
685a85a466 xbps_find_pkg_orphans: also take into account virtual pkgs. 2014-09-05 13:10:50 +02:00
bf92d1f5a3 xbps_repo_open: open archive read-only if lock is not set. 2014-09-05 12:39:53 +02:00
013731c502 Acquire/release a POSIX file lock on repository archives.
- xbps_repo_open() accepts a third argument (bool) to acquire a POSIX file
lock on the repository archive.
- xbps_repo_close() accepts a second argument (bool) to release a POSIX file
lock on the repository archive.

This avoids the issue of multiple xbps-rindex(8) processes being blocked
even for different repositories on the same architecture, resulting in
unnecessary contention.
2014-09-05 12:26:42 +02:00
472f622f6f Finally fixed vpkg02 test (vpkg provider in transaction).
Rather than collecting dependencies for a pkg that has been added to the
transaction dictionary, do this for all pkgs in transaction once all
packages are already there.
2014-09-04 10:13:02 +02:00