* 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.
* __pthread_destroy_thread() will in turn free the pthread_thread object.
* this fixes a leak of 2072 bytes on each thread construction/destruction
and #9945. MediaExtractor spawns a thread on construction, which leaked
its pthread_thread object on destuction.
- PackageAction now stores/returns a type code indicating the embodied
action. Adjust PackageActionView accordingly in its comparison of
the old/new package action list.
- If available, show the package's copyright information for the
publisher rather than the vendor, as the latter simply indicates
the maintainer of the repository rather than the actual developers
of the software contained in the package.
This allows FreeBSD with a pure /bin/sh (not a symlink to /bin/bash) to build
the cross-tools to a dedicated directory, outside of the generated folder.
- BPackageManager doesn't (currently) support being reused for multiple
differing actions, so instantiate it on the fly for each action to be
performed.
- As such, pull the package action worker out of PackageManager and into
MainWindow. Define abstract interface PackageActionHandler for other
parts of Depot to use to instruct it to queue actions.
- Adjust other parts of code to take the above into account.
If the alternate signal stack is used randomize the initial stack
pointer in the same way it is randomized on "normal" thread stacks.
Also, update MINSIGSTKSZ value so that regardless of where the new
stack pointer points to there is at least 4k of stack left.
- MainWindow now listens for package installation state changes so
it can keep Model's package location lists in sync.
- PackageListView now updates its status column on package state changes.
- PackageInfoView now updates the available action list when package
installation state changes.
- PackageManager populates the expected user-specified install/uninstall
package sets for ProblemWindow so that one can properly filter those out.
There still remain some issues with the installed locations for ResultWindow
not being entirely correct though, which causes issues for package
uninstallation.
* imported asc-num.txt as a reference, was used to generate the asc sense table.
* use the sense asc and key tables to know which action and status codes are
to be applied.
* tested with an hard disk and a dvd reader.
* these tables could be reused by the scsi_periph module.
- Fix passing the force parameter to the refresh worker. This makes the
refresh depots menu item actually work.
- Make failure messages regarding depot initialization/refresh visible to the
user.
Taking a page from HaikuDepot's book, remove the border from the tab
view and set the inset to 0 in order to position the tabview right on
the window's edge. Looks a bit better than the previous method since
the tabview border appeared to extend the thickness of the window
border.
- The previous solution was applying source path mappings too early, with
the consequence that the file manager would incorrectly adjust some
relocations due to not being aware of the presence of all the possible
parent paths yet, leading to the observed "Source not available" behavior
when restoring some combinations of mappings. We now lazily apply the
mappings at the point when the source code itself is actually requested
to be loaded, which doesn't occur until after all image loading, etc.
has completed, so the information map is complete.
- There seem to be cases where the file manager is incorrectly reapplying
stored mappings, resulting in no source being displayed. As such, the
functionality is being disabled until the cause can be found.
- Add package installation state to PackageInfo and update accordingly
in Model.
- Add package listener event for installation state change (not yet used).
- PackageListView now fetches installation state from package and displays
accordingly.
- Now actually checks if and where the package is installed, and
correspondingly returns back the appropriate install/uninstall
actions. Consequently, HaikuDepot now allows uninstallation of
(non-system) packages.
- Add background worker thread for asynchronous processing of
package actions.
- Implement InstallPackageAction. As such, installing packages now
actually works.
- Wrap requests in exception handlers, as the package manager uses those
for various error cases. Fixes several cases of HaikuDepot spontaneously
closing if a problem occurred. Still TODO: user error reporting, errors
are currently reported on the console.
It references a non-existing device in the aliases, just comment
it out until we sort out with upstream what's up.
(Since we've also added PXA devices to the Verdex definition we
need to chat with them anyway)
Both for the rPI and the Verdex target we now have FDTs. The verdex
DTS is homebrew, the pxa DTSIs come from Linux and should be kept
in sync.
The rPI DTS and Broadcom DTSI come from FreeBSD HEAD, and should
ofcourse also be kept in sync.
One global new Jam rule has been introduced for handling DTS
compilation, aptly named CompileDTS....
More coming!