Compare commits

...

19 Commits

Author SHA1 Message Date
618e82e453 Merge branch 'master' of ssh://git.iohub.dev:2222/dany/meta-diya 2025-07-21 19:46:21 +02:00
8045fc257d switch to NetworkManager instead of wpasupplicant 2025-07-21 19:45:59 +02:00
d176616617 fix: add user to seat group + work around for qemu wlroot mouse does not display correctly 2025-07-20 09:51:10 +02:00
bb5a5245c8 add gui users to seat groups 2025-07-12 23:54:51 +02:00
a9cce7b660 switch to walnascar 2025-07-12 17:21:52 +02:00
958a5aa658 bump session manager to version 0.1.1 2025-07-03 20:19:03 +02:00
797a54d2d9 cleanup + use latest diya-session-manager 2025-07-03 19:28:44 +02:00
ae474d490f Merge branch 'master' of ssh://git.iohub.dev:2222/dany/meta-diya 2025-07-03 19:15:27 +02:00
be8b6c5cf0 using gtk4-layer-shell 1.1.1 2025-07-03 17:54:26 +02:00
ae13e50979 Update recipes-diya/diya-overlay/files/xdg-terminal-exec 2025-07-03 16:06:20 +02:00
e8677f7618 Add recipes-diya/diya-overlay/files/xdg-terminal-exec 2025-07-03 16:04:39 +02:00
2fc68b049d cleanup unused recipes and add libpam 2025-07-02 12:30:28 +02:00
aa120fd4f6 Merge branch 'master' of ssh://git.iohub.dev:2222/dany/meta-diya 2025-06-23 15:53:43 +02:00
5c2c49c639 feat: add webkit gtk 2025-06-23 15:53:35 +02:00
1b87e10297 feat: add libadwaita 1.5.2 2025-06-23 15:48:27 +02:00
70caa69660 correct PATH in overlay scripts 2025-03-29 13:45:23 +01:00
7b75b29500 rename config.txt file to diya-config.txt to avoid conflict wuth rpi 2025-03-27 11:57:29 +01:00
8791a5d86d refactory recipes, move system dependencies code to board specific layer 2025-03-27 11:41:46 +01:00
b333742f9f add XDG_CACHE_HOME to system enva 2025-03-21 18:39:58 +01:00
30 changed files with 108 additions and 89 deletions

View File

@ -10,7 +10,7 @@ BBFILE_PATTERN_meta-diya = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-diya = "11"
LAYERDEPENDS_meta-diya = " core "
LAYERSERIES_COMPAT_meta-diya = "scarthgap"
LAYERSERIES_COMPAT_meta-diya = "walnascar"
PACKAGE_CLASSES = "package_ipk"
@ -20,9 +20,9 @@ INITRAMFS_MAXSIZE="200000"
INHERIT += "rm_work"
EXTRA_IMAGE_FEATURES ?= " ssh-server-dropbear read-only-rootfs "
DISTRO_FEATURES:append := " opengl "
DISTRO_FEATURES:append := " opengl pam "
DISTRO_FEATURES:remove = " x11 vulkan ptest "
TOOLCHAIN_TARGET_TASK:append = " libgles3-mesa-dev "
TOOLCHAIN_TARGET_TASK:append := " libgles3-mesa-dev "
# DISTRO_FEATURES:append := " vc4-gfx opengl directfb "
WKS_FILE="image.wks.in"

View File

@ -5,6 +5,7 @@ do_install:append () {
export GDK_BACKEND=wayland
export XDG_RUNTIME_DIR=/home/$USER/.xdg
export XDG_CONFIG_HOME=/home/$USER/.config
export XDG_CACHE_HOME=/home/$USER/.cache
export PATH=$PATH:/home/$USER/bin:/home/$USER/.local/bin
export LD_LIBRARY_PATH=/home/$USER/lib:/home/$USER/.local/lib
export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
@ -21,3 +22,11 @@ cat << EOF >> "${D}${sysconfdir}/profile"
export MACHINE=${MACHINE}
EOF
}
# workaround for Qemu mouse problem:
# https://github.com/swaywm/sway/issues/6581
do_install:append:qemux86-64 () {
cat << 'EOF' >> "${D}${sysconfdir}/profile"
export WLR_NO_HARDWARE_CURSORS=1
EOF
}

View File

@ -3,5 +3,5 @@ SRC_URI += "file://default"
do_install:append () {
rm -rf ${D}/etc/dropbear
install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/dropbear
install -m 0644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/dropbear
}

