Commit Graph

41125 Commits

Author SHA1 Message Date
Ingo Weinhold
2f028e9a2d pkgman install: Add problem solution selection support 2013-04-21 02:48:52 +02:00
Ingo Weinhold
8e6c3631a3 BSolver/LibsolvSolver: Add problem solution selection support
... and re-solving.
2013-04-21 02:48:52 +02:00
Ingo Weinhold
ec41ff587f pkgman install: Refresh repositories first 2013-04-21 02:48:52 +02:00
Ingo Weinhold
adc49c411a pkgman install: better out-of-memory error messages 2013-04-21 02:48:51 +02:00
Ingo Weinhold
7c092d4d86 Add build profile action update-packages
Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.
2013-04-21 01:44:21 +02:00
Ingo Weinhold
eee120f987 pkgman install: Complete basic functionality
Download package files to install from the respective repositories and
use BDaemonClient to perform the package de-/activation. Still missing
is the interactive problem solution support.
2013-04-20 21:40:11 +02:00
Ingo Weinhold
6a1430716c BDaemonClient: Add support for creating activation transactions
* BActivationTransaction:
  - Remove non-trivial constructor.
  - Remove package list parameters from SetTo().
  - Add AddPackageTo{Dea,A}ctivate().
* BDaemonClient:
  - Add CreateTransaction(). It creates a transaction directory and
    initializes a BActivationTransaction. Packages to de-/activate have
    to be added afterwards.
  - Add BCommitTransactionResult::FullErrorMessage().
2013-04-20 21:40:11 +02:00
Ingo Weinhold
69a53ac5b4 Add DownloadFileRequest
Downloads a file and optionally checks its checksum.
2013-04-20 21:40:11 +02:00
Ingo Weinhold
cca3f3b743 package daemon: Fix Volume::_WriteActivationFile()
* Wasn't using the toActivate and toDeactivate parameters, but the
  attributes. Thus failed when called from the
  CommitTransactionHandler.
* Volume::_ChangePackageActivation(): Fix debug output.
2013-04-20 21:40:10 +02:00
Ingo Weinhold
e14b247176 Add StringChecksumAccessor
A ChecksumAccessor implementation for an already known checksum.
2013-04-20 21:40:09 +02:00
Ingo Weinhold
4ea7f45bc5 BRequest: Change attribute protection from private to protected
Particularly fInitStatus is of interest for derived classes.
2013-04-20 21:40:09 +02:00
Ingo Weinhold
be8f5e00f1 BPackageInfo: Add CanonicalFileName()
The name of the package file is not part of the package-info.
CanonicalFileName() constructs the name the file should have (not
enforced anywhere (yet)).
2013-04-20 21:40:08 +02:00
Ingo Weinhold
a3b1c7b96e package daemon: Volume::_WriteActivationFile(): Init _entry 2013-04-20 21:40:08 +02:00
Ingo Weinhold
2e3f5000e3 package daemon: Fix check in Volume::_PackagesEntryCreated() 2013-04-20 21:40:08 +02:00
Ingo Weinhold
e2678ec041 pkgman refresh: Include the repository name in error message 2013-04-20 21:40:07 +02:00
Oliver Tappe
bab6caf3e0 Another lap of updating base packages:
* binutils has now been split off gcc
* adjusted other packages to new naming scheme
2013-04-20 15:32:19 +02:00
Oliver Tappe
74233e2c88 Re-apply cf0a957 for the build-version of libbe.
* fixes build on non-Haiku platforms
2013-04-20 15:16:00 +02:00
Ingo Weinhold
e0d4161d42 pkgman: Make use of BRequest::Process() 2013-04-20 13:28:36 +02:00
Ingo Weinhold
f71be99bd9 BRequest: Add Process()
The method creates the initial jobs for the request and processes the
jobs from the job queue until empty or an error occurs.
2013-04-20 13:26:34 +02:00
Ingo Weinhold
85d2badf00 package daemon: Add support for activation change request
* daemon: Handle new request B_MESSAGE_COMMIT_TRANSACTION. It activates
  and deactivates given sets of packages. The new packages must be
  placed in a directory in the administrative directory. The daemon
  moves them to the packages directory and the deactivated packages to
  a subdirectory it creates. It also save the old activation state
  there.
* Add private BActivationTransaction, describing an activation change
  transaction.
* BDaemonClient: Add CommitTransaction(), which sends a given
  BActivationTransaction as a B_MESSAGE_COMMIT_TRANSACTION request to
  the daemon.

