Check-in [b2055b6963]

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

Overview
Comment:fix-up Genode 24.08 support (for Linux host): Adapt to newer Qemu: * remove "-no-kvm" switch ; * use "ide-hd" instead of deprecated "ide-drive" switch ; * those are backward compatible with the older Qemu on my main build env, so no need to detect host at build time for those ; Adapt to Linux mkntfs: * detect Linux host and use "mkntfs ..." instead of "mkfs -t ntfs ...." ; * how come I need to call "sudo mkntfs" instead of just "mkntfs" ? That makes each build more annoying than it should be ; -- TESTS -- * did a full build on Debian (2024-08-26), "jam -q hog-demos.emu6" builds and runs (in Qemu) great, except for the "sudo" mkntfs thing ;
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | new-genode-rev
Files: files | file ages | folders
SHA1: b2055b696335660a42b7cd13acd7bf41268530ac
User & Date: user 2024-09-18 09:02:12
Context
2024-12-13
11:55
Genode 24.10 (sculpt) support: Packages built against new ABI: * gedepot etc: use 2024-11-.. packages which are compatible with the 24.08+ Genode ABI ; * gedepot: use new WiFi firmware package that supports my laptops (#5282) ; * jam etc: packages now follow the "no _drv suffix" convention, allowing us to complete the migration ; * jam: Falkon is now built for new-mixer, but we still use legacy-mixer, so route audio to black_hole for now ; New API for nitpicker and wifi: * nitpicker ram/caps accounting: increase client-side quotas to adapt ; * nitpicker has a new API for mode/panorama() and for buffer() (#5353) ; * driver/wifi has a new config XML layout ; * driver/wifi now requires 'accesspoints' and 'state' Reports ; Linux support: * several of my tts Jamfiles refer to var BE_HOST_CPU, which is absent in the Linux build of Jam, so provide a custom value if absent ; -- TESTS -- * rebuilt TTS distro, looks good, Falkon runs well (though silent), AC runs well ; * tweak unit tests some more for ram/caps ? ; Leaf check-in: e8ea719eac user: ttcoder tags: new-genode-rev, trunk
2024-09-18
09:02
fix-up Genode 24.08 support (for Linux host): Adapt to newer Qemu: * remove "-no-kvm" switch ; * use "ide-hd" instead of deprecated "ide-drive" switch ; * those are backward compatible with the older Qemu on my main build env, so no need to detect host at build time for those ; Adapt to Linux mkntfs: * detect Linux host and use "mkntfs ..." instead of "mkfs -t ntfs ...." ; * how come I need to call "sudo mkntfs" instead of just "mkntfs" ? That makes each build more annoying than it should be ; -- TESTS -- * did a full build on Debian (2024-08-26), "jam -q hog-demos.emu6" builds and runs (in Qemu) great, except for the "sudo" mkntfs thing ; check-in: b2055b6963 user: user tags: new-genode-rev, trunk
08:06
fix-up Genode 24.08 support: Canvas: fix painting regression: * we now need to specify the alpha channel/opacity value for Color's passed to shaded Polygon and to Text_painter, otherwise they seem to bet set to 0, i.e. no painting ; * that fixes FillRect( BGradient& ) used for painting window tabs etc ; * that fixes DrawString() ; * rule BinCommand was seemingly staging the posix.lib.so file *after* it was needed, should be fixed ; Genode adapt: complete up to level 9 build: * more removals of _drv suffix (usb, usb_hid, intel_fb, intel_gpu, pci_audio) ; * didn't adapt "wifi_drv" yet, waiting for the next package in Genode 24.10 ; * also adapt USE_DRV_MANAGER builds (jam composition, driver_manager C++ code) ; * also prepare next commit that will fix the build when done on a Linux host ; -- TESTS -- * ran the full TTS distro, using Debian-built dde_linux drivers, looking good ; * tested USB-HID, canvas, nic with Ftp+, vfs with AK) ; * GeDepot packages don't work any more though (ABI change), will upgrade to newer packages when Genode/Sculpt 24.10 ships ; check-in: 60385a1069 user: user tags: new-genode-rev, trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to genode-haiku/haiku-on-genode/kits/interface/View.cpp.

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 *		Julian Harnath, julian.harnath@rwth-aachen.de
 *		Joseph Groover, looncraz@looncraz.net
 */