View File

@ -8,7 +8,7 @@ EXTRA_USERS_PARAMS = "usermod -d /home/diya -p 2Pe/4xyFxsokE diya; \
usermod -a -G audio diya; \
usermod -a -G sudo diya; \
"
IMAGE_BOOT_FILES:append = " fs_resize config.txt recovery-${MACHINE}.cpio.gz Image "
IMAGE_BOOT_FILES:append = " fs_resize diya-config.txt recovery-${MACHINE}.cpio.gz Image "
IMAGE_INSTALL:append = "kernel-modules \
e2fsprogs \
@ -20,6 +20,7 @@ IMAGE_INSTALL:append = "kernel-modules \
libglapi \
libudev \
libinput \
libpam \
diya-overlay \
seatd \
libxkbcommon \
@ -32,7 +33,8 @@ IMAGE_INSTALL:append = "kernel-modules \
i2c-tools \
bash \
nano \
wpa-supplicant \
iwd \
networkmanager networkmanager-nmcli networkmanager-bluetooth dhcpcd \
evtest \
rsync \
coreutils \

View File

@ -8,27 +8,30 @@ EXTRA_USERS_PARAMS:append = "useradd xdg; \
usermod -a -G input xdg; \
usermod -a -G tty xdg; \
usermod -a -G avahi diya; \
usermod -a -G seat diya; \
usermod -a -G seat xdg; \
usermod -a -G xdg diya;"
IMAGE_INSTALL:append = "pango \
seatd \
pixman \
cairo \
glib-2.0 \
glibmm \
freetype \
fontconfig \
librsvg librsvg-gtk \
gdk-pixbuf \
gtk4 \
gtk4-layer-shell \
libadwaita \
gobject-introspection \
wayland wayland-protocols \
foot swaybg swayidle swaylock tofi wtype \
wayland wayland-protocols wlroots-0.18 \
foot \
mc \
gdbserver gdb \
labwc \
wlr-randr \
diya-session-manager \
"
PACKAGE_EXCLUDE = " gtk+ gtk+3 adwaita-icon-theme "
IMAGE_INSTALL:remove = " gtk+ gtk+3 adwaita-icon-theme "
# wlr-randr l3afpad wlopm cairo-egl
# wlr-randr l3afpad wlopm cairo-egl webkitgtk

View File

