Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
151 check-ins using file genode-haiku/misc-apps/pulse/Prefs.cpp version c9e170b2a1
|
2024-09-03
| ||
| 16:52 | -- Fix nano3d deployer, Add bubble-universe deployer, clean up (before upgrading to Genode 24.08) -- Fix/Improve GeDepot: * recently changed nano3d deployer to show off the new 'override config' feature ; * realized after testing it no longer works ; * we have to make sure the invoke gets routed to InitPilot (not DeployPilot), with the exe path (instead of the runtime path) ; * also added "bubble universe" package deployer (see the discourse forum for background) ; Prepare for Jam refactor of IPC: * create rule AddStackBeIpc ; * will use it later in the rest of the repo to refactor compositions that involve broker and registrar ; Various C++ and Jam clean-ups: * jam: add CheckExternalFile rule, for verifying that a given file outside of the repo (non tracked) is patched as we require ; * jam: refactor rules, clean-up, silence Gcc -Wno-missing-field-initializers in app/ and interface/ ; * fuse-ntfs: fix-up sizeof(Dirent), clean-up logging ; * PartitionSetupGPT: refactor terminateChild() ; -- TESTS -- * tested GeDepot install/deploy, looking good (nano3d works again, and no regression to be seen in fuse/FS) ; * bubble-universe downloads/launches quick and looks great, thanks Norman! ; check-in: ff34427237 user: user tags: trunk | |
|
2024-08-15
| ||
| 14:08 | -- PartitionSetupGPT now passes unit testing for simple NTFS partitioning use-case -- jam: build mkntfs: * main Jamfile: add building of src/lib/ntfs-3g/ntfsprogs/mkntfs ; * libntfs Jamfile: unix_io.c needs "smarter" patching of its fcntl() usage -- we can no longer provide a custom fcntl() since in this case we link against Genode libc, so now we use #define tricks instead ; * remove the custom fcntl() implementation, no longer used ; PartitionSetupGPT: complete "vertical slice" use-case: * (use that name instead of "DriveSetup" to avoid confusion with upstream app) ; * add "Add partition", "Format" buttons, confirmation BAlerts, gray-outs to guide the user, etc ; * implement using gpt_write, launched in InitPilot ; * implement using mkntfs, launched in InitPilot ; * also take charge of launching/quitting part_block in InitPilot ; * lots of things are hardcoded (partition size: 100 GiB etc), in theory this should suffice for station usage ; InitPilot support: * hack support for mkntfs (needs routing of "Block" to part_block) ; GeDepot tweak: * profit from the new InitPilot ability : launch nano3d with a custom config ; -- TESTS -- * In QEMU, PartitionSetupGPT now allows the user to wipe, partition, and NTFS-format a test.raw stand-in file ; * not clear yet how to integrate PartitionSetupGPT into a real-world distro, where PartitionSetupGPT wouldn't be the one in control of ahci_drv and part_block ; check-in: 2c0fddbc17 user: user tags: trunk | |
|
2024-08-03
| ||
| 17:21 | -- Add custom-XML ability to Init launcher ; Fix depot-deploy regression -- Add "custom XML" ability to the launch chain: * on the Genode side, we preserve depot_deploy's innard which deploy Genode apps with runtime XML code that is customized to each depot package ; * on the Be side, we used to have a "one size fits all" runtime XML <start> node, with some minimal hacked-in variance ; * now on top of that, we also support passing customization fields (RAM quota and <config> node) ; * the new code path starts in the BRoster.Launch() API, goes through registrar, then lands in new Toggle_Xml() ; Fix regression when launching Falkon etc: * a recent commit tried routing the "clipboard" ROM ; * that ends up crashing cahed_fs_rom with Filesystem::Invalid_handle exception ; * commented out for now (clipboard wasn't configured well enough to work anyway) ; Misc: * fix non-deterministic return value in BMessageRunner ; -- TESTS -- * qtTextEdit and Falkon can be run again ; * started exploiting the above BRoster.Launch() new feature with custom XML code, this will come in handy for DriveSetupGPT to invoke gpt_write et al ; check-in: 2aa70a664d user: user tags: trunk | |
|
2024-07-30
| ||
| 19:16 | -- admin apps: add embryonic DriveSetupGPT -- hog-apps: add DriveSetupGPT: * add source for DriveSetupGPT and include it in the build ; * test with: jam hog-drivesetup-gpt.emu6 ; * not much to see yet, but wanted a "release" style snapshot before moving forward ; clean-up: * debugger(): display __builtin_return_address() ; * tiny clean-ups here and there ; -- TESTS -- * not much to test right now, the embryonic tool simply reads the "part_block -> partitions" report and displays it graphically ; * also tested a driver-manager full scenario on bare metal, based on this -- looks fine on several different laptops ; * this might be of interest to a client, so will develop in a specific direction and only then make it a more general-purpose disk tool for h/o/g users at large ; check-in: 3c0da29ade user: user tags: trunk | |
|
2024-07-22
| ||
| 20:32 | --Vfs_Fuse_Ntfs can fall back from r/w to r/only ; Work on clipboard and RAM usage -- fuse_ntfs: add fall-back r/o mode: * the "writeable" attribute of <fuse> nodes can now be set not only to "yes" or "no" but also to "yes_or_fallback_to_no", meaning it attempts to mount r/w, and if that fails, tries r/o ; * that won't be of much use to stations, but nice to have in daily driver usage for co-existing with a dual-boot MS-Win without having to keep it "restart-mount-ed" all the time ; system config: improve RAM for Falkon etc: * increase depot-deploy RAM quota to 16GB to take advantage of devices with more installed RAM ; * add routing for clipboard and (pointer) shape ; * disable LOG (routing) for wifi_drv entirely, as its verbosity cannot be configured it seems ; system config: tighten RAM quotas: * lower broker_server RAM from 24 to 4 MB ; * lower config_fs RAM from 8 to 1 MB ; -- TESTS -- * didn't test clipboard (cut/copy/paste) and pointer shape yet ; * succesfully using NTFS "fall back to read-only", though the fs stack acts weird (in read-only fallback mode, files do appear to be created/modified, at least until rebooting) ; check-in: c516054344 user: user tags: trunk | |
|
2024-07-11
| ||
| 15:51 | -- Add WiFi support ; Add selection of biggest NTFS partition -- Add WiFi: * GeDepot: add download button for genodelabs/pkg/pc_wifi/2024-05-01; * jam: add "AddWiFiStack" rule, hacked to route all ROMs to that particular package ; * this is bare-bones support only: static credentials, no state reporting ; Add scheme for "use biggest NTFS partition": * vfs_fuse_ntfs: tweak to cleanly bail out if being instantiated twice ; * that plug-in is not (currently) re-entrant anyway, might as well handle that cleanly ; * doing so also buys us the ability to cleanly "stack" 2+ <fuse_ntfs> nodes on the same mount-point ; * that allows a distro/run scenario to e.g. select "the first of part1 or part2" as the /boot mount-point ; Tweak bender etc: * jam: switch bender from "intel_hwp_performance" to "intel_hwp_balanced" ; * jam: bump bootmodules ceiling to 102, for scenarios which include wifi ; -- TESTS -- * wifi: spent an afternoon using Faklon on 3 different laptops, wifi seems to work fast and continuously ; * ntfs partition selection: been happily using "partition 2" on relevant computers (and sticking with "partition 1" where relevant) for a few days, bye bye confined spaces ; * power management: laptops seem to run cooler, without any perceptible performance loss ; check-in: d0d6e5972c user: user tags: trunk | |
|
2024-06-28
| ||
| 11:27 | (release: 24.2) Fixup adapting to Genode 24.05: * tweak grub config for 'novga' etc (was forgotten in the previous commit) ; Prepare record_play_mixer switch: * make note that record_play_mixer does work now (probably since we started using the -fconcepts Gcc flag ?), so the migration path from legacy mixer seems to re-open ; Tweak static quotas: * dial down nic_drv RAM quota some more ; -- TESTS -- * no regression observed, in nic_drv or otherwise, on M73 ; check-in: 5b46fdc23e user: user tags: release, trunk | |
|
2024-06-25
| ||
| 19:20 | Genode 24.05 support: Adapt to changes in Genode: * we mainly need the -fconcepts GCC flag, now that Genode uses c++20 through and through, but that flag was already added in a recent commit ; Fixup regressions: * fix vnc_server support to make it work also in USE_DRV_MANAGER builds ; * fix platform_drv in static drivers builds ; -- TESTS -- * ran several tests, including vnc_server, all look good ; * will also attempt testing the new record_play_mixer again soon ; check-in: 25d95f5859 user: user tags: new-genode-rev, trunk | |
| 16:03 | -- Try to enable BHttpRequest etc classes in Layer 9, for AC's benefit -- Enable newly added net-kit code: * add new files to kits/network/libnetapi/Jamfile ; * add new file to kits/shared Jamfile ; * add new files to kits/support Jamfile (needs a zlib ref in jamrules-pkg-versions) ; * restore full scope of HttpRequest.h ; -- ERRATA -- * File kits/network/libnetapi/NetworkRequest.cpp was *not* added verbatim, it already contained an #ifdef patch for sigaction() -- oh well... ; -- TESTS -- * the new net-kit code is not enough for retrieving https (SSL) NOAA files, in my testing of AC ; * on redirect to https we get B_SERVER_NOT_FOUND from BHttpRequest::_ProtocolLoop ; * didn't test retrieval of plain http files yet ; * we get new find_thread() warnings for some reason, now ; check-in: cf43ca291c user: user tags: trunk | |
|
2024-06-21
| ||
| 20:23 | fossil-add Haiku R1/b1 verbatim: kits/network/md5 (should have been part of the previous commit) check-in: 0fdae02b3e user: user tags: trunk | |
| 19:47 | fossil-add Haiku R1/b1 verbatim: kits/network/BHttpRequest and its (many) friends, kits/shared/HashString, kits/support/Compression -- for use in TTS AC check-in: 87efe15ef9 user: user tags: trunk | |
|
2024-06-12
| ||
| 17:47 | -- Fix Desbar etc screen positionning -- Implement BScreen.Frame(): * BScreen.Frame() no longer hardcodes 1024x768 but now directly connects to Nitpicker and requests the display mode there ; * also watch for mode changes in the BWindow/NP thread (especially important now that NP is initialized _before_ the display driver) ; * we *do* have to clamp to a minimum resolution (640x480) otherwise Deskbar etc seem to go nuts when initialized with the (initial) 0x0 res ; * get rid of now irrelevant BApplication::GeVideoMode() etc ; * realized that the initial idea of re-using the same NP connection for all windows is VERY wrong, we need a new connection for each window ; Fixup previous commits: * use gcc switch -fconcepts throughout the h/o/g build, in case it helps with the new mixer? ; * rule PosixExecutable was ok, but the posix.lib.so abi symlink was missing ; * rule BinCommand needs to make up for posix.lib.so not being included by rule PosixExe -- this buys us "sleep" and "ftpd" ; * revert some risks of regression re. static-drivers mode ; * hog-test.run didn't use the "default ahci port" feature in USE_DRIVER_MANAGER ; -- TESTS -- * the deskbar is now correctly positionned at the top-right screen corner, even in USE_DRIVER_MANAGER mode with native screen resolutions ; * that is, its ScreenChanged() hook is called when the display driver connects to Nitpicker and signals the screen resolution ; check-in: 50e6768ff4 user: user tags: trunk | |
|
2024-05-23
| ||
| 20:22 | -- Enable driver_manager and make it work in 24.04 -- Enable driver_manager build: * jam: make driver_manager part of the build ; * jam: refactor "exe" rules, since we now need a "build a pure Genode executable" rule (in addition to posix-libc-exe and be-exe) ; Patch driver_manager and its config: * adapt the drivers.config ("pc") xml config to 24.04 (platform_drv needs sleep_states, intel_fb needs a report outlet, etc) ; * also don't gobble all the remaining RAM in 'dynamic', as doing so prevents Block session function for some reason ; * adapt driver_manager handling of vesa and ahci_drv (otherwise they run out of caps/ram on bare metal) and usb-hid syntax changes ; * make provision for "static" testing of driver (vesa, ahci, intel_fb/gpu), in case of future debugging needs ; Misc: * nic: crank down RAM quota, since 28 MB is confirmed to work on M73 ; -- TESTS -- * successfully tested with "USE_DRV_MANAGER=true jam hog-deskbar.emu8" ; * works in qemu, works on 3 different thinkpads, all have native screen resolution, and ahci_drv runs well too ; * making USE_DRV_MANAGER the default from now on in our distro, yay ; check-in: 39bc55b237 user: user tags: trunk | |
| 10:38 | fossil-add Genode 24.02 (verbatim contents, re-organized directory structure): * driver_manager/main.cc ; * its "pc" XML config ; * we're forking driver_manager, which was retired in Genode 24.04scpt (obsoleted by sculpt_manager) ; * might migrate to sculpt_manager in 'headless mode' later, we'll see -- driver_manager is good enough for now ; check-in: 7a79da8790 user: user tags: trunk | |
|
2024-05-10
| ||
| 14:03 | Genode 24.04 (sculpt) support: Adapt to changes in Genode: * pc_platform_drv expects access to the S3 "sleep_states" ROM now that test-suspend is gone, so we provide a dummy one (we don't attempt S3 sleep support for now) ; * rom_filter provides the dummy ROM -- needed to be moved around to do so though ; * pc_usb_host_drv config has changed slightly, adapt to new policy/device/class layout ; Misc tweaks: * make sure Audio_out is routed in both the "mixer" case and the "black_hole" case (not sure how it could possibly work before ?) ; -- TESTS -- * seems the usb_hid driver now wants the mouse/keyboard to be unplugged/replugged to recognize them on my T410 -- will try different ports ; * if sticking with Audio_out legacy mixer instead of the new mixer, there seems to be no significant regression ; check-in: ff3781deb0 user: user tags: new-genode-rev, trunk | |
|
2024-05-04
| ||
| 18:58 | -- Fix lib-abis build dependency, tweak decoder, tweak mixer config -- Fix linking abis deps: * since day one, each symlink was created multiple times, wasting build time ; * we now make sure the SymLink to libc, haiku.lib.so etc are only done once ; Tweak decoder build: * add ifdefs around AVR code to allow disabling it in favor of a home-grown substitute (since AVR might be the culprit ?) ; * heck, might even find a substitute for av_read_frame() later, for testing purposes ; Tweak mixer config: * make it easy to switch back and forth between Legacy mixer and RecordPlayMixer ; Misc: * tweak various to-dos ; check-in: 40a5f42b55 user: user tags: trunk | |
|
2024-04-17
| ||
| 16:57 | -- Attempt migrating to driver_manager, tweak Play/Record -- Add system integration of "driver_manager": * leverage Genode's app/driver_manager component, to have dynamic (instead of static) graphics driver and storage driver setup ; * the old (static) integration path remain in place and is selected by default, the new path can be optionally selected with the USE_DRV_MANAGER env var ; * make nic_drv report to a platform_drv label compatible with dynamic path (and make static path accept that label too) ; * add other dependencies of the dynamic path too (intel_fb, intel_gpu, more keyboard layout filtering etc) ; Tweak Play/Record integration: * fix vfs_oss.lib.so ROM routing -- that should open the door to OSS testing of Play/Record ; * clean-up previous commit (Play/Record) a bit ; * optim audio_drv RAM usage as per upstream ; -- TESTS -- * running a "driver_manager" build (made with e.g. "USE_DRV_MANAGER=1 jam t8") works, but only in Qemu or VirtualBox ; * on real hardware, the screen remains black ; * it remains so, even if hardcoding Vesa in the driver_manager dynamic path (i.e. even Vesa is unhappy on real hardware, not just intel_fb_drv) ; * so driver_manager is not used for now, sticking to "static" drivers until further notice ; check-in: 7e52b51db0 user: user tags: trunk | |
|
2024-04-05
| ||
| 18:42 | -- Add support for new record_play_mixer (NOT enabled for now) -- Audio_out: add support for new mixer and new "Play/Record" session API: * add routes to Play and Record services, side by side with existing Audio_out and Audio_in services ; * sys. integration is hidden behind a jam "if" though (see "TESTS" section) ; * add _ge_AudioOut_playrecmix.cpp (intended to do the same job as _ge_AudioOut_native, but for Play instead of Audio_out) ; Audio_out: tweak for accuracy: * Progress() was being sourced from the decoder instead of audio-out (the decoder trail-blazes in front of the lagging audio-out, and Progress() ought to report on the latter, not on the former) ; * similar tweaks to be done later ; Audio OSS: fix build: * fix bitrot so that it compiles, in an attempt to make audio/play work thanks to OSS if not native audio ; -- TESTS -- * "record_play_mixer" path: my code produces heavily distorted audio, can't figure out why ; * OSS: it builds but vfs_oss.lib.so won't load for some reason (LD exception), will try again in 24.04 ; * so we'll stick with "legacy mixer" for now ; * note: in Qemu runs, audio-out fails to be routed to black_hole, but that's probably an old problem and won't be relevant once we migrate to the new mixer anyway ; check-in: 2c231f931c user: user tags: trunk | |
|
2024-03-14
| ||
| 18:08 | Genode 24.02 support: just update jamrules-pkg-version with newer libc hash ; check-in: c21c4339e3 user: user tags: new-genode-rev, trunk | |
| 16:40 | -- Fix FtpPositive column parsing -- Work around Haiku ftpd issue when accessed by FTP+: * the Haiku ftpd outputs directory listings *without* the 'group' column ; * as a result, FtpPositive fails to parse the dir listing (oddly, no-one ever addressed this in the client or the server over the years) ; * we address this on the client side : added a mini heuristic to detect if the ftpd is Haiku's, and if so, expect one less column than normal ; * this seems to 'fix' Haiku ftpd access quite well, without triggering regressions in other ftpd's (that I can see) ; check-in: 21a3a699cd user: user tags: trunk | |
|
2024-02-22
| ||
| 19:27 | -- fix-up the previous commit : forgot to commit jam/, and the definition of variable Contrib_expat -- check-in: e19c069378 user: user tags: trunk | |
| 19:20 | -- port Icon-O-Matic and libs/agg -- Enable/tweak Icon-O-Matic build: * disable deprecated #include <malloc.h> statements ; * tweak deprecated #include <hash_set> statements ; * disambiguate #include statements referring to clashing names (List.h etc) ; * for one of them, had to resort to using #include_next, as it would go to the wrong header even when using an explicit path/to/header.h ; * Jamfile: needed a few tweaks due to our not using the same directory layout as upstream ; Enable libs/agg build: * Jamrules: refactor rule StaticLib to "MakeLocate", so that "tail" jamfiles do not have to do it ; * Jamrules: implement rule UseLibraryHeaders ; Enable BView/BFont deps: * StrokeTriangle(), GetClippingRegion(), GetGlyphShapes() are needed by i-o-m ; -- TESTS -- * Icon-O-Matic launches (see remed out launcher in deskbar.run) and seems to work in my (very short) testing ; check-in: d26a9413c4 user: user tags: trunk | |
| 17:01 | fossil-add Haiku R1/b1 verbatim: Icon-O-Matic, and (another of) its dependencies : BTranslatorRoster ; check-in: 35911b2730 user: user tags: trunk | |
| 13:49 | fossil-add Haiku R1/b1 verbatim: dependencies for Icon-O-Matic (libs/agg, RWLocker, remainder of libs/icon, which is actually located as "h-o-g/sys-icon") check-in: 6698a468de user: user tags: trunk | |
|
2024-02-16
| ||
| 10:56 | (release: 24.1) Clean-up networking work-around: * system composition: use proper "sleep" (not provided in this public repo yet) to delay launch of pc_nic_drv, by 8 seconds ; * system composition: silence nic_router logging, and revert quota bumps, now that we fixed networking ; * also increase DHCP timeout from 10 to 15, you never know ; Fix-up FillArc: * interface/GeCanvas: fix a couple off-by-one's that resulted in not painting all pixels in FillArc(), leaving "blank" lines ; * tests tweak: help visually detect pixels that are not painted by FillArc/FillRoundRect() ; -- TESTS -- * all looks A-Ok on both test machines (including M73, including networking), let's put this in tester hands ; check-in: 82400465a0 user: user tags: release, trunk | |
|
2024-02-08
| ||
| 18:26 | -- FIX networking on ThinkCentre M73 -- Added 'sequence' to delay pc_drv_nic startup: * for now, hacked together this fix/workaround with an arbitrary app that has to be quit by hand, in order to start pc_nic_drv ; * will do a proper sequence-based work-around with /bin/sleep 5-ish seconds, soon ; * what this achieves is a delay in startup of NIC driver, which seems necessary on some machines ; * the NIC driver starting too soon (esp. compared to SculptOS, where it is launched by hand only) was thus the reason networking failed to work ; -- TESTS -- * networking is now good on my M73, the Nic chain takes a dozen seconds to be ready as soon as I "kick" the above sequence ; * I can do outbound FTP access and depot package installation (tested only nano3d, no disk space for more yet), inbound FTP and sftpd access ; * that also allowed me to Rx mp3 files and thus confirm that Audio-out works on the M73 ; check-in: 34387cbefd user: user tags: trunk | |
|
2024-02-06
| ||
| 13:55 | -- Port newly added "t9" net classes, allow Vision to compile -- Activate missing deps: * enable build of BNotification, BCardView, BOutlineListView.cpp ; * enable build of BNetworkAddress, BNetworkAddressResolver, BAbstractSocket, BSecureSocket, BSocket ; * enable BApplication::IsLaunching() ; * add stub for system_beep() ; * add naïve implementation of release_sem_etc() ; * add 'graveyard' stub for wait_for_objects_etc() ; Port net classes: * comment out stuff that is incompatible or declared obsolete in FreeBSD ; * sever connection to SSL Certificates code, we won't support those yet ; check-in: d12fac48e7 user: user tags: trunk | |
| 13:25 | fossil-add Haiku R1/b1 verbatim: dependencies for Vision IRC (BNotification, BCardView, BOutlineListView, BSecureSocket, BNetworkAddressResolver...) check-in: 2eff43fc89 user: user tags: trunk | |
|
2024-01-25
| ||
| 14:31 | -- Add out-of-tree port ability, and add a port of Vision IRC -- * added Jam_generic.inc: include this in you port recipes ; * (might also be useful for compiling in-tree apps for SculptOS !) ; * added Vision "recipe" Jamfile (and patch-set) leveraging Jam_generic ; * (Vision needs patching due to some #defines that conflict with Genode headers) ; * didn't add dependencies for Vision yet, will commit later ; -- TESTS -- * Vision compiles and runs (with yet uncommited deps) but networking seems no-go yet ; * Also tested Mandelbrot with a similar "recipe", seems good too ; check-in: b566ab69ea user: user tags: trunk | |
|
2024-01-18
| ||
| 19:32 | -- Port preferences/mail and its deps, Fix ellipse painting -- Add build rules needed for mail prefs build: * add UsePublicHeaders rule ; * add Preference rule (which just forwards to the 'Application' build rule) ; Enable prefs/mail and libnetapi: * mail prefs: adapt jamfiles ; * libnetapi: enable the 4 files we need, and just comment out BeOS R5 compatibility cruft ; Fix missing/broken ellipse code: * StrokeRoundRect() was missing the 4 'edges' (lines) between the corner arcs, from day one ; * StrokeRoundRect() and FillRoundRect() were using the wrong arc angles, from day one ; Misc: * also includes a few tweaks to nic_router from my ongoing investigation ^^ ; -- TESTS -- * 'E-mail' settings preflet runs and seems to work in Qemu (didn't test much yet) ; * nice to see that 'port' occur without the need to make any change in the 'ported' source code itself ; * all my "Pie Menus" show up nice and clean now (with the right 'slices' angles) ; * no luck with Nic on M73 yet, but gotta try a few more tricks ; check-in: ed56c08ca3 user: user tags: trunk | |
| 11:01 | fossil-add Haiku R1/b1 verbatim: preferences/mail, and dependencies (BNetAddress, BNetEndpoint, BNetBuffer, mail headers) (the crypt.cpp/h "encryption" stuff seems illusory though) check-in: abbf731257 user: user tags: trunk | |
|
2024-01-12
| ||
| 18:05 | -- Bring MediaKit to t8 level, Fix-up toolchain support -- Complete MediaKit t8 support (at last): * make BSoundPlayer and other "t7/t8" classes compatible with the rest of our Genode code ; * push some classes (MediaAddOn etc) higher up to level 9 ; * building at t7 and t8 should now work, so make t8 the default level (instead of t6) for "jam haiku.lib.so" and "jam *" ; * building at t9 level is not officially supported yet, see below ; Fix-up toolchain support: * bring toolchain requirement up to Gcc12/23.05 (was still Gcc10/21.05, oops) ; * tweak BeBuild.h to accept Gcc12 as well ; ToDo: * still have to commit MediaAddOn.cpp and friends of "t9" build level ; * no hurry though: so far those are 'only' used by AC, but let's see if in the future we stumble on Be apps that do need them ; * tweak some ToDo priorities ; -- TESTS -- * this should allow compiling "jam t8", as required to build e.g. the Sudoku ("jam Sudoku") demo app ; * testing a "from scratch" build here, look good so far ; check-in: f22fb5c901 user: user tags: trunk | |
| 11:00 | fossil-add Haiku R1/b1 verbatim: SoundPlayer.cpp (the actual "verbatim" file this time), SoundPlayer.h and MediaNode.h (originally from headers/os/media), and debug.h (originally from headers/private/media/debug.h) ; check-in: dde9622a15 user: user tags: trunk | |
| 10:15 | fossil-RM file in media kit: * remove media/SoundPlayer.cpp, which on 2may23 was incorrectly added in already-patched form instead of 'verbatim' form, let's start over with this one ; check-in: 4ca9c04327 user: user tags: trunk | |
|
2024-01-08
| ||
| 21:28 | -- Fix build ; Fix-up InitPilot ; Implement arcs/ellipses -- Fix build in jamrules-qemu: * add "rule StaticLibrary", was missing from previous commit ; * also a few comments and tweaks, could help with people being introduced to our build system ; * plus some unrelated tweaks, for our distro VNC usage ; Improve Canvas: * Add FillArc/StrokeArc implementation, no longer use crude polygon or 'quarter circle' special-case drawing, draw actual arcs for any angle ; * Fix StrokePolygon: close the polygon by drawing the last segment back to first point ; * Add tests: for visual testing of FillArc and friends ; Fix-up InitPilot: * don't use BPath (!) to parse app IDs, it resulted in (identical) NULL items, and all apps launched by init had clashing name/IDs ; Fix date in e.g. Deskbar calendar: * week days were off-by-one in the calendar ; Misc: * add FtpPositive to deskbar scenario, for my future Nic tests on M73 ; -- TESTS -- * FillArc is much better but still has bugs for some angles, as exhibited by armyknife's pie menus ; check-in: 25e4905634 user: user tags: trunk | |
|
2024-01-01
| ||
| 17:35 | -- Sudoku and DeskCalc : port to h/o/g -- Add SculptOS support (hopefully): * add two environ vars to disable haiku.lib.so features which are incompatible with SculptOS ; * thus one should use something like this to build (the app, but also esp. the lib) against unpatched (xattr-less) Genode: ; * GE_XATTR_DISABLED=1 GE_DECORATIONS_AND_WM=1 jam -q -j2 DeskCalc ; Enable builds: * hai-src/apps/deskcalc ; * hai-src/apps/sudoku ; * hai-src/libs/mapm (required by deskcalc) ; Improve jam build: * default (cleanly) to layer 6 when passed individual targets ; * this allows invoking e.g. "jam Sudoku" without any 'layer' parameter ; * add rule for linking static lib against exe (not just against another lib), required by DeskCalc ; Porting tweaks: * unused headers ; * simplify linking of ExpressionParser ; * runtime config: always add at least one env/arg, as DeskCalc dislikes argc==0 ; Add dependency stubs: * DeskCalc requires BMessageRunner::StartSending() ; * DeskCalc requires set_keyboard_locks() ; * Sudoku requires BPicture::Flatten(), BView::DrawPicture() etc ; -- TESTS -- * DeskCalc builds and runs (even at layer 6 level) ; * odd crash when pressing Enter, and didn't manage to use addr2line yet on it, but seems otherwise usable with the mouse, if not the keyboard ; * Sudoku builds and runs, but requires layer 8 level, relying on as-of-yet uncommited media headers, so gotta address that ; check-in: b2d4d37767 user: user tags: trunk | |
| 10:22 | fossil-add Haiku R1/b1 verbatim: Sudoku, DeskCalc, and dependencies (lib/mapm, kits/shared/expr., etc) check-in: f427bacfee user: user tags: trunk | |
|
2023-12-28
| ||
| 16:56 | -- Fix-up package deployment, Add support for VNC server and ram_fs -- Fix-up Ge package deployment BRoster hack: * simplify to target pkg/runtime file mapping, instead of the much more convoluted find-bin-corresponding-to-pkg/executable file mapping ; * that allows us to remove lots of cruft ; Fix Ge package download in low memory situation: * move up depot_download above run_depot to prioritize its 70 MB memory alloc ; * thus run_depot requests its (humongous) 3 GB last, which won't harm anyone if the host does not have that much memory left ; Fix ntfs edge case: * add snprintf() implementation, or we might go bomb out on missing symbol when used with e.g. Falkon ; Fix-up Roster.cpp build: * we generate two different .o outputs depending on layer level, so they need to be two different .o files (aliased from Roster.o) ; * otherwise when switching back and forth e.g. from "jam t6" to "jam t8" one has to manually trigger a rebuild, which is annoying and error-prone ; Add vnc_server support: * GeDepot: add jschlatow repo support, and buttons for vnc_server package ; * DeployPilot: route Capture and Event services ; Add ram_fs for packages: * route FS service to "ram_fs" for Ge packages ; -- TESTS -- * Falkon now "remembers" URL history (stored in ram_fs) until the next reboot ; * the vnc_server package fails to accept connections, as it uses DHCP instead of static IP ; * will look around for how to forward port 5900 in that case ; check-in: 9fdc154ec1 user: user tags: trunk | |
|
2023-12-20
| ||
| 16:17 | Genode 23.08 and 23.11 support: Compatibility: * nic_drv: switch over from ipxe_nic_drv to (Linux-based) pc_nic_drv ; * platform_drv: increase caps and ram, enable IOMMU reporting, enable "info=yes" for nic_drv ; * vfs_ntfs, media: don't pollute Genode C++ files with -DDEBUG macro (as of 23.08 there is now a DEBUG enum in cpu_state.h) ; * GeDepot and run_depot: use the latest version of Falkon and textedit, aka 2023-10-23 ; Simplification: * use lwip (instead of lxip) everywhere ; * use cached_fs_rom (instead of fs_rom) everywhere ; Misc: * BTextView: actually enable the Invalidate() work-arounds and document their use path ; * benchmarks: tighten vfs figures as Genode performs better (several figures are cut almost in half) ; * build: make it easier to build the extra "whole shebang", with a unique switch $(BUILD_DISTRO) in deskbar.run ; -- TESTS -- * no change with new Nic driver: still no networking on M73 (filed a ticket) ; * the new Falkon etc perform beautifully as before ; * same with AC ; check-in: e6680ff281 user: user tags: new-genode-rev, trunk | |
|
2023-12-15
| ||
| 12:09 | -- Fix-up Qt keyboard input, Falkon audio, BTextView caret, depot init, decorations feel -- Fix DeployPilot audio routing: * route Audio_in to black_hole, so that Audio_out's routing to HDA will be accepted ; Fix FtpPositive settings corruption: * the window frame might get corrupted on save/load, restore to factory setting if so ; Fix BTextView caret/cursor: * make sure caret code is actually called, was missing window.activated() hook call ; * still not a proper InvertRect(), but make it "good enough" with a StrokeRect() and Invalidate() calls ; Fix window decorations feel: * don't allow closing the window if it's undecorated, of if its close button is not enabled ; * don't allow moving the window around if it moving "handles" are not enabled ; Fix GeDepot setup: * filesystem init: add missing mkdir("public") ; Fix keyboard for Qt apps: * add a "chargen" section in event_filter, as the Genode port of Qt relies on it ; * currently hardcodes "en_us" keyboard layout for Qt apps (similar to the chargen-less layout we enforce for Be apps) ; Misc: * fix build (GeDepot include was not commited) ; * add (minimal) run scenario for Mail ; * tweak ToDos and log verbosity ; -- TESTS -- * keyboard works fine in Qt apps ; * audio-out (and video) work fine in Falkon web browser ; * Falkon quickly runs out of RAM on video-heavy sites, but seems great on 'reasonable' ones ; * no longer getting spurious move/close occurences on menu etc windows ; check-in: 8cdf24a034 user: user tags: trunk | |
|
2023-12-07
| ||
| 19:18 | -- Mail : enable port -- Mail: * make it part of the build ; * adapt to type dev_t being 64bit in hog ; * adapt to inode type being unsigned in hog ; * comment-out BPrintJob etc since we don't provide that part of the API yet ; * clean-up "FooKit.h" header usage since we try not to provide those "kitchen-sink" headers yet ; * replace usage of malloc.h with stdlib.h ; Deps: * make needed dependancies part of the build (MailDaemon.cpp, TypeConstants.cpp) ; * provide needed stubs inside BFont like count_font_families() ; -- TESTS -- * the Mail GUI runs and looks good ; * gets stuck in Qemu sometimes though (might be in query-related sem_acquire?) ; * good enough to take a screenshot, but: ; * no mail_daemon yet ; * no mail-prefs (account settings) yet ; check-in: a9f3359155 user: user tags: trunk | |
| 11:02 | fossil-add Haiku R1/b1 verbatim: (Be)Mail app, and a few dependancies (class BMailDaemon, TypesConstants.cpp, some Web+ classes) check-in: a79ba0fc1d user: user tags: trunk | |
|
2023-12-05
| ||
| 11:11 | -- Add GeDepot, Support Falkon etc deployment -- Add new 'GeDepot' app to install packages from depot.genode.org and run them: * with hardcoded "Download" and "Run" buttons (acting as toggle run/kill) for nano3d, mesa-gears, Falkon, Morph, etc ; * "download" interacts with depot_download (manager) ; * "run" interacts with registrar ; Implement Genode-pkg deployment in Registrar.Launch(): * deskbar.run: remove static/hardwired deployement test, we're now fully dynamic ; * deskbar.run: extended run scenario with GeDepot and sample depot infrastructure ; * registrar: the depot_deploy 'init' code is generated from registrar now ; * new class "DepotPilot" (pilots depot_deploy), lives side-by-side with "InitPilot" in registrar ; * registrar: the new class can be used for launching packages, as usual in Be apps : from Deskbar, from GeDepot, or anyone calling Launch(), can launch a package like Falkon, Morph, etc ; -- TESTS -- * Falkon works (testing e.g. the twitter feed of KDE) ! ; * all packages listed in GeDepot work ; * keyboard input is still broken in Qt apps however ("key such-and-such lacks Qt mapping") ; * will first upgrade to more recent packages, and investigate if still no-go ; check-in: 0f4e1fe274 user: user tags: trunk | |
|
2023-11-24
| ||
| 20:47 | -- Add early Depot packages support (Mesa-Gears, qt5_TextEdit...) -- * add new "_geDepotDaemon.inc" jamfile which instantiates depot components, for inclusion in deskbar.run or distro ; * will clean-up the deskbar.run changes and commit soon ; * works in a similar way to Genode's SculptOS ; * relies on "depot_download" to download depot.genode.org packages to /public and expand them into /depot ; * relies on "depot_deploy" to use the runtime/blueprints in /depot to locate the exe and its libs, route access to them as ROMs, and launch ; * currently testing with static/hardcoded launches (nano3d, mesa-gears, textedit), gotta come up with some sort of Deskbar integration ; -- TESTS -- * downloads and launches qt5_textedit etc if wired to an ok FS ; * alphanum keys don't seem to work in textedit though, it complains about "lack of Qt mapping for key" ; check-in: 1463eed21d user: user tags: trunk | |
|
2023-11-15
| ||
| 16:16 | -- Enable MESA (static and dynit), Enable Nic in dynit, Complete qwerty layout -- Enable mesa-OpenGL-gears launching: * add optional run scenario in hog-demos.run for "gears" OpenGL ; * tweak dynit to hardcode 'software' mesa pipe for now ; * tweak dynit to set priority -2 for 'gears' to play nice with the rest, since 'gears' is CPU-bound ; * tweak dynit to treat apps in /boot/depot_hog_alpha/ the same as apps in /boot/apps/genode, ie connect them to wm ; Enable launching from vfs-NTFS files, not just ROMs: * roster: temporarily disable checking for rwX bit until I figure out how to set the X bit in NTFS ; * route requests for .so ROMs to core in common cases (libc, zlib, etc), so that only 'extra' libraries (mesa.lib.so etc) are looked-up from the file system ; Enable networking for apps (e.g. FtpPositive) launched by dynit, not just static: * tweak dynit to forward RM and Nic ; * tweak dynit to hardcode "lxip" permission for FTP+ for now ; * (all that cruft will go once I come up with a permission system) ; Add missing keys to qwerty layout: * add Function Keys, add punctuation ; -- TESTS -- * mesa-gears-OpenGL works, provided the exe and libs are installed before-hand in /boot/depot_hog_alpha/ and in /boot respectively ; * (tested both static launch in "jam hog-demos" and dynit launch in distro) ; * launch is somewhat fast, maybe would be even faster with cached_fs_rom ? ; * runs at 40 FPS with software-pipe on my T410, cool ; * next, implement something similar to depot_download ; * FtpPositive can be (re)launched in dynit, not just statically -- check networking though ; * F11 (full-screen) works in AC ; check-in: be6f10a489 user: user tags: trunk | |
|
2023-11-03
| ||
| 16:20 | (release: 23.3) * Jamrules: #define __HAIKU__ so as to get proper builds of (e.g.) src/bin/ utilities ; * Jamrules: implement rule UseHeaders properly, as used in e.g. src/bin/ utilities ; * mime_db: adapt todo comment, now that the __HAIKU__ define compiles it in full ; * InitPilot: fix memory leak ; * InitPilot: tweak to generate shorter app name/path, to keep logs more compact & readable ; * broker_server: make logging a tad less verbose ; check-in: 56da641d59 user: user tags: release, trunk | |
|
2023-11-02
| ||
| 15:28 | -- Enable FTP client/server, Implement keyboard modifiers -- Fix/enable build of FtpPositive client and dependancies: * fix non-portable Be-isms in FtpPositive that prevented it from compiling in HoG ; * work-around HoG's GetAppInfo() shortcomings that led to NULL ptr crash ; * work-around lack of file manager in HoG : direct downloads directly to the right directory ; * fix our fcntl.h which was clobbering the F_SETFL #define and broke it -- now let the underlying FreeBSD fcntl.h alone, only add those symbols that are strictly Be specific and defined nowhere else ; * tweak ColumnListView to not use GetClippingRegion() since we don't implement it ; I.Kit: implement Shift/Alt modifiers: * add an app-wide keyboard-modifiers state ; * maintain it in window thread, Tx it in BMessages ; * qwerty keymap: add most of the missing non-shift table, and much of the shift table ; Jam-build: * bump ROM module slot count some more, to make way for FTP+ and ftpd ; * enable socket/networking also in Be apps (not just Genode native apps) ; * usb_hid_drv: bump from 140 to 180 caps, following suit from Genode ca. 20.10 ; * NAT: forward connections to port 21 (FTP) ; * embedded DHCP: transmit DNS setting from (external) DHCP so that e.g. FTP+ may look-up domains ; -- TESTS -- * FTP+ client can list and download files ; * the distro's ftpd server can Rx files and manage dirs (tested with FileZilla) ; * shift-scrolling works (in Lightning) ; * shift kbd table works (FTP+, AK, etc) ; * simple keyboard shortcuts work (though subject to the pesky window focus problem yet) ; check-in: ddbf542c20 user: user tags: trunk | |
| 10:41 | fossil-add FtpPositive and missing OS dependancies: * HaikuArchives/FtpPositive (1.2.2+) (11nov22) (48a5acd) ; * Haiku R1/b1: ColumnListView (used by ftp+), PictureButton header (#included even though not actually used) ; check-in: 0e61344a1c user: user tags: trunk | |
|
2023-09-22
| ||
| 10:38 | (release: 23.2) * tweak some ToDo markers ; check-in: ffa0866517 user: user tags: release, trunk | |
|
2023-09-21
| ||
| 13:51 | -- Improve Dynit, in preparation for 23.2 release -- * rename "dyn" to "dynit" (easier to grep for) ; * refactor the code for init config generation into class InitPilot ; * that class allows (at last!) multiple app launches and "toggling" (launch-or-kill) ; * still todo: listen to init reports, and maintain our internal state, when an app is exited by the user ; * connect the Gui service either to MOTIF/wm or directly to nitpicker, depending on presence of /boot/apps/genode folder prefix ; * (in the future a fully adaptable runtime configurator will have to be invented, but for now we'll make do with this convention of sorting apps in a genode/ subfolder or be-hai/ folder as a configuration "hint" to the dynit launcher) ; * crank up fs_rom RAM since the one instance has to load all multiple application instances simultaneously ; -- Misc robustness -- * BApplication: make launch more robust when racing with registrar launch (try connecting to registrar 4 times) -- later we'll probably have some sort of launch_daemon ; * BScreen: hardcode resolution to rule out the (rare but annoying) race case where the nitpicker connection is not yet established -- later a refactor will solve this cleanly ; * broker_server: restore close()ing of named pipes, since I now apply the stability fix patch ; * hush some log tracing and ToDo markers ; -- TESTS -- * everything going well stability-wise, will release soon ; check-in: 4a28602ee6 user: user tags: trunk | |
|
2023-09-05
| ||
| 09:02 | -- Fix-up launch infrastructure -- * deskbar.run: broker's vfs now only exports the bro2app/ directory ; * deskbar.run: move exes to within bin/ and apps/ subdirs to somewhat mirror upstream Hai's layout ; * AppKit's get_app_ref(): implement by looking in environ[] for variable "_" (seems standard in upstream Hai ?) to discover what the app path (ref) is, so that BApplication.Init() will register correctly in the deskbar-registry ; * fix build of jam t1/t2 by moving load_image() implementation to layer-6-only source file ; * set-up: pass the actual argc/argv/environ to main() ; * tear-down: sever connection to the broker on tear down ; * tear-down: call exit() to actually terminate (and clean-up) the process when main() returns ; * broker: recycle pipes, so that we don't run out of pipes after just a handful launches ; * broker: work-around ticket #4987 by *not* closing the pipe at our (writer's) end ; -- Fix-up misc -- * WindowNitpickerPriv window decorations: implement B_NOT_CLOSABLE, otherwise one may unexpectedly close the deskbar when opening its pull-down menu ; * tweak priority levels of ToDo's ; -- TESTS -- * apps now get registered (by name) in the deskbar as they should ; * apps now get launched one after the other sans crashing ; * had an instance of "running out of launches" after ca. 18 launches of AK once, despite the broker recycling pipes, gotta dig ; * AC automation looking good when using launcher-launched AC (but bootmodule launch now fails for some reason) ; * had one AC freeze though, let's dig, must make sure to maintain/return to 100% stability ; check-in: 4826d8ad82 user: user tags: trunk | |
|
2023-08-23
| ||
| 18:54 | -- Add (unfinished) app-launcher infrastructure (load_image() and sub-init) -- * add load_image() implementation ; * it uses the newly created BRoster::RemoteLaunchInRegistrar() which talks to registrar ; * enable more code in Roster.cpp ; * add AddDynLauncher rule that configures a sub-init component which listens to reports from registrar ; * use that rule in the "jam deskbar.run" unit test : one may now launch "top" or "nano3d" or "Pulse" from the deskbar menu ; * several ToDo's and questions left (why do I have to add some traverse-the-symlink hack code in Roster.cpp ?) ; -- TESTS -- * testing deskbar.run looks good ; * except for one bug : relaunching a native Be-style app that makes use of the broker-to-app vfs (e.g. Pulse) results in a crash of said vfs server ; check-in: 2a880f427b user: user tags: trunk | |
|
2023-07-28
| ||
| 10:48 | -- Early PoC for "Suspend-to-RAM" and (half-working) "Resume" -- * hai-OS: added Deskbar -> roster -> registrar -> pseudo-kernel -> Genode code chain for invoking Suspend ; * (the deskbar "Suspend" menu item was already present in upstream, just hidden behind an #ifdef) ; * for now we're hiding this feature behind a "return -1" in kapm_control(), change it to "return 0" to play with it ; * Genode/deskbar.run script: enabled suspend in acpica, added test-suspend binary ; * for resuming out of suspend state, that script also "demos" restarting VESA and PS/2 every 25 seconds (obviously this should only be done once, and deterministically) ; -- Enable (un-rem-out) BRoster::Launch() guts -- * will work on it in the next few commits ; -- TESTS -- * Qemu: suspend works, resume works, including vesa_drv (despite a resume error message in acpica) ; * Bare metal: suspend works, but the VESA driver does not seem to come back up when resuming, the screen remains black, and no-go either with vnc_server (didn't try to restart nic_drv yet) ; * see notes in api-public_main.cpp as to why it's better to wait for newer Genode revs before doing further work on this ; check-in: a64b600c40 user: user tags: trunk | |
|
2023-07-17
| ||
| 09:21 | Genode 23.05 support : -- Adapt to Genode 23.05 changes -- * adapt to snprintf.h header new location/namespace/library ; * adapt to Genode::Connection new ctor ; * adapt to new libc and stdcxx packages ; -- Misc -- * bench: several benchmarks perform faster (except find_thread() which shoots way up, oddly) ; * indexer: downgrade a warning() ; * toolchain/gcc 12 compiler notes: I can still compile with gcc10 (using the associated stdcxx), with 4 minor changes to the genode repo ; * some clean-ups after the previous commit (xattr vfs handle overhaul) ; -- TESTS -- * vfs is still 100% solid (and we no longer need to patch Genode for stability) ; * there might be a new *regression* with pthread_create() though: it seems to sometimes leak 1 capability ; check-in: 7f9bf0a1a8 user: user tags: new-genode-rev, trunk | |
|
2023-07-15
| ||
| 18:03 | -- XAttr : Fix "packet operation=0 failed" conundrum -- * ntfs plug-in: open() now detects non-existent attributes and returns an error, instead of (shockingly) instantiating a vfs handle for a non-readable xattr, which would throw curve balls at the downstream code ; * libroot: handle error code at open() stage instead of read() stage ; * this gets rid of "packet operation=0 failed" spamming issued by fs client/server code ; * this seems to speed-up attr reading a bit (e.g. Lightning querying 45 files completes in ca. 5 secs now on my old T410) ; * this (should) fix stability problems, hangs/lock-ups/freezes/stalls ; * in fact this commit is 100% indispensable before applying the next commit (23.05-support), otherwise Genode 23.05 just 'stalls' all my apps at launch or right after launch (i.e. my faulty xattr code was tolerated before, but no longer is) ; * also clean-up unused param in VirtualizedXattr ctor ; -- TESTS -- * so NOW we should be stable re. writing, and xattr reading :-) ; * will report more in the 23.05-support commit ; check-in: c963a5cb85 user: user tags: trunk | |
|
2023-06-24
| ||
| 10:32 | Genode 23.02 support, plus some tweaks : -- Adapt to Genode 23.02 APIs -- * adapt to Byte_range_ptr API usage ; * adapt to size_t API usage ; * adapt to deprecated base/debug.h Genode header ; * adapt to deprecated Genode::abs() function ; -- Adapt to Genode 23.02 build and integration -- * build new rev of grub2 ; * add new argument (bender "serial") needed by new grub2 (otherwise boot-up fails) ; * adapt to new acpica policy in platform_drv config (otherwise power-off fails) ; * add a note to make SURE integrators enable /dev/rtc in broker (otherwise broker fails to write to vfs pipes) ; -- Tweak FS to tolerate 'extreme' test-suite modes -- * vfs_ntfs: make it (partially) compatible with use-case where indexer is client-side whereas vfs_ntfs is server-side ; * works for GetNextAttrName() (needed strncpy symbol, and improvements in leaf_path() and directory()) ; * works (seemingly) for BQuery aka dev_for_path("/boot/newfile") ; * failed GetAttrInfo()/B_ENTRY_NOT_FOUND test: would need patching fs_file_system.h/_complete_read() to generate READ_ERR_INVALID instead of READ_ERR_IO ; -- Misc -- * indexer: fix the downstream libntfs-3g warning about "un-normalized path" by using an alternate variant of path.import() which does NOT create an un-normalized path to begin with ; * test-suite: return to local-fs mode for now that I'm no longer working on FS stability (if ever needed again, will need to put ALL vfs plug-ins server-side, like in production, otherwise I keep chasing extreme corner/pathological cases) ; * benchmarks: some tweaks, plus opendir() takes a bit longer ; -- TESTS -- * we're stable doing FS writing at last ! AutoCast has been running for a few days with ReportLog enable, with zero issue ; * credit goes to Genode Labs' ruthless quest for code clean-ups, which helped bring the bug's root cause to the fore and forced me to investigate :-) ; * that's with a custom-made fs_file_system patch though (forced wakeup_vfs_user() in _handle_ack()) ; * that's also with a post-23.02 vfs/pipe/plugin.cc patch cherry-picked/back-ported from #4785 (might be necessary, together with the /dev/rtc thing) ; * next I'll overhaul the xattr code so as to no longer need that patch ; * can't compile/run vnc_server any more though, but I'll upgrade to 23.05 later on, that one has an official binary available ; check-in: 91b37516e8 user: user tags: new-genode-rev, trunk | |
|
2023-06-23
| ||
| 11:19 | -- Media Kit : fix Duration() calculation -- * decoder/resampler: fix an (upstream?) issue whereby the progress() accessor returned incorrect values when the audio file's sample-rate differed from the Audio-Out sampling rate (e.g. with 22050 versus 44100 Hz, only half of the file would play before being considered finished) ; -- FS etc -- * NTFS-Fuse readdir: weed-out "." and "..", as is done in other file systems ; * clean-up and improve tracing ; -- TESTS -- * audio duration looks good on all test files now ; check-in: 61ba83d049 user: user tags: trunk | |
|
2023-05-22
| ||
| 12:15 | -- Improve thread robustness -- * overhaul life-cycle handle for threads, with a proper enum ; * handle multiple concurrent wait_for_thread() calls on the same target thread, by using a semaphore instead of directly relying on pthread_join() ; * add test-suite test for that ; * need that for proper/stable support of BAlert and others ; * join()ing a terminated thread is now done deterministically in the dtor (we no longer have a "thread/garbage collector") ; -- TESTS -- * test results: ; * BAlert no longer hangs up, no matter if in sync or async mode ; check-in: 0eb7451d50 user: user tags: trunk | |
|
2023-05-15
| ||
| 13:44 | -- Add networking, add jam-t9 tests -- * this commit enables internet access for libc sockets API applications, like e.g. vnc (with BSocket style API support to follow later) ; * added new "AddNetworkingComponents" rule -- call it if your run scenario involves internet traffic, it will setup nic_drv and nic_router ; * increased ROM count ceiling from 65 to 75 items ; * added VNC server compatibility in the new network rules and also in event_filter (so that vncd can "inject" mouse/kbd events) -- thus including vnc in a run scenario is now as simple as adding the vnc_server component referring to /socket/lxip, it just has to hardcode ip_addr=10.0.3.11 ; * added "jam t9" test level which adds networking on top of the rest, though this really only checks that the driver runs in qemu, no actual "socket" tests have been added to the testsuite ; * also cleaned-up/optim'ed other test levels -- "jam t1" is especially fast now ; -- TESTS -- * our main test laptop now runs vnc_server (patched for "zero alloc" problem) for hours at end, with a semi-permanent client connection to keep on eye on AutoCast from another computer on the LAN, with zero issue thus far ; check-in: 97df03ccdb user: user tags: trunk | |
|
2023-05-02
| ||
| 16:26 | -- Improve Media Kit support of ogg/vorbis etc -- * fix decoder's iterating of demuxer packets : don't give up on the file if stumbling on an unknown chunk ; * cap ProduceBuffer() iterations at a given 'max' value (previously it was provided a 'min' value) ; * also make sure to not leak AV packets in any code path ; * altogether, this changeset restores behavior of the original genode-world sample code, which supported ogg/vorbis etc ; -- Extend FS test suite to exhibit opendir 'freeze' -- * allow FS tests to also run in client-server mode, in addition to hosting the ntfs plug-in in the client as previously ; * add more systematic tests for opendir() ; * that allows to demonstrate an opendir() 'hang up' that is 100% reproducible (in qemu), so long as the indexer is part of the combo ; * the culprit is probably our indexer plug-in and not Genode ; -- TESTS -- * those media changes fix audio playback of the test ogg/vorbis files here ; * we're still 100% stable in AC, so long as report-logging is disabled ; * still working on the FS lock-up, seems ge-libc's opendir does not return from "monitor" or some such ; check-in: ff8044a67e user: user tags: trunk | |
|
2023-04-14
| ||
| 08:58 | (release: 23.1) -- Tweak MediaKit, InterfaceKit -- * BMediaFile et al: add wiring for HasData(), though that does not seem to improve detection of aborted decodings (ogg/vorbis eg) ; * replace open-ended loop with bounded loop, to make infinite looping impossible ; * only fill the samples FIFO up to 50%, seems to make a difference ; * todo markers: plan ahead to clean up the mess ; * BWindow.UpdateIfNeeded(): release the window lock after (not before) we're done painting ; -- TESTS -- * stability seems to improve with the above changes ; * let's widen the test pool to gather more data ; check-in: 23de9e0e66 user: user tags: release, trunk | |
|
2023-04-12
| ||
| 19:56 | -- Fix semaphores, update test suite -- * delete_sem() now "ups" (releases) the semaphore before destroying it, mirroring upstream-hai behavior ; * that fixes BAlert.Go() never returning in some cases (asynchronous mode & invoked from a BWindow thread) ; * test suite: added a test case for the above, plus a lot of NTFS test tweaks ; * GeInput: support a few more keys ; -- TESTS -- * test suite: we fail just 2 symlink-related tests (deviation required in order to support dot-paths for xattr purposes, it seems) ; * benchmarks: some timing ceilings have increased, some decreased a bit ; check-in: cf56bb84c5 user: user tags: trunk | |
|
2023-04-10
| ||
| 19:32 | clean-up todo markers -- * downgrade many FIXME's into ToDo's, most of them can no longer block the release and will have to wait ; * downgrade a few 'error' logs into 'warning's too ; -- TESTS -- * seems freezes are still there, just very difficult to replicate now (when BAlerts are involved, but also when AC transitions to a new audio file), maybe I'll have to rely on "heartbeat" CoS after all ; check-in: a7eabee25d user: user tags: trunk | |
|
2023-04-03
| ||
| 18:11 | -- Implement Media Kit, layer 7 -- * comment out various things I don't need ; * wire Be classes to the Ge back-end in a kinda round-abount way (play/access 'mediatrack' through 'mediafile' for now) ; * will revisit in a few months to track the BMediaFile/BMediaTrack/BSoundPlayer separation more closely and cleanly ; * with that check-in, the code compiles and works and we now officially support "jam t7" ; -- TESTS -- * still 100% stable on TTS tests on main laptop ; will broaden the test pool later ; check-in: e8fe934e40 user: user tags: trunk | |
| 07:15 | fossil-add Haiku R1/b1 verbatim: MediaDefs check-in: 71c5133aff user: user tags: trunk | |
|
2023-03-30
| ||
| 11:27 | fossil-add Haiku R1/b1 verbatim: BMediaFile, BMediaTrack, couple other headers. With the next few commits this will allow building to "jam t8" (not just t6) level. check-in: 30e9892b38 user: user tags: trunk | |
|
2023-03-28
| ||
| 19:52 | fossil-add new LeakChecker and RingLog classes -- * located in newly created hog-libs/ folder, for code that may be used even in pure Genode components, not just in hybrid components ; * LeakChecker came in handy to find malloc/free issues in the ntfs plug-in ; * RingLog is useful for high-volume logging for which only the "tail-end snapshot" matters, e.g. BSoundPlayer's ge-native-audio classes ; -- TESTS -- * still getting flying colors, green across the board, thanks to the update to Genode 22.11 ; check-in: 19a4537a02 user: user tags: trunk | |
|
2023-03-23
| ||
| 12:42 | Genode 22.11 support, plus various tweaks -- * acpica/Deskbar build-and-run: acpica now requires a report route for the "suspend" state, so we provide a placeholder in the run script for now (will try to actually implement suspend later, sounds intriguing) ; * adopted change re. intel_hwp boot module ; * Genode's hardware abstration layer now uses a pci_decode component, and requires adding info="yes" policy attributes to platform_drv, we follow suit ; * also adopt the change re. using the "devices" file ; * attempt fixing the "bad symlink on first ever build" issue (not sure it works tho) ; * crank up boot-module slots from 60 to 65 (fixes growth issue with TTS distro) and provide for proper exhaustion warning next time I run out of slots ; * configure Qemu with 1 GB RAM instead of 768 MB (helps with TTS distro) ; * libc: enable "pthread placement=all-cpus" (helps with TTS apps) ; * comment out vfs_oss (no longer being used with TTS apps for now) ; -- TESTS -- * no longer seeing AC lock-ups since the upgrade to Genode 22.11, looks like I'll base my distro on this Genode rev! ; check-in: d6d6d9c2dd user: user tags: new-genode-rev, trunk | |
|
2023-03-20
| ||
| 18:48 | -- Fix NTFS plug-in (realloc corruption, memory leak) -- * found out that memory usage explodes when disabling num_dirent cache -- was due to readdir ; * fix readdir() memory leak -- instead of adding the missing free() (it was commented out, dang), just refactor struct fuse_dirhandle so that it has a dtor that free()s without fail ; * that required bringing in some additional FUSE headers so that we can patch them, and to dis-ambiguate include paths ; * implement realloc() properly, adding the necessary book-keeping, otherwise we'd sometimes corrupt memory ; * we can now use realloc() in more places, including in the (newly leak-free) readdir/dirhandle code ; -- TESTS -- * the vfs server can now use the vfs_fuse_ntfs_tts plug-in without leaking memory much, and the occasional crash is gone ; * there remains one leak for each mkdir() call, which does seems to be due to upstream lib-ntfs (fortunately we don't create dirs too often) ; check-in: b51b5c61a3 user: user tags: trunk | |
| 18:22 | -- Fix semaphores -- * acquire_sem() was not calling genode_sem.down() but was instead busy looping (sending EAGAIN back and forth) on 'busy' semaphores ; * we now call down() properly, being careful to first release the giant kernel lock ; * this introduces a race though (what if the sem is deleted inbetween), will look into it soon-ish ; -- TESTS -- * a few months back, we would lock-up or at least slow down to a crawl due to the busy-looping-with-giant-lock-held crazyness ; * been testing this fix for quite a few weeks now, looking good ; check-in: 05b6c4490f user: user tags: trunk | |
|
2023-03-15
| ||
| 10:44 | -- Implement Media Kit : add a 'native' audio-out back-end -- * keep the OSS back-end mothballed, with a tweak to IsAlmostFull(), might return to it later ; * add a 'native' (direct-to-Genode-mixer) back-end which does not rely on signals but polls stream.queued() instead ; * this is being used successfully with AC ; * still have to clean-up/commit a few missing classes yet for the Media Kit to compile ; -- TESTS -- * audio playback is fluid (no 'on-air blanks') with upperlimit_queue_threshold set to 64, on my T410 ; * stability was bad starting a couple months back, but seems to be good now, no more lock-ups for the last few days, after I fixed a mem leak in my vfs-ntfs code (coincidence ?) ; * there remains a few question marks yet (do "grep FIXME" to find them) ; check-in: 2dd1f3902d user: user tags: trunk | |
|
2023-03-01
| ||
| 17:29 | -- clean-up: various minor tweaks -- * Jamrules: revert roles of NEEDLIBS / UNDEFS again, seems more compatible ; * BDirectory: comment out fcntl(...CLOEXEC..) to dodge "n/i" log warnings ; * logging tweaks ; * comment tweaks ; * ToDo's ; No functional change intended ; check-in: 314a522e76 user: user tags: trunk | |
|
2023-01-09
| ||
| 19:41 | -- Implement Power-Off -- * registrar: use the passed flag to distinguish between reset and power-off ; * jamfiles: refactor the "system" ROM, into a "platform_report_rom" report in the "core" jamrules ; -- Fix-up Reset -- * no longer rely on acpica ; * instead, enable (and rely on) ps2_drv reset, which is compatible with most devices old and new ; * in the future I could also enable pc_platform_drv reset if needed on some devices ; -- jamfiles -- * use mainline "pc_usb_drv" instead of legacy one, now that I download the driver from the depot I'm back in business despite not compiling it myself ; * OSS: add vfs_oss.lib.so now that I use it in my suite ; -- TESTS on BARE METAL -- * I can now both reset and power-off on all my test devices ; check-in: 6077b9a1ec user: user tags: trunk | |
| 17:27 | fossil-add Haiku R1/b1 verbatim: BStopWatch -- * handy to get a "feel" of vfs perf ; fossil-add MediaKit back-end -- * Audio-Out targetting OSS plug-in (didn't get "direct" code to work, OSS works well anyway) ; * LibAV for decoding MP3 etc files (inspired by Genode's sample code, thanks!) ; * that's Part 1, still need to commit BMediaFile et al ; TESTS on BARE METAL -- * continuing multi-hour tests ; * sometimes the audio chain gets 'stuck', will refit the buffer sizes, loops, etc, hopefully that'll be it ; check-in: 05d8a123f2 user: user tags: trunk | |
|
2022-12-26
| ||
| 20:12 | Fix-up/Improve FS indexer -- * implement index persistency (load in ctor, save after each write) ; * chroot the underlying FS (e.g. ntfs) inside a subfolder named "_Hai_Genode_Root_Folder_" ; * (or rather, "chroot to within a subfolder in the supporting FS") ; * fix type handling (filter out non-string attrs, we don't want to index e.g. binary data!) ; * fix running in pure-Genode vfs server (missing symbol) ; * fix run-away loop in index-walker (was not checking end-of-buffer) ; * fix build (misplaced #endif) ; Fix-up GUI -- * add an ugly wireframe substitute for missing canvas.FillArc() implementation, better than nothing for navigating Pie Menus ; * redirect canvas.FillTriangle() (make it a wiry polygon for now) as that "crashes" on zero-alloc in Polygon code, will investigate later ; TESTS on BARE METAL -- * tested on r61/t410/t430 with full distro scenario (indexed attributes are assigned and queried-for correctly, even across boot-ups) ; check-in: 9f18ae4e83 user: user tags: trunk | |
|
2022-12-18
| ||
| 11:54 | Fix-up GUI, Fix-up FS, Optimize FS -- * vfs_fuse_ntfs: synchronize "hiberfile.sys" check with read/write mode ; this allows mounting hibernated partitions, so long as they're mounted R/O ; * BWindow: fix _FindView() so that it finds views even when ScrollBy()'d, in e.g. a BFilePanel ; * LongAndDragTrackingFilter: add a bug diagnostic for the benefit of upstream (!), re. get_click_speed() sometimes getting messed up, exclusively in upstream (not in HoG), with cascading effects on "long click detection/RMB emulation" ; * libroot_build/fs.cpp: backport upstream hai optimization of normalize_dir_path() by ws ; Improve Attributes and BQuery compatibility with server and clients -- * vfs_fuse_ntfs: provide strncmp() otherwise we abort() on xattr writing ; * vfs_fuse_ntfs: accomodate "remote vfs server" use case, so that Attributes and BQuery work even through a vfs server ; * indexer: add sanity checks to detect mis-configuration ; * indexer: mirroring the changes in vfs_fuse_ntfs, we need to accomodate call patterns originating from vfs-server : unlike when using a local-fs, vfs-server will route XAttr usage and BQuery usage through leaf_path() and directory() ; * indexer: in query predicates we now allow spaces around operators (e.g. "Artist == RogerWaters") and unquotted operands , to accomodate Lightning ; TESTS on BARE METAL -- * with this and upcoming acquire_sem() fixes, BFilePanel is getting truly nice to use ; check-in: fcaf944286 user: user tags: trunk | |
|
2022-11-22
| ||
| 20:30 | InterfaceKit & BFilePanel improvements -- * BWindow: implement rendering of scrolled BViews (good enough to just Invalidate()) ; * BView: make CopyBits() good-enough for Tracker/BFilePanel live updates ; * BView: make B_OP_BLEND good-enough for Tracker/BFilepanel selection ; * mini input_server: implement double-click (!) ; AppKit & BfilePanel workaround -- * BMessageRunner: stay quiet on non-infinite runs, otherwise it triggers multiple long-click events in Tracker/BFilePanel until the runner gets reset by a mouse-up ; TESTS on BARE METAL -- * looking good ! BFilePanel is now quite usable for picking files ; * there remains one crashing bug though, "Error: attempt to allocate zero-size block from heap" ; check-in: 75f5e0fbe1 user: user tags: trunk | |
|
2022-11-06
| ||
| 10:39 | Fix/Improve Readdir and XAttr in NTFS -- * Add xml-config flag to choose between read-only and read-write ; * Fix read-only support (MUST be specified with the 'ctx->ro' flag !) ; * Fix xattr support (must enable with 'ctx->streams = NF_STREAMS_INTERFACE_XATTR' flag) ; * Improve logging with coloring and proper va_arg handling ; New XAttr scheme in LibRoot -- * move away from ioctl() scheme, in fact we only want Genode to provide us with the FD base path itself, we can build the extended "magic xattr path" and act on it ourselves ; * thus, adapt to the (newly elaborated) Genode patch (see Wiki) which provides a simplified path_for_genode_fd() accessor instead of extending the existing ioctl() code ; TESTS on BARE METAL -- * I can now read-only mount even hibernated NTFS partitions ; * I can now read *all* NTFS folders on all five test rigs here ; * No XAttr regression, we still pass all "jam t8" tests ; check-in: 3970ec3157 user: user tags: trunk | |
|
2022-10-14
| ||
| 16:14 | fossil-add NTFS (FUSE) vfs plug-in -- * adapted from Genode's world/src/server/fuse (license preserved o.c.) ; * converted from "server" code to "vfs plug-in" code ; * integrated into my build system ; * extended with xattr support ; This is functional enough to pass (most of) the hog testsuite, with several things left to iron out ; This should complete ticket 193 at my end ; check-in: 7473954e0f user: user tags: trunk | |
| 09:29 | FUSE tweaks in support of ntfs-3g: - fill_dir(): make the dirent array/buffer grow as needed ; - init: add a path-to-block-device argument ; - init: provide a logging handler that redirects logging to 'pure' Genode::log() (don't expect an actual libc with printf()), and enable error/critical messages, so that we can see e.g. the reason for mount failures (hibernated partitions e.g.) ; The latter helps the transition to a VFS plug-in (plug-ins can't use the whole/full-fledged libc) ; the dirent fix seems to address an original issue ; check-in: 8b5f676b63 user: user tags: trunk | |
| 08:51 | fossil-add Genode-World ca. 22.08 (verbatim contents, re-organized directory structure): * libfuse (fuse.cc) ; * libc_fuse_ntfs-3g (init.cc) ; That will be the basis for an NTFS FUSE plug-in, in the next commits ; There's more upstream, but let's only import files that we need to tweak/override, the rest can be used as-is from genode-world check-in: 94019faf10 user: user tags: trunk | |
|
2022-10-10
| ||
| 09:29 | Genode 22.08 support -- * no real change required on our side ; * build looks better if silencing -Wno-deprecated-copy though, so do that ; TESTS (BARE METAL) -- Tested on everything I have in reach here ; acpica works again, something must have changed in Genode 22.08 ; no regression found ; now let's apply vfs optimizations (in next iteration) and find out whether I can tie that off ! check-in: a9750f0df8 user: user tags: new-genode-rev, trunk | |
|
2022-10-06
| ||
| 16:51 | Genode 22.05 support -- * build/integration: use new hash for jpeg lib ; * build/integration: use "legacy_pc_usb_host_drv" instead of "x86_pc_usb_host_drv" (was true in 22.02 as well but forgot it in the previous commit) ; * that might disappear in the future, at which point I'll need to find out why I can't build the new usb-host ; TESTS (BARE METAL) -- * audio tested ok on a couple TPs ; * usb-hid tested ok on a couple TPs ; * acpica reset still no-go on TPs (and on TC?), same as in 22.02, turns out it crashes on start : "acpica: detected ec", followed by "quota guard <Ram> error... abort", and that does not go away even if the ram quota is increased to 150 MB ; check-in: 9939527bdc user: user tags: new-genode-rev, trunk | |
|
2022-10-04
| ||
| 12:45 | Genode 22.02 support: * indexer: class Genode::Token now requires a second predicate -> add it ; * build/integration: seems 'platform_drv' is now named 'legacy_pc_platform_drv' -> adapt build ; * build system: default to gcc10 (not gcc8), now we're in sync with the Wiki ; * build system: another fix, in interface_private ; * build system: fix out-of-tree app builds (refer to the hog tree, not to the out-of-tree app) ; * build system: fix build of broker (only "haiku" apps should link against haiku.lib.so, not "GenodeExe" apps) ; check-in: b97d6aa6a2 user: user tags: new-genode-rev, trunk | |
|
2022-09-27
| ||
| 19:31 | Genode 21.11 support: * Fix build basics (running late), how to find headers etc ; * Add support for official (GCC10-based) toolchain - various build fixes, stricter header requirements, use "genode world" foldername/hash for libav as per updated build directions, etc ; * Tweak nitpicker "focus", that fixes the build (that wasn't an issue in my other repo though) ; TESTING: I'm in a rush to get to 22.02 and test the block/vfs speed-ups, but jam t6 looks good in qemu at least ; check-in: af4cad46e4 user: user tags: new-genode-rev, trunk | |
|
2022-07-21
| ||
| 17:58 | clean-up config, tracing, add todo's: Configuration: - config XML: tweak some report_rom etc configs, to restore audio/mixer/etc function ; - jam: break rule AddHaikuLibs... out of rule AddInteractiveComponents, since some lightweight scenarios only need the libs but not the rest ; - jam: move vesa_fb_drv to rule AddInteractiveComponents where it belongs, for the same reason ; - jam: use those changes to make hog-bench.run as lean as possible ; Benchmarks: - added benchmarks for normalize() in preparation for its optimization (sourced from upstream), which should be spectacular ; check-in: f41fec1ef6 user: ttcoder tags: trunk | |
|
2022-07-18
| ||
| 12:14 | FIX window "black canvas" refresh, ADD screen resolution handling: - BWindow: stability FIX (?): removed a lock in GetDecorations(), seems deadlocks are gone now ; - BWindow: fix initial "black canvas until clicked" and "wrong initial geometry" on some windows, eg deskbar calendar, file panel, AK settings, etc (refactor code into _Adopt() and such) ; - BWindow: fix some windows appearing before their Show() method is called (e.g. file panel) ; - BWindow: fix/finish SetSizeLimits() ; - BScreen: add resolution retrieval from nitpicker, we no longer hardcode the resolution to 1024x768, since tests are starting to use (higher) native resolutions now ; Qemu TESTS: we pass: jam t8 ; jam hog-demos ; jam deskbar ; BARE METAL: we pass "jam tts-distro" on: M73 (needs specific VESA resolution) ; F2A55 (VESA same, and still no USB) ; 430 (still no USB) ; 530 (everything works) ; R61 ; check-in: 94844f66c7 user: ttcoder tags: trunk | |
|
2022-07-14
| ||
| 16:24 | kern_shutdown() implemented, with ACPICA, invokable via newly-enabled Deskbar menu: - hai-kernel-emul: implement _kern_shutdown() by feeding a "reset" to a report_rom, which forwards it to ACPICA ; - registrar: add one-liner _kern_shutdown() call (will enable full-blown fShutdownProcess later) ; - Deskbar: enabled roster.ShutDown() call to registrar ; - Deskbar unit test: added ACPICA/registrar/etc config (enabled by Deskbar_FULL_TEST variable ) ; - Deskbar unit test: fixed main menu (was empty for lack of /system/data/deskbar/menu_entries directory) ; TESTS: one may now launch "jam hog-deskbar.emu8", open the deskbar menu, click "Shutdown", and reboot ; BARE METAL TESTS: shutdown-reset works on M73/F2A55/530/430 ; check-in: f64dfe324a user: ttcoder tags: trunk | |
|
2022-07-08
| ||
| 17:12 | Improve config (decorations, logging, USB-HID): Improve config file to allow for simultaneous use of Haiku and Genode window decorations: - Haiku apps talk to Nitpicker directly ; - Genode apps talk to Decorator and WM, which then handles nitpicker ; - hog-demos.run: demonstrate the above by invoking Nano3D, with Genode decorations, side by side with Haiku demos using their own window decorations, yay ; Logging: - re-route some logging to terminal (when and if available), that comes in handy when testing e.g. USB-HID on bare-metal ; USB-HID: - increase ram and cap quotas where needed ; - disable all except EHCI ; Misc: - increase qemu memory to accomodate TTS distro scenarios ; BARE METAL TESTING: tested (especially) jam tts-distro.run, on T4x0 laptops and M73, USB-HID looks good now with just EHCI enabled ; check-in: 6acf9ca48c user: ttcoder tags: trunk | |
| 07:57 | Tweaks for Tracker/Deskbar/desktop: - BMenu: disable menu 'triggers' (BeOS-style label underscores), in line with modern Haiku ; - BDateTimeFormat: implement date as used in detailed folder listings ; - BStringFormat: implement phrase e.g. "2 items" as used in folder footer ; - BStatable: enable GetPermissions(), using FreeBSD libc's ALLPERMS mask ; - Tracker find-panel: fix small issue in upstream, saves us an stderr warning about "resize mode/flags swapped" ; - dev_for_path(): restore upstream reliance on stat(), now that stat() sets the correct device in all cases (even for top level "/boot" path) ; check-in: 320cc91566 user: ttcoder tags: trunk | |
|
2022-06-27
| ||
| 17:11 | Stability fixes, leaked threads/caps fixes: Fix cap leaks, and Fix bunch of locking issues, that show up in "jam t8" even with a simple test case like (new BLooper)->Run() ; Threads: implement join() and call it from thread dtor, so that we no longer leak pthreads (one capability is leaked for each thread that is not join()ed) ; make sure to not hold the lock whilst calling pthread_join(), otherwise we might deadlock ! ; that stuff is more finisky than I thought... Hoping to get it all more or less right soon ; Threads: re-organize to no longer have Haiku code running in Genode threads, particularly the "main ep" (re. pthread_self() returning non-nil, without talking of an "alien thread"); thus find_thread(NULL) is no longer broken, and likewise for BLocker which was hurting as it relies heavily on it; that fixes a bunch of errors and tripped Asserts I was getting since working on complex scenarios like Tracker : among others, had "Looper must be locked", "looperlist is not locked; proceed at great risk", "Unlocking BLocker with sem .. from wrong thread", and so on; ("View method requires owner and doesn't have one." also occured, for some reason); BMessageRunner: make the haiku code run in a "haiku" thread and not in the Genode sig-handler ; with that last bit done, we can now enable the "cannot find (p)thread" warning and not get flooded by it ; BENCHMARK: add a "basic-bench.cpp" file to exhibit that it takes several ms to do some fs operations, at least in Qemu, will need to keep an eye on that ; TESTS: jam t8 passes ; jam hog-tracker looks good, no longer leaks much ro at all ; in jam hog-demos, Pulse leaks thread/caps, requests caps after circa 9 "About-box-from-popup", but seems to no longer deadlock/lock-up now ; testing on bare metal soon ; check-in: 91124b6732 user: ttcoder tags: trunk | |
|
2022-06-23
| ||
| 19:32 | Diagram: as suggested, add a pikchr diagram that "stacks up" Haiku components side by side with haiku-on-genode components for comparison ; also clean-up the project presentation and folder layout. check-in: 0beda65754 user: ttcoder tags: trunk | |
|
2022-06-16
| ||
| 18:39 | Add window Decorations and client-side WM, Fix Canvas primitives : - (re-)enable client-side window manager, and beef it up, it should serve us well in the short term ; - add bare-bones client-side window decorations, they make us look good enough for making screenshots and (in tandem with CS WM) for basic window manipulations (moving, closing, pull to front, send to back) ; - fix a small off-by-one in Haiku's tab-height code ; - fix canvas.StrokeLine(), which was missing the last pixel in some cases (both in my algorithm and in Genode's :-) ; - Tracker: add a few (missed) dependancies ; TESTS: we pass the following tests in QEMU, though with stability issues when moving windows around or invoking popup->About in Pulse ; we tend to lock-up in pthread join(), and the old issue re. "haiku code called from Genode sigh" problem is more problematic now, but I hope to address it soon : jam hog-demos.emu6 jam hog-tracker.emu8 jam tts-prod check-in: 4057559dba user: ttcoder tags: trunk | |
|
2022-06-07
| ||
| 10:39 | Tracker and Deskbar: enable their build, make their port "good enough" to be limping along ; - add Deskbar dependancies (CalendarView, etc) ; - work-around an as-yet-not-understood display bug in Deskbar (TimeView's clock is offset up for some reason) ; - add Tracker dependancies (ToolBar, DriverSettings, do_mime_update(), debug.c, parsedate.cpp, etc) ; - configure NitPicker with a rule to make Tracker's (e.g. Background) windows appear _behind_ other apps, including Deskbar's ; - work-around compat issues (no dynamic mounting, dev_t is 64bit instead of 32bit, use GetNextEntry() instead of GetNextDirents(), make notes about raw stat() calls) ; - resources are not yet implemented, so disable their asserts ; Also fix-up the broken markdown code for the indexer Diagram ; TESTS: jam tts-prod.emu8 shows Deskbar and Tracker, sans icons nor bitmaps and with occasional tripped ASSERTs related to handler/looper rel ; however, one can Get-Info, navigate folders, open the Find (query) panel, move/trash/delete item, and so on, yay ; would look better if yellow tabs decorations were implemented though ; check-in: 689c576b66 user: ttcoder tags: trunk | |
|
2022-06-02
| ||
| 16:50 | libroot/FS fixes for Tracker's sake, and misc clean-up: FIX handling of node_ref etc in fs.cpp: - apply (hopefully) thoroughly a new Fixup_Stat() func work-around for the issue in Genode stat() "at device boundary" edge case (/boot having a different device ID than its contents, which breaks Storage Kit, node_ref, and Tracker); - fix a normalization issue (introduced long ago by my buggy optimization) (Tracker choked on it) ; - improve MT thread safety (use re-entrant readdir()) ; - improve test harness for QUICK selective testing (allow to run just some of the tests, life saver when debugging) ; - improve test harness with lots of node_ref (and related) STORAGE tests ; - improve test harness to test for LEAKS (only caps leaks for now, not memory leaks) -- this is actually part of the next upcoming commit, which will fix a thread-related leak ; - improve test for CanvasGenode (a future commit will fix line drawing) ; - improve test harness to test BFilePanel, now that libtracker works ; - add some 'pikchr' diagrams in several places as I'm falling in love with that stuff ; - clean-up misc (broker, indexer) ; TESTS: we pass: jam t8, jam hog-broker, jam hog-demos, jam deskbar (without leaks when opening menus !) ; check-in: 20b70fb141 user: ttcoder tags: trunk | |
|
2022-05-14
| ||
| 14:23 | Broker FIX'es for robustness and flexibility: Fix server-side and client-side Broker code to make sure that write_port() calls do not get their payloads mixed up even if called concurrently from multiple threads (that regression occured recently since port writing is no longer atomic after we've split the unique RPC call in two halves to handle unlimited-length payloads) ; we now accumulate the whole payload before sending, and have one distinct payload buffer for each thread that calls us ; port writing should be robust for applications now : apps like Deskbar and Tracker can now access the Registrar port without stepping on each others toes and Broker going haywire ; Improve client-side BApplication and libroot: remove the compile-time RUN_WITHOUT_REGISTRAR define, make BApp and libroot flexible enough to handle both "with broker/registrar" and "broker-less" scenarios at runtime : when we are broker-less, report about it with a message but don't cancel app initialization ; this allows us to run hog-demos.run and tts-prod.run from the same build of HoG ; TESTS: we pass jam hog-broker.emu6 ; jam hog-demos.emu6 ; jam t8 ; jam tts-prod.emu8 ; check-in: a77dd29ffc user: ttcoder tags: trunk | |
|
2022-04-29
| ||
| 13:19 | Registrar and AppKit: build upon the new "Broker" component to make Registrar run: BRoster: enable _InitMessenger() call, which I had commented out ; Registrar: disable most of it except the Roster part, so that it builds and runs in HoG ; That allows Deskbar, Tracker etc to register at launch, and Deskbar can access the list of (registered) running apps and list "Tracker" in its tray ; BApplication needs some more work to be commit-ready (still retains a hack re. Team() handling), will work on a clean fix for the underlying problem ; TESTS: we pass "jam tts-prod.emu8" (with the yet-uncommited hack) ; check-in: a2a13e07cc user: ttcoder tags: trunk | |
|
2022-04-25
| ||
| 18:19 | Broker: make it work well enough to register an app in the registrar/roster (which will be commited soon) and to use a BMessenger targetted to an app signature: add client-side usage of RPC calls in Broker (class Remote also has some early non-RPC prototype code, deprecated even before this commit) ; improve server build (do not link against haiku.lib.so, we only need libc.so) ; improve server-side discovery of pipes (no longer hardcoded, so one needs only edit the run/config file to add new pipes now -- however I had to change the pipe directory layout, due to some readdir() issues) ; fix read_port_etc() so that it returns -1 (and not 0) on no-message-waiting condition -- the discrepancy was just very noticeable before, but became a deal breaker with the more advanced state of testing these days ; fix read_port_etc() to return the byte count instead of B_OK on success, for the same reason (that bug became a deal breaker with newer apps and tests) ; TESTS: we pass "jam hog-broker.emu6", "jam t8", "jam tts-prod.emu8" (though the latter sometimes shows a race condition, probably in writeport_*) ; check-in: 276daebcc3 user: ttcoder tags: trunk | |
|
2022-04-18
| ||
| 12:08 | Locale Kit: sever the dependancy on overly complex ICU library ; we can now build this kit stand-alone, leveraging simple calls to strftime() etc ; this helps with building Tracker, and Deskbar's clock and calendar display seconds and days, hardcoded to English locale (good enough for our needs). check-in: af2965b4e0 user: ttcoder tags: trunk | |
|
2022-04-11
| ||
| 16:21 | fossil-add Haiku R1/b1 verbatim: Registrar (only the subset of files needed for its "Roster" feature) ; will need only a few tweaks to work with Broker (added this past week). check-in: fdb6fca486 user: ttcoder tags: trunk | |
|
2022-04-10
| ||
| 16:20 | fossil-add Broker: a Genode server that allows write_port() to work across components; includes some remed out early code, since abandoned; tested to work with Registrar and a simple test client (still have to commit the corresponding changes in libroot, client-side) check-in: 35ad585fdc user: ttcoder tags: trunk | |
|
2022-04-09
| ||
| 14:45 | hog-services (fossil-renamed from hai-services): flush some minor clean-ups, to make way for upcoming fossil-add of "Broker" component. check-in: 75bb0b018e user: ttcoder tags: trunk | |
|
2022-03-07
| ||
| 17:37 | fossil-add & Porting work: enable code needed to compile Deskbar/Tracker, tweak Deskbar/Tracker itself Part 1: - dev_t is 64bit on BSD, and must remain that way, so change all FindInt32's into FindInt64's ; and adapt "PRI"nt macros as well (oddly, they are duplicated in both HaikuCompat.h and StorageDefs.h) ; also need to change inodes, which are unsigned now in HoG ; - get rid of "stat_beos", we'll use plain "stat" everywhere, even in BFilePanel ; - clean-up Jamfiles ; - more to come in Part 2 ; check-in: 44f5e4ff29 user: ttcoder tags: trunk | |
|
2022-03-01
| ||
| 16:53 | fossil-add Haiku R1/b1 verbatim (mostly): Deskbar and Tracker dependancies: interface/locale/shared/storage/support/translation kits ; Note : MergedDirectory is the instance from upstream/libroot-build, instead of from upstream/src, for compatibility reasons. check-in: cb2796c1de user: ttcoder tags: trunk | |
|
2022-02-25
| ||
| 16:09 | fossil-add Haiku R1/b1 verbatim: kits/tracker (this clobbers/resets the premature Jamfile) check-in: 75c51db51a user: ttcoder tags: trunk | |
| 15:36 | fossil-add Haiku R1/b1 verbatim: apps/deskbar check-in: aa745a4275 user: ttcoder tags: trunk | |
|
2022-02-11
| ||
| 20:24 | Jamfile improvements, VFS 'pure' server: - now that the (still out-of-tree) NTFS driver seems to be free of libc dependancies, it may run in a 'pure' server, so change indexer/hog-people.run scenario to take advantage of that ; - the .run scenarios can now be specified with extensions such as "foo.emu6" or "foo.iso6", where "emu" automatically optimizes the build for Qemu, "iso", creates a full image, and "6" can be in the 1-9 range to define the build-level (how much of haiku-lib to create) ; - this is much cleaner than having to hardcode each new run scenario in the top jamfile ; however "jam t1" etc remain unchanged (some hardcoded rules are provided for convenience, no need to specify "hog-test.emu6") ; - clean-up and separate jam "rules" and jam "executions" (e.g. if the hog-demo scenario is defined in jamrules, some stuff might be unavailable yet at that early stage !), plus various other clean-ups, plus removed mentions of a potential libc readlink() bug, since the bug was actually in my NTFS driver code ; TESTS: - t1-t7: seems A-OK ; - ak.run: ok ; - lightning.run: ok ; - mmd.run (which will become "mmd.emu7" soon): would almost run.... except that the elusive "cannot find vfs_indexer.lib.so target" problem prevents it ; - cc6.run (AutoCast): builds and runs, yay ; check-in: 799db1f1d9 user: ttcoder tags: trunk | |
|
2022-02-01
| ||
| 17:00 | Indexer/BQuery improvement: Import the public domain short & sweet "MatchUTF8 v1.4" pattern matcher from AGMS (thanks Alex !!). TESTS: we can now effortlessly match case insensitive queries (from e.g. Lightning) like e.g. "[pP][iI][nN][kK]*[fF][lL][oO][yY][dD]". This takes us much/most of the way to having full query parsing support (will return to it later, when time comes to focus on Lightning). check-in: 6ab6775dcc user: ttcoder tags: trunk | |
|
2022-01-27
| ||
| 10:43 | SymLink FIXES: fix handling of symbolic links, in indexer and libroot-build, so that MMD works ; - handle EPERM, which is returned when symlinks are not supported by an FS ; - added implementation of openlink() in Indexer, but that was far from enough : - needed some extensive changes, including subclassing Genode vfs-handles (seems the trouble ran deeper than symlinks and was related to deep folder hierarchy handling in fact) ; - took me some time to figure out I needed to override queue_read() as well ; Plus: - BVolume & friends : dev_for_path() should not crash if passed a NULL path ; - Qemu optim: use ps/2 input, much faster than USB in Qemu ; TESTS: - beef up symlink and deep-folders testing ; - we now pass all jam-t7 tests, including SymLink related ones ; except the readlink() return-code test, but that seems to be a Genode libc issue (will file a ticket) ; TTS MakeMyDay was in need of all this, and now generates ProgramLog playlists ; check-in: d7bbc0062c user: ttcoder tags: trunk | |
|
2022-01-20
| ||
| 13:54 | InterfaceKit, BWindow: fix routing of keyboard events ; (needed a particular BMessenger "token", input-server/app_server style) ; TESTS: this seems to work well, e.g. typing attributes in MakeMyDay. check-in: 8c5e3ff531 user: ttcoder tags: trunk | |
|
2022-01-17
| ||
| 17:27 | Indexer: Bring it (close) to production grade, with the vfs_indexer.so component doing its job maintaining the index and answering queries, and BQuery and friends collecting results as needed. TODO: just need to save/load the index to disk (it's only in memory for now) for persistency ; TODO: the query predicate parser only handles one clause for now, extend it to support multi-clause predicates ; TESTING: we pass simple tests (at "jam t7" level for now, might change to t8 later) which use two ways of setting the predicate, test for findable and non-findable cases, etc. check-in: 816ddd6ecd user: ttcoder tags: trunk | |
|
2022-01-08
| ||
| 17:15 | Indexer: this new component will allow us to support BQuery ; first steps: the 'skeleton' is mostly complete, already can snoop on attribute creation/change/deletion ; will implement storage and querying next. check-in: 388b73909b user: ttcoder tags: trunk | |
|
2021-12-29
| ||
| 11:21 | StorageKit: XAttr support: take advantage of Genode's xattr support (ticket 4346) and Genode's VFS plug-in for NTFS (currently "vfs_fuse.lib.so" but will be renamed to "vfs_fuse-ntfs.lib.so") being introduced in ticket genode-world:193, augmented with my patch for NTFS-native xattr support... And use those to (finally) get attribute read/write support in HoG :-) Details: - unearthed some important Haiku FIXME's, e.g. two instances of upstream code allocating 10+ KB on the stack (!) ; - fs_attr_extattr.h will host the Genode ioctl opcodes, until the ticket is resolved and a proper home is found for them ; - function _kern_open_attr_dir() had mismatching header and implementation signatures, had to fix that for the code to link ; maybe upstream does not see that problem because they don't need to resolve that symbol at link time, or use the (generic) stub ? ; - add (back) handling of AHCI block device/image in Qemu ; - augment "jam t6" test level with vfs_fuse.lib.so and an NTFS test image ; TESTS: we pass all attribute tests in Qemu, yay. Next up, an attribute indexer to support BQuery (and will have to bring BFS r/o support up to date too). check-in: a0455de065 user: ttcoder tags: trunk | |
|
2021-10-29
| ||
| 13:06 | Genode 21.08 support: - Use new LibC foldername/hash in jam files ; - Modify USB-HID usage in jam files (the monolithic all-in-one usb_drv has been retired, must now package and refer to 2 distinct components, "usb_host_drv" and "usb_hid_drv") ; - TESTING: the past few weeks I had succeeded in getting USB mouse/kbd to work on my T410 (probably with the "bios handover" flag?), will test to check for regression when going from 21.05 to 21.08, looks good so far; QEMU testing is conclusive check-in: d33a06ff8d user: ttcoder tags: new-genode-rev, trunk | |
|
2021-10-15
| ||
| 12:28 | Build fixes: 1) all builds that rely on BDirectory (spurious 'debug' variable ref) ; 2) jam-t6 build (was not linking against BVolumeRoster) check-in: 948af80a94 user: ttcoder tags: trunk | |
|
2021-08-21
| ||
| 19:43 | StorageKit : ADD BVolume support, FIX BDirectory etc support : HaikuBuildCompatibility.h : override FreeBSD libc's definition of dev_t (which is unsigned), make it signed ; this FIXES directory etc handling since Haiku code repeatedly checks for negative values as error reporting, and would go haywire if always positive ; BDirectory : FIX iterating over children : my initial take for filling out the inode number was incorrect (was the child's ino_t instead of parent/dir's ino_t) ; BEntry : _SetTo() no longer enforces its "traverse" parameter for now, and breaks out before calling _kern_open_parent_dir() ; this quick FIX/work-around allows create_directory() to work ; will look for a root cause later -- might be a defect in my code, but it's also possible that the original "libroot-build" code is incomplete, since it's not meant for production but only for compile-time tools ; libroot/stubs : FIX index stubs whose return value was crashing MMD ; also ADD actual (non stubbed) implementation for dev_for_path(), next_dev() and fs_stat_dev() in fs_info.c ; for now they just hardcode one "/boot" partition, which allows BVolume stuff to work ; libroot/build : fs.cpp : FIX/bridge handling of errno -- Haiku expects errno to be negative, whereas FreeBSD's libc uses positive values ; didn't re-use the upstream libroot-build tech (misc.cpp etc), seems too complex and far-reaching ; layered-tests : add lots of StorageKit testing ; only one fails at the moment ; TESTS : MakeMyDay now gets to the last (but huge) step before completing playlists, i.e. it calls BQuery ; still lots of work ahead of me, to make indexed queries actually work ; check-in: eab6a4ed11 user: ttcoder tags: trunk | |
| 16:20 | fossil-add Haiku R1/b1 verbatim: libroot/fs_info.c -- for MMD and BVolume. check-in: be8bcd4340 user: ttcoder tags: trunk | |
|
2021-07-25
| ||
| 17:59 | ADD support for MakeMyDay: InterfaceKit: - enable the last BView.DrawBitmapAsync() variant that was missing ; That's it, given the previous improvements, that was the last missing piece as far as MMD is concerned ; next I'll work on Storage Kit so that MMD can actually create and edit files (playlists) for AutoCast ; too bad I'm busy IRL these days or I'd make faster progress on this... check-in: 6b11d11a2d user: ttcoder tags: trunk | |
|
2021-07-08
| ||
| 14:59 | FIX buffer overflow regression ; ADD support for Lightning : GeCanvas: - fix an off-by-one when setting clientFrame, introduced in previous commit -- in some apps (e.g. Lightning) that draw to the very edge of their canvas, the off-by-one would result in writing outside the canvas/framebuffer ; unlike in Haiku, in Genode this kind of overflow is detected right away, yay for Genode ! ; StorageKit: - enable 3 BFilePanel stubs, used by Lightning ; Libroot: - enable kill_thread() stub, for Lightning ; check-in: 35957a7dc2 user: ttcoder tags: trunk | |
|
2021-07-06
| ||
| 16:40 | IMPROVE painting of gradients/shades ; ADD support for ArmyKnifeTTS : Enable gradients thanks to Genode's shaded-polygon : - FillRect(gradient) now works : BButtons no longer look "flat", same for BMenuBar, we look even closer to genuine Haiku Control Look now ; - also make provisions for painting client-side (!) window decorations, might come in handy soon ; Jamrules can now be used by external app builds : - parametrize to allow out-of-tree building (when $TOP is not equal to HoG's top folder) ; - in jamrules-qemu, make auto location of binaries more robust/deterministic, otherwise it might fail and produce mysteriously non-functioning programs if the search path includes several, incompatible variants of a binary (e.g. a libc.abi and a libc.lib, masked under the same leafname) ; - plus, in jamrules-qemu-hog, add remainder of my WIP window-manager attempt (dormant for now) ; Headers : - move some headers to public-access for use by apps ; Libroot : - enable stubs for BFS's indexing functions ; - also don't use exit() as it crashes for some reason ; Kits : - enable StrokePolygon/FillPolygon() ; - enable a couple more methods (stubs) in FilePanel.h ; check-in: e616ca26b7 user: ttcoder tags: trunk | |
|
2021-07-05
| ||
| 11:03 | fossil-add Haiku R1/b1 verbatim: BListView, BPolygon & friends -- those are the ones needed to build ArmyKnifeTTS for HoG. check-in: fa1ff8328d user: ttcoder tags: trunk | |
|
2021-06-25
| ||
| 16:36 | BWindow: FIX painting regression, FIX input-evens window coords: - Painting: trigger a BWindow repaint (through "dirtyRect") whenever Show() is called out of hiding, not just from initial Ctor ; indeed BMenu re-uses the same window to display successive menus with Hide()/Show(), which gave us trouble in e.g. Mandelbrot's pull down menus ; - Input events: move more (most) of the action from the Genode sigh to the pthread ; - That allows us to resume calling BWindow.MoveTo() etc directly, as we were doing before, which fixes the mouse coordinates bug in HAS_MICRO_WINMANAGER mode ; - Didn't re-test window_layout & wm, but I assume they are still affected by the bug ; I'll use my micro-wm for a while, but will need to attend to WMs sooner or later and find a more general bug-fix ; TESTS: - oddly, Mandelbrot seems to draw 15 or 20 times faster (in qemu) than before, not sure of the reason or of the commit when that changed ; maybe it's after switching back to "beta1" (instead of haiku-beta2) Mandelbrot code in my local workspace ? Anyway, good to have ; check-in: 68b23231dc user: ttcoder tags: trunk | |
|
2021-06-24
| ||
| 19:27 | FIX build issues on Linux, IMPROVE tests: - Jamrules and jam/*: configure toolchain and lib-gcc and stdcxx for gcc8, so that HoG gets easily compiled for "sculpt-21.03" out of the box (will update to gcc10 once SculptOS gets past 21.05) ; Oddly, one of the three libgcc references could be simply commented out, instead of updated ; Suppress warnings that appear in gcc8 re. deprecated register keyword ; Comment out a #define in SupportKit that clashes with BSD libc, seems quite good enough ; Remove qemu parameter re. physical disk, a left-over from my old experiments on BFS, oops ; Move some stray "#" chars out of the way since they confuse some variants of Jam and make it produce corrupt XML config files ; - Tests: use correct VFS syntax for Ram FS in support of unit tests, and use it to test B_CREATE_FILE ; check-in: 1940e233b1 user: ttcoder tags: trunk | |
|
2021-06-23
| ||
| 13:57 | More Linux build fixes, some related to Linux's FTJam vs. Haiku's jam, some related to nasty overlooks coming from me: - top-level Jamfile: detect when Jam does not implement JAM_TARGETS (e.g. FTJam), tweak the settings we can, and verbosely advise the user on setting what we cannot set ourselves (i.e. don't use "jam t1", use "jam hog-test.run" instead) - rem out "SubInclude bfs-on-genode" in case it still causes trouble after that change, since we don't implement it (yet) for recent Genode anyway ; - Jamrules: add a configuration variable "VersionLibGCC" : I had overlooked a couple hardcoded paths to GCC6.3.0's libgcc, oops ; make it default to 8.3.0 ; - Jamrules: adjusted "-std=gnu++17" (instead of ++11), otherwise we can't compile repos/base/include/timer/timeout.h (didn't see that because that file is among those I had to "patch" to build Genode with GCC6) ; - Jamrules: seems GCC6 and GCC10 use different stdcxx include paths, so added the one needed by GCC10 side by side with the old one ; Careful if you have local changes, Fossil will probably trigger a 3-way merge when you "fossil up", might make sense to start off fresh with "fossil clone" instead of pulling changes. @Norman : if we end up doing another iteration, let's maybe agree on a default value to the "GenodeRepos" variable that is convenient for you, so that you don't need to adjust that variable when you "fossil clone" the repo... You've been through enough hassle already :-) check-in: 80ccef2fea user: ttcoder tags: trunk | |
|
2021-06-22
| ||
| 19:18 | Also rem out unused "nit_focus" for good measure (has the previous commit made it to chiselapp BTW ?) check-in: f7be40efb9 user: ttcoder tags: trunk | |
| 19:10 | jamrules-qemu-hog: rem out the "nitpicker.config" ROM component, as it crashes the build process in some cases (at least FT-Jam on Ubuntu) and prevents others from replicating my build. Seems to not matter anyway, I can still run "jam t1" successfully with this commit applied. check-in: f11cffc0ef user: ttcoder tags: trunk | |
|
2021-06-14
| ||
| 19:57 | Enable Mandelbrot and Clock; jam feels a little... imperfect, at times. check-in: 0ff682ea2b user: ttcoder tags: release, trunk | |
| 19:46 | Fix build (misplaced antislash, and misconfigured rem-out). check-in: 0fcb0e6c82 user: ttcoder tags: trunk | |
| 19:26 | Window Manager: - early attempt, remed out as it's unsuccesful for now (the BWindow does not appear on screen, it only does so if I re-attach it to "nitpicker" instead of "wm", will investigate) ; Fix build: turns out there were problems all this time that I was not aware of, due to my in-situ builds; now that I tried a "from scratch" build I became aware of these: - the "t1" build was missing the defaultfont-tff ; - one of the haiku.lib.so paths was hardcoded to my local FS, oops ; Will reach out soon. check-in: 39021db97d user: ttcoder tags: trunk | |
| 10:47 | Fix-up support for Genode 20.02 and up: - implement Haiku threads based on POSIX pthreads instead of using Genode::Thread directly, otherwise we get trouble from Haiku code as soon as it uses libc stuff (even very indirectly) such as errno, or as soon as a a thread attempts to locate "self" ; this removes the need to patch Genode : we now run on "stock" Genode ; _WindowNitpickerPriv : stop using Haiku BLocker (which relies on Haiku's find_thread/self) in the Genode signal handler, use Genode::Mutex instead ; a thread that is Genode-only can not (any more) rely on find_thread() wizardry and such. - micro-window-manager: change window geometry with Nitpicker directly, instead of calling Haiku code, for the same reason as above ; although micro-WM is being phased out anyway ; - misc clean-ups - USB HID: try to use "bios hand-off", though seems to make no difference on my T410 TODO/FIXME: class BWindow has a copy of the (nitpicker) geometry, which previously was kept in sync by the micro-WM until now ; need a new way to keep it in sync, so that mouse interaction continues to work correctly ; I'm going to (at last, after 2+ years) add a proper WM to my test scenarios to investigate check-in: 0afd71063f user: ttcoder tags: trunk | |
|
2021-06-10
| ||
| 16:00 | Genode 21.05 support: - Jamrules: the toolchain now lives at /usr/local/..../21.05 (not 19.05 any more) ; - contrib: new jpeg and stdcxx libs so adjust "contrib" folder paths (also one change in Jamrules, for stdcxx headers). I'm now all caught up with Genode's latest and greatest. Will commit my "pthread" fix soon, and then resume talks. TESTING: demos, AutoCast, all seems fine in qemu and bare metal ; my old T410 still only has ps/2 mouse input though, maybe a regression in the USB driver ? or maybe using "BIOS handover" would help ? check-in: 55b1abfa99 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-06-08
| ||
| 20:03 | Genode 21.02 support: - seems "core-nova.o" is now named "core-nova.a" ; - re-enabled event_filter -- does not restore xray mode etc but should restore full mouse support ; - fixed routing mishap in config of platform_drv which was tolerated until now, but would now make it fail ; Off-repo notes: - updated terminal_log stuff for AC (connect directly to nitpicker, no longer use gui_fb) ; - regression of sorts: when set for an initial size of 800x600, the terminal 1) gets to full-screen size, on both qemu in bare metal (mildly annoying) and 2) gets in front of of the AC window (only on bare metal, not qemu), making it inaccessible ; both issues will be solved once I use a proper WindowManager probably ? - gcc6 adventures: gcc couldn't find the "this" pointer in a lambda inside platform_drv, so had to create a local var with a copy of "this" and have it captured by the lambda ; easy peasy once I understood the situation ; check-in: de16e88551 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-06-07
| ||
| 15:31 | Genode 20.11 support: - the audio driver is now named "pci_audio_drv" (instead of "audio_drv") ; - add support for USB-OHCI, might help with my T410 among others ; (or maybe the problem is due to the T410 using ps2 primarily, at the exclusion of USB, due to event_filter being remed out ?) ; - also did some heavy work dealing with pthreads and the like, but will commit only later check-in: c2093165a4 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-06-03
| ||
| 19:29 | "FIX": mouse input works again (USB for sure, tested bare-metal) : remed out event_filter, and added focus="click" nitpicker domain policy ; BUG: still no "xray" mode, still no focus indication in status bar ; but I can limp along to further Genode upgrades at least ; fossil-add Haiku R1/b1 verbatim: tracker/FilePanel.cpp (for AC) check-in: 431e53fc23 user: ttcoder tags: trunk | |
|
2021-06-02
| ||
| 19:08 | Genode 20.08 support: - gui: apply new "Gui::" namespace in C++, tweak run files and so on ; the Genode release notes are of great help here ; - libroot and kinda-kernel: use Mutex instead of Lock ; - stdcxx: dodged a new update ; took (silly-)me a while to figure out I have to revert not only contrib/ but also repos/libports/stdcxx stuff! ; - grub2: got updated, so refactor my run files to handle the change cleanly ; - libc: git messed up bad (after doig "git checkout.."), took me a while to realize that the tons of errors I was seeing were due to the awful mess if made of the source tree ; apparently it got confused because the commit entailed moving files around ; had to start off clean with a "git clone" instead, sigh, par for the course with git ; BUG/REGRESSION: mouse/keyboard input via USB does not work ([init -> event_filter] Warning: no policy defined for label 'usb_drv -> ') ; only ps/2 input works; I must have missed (and messed) something, will look into it. check-in: d5036882ed user: ttcoder tags: new-genode-rev, trunk | |
|
2021-05-31
| ||
| 14:29 | Genode 20.05 support: - Kinda-kernel: class Genode::Semaphore is now a NonCopyable, so tweak code to no longer use copy ctor/operator= (i.e. use std::map on pointers to structures, not directly on structure instances) ; - Jamrules: link against "ldso_so_support.lib.a" (new name, instead of "ldso-startup.lib.a") ; - Nitpicker: node type "configfile" is deprecated/obsoleted in 20.05, replace with config "ROM" instead ; (otherwise we get errors like "[init -> nitpicker] Warning: no policy defined for label 'global_keys_handler -> input'" ) ; TESTED up until now on qemu and real hardware. check-in: 885b477103 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-05-28
| ||
| 19:39 | Genode 20.02 support: The pthread/libc "warning" from 19.11 has turned into a crash of Haiku apps. I'll rewrite my code to use pthreads later on, but for now a stop-gap is a one-line "patch" of Genode. Added an assertion in start-up code, to check for the presence of the patch, make sure that pthread_self() does not return NULL indeed. The patch means "errno" is not set correctly, but we don't depend on it yet in the current scenarios. TESTS: seeing no regression with updated HDA driver, but no progression on AMD system either -- probably needs some tweaking, will look into it soon. check-in: f962414507 user: ttcoder tags: new-genode-rev, trunk | |
| 17:09 | Genode 19.11 support: Initially got the "rom error" at runtime again, so adusted my jam files some more, to be a closer match to Genode's build system (i.e. generalize the "abi" stuff, similar to how we link against "libc.abi.so" instead of "lib.lib.so", and seemingly crucially, we now "cd" to the folder so that the linker can be provided with the very minimal lib filenames). Applications work as usual, except that at runtime I'm getting messages like this one a lot with the libc update: "[init -> Clock] Error: pthread_self() called from alien thread named 'main BApplication thread'..". Seems to cause no harm though (update: trouble came later, in 20.02). Likely related to this: https://github.com/genodelabs/genode/commit/2d55ac7174d0385649a6fa4d9bda2ab4d4cbdd74 -- "Note, any call to libc code from a non-pthread (beside the first entrypoint) is not supported." check-in: b5c37e7227 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-05-24
| ||
| 16:08 | Genode 19.08 support: - it's still possible to compile Genode with gcc6, with an additional tweak: need to rem out "Hex_range.." in libports/src/lib/libc/task.cc ; - libc raises a link/relocation error (relocation R_X86_64_PC32 against symbol `__libc_sigprocmask' can not be used) : need to edit contrib/libc-9252999ee23cfb811e707887ef05bf1283a41597/src/lib/libc/lib/libc/amd64/gen/sigsetjmp.S and apply this patch, which is similar to Genode's "cdefs-no-hidden.patch": - delete call __libc_sigprocmask - add call PIC_PLT(CNAME(_sigprocmask)) TESTED from t1 to t7 test levels, and AutoCast run scenario. check-in: 2737f3ffd0 user: ttcoder tags: new-genode-rev, trunk | |
| 09:06 | Genode 19.02 and 19.05 support (might as well squash both in one commit): 19.02: changes timer driver's build location, but that has little to no bearing on jamfiles or on the wiki ; 19.05: adapt jamfiles for renaming of VESA FrameBuffer driver: fb_drv -> vesa_fb_drv ; adapt to new version of libav and zlib ; interestingly, 19.05 is the rev that switches from Gcc6 to Gcc8, but it's possible to keep compiling with Gcc6, at least this very version, so long as one keeps using the previous stdcxx (using a symlink hack), by passing an empty string to Session_label ctor (include/base/session_label.h, base/trace/types.h, etc), by remming out -Wno-error=implicit-fallthrough (gcc6 does not know that switch, unlike gcc8), and by disabling some "fatal" warnings concerning fallthrough (-Wno-attributes) ; added the latter to Jamrules as it's just the one harmless line, but as to the rest of it, I won't pollute the wiki with (more extensive) Haiku-only hacks only I have to use ; check-in: 5aeb4d01bc user: ttcoder tags: new-genode-rev, trunk | |
|
2021-05-22
| ||
| 15:28 | Genode 18.11 : we'll consider this commit as the reference Genode 18.11 one, before upgrading in the next few days ; Libroot-alternate: enable build ; this implements a number of 'syscalls', which no longer need to be stubbed out, so adjust stub list (and make it subject to "layering") ; NodeRef.h seems to be CR-LF in the haiku source tree, adjust to unix line feeds ; add thread-safety guards in critical places to protect access to shared (static) vars, since we'll use this "alternate" libroot as an actual libroot in a live, multi-threaded OS ; Build jamfiles: factor out "contrib" package version numbers (and depot versions) to an easy-to-maintain auxiliary Jamrules include ; will come in handy when upgrading to Genode 19.x ; link against "ABI" of libc, as linking directly against the "LIB.so" will no longer work in 19.05 ; remove a stray call to "strip" (the host's toolchain, not the Genode toolchain !) that's been there for months, piggy-backing on top of genode-x86-objcopy ... seems it was causing no harm, but still ; add an undocumented "layer zero", to deal with particularly difficult build situations where even linking against libc is undesirable ; add BMediaFile in layer 7 ; InterfaceKit: fix initial painting of BWindow, which would remain previously black in some cases ; MediaKit: add jamfile (but not cpp's for now) ; check-in: 7e2c0234c7 user: ttcoder tags: new-genode-rev, trunk | |
|
2021-05-20
| ||
| 07:52 | LIBROOT.so: fossil-add Haiku R1/b1 verbatim: most of Haiku's "build" libroot, i.e. the alternate variant of their 'glue' library, used when cross building Haiku tools on a foreign platform like Linux and used for accessing file by "entry_refs" (which don't exist on Linux and BSD, where files are accessed by path or by file descriptor only) : the bookkeeping done by fs.cpp on entry_refs and file descriptors and file paths seems to be exactly what we need in Genode/libc/freebsd, and works well in my (still limited) testing ; libroot-build also provides some compatibility for extended attributes, but I'll get to that way down the road, now now ; POSIX: fossil-add *non* verbatim (modified) copies of a subset of Haiku R1/b1 posix headers ; they're meant to override/supplement libc ones, or (importantly) provide haiku-specific requirements like INT8_MAX etc ; not quite sure what I'm doing here yet, but this folder has been that way for months without causing trouble so dang it -- let's commit "as is" for now, in a folder clearly marked as "temporary/override" and we'll revise later as necessary ; With all this, replicating HoG builds should now be possible for anyone cloning this repository and following build instructions ; I now need to upgrade the code to use Genode's latest and greatest ; check-in: 0a472daca7 user: ttcoder tags: trunk | |
|
2021-05-17
| ||
| 19:50 | InterfaceKit: "fix" transparency in AC, with a hack in BBox ; fix excessive flickering by moving Invalidate() calls around ; Jam-build-system: lay some groundwork for cleanly building against Genode 19.x (instead of 18.11 currently); fix binary stripping; move specialized headers (jpeg, texture etc) from global scope to local scope ; implement creation for "grub.cfg" file (looks like for a couple years I was unknowingly just using a copy-pasted-by-hand file instead of a build-system-generated one) ; Layer 7: almost finalized now (add missing bits from App Kit, Mail Kit etc), only missing libroot now ; Deleted: old "mandelbrot" app skeleton dir, since apps are located in misc-apps now ; check-in: a5e75a36f9 user: ttcoder tags: trunk | |
|
2021-05-15
| ||
| 14:30 | Layer 7: StorageKit: more "porting" for AC (NodeMonitor, BQuery) ; CanvasGe: - DrawString() now handles strings that are not null-terminated but length-specified, as used by BTextView ; this fixes the awful looking about boxes and text fields ; - DrawBitmap() now clips (chops) width and height correctly ; this fixes clobbering of BDragger in Clock ; Build Jamfiles: fix audio output ; the mixer was missing, and turns out it was also a case of bad configuration of "report_rom": consolidate both report_roms into one, and make sure they report ACPI correctly... AC plays audio now, like it used to in my private branch, yay ; Optimize disk space some more, using symlinks instead of redundant file copies ; check-in: cd641f15c2 user: ttcoder tags: trunk | |
|
2021-05-12
| ||
| 13:40 | Layer 7 porting effort (features, big and small, needed by A.C.) : - InterfaceKit: activate BOptionPopUp, BSplitView, BStatusBar, gradients and others needed by AC -- they didn't give me any trouble ; however, stub out BPicture for now -- implementing AC's Pie Menu will probably be better done with Genode's true transparency rather than my hacks anyway ; - Locale Kit: stub out much of BUnicodeChar ; not sure where "unicode/uchar.h" can be found, maybe it's in the packages downloaded during the Haiku build process, and not in the Haiku source tree itself ? ; - Net Kit: enable BUrl ; rem out SSL and in_addr stuff for now ; - Text-encoding kit: rem out iconv lib dependancy (needed by convert_encoding()) for now ; - Storage Kit: enable BVolumeRoster, BQuery.... ; stub out BFilePanel for now -- we're nowhere near porting Tracker yet ; - Support Kit: implement swap_float() with an expedient but portable 2-liner ; - App-priv: deps of BServer, used by AC ; - Interface-priv: stub out BWindowStack, no SAT feature in NitPicker ; - libroot : add debugger_assert() impl ; add more stubs for things that can wait -- query support will have to comer sooner or later though ; - tests : we don't pass even basic Storage Kit tests (since libroot support is stubbed out), will tackle that next, needed by AC. check-in: a611367d16 user: ttcoder tags: trunk | |
|
2021-05-11
| ||
| 17:16 | Dang, a mistake was bound to occur some day -- THIS is the "original verbatim Haiku R1/beta1" state of WindowStack.cpp... check-in: ad5b2d44ef user: ttcoder tags: trunk | |
| 17:12 | fossil-add Haiku R1/b1 verbatim: more AC dependancies (various kits and headers) ; still missing : Media Kit cpp's. check-in: d0bd77f7c4 user: ttcoder tags: trunk | |
|
2021-05-03
| ||
| 19:43 | fossil-add Haiku R1/b1 verbatim: about a third of the dependancies of AutoCast, within the network, mail and textencoding kits. check-in: 5dc2d90f69 user: ttcoder tags: trunk | |
|
2021-04-30
| ||
| 16:54 | LEAK FIX in kinda-kernel: fix leak of Genode::Thread object (which leaks heap and a few capabilities) ; when a thread completes on its own, it now marks itself as "zombie", and is cleaned up shortly afterwards. OPTIM in Interface Kit: make painting/Invalidate much faster (less wasteful) ; maintain a "dirty rect" for the window, set it in Invalidate(), clear it after painting, and make sure painting occurs only within said rect's bounds; Canvas.SetOriginAndClipping() now takes two distinct parameters, as the view clipping/dirty rect might be separated from the view origin ; the work-around in Clock is now to call Invalidate(). TESTED on desktop, looks good. Sending an ISO to Dane tonight, but will continue committing this week's past changes, over the next few days. check-in: 86f65ae5f7 user: ttcoder tags: release, trunk | |
|
2021-04-22
| ||
| 15:59 | fossil-add Haiku R1/b1 verbatim: RosterPrivate.cpp Also, temporarily remove Vera.ttf from the ISO image, until we fix issues ; rise memory quota to 32 MB since 20 MB might not be enough for Mandelbrot when it's used for a while. check-in: 877386b6c0 user: ttcoder tags: trunk | |
|
2021-04-20
| ||
| 09:55 | BFont: add support for TrueType font by linking against ttf_font.lib.a, which allows to draw text with full-fledged Vera.ttf instead of trivial-fonts ; remed out for now, as this seems instable (e.g. when painting Mandelbrot menus). BApplication: call InitBeRoster(), so that we don't crash on be_roster calls ; normally this is called by launch_daemon instead, but we don't have a launch daemon in HoG ; this fixes the crash-on-quit bug (as tested with "jam t6") and I think this is also the reason why Pulse "mini-mode" works fine now. kinda-kernel: actually use the port-closing and get-port-info code introduced in the previous commit ; tweak wait_for_thread() so that it makes sure the waited-on thread is actually running (this is a Be'ism apparently, other OS'es require you to start the thread by hand ?). build/integration: add status_bar to image ; add Vera.ttf to image ; add usb_drv to image ; enable USB simulation in qemu ; TODO : need to clean all that up and make it conditional on compile-time flags and stuff. sys-libroot: tighten the screws on stubs ; on those few that remain, make them all deterministic. Pulse: patch it to allow it to run even without a file-system ; it previously might (or might not) run correctly, because the FS layer was non-deterministic ; now that everything returns B_ERROR, Pulse deterministically fails to display the window correctly, unless patched. check-in: 563d0edbac user: ttcoder tags: trunk | |