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
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
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
6fdb2e322d
lib/package_unpack.c: remove extra parameter in a variadic function.
2013-04-04 10:15:32 +02:00
Juan RP
c753eae9f7
lib/package_unpack.c: fix two possible memleaks.
2013-04-04 09:55:35 +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
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
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
e2b303363b
lib/package_unpack.c: fix a memleak.
2013-03-09 11:07:14 +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
bcae7e83aa
lib/package_unpack.c: pass pkgver to xbps_pkg_exec_buffer() not pkgname.
2013-03-07 12:01:07 +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
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
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
d8769c4873
Workaround fix for 'xbps-install -yf xbps <-> xbps-git'.
2013-02-05 12:10:24 +01:00
Juan RP
5c1688944d
xbps-install: make -f preserve conf files; use it twice to overwrite all files.
2013-02-02 11:30:42 +01:00
Juan RP
b75cd05c37
Use posix_fadvise(2) only if it's available.
2012-12-15 10:47:30 +01:00
Juan RP
5dab658d09
xbps_unpack_binary_pkg: use posix_fadvise(2).
2012-12-15 09:51:44 +01:00
Juan RP
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
Juan RP
5de4fb1f0a
xbps-install: -f will also overwrite pkg files.
2012-11-19 20:50:58 +01:00
Juan RP
6094bbc6ea
pkg_metadir: fix some issues I've found while finding obsolete files.
2012-11-18 12:07:43 +01:00
Juan RP
fcdb6b0930
unpack: use pkg dictionary from metadir to find obsoletes!
2012-11-17 15:14:11 +01:00
Juan RP
34bd49f85a
New pkg metadata structure for 0.18. See the NEWS file for info.
2012-11-16 16:55:35 +01:00
Juan RP
db4b542d40
unpack: typo in previous.
2012-11-15 09:27:41 +01:00
Juan RP
ce2f45a3df
unpack: don't extract pkg props.plist, we use pkg data from repo index.
2012-11-15 09:25:31 +01:00
Juan RP
ce3d4f1764
unpack: externalize pkg props dictionary from index.
2012-11-13 14:41:04 +01:00
Juan RP
4945755d53
unpack: don't assert if target file of a symlink doesn't exist, it may happen.
2012-11-12 17:10:02 +01:00
Juan RP
df0d5d7330
Get rid of pkg state half-unpacked; not-installed state is good enough.
2012-11-11 09:42:30 +01:00
Juan RP
d6735d5685
xbps_xasprintf: do not return NULL anymore; remove checks for this.
2012-11-11 09:37:27 +01:00
Juan RP
310e619ea3
Remove unnecessary variable assignments reported by cppcheck.
2012-11-06 09:28:34 +01:00
Juan RP
03567ecb70
unpack: correctly take into account rootdir while checking symlinks.
2012-10-27 10:36:39 +02:00
Juan RP
978013bfbf
unpack: match correctly symlinks with absolute path.
2012-10-27 09:42:26 +02:00
Juan RP
264c704529
unpack: do not use realpath(3) on uninstalled symlinks.
2012-10-27 09:36:28 +02:00
Juan RP
c28f882d5c
unpack: misc improvements for previous.
2012-10-26 14:32:04 +02:00
Juan RP
c58ca952a8
unpack: convert printf added in previous to xbps_dbg_printf.
2012-10-26 14:22:18 +02:00
Juan RP
7fdae2d6dc
unpack: handle another case of relative symlink.
2012-10-26 14:17:31 +02:00
Juan RP
d31a3d205a
unpack: use lstat() for symlinks, respect uid/gid if euid == 0, some fixes.
2012-10-26 11:25:17 +02:00
Juan RP
4023c8115b
unpack: improvements to handle more cases of modified files.
...
- Do not unpack unmodified symlinks.
- Do not unpack files that only differ in mode, just chmod(2) new perms.
- Do not create pkg's metadata dir if this already exists.
2012-10-26 10:27:24 +02:00
Juan RP
863f12e349
Improved finding obsolete files while upgrading pkgs.
2012-10-24 07:45:00 +02:00
Juan RP
d38dfdd19a
libxbps: unpack: before extracting re-set entry_pname.
2012-10-01 16:41:50 +02:00
Juan RP
bdeeaa46b8
libxbps: unpack: simplify file hash matching code.
2012-09-30 17:07:51 +02:00
Juan RP
9c15f103e1
lib/package_unpack: simplify and externalize pkg's plists uncompressed.
2012-09-29 20:49:51 +02:00
Juan RP
2f13afe7a6
lib/package_unpack.c: fixed build error caused by cherry-pick conflict.
2012-09-29 19:18:32 +02:00
Juan RP
0f17197627
libxbps: use a struct allocated from stack for the unpack cb.
...
(cherry picked from commit a658586f27fd0a0c2c78ea96f89b54055e1e73be)
2012-09-29 19:00:04 +02:00
Juan RP
a756060d38
libxbps: [unpack] fixed passing dangling pointer to unpack cb.
2012-07-21 10:41:19 +02:00
Juan RP
3e9e87fc2a
libxbps: require a pointer to xbps_handle in functions that need it.
...
This removes 2 global vars from lib/initend.c and easier to know
what functions require access to xbps_handle.
2012-06-14 08:22:11 +02:00
Juan RP
412d4b7280
libxbps: switch to archive_read_{close,free}.
2012-06-12 22:22:46 +02:00
Juan RP
a00a450fe0
unpack: make sure to use exact file when checking for hash matches.
2012-06-05 20:23:12 +02:00
Juan RP
cc30039c60
xbps_unpack_binary_pkg: handle ARCHIVE_{EOF,FATAL,RETRY} and use archive_read_{close,free}.
2012-06-05 16:46:50 +02:00
Juan RP
e9945dc345
Before unpacking pkg files always remove INSTALL/REMOVE scripts (if they exist).
2012-06-04 14:14:46 +02:00
Juan RP
c93d1637ae
lib/package_unpack.c: remove dead assignments found by clang-analyzer.
2012-05-30 14:22:16 +02:00
Juan RP
f7f4e0bec0
Extend 'soft replace' and also remove obsolete files.
2012-05-25 22:44:58 +02:00
Juan RP
5e0b06dc00
xbps-bin: improve def unpack cb to print more meaningful messages.
2012-05-06 16:48:47 +02:00
Juan RP
ef6d1adf91
xbps_set_pkg_state_installed: simplify (API change).
...
The third optional argument "pkgver" clearly is useless because we can
create it internally with "pkgname" and "version" arguments instead.
Also make the "version" argument mandatory.
2012-04-10 09:43:59 +02:00
Juan RP
06745b70ae
Fixed issue 22: always set perms from binpkg to existing files while unpacking.
2012-03-07 12:00:08 +01:00
Juan RP
001947d9bb
Only enable support for gzip, bzip2 and xz compression formats.
...
After looking at profiling output I saw that a not so small of time spent
was in libarchive trying to know if archive is zip compressed... so
I've enabled the three compression formats supported by xbps-src.
2012-02-22 04:16:36 +01:00
Juan RP
c965c27dfb
Skip removing obsolete files in some cases.
2012-02-20 20:23:33 +01:00
Juan RP
d075411049
Improve API documentation round 1.
2012-01-20 12:17:27 +01:00
Juan RP
6940505de9
regpkgdb rototill: renamed to pkgdb, improve the public API.
2012-01-20 11:10:52 +01:00
Juan RP
f2b05d6438
Improved pkg best matching in rpool, and support for exact pkgver matches.
...
- xbps_repository_pool_find_pkg in best match case, now returns the
newest package version available in rpool.
- Added xbps_repository_pool_find_pkg_exact that returns a package
by exact matching a pkgver.
- Removed xbps_handle_alloc(), the user is free to use memory
allocated from heap or stack.
- Improved API documentation in preparation for 0.12.
Bumped XBPS_API_VERSION again.
2012-01-17 16:17:03 +01:00
Juan RP
39d064aff8
xbps_unpack_binary_pkg: handle EPERM more efficiently.
2011-12-24 12:07:30 +01:00
Juan RP
3b7491d29b
Merged purge code in remove, configurable transaction regpkgdb flushing.
...
See the NEWS file for info.
2011-12-24 01:05:26 +01:00
Juan RP
5a892023f4
Be a bit more paranoid by checking allocs and expected types.
2011-12-22 08:23:11 +01:00
Juan RP
c40c40e08e
Always preserve current conffiles while installing new packages.
2011-12-19 11:20:27 +01:00
Juan RP
70e95786dc
libxbps: pass xhp->conffile as last argument when execing INSTALL/REMOVE scripts.
2011-12-15 12:24:59 +01:00
Juan RP
b0ceeaa58e
New configuration file via confuse: xbps.conf.
2011-12-15 11:19:20 +01:00
Juan RP
f3099fa2c6
Added success states for state_cb, move some descriptions to the client cb.
2011-11-25 09:44:49 +01:00
Juan RP
3ccfec7054
Improved callback/states support to make libxbps std{err,out} printf free.
...
This is a major API/ABI change, documentation has been updated accordingly.
2011-11-24 11:23:08 +01:00
Juan RP
e46dd09127
Faster binary package unpacking, see the NEWS file for info.
2011-11-09 21:01:25 +01:00
Juan RP
858e616f41
libxbps: preserve config file if they exist for replaced pkgs.
2011-10-30 10:32:56 +01:00
Juan RP
9fb3c38aa2
Extend assertions by checking passed in proplib type.
2011-10-19 16:53:38 +02:00
Juan RP
5642ffa86e
New configuration scheme changes, round 1.
...
- Configuration file 'xbps-conf.plist' has been splitted off into
two files: conf.plist and repositories.plist. By default they
are stored in etc/xbps.
- Changed some members in xbps_handle struct, mostly to make it easy
to change its value in {cache,root}dir and conffile.
- Made xbps_init() release proplib objects as soon as we don't need
them, that way it uses 35% less of memory or in some cases even more.
There will be another commit that will implement to read new virtualpkg
settings by the user, as specified in:
http://code.google.com/p/xbps/issues/detail?id=12
2011-10-17 12:37:15 +02:00
Juan RP
ba5913cbb9
libxbps: [unpack] only extract files if they have been modified.
2011-08-01 12:35:47 +02:00
Juan RP
890bdd368f
xbps_unpack_binary_pkg: remove redudant error printf, cosmetic changes.
2011-07-29 23:28:36 +02:00
Juan RP
5e390b8839
Introduce new pkg state: half-unpacked.
...
Packages in this state shall be re-installed and re-unpacked because its
files weren't unpacked properly.
2011-07-28 16:25:01 +02:00
Juan RP
508f119bc9
Moved install transaction code to libxbps, see NEWS file.
2011-07-27 17:13:54 +02:00
Juan RP
900e35a15e
xbps_unpack_binary_pkg: printf existents entries iff XBPS_FLAG_VERBOSE is set.
2011-07-05 17:47:37 +02:00
Juan RP
979c585652
Preserve files on disk while installing a binary package.
...
While installing packages, if any file that is going to be unpacked
exists on disk don't remove it. Always preserve them to avoid missing
files on currently installed package if there are file conflicts.
2011-07-03 17:12:02 +02:00
Juan RP
fe2bbb675f
xbps_unpack_binary_pkg: fix previous and also handle ERANGE after unlink.
2011-06-25 18:19:56 +02:00
Juan RP
e218e710f9
xbps_unpack_binary_pkg: in remove_file_wrong_hash() handle ENOENT errors.
2011-06-25 11:47:42 +02:00
Juan RP
9673c4bd09
XBPS major changes in June 2011.
...
- A configuration file "xbps-conf.plist" replaces the (un)register target
in xbps-repo(8) and (un)set-prop in xbps-bin(8). For now, you can set
the repositories and prefered virtual packages.
- New package pattern matching code from NetBSD. Supports more ways of
matching patterns in packages.
- Multiple bugs fixed in virtual packages related matching code.
--HG--
rename : LICENSE => COPYING
2011-06-04 13:37:53 +02:00
Juan RP
2d6140f65b
Rename: xbps_read_dict_from_archive_entry() -> xbps_dictionary_from_archive_entry().
2011-06-02 09:54:59 +02:00
Juan RP
841c9e2d51
API/ABI break for June 2011.
...
Rename some functions to reflect its description a bit better.
--HG--
rename : lib/repository_plist.c => lib/plist_fetch.c
2011-06-01 09:37:32 +02:00
Juan RP
6a91c2894e
xbps_unpack_binary_pkg: fix wrong path to metadata files!
2011-03-04 10:48:39 +01:00
Juan RP
0452c7c9dd
Fix a dup'ed word.
2011-03-03 17:56:18 +01:00
Juan RP
7c6119427c
While installing a pkg, remove files with wrong hash before unpacking.
2011-02-24 00:24:11 +01:00
Juan RP
a306cebc96
xbps_set_pkg_state_installed: added two new optional arguments: version and pkgver.
...
This can be used to avoid some rare cases where the pkg dictionary is regpkgdb
is in a state where code can be faulty if those objects are not found.
2011-02-22 11:09:39 +01:00
Juan RP
bdfa81c29d
package_unpack.c: fix a comment.
2011-02-21 17:57:46 +01:00
Juan RP
870ad18d58
xbps_init() now sets rootdir, cachedir and flags.
...
That means that the following functions were removed:
- xbps_set_{cachedir,flags,rootdir}.
- xbps_get_{cachedir,flags,rootdir}.
With this change fixed an obvious typo that made -c argument to not work,
and now the cache directory is an absolute path not relative to rootdir.
2011-02-21 17:42:47 +01:00
Juan RP
afe0f3e2f0
Make the xbps_handle struct const internally.
2011-02-21 14:03:08 +01:00
Juan RP
22ae7aa2e8
Introduce struct xbps_handle and use it for xbps_init().
...
This structure sets up function callbacks for fetching files and
unpacking binary packages, as well as setting the debug boolean.
This way the affected functions (xbps_fetch_file() and
xbps_unpack_binary_pkg()) do not need to accept the fn cb pointers
and data as arguments.
Bump XBPS_RELVER.
2011-02-21 13:38:44 +01:00
Juan RP
078f9f1cda
Fixed finally another real case when updating and replacing pkgs.
2011-02-18 16:39:42 +01:00
Juan RP
d5c2a3266f
Rename the transaction object key to "transaction" rater than "trans-action".
2011-02-05 12:21:04 +01:00