Completely untested yet.
2013-04-20 01:28:18 +02:00
Ingo Weinhold
7a27bcd113 BPackageInfo: Make use of BMessage::{Add,Find}Strings() 2013-04-20 00:33:13 +02:00
Ingo Weinhold
cf0a957ff6 BMessage: Add {Add,Find}Strings()
They add a BStringList to/extract it from a B_STRING_TYPE field.
2013-04-20 00:29:24 +02:00
Ingo Weinhold
3c6784e95c BPackageInfo::Parser: Be a bit stricter wrt. names after all
Also disallow the operator characters in names.
2013-04-19 16:21:42 +02:00
Ingo Weinhold
00b5554e11 pkgman: Print correct error when parsing package info failed 2013-04-19 16:06:11 +02:00
Ingo Weinhold
cba60307b8 BPackageInfo::Parser: Relax package/resolvable name rules
Now we allow any character but '-', '/', and whitespace.
2013-04-19 16:04:27 +02:00
Ingo Weinhold
f16dbba442 Update libsolv package 2013-04-19 01:34:26 +02:00
Ingo Weinhold
b50e5e3307 package[_repo]: Print version correctly
Use BPackageVersion::ToString() instead of assembling the version
string manually. This fixes the incorrect pre-release separator.
2013-04-19 01:31:47 +02:00
Ingo Weinhold
ea8b5c257d BPackageInfo parser: Allow '.' in micro version component
Otherwise we'd have to encode e.g. "cvs-1.12.13.1" differently.
2013-04-18 18:43:47 +02:00
Ingo Weinhold
06b4ebe51c package-infos in tree: use '~' as pre-release separator 2013-04-18 17:50:47 +02:00
Ingo Weinhold
9d81dc7655 BPackage{Info,Version}: Switch to '~' as pre-release separator
Also allow '.' in the pre-release string (as in "alpha4.1") and in
package and resolvable names.
2013-04-18 17:50:47 +02:00
Ingo Weinhold
b7c89d42a6 packagefs: Use '~' as pre-release separator
"[...]" turns out to be not so good an idea after all. In the shell it
would require escaping.
2013-04-18 17:50:46 +02:00
Ingo Weinhold
7fa369956e BOpenHashTable::Clear(): Set fItemCount to 0
If not empty, the count would afterwards be out of sync with reality.
2013-04-18 15:53:34 +02:00
Ingo Weinhold
5e6adff989 BPackageVersion::ToString(): Return empty string, if invalid 2013-04-18 15:12:04 +02:00
Ingo Weinhold
7b2d062147 Enforce current package rules for packages built from tree
* Replace '-' in package name by '_'.
* Use new '[...]' notation for pre-release version component.
2013-04-18 14:44:44 +02:00
Ingo Weinhold
defc1f774a BPackage{Version,Info}: Switch to new pre-release rule
Also add several checks in the package-info parser to enforce the
<alphanum_underscore> requirement of package/resolvable names and
version components.
2013-04-18 14:41:27 +02:00
Ingo Weinhold
d0367de056 packagefs: Switch to new rule for pre-release version part 2013-04-18 14:38:24 +02:00
Ingo Weinhold
ceb18a3777 packagefs: Fix typo in debug output 2013-04-18 14:35:59 +02:00
Ingo Weinhold
a8b23e3ecf pkgman resolve-dependencies: Allow specifying multiple packages 2013-04-16 20:43:20 +02:00
Ingo Weinhold
caba55ee61 Revert to previous libsolv package
In the latest one the version comparison is broken.
2013-04-16 20:34:52 +02:00
Ingo Weinhold
8d85f8e41e Update libsolv package
The Haiku repository support has been upstreamed and the maintainer,
Michael Schroeder, has fixed and improved a few things.
2013-04-16 17:08:45 +02:00
Ingo Weinhold
4210ed011a Fix BMessage::GetInfo() return value check
Since B_OK is 0, the change doesn't affect the semantics.
2013-04-16 17:08:45 +02:00
Ingo Weinhold
88f22c9768 InstallOptionalHaikuImagePackage: Remove first parameter
Instead deduce the file name from the URL. A long overdue change. Avoids
unnecessary name duplication, which only led to errors.
2013-04-16 14:39:31 +02:00
Ingo Weinhold
6185f6e7cc Fix libtool file name 2013-04-16 13:45:33 +02:00
Oliver Tappe
e7563b87c7 Updated several base packages 2013-04-16 11:18:44 +02:00
Ingo Weinhold
202c1daaed BPackageVersion: Rename property release to revision
* ... to avoid confusion with the preRelease property. It's also called
  "revision" in the HaikuPorts recipes.
* Update libsolv package. Was necessary due to the BPackageVersion
  change, but also includes a few more changes.
2013-04-16 00:05:19 +02:00
Ingo Weinhold
bd59e0d00d BPackageInfo: Fix Linux build
... including an actual bug (operator "|" instead of "||").
2013-04-16 00:01:02 +02:00
Ingo Weinhold
e6216e372a Implement getting a BInstallationLocationInfo
* Rename PackageDaemonDefs.h to DaemonDefs.h.
* Replace the MESSAGE_GET_PACKAGES by the new
  B_MESSAGE_GET_INSTALLATION_LOCATION_INFO, which not only returns the
  packages, but also other information about the installation location.
* daemon: Volume: Implement a change count which is bumped whenever
  packages are activated/deactivated/added/removed. Cache the reply
  for a location info request, using the change count to check whether
  it is still up-to-date.
* Add private BDaemonClient for communication with the daemon.
* BRoster:
  - Add GetInstallationLocationInfo() using BDaemonClient.
  - Reimplement GetActivePackages(), using
    GetInstallationLocationInfo().
2013-04-14 17:06:26 +02:00
Ingo Weinhold
d7d9497e31 Add BInstallationLocationInfo 2013-04-14 17:06:26 +02:00
Ingo Weinhold
b2d96da589 BPackageInfoSet::Iterator: Fix NULL pointer dereference
Since the BPackageInfoSet's map is created lazily, it can be NULL when
an Iterator is constructed.
2013-04-14 17:06:25 +02:00
Ingo Weinhold
8a4ebe2c46 Make BPackageInfo archivable 2013-04-14 17:06:25 +02:00