[Buildroot] [PATCH 00/13] Sway fixups
Adam Duskett
adam.duskett at amarulasolutions.com
Thu Nov 23 00:08:06 UTC 2023
To test the ivi-homescreen package, I needed to figure out how to use Wayland
and a compositor, which led me to the Sway package. However, in its current
form, the package has several issues.
- All the options that make it worthwhile are disabled.
- Sway's default terminal (foot) doesn't exist as a package.
- BR2_PACKAGE_XKEYBOARD_CONFIG isn't selected, which is a runtime dependency
(same as Weston)
Included are several patches to make Sway a worthwhile package for most people
looking for a Wayland compositor to test packages with.
If you wish to test the changes, below is the defconfig I used:
```
BR2_x86_64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_INIT_SYSTEMD=y
BR2_SYSTEM_BIN_SH_BASH=y
BR2_TARGET_GENERIC_GETTY_PORT="tty1"
BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image-efi.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.2"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="support/testing/tests/package/test_flutter/linux-vkms.fragment"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_FOOT=y
BR2_PACKAGE_FOOT_GRAPHEME_CLUSTERING=y
BR2_PACKAGE_FOOT_THEMES=y
BR2_PACKAGE_SWAY=y
BR2_PACKAGE_SWAY_DEFAULT_WALLPAPER=y
BR2_PACKAGE_SWAY_SWAYBAR=y
BR2_PACKAGE_SWAY_SWAYBAR_TRAY=y
BR2_PACKAGE_SWAY_SWAYNAG=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_ACPID=y
BR2_PACKAGE_LIBUTEMPTER=y
BR2_PACKAGE_CONNMAN=y
BR2_PACKAGE_CONNMAN_WIFI=y
BR2_PACKAGE_CONNMAN_CLIENT=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_X86_64_EFI=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
```
And the qemu-system-x86_64 script I used:
```
#!/usr/bin/env bash
set -e
LIBGL_DRIVERS_PATH=/usr/lib64/dri \
FONTCONFIG_PATH=/etc/fonts \
qemu-system-x86_64 \
-enable-kvm \
-M pc \
-cpu host \
-m 1024M \
-bios /usr/share/OVMF/OVMF_CODE.fd \
-drive file=output/images/disk.img,if=virtio,format=raw \
-net nic,model=virtio \
-net user \
-device virtio-vga-gl \
-display gtk,gl=es,show-cursor=on \
-usb \
-device usb-ehci,id=ehci \
-device usb-tablet,bus=usb-bus.0
```
At the main prompt, run `export XDG_RUNTIME_DIR=/tmp && sway`
By default:
super + return: opens the terminal
super + shift + e: opens an exit prompt on the tray
suprt + {1,2,3...} changes desktops
Enjoy!
Adam Duskett (13):
package/sway/Config.in: select BR2_PACKAGE_XKEYBOARD_CONFIG
package/dmenu-wayland: new package
package/tllist: new package
package/fcft: new package
package/libutempter: new package
package/foot: new package
package/ncurses: install terminfo if foot is selected
package/sway: enable bash-completion support
package/sway: enable default-wallpaper support
package/sway: enable swaybar support
package/sway: enable swaybar tray support
package/sway: enable swaynag support
package/sway/Config.in: Add a help note about the default terminal
DEVELOPERS | 5 ++
package/Config.in | 5 ++
package/dmenu-wayland/Config.in | 26 ++++++++++
package/dmenu-wayland/dmenu-wayland.hash | 3 ++
package/dmenu-wayland/dmenu-wayland.mk | 28 ++++++++++
package/fcft/Config.in | 52 +++++++++++++++++++
package/fcft/fcft.hash | 3 ++
package/fcft/fcft.mk | 44 ++++++++++++++++
package/foot/Config.in | 36 +++++++++++++
package/foot/foot.hash | 3 ++
package/foot/foot.mk | 51 ++++++++++++++++++
.../0001-force-symlink-creation.patch | 36 +++++++++++++
package/libutempter/Config.in | 11 ++++
package/libutempter/libutempter.hash | 3 ++
package/libutempter/libutempter.mk | 27 ++++++++++
package/ncurses/ncurses.mk | 7 +++
package/sway/Config.in | 34 ++++++++++++
package/sway/sway.mk | 35 +++++++++++--
package/tllist/Config.in | 6 +++
package/tllist/tllist.hash | 3 ++
package/tllist/tllist.mk | 16 ++++++
21 files changed, 429 insertions(+), 5 deletions(-)
create mode 100644 package/dmenu-wayland/Config.in
create mode 100644 package/dmenu-wayland/dmenu-wayland.hash
create mode 100644 package/dmenu-wayland/dmenu-wayland.mk
create mode 100644 package/fcft/Config.in
create mode 100644 package/fcft/fcft.hash
create mode 100644 package/fcft/fcft.mk
create mode 100644 package/foot/Config.in
create mode 100644 package/foot/foot.hash
create mode 100644 package/foot/foot.mk
create mode 100644 package/libutempter/0001-force-symlink-creation.patch
create mode 100644 package/libutempter/Config.in
create mode 100644 package/libutempter/libutempter.hash
create mode 100644 package/libutempter/libutempter.mk
create mode 100644 package/tllist/Config.in
create mode 100644 package/tllist/tllist.hash
create mode 100644 package/tllist/tllist.mk
--
2.42.0
More information about the buildroot
mailing list