* 'jam build-remote-test-repository' can now be used to create a
remote repository which will then be used by the build system,
such that the resulting package set can be tested.
* Instead of copying over the repository info from the source
repository, we need to read the repository info from a repository
info file corresponding to the target repository. Among other
problems, copying over the repository info from the source repo
put the wrong repository URL into the new repository, which in
turn caused the package resolution done by Haiku's build system to
fail (it tried to download packages from the wrong URL).
Additionally, I have updated the incorrect repository on the server, so
building Haiku-x86 should work again.
* acpi_button and acpi_lid support select/deselect hooks.
* power_daemon now uses a thread waiting for lid or power button events.
* a power button event is still hardcoded to a shutdown.
* a lid event only displays a message.
In case something went wrong, call unlock_memory_etc() with the rounded
base address instead of with the original address. If the original
address wasn't page aligned, unlock_memory_etc() would otherwise try to
unlock an additional page.
- Also reset package state in the BFatalErrorException case.
- Show actual alerts for fatal install/uninstall errors rather than simply
printing them to the console.
* Inode:
- Rename {Enable,Disable}FileCache() to {Create,Delete}FileCache()
and IsFileCacheDisabled() to HasFileCache(), since that is what they
actually do. DeleteFileCache() now also sets the attributes to NULL,
which makes fCached superfluous.
- Introduce {Enable,Disable}FileCache(), which actually enable/disable
the file cache. Use those methods for handling O_NOCACHE.
* ext2_free_cookie(): Reenable the file cache in case of O_NOCACHE.
Fixes crash when O_NOCACHE was used, since the file cache was deleted
without clearing the attribute and Inode::ReadAt() would use the deleted
object afterward.
* The binary search was somewhat broken.
* Restructure a bit so that only the binary/linear search itself is
handled separately. The handling afterwards is common again.
* Fix sparse block handling:
- There can be sparse blocks before the first extend.
- Set the return parameter _count in this case as well.
- Set the return parameter block to 0 instead of 0xffffffff. That's
what ext2_get_file_map() expects.
Fixes an infinite loop in ext2_get_file_map() when sparse blocks are
involved, due to previously returning a wrong block and a 0 count.
Ticket #9274 may be related.
* Check whether the vectors we get are sparse file vectors and satisfy
them immediately instead of creating a subrequest. Untested, since the
API isn't used by ext2 as it should be.
* Add error == B_OK to the condition of the outer loop.
Besides that it failed to actually iterate through the vectors, it
shouldn't try to clear physical memory in the first place. The iovecs
refer to virtual address ranges. Rename it to zero_iovecs() to avoid
confusion.
- Move InstallPackageAction's _FindPackageByName to PackageAction, so
UninstallPackageAction can make use of it as well.
- Rename DownloadProgressListener to PackageProgressListener and add
hooks for the package manager's DownloadProgressComplete,
StartApplyingChanges and ApplyingChangesDone events.
- InstallPackageAction implements DownloadProgressComplete in order to
gather all dependent packages that were downloaded as part of the
installation request. These are then set to active, or reset to available
depending on the outcome. Fixes the problem reported in #10189.
- UninstallPackageAction now implements the aforementioned ApplyingChanges
hooks in order to track all packages to be uninstalled as part of the
transaction. Upon completion, they are all accordingly marked as Available.
Previously the state wasn't correctly reset for any dependent packages that
were also removed as a consequence of the requested package's removal.
* App tried to create symlink in folder ~/config/boot/launch,
what throw an error, because this folder is read-only now.
* Now it creates such in ~/config/settings/boot/launch.
Signed-off-by: Matt Madia <mattmadia@gmail.com>
* It uses physical pages directly, not wasting kernel address space.
* The user interface is somewhat crude, it uses writes to a control
device (output to serial debug/syslog), e.g.
echo register 4g > /dev/disk/virtual/ram/control
to register a 4 GB RAM disk. It is published under
/dev/disk/virtual/ram/<index>/raw and can be formatted with DriveSetup
like any other disk. Unregistering is broken ATM.
* It's not on the image by default, but can be added via
AddNewDriversToHaikuImage disk virtual : ram_disk ;
* I found it quite useful when working on large HaikuPorts ports.
E.g. mounting a RAM disk at the port's work directory shaves a lot of
time off disk heavy operations. Obviously one shouldn't let changes
lie around on it without back up.
Set HAIKU_CONTAINER_SYSTEM_DIR_TOKENS for the Haiku image to "system
non-packaged". All the rules using the variable would put stuff in
directories that will be read-only in the end (and aren't used anymore).
This way they can be used in UserBuildConfig.
Simplify the code, which also fixes the bug that the I/O context's root
was ignored when it was a mount point, thus resulting in globally rooted
paths in this case.