#include <View.h>

#ifndef HoG_GENODE
#include <algorithm>
#endif
#include <new>

#include <math.h>
#include <stdio.h>








|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 *		Julian Harnath, julian.harnath@rwth-aachen.de
 *		Joseph Groover, looncraz@looncraz.net
 */


#include <View.h>

#ifndef HoG_GENODE  // one less headache for when building with an outdated toolchain
#include <algorithm>
#endif
#include <new>

#include <math.h>
#include <stdio.h>

5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553

5554
5555
5556
5557
5558



5559
5560
5561
5562
5563
5564
5565
				if (vertical != NULL)
					message->FindFloat("be:wheel_delta_y", &deltaY);

				if (deltaX == 0.0f && deltaY == 0.0f)
					break;

				if ((modifiers() & B_CONTROL_KEY) != 0)
					std::swap(horizontal, vertical);
/*
	We might this need for Linux-host builds:
#if defined( HoG_GENODE ) rather do this:
				{

					auto tmp = vertical;
					vertical = horizontal;
					horizontal = tmp;
				}
*/




				if (horizontal != NULL && deltaX != 0.0f)
					ScrollWithMouseWheelDelta(horizontal, deltaX);

				if (vertical != NULL && deltaY != 0.0f)
					ScrollWithMouseWheelDelta(vertical, deltaY);








<
<
<
|

>




<
>
>
>







5542
5543
5544
5545
5546
5547
5548



5549
5550
5551
5552
5553
5554
5555

5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
				if (vertical != NULL)
					message->FindFloat("be:wheel_delta_y", &deltaY);

				if (deltaX == 0.0f && deltaY == 0.0f)
					break;

				if ((modifiers() & B_CONTROL_KEY) != 0)



#if defined( HoG_GENODE )
				{
					// do it the old-fashioned way instead of #include'ing <algorithm>
					auto tmp = vertical;
					vertical = horizontal;
					horizontal = tmp;
				}

#else
					std::swap(horizontal, vertical);
#endif

				if (horizontal != NULL && deltaX != 0.0f)
					ScrollWithMouseWheelDelta(horizontal, deltaX);

				if (vertical != NULL && deltaY != 0.0f)
					ScrollWithMouseWheelDelta(vertical, deltaY);

Changes to genode-haiku/jam/jamrules-qemu.

961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977


actions RunQemu1
{
	# - CPU:  Genode 23.08 went from "core2duo" to "Nehalem-v2", but the Qemu package here only knows "Nehalem", so let's try that:
	# - VESA: limit screen resolution in Qemu to 1920x1080, via 8 MB video RAM
	# - KVM:  removed "-no-kvm" switch as that trips up Qemu 7.x in Linux.
#	qemu-system-x86_64  -display sdl -cpu Nehalem  -m $(QEMU_RAM) \
#
	qemu-system-x86_64 -no-kvm -display sdl -cpu Nehalem  -m $(QEMU_RAM) \
		$(QEMU_INPUT) \
		$(QEMU_AHCI) \
		-device ich9-intel-hda  -serial mon:stdio -cdrom $(1)   -machine q35 \
		-device VGA,vgamem_mb=8
}









|
<
<







961
962
963
964
965
966
967
968


969
970
971
972
973
974
975


actions RunQemu1
{
	# - CPU:  Genode 23.08 went from "core2duo" to "Nehalem-v2", but the Qemu package here only knows "Nehalem", so let's try that:
	# - VESA: limit screen resolution in Qemu to 1920x1080, via 8 MB video RAM
	# - KVM:  removed "-no-kvm" switch as that trips up Qemu 7.x in Linux.
	qemu-system-x86_64  -display sdl -cpu Nehalem  -m $(QEMU_RAM) \


		$(QEMU_INPUT) \
		$(QEMU_AHCI) \
		-device ich9-intel-hda  -serial mon:stdio -cdrom $(1)   -machine q35 \
		-device VGA,vgamem_mb=8
}


