- 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!
... 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.
* Add NotifyDone() to all repository-attribute handlers and invoke that
to notify any listeners.
* Unify deletion to a single implementation of Delete() in the base
class. Before, the root handler for a repository didn't do that, but
just triggered the notification.
- Factor out functions for refreshing the repositories and
retrieving the package lists.
- Add a background worker thread which handles those tasks and
then notifies the window when the model is ready.
- Check if we already have a repository cache, and if so, skip the
refresh step, unless forced. The latter will eventually be possible
via the UI.
- Also rework things a bit to fix passing the same reference into the
installed package list repeatedly, thus causing only the first package
to be marked as actually being installed.
- MainWindow now attempts to refresh all available repositories and
fetch their respective package lists on startup. Much still remains
to be done, such as factoring this out into a background process so
it doesn't prevent the window from showing, and making the refresh step
optional if we already have valid repository information, but this at
least gets us showing the available package list from HaikuPorts.
- DecisionProvider and JobStateListener will be needed in order to
interact with the package kit in various ways eventually, though
the implementations are currently all empty.
- Adjust HaikuDepot's PackageManager class to inherit from
BPackageManager, so as to be able to actually interface with
the package repositories.
- If a single thread attempted to establish multiple package kit
contexts, it would fail due to a collision between their respective
temporary directories. As such, use both the thread ID and
system_time() as a random elements in the directory name to ensure
this doesn't occur.
* 'update' takes an existing repository and a package list file and then
creates a new repository from that, avoiding expensive
checksum-recomputations where possible
This is especially important for the assembler code in the kernel,
since it enables workarounds for some critical errata related to
exception handling.
Support for 64-bit atomic operations for ARMv7+ is currently stubbed
out in libroot, but our current targets do not use it anyway.
We now select atomics-as-syscalls automatically based on the ARM
architecture we're building for. The intent is to do away with
most of the board specifics (at the very least on the kernel side)
and just specify the lowest ARMvX version you want to build for.
This will give flexibility in being able to distribute a single
image for a wide range of devices, and building a tuned system
for one specific core type.
Now we check whether the virtual address corresponding to the PTE lies
in an allocated virtual address range. This fixes a cause of #8345:
The assertion would trigger when such an entry was encountered. There
might be other causes that trigger the same assertion, though.