Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2024-03-14
18:08
Genode 24.02 support: just update jamrules-pkg-version with newer libc hash ; Leaf 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