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
fce411bac6
xbps_rpool_foreach: ignore invalid repos.
2013-09-17 16:24:19 +02:00
Juan RP
e6aade53a0
xbps_repo_get_pkg_revdeps: ignore invalid repos.
2013-09-17 16:19:56 +02:00
Juan RP
12546e4b70
Revert "lib/repo_pkgdeps.c: check for wrong dependencies earlier."
...
This reverts commit eed9c89375
.
2013-09-17 09:04:01 +02:00
Juan RP
ac158ec2f6
lib/transaction_sortdeps.c: fix a comment.
2013-09-16 11:31:56 +02:00
Juan RP
eed9c89375
lib/repo_pkgdeps.c: check for wrong dependencies earlier.
2013-09-16 11:28:55 +02:00
Juan RP
3f376998c2
lib/plist_find.c: remove a noisy/useless dbg printf.
2013-09-16 11:24:09 +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
571d8748b4
lib/package_unpack.c: fix a double free.
2013-08-30 15:34:29 +02:00
Juan RP
010e5df415
lib/transaction_commit.c: add missing arg to xbps_dbg_printf().
2013-08-29 15:49:23 +02:00
Juan RP
f4dc832229
Revert "lib/package_config_files.c: fixed a memleak."
...
This reverts commit c04d54f020
.
2013-08-29 15:30:14 +02:00
Juan RP
24ff0472dd
Use fs blksize from stat(2)ed file when reading archives.
2013-08-29 14:30:14 +02:00
Juan RP
1bea5725ae
lib/package_script.c: misc cleanups.
2013-08-29 12:13:59 +02:00
Juan RP
20fb38142b
lib/package_unpack.c: fixed two memleaks.
2013-08-29 12:06:04 +02:00
Juan RP
c04d54f020
lib/package_config_files.c: fixed a memleak.
2013-08-29 12:05:59 +02:00
Juan RP
71a602fd27
lib/archive.c: fixed memleaks in error paths; misc cleanups.
2013-08-29 11:57:57 +02:00
Juan RP
6795e840d6
lib/plist_find.c: fix a memleak, misc cleanups.
2013-08-29 11:51:42 +02:00
Juan RP
a039330f3c
Misc cleanups: use __attribute__((__unused__)); remove dead code.
2013-08-29 10:45:30 +02:00
Juan RP
789165339a
Drop useless/unused xbps_add_obj_to_{array,dict} functions.
2013-08-18 10:25:17 +02:00
Juan RP
11fbffa241
Fix #14 from github (Removing recursively does not respect manual installation mode for dependencies).
2013-08-17 09:50:19 +02:00
Juan RP
84d14286a8
More libarchive-2.x compat.
2013-08-15 11:55:20 +02:00
Juan RP
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
Juan RP
49fa951836
xbps_array_foreach_cb: replace an assertion with a real test, for non working repos.
2013-07-27 20:01:23 +02:00
Juan RP
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
Juan RP
432067de48
Remove three unused API functions.
2013-07-27 06:12:59 +02:00
Juan RP
20f2d10527
xbps-query(8): -L now prints all repos, including non working repos ( close #11 ).
2013-07-26 11:42:52 +02:00
Juan RP
db7dd3fd9b
lib/repo_pkgdeps.c: print correctly missing dependencies.
2013-07-16 08:00:42 +02:00
Juan RP
7941b225fb
rpool: no need to add repository object; it's already set by the repo code.
2013-07-07 09:58:30 +02:00
Juan RP
ecd15b7d57
Check if an update for conflicting pkg is in the transaction for revdeps in vpkgs.
2013-07-05 10:09:32 +02:00
Juan RP
42ba861e21
lib/fetch: ignore -Wformat-nonliteral with clang.
2013-07-02 08:54:02 +02:00
Juan RP
789c756854
xbps_transaction_revdeps: properly print the broken revdeps on real deps.
2013-07-02 00:47:16 +02:00
Juan RP
47eed214a6
xbps_repo_get_pkg_revdeps: don't continue if arg is a virtual pkg.
2013-06-27 18:14:38 +02:00
Juan RP
505a933097
Added support to verify reverse dependencies in a transaction.
...
See https://plus.google.com/106812073015308749022/posts/ZXMHimd8iKd
2013-06-27 16:52:31 +02:00
Juan RP
4494e0554d
lib/plist_find.c: typo in comment.
2013-06-27 16:26:19 +02:00
Juan RP
52fc384e4e
Fixed some issues/warnings found by clang-analyzer.
2013-06-20 11:25:43 +02:00
Juan RP
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
Juan RP
31efece727
Hide libfetch symbols if using the internal copy.
2013-06-19 11:57:25 +02:00
Juan RP
d419f8ac2a
Move fetch.h to lib/fetch.
2013-06-19 11:03:03 +02:00
Juan RP
ee9b799822
Make sure that only 1 thread can inject the vpkg config files.
2013-06-14 12:31:43 +02:00
Juan RP
9d80524a34
Minor optimization: no need to check if obj is NULL, prop_object_type() does that already.
2013-06-14 12:22:29 +02:00
Juan RP
3abe48b68a
Introduce xbps_repo_get_pkg_plist() and use it in xbps-query -R.
2013-06-14 10:22:10 +02:00
Juan RP
2c03e1c9a8
Read virtual pkg config files only when it's necessary.
2013-06-14 10:00:33 +02:00
Juan RP
5f2bba7f4e
Move functionality to resolve revdeps from repos to libxbps.
2013-06-14 08:13:51 +02:00
Juan RP
db1efb3aa6
Relax memory requirements on 64bit platforms; fix two memleaks.
2013-06-12 10:04:10 +02:00
Juan RP
99be698979
Use a single file to store repository data.
...
This is just the starting point to extend repositories with PGP signatures.
2013-06-10 10:28:39 +02:00
Juan RP
c22dfa8d52
Make sure that pkg meta plist are always created, even in pkgs without files.
2013-05-17 09:17:32 +02:00
Juan RP
769205db0c
Before unpacking pkg files, first create the pkg metafile (temp fix for #7 ).
2013-05-17 08:24:47 +02:00
Juan RP
7da5f6e8f7
lib/package_unpack.c: remove extra arg in xbps_set_cb_state().
2013-05-15 12:45:35 +02:00
Juan RP
5fd7565e6c
xbps-install(8): -R now overrides the repository list set in a configuration file.
...
Now -R can be used independently if a configuration file exists or not.
2013-04-18 18:17:14 +02:00
Juan RP
80de70d0cf
lib/transaction_dictionary.c: get installed_size obj from pkg metadata correctly.
...
This lead to incorrect sizes or no size when computing freed/installed size
in the transaction dictionary.
2013-04-04 10:40:32 +02:00
Juan RP
ef4e43931b
lib/rindex_sync.c: remove extra parameter in a variadic function.
2013-04-04 10:18:10 +02:00
Juan RP
6fdb2e322d
lib/package_unpack.c: remove extra parameter in a variadic function.
2013-04-04 10:15:32 +02:00
Juan RP
dc900353e4
lib/initend.c: xbps_end: remove bogus assignment.
2013-04-04 10:07:19 +02:00
Juan RP
1741019b90
lib/transaction_sortdeps.c: remove bogus assignment in pkgdep_release().
2013-04-04 09:57:59 +02:00
Juan RP
c753eae9f7
lib/package_unpack.c: fix two possible memleaks.
2013-04-04 09:55:35 +02:00
Juan RP
dbf4bb184e
xbps_transaction_remove_pkg: fix uninitialized argument value reported by scan-build.
2013-04-04 09:22:40 +02:00
Juan RP
0a1ea51e4e
lib/package_unpack.c: fix a meamleak in error path.
2013-04-04 09:17:32 +02:00
Juan RP
e844bc1ad5
xbps_callback_array_iter_reverse: initialize rv (fixes garbage return value).
2013-04-04 09:13:52 +02:00
Juan RP
e4a3342c39
xbps_entry_install_conf_file: pass correct number of args to xbps_set_cb_state().
2013-03-27 17:22:44 +01:00
Juan RP
7c4f20ba89
lib/transaction_commit.c: fix a use-after-free in state cb (found by ojab).
2013-03-26 10:35:20 +01:00
Juan RP
8d6f3b5029
unpack: use lchown(2) to set proper uid/gid to symlinks.
2013-03-17 17:13:07 +01:00
Juan RP
57bb7baf5e
unpack: use archive_entry_{filetype,uid,gid,mode} rather than stored struct stat.
2013-03-15 13:18:30 +01:00
Juan RP
b5d141e28c
When checking for obsolete files ignore unexistent files.
2013-03-13 22:08:13 +01:00
Juan RP
5efa1de8d5
lib/package_unpack.c: no need to use a var just to check lstat() rval.
2013-03-11 14:06:47 +01:00
Juan RP
a92863cb62
xbps_find_pkg_orphans: remove workaround for target pkgs; ignore unknown pkgs.
2013-03-11 12:13:42 +01:00
Juan RP
0845d6cae3
xbps_transaction_remove_pkg: handle correctly target pkg.
2013-03-11 12:13:02 +01:00
Juan RP
b9888fd7be
xbps_match_virtual_pkg_in_dict: add support to match vpkgs with exact version.
2013-03-10 10:07:54 +01:00
Juan RP
8fce81cc9f
pkgdb: do not add dups in revdeps generation; remove old code.
2013-03-10 08:58:37 +01:00
Juan RP
356f451d17
Renameed lib/package_remove_obsoletes.c -> package_find_obsoletes.c.
2013-03-09 17:21:27 +01:00
Juan RP
fe922ace4c
Merge portable proplib 0.6.3.
2013-03-09 16:41:40 +01:00
Juan RP
84745dfe33
xbps_file_hash: remove madvise usage (no gain irl).
2013-03-09 16:22:41 +01:00
Juan RP
b976a45aed
New code to find pkg obsolete files, with a proper kyua test.
...
Previous code incorrectly found obsolete files in this case:
(curpkg) - in files: /etc/foo.conf
(newpkg) - in conf_files: /etc/foo.conf
and removed this file because the code couldn't find it in the same
array. The new code fixes this case and compares the whole pkg filelist.
2013-03-09 13:30:56 +01:00
Juan RP
e2b303363b
lib/package_unpack.c: fix a memleak.
2013-03-09 11:07:14 +01:00
Juan RP
5885543728
xbps_rindex_sync: simplify.
2013-03-09 10:43:50 +01:00
Juan RP
f9fc39fcdc
Repair xbps_find_pkg_orphans() after pkgdb 0.21 format switch.
...
The problem was that pkgdb is now a dictionary, thus this contains
an unordered set of objects, therefore we cannot depend in the order
anymore.
2013-03-09 09:56:36 +01:00
Juan RP
c504a73f08
Re-use pkgname from unpack to handle config files.
2013-03-08 10:11:16 +01:00
Juan RP
faacbd4a96
lib/package_unpack.c: fix xbps_entry_install_conf_file() args.
2013-03-08 10:07:48 +01:00
Juan RP
50ea03df2a
Revert code to update xbps independently; I'll use another way to implement this.
2013-03-08 09:44:57 +01:00
Juan RP
f5f6f50e27
lib/external/fexec.c: add some parens so that expression is evaluated correctly.
2013-03-07 20:15:16 +01:00
Juan RP
5eddf04898
Ignore executing install/remove scripts if XBPS_TARGET_ARCH is set.
...
Instead a two stage approach is necessary when packages for target arch
are installed:
- XBPS_TARGET_ARCH=arch xbps-install foo <- only unpack
- xbps-reconfigure -a <- configure natively or via an emulator
2013-03-07 18:08:12 +01:00
Juan RP
fd7153fe5c
lib/external/fexec.c: error out if chroot/chdir fails, ignore target_arch.
2013-03-07 18:07:47 +01:00
Juan RP
bcae7e83aa
lib/package_unpack.c: pass pkgver to xbps_pkg_exec_buffer() not pkgname.
2013-03-07 12:01:07 +01:00
Juan RP
98adbf34a1
xbps_pkg_exec_buffer: pass correct args to the install/remove scripts.
2013-03-07 11:56:08 +01:00
Juan RP
7e2d5344d3
lib/package_unpack.c: pass correct number of args to xbps_set_cb_state().
2013-03-07 11:52:47 +01:00
Juan RP
0a1859987a
Respect automatic-install mode from pkgdb in transaction updates.
...
Also simplify register/unregister and remove useless state definitions.
2013-03-07 10:03:59 +01:00
Juan RP
90b6803825
Introduce XBPS_STATE_CONFIGURE_DONE and use it in xbps-reconfigure(8).
2013-03-07 09:24:04 +01:00
Juan RP
37263d63c9
lib/transaction_ops.c: only call xbps_pkg_name() when it's really necessary.
2013-03-07 09:12:47 +01:00
Juan RP
5409e51822
lib/package_conflicts.c: adapt to pkgdb 0.21 format.
2013-03-06 12:55:00 +01:00
Juan RP
301dfe0043
xbps_configure_pkg: fail gracefully if metadata cannot be read.
2013-03-05 17:20:29 +01:00
Juan RP
e36bedb036
Fix regressions in xbps_unpack_binary_pkg().
2013-03-05 06:42:25 +01:00
Juan RP
7c1a0ac3e8
New pkgdb (0.21) and repo index (1.7) format, see NEWS for info.
2013-03-05 04:08:42 +01:00
Juan RP
42274f939c
Set _BSD_SOURCE before including string.h to get strlc{at,py} with musl.
2013-03-03 08:21:00 +01:00
Juan RP
8b5f6d7b65
When running scripts exit from child with errno from execv().
2013-02-26 09:12:44 +01:00
Juan RP
26778964a4
When executing scripts don't chroot if XBPS_TARGET_ARCH is set.
2013-02-25 23:00:20 +01:00
Juan RP
e525e2c251
Drop posix_fadvise(3) completely before unpacking.
...
Some systems with small memory might fail to make the preallocation,
as seen in the rpi. It doesn't give us too much gain anyway.
2013-02-20 12:59:11 +01:00
Juan RP
ae7b76e245
xbps_fetch_file: don't fsync(3) before closing fd; slowdowns considerably slow storage.
2013-02-20 10:46:21 +01:00
Juan RP
eb61aabca8
xbps_remove_pkg: fix a double free.
2013-02-19 14:58:56 +01:00
Juan RP
2b5d3bb8f4
libxbps: when resolving deps, ignore all of them that depend on the origin pkg.
2013-02-07 18:50:55 +01:00
Juan RP
178a6b58ae
Remove another transaction obj from pkgdb and make xbps-pkgdb catch it.
2013-02-07 17:49:28 +01:00
Juan RP
d8769c4873
Workaround fix for 'xbps-install -yf xbps <-> xbps-git'.
2013-02-05 12:10:24 +01:00