@ -41,12 +41,6 @@ IMAGE_PREPROCESS_COMMAND += "image_patch;"
image_patch () {
# delete unused image
rm -rf ${IMAGE_ROOTFS}/boot/*
# create /etc/fstab
cat << EOF > ${IMAGE_ROOTFS}/etc/fstab
/dev/mmcblk1p1 /boot auto defaults 0 0
/dev/mmcblk1p4 /home auto defaults 0 0
EOF
cat << EOF > ${IMAGE_ROOTFS}/etc/hostname
diya-recovery
EOF

View File

@ -5,12 +5,12 @@ auto lo
iface lo inet loopback
# Wireless interfaces
auto wlan0
iface wlan0 inet dhcp
#auto wlan0
#iface wlan0 inet dhcp
# wireless_mode managed
# wireless_essid any
# wpa-driver wext
wpa-conf /etc/network/wpa_supplicant.conf
#wpa-conf /etc/network/wpa_supplicant.conf
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr

View File

@ -3,5 +3,5 @@ SRC_URI += " file://itf_diya "
do_install:append () {
rm ${D}/etc/network/interfaces
install -m 0644 ${WORKDIR}/itf_diya ${D}/etc/network/interfaces
install -m 0644 ${UNPACKDIR}/itf_diya ${D}/etc/network/interfaces
}

View File

@ -1,5 +1,6 @@
DESCRIPTION = "Auto configuration deployment from media"
DEPENDS = ""
RDEPENDS:${PN} = "bash"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
@ -7,9 +8,11 @@ SRC_URI += "file://confd \
file://expandfs.sh \
file://80_diya \
file://fs_resize \
file://boot-to-recovery"
file://boot-to-recovery \
file://diya.pam \
file://xdg-terminal-exec"
S = "${UNPACKDIR}"
inherit update-rc.d useradd
USERADD_PACKAGES = "${PN}"
@ -23,15 +26,18 @@ INITSCRIPT_PARAMS = "start 30 S ."
do_install() {
install -d ${D}/${sysconfdir}/init.d/
install -d ${DEPLOY_DIR_IMAGE}
install -m 0755 ${WORKDIR}/confd ${D}/${sysconfdir}/init.d/confd
install -m 0755 ${UNPACKDIR}/confd ${D}/${sysconfdir}/init.d/confd
install -d ${D}/sbin/
install -d ${D}/etc/default/volatiles
install -m 0644 ${WORKDIR}/80_diya ${D}${sysconfdir}/default/volatiles
install -m 0755 ${WORKDIR}/expandfs.sh ${D}/sbin/expandfs.sh
install -m 0755 ${WORKDIR}/boot-to-recovery ${D}/sbin/boot-to-recovery
install -m 0755 ${WORKDIR}/fs_resize ${DEPLOY_DIR_IMAGE}/
cat << EOF > ${DEPLOY_DIR_IMAGE}/config.txt
install -m 0644 ${UNPACKDIR}/80_diya ${D}${sysconfdir}/default/volatiles
install -m 0755 ${UNPACKDIR}/expandfs.sh ${D}/sbin/expandfs.sh
install -m 0755 ${UNPACKDIR}/boot-to-recovery ${D}/sbin/boot-to-recovery
install -m 0755 ${UNPACKDIR}/fs_resize ${DEPLOY_DIR_IMAGE}/
install -d ${D}/etc/pam.d
install -m 0644 ${UNPACKDIR}/diya.pam ${D}${sysconfdir}/pam.d/diya
install -d ${D}/usr/bin
install -m 0755 ${UNPACKDIR}/xdg-terminal-exec ${D}/usr/bin
cat << EOF > ${DEPLOY_DIR_IMAGE}/diya-config.txt
recovery=false
recovery_image=recovery-${MACHINE}.cpio.gz
console=both

View File

@ -6,16 +6,17 @@ if [[ $(/usr/bin/id -u) -ne 0 ]]; then
fi
. /etc/profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin
if [ ! -e /boot/config.txt ]; then
if [ ! -e /boot/diya-config.txt ]; then
# prepare env for recovery boot
cat << EOF > /boot/config.txt
cat << EOF > /boot/diya-config.txt
recovery=true
recovery_image=recovery-${MACHINE}.cpio.gz
EOF
else
sed -i 's/^.*recovery.*/recovery=true/g' /boot/config.txt || \
echo "recovery=true" >> /boot/config.txt
sed -i 's/^.*recovery.*/recovery=true/g' /boot/diya-config.txt || \
echo "recovery=true" >> /boot/diya-config.txt
fi
echo "Rebooting to recovery mode"
reboot

View File

@ -1,10 +1,12 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC="Auto deployment configuration from media"
. /etc/profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin
if [ -z "$DISK" ]; then
DISK="mmcblk1"
DISK="mmcblk0"
fi
case "$1" in
@ -32,13 +34,10 @@ case "$1" in
mkdir -p /home/diya
chown -R diya:diya /home/diya
fi
if [ -e "/boot/wpa_supplicant.conf" ];then
mv /boot/wpa_supplicant.conf /etc/network/
reboot
if ls /boot/*.nmconnection > /dev/null 2>&1 ;then
mv /boot/*.nmconnection /etc/NetworkManager/system-connections/
chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
fi
# display information
# disable wifi power save
# /usr/sbin/iw wlan0 set power_save off
;;
*)
N=/etc/init.d/$NAME

View File

@ -0,0 +1,5 @@
#%PAM-1.0
auth include common-auth
account include common-account
session include common-session

View File

@ -1,7 +1,9 @@
#! /bin/sh
. /etc/profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin
if [ -z "$DISK" ]; then
DISK="mmcblk1"
DISK="mmcblk0"
fi
if [ "$(/usr/bin/id -u)" -ne 0 ]; then

View File

@ -0,0 +1,2 @@
#! /bin/bash
foot "$@"

View File

@ -10,8 +10,8 @@ SRC_URI += "git://git.iohub.dev/dany/diya-session-manager.git;protocol=https;bra
file://diya-sessiond"
SRCREV = "${AUTOREV}"
PV = "0.1.0+git${SRCPV}"
S = "${WORKDIR}/git"
PV = "0.1.1+git${SRCPV}"
S = "${UNPACKDIR}/git"
inherit meson pkgconfig
@ -27,10 +27,10 @@ do_install:append() {
install -d ${D}/etc/dbus-1/system.d
install -d ${D}/etc/init.d
install -m 0755 ${WORKDIR}/build/diya-session-manager ${D}/usr/bin/
install -m 0755 ${WORKDIR}/diya-sessiond ${D}/etc/init.d/
install -m 0755 ${WORKDIR}/diya-session-launch ${D}/usr/bin/
install -m 0644 ${WORKDIR}/daemon.conf ${D}/etc/diya/
install -m 0644 ${WORKDIR}/dbus-diya.conf ${D}/etc/dbus-1/system.d/
install -m 0755 ${UNPACKDIR}/diya-sessiond ${D}/etc/init.d/
install -m 0755 ${UNPACKDIR}/diya-session-launch ${D}/usr/bin/
install -m 0644 ${UNPACKDIR}/daemon.conf ${D}/etc/diya/
install -m 0644 ${UNPACKDIR}/dbus-diya.conf ${D}/etc/dbus-1/system.d/
}
FILES:${PN} = "/etc/diya \

View File

@ -21,4 +21,7 @@ login_session_user = xdg
# login session is successful
# the logged in user will own this session
user_session_command = diya-session-launch diyac -x diya-shell
user_session_command = diya-session-launch diyac -x diya-shell
# PAM service used by the daemon for authentication
pam_service = diya

View File

@ -1,14 +1,14 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC="Custom configuration"
. /etc/profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin
case "$1" in
start)
echo -n "Start $DESC: "
sed -i 's/^.*recovery.*/recovery=false/g' /boot/config.txt || \
echo "recovery=false" >> /boot/config.txt
sed -i 's/^.*recovery.*/recovery=false/g' /boot/diya-config.txt || \
echo "recovery=false" >> /boot/diya-config.txt
;;
*)

