#
a4ae49d5 |
|
01-Feb-2024 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
Package server: turn down logging a bit. This prints two quite long lists of packages that are mixed up with other logs, making them annoying to read. It is also not very useful now that the package server is working quite reliably. Change-Id: Ibf9d5fc3eadc5cef42a78aea831e0a035e248de3 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7366 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
fce7f3a7 |
|
09-Dec-2020 |
X512 <danger_mail@list.ru> |
integrate AutoDeleter's into pointers Change-Id: I6c3925a7aec4d0647c76c2a03aad7b08985d7166 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3490 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
f32d5c5c |
|
03-Jul-2021 |
Andrew Lindesay <apl@lindesay.co.nz> |
Packages: signal added|removed packages Update the package server so that it reports the added and removed packages when it commits a change so that clients are able to pickup and act on the changes without iterating over all of the packages. Change-Id: I6feb52c34fc51a78e2282d8d5ca6cb6775b221ca Reviewed-on: https://review.haiku-os.org/c/haiku/+/4141 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
3376ed1a |
|
02-Feb-2021 |
Alexander G. M. Smith <agmsmith@ncf.ca> |
Package Kit: Proper Installation for First Boot Packages Do the final installation operations for all the packages in the /system/packages directory when the OS is booted for the first time. This will run their post-install scripts, create users, groups and generate settings files (marked with a package version attribute). Previously we just ran all the shell scripts found in the /system/boot/post-install directory (don't do that as much now). Fixes bug #14382 This patch has simpler code flow in CommitTransactionHandler::_ApplyChanges Tested on 32 and 64 bit systems. Once it's official, need to remove the open_ssh redundant post-install script that creates users etc. from HaikuPorts. Now we can notice bugs like package version attributes on settings files aren't fully working. :-) Didn't remove special case for add_catalog_entry_attributes.sh since it still does stuff that the build system doesn't do. Might be able to add that script as part of the Haiku.hpkg. See change 3751 for removing it, https://review.haiku-os.org/c/haiku/+/3751 Change-Id: I3807b78042fdb70e5a79eca2e2a45816ece0236f Reviewed-on: https://review.haiku-os.org/c/haiku/+/2342 Reviewed-by: Alexander G. M. Smith <agmsmith@ncf.ca> Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
228006ea |
|
13-Mar-2020 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
package_daemon: fix path of activated-package files Until now the activated-packages file was not used for anything, because it was not looked for in the correct place. Change-Id: Ib38f28b52e85af6900c0e2b61a9621734428ad25 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2341 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
f6f19105 |
|
15-May-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
package_daemon: Actually return transaction errors instead of OK always. This "fixes" #10959, though now the varying potential causes of that will now print actual errors earlier instead of the error message in that ticket.
|
#
a5fb17bc |
|
29-Jun-2017 |
Sergey Avilov <throttle10@protonmail.com> |
package_daemon: fix an issue with package overwrite When overwriting a package the sequence is: remove old, add new package. On remove we add package to ToBeDeactivated set. This is ok. On adding new package there is a check if package exists or not. On true return. But package still in ToBeDeactivated set. Fixes #10038 Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
|
#
d70f22ac |
|
28-Jun-2017 |
Sergey Avilov <throttle10@protonmail.com> |
package_daemon: fix crash on system update We can't delete old volume state while it's still active and can be accessed until reboot. Fixes #10898 Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
|
#
6f19d31c |
|
13-Jun-2015 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
package_daemon: queue post-install scripts to run after reboot * Creates symlinks to the post-install scripts into the administrative/queued-scripts directory. * Upon reboot, post-install scripts in the queued-scripts are run, and then the symlinks to the scripts removed. * This solves the issue of post-install scripts not being run when the package is installed/upgraded along with the system packages, as experienced with the latest upgrade to the bash package.
|
#
5c9672ed |
|
17-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add watching support for installation location package changes Can be requested/stopped via BPackageRoster::{Start,Stop}Watching(). The notification message has the what code B_PACKAGE_UPDATE and contains fields "event", "location", and "change count".
|
#
0de3219e |
|
14-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Rework error and issue propagation to client * BDaemonClient: Move inner class BCommitTransactionResult to top level and make it public. * BCommitTransactionResult: - Add a whole bunch of specific error code enum values. Such an error code is now the primary error, as opposed to before where we would mix status_t and enum value errors. There's a systemError property of type status_t which may provide additional information, though (depending on the primary error type). - Remove the errorMessage property. Due to mapping all errors to the specific error codes this is no longer necessary. Mixing such a message with another error description is also not very helpful when it comes to localization (still not supported, though). - Add several properties (paths, strings, error codes) that serve as arguments to the primary error and are used by FullErrorMessage(). - Add issues property, a list of instances of new class BTransactionIssue. Those describe non-critical issues (e.g. failed update of a settings file) that occurred in the process of committing the transaction. Those issues should be presented to the user by the package management program. * Exception: Adjust to transport the BCommitTransactionResult properties. * CommitTransactionHandler, FsTransactions, Root, Volume: Adjust to BCommitTransactionResult/Exception changes. * CommitTransactionHandler: Now requires a BCommitTransactionResult to which it adds the issues it encounters. The reply BMessage is no longer needed, though. * Volume: Refactor common code from the three methods that use CommitTransactionHandler into new method _CommitTransaction.
|
#
f307a185 |
|
12-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: Fix destruction order We must destroy the VolumeStates before destroying the PackageFileManager that manages their packages. Kudos to Rene for analyzing.
|
#
c2f3b81d |
|
05-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix manual package [de/]activation CommitTransactionHandler: Since the VolumeState is now always copied (including the contained packages), we can't just use the passed in packagesAlready{Added,Removed} sets, since they refer to the original packages.
|
#
4284b6c9 |
|
02-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BInstallationLocationInfo: Provide more info * If the active state is not the latest state, also provide a package set for it. * If an old state has been booted, provide its name.
|
#
870e93ac |
|
01-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move volume change counter back to Volume
|
#
2dbf8167 |
|
27-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Initial old packages state support * VolumeState: Move locking to Volume. * Package: Pull the file related functionality into new class PackageFile. A Package refers to a PackageFile. A PackageFile can be referenced by multiple Packages. PackageFiles are managed by the new PackageFileManager. * CommitTransactionHandler: Clone the passed volume state. * Volume now manages two VolumeStates: A state reflecting the currently active packages and the latest state (i.e. the one reflecting the situation of the packages directory). Usually the two are the same, unless an old state has been booted. * The client interface hasn't been adjusted yet. Clients only see the latest state.
|
#
09014425 |
|
01-May-2014 |
Oliver Tappe <zooey@hirschkaefer.de> |
Fix #10804: package_daemon crashing in Volume destructor. * use delete [] for fPackagesDirectories, as it has been allocated via array new
|
#
333d4efe |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Extend PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS ioctl Also return the package file names.
|
#
c8dd5bbd |
|
22-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Retrieve all package directories from packagefs
|
#
7a3253f0 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Pass volume state CommitTransactionHandler ... and remove the getter from Volume again.
|
#
7a35d803 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move pending job accounting back to Volume
|
#
8c6e1bf5 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Sever Volume-CommitTransactionHandler friendship Move quite a bit of transaction related methods from Volume to CommitTransactionHandler.
|
#
933e7b32 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move Volume::CommitTransactionHandler to top level Also move constant definitions to Constants.h/cpp.
|
#
273763d0 |
|
19-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move Volume::State to top level ... and rename it to VolumeState.
|
#
2d91773d |
|
18-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjust packagefs ioctl interface to support old states * PackageFSVolumeInfo: Add the directories for all relevant states. * PackageFSPackageInfo: Include the package file's parent directory node ref. Package daemon and package kit still don't support old states yet.
|
#
32cae724 |
|
06-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Handle location info request in app thread * ... instead of queuing it for the job thread. The advantage is that the request will be handled immediately and clients won't have to wait for transactions (which may even require user feedback) to finish. It complicates Volume a bit, since there are now two threads that may access it. The shared data have been moved to a State object which is protected by a lock. * For commit transaction requests check whether another package request is already pending/in progress before queuing a job. Fail immediately, if there is. Fixes bug #10039.
|
#
080ef2e5 |
|
24-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix handling of multiple writable files When attempting to extract the second writable file from the package, we noticed that the root directory already existed and assumed everything had been already extracted. Now we first extract all files and process them one by one afterwards. Fixes #10131.
|
#
a6cf8e1c |
|
24-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix error handling of manually added packages Since we don't move those packages out of the "packages" directory, we don't want to remove their respective object from the hash tables either. Fixes #10102.
|
#
0ea8902c |
|
10-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix typo in error message
|
#
4b7e2196 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
f73f5d4c |
|
29-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Initial changes to remove /boot/common * find_directory() and hard-coded paths use /boot/system instead of /boot/common. * The build system creates the writable directories in /boot/system instead of /boot/common. * The build system no longer installs any packages in /boot/common.
|
#
23733521 |
|
26-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Implement writable files handling * Move Volume::Exception to top level and into own files. * Add utility class FSUtils, move Volume::RelativePath there and add a bunch of FS utility functionality. * Add FSTransaction, a helper class to record FS operations and revert them. * When activating a package we now extract the writable files/directories it declares. The handling is not quite complete: - We don't handle merges yet. I.e. the user will have to do that manually for now. - We don't propagate issues/infos regarding the writable files (e.g. that a manual intervention is required) to the user yet.
|
#
be2254e3 |
|
18-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Handle post-installation scripts, users/groups ... specified by a package when it is going to be activated. We don't try to remove users/groups when deactivating packages yet, nor is the user properly identified in all error cases.
|
#
8b600ba4 |
|
14-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Use CommitTransactionHandler in all cases ... also when only activating/deactivating already moved packages.
|
#
0af009d2 |
|
15-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix use of destroyed objects Fixes #9957.
|
#
33dc65c7 |
|
14-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Ignore only entry events of packages to remove
|
#
38c62dfb |
|
10-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Implement dependency resolution support ... for package changes performed manually by the user (i.e. adding/removing files in a packages directory). Currently only done for the system root. Alternative roots should still work as before, so this shouldn't affect haikuporter (not tested yet). Needs some more work (e.g. the GUI part).
|
#
46d77ed7 |
|
09-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Delay handling node monitor events to group them
|
#
998ef890 |
|
13-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: fix package removal after transaction Volume::_ChangePackageActivation(): Refactoring oversight: fPackagesToBeDeactivated was still used instead of the packagesToDeactivate parameter, so the packages wouldn't be removed from the hash tables when invoked from the CommitTransactionHandler. Fixes #9921.
|
#
600620e7 |
|
06-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package_daemon: create the administrative dir when mounted
|
#
cca3f3b7 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
a3b1c7b9 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume::_WriteActivationFile(): Init _entry
|
#
2e3f5000 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix check in Volume::_PackagesEntryCreated()
|
#
85d2badf |
|
19-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
e6216e37 |
|
14-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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().
|
#
eb13a353 |
|
11-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Rename "packages" subdir "config" to "administrative" ... to avoid the impression that it contains something the user can play with.
|
#
62f7022a |
|
10-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: get active packages list from daemon * daemon: Implement private message protocol to retrieve the active packages. * BPackageRoster::GetActivePackages(): Get the active packages list from the daemon.
|
#
b254217a |
|
10-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Properly qualify private package headers ... instead of adding the private package header directory to the include paths.
|
#
a96531fc |
|
09-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: On changes write a file with the active packages
|
#
92b6d585 |
|
09-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Check volume package dependencies initially Dumps the result (i.e. found problems and solutions) to the syslog. Eventually the user should be asked what to do when inconsistencies are encountered.
|
#
1047e84f |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume::InitPackages(): Fix error case Don't assign fListener, when starting node monitoring fails.
|
#
a6c7f5e3 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: De/-activate all changed packages together * We first process the node monitoring events, collecting the required package activation changes, then apply all changes together. * Change the PackageFSActivationChangeItem/-Request structs. The former is no longer variable in size, which makes it easier to work with.
|
#
def92c01 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs/daemon: Ignore packages/ entries without .hpkg suffix
|
#
91a9b5f2 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: Make sure move entry events don't get split
|
#
9e409614 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add a Listener interface for Volume * This way, Volume doesn't have to know Root. * Suppress listener notifications for node monitoring events when there are were already events pending.
|
#
8fb3930a |
|
07-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Make all work with the packages asynchronous There's now a worker thread per Root that does all the work that can take time. Node monitoring notifications received in the main thread are just pushed into the worker's job queue, so the application looper remains responsive.
|
#
3d53bd47 |
|
06-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add package monitoring and de-/activation * packagefs: Disable (comment out) node monitoring of the packages directory. * package daemon: - When a packagefs volume is added load the respective packages directory and get from the volume which of the packages are activated. - Add node monitoring for the packages directory and activate/deactivate packages as packages are added/removed.
|
#
26296b0a |
|
05-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add the humble beginnings of the package daemon It doesn't really do anything yet save for tracking what packagefs volumes are mounted and unmounted.
|
#
6f19d31cd4d8fda1e85d5a2ab8717263c9b84f34 |
|
13-Jun-2015 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
package_daemon: queue post-install scripts to run after reboot * Creates symlinks to the post-install scripts into the administrative/queued-scripts directory. * Upon reboot, post-install scripts in the queued-scripts are run, and then the symlinks to the scripts removed. * This solves the issue of post-install scripts not being run when the package is installed/upgraded along with the system packages, as experienced with the latest upgrade to the bash package.
|
#
5c9672edebef5990fe9fc81fa917287448ac1ac4 |
|
17-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add watching support for installation location package changes Can be requested/stopped via BPackageRoster::{Start,Stop}Watching(). The notification message has the what code B_PACKAGE_UPDATE and contains fields "event", "location", and "change count".
|
#
0de3219e339506a0c94b584a0df0287414437033 |
|
14-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Rework error and issue propagation to client * BDaemonClient: Move inner class BCommitTransactionResult to top level and make it public. * BCommitTransactionResult: - Add a whole bunch of specific error code enum values. Such an error code is now the primary error, as opposed to before where we would mix status_t and enum value errors. There's a systemError property of type status_t which may provide additional information, though (depending on the primary error type). - Remove the errorMessage property. Due to mapping all errors to the specific error codes this is no longer necessary. Mixing such a message with another error description is also not very helpful when it comes to localization (still not supported, though). - Add several properties (paths, strings, error codes) that serve as arguments to the primary error and are used by FullErrorMessage(). - Add issues property, a list of instances of new class BTransactionIssue. Those describe non-critical issues (e.g. failed update of a settings file) that occurred in the process of committing the transaction. Those issues should be presented to the user by the package management program. * Exception: Adjust to transport the BCommitTransactionResult properties. * CommitTransactionHandler, FsTransactions, Root, Volume: Adjust to BCommitTransactionResult/Exception changes. * CommitTransactionHandler: Now requires a BCommitTransactionResult to which it adds the issues it encounters. The reply BMessage is no longer needed, though. * Volume: Refactor common code from the three methods that use CommitTransactionHandler into new method _CommitTransaction.
|
#
f307a18588cb273d9180d1dc50c6874bee0a1d2c |
|
12-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: Fix destruction order We must destroy the VolumeStates before destroying the PackageFileManager that manages their packages. Kudos to Rene for analyzing.
|
#
c2f3b81d45f9f1a2a891813f9499818b1d72515e |
|
05-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix manual package [de/]activation CommitTransactionHandler: Since the VolumeState is now always copied (including the contained packages), we can't just use the passed in packagesAlready{Added,Removed} sets, since they refer to the original packages.
|
#
4284b6c93ad90effc93057772d6e4595043cbf3d |
|
02-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BInstallationLocationInfo: Provide more info * If the active state is not the latest state, also provide a package set for it. * If an old state has been booted, provide its name.
|
#
870e93acf88329489473abf19e0471454ff9dd2e |
|
01-May-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move volume change counter back to Volume
|
#
2dbf8167fec7282ac384273014903a1bbdfa49e6 |
|
27-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Initial old packages state support * VolumeState: Move locking to Volume. * Package: Pull the file related functionality into new class PackageFile. A Package refers to a PackageFile. A PackageFile can be referenced by multiple Packages. PackageFiles are managed by the new PackageFileManager. * CommitTransactionHandler: Clone the passed volume state. * Volume now manages two VolumeStates: A state reflecting the currently active packages and the latest state (i.e. the one reflecting the situation of the packages directory). Usually the two are the same, unless an old state has been booted. * The client interface hasn't been adjusted yet. Clients only see the latest state.
|
#
090144251db64ff3187b7849a9252fc58beefd41 |
|
01-May-2014 |
Oliver Tappe <zooey@hirschkaefer.de> |
Fix #10804: package_daemon crashing in Volume destructor. * use delete [] for fPackagesDirectories, as it has been allocated via array new
|
#
333d4efe4f2356d9898e1749f49eef5c3931af11 |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Extend PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS ioctl Also return the package file names.
|
#
c8dd5bbd9427cd219a880b00c6f077888a3df6ce |
|
22-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Retrieve all package directories from packagefs
|
#
7a3253f07c1268b15f6a16bf15cb0a8607ade304 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Pass volume state CommitTransactionHandler ... and remove the getter from Volume again.
|
#
7a35d803d00c1e363c41dca1802be1dd24a404ea |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move pending job accounting back to Volume
|
#
8c6e1bf54868b11ec9df027700858e36cb421ac0 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Sever Volume-CommitTransactionHandler friendship Move quite a bit of transaction related methods from Volume to CommitTransactionHandler.
|
#
933e7b3280f1d1ed01b4080288fbe767a2d18379 |
|
20-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move Volume::CommitTransactionHandler to top level Also move constant definitions to Constants.h/cpp.
|
#
273763d052bcb49a153fd8b434006cce9a0fbe63 |
|
19-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Move Volume::State to top level ... and rename it to VolumeState.
|
#
2d91773d2e07651749bacd0b5b144366df9fdc6f |
|
18-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjust packagefs ioctl interface to support old states * PackageFSVolumeInfo: Add the directories for all relevant states. * PackageFSPackageInfo: Include the package file's parent directory node ref. Package daemon and package kit still don't support old states yet.
|
#
32cae72412f4e1503d124ee00a09832022a4840f |
|
06-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Handle location info request in app thread * ... instead of queuing it for the job thread. The advantage is that the request will be handled immediately and clients won't have to wait for transactions (which may even require user feedback) to finish. It complicates Volume a bit, since there are now two threads that may access it. The shared data have been moved to a State object which is protected by a lock. * For commit transaction requests check whether another package request is already pending/in progress before queuing a job. Fail immediately, if there is. Fixes bug #10039.
|
#
080ef2e53ddbb7ead440b0ceb3e348a7303df9e4 |
|
24-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix handling of multiple writable files When attempting to extract the second writable file from the package, we noticed that the root directory already existed and assumed everything had been already extracted. Now we first extract all files and process them one by one afterwards. Fixes #10131.
|
#
a6cf8e1c4ec4a567f828911a80a209d1e2198ff3 |
|
24-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix error handling of manually added packages Since we don't move those packages out of the "packages" directory, we don't want to remove their respective object from the hash tables either. Fixes #10102.
|
#
0ea8902c52a49e303ba4cd208c963802791be752 |
|
10-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix typo in error message
|
#
4b7e219688450694efc9d1890f83f816758c16d3 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
f73f5d4c42a01ece688cbb57b5d332cc0f68b2c6 |
|
29-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Initial changes to remove /boot/common * find_directory() and hard-coded paths use /boot/system instead of /boot/common. * The build system creates the writable directories in /boot/system instead of /boot/common. * The build system no longer installs any packages in /boot/common.
|
#
23733521a7b2d6c16027654c606c6069ef026357 |
|
26-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Implement writable files handling * Move Volume::Exception to top level and into own files. * Add utility class FSUtils, move Volume::RelativePath there and add a bunch of FS utility functionality. * Add FSTransaction, a helper class to record FS operations and revert them. * When activating a package we now extract the writable files/directories it declares. The handling is not quite complete: - We don't handle merges yet. I.e. the user will have to do that manually for now. - We don't propagate issues/infos regarding the writable files (e.g. that a manual intervention is required) to the user yet.
|
#
be2254e30db907dc1a8b26dd3c3b9dde014bb385 |
|
18-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Handle post-installation scripts, users/groups ... specified by a package when it is going to be activated. We don't try to remove users/groups when deactivating packages yet, nor is the user properly identified in all error cases.
|
#
8b600ba48deafbe63747e28b705551b00adb00a7 |
|
14-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Use CommitTransactionHandler in all cases ... also when only activating/deactivating already moved packages.
|
#
0af009d250c4f07925a26d60c735e94746e8de62 |
|
15-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix use of destroyed objects Fixes #9957.
|
#
33dc65c7ff8c5878d83b545629c4db4dd67546bf |
|
14-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Ignore only entry events of packages to remove
|
#
38c62dfb8b5acffe9373b19e087d037d38a281a5 |
|
10-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Implement dependency resolution support ... for package changes performed manually by the user (i.e. adding/removing files in a packages directory). Currently only done for the system root. Alternative roots should still work as before, so this shouldn't affect haikuporter (not tested yet). Needs some more work (e.g. the GUI part).
|
#
46d77ed7da9f732996740c90ff0ce2e93869f650 |
|
09-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Delay handling node monitor events to group them
|
#
998ef890654e102c89634fbc9e40eb605878542f |
|
13-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: fix package removal after transaction Volume::_ChangePackageActivation(): Refactoring oversight: fPackagesToBeDeactivated was still used instead of the packagesToDeactivate parameter, so the packages wouldn't be removed from the hash tables when invoked from the CommitTransactionHandler. Fixes #9921.
|
#
600620e7907793cd45550fac400f825690737ab0 |
|
06-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package_daemon: create the administrative dir when mounted
|
#
cca3f3b7431cf5e22fa612b171d04933197af3a9 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
a3b1c7b96e47e5129c83a5dae6e3b17d1ad06b19 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume::_WriteActivationFile(): Init _entry
|
#
2e3f5000e34297071e630ab70303026715021e31 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Fix check in Volume::_PackagesEntryCreated()
|
#
85d2badf007cb152215485db7916578ed6700504 |
|
19-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
e6216e372af01cc90339fe7afb70c113c99974bd |
|
14-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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().
|
#
eb13a353e39799c58dd2a8704e8553ba18a7b1d3 |
|
11-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Rename "packages" subdir "config" to "administrative" ... to avoid the impression that it contains something the user can play with.
|
#
62f7022a8294bbd5407826c0bb8b071975ed90d5 |
|
10-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: get active packages list from daemon * daemon: Implement private message protocol to retrieve the active packages. * BPackageRoster::GetActivePackages(): Get the active packages list from the daemon.
|
#
b254217a09a45fe317ae8b8e9ad9a8ddfc3df4b0 |
|
10-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Properly qualify private package headers ... instead of adding the private package header directory to the include paths.
|
#
a96531fc511e210c34cb054310b61b560a82a06c |
|
09-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: On changes write a file with the active packages
|
#
92b6d58598fb09b38150027f6cbfa38fd5fb53e6 |
|
09-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Check volume package dependencies initially Dumps the result (i.e. found problems and solutions) to the syslog. Eventually the user should be asked what to do when inconsistencies are encountered.
|
#
1047e84f39654c67e966afd0b41d3488d8d9b09d |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume::InitPackages(): Fix error case Don't assign fListener, when starting node monitoring fails.
|
#
a6c7f5e33c2a4e8596b2901d2fbecdd579d47b36 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: De/-activate all changed packages together * We first process the node monitoring events, collecting the required package activation changes, then apply all changes together. * Change the PackageFSActivationChangeItem/-Request structs. The former is no longer variable in size, which makes it easier to work with.
|
#
def92c01eec2711ecf3bc42c64d92be7c90c650f |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs/daemon: Ignore packages/ entries without .hpkg suffix
|
#
91a9b5f2765833cec3bfeda5f4962f45931dbe9d |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Volume: Make sure move entry events don't get split
|
#
9e4096146fa5a20df2fc06301683853029851163 |
|
08-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add a Listener interface for Volume * This way, Volume doesn't have to know Root. * Suppress listener notifications for node monitoring events when there are were already events pending.
|
#
8fb3930a4290eb1156bbe53fba7947b0cd2be237 |
|
07-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Make all work with the packages asynchronous There's now a worker thread per Root that does all the work that can take time. Node monitoring notifications received in the main thread are just pushed into the worker's job queue, so the application looper remains responsive.
|
#
3d53bd473b49aa91a9611dfe6500492500e1e8c6 |
|
06-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add package monitoring and de-/activation * packagefs: Disable (comment out) node monitoring of the packages directory. * package daemon: - When a packagefs volume is added load the respective packages directory and get from the volume which of the packages are activated. - Add node monitoring for the packages directory and activate/deactivate packages as packages are added/removed.
|
#
26296b0aa4ddcc1b8baf1e6c380d0f8634730068 |
|
05-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add the humble beginnings of the package daemon It doesn't really do anything yet save for tracking what packagefs volumes are mounted and unmounted.
|