Commit Graph

47117 Commits

Author SHA1 Message Date
Ingo Weinhold
a87c7d67e3 Don't use BPackageKit::BPrivate; avoids clashes 2013-09-10 19:14:18 +02:00
Ingo Weinhold
43bd5a49c7 <package/Request.h>: Don't leak JobQueue into public namespace 2013-09-10 19:14:17 +02:00
Ingo Weinhold
cf3bb0d753 BPackageManager: Abstract installed repository initialization
* Rename TransactionHandler -> InstallationInterface and
  DaemonClientTransactionHandler -> ClientInstallationInterface.
* Add InstallationInterface::InitInstalledRepository(). Use in
  _AddInstalledRepository() to get the repository packages instead of
  using the package roster. The ClientInstallationInterface
  implementation does it that way.
2013-09-10 19:14:17 +02:00
Ingo Weinhold
c138f1f2af BRepositoryBuilder: Add constructor for pre-init'ed repository 2013-09-10 19:14:17 +02:00
Oliver Tappe
a4b13eda69 Increase size of bootstrap image to 20 GB. 2013-09-07 15:25:55 +02:00
Oliver Tappe
797c1a7590 Update x64_64 to current state of things. 2013-09-07 15:25:15 +02:00
Oliver Tappe
a84cf45805 Add missing search path for <build>package_repo. 2013-09-06 22:49:08 +02:00
Oliver Tappe
818ed1eaf0 Remove blocks for secondary packages for x86_64. 2013-09-06 17:21:35 +02:00
Oliver Tappe
fb99605f49 Handle rigged source packages when determining port name.
* I'm not sure this makes much of a difference, but I thought it's 
  better to play it safe.
2013-09-02 12:03:06 +02:00
Oliver Tappe
64c4bd1dc2 2nd attempt at fixing build of btrfs and packagefs.
* adding zlib to the kernel unfortunately introduces a cyclic dependency
  with respect to the zlib, haiku and haiku_devel packages (AFAICS)
* circumvent this by building kernel_zlib as a static library again,
  this time with PIC, such that it can be used by kernel add-ons
2013-09-02 12:03:05 +02:00
Oliver Tappe
0cb3f70926 Revert "Fix build problems of btrfs and packagefs for x86_64."
This reverts commit f272e63f393449d3a816970ca632764895a78cd6.
2013-09-02 12:03:05 +02:00
Ingo Weinhold
83462cc28d Refactor reusable pkgman code into libpackage
* Move RepositoryBuilder class to libpackage and add B* prefix to name.
* Pull BPackageManager class out of PackageManager and move to
  libpackage. The base class is customizable via three handler objects
  responsible for transaction handling, request execution, respectively
  user interaction.
* Reorganize _ApplyPackageChanges(): Now we first prepare the
  transactions for all affected installation locations (downloading
  files etc.) and then commit them.
2013-08-31 21:19:07 +02:00
Ingo Weinhold
a0cb235c0e pkgman: Use BPackageInfo::FileName() instead of Canonical*() 2013-08-29 23:19:14 +02:00
Ingo Weinhold
dda51ada4c package daemon: Package: Set the package info file name 2013-08-29 23:19:14 +02:00
Ingo Weinhold
6692db5c1c BPackageInfo: Add fileName property
The property is archived and unarchived, but otherwise not yet stored.
If not set, FileName() returns CanonicalFileName(). Can be used for
packages like haiku.hpkg etc. that don't have a properly qualified file
name (yet).
2013-08-29 23:19:14 +02:00
Ingo Weinhold
08fb013f56 pkgman uninstall: Verify more specific locations
... after having determined the packages to remove from the selected
installation location. This uninstalls packages from the more specific
locations when their dependencies have been removed.
2013-08-29 23:19:14 +02:00
Ingo Weinhold
7af664c9d8 LibsolvSolver: change handling of fInstalledRepository
We update/set it in _AddRepositories() instead of in AddRepository(). In
code needing it earlier _InstalledRepository() can be used.

This change allows calling to SetInstalled() on a repository that has
already been added to the solver.
2013-08-29 23:19:13 +02:00
Ingo Weinhold
a54a50b48e pkgman: add support for [un]installing/updating in system 2013-08-29 23:19:13 +02:00
Oliver Tappe
c92aabd434 Fix build of pkgman with gcc2.
* I have no idea why, but gcc2 considers BSolverRepository* and
  PackageManager::InstalledRepository* as distinct pointer types, which
  it doesn't like to compare without a cast. Circumvent by static 
  casting to BSolverRepository*.
2013-08-29 23:11:14 +02:00
Oliver Tappe
c5c787ea41 Fix build problems of btrfs and packagefs for x86_64.
* Both filesystems used to link to a static kernel-zlib, which 
  was being built with -fno-pic. This doesn't work on x86_64 as the 
  filesystem add-ons are meant to be relocatable, which requires their 
  code to be compiled as position independent.
  Solve that by moving zlib into the kernel, so any add-on can just use
  it from there (packagefs is mandatory, so we can't really do without 
  zlib anyway).
2013-08-29 22:44:50 +02:00
Oliver Tappe
d1246f33f0 Drop use of non-existing variable in KernelAddon rule.
* TARGET_KERNEL_PIC_FLAGS was probably meant to be 
  TARGET_KERNEL_PIC_CCFLAGS at the time this had been added in 2005.
  As correcting the name would mean that kernel add-ons would be 
  compiled such that they wouldn't be position independent, dropping
  the variable makes more sense (which is just a cleanup and doesn't 
  change anything due to that variable being always empty)