View File

@ -1,16 +1,20 @@
#! /bin/sh
. /etc/profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin
if [ -z "$DISK" ]; then
DISK="mmcblk0"
fi
DEFAULT_ROOTFS_NAME="rootfs-$MACHINE.tar.bz2"
DEFAULT_KERNEL_NAME="Image-$MACHINE.bin"
DEFAULT_INITRAMFS_NAME="recovery-$MACHINE.cpio.gz"
UPDATE_SRC_PATH="/home/diya/.update"
ROOTFS_DEV="/dev/mmcblk1p2"
ROOTFS_DEV="/dev/${DISK}p2"
SUPPORTED_COMMAND="rootfs kernel initramfs all"
TMP_MOUNT="/tmp/rootfs"
rootfs()
{
filename=$1
@ -54,9 +58,9 @@ rootfs()
echo "Patch /etc/fstab"
cat << EOF >> $TMP_MOUNT/etc/fstab
/dev/mmcblk1p1 /boot vfat defaults 0 0
/dev/mmcblk1p3 /var/etc ext4 defaults 0 0
/dev/mmcblk1p4 /home ext4 defaults 0 0
/dev/${DISK}p1 /boot vfat defaults 0 0
/dev/${DISK}p3 /var/etc ext4 defaults 0 0
/dev/${DISK}p4 /home ext4 defaults 0 0
EOF
sync

View File

@ -15,7 +15,7 @@ SRC_URI = "file://init \
file://diya-update \
"
S = "${WORKDIR}"
S = "${UNPACKDIR}"
INITSCRIPT_NAME = "confd"
INITSCRIPT_PARAMS = "start 30 S ."
@ -24,12 +24,12 @@ do_install() {
install -d ${D}/etc/init.d
install -d ${D}/sbin
# base
install -m 0755 ${WORKDIR}/init ${D}/init
install -m 0755 ${WORKDIR}/confd ${D}/etc/init.d/confd
install -m 0755 ${UNPACKDIR}/init ${D}/init
install -m 0755 ${UNPACKDIR}/confd ${D}/etc/init.d/confd
cat << EOF >> ${D}/etc/profile
export MACHINE=${MACHINE}
EOF
install -m 0755 ${WORKDIR}/diya-update ${D}/sbin/
install -m 0755 ${UNPACKDIR}/diya-update ${D}/sbin/
# create symlink
ln -sf /sbin/diya-update ${D}/sbin/diya-update-rootfs

View File

@ -1,4 +1,4 @@
PV = "1.1.0"
SRCREV = "v1.1.0"
PV = "1.1.1"
SRCREV = "v1.1.1"
INSANE_SKIP:${PN}-dev += "dev-elf"

View File

@ -0,0 +1 @@
PACKAGECONFIG:remove = "x11 systemd"

View File

@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-3.0-only;md5=c79ff39f19dfec
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
S="${WORKDIR}"
S = "${UNPACKDIR}"
DEPENDS = "gtk+3 pango cairo harfbuzz gdk-pixbuf intltool-native"

View File

@ -12,7 +12,7 @@ SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/LBCrion/sfwbar.git;protocol=https;branch=main"
SRC_URI += " file://sfwbar.config "
S="${WORKDIR}/git"
S="${UNPACKDIR}/git"
inherit meson pkgconfig
@ -21,7 +21,7 @@ EXTRA_OEMESON += "--buildtype release"
do_install:append () {
install -d ${D}/${sysconfdir}/xdg/
install -d ${D}/${sysconfdir}/xdg/sfwbar/
install -m 0755 ${WORKDIR}/sfwbar.config ${D}/${sysconfdir}/xdg/sfwbar/
install -m 0755 ${UNPACKDIR}/sfwbar.config ${D}/${sysconfdir}/xdg/sfwbar/
}
FILES:${PN} += "/usr/share/icons/*"

View File

@ -12,7 +12,7 @@ SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/philj56/tofi.git;protocol=https;branch=master"
SRC_URI += " file://config file://drun "
S="${WORKDIR}/git"
S="${UNPACKDIR}/git"
inherit meson pkgconfig
@ -20,8 +20,8 @@ EXTRA_OEMESON += "--buildtype release"
do_install:append () {
# replace the default config
install -m 0755 ${WORKDIR}/drun ${D}/usr/bin/
install -m 0755 ${WORKDIR}/config ${D}/${sysconfdir}/xdg/tofi/
install -m 0755 ${UNPACKDIR}/drun ${D}/usr/bin/
install -m 0755 ${UNPACKDIR}/config ${D}/${sysconfdir}/xdg/tofi/
}
FILES:${PN} += "/usr/share/*"

View File

@ -10,7 +10,7 @@ SRCREV = "${AUTOREV}"
SRC_URI = "git://git.iohub.dev/dany/wlopm.git;protocol=https;branch=master"
S="${WORKDIR}/git"
S="${UNPACKDIR}/git"
do_compile () {
oe_runmake

View File

@ -10,7 +10,7 @@ SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/atx/wtype.git;protocol=https;branch=master"
S="${WORKDIR}/git"
S="${UNPACKDIR}/git"
inherit meson pkgconfig

View File

@ -13,13 +13,13 @@ do_install:append () {
install -d ${D}/${sysconfdir}/xdg
install -d ${D}/${sysconfdir}/init.d
install -d ${D}/${sysconfdir}/xdg/labwc
install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/labwc
install -m 0755 ${UNPACKDIR}/init ${D}/${sysconfdir}/init.d/labwc
install -m 0755 ${WORKDIR}/wpp.jpg ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${WORKDIR}/autostart ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${WORKDIR}/environment ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${WORKDIR}/menu.xml ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${WORKDIR}/rc.xml ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${UNPACKDIR}/wpp.jpg ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${UNPACKDIR}/autostart ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${UNPACKDIR}/environment ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${UNPACKDIR}/menu.xml ${D}/${sysconfdir}/xdg/labwc/
install -m 0755 ${UNPACKDIR}/rc.xml ${D}/${sysconfdir}/xdg/labwc/
}

View File

@ -1,12 +0,0 @@
# short-description: Create Raspberry Pi SD card image
# long-description: Creates a partitioned SD card image for use with
part u-boot --source rawcopy --sourceparams="file=${SPL_BINARY}" --ondisk mmcblk1 --no-table --align 8
part /boot --source bootimg-partition --ondisk mmcblk1 --fstype=vfat --label boot --active --align 4096 --size 32
# read only roofs
part / --source rootfs --ondisk mmcblk1 --fstype=ext4 --label root --align 4096 --size 150 --exclude-path home/ --exclude-path var/etc/ --exclude-path boot/
# modifiable configurations stored in /var/etc
part /var/etc --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/var/etc --ondisk mmcblk1 --fstype=ext4 --label diya --align 1024 --size 32
# home partition
part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --ondisk mmcblk1 --fstype=ext4 --label home --align 1024 --size 16
# part /home --ondisk mmcblk1 --fstype=vfat --label music --active --align 1024 --size 16