Commit Graph

167 Commits

Author SHA1 Message Date
Juan RP
c3afb4f4fb New function: xbps_get_pkg_dict_from_metadata_plist.
This function returns and internalized dictionary from a package's metadata
plist file as specified by its arguments.

Update all code to use it where appropiate.
2010-11-08 03:14:41 +01:00
Juan RP
679833156a Always release the object dictionary returned by xbps_find_pkg_dict_installed().
Document this in the public API header and update all code accordingly.
2010-11-08 02:02:35 +01:00
Juan RP
ab10cc3b15 xbps_find_pkg_dict_installed: dictionary MUST be copied before calling
xbps_regpkgs_dictionary_release(), otherwise it will be NULL.

Found by executing this function without initializing regpkgdb.
2010-11-08 01:37:53 +01:00
Juan RP
ec7cdde1e0 Misc cleanups and performance improvements.
- There's no need to check rval for prop_dictionary_get_*, we are sure the
  objects are there at prop_dictionary_set_* time.
- Avoid two chdir(2) calls per INSTALL/REMOVE run.
- Avoid using access(2) to check for existence of INSTALL/REMOVE scripts,
  just try to run the executable directly and check for ENOENT.
2010-11-06 06:44:00 +01:00
Juan RP
f8629652da Make xbps_file_*_exec() always chroot if uid==0 and /bin/sh (+x, relative) exists. 2010-11-06 06:40:19 +01:00
Juan RP
74500381ff lib/Makefile: remove dup values. 2010-11-04 03:48:23 +01:00
Juan RP
99d38bf176 Rename some files in the library to better describe what they do.
--HG--
rename : lib/config_files.c => lib/package_config_files.c
rename : lib/configure.c => lib/package_configure.c
rename : lib/orphans.c => lib/package_orphans.c
rename : lib/purge.c => lib/package_purge.c
rename : lib/register.c => lib/package_register.c
rename : lib/remove.c => lib/package_remove.c
rename : lib/remove_obsoletes.c => lib/package_remove_obsoletes.c
rename : lib/requiredby.c => lib/package_requiredby.c
rename : lib/state.c => lib/package_state.c
rename : lib/unpack.c => lib/package_unpack.c
2010-11-03 20:08:33 +01:00
Juan RP
8ef8d86c12 Some changes for the XBPS libfetch's frontend code.
1) Raise the cache connection settings to more sane defaults (8->6, 16->2).
2) Introduce xbps_fetch_unset_cache_connection() to drop the caches.
2010-11-03 12:23:57 +01:00
Juan RP
9c60862e0f Pass LDFLAGS after the objects when creating the sharedlib, otherwise
-Wl,--as-needed will think that zlib is not needed.
2010-11-02 07:40:14 +01:00
Juan RP
8051232e82 libxbps: xbps_repository_unregister(): in remote repositories, also
remove the pkg index file and its directory.
2010-10-29 09:10:41 +02:00
Juan RP
49a356df81 xbps_get_pkg_index_plist: fix a memleak. 2010-10-29 08:21:56 +02:00
Juan RP
c49bd80e20 fetch/ftp.c: fix a cast that caught clang via -Wcast-qual. 2010-10-27 00:17:08 +02:00
Juan RP
418ee6eec4 Remove empty dirs while removing obsolete files. 2010-10-27 00:15:59 +02:00
Juan RP
8534b79ffc Prepare for going-to-be-released 0.6.1.
Includes the following change:

* When replacing a package that is going to be updated in the transaction
   do not remove it, just overwrite its files and continue. The updated
   package will find that old files didn't match the SHA256 hash and will
   skip them. This solves the issue of new package updates requiring new
   dependencies with files that were previously stored in the old version.
   For example gtk+-2.20 containing gdk-pixbuf, and gtk+-2.22 requiring
   gdk-pixbuf externally.
2010-10-23 18:09:35 +02:00
Juan RP
bd37736d89 Import and merge libfetch-2.31 from NetBSD pkgsrc. 2010-06-02 23:44:25 +02:00
Juan RP
1bcf9de67a xbps_[gs]et_cachedir(): ensure we don't copy more than buffer's size including NUL. 2010-05-20 15:10:36 +02:00
Juan RP
3038fbed2d lib/repository_finddeps.c: change var names to be more descriptive, add
some more verbose messages.
2010-05-20 07:21:24 +02:00
Juan RP
8f20f4c0c6 libxbps: use OpenSSL SHA256, 5x faster xbps_get_file_hash() implementation.
* libxbps: improved xbps_get_file_hash() to mmap(2) rather than read(2)
  the file we have to process. With mmap'ed files the hash can be
  processed 5x faster than before, or even more in some cases.