1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
		Echo "RunQemu $(runfile) will use storage: $(ahci_disk_image)" ;
		
		Always $(ahci_disk_image) ;  # if the image results from a creation & formatting process, make sure the formatting is made at each run, to restore state after each test-run !
		Depends $(scenario).iso : $(ahci_disk_image) ;
		
		# we use "bus=ahci.0" to be compatible with both the USE_DRV_MANAGER case (which supports any port) *and* the static-drivers case (which hardcodes ahci port 0):
		# also use "ide-hd" syntax, since "ide-drive" seems to be deprecated in Qemu 7.x on Debian:
#		QEMU_AHCI on $(scenario).iso = "-drive id=disk,file=$(ahci_disk_image),format=raw,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -boot d" ;
		QEMU_AHCI on $(scenario).iso = "-drive id=disk,file=$(ahci_disk_image),format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d" ;
		#	-drive id=disk,file=/dev/disk/scsi/0/0/0/raw,format=raw,if=none -device ahci,id=ahci
		#	-device ide-drive,drive=disk,bus=ahci.0 -boot d
	}
	
	if $(OS) = "HAIKU"
	{
		QEMU_RAM on $(scenario).iso = "1024" ;  # Dodge freezes/crashes that occur with high RAM







|
<







1012
1013
1014
1015
1016
1017
1018
1019

1020
1021
1022
1023
1024
1025
1026
		Echo "RunQemu $(runfile) will use storage: $(ahci_disk_image)" ;
		
		Always $(ahci_disk_image) ;  # if the image results from a creation & formatting process, make sure the formatting is made at each run, to restore state after each test-run !
		Depends $(scenario).iso : $(ahci_disk_image) ;
		
		# we use "bus=ahci.0" to be compatible with both the USE_DRV_MANAGER case (which supports any port) *and* the static-drivers case (which hardcodes ahci port 0):
		# also use "ide-hd" syntax, since "ide-drive" seems to be deprecated in Qemu 7.x on Debian:
		QEMU_AHCI on $(scenario).iso = "-drive id=disk,file=$(ahci_disk_image),format=raw,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -boot d" ;

		#	-drive id=disk,file=/dev/disk/scsi/0/0/0/raw,format=raw,if=none -device ahci,id=ahci
		#	-device ide-drive,drive=disk,bus=ahci.0 -boot d
	}
	
	if $(OS) = "HAIKU"
	{
		QEMU_RAM on $(scenario).iso = "1024" ;  # Dodge freezes/crashes that occur with high RAM
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172

actions DiskFormatNTFS_HaikuHost
{
	mkfs  --dont-ask  -t ntfs  $(1)  TestDisk
}
actions DiskFormatNTFS_LinuxHost
{
	exit "DiskFormatNTFS_Linux not implemented" ;
	# force to proceed despite file not being a "block device":
#	sudo mkntfs --force $(1)  # --label TestDisk
}

rule DiskNtfsBlank  path_to_raw_img
{
	DiskCreate $(path_to_raw_img) ;
	
	if $(OS) = "HAIKU"







|
|
<







1153
1154
1155
1156
1157
1158
1159
1160
1161

1162
1163
1164
1165
1166
1167
1168

actions DiskFormatNTFS_HaikuHost
{
	mkfs  --dont-ask  -t ntfs  $(1)  TestDisk
}
actions DiskFormatNTFS_LinuxHost
{
	sudo mkntfs --force $(1)  --label TestDisk
		# force to proceed despite file not being a "block device":

}

rule DiskNtfsBlank  path_to_raw_img
{
	DiskCreate $(path_to_raw_img) ;
	
	if $(OS) = "HAIKU"