2013-08-29 22:44:50 +02:00
Oliver Tappe
1e6177c22e Fix broken build of package kit (due to warnings) for x86_64. 2013-08-29 22:44:50 +02:00
Oliver Tappe
71046951f8 Fix build of pkgman on x86_64 by use of B_PRI... define. 2013-08-29 22:44:49 +02:00
Oliver Tappe
03aa9653d0 Move UsePrivateSystemHeaders into arch-specific block. 2013-08-29 22:44:49 +02:00
Ingo Weinhold
3381a1bf81 pkgman uninstall: improve correctness
... with respect to inter-installation-location dependencies. E.g.
uninstalling a package from common should only uninstall packages
depending on it, when system doesn't still provide those dependencies.

We don't consider uninstalling packages from more specific installation
locations when dependencies are uninstalled from a more general one yet.
2013-08-28 13:14:02 +02:00
Ingo Weinhold
89cb001511 BSolver::VerifyInstallation(): Add flags parameter
Only flag ATM is B_VERIFY_ALLOW_UNINSTALL. It tells to solver to suggest
uninstalling packages when necessary instead of considering such a case
a problem.
2013-08-28 12:55:47 +02:00
Ingo Weinhold
75d15eb4c2 BSolver: Extend FindPackages() functionality
* Add flag B_FIND_INSTALLED_ONLY to only return installed packages.
* Add FindPackages() version that finds packages like Install() or
  Uninstall() do.
2013-08-28 12:47:58 +02:00
Ingo Weinhold
220b5e1f29 BSolverRepository: Add {Remove,Delete}Package() 2013-08-28 12:44:14 +02:00
Ingo Weinhold
682bf414da BSolverRepository: make polymorphic 2013-08-28 12:43:42 +02:00
Ingo Weinhold
2ada08d23a LibsolvSolver: Automatic whitespace cleanup 2013-08-28 03:22:34 +02:00
Ingo Weinhold
92693623e2 package daemon: DebugSupport.h: fix (64 bit) printf() formats 2013-08-28 01:08:15 +02:00
Ingo Weinhold
86297ca0ff actions DownloadLocatedFile: fail, if wget fails 2013-08-28 01:07:17 +02:00
Ingo Weinhold
106d4015f2 rule ArchitectureSetup: Remove superfluous arch macro definition
The macro for the architecture is already defined by the compiler.
2013-08-28 00:46:12 +02:00
Ingo Weinhold
3db97b7688 Enable -Werror for package_repo and pkgman 2013-08-28 00:36:28 +02:00
Ingo Weinhold
90f9f1392b pkgman install: Add base package support
If any of the packages to install has requires a base package, that is
installed in a more general installation location, we copy the package
to the target installation location. Ideally we'd hard-link, but BFS
doesn't support that. Symlinks would be a small nightmare to maintain.

We might want to choose the installation location intelligently
depending on the base package requirement -- e.g. install curl_devel in
system rather than common, since curl is installed in system -- so we
can avoid duplicating packages.
2013-08-28 00:36:28 +02:00
Ingo Weinhold
617be97d8e Add private storage kit class BCopyEngine
It provides the functionality to copy file system entries (also
recursively). The code originates from the copyattr sources. Some
copyattr specific functionality has been removed and the code has been
adjusted for library use (i.e. no exit()s or fprintf()s). An optional
controller object can be set to customize the behavior.
2013-08-28 00:36:28 +02:00
Ingo Weinhold
bc0491ae52 BPackageInfo: Add Matches()
Checks whether the package satisfies the given
BPackageResolvableExpression.
2013-08-28 00:36:28 +02:00
Ingo Weinhold
48e17c15bc BPackageResolvableExpression: Add Matches()
Checks if the given BPackageResolvable respectively the BPackageVersion
pair satisfies the expression.
2013-08-28 00:36:27 +02:00
Ingo Weinhold
39d0e79f2b copyattr: Fix error output 2013-08-28 00:36:27 +02:00
Ingo Weinhold
be3833c9a4 BString: Add SetToFormatVarArgs() 2013-08-28 00:36:27 +02:00
Oliver Tappe
af0200d6ef Fix build problem in glue code for x86_64. 2013-08-27 23:30:23 +02:00
Oliver Tappe
eb658691e9 Add definitions for x86_64 repositories and package infos. 2013-08-27 23:30:23 +02:00
Oliver Tappe
1af14947fd Add missing case for x86_64 as host CPU architecture. 2013-08-27 23:30:23 +02:00
Ingo Weinhold
a1e681690c Rework rule CopySetHaikuRevision
* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
  is built only once.
* Make determine_haiku_revision an actual shell script and simplify
  it a bit.
2013-08-26 16:38:50 +02:00
Ingo Weinhold
ce4f367692 pkgman: auto-refresh repositories only for update/install 2013-08-26 13:03:12 +02:00
Ingo Weinhold
8b26ef6779 pkgman: PackageManager: Use flags instead of bools in ctor 2013-08-26 12:57:41 +02:00
Ingo Weinhold
c4ce29a67e pkgman search: enable search in ~/config 2013-08-25 18:41:56 +02:00
Ingo Weinhold
f118c41467 pkgman [un]install: fix option '-H' 2013-08-25 18:41:29 +02:00
Ingo Weinhold
e64db4da44 Also mount the packagefs at ~/config 2013-08-25 18:23:11 +02:00
Ingo Weinhold
0214aefd58 pkgman search: add -a/--all
Can be specified instead of a search string. Lists all packages.
2013-08-25 17:19:14 +02:00