* libxbps: switch to OpenSSL SHA256 implementation and remove the one
  previously used. It's faster and OpenSSL is required for libfetch so
  there is not point in using it.
2010-05-20 02:43:56 +02:00
Juan RP
f888b582f9 Added a configure script to emulate GNU autoconf and related changes.
Changes included in this set:

 * Added strlcat() and strlcpy() from OpenBSD, always use them if the
   system does not have them built in.
 * Changed an array of PATH_MAX size allocated in the stack, to a dynamically
   allocated buffer from heap. This should reduce memory usage a bit.
 * Simplify code that implemented a homegrown realpath(3) implementation,
   simply use realpath(3).
 * If compiler supports -fstack-protector, build all code with
   -D_FORTIFY_SOURCE=2 and --param ssp-buffer-size=1 so that all
   buffers are protected.
2010-05-19 22:38:27 +02:00
Juan RP
2be6a7b1bc libxbps: if XBPS_FLAG_VERBOSE is set print to stdout some info about binary
packages found in repositories and its dependencies.
2010-05-18 23:04:14 +02:00
Juan RP
c4e9d86630 libxbps::xbps_remove_obsoletes(): reset a var to 0 in non fatal errors! 2010-05-18 15:33:27 +02:00
Juan RP
fed78b9d6f libxbps: bah do not ignore ENOENT when running INSTALL/REMOVE scripts. 2010-05-18 13:40:51 +02:00
Juan RP
76ca32e76f libxbps: some random bugfixes.
* libxbps: while running INSTALL/REMOVE scripts, do not fail if a script
  returns ENOENT but the script exists; that means the script did not match
  the expected action on its switch statement and the fact can be simply
  ignored.

* libxbps: while upgrading packages and searching for obsolete files,
  do not remove the files that did not match previous SHA256 hash. Also,
  only remove obsolete dangling symlinks.
2010-05-18 07:46:27 +02:00
Juan RP
17b7651137 libxbps: change the epoch char to ':' to differentiate the starting char in pkgname.
Added xbps_get_pkg_epoch(), to get the epoch version string.
2010-05-11 13:38:35 +02:00
Juan RP
a79d7b5884 lib/Makefile: proplib sources need -Wno-stack-protector. 2010-05-11 13:37:21 +02:00
Juan RP
9fe20ccbc8 Also link libxbps to libpthread as it's required now. 2010-05-04 14:57:08 +02:00
Juan RP
af3a2788aa Provide stubs for htobe{32,64}() and be32toh() macros if they aren't defined on Linux.
Tested and verified by Jimmy on xbps@googlegroups.com.
2010-05-04 14:36:32 +02:00
Juan RP
af6949cc43 Apply the commit from portableproplib's git master:
commit b2975842aba26df9b9885ff56b2ff182eda06152
Author: Juan RP <xtraeme@gmail.com>
Date:   Thu Apr 29 18:23:15 2010 +0200

    Remove some dead code found by the LLVM's clang static analyzer.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100429162412-gq0on6wybpoaazgg
2010-04-29 18:24:12 +02:00
Juan RP
28f997bdf7 libxbps: fixed all warnings found by clang.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428213056-p1b7bh0llq8393r0
2010-04-28 23:30:56 +02:00
Juan RP
b77bebe03a xbps_repository_register(): if repository already exists return EEXIST.
Bump XBPS_RELVER to 20100427.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100427160125-3vid17cb7fy4v3gd
2010-04-27 18:01:25 +02:00
Juan RP
9efe430e7c portableproplib can now be built with -Wextra and -Werror, but still needs
-Wno-cast-qual and -Wno-unused-parameter.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100421090458-gh2f2soq8jz25c3x
2010-04-21 11:04:58 +02:00
Juan RP
4bef22e190 Add change from portableproplib's git master to fix a warning with -Wextra:
commit 1296cfff2dd84a09f973bd446a75d5b92001506d
Author: Juan RP <xtraeme@gmail.com>
Date:   Wed Apr 21 05:47:34 2010 +0200

    prop_object: add cast for -Wextra.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100421034857-oxkoa87srg5olsrx
