* ExpanderSettings: Use a settings directory "expander" and rename
settings file to "settings".
* ExpanderRules: Read expander rules from "rules" files in the settings
directory, then from files in expander/rules subdirectories of the
installation location data directories, and finally add the built-in
rules. This allows packages to provide expander rules (as already
done by the p7zip package).
* OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
* ImageRules: Remove Expander rule file related rules.
* Deskbar now uses ~/config/settings/deskbar/menu_entries for its menu,
falling back to /system/data/deskbar/menu_entries, when the former
doesn't exist. The latter always exists and is a virtual directory
merging the deskbar/menu subdirectories of ~/config/settings/ and
<any installation location>/data/. So, if a package provides a
deskbar menu symlink, it is added automatically when the package is
activated. The user can add own menu items by putting stuff into
~/config/settings/deskbar/menu/, only use their own organization by
symlinking it to menu_entries, or do fun stuff by making menu_entries
a customized virtual directory.
* HaikuImage: No longer create any deskbar menu symlinks in the user's
settings directory. Instead add them to the Haiku package.
* OptionalPackages: At least for the optional packages that do have
hpkgs, no longer create deskbar menu symlinks in the user's settings
directory.
* Move all Deskbar settings files to ~/config/settings/deskbar/ and
drop the "Deskbar_" prefix.
* Also make use of new build feature rules.
* Since the hacky long_jump_buffer field has been removed from the
jpeg_error_mgr struct in the new package, the structure is now
wrapped in the JPEGTranslator code to achieve the same behavior.
We have to use actual targets that cause the respective download and
extract the packages. Otherwise the build fails when the packages
haven't been extracted yet.
Missed that when adding the script. Therefore it would be created in the
current directory and when building multiple packages concurrently the
script would be overwritten.
The new configure option "--use-xattr-ref" enables an xattr assisted
variant of the generic attribute emulation. Instead of using the inode
ID of a node to identify its attribute directory, we use a reasonably
unique random 128 bit number, which we generate and attach as an
attribute to the node. This way, when a node changes its inode ID
(defragmentation?) or the inode ID of a removed node with a left-over
attribute directory is reused, attributes won't get mixed up.
The old method is still used for symlinks (since on Linux only
priviledged users can write attributes on symlinks), but those usually
only have a rather boring BEOS:TYPE attribute, so mix-ups wouldn't be
that problematic anyway.
* After examining MacOS toolbox roms, I think i've got
this nailed down. The MacOS Toolbox rom contains chrp
code at the top and binary code at the bottom.
* The Raw format for the chrp seemed to cause issues with the
OpenFirmware boot process on some systems. NetBSD uses a '-'
file type.
* The format of the chrp seems a lot more sensitive across machines
than described. Ensure our returns and spaces are even.
* Booting with the 'c' key is still working on my older OpenFirmware
machine with the chrp script. The bitmap logo is a half black, half
white box.
* I removed the &device; alias for now for troubleshooing. It also may
of been causing compatibility issues. More testing is needed.
* It seems like not all NewWorld OpenFirmware
versions support booting from CHRP scripts.
* Move Haiku elf bootloader into bootloader.b
type tbxi. As it is in the blessed directory
it is picked up by cd:,\\:tbxi
* Adjust bootinfo.txt to point to bootloader
&device; ensures that the image can be started
regardless of source media
* Adjust bootinfo.txt to use \\ as base. \\ is an
alias for the blessed folder on the boot media
* Rename ofboot.b to ofboot.chrp to avoid confusion
* Add .txt, .html to hfs.map to identify them properly
* The haiku-boot-cd-ppc.iso now boots on my G3 PowerBook
by holding the 'c' key at startup. The boot menu colors
are incorrect (white background) but it is a step in
the right direction.
* New chrp script. Blank icon for the moment, if someone
could figure out how to make a chrp icon that would be
neat.
* Tested working on qemu and real hardware. Need to test
on a more modern PowerPC Mac however.
* this package wraps the haiku_cross_devel package (i.e. it contains
that package in /develop/cross)
* the wrapper package is meant to be installed into the system
hierarchy, from where haikuporter will fetch the contained package
when needed
* add HAIKU_PACKAGING_ARCH, which is set to the target packaging
architecture
* introduce support for generic package infos, which are package infos
that are the same for all architectures, except for the declaration
of the package architecture itself
* move package info files underneath architecture-specific or generic
folder
* BuildHaikuPackage rule: Create the script that contains the extraction
commands.
* build_haiku_package: Add extractFile() function (stripped down version
from build_haiku_image).
In build_haiku_image the functionality was mainly used to extract the
optional packages, which is no longer done. We still need it e.g. for
the Wifi firmware packages that want to be extracted.
* Add new package haiku_loader.hpkg and move haiku_loader there. The
package is built without compression, so that the stage 1 boot loader
has a chance of loading it.
* Adjust the stage 1 boot loader to load the haiku_loader package and
relocate the boot loader code accordingly.
It allows to control the compression level used for package creation
and update. The default (9) is *very* slow, so developers may want to
use a smaller level during the regular development process to keep
turn-around times low.
* Switch bash, debugger, less, telnet[d] and top apps to use termcap
functionality provided by ncurses lib instead of GNU libtermcap.so;
* NetBSD version of tput utility replaced with ncurses' one. Fixes#9606;
* terminfo database is provided as mandatory package installed during
building target system;
* Remove libtermcap module. The termcap database source and
corresponding build rules are not removed to provide backward compatibility -
until all optional packages will be rebuild on upcoming system version
using terminfo. Note that gcc2 builds may require to provide termcap a bit
longer in the sake of binary compatibility with R5 era apps.
* add vesa.accelerant, vesa driver, ps2, isa, bios, generic_x86 for x86_64 too
* only have reiserfs, firewire, agp_gart targets for x86
* reverted hrev43950, liblocale alias shouldn't be needed anymore
This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.
Also remove some bits of BeOS/Dano/Zeta build support.
* Update MimeSet rule to use the MIME DB the build system creates.
* Add CreateAppMimeDBEntries rule and call it from Link for targets that
might be applications that need to be registered with the MIME DB. For
the target the rule is invoked with it creates a directory into which
the entries for the types to be registered are written. The directory
is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
* AddFilesToContainer: If a target is added that has MIME DB entries,
also add those to the container.
* build_haiku_package: Call mimeset for the package contents.
Since the same driver can be added in more than one category, in a few
cases AddDriversToContainer was invoked twice for the same target. Avoid
adding the driver twice to add-ons/kernel/drivers/bin in such a case.
Didn't really cause any problem, but no need to copy the file twice.
* build_haiku_image: Remove MIME DB creation code.
* Rename beos_mime source directory to mime_db.
* Add rules to build the MIME DB in the source directory's jamfile.
* Add MIME DB directory to haiku.hpkg in data/mime_db.
Instead of the boolean alwaysUpdate, isCDPackage, and stripDebugSymbols
parameters use a uniform flags parameter which can contain any of the
respectively supported flags (alwaysUpdate, cdPackage,
stripDebugSymbols, !stripDebugSymbols).
* Add optional packages Zlib and Zlib-devel.
* Simplify the build feature section for zlib and also extract the
source package.
* Replace all remaining references to the zlib instance in the tree and
remove it.
* Introduce the notion of build feature attributes and add rules
SetBuildFeatureAttribute and BuildFeatureAttribute to set respectively
get a build feature attribute.
* Add rule ExtractBuildFeatureArchives to download and extract archives
and set build feature attributes to extracted entries.
* Add rule UseBuildFeatureHeaders as a shorthand for getting a build
feature attribute and adding it as a system header search directory.
We extract both packages to the same directory now, since the icu_devel
package depends on the base package and contains relative symlinks to
the libraries. ATM that isn't really relevant, since we link directly
against the libraries from the base package, but we might want to
change that eventually.
When invoked for a hpkg only the installation location (i.e. "common"
or "system") has to be specified now and "common" is the default. The
rule uses AddPackageFilesToHaikuImage now.
It points to the settings directory appropriate for global settings.
When a package is installed in ~/config, we cannot use the settings/
subdirectory for global settings, since then the files could clash with
equally named user specific settings files (e.g. in case of
ssh/known_hosts). So we use ~/config/settings/global for global
settings instead.
Apparently it isn't ready yet. I haven't found a single syslog on Trac
that shows a successful initialization of the driver, and on my
machine, where it does that at least, the system freezes during boot.
Also include the freebsd_network and freebsd_wlan headers. Their final
location and which of them to include in the first place might need some
adjustments.
Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.
* ... to avoid confusion with the preRelease property. It's also called
"revision" in the HaikuPorts recipes.
* Update libsolv package. Was necessary due to the BPackageVersion
change, but also includes a few more changes.
* Reorganize things a bit:
- BSolver is now an abstract base class.
- A libsolv based implementation, LibsolvSolver, lives in a new
add-on, which is loaded lazily.
- Get rid of libpackage_solver. Save for LibsolvSolver everything
is moved to libpackage.
- This is a nicer solution for the cyclic dependency caused by
libsolv (libsolvext to be precise) using the package kit for
reading repositories and package files.
* Add a solver result data structure and and an accessor the solver.
* Add problem reporting support to the solver. There aren't data
structures for the problem solutions yet and support for selecting
solutions and re-solving is missing as well.
* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
The directory has to be the main target, since ExtractArchive is
potentially invoked multiple times with different extracted file
targets and the Extract*Archive1 is only invoked the first time.
Tested only with the HPKG actions, but they others should work as
well.
* Updated to version 2.0 of vendor code.
* Reliability improvements in controlling the underlying devices.
* Implement leaving networks.
* Better timeout handling.
* Usability enhancements like cancel on escape, ok button being the
default and the password field having focus on start.
* Storing of the password using BKeyStore.
It is now declared with architecture x86_gcc2, though it probably
has been built with gcc4. That issue has to be solved for real
eventually, since the package resolver won't allow mixing of gcc2
and gcc4 packages.
It's sufficient to simply check if the gcc version is 4 or higher since
we enforce the use of the latest ported compiler for the build anyways,
and these multi-level checks would fail in their current state if gcc
moved to e.g. version 5.0.
Added the optional package for system sounds that
were collected for GCI 2012. Also added the demo
packges to the "contents" at the top of OptionalPackages.
* Tried to use EFI::Header class, but there doesn't seem to be an easy
way to actually hit the disk -- which we'll have to do to find out
how large the GPT table is.
* Initialization of GPT disks is now working which is why I added the disk
system add-on to the image. However, there is a caveat, as the backup
header and table aren't written yet.
* Partitions can be deleted.
* Creating partitions does not work yet, but I don't know yet why; in
theory it could already work.
..and Haiku64Image. While I'm at it split the commands so each letter
in the alphabet gets it's own line(s). This will make these kinds of
changes more atomic in the future.
* Version of Vim package for x86_64 added;
* Version of KeymapSwitcher package for x86_64 added;
* KeymapSwitcher package fixed to preserve Cmd <-> Ctrl swap settings on
keymaps switch. Fixes#9142;
* UnRAR updated from 3.7.8 to 4.2.4, fixed for multibyte characters
support and build for x86_64. Partially fixes#4879;
* Try to keep each renderer designed
the same.
* swrast will build... swpipe won't
build until we have an llvm build
package. (should in a few days once
llvm 3.2 is released)
* libmesa and libgallium no longer live in libGL
* opengl kit gets libglapi for dispatch
* swrast will get libmesa
* swpipe will get libmesagallium + gallium drivers + llvm
Work I did at Begeistert, trying to use the new driver manager and
detecting display controls. It should probably be a good example of
how a new driver is built. It currently loads and detects
display controls correctly but doesn't do any actual work yet.
Not sure when I have the time to finish the driver, it shouldn't be
that hard but I currently have have other priorities. Feel free to
work on it in the meantime.
Got rid of X86_ONLY and friends in HaikuImage, FloppyBootImage, etc.
Instead we use build feature specification annotated lists with
FFilterByBuildFeatures (either explicitly or implicitly where passing
the list directly to the image rules).
I just translated the variables to the respective annotatation in most
cases, though in some cases different annotation would be more correct
(e.g. for the OpenGL stuff).
Provides a simple framework for addressing #3798. The interested reader
may add the build features and add/adjust the annotations accordingly.
An archive (ramfs) to be loaded can be specified in the raspberry pi
config.txt with a certain base address. We can use this to put our
floppy boot archive into memory on startup.
During the start procedure we now map that archive so we can later
load the kernel from it.
* As of Mesa3D 9.0+, GLU is a seperate project
* Our in-tree GLUT builds with GLU-9.0 without
modification.
* We ignore the GLU libraries that Mesa-7.8.2 and
Mesa-8.1-devel provide and use the glu-9.0 ones
* This is kind of a limbo state, but works for now.
* Eventually we will be on Mesa 9.0 (which requires
the external GLU) and Mesa 7.8.2 (which works with
the newer external GLU) and will rip GLU out of the
7.8.2 OptionalBuildPackage.
* I don't *think* we are using the Mesa GLU headers...
we will know for sure when I pull'em out of the
OptionalBuildPackages :D
Currently hardcoded to Verdex target. Code prepared to pick up configuration
details from FDT when implemented. Only enabled in FloppyImage for ARM.
This actually enables the kernel to read the content of the image file
passed using the "-pflash" parameter to QEMU....
* Fixed issue with unwanted keymap switching in case UnZip started in
* background (expanding optional packages during Haiku build, for
* example). UnZip executable has no background application flag
* for unknown reason.
+alpha4