A hpkg will be created locally, which contains the firmwares. This hpkg will
be copied to system. IIRC, the firmware must live in their respective
subdirectories.
To note, once the approve_license flags are implemented on the end-user
applicacation side, the Intel ipw2100 and Intel ipw2200 could be moved
to a separate package. However (and IIRC) the Broadcom involves using a closed
binary blob, that should not become a pre-made package.
README.iwlwifi-3945-ucode and LICENSE.iwlwifi-3945-ucode were mistakenly marked
as an executable. Was uncertain if iwlwifi-3945-2.ucode should or should not
be marked as an executable and was unchanged.
- A package can potentially be installed in more than one location. As
such, track all of them on PackageInfo (not yet exposed/used).
- Rather than attempting to use location, check the package's flags to
see if it's a system package. If so, disallow deinstallation. Not quite
complete yet though, as we still needs to also resolve the deps of any
system package, and likewise disallow removal of those.
- If a package was installed, but didn't have a corresponding remote
repository package, it would have been missed in the list. Detect these
and create a special local depot object to house them, so they also make
their way into the visible package list.
Thanks to diver for reporting the discrepancy.
- Since the package list is built lazily in the background, the list of
depots won't actually be available immediately at construction time.
Defer building the menu for both that and the categority list until the
model has actually been populated.
This makes package management operations that require a repository cache
immediately usable (even offline). Also makes sense for the
update-{all,packages} build profile actions, since those update the
repository config which would otherwise no longer match a potentially
existing cache.
... before copying the new contents to the image. This caters to the
typical use case of updating an existing Haiku, making manual
intervention to get the new packages activated unnecessary. The downside
is that manually added packages will be removed as well.
Should already have been done back when the semantics for the
B_COMMON_*DIRECTORY constants was changed.
Currently old and new version behave the same. So this is just a
contingency measure ATM.
* This does intentionally break source compatibility, so that a review
of concerned code is forced.
* Binary compatibility should be maintained in most cases. The values
of the constants for the writable directories are now used for the
writable system directories. The values for the non-writable
directories are mapped to "/boot/system/data/empty/...", an empty or
non-existent directory, so that they will simply be skipped in search
paths. Only code that explicitly expects to find something in a
B_COMMON_* directory, will fail.
If additional parameters are specified, only those targets are built,
but under the influence of the build profile. E.g. "jam @alpha-raw build
haiku.hpkg" builds the package with SSL support, while "jam haiku.hpkg"
would build it without (unless explicitly enabled in UserBuildConfig).
* 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.
* 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.
* The default is to use IPv6 addresses, but these don't quite work yet
in Haiku.
* Also, some debug messages improvements and fix a crash when the
payload has % inside it (parsing it as a printf string isn't such a
good idea)