2010-04-21 05:48:57 +02:00
Juan RP
ea0d37a104 Incorporate a commit from portableproplib's git master to fix two warnings:
commit 72e03f757660ed295f81315d871e51abe22df9dd
Author: Juan RP <xtraeme@gmail.com>
Date:   Wed Apr 21 05:07:53 2010 +0200

    Add a cast that fixes a warning in the new zlib code.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100421030905-ixl5tj2to573xnxz
2010-04-21 05:09:05 +02:00
Juan RP
19af2f4af4 xbps_read_dict_from_archive_entry: added support to uncompress plist files in archives.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100421030437-6ihj6lw9vcwy2csp
2010-04-21 05:04:37 +02:00
Juan RP
6256b34ccc Some changes that will appear in 0.5.0:
* Add proplib-0.4.1 source and use it in XBPS. This is to avoid
   an external dependency, so that we depend on the features of the
   internal library. This also means that proplib is not required anymore.

 * Added support to read/write gzip compressed plists by default, thanks
   to proplib-0.4 that gained new functionality.

That means that from now, XBPS will be able to write compressed gzip
plist files for all metadata related work. This will vastly reduce
bandwidth required for fetching remote repo's pkg index file and
binary packages.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100420122238-zcb85rudt9p34e10
2010-04-20 14:22:38 +02:00
Juan RP
fa9d8c718a lib/register.c: add some DPRINTFs.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100313083102-cz4hwmd94uuh5awv
2010-03-13 09:31:02 +01:00
Juan RP
2daffcc768 Avoid endless loop while sorting dependencies due to missing packages.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100129034440-c1c9q0o5b0r1hhh2
2010-01-29 04:44:40 +01:00
Juan RP
df5b800366 Improve previous and only overwrite files while upgrading packages in the
unpack phase.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100128152108-vfs98fe3wvtort4s
2010-01-28 16:21:08 +01:00
Juan RP
61dde1ac02 Always overwrite files while unpacking, this makes the "essential" obj obsolete.
This helps to catch upgrade problems and simplifies some parts of the code.
Bumped XBPS_RELVER because xbps_remove_pkg() has been changed.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100128150850-gcs93su38t6moydn
2010-01-28 16:08:50 +01:00
Juan RP
920db08f5c lib/remove.c: bump copyright year for previous change.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125072838-shechb5lff4y3zyk
2010-01-25 08:28:38 +01:00
Juan RP
1c4d43306a xbps-bin(8): if -f is set, remove files and configuration files even
if its hash doesn't match for the remove and purge targets respectively.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125070948-841kw2r4knz2793e
2010-01-25 08:09:48 +01:00
Juan RP
17d87b3559 Repair upgrades of preserve packages, i.e kernel.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125052754-6xri8lfmykhof5dz
2010-01-25 06:27:54 +01:00
Juan RP
0ebff2c636 lib/plist.c: fix an assertion.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125011444-xzvixcod832ione4
2010-01-25 02:14:44 +01:00
Juan RP
088baa7699 Add defs for default fetch cache connection limits and use them in
xbps_fetch_cache_connection() if 0 is passed as argument.

xbps-bin: enable fetch cached connection when downloading binpkgs.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124153156-4updprik11nwi7c1
2010-01-24 16:31:56 +01:00
Juan RP
801785cbab Add xbps_fetch_set_cache_connection() to set libfetch's cache connection limits.
Use it in xbps_fetch_file(), by default set with 8 and 16.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124144829-hqsr2bl6uflf0nhu
2010-01-24 15:48:29 +01:00
Juan RP
03e8fa53d9 Merge libfetch-2.30 from NetBSD's pkgsrc.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124144753-ni487x8m7r05847b
2010-01-24 15:47:53 +01:00
Juan RP
a0b5e9e83a Rework Makefiles one more time.
- use printf to print commands rather than echo, which it may not have
  support for escape sequences (-e).
- Remove DESTDIR from SBINDIR, MANDIR, LIBDIR and INCLUDEDIR so that
  you can override it.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124125958-8mscedj5ntf288jd
2010-01-24 13:59:58 +01:00
Juan RP
49134b3e62 xbps_find_orphan_packages: improve doxygen documentation.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100123052934-bq05edsd09x3pgds
2010-01-23 06:29:34 +01:00
Juan RP
97266fa921 lib/unpack.c: improve doxygen description.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100123051605-ojcxt8uz91hg1h4k
2010-01-23 06:16:05 +01:00
Juan RP
823fe6d67c Don't export xbps_get_remote_repo_string() to the API, it's only
used internally in the library.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100123051334-8ndutg9gqfljff3p
2010-01-23 06:13:34 +01:00