diff --git a/.github/workflows/build-nightly.yml b/.github/workflows/build-nightly.yml index fc55e495b67..6375fb83704 100644 --- a/.github/workflows/build-nightly.yml +++ b/.github/workflows/build-nightly.yml @@ -234,9 +234,9 @@ jobs: PREV_TAG=$(git tag --sort=-creatordate | grep -vx "${CURRENT_TAG}" | head -n 1 || true) if [ -z "$PREV_TAG" ]; then - COMMITS=$(git log --pretty=format:"%h %s (%an)" | grep -v "Merge branch" || true) + COMMITS=$(git log --first-parent --pretty=format:"%h %s (%an)" | grep -v "Merge branch" || true) else - COMMITS=$(git log "${PREV_TAG}..HEAD" --pretty=format:"%h %s (%an)" | grep -v "Merge branch" || true) + COMMITS=$(git log "${PREV_TAG}..HEAD" --first-parent --pretty=format:"%h %s (%an)" | grep -v "Merge branch" || true) fi { diff --git a/distributions/ROCKNIX/config/functions b/distributions/ROCKNIX/config/functions index e5c9d7cac50..34440cd3c55 100644 --- a/distributions/ROCKNIX/config/functions +++ b/distributions/ROCKNIX/config/functions @@ -283,6 +283,11 @@ else set timeout=-1 fi +if fdtdump --prop model --set abl_model; then + set default="abl" + set timeout=2 +fi + if [ x"\${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" else @@ -309,6 +314,13 @@ if [ "\${saved_entry}" = "${SHORT}" ]; then set rotation=$(((360 - ROT * 90) % 3 EOF done + xmlstarlet sel -t -m "//rocknix/${DEVICE}/file[@rotation]" \ + -v "concat(@full, '|', @rotation)" -n "${CONFIGXML}" 2>/dev/null | while IFS='|' read -r FULL ROT; do + cat << EOF +if [ "\${abl_model}" = "${FULL}" ]; then set rotation=$(((360 - ROT * 90) % 360)); fi +EOF + done + cat << EOF set gfxmode=auto insmod efi_gop @@ -317,6 +329,13 @@ terminal_output gfxterm set menu_color_normal=cyan/blue set menu_color_highlight=white/blue +if [ -n "\${abl_model}" ]; then +menuentry "ROCKNIX (\${abl_model})" \$menuentry_id_option 'abl' { + search --set -f /KERNEL + linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE} +} +fi + EOF xmlstarlet sel -t -m "//rocknix/${DEVICE}/file" \ diff --git a/projects/ROCKNIX/devices/AMD64/packages/ayn-platform/package.mk b/projects/ROCKNIX/devices/AMD64/packages/ayn-platform/package.mk index 5b0ad35db4a..2d681cd49c2 100644 --- a/projects/ROCKNIX/devices/AMD64/packages/ayn-platform/package.mk +++ b/projects/ROCKNIX/devices/AMD64/packages/ayn-platform/package.mk @@ -5,7 +5,7 @@ PKG_NAME="ayn-platform" PKG_VERSION="7ec810ed2aebe196b68b9cce580d3c9e520e6425" PKG_LICENSE="GPL" PKG_SITE="https://github.com/ShadowBlip/ayn-platform" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_LONGDESC="A hwmon interface for PWM control, as well as RGB control and access to temperature sensors provided by the system EC." PKG_TOOLCHAIN="make" PKG_IS_KERNEL_PKG="yes" diff --git a/projects/ROCKNIX/devices/AMD64/packages/ryzenadj/package.mk b/projects/ROCKNIX/devices/AMD64/packages/ryzenadj/package.mk index 5018f4252fc..5add65d9d45 100644 --- a/projects/ROCKNIX/devices/AMD64/packages/ryzenadj/package.mk +++ b/projects/ROCKNIX/devices/AMD64/packages/ryzenadj/package.mk @@ -5,14 +5,15 @@ PKG_NAME="ryzenadj" PKG_VERSION="ea71739b4a3e1a0a624dfd1c9c268a31cb2a4182" PKG_LICENSE="GPL" PKG_SITE="https://github.com/FlyGoat/RyzenAdj" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain pciutils systemd" PKG_LONGDESC="Adjust power management settings for Ryzen Mobile Processors." PKG_BUILD_FLAGS="+pic" makeinstall_target() { mkdir -p ${INSTALL}/usr/lib - cp libryzenadj.so ${INSTALL}/usr/lib - mkdir -p ${INSTALL}/usr/bin - cp ryzenadj ${INSTALL}/usr/bin + cp -a libryzenadj.so ${INSTALL}/usr/lib + + mkdir -p ${INSTALL}/usr/bin + cp -a ryzenadj ${INSTALL}/usr/bin } diff --git a/projects/ROCKNIX/devices/AMD64/packages/ryzensmu/package.mk b/projects/ROCKNIX/devices/AMD64/packages/ryzensmu/package.mk index 7bc2abc652c..58718a95ff2 100644 --- a/projects/ROCKNIX/devices/AMD64/packages/ryzensmu/package.mk +++ b/projects/ROCKNIX/devices/AMD64/packages/ryzensmu/package.mk @@ -2,10 +2,10 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="ryzensmu" -PKG_VERSION="e61177d0ddaebfaeca52094b20a2289287a0838b" +PKG_VERSION="0.1.5" PKG_LICENSE="GPL" PKG_SITE="https://gitlab.com/leogx9r/ryzen_smu" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/-/archive/v${PKG_VERSION}/${PKG_NAME}-v${PKG_VERSION}.tar.bz2" PKG_LONGDESC="A Linux kernel driver that exposes access to the SMU on certain AMD Ryzen processors." PKG_TOOLCHAIN="make" PKG_IS_KERNEL_PKG="yes" @@ -26,5 +26,5 @@ make_target() { makeinstall_target() { mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} - cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} + cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} } diff --git a/projects/ROCKNIX/devices/S922X/packages/amlogic-boot-fip/package.mk b/projects/ROCKNIX/devices/S922X/packages/amlogic-boot-fip/package.mk index eea652fcc0f..306f11c8be4 100644 --- a/projects/ROCKNIX/devices/S922X/packages/amlogic-boot-fip/package.mk +++ b/projects/ROCKNIX/devices/S922X/packages/amlogic-boot-fip/package.mk @@ -6,7 +6,7 @@ PKG_NAME="amlogic-boot-fip" PKG_VERSION="e96b6a694380ff07d5a9e4be644ffe254bd18512" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/LibreELEC/amlogic-boot-fip" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Firmware Image Pacakge (FIP) sources used to sign Amlogic u-boot binaries" PKG_TOOLCHAIN="manual" diff --git a/projects/ROCKNIX/devices/SM8750/patches/linux/1000-input-misc-qcom-hv-haptics-sm8750.patch b/projects/ROCKNIX/devices/SM8750/patches/linux/1000-input-misc-qcom-hv-haptics-sm8750.patch index 076326d8c53..45c05959d2b 100644 --- a/projects/ROCKNIX/devices/SM8750/patches/linux/1000-input-misc-qcom-hv-haptics-sm8750.patch +++ b/projects/ROCKNIX/devices/SM8750/patches/linux/1000-input-misc-qcom-hv-haptics-sm8750.patch @@ -2123,7 +2123,7 @@ diff -Naur a/drivers/input/misc/qcom-hv-haptics.c b/drivers/input/misc/qcom-hv-h + } + + haptics_read(chip, chip->hbst_addr_base, 0x09, &val, 1); -+ dev_err(chip->dev, "haptics_enable_play, 0xf209=0x%x\n", val); ++ dev_dbg(chip->dev, "haptics_enable_play, 0xf209=0x%x\n", val); + + if (!en) + haptics_wait_brake_complete(chip); diff --git a/projects/ROCKNIX/devices/SM8750/patches/linux/1001-haptics-driver-support-periodic-sine-and-fixes.patch b/projects/ROCKNIX/devices/SM8750/patches/linux/1001-haptics-driver-support-periodic-sine-and-fixes.patch index 779a8edd625..400a503029c 100644 --- a/projects/ROCKNIX/devices/SM8750/patches/linux/1001-haptics-driver-support-periodic-sine-and-fixes.patch +++ b/projects/ROCKNIX/devices/SM8750/patches/linux/1001-haptics-driver-support-periodic-sine-and-fixes.patch @@ -20,7 +20,7 @@ goto restore; @@ -2121,9 +2125,12 @@ haptics_read(chip, chip->hbst_addr_base, 0x09, &val, 1); - dev_err(chip->dev, "haptics_enable_play, 0xf209=0x%x\n", val); + dev_dbg(chip->dev, "haptics_enable_play, 0xf209=0x%x\n", val); - if (!en) + if (!en) { diff --git a/projects/ROCKNIX/devices/SM8750/patches/linux/1004-input-qcom-hv-haptics-defer-rsinput-playback.patch b/projects/ROCKNIX/devices/SM8750/patches/linux/1004-input-qcom-hv-haptics-defer-rsinput-playback.patch new file mode 100644 index 00000000000..10bd9a50a87 --- /dev/null +++ b/projects/ROCKNIX/devices/SM8750/patches/linux/1004-input-qcom-hv-haptics-defer-rsinput-playback.patch @@ -0,0 +1,186 @@ +From: gh123man +Subject: [PATCH] input: qcom-hv-haptics: defer rsinput playback bridge + +The rsinput force-feedback playback callback runs below input_event(), with +the input device event spinlock held and interrupts disabled. The global +Qualcomm haptics bridge calls haptics_erase() directly from that callback. +haptics_erase() takes a mutex and synchronously cancels delayed work, which +can sleep and produces "BUG: scheduling while atomic" during game rumble. + +Keep playback submission atomic by recording the latest request and applying +it from a workqueue. Serialize uploads, playback, and gain changes with a +mutex in process context, and drain both playback work and delayed stop work +before suspending the haptics device. + +--- +--- a/drivers/input/misc/qcom-hv-haptics.c ++++ b/drivers/input/misc/qcom-hv-haptics.c +@@ -792,6 +792,12 @@ + struct notifier_block lpass_ssr_nb; + struct mutex vmax_lock; + struct work_struct set_gain_work; ++ struct mutex global_ff_lock; ++ struct work_struct global_playback_work; ++ spinlock_t global_playback_lock; ++ u32 global_playback_seq; ++ int global_effect_id; ++ int global_playback_val; + volatile bool chip_effect_loaded; + volatile bool chip_is_playing; + struct list_head mmap_effect_list; +@@ -858,6 +864,7 @@ + }; + + static struct haptics_chip *phapchip; ++static void haptics_global_playback_work(struct work_struct *work); + + bool qcom_haptics_vi_sense_is_enabled(void) + { +@@ -6438,6 +6445,9 @@ + hrtimer_setup(&chip->hbst_off_timer, haptics_disable_hbst_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + INIT_DELAYED_WORK(&chip->stop_work, haptics_stop_constant_effect_play); + INIT_WORK(&chip->set_gain_work, haptics_set_gain_work); ++ mutex_init(&chip->global_ff_lock); ++ spin_lock_init(&chip->global_playback_lock); ++ INIT_WORK(&chip->global_playback_work, haptics_global_playback_work); + + atomic_set(&chip->play.fifo_status.is_busy, 0); + atomic_set(&chip->play.fifo_status.written_done, 0); +@@ -6545,6 +6555,7 @@ + struct haptics_chip *chip = dev_get_drvdata(&pdev->dev); + + phapchip = NULL; ++ cancel_work_sync(&chip->global_playback_work); + if (chip->pbs_node) + of_node_put(chip->pbs_node); + +@@ -6602,6 +6613,9 @@ + struct haptics_play_info *play = &chip->play; + int rc; + ++ cancel_work_sync(&chip->global_playback_work); ++ cancel_delayed_work_sync(&chip->stop_work); ++ + mutex_lock(&play->lock); + if ((play->pattern_src == FIFO) && + atomic_read(&play->fifo_status.is_busy)) { +@@ -6730,54 +6744,91 @@ + haptics_ds_suspend_config(chip->dev); + } + +-int qcom_spmi_haptics_global_upload(struct ff_effect *effect) { +- int ret; +- +- if (!phapchip) +- return -ENODEV; +- +- spin_lock_irq(&phapchip->input_dev->event_lock); ++static void haptics_global_playback_work(struct work_struct *work) ++{ ++ struct haptics_chip *chip = container_of(work, struct haptics_chip, ++ global_playback_work); ++ unsigned long flags; ++ u32 sequence; ++ int effect_id, val, ret; + +- ret = phapchip->input_dev->ff->upload(phapchip->input_dev, effect, NULL); ++ /* ++ * Force-feedback playback is called with the input device event lock held, ++ * so it cannot invoke the haptics callbacks directly: erase waits for the ++ * delayed stop work and takes a mutex. Apply the latest requested state ++ * here instead, in sleepable workqueue context. Loop if another event was ++ * delivered while the hardware operation was in progress. ++ */ ++ do { ++ spin_lock_irqsave(&chip->global_playback_lock, flags); ++ sequence = chip->global_playback_seq; ++ effect_id = chip->global_effect_id; ++ val = chip->global_playback_val; ++ spin_unlock_irqrestore(&chip->global_playback_lock, flags); ++ ++ mutex_lock(&chip->global_ff_lock); ++ if (val) ++ ret = haptics_playback(chip->input_dev, effect_id, val); ++ else ++ ret = haptics_erase(chip->input_dev, effect_id); ++ mutex_unlock(&chip->global_ff_lock); + +- spin_unlock_irq(&phapchip->input_dev->event_lock); ++ if (ret) ++ dev_warn(chip->dev, "global %s failed: %d\n", ++ val ? "playback" : "erase", ret); + +- return ret; ++ spin_lock_irqsave(&chip->global_playback_lock, flags); ++ ret = sequence != chip->global_playback_seq; ++ spin_unlock_irqrestore(&chip->global_playback_lock, flags); ++ } while (ret); + } + +-int qcom_spmi_haptics_global_playback(int effect_id, int val) { ++int qcom_spmi_haptics_global_upload(struct ff_effect *effect) ++{ ++ struct haptics_chip *chip = READ_ONCE(phapchip); + int ret; + +- if (!phapchip) ++ if (!chip) + return -ENODEV; + +- spin_lock_irq(&phapchip->input_dev->event_lock); ++ mutex_lock(&chip->global_ff_lock); ++ ret = haptics_upload_effect(chip->input_dev, effect, NULL); ++ mutex_unlock(&chip->global_ff_lock); + +- if (val != 0) +- ret = phapchip->input_dev->ff->playback(phapchip->input_dev, effect_id, val); +- else +- ret = phapchip->input_dev->ff->erase(phapchip->input_dev, effect_id); ++ return ret; ++} ++ ++int qcom_spmi_haptics_global_playback(int effect_id, int val) ++{ ++ struct haptics_chip *chip = READ_ONCE(phapchip); ++ unsigned long flags; + +- if (ret) +- pr_warn("%s called for %s, error in return (%d)\n", __func__, (val!=0 ? "Playback" : "Erase"), ret); ++ if (!chip) ++ return -ENODEV; + +- spin_unlock_irq(&phapchip->input_dev->event_lock); ++ spin_lock_irqsave(&chip->global_playback_lock, flags); ++ chip->global_effect_id = effect_id; ++ chip->global_playback_val = val; ++ chip->global_playback_seq++; ++ spin_unlock_irqrestore(&chip->global_playback_lock, flags); + +- return ret; ++ schedule_work(&chip->global_playback_work); ++ return 0; + } + +-int qcom_spmi_haptics_global_set_gain(u16 gain) { +- if (!phapchip) +- return -ENODEV; ++int qcom_spmi_haptics_global_set_gain(u16 gain) ++{ ++ struct haptics_chip *chip = READ_ONCE(phapchip); + +- spin_lock_irq(&phapchip->input_dev->event_lock); ++ if (!chip) ++ return -ENODEV; + + //max is 0x7fff, and minimum is 0x4000 the same values android uses + gain = clamp(gain, 0x4000, 0x7fff); + +- phapchip->input_dev->ff->set_gain(phapchip->input_dev, gain); +- +- spin_unlock_irq(&phapchip->input_dev->event_lock); ++ mutex_lock(&chip->global_ff_lock); ++ haptics_set_gain(chip->input_dev, gain); ++ mutex_unlock(&chip->global_ff_lock); + + return 0; + } diff --git a/projects/ROCKNIX/packages/apps/commander/package.mk b/projects/ROCKNIX/packages/apps/commander/package.mk index 49598050cb3..8cd5b64dea6 100644 --- a/projects/ROCKNIX/packages/apps/commander/package.mk +++ b/projects/ROCKNIX/packages/apps/commander/package.mk @@ -5,7 +5,7 @@ PKG_NAME="commander" PKG_VERSION="b3c008cac3bff9de54a3542cecc53cc271058744" PKG_LICENSE="MIT" PKG_SITE="https://github.com/ROCKNIX/commander" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_image SDL2_gfx SDL2_ttf dejavu nanumgothic" PKG_LONGDESC="A minimal SDL2 file manager for embedded Linux devices." PKG_TOOLCHAIN="cmake" @@ -14,10 +14,8 @@ PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_BUILD_TYPE=Release" makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - mkdir -p ${INSTALL}/usr/share/commander - - cp -rf ${PKG_BUILD}/.${TARGET_NAME}/commander ${INSTALL}/usr/bin/ - cp -rf ${PKG_BUILD}/res ${INSTALL}/usr/share/commander/res + cp -a ${PKG_BUILD}/.${TARGET_NAME}/commander ${INSTALL}/usr/bin - chmod 0755 ${INSTALL}/usr/bin/commander + mkdir -p ${INSTALL}/usr/share/commander + cp -a ${PKG_BUILD}/res ${INSTALL}/usr/share/commander } diff --git a/projects/ROCKNIX/packages/apps/gamecontrollerdb/package.mk b/projects/ROCKNIX/packages/apps/gamecontrollerdb/package.mk index 18793bf68ab..cd4b3f80b5b 100644 --- a/projects/ROCKNIX/packages/apps/gamecontrollerdb/package.mk +++ b/projects/ROCKNIX/packages/apps/gamecontrollerdb/package.mk @@ -2,18 +2,18 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="gamecontrollerdb" -PKG_VERSION="e1efb4bad8730b2c0c6316617cbd06b9def1192e" +PKG_VERSION="42f28e22d20761e7004e8db91c4ad86402fdf600" PKG_LICENSE="GPL" PKG_DEPENDS_TARGET="toolchain SDL2" PKG_SITE="https://github.com/gabomdq/SDL_GameControllerDB" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_LONGDESC="SDL Game Controller DB" PKG_TOOLCHAIN="manual" makeinstall_target() { mkdir -p ${INSTALL}/usr/config/SDL-GameControllerDB - if [ -f "${PKG_DIR}/config/gamecontrollerdb.txt" ]; then - cat ${PKG_DIR}/config/gamecontrollerdb.txt >${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt - fi - cat ${PKG_BUILD}/gamecontrollerdb.txt >>${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt + if [ -f "${PKG_DIR}/config/gamecontrollerdb.txt" ]; then + cat ${PKG_DIR}/config/gamecontrollerdb.txt >${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt + fi + cat ${PKG_BUILD}/gamecontrollerdb.txt >>${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt } diff --git a/projects/ROCKNIX/packages/apps/gamepadtester/package.mk b/projects/ROCKNIX/packages/apps/gamepadtester/package.mk index b44a63ef4c2..9d0fdf6491b 100644 --- a/projects/ROCKNIX/packages/apps/gamepadtester/package.mk +++ b/projects/ROCKNIX/packages/apps/gamepadtester/package.mk @@ -5,7 +5,7 @@ PKG_NAME="gamepadtester" PKG_VERSION="6ac49e67aa98fe3dd5c27f73306d65d4b7a82daa" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/timre13/GamepadTester" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_gfx gamecontrollerdb" PKG_LONGDESC="A simple SDL GUI Gamepad tester" PKG_TOOLCHAIN="cmake" @@ -14,18 +14,16 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in SM8650|SM8750|SM8550|SM8250) PKG_PATCH_DIRS+=" xbox" - ;; + ;; *) PKG_PATCH_DIRS+=" legacy" - ;; + ;; esac makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp -rf ${PKG_BUILD}/.${TARGET_NAME}/gamepad_test ${INSTALL}/usr/bin/gamepad-tester - chmod 0755 ${INSTALL}/usr/bin/gamepad-tester + cp -a ${PKG_BUILD}/.${TARGET_NAME}/gamepad_test ${INSTALL}/usr/bin/gamepad-tester mkdir -p ${INSTALL}/usr/config/modules - cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/config/modules - chmod 0755 ${INSTALL}/usr/config/modules/* + cp -a ${PKG_DIR}/scripts/* ${INSTALL}/usr/config/modules } diff --git a/projects/ROCKNIX/packages/apps/gamepadtester/scripts/Test Gamepad.sh b/projects/ROCKNIX/packages/apps/gamepadtester/scripts/Test Gamepad.sh old mode 100644 new mode 100755 diff --git a/projects/ROCKNIX/packages/apps/jstest-sdl/package.mk b/projects/ROCKNIX/packages/apps/jstest-sdl/package.mk index d6367368ee2..074d3af6e4f 100644 --- a/projects/ROCKNIX/packages/apps/jstest-sdl/package.mk +++ b/projects/ROCKNIX/packages/apps/jstest-sdl/package.mk @@ -6,7 +6,7 @@ PKG_NAME="jstest-sdl" PKG_VERSION="f4fdf6daae687d19b303d8ba8809ff5a68bc33a4" PKG_LICENSE="MIT" PKG_SITE="https://github.com/ROCKNIX/jstest-sdl" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain SDL2 ncurses" PKG_LONGDESC="Simple SDL joystick test application for the console" PKG_TOOLCHAIN="make" @@ -18,5 +18,5 @@ pre_configure_target() { makeinstall_target(){ mkdir -p ${INSTALL}/usr/bin - cp jstest-sdl ${INSTALL}/usr/bin + cp -a jstest-sdl ${INSTALL}/usr/bin } diff --git a/projects/ROCKNIX/packages/apps/oga_controls/package.mk b/projects/ROCKNIX/packages/apps/oga_controls/package.mk index 87b9e0eabe9..3c60946c05f 100644 --- a/projects/ROCKNIX/packages/apps/oga_controls/package.mk +++ b/projects/ROCKNIX/packages/apps/oga_controls/package.mk @@ -5,8 +5,7 @@ PKG_NAME="oga_controls" PKG_VERSION="1604ee24150c1c5bb7c66bc4670919c2ad8f0064" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/christianhaitian/oga_controls" -PKG_URL="${PKG_SITE}.git" -PKG_GIT_CLONE_BRANCH="universal" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain libevdev SDL2" PKG_LONGDESC="Emulated keyboard / mouse / joystick for the RGB10/OGA 1.1 (BE), RG351 P/M/V, RK2020/OGA 1.0, OGS, and the Chi" PKG_TOOLCHAIN="make" @@ -21,5 +20,5 @@ pre_make_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/oga_controls* ${INSTALL}/usr/bin + cp -a ${PKG_BUILD}/oga_controls* ${INSTALL}/usr/bin } diff --git a/projects/ROCKNIX/packages/apps/rocknix-hotkey/package.mk b/projects/ROCKNIX/packages/apps/rocknix-hotkey/package.mk index 391b401c2a5..a9396097852 100644 --- a/projects/ROCKNIX/packages/apps/rocknix-hotkey/package.mk +++ b/projects/ROCKNIX/packages/apps/rocknix-hotkey/package.mk @@ -1,22 +1,21 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert) +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2026-present ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="rocknix-hotkey" PKG_VERSION="cc3a863199a71a350db05e9d0d0e646a8411332c" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/ROCKNIX/rocknix-hotkey" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain libevdev SDL2 control-gen" PKG_TOOLCHAIN="make" - makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/gptokeyb ${INSTALL}/usr/bin + cp -a ${PKG_BUILD}/gptokeyb ${INSTALL}/usr/bin mkdir -p ${INSTALL}/usr/lib - cp ${PKG_BUILD}/inputfilter.so ${INSTALL}/usr/lib + cp -a ${PKG_BUILD}/inputfilter.so ${INSTALL}/usr/lib - mkdir -p ${INSTALL}/usr/config/gptokeyb/ - cp ${PKG_BUILD}/configs/default.gptk ${INSTALL}/usr/config/gptokeyb/ + mkdir -p ${INSTALL}/usr/config/gptokeyb + cp -a ${PKG_BUILD}/configs/default.gptk ${INSTALL}/usr/config/gptokeyb } diff --git a/projects/ROCKNIX/packages/apps/sdltouchtest/package.mk b/projects/ROCKNIX/packages/apps/sdltouchtest/package.mk index 352a40431c4..dc7fbed1cd7 100644 --- a/projects/ROCKNIX/packages/apps/sdltouchtest/package.mk +++ b/projects/ROCKNIX/packages/apps/sdltouchtest/package.mk @@ -5,7 +5,7 @@ PKG_NAME="sdltouchtest" PKG_VERSION="b62dae0d6233869a4c70a9472bc1e93dec391f94" PKG_LICENSE="MIT" PKG_SITE="https://github.com/realchonk/sdl2-touch-test" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain SDL2" PKG_LONGDESC="SDL2 touchscreen tester" PKG_TOOLCHAIN="make" @@ -16,14 +16,13 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/test ${INSTALL}/usr/bin/sdltouchtest - chmod 0755 ${INSTALL}/usr/bin/* + cp -a ${PKG_BUILD}/test ${INSTALL}/usr/bin/sdltouchtest case ${DEVICE} in RK3399|RK35*|SM8250|SM8550) mkdir -p ${INSTALL}/usr/config/modules cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/config/modules chmod 0755 ${INSTALL}/usr/config/modules/* - ;; -esac + ;; + esac } diff --git a/projects/ROCKNIX/packages/apps/sdltouchtest/scripts/Test Touchscreen.sh b/projects/ROCKNIX/packages/apps/sdltouchtest/scripts/Test Touchscreen.sh old mode 100644 new mode 100755 diff --git a/projects/ROCKNIX/packages/compat/box64/package.mk b/projects/ROCKNIX/packages/compat/box64/package.mk index 616ce57fc7c..673cdfdfe78 100644 --- a/projects/ROCKNIX/packages/compat/box64/package.mk +++ b/projects/ROCKNIX/packages/compat/box64/package.mk @@ -6,7 +6,7 @@ PKG_VERSION="2f130fab1d6e1a4ee8a71dc60cfdfcc839ad192a" # v0.4.4 PKG_ARCH="aarch64" PKG_LICENSE="MIT" PKG_SITE="https://github.com/ptitSeb/box64" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain ncurses SDL2 cabextract libxss libXdmcp libXft gtk2" PKG_LONGDESC="Box64 lets you run x86_64 Linux programs (such as games) on non-x86_64 Linux systems, like ARM." PKG_TOOLCHAIN="cmake" diff --git a/projects/ROCKNIX/packages/compat/box86/package.mk b/projects/ROCKNIX/packages/compat/box86/package.mk index 0fbbb656e6d..f7f7e9b3547 100644 --- a/projects/ROCKNIX/packages/compat/box86/package.mk +++ b/projects/ROCKNIX/packages/compat/box86/package.mk @@ -2,10 +2,10 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="box86" -PKG_VERSION="0579f8b9c47d87d700724f4cce559b06cbd2b0f5" +PKG_VERSION="39d3ed203323000c11f47b780f7468fa24a7185d" PKG_LICENSE="MIT" PKG_SITE="https://github.com/ptitSeb/box86" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain ncurses SDL2 libXdmcp libXft libXcomposite cups libogg" PKG_LONGDESC="Box86 lets you run x86 Linux programs (such as games) on non-x86 Linux systems, like ARM." PKG_TOOLCHAIN="cmake" @@ -62,7 +62,6 @@ makeinstall_target() { mkdir -p ${INSTALL}/etc/binfmt.d cp ${PKG_BUILD}/.${TARGET_NAME}/system/box86.conf ${INSTALL}/etc/binfmt.d - ;; aarch64) mkdir -p ${INSTALL}/usr/share/box86/lib @@ -76,7 +75,6 @@ makeinstall_target() { mkdir -p ${INSTALL}/etc/binfmt.d cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/install_pkg/${PKG_NAME}-*/etc/binfmt.d/box86.conf ${INSTALL}/etc/binfmt.d - ;; esac diff --git a/projects/ROCKNIX/packages/devel/libserialport/package.mk b/projects/ROCKNIX/packages/devel/libserialport/package.mk index adc4e7d857f..dfae36cad30 100644 --- a/projects/ROCKNIX/packages/devel/libserialport/package.mk +++ b/projects/ROCKNIX/packages/devel/libserialport/package.mk @@ -1,17 +1,17 @@ # SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="libserialport" -PKG_VERSION="fd20b0fc5a34cd7f776e4af6c763f59041de223b" +PKG_VERSION="21b3dfe5f68c205be4086469335fd2fc2ce11ed2" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/sigrokproject/libserialport" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="A minimal, cross-platform shared library written in C that is intended to take care of the OS-specific details when writing software that uses serial ports." PKG_TOOLCHAIN="make" make_target() { cd ${PKG_BUILD} - - ./autogen.sh - ./configure --host=${TARGET_NAME} --with-sysroot=${SYSROOT_PREFIX} --prefix=/usr + ./autogen.sh + ./configure --host=${TARGET_NAME} --with-sysroot=${SYSROOT_PREFIX} --prefix=/usr } diff --git a/projects/ROCKNIX/packages/graphics/capsimg/package.mk b/projects/ROCKNIX/packages/graphics/capsimg/package.mk index dadd7e48069..a4556f070d5 100644 --- a/projects/ROCKNIX/packages/graphics/capsimg/package.mk +++ b/projects/ROCKNIX/packages/graphics/capsimg/package.mk @@ -5,25 +5,26 @@ PKG_NAME="capsimg" PKG_VERSION="ed4cb0912fb1a2a0d5203111c6f6abd50d411b56" PKG_LICENSE="GPL" PKG_SITE="https://github.com/FrodeSolheim/capsimg" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="SPS Decoder Library 5.1 (formerly IPF Decoder Lib)" PKG_TOOLCHAIN="make" -PKG_PATCH_DIRS+="${DEVICE}" +PKG_PATCH_DIRS+=" ${DEVICE}" PKG_MAKE_OPTS_TARGET="-C CAPSImg" pre_configure_target() { cd .. - ./bootstrap - ./configure --host=${TARGET_NAME} + ./bootstrap + ./configure --host=${TARGET_NAME} } makeinstall_target() { mkdir -p ${INSTALL}/usr/lib - cp -v CAPSImg/libcapsimage.so.5.1 ${INSTALL}/usr/lib/ - ln -sf libcapsimage.so.5.1 ${INSTALL}/usr/lib/libcapsimage.so.5 - ln -sf libcapsimage.so.5.1 ${INSTALL}/usr/lib/libcapsimage.so + cp -a CAPSImg/libcapsimage.so.5.1 ${INSTALL}/usr/lib + ln -sf libcapsimage.so.5.1 ${INSTALL}/usr/lib/libcapsimage.so.5 + ln -sf libcapsimage.so.5.1 ${INSTALL}/usr/lib/libcapsimage.so + mkdir -p ${INSTALL}/usr/include/caps5 - cp -v LibIPF/* ${INSTALL}/usr/include/caps5 + cp -a LibIPF/* ${INSTALL}/usr/include/caps5 } diff --git a/projects/ROCKNIX/packages/graphics/fbgrab/package.mk b/projects/ROCKNIX/packages/graphics/fbgrab/package.mk index cbf145a3101..e8ae34d2999 100644 --- a/projects/ROCKNIX/packages/graphics/fbgrab/package.mk +++ b/projects/ROCKNIX/packages/graphics/fbgrab/package.mk @@ -5,7 +5,7 @@ PKG_NAME="fbgrab" PKG_VERSION="5c2481d2b67b634e4e611610c33d30ef796afe5d" PKG_LICENSE="GPL2.0" PKG_SITE="https://github.com/GunnarMonell/fbgrab" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="A utility to grab/screenshot the framebuffer." diff --git a/projects/ROCKNIX/packages/graphics/imagemagick/package.mk b/projects/ROCKNIX/packages/graphics/imagemagick/package.mk index 861b37cacb1..a21fb122756 100644 --- a/projects/ROCKNIX/packages/graphics/imagemagick/package.mk +++ b/projects/ROCKNIX/packages/graphics/imagemagick/package.mk @@ -3,10 +3,10 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="imagemagick" -PKG_VERSION="f65eba252e3aa387bd99297a750a2ee250664f8c" +PKG_VERSION="7.1.2-29" PKG_LICENSE="http://www.imagemagick.org/script/license.php" PKG_SITE="https://github.com/ImageMagick/ImageMagick" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain libpng libjpeg-turbo fontconfig libraw lcms2 libtool libxml2 libzip libwebp" PKG_LONGDESC="Software suite to create, edit, compose, or convert bitmap images" @@ -33,5 +33,5 @@ pre_configure_target() { makeinstall_target() { make install DESTDIR=${INSTALL} ${PKG_MAKEINSTALL_OPTS_TARGET} - rm ${INSTALL}/usr/bin/*config + rm -f ${INSTALL}/usr/bin/*config } diff --git a/projects/ROCKNIX/packages/graphics/libmali/package.mk b/projects/ROCKNIX/packages/graphics/libmali/package.mk index 688c6a3cab0..765e2fe4e99 100644 --- a/projects/ROCKNIX/packages/graphics/libmali/package.mk +++ b/projects/ROCKNIX/packages/graphics/libmali/package.mk @@ -25,9 +25,6 @@ case "${DEVICE}" in RK3588) DRIVER_VERSION="g13p0" ;; - RK3326) # RK3326 and RK3566 - DRIVER_VERSION="g24p0" - ;; esac case "${DISPLAYSERVER}" in diff --git a/projects/ROCKNIX/packages/graphics/librga/package.mk b/projects/ROCKNIX/packages/graphics/librga/package.mk index d08cdfd2f13..c9f25ddf188 100644 --- a/projects/ROCKNIX/packages/graphics/librga/package.mk +++ b/projects/ROCKNIX/packages/graphics/librga/package.mk @@ -3,10 +3,9 @@ PKG_NAME="librga" PKG_VERSION="ccfec13d6c48e3f0c7f24810b3dac162c40cdda8" -PKG_ARCH="arm aarch64" PKG_LICENSE="Apache-2.0" PKG_DEPENDS_TARGET="toolchain libdrm" PKG_SITE="https://github.com/varphone/rockchip-linux-rga" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_LONGDESC="RGA is an independent 2D hardware acceleration userspace driver" PKG_TOOLCHAIN="meson" diff --git a/projects/ROCKNIX/packages/graphics/lsfg-vk/package.mk b/projects/ROCKNIX/packages/graphics/lsfg-vk/package.mk index 0b2af7f88e2..d62e33836f1 100644 --- a/projects/ROCKNIX/packages/graphics/lsfg-vk/package.mk +++ b/projects/ROCKNIX/packages/graphics/lsfg-vk/package.mk @@ -5,19 +5,12 @@ PKG_NAME="lsfg-vk" PKG_VERSION="8b0da2661c6f3473a7fccc8ba643880050e71642" PKG_LICENSE="GPL-3.0" PKG_SITE="https://github.com/PancakeTAS/lsfg-vk" -PKG_URL="${PKG_SITE}.git" -PKG_GIT_CLONE_BRANCH="develop" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_HOST="toolchain:host vulkan-headers:host" PKG_DEPENDS_TARGET="toolchain ${VULKAN} lsfg-vk:host" PKG_LONGDESC="Lossless Scaling Frame Generation Vulkan layer for Linux." - PKG_TOOLCHAIN="cmake" -post_unpack() { - cd ${PKG_BUILD} - git submodule update --init --recursive -} - pre_configure_target() { PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ @@ -40,12 +33,19 @@ pre_configure_host() { makeinstall_target() { cd ${PKG_BUILD}/.${TARGET_NAME} - DESTDIR="${INSTALL}" ninja install - mkdir -p "${INSTALL}/usr/lib/pressure-vessel/overrides/share/vulkan/implicit_layer.d" - cp "${INSTALL}/usr/share/vulkan/implicit_layer.d/VkLayer_LSFGVK_frame_generation.json" \ - "${INSTALL}/usr/lib/pressure-vessel/overrides/share/vulkan/implicit_layer.d/" - mkdir -p "${INSTALL}/usr/share/fex-emu" - cp "${TOOLCHAIN}/lib/liblsfg-vk-layer.so" "${INSTALL}/usr/share/fex-emu" + DESTDIR="${INSTALL}" ninja install + + if ! grep -q '"enable_environment"' ${INSTALL}/usr/share/vulkan/implicit_layer.d/VkLayer_LSFGVK_frame_generation.json; then + sed -i '/"disable_environment"/i\ "enable_environment": { "LSFGVK_ENV": "1" },' \ + ${INSTALL}/usr/share/vulkan/implicit_layer.d/VkLayer_LSFGVK_frame_generation.json + fi + + mkdir -p ${INSTALL}/usr/lib/pressure-vessel/overrides/share/vulkan/implicit_layer.d + cp ${INSTALL}/usr/share/vulkan/implicit_layer.d/VkLayer_LSFGVK_frame_generation.json \ + ${INSTALL}/usr/lib/pressure-vessel/overrides/share/vulkan/implicit_layer.d + + mkdir -p ${INSTALL}/usr/share/fex-emu + cp -a ${TOOLCHAIN}/lib/liblsfg-vk-layer.so ${INSTALL}/usr/share/fex-emu } diff --git a/projects/ROCKNIX/packages/lang/luajit/package.mk b/projects/ROCKNIX/packages/lang/luajit/package.mk index a5cab502aac..a4821efb28e 100644 --- a/projects/ROCKNIX/packages/lang/luajit/package.mk +++ b/projects/ROCKNIX/packages/lang/luajit/package.mk @@ -2,14 +2,13 @@ # Copyright (C) 2019 Trond Haugland (github.com/escalade) PKG_NAME="luajit" -PKG_VERSION="29b0b282f59ac533313199f4f7be79490b7eee51" +PKG_VERSION="1edc3e52b67eaf6ce5f809be8e17d6862594b8bc" PKG_LICENSE="MIT" PKG_SITE="https://github.com/LuaJIT/LuaJIT" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_HOST="toolchain:host" PKG_DEPENDS_TARGET="toolchain luajit:host" PKG_LONGDESC="LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language. " - -PKG_GIT_CLONE_BRANCH="v2.1" PKG_TOOLCHAIN="manual" PKG_BUILD_FLAGS="+speed" diff --git a/projects/ROCKNIX/packages/linux-firmware/RTL8188FU-firmware/package.mk b/projects/ROCKNIX/packages/linux-firmware/RTL8188FU-firmware/package.mk index 52c9e933673..1188b4f5888 100644 --- a/projects/ROCKNIX/packages/linux-firmware/RTL8188FU-firmware/package.mk +++ b/projects/ROCKNIX/packages/linux-firmware/RTL8188FU-firmware/package.mk @@ -1,8 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX) + PKG_NAME="RTL8188FU-firmware" -PKG_VERSION="68ced40d862d13663294496bac2e9a91ffa0e5c7" +PKG_VERSION="c8c95708b3756c67139c456a2a6576c1e6491d82" PKG_LICENSE="GPL" PKG_SITE="https://github.com/kelebek333/rtl8188fu" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Realtek RTL81xxFU Linux firmware" PKG_IS_KERNEL_PKG="yes" @@ -10,5 +13,5 @@ PKG_TOOLCHAIN="manual" makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi - cp firmware/rtl8188fufw.bin ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi + cp firmware/rtl8188fufw.bin ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi } diff --git a/projects/ROCKNIX/packages/multimedia/libvpx/package.mk b/projects/ROCKNIX/packages/multimedia/libvpx/package.mk index add3c140ea5..e878e850540 100644 --- a/projects/ROCKNIX/packages/multimedia/libvpx/package.mk +++ b/projects/ROCKNIX/packages/multimedia/libvpx/package.mk @@ -6,13 +6,14 @@ PKG_NAME="libvpx" PKG_VERSION="df655cf4fb6c2a23b964544acd015cc715752830" # 1.13.1 PKG_LICENSE="BSD" PKG_SITE="https://github.com/webmproject/libvpx" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_HOST="toolchain nasm:host" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="WebM VP8/VP9 Codec" configure_host() { HOST_ARCH=$(uname -m) + case ${HOST_ARCH} in aarch64) PKG_HOST_NAME_LIBVPX="arm64-linux-gcc" @@ -24,26 +25,26 @@ configure_host() { PKG_HOST_NAME_LIBVPX="x86_64-linux-gcc" ;; esac + ${PKG_CONFIGURE_SCRIPT} --prefix=${TOOLCHAIN} \ - --extra-cflags="${CFLAGS}" \ - --as=nasm \ - --target=${PKG_HOST_NAME_LIBVPX} \ - --disable-docs \ - --disable-examples \ - --disable-shared \ - --disable-tools \ - --disable-unit-tests \ - --disable-vp8-decoder \ - --disable-vp9-decoder \ - --enable-ccache \ - --enable-pic \ - --enable-static \ - --enable-vp8 \ - --enable-vp9 + --extra-cflags="${CFLAGS}" \ + --as=nasm \ + --target=${PKG_HOST_NAME_LIBVPX} \ + --disable-docs \ + --disable-examples \ + --disable-shared \ + --disable-tools \ + --disable-unit-tests \ + --disable-vp8-decoder \ + --disable-vp9-decoder \ + --enable-ccache \ + --enable-pic \ + --enable-static \ + --enable-vp8 \ + --enable-vp9 } configure_target() { - case ${ARCH} in aarch64) PKG_TARGET_NAME_LIBVPX="arm64-linux-gcc" @@ -57,24 +58,23 @@ configure_target() { esac ${PKG_CONFIGURE_SCRIPT} --prefix=/usr \ - --extra-cflags="${CFLAGS}" \ - --as=nasm \ - --target=${PKG_TARGET_NAME_LIBVPX} \ - --disable-docs \ - --disable-examples \ - --enable-shared \ - --disable-tools \ - --disable-unit-tests \ - --disable-vp8-decoder \ - --disable-vp9-decoder \ - --enable-ccache \ - --enable-pic \ - --enable-static \ - --enable-vp8 \ - --enable-vp9 + --extra-cflags="${CFLAGS}" \ + --as=nasm \ + --target=${PKG_TARGET_NAME_LIBVPX} \ + --disable-docs \ + --disable-examples \ + --enable-shared \ + --disable-tools \ + --disable-unit-tests \ + --disable-vp8-decoder \ + --disable-vp9-decoder \ + --enable-ccache \ + --enable-pic \ + --enable-static \ + --enable-vp8 \ + --enable-vp9 } post_makeinstall_target() { - ln -sfv libvpx.so.8.0.1 ${INSTALL}/usr/lib/libvpx.so.6 + ln -sf libvpx.so.8.0.1 ${INSTALL}/usr/lib/libvpx.so.6 } - diff --git a/projects/ROCKNIX/packages/print/poppler/package.mk b/projects/ROCKNIX/packages/print/poppler/package.mk index b53934eb7e7..84cc35a34aa 100644 --- a/projects/ROCKNIX/packages/print/poppler/package.mk +++ b/projects/ROCKNIX/packages/print/poppler/package.mk @@ -4,21 +4,21 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="poppler" -PKG_VERSION="adf710ee" +PKG_VERSION="23.05.0" PKG_LICENSE="GPL" PKG_SITE="https://gitlab.freedesktop.org/poppler/poppler" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/-/archive/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_NAME}-${PKG_VERSION}.tar.bz2" PKG_DEPENDS_TARGET="toolchain zlib libpng libjpeg-turbo fontconfig boost" PKG_LONGDESC="This is Poppler, a library for rendering PDF files, and examining or modifying their structure." PKG_TOOLCHAIN="cmake" -pre_configure_target() { +pre_configure_target() { PKG_CMAKE_OPTS_TARGET="-DCMAKE_BUILD_TYPE=release \ - -DENABLE_LIBOPENJPEG=none \ - -DENABLE_GLIB=ON \ - -DENABLE_QT5=off \ - -DENABLE_CPP=off" - + -DENABLE_LIBOPENJPEG=none \ + -DENABLE_GLIB=ON \ + -DENABLE_QT5=off \ + -DENABLE_CPP=off" + # Disable "gobject-introspection" sed -i "s|set(HAVE_INTROSPECTION \${INTROSPECTION_FOUND})|set(HAVE_INTROSPECTION "NO")|g" ${PKG_BUILD}/CMakeLists.txt } diff --git a/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget b/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget index 51767eecc14..1a3da6f934e 100755 --- a/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget +++ b/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget @@ -15,6 +15,11 @@ MACHINEIDFILE=/storage/.cache/systemd-machine-id SERIAL=$(cat ${MACHINEIDFILE}) +# QUIRK_DEVICE only exists in a login shell, and a zero length iProduct makes +# Windows refuse to start the gadget, so resolve it again rather than trust it. +PRODUCT="${QUIRK_DEVICE:-$(tr -d '\0' < /sys/firmware/devicetree/base/model 2>/dev/null)}" +PRODUCT="${PRODUCT:-${OS_NAME}}" + CACHEDIR=/storage/.cache/usbgadget GADGETCONF=${CACHEDIR}/usbgadget.conf GADGETNETCONF=${CACHEDIR}/network.conf @@ -139,7 +144,7 @@ prepare_usb_network() { echo "${devversion}" > ${g_cdc}/bcdDevice mkdir ${g_cdc}/strings/0x409 echo "${OS_NAME}" > ${g_cdc}/strings/0x409/manufacturer - echo "${QUIRK_DEVICE}" > ${g_cdc}/strings/0x409/product + echo "${PRODUCT}" > ${g_cdc}/strings/0x409/product echo "${SERIAL}" > ${g_cdc}/strings/0x409/serialnumber # config 1 is for CDC @@ -263,19 +268,24 @@ g_mtp="/sys/kernel/config/usb_gadget/mtp" prepare_usb_mtp() { usb_ver="0x0200" # USB 2.0 - dev_class="2" # Communications + dev_class="0" # Per interface, umtprd declares Still Imaging attr="0xC0" # Self powered pwr="0xfe" # mkdir ${g_mtp} + # umtprd is built without CONFIG_USB_SS_SUPPORT, so functionfs only hands the + # kernel full and high speed descriptors. On a SuperSpeed capable UDC the + # composite layer then finds no configuration valid for the negotiated speed + # and stalls GET_DESCRIPTOR(CONFIGURATION), leaving the host stuck at addressed. + [ -w ${g_mtp}/max_speed ] && echo "high-speed" > ${g_mtp}/max_speed echo "${usb_ver}" > ${g_mtp}/bcdUSB echo "${dev_class}" > ${g_mtp}/bDeviceClass echo "0x1d6b" > ${g_mtp}/idVendor - echo "0x0104" > ${g_mtp}/idProduct + echo "0x0100" > ${g_mtp}/idProduct echo "${devversion}" > ${g_mtp}/bcdDevice mkdir ${g_mtp}/strings/0x409 echo "${OS_NAME}" > ${g_mtp}/strings/0x409/manufacturer - echo "${QUIRK_DEVICE}" > ${g_mtp}/strings/0x409/product + echo "${PRODUCT}" > ${g_mtp}/strings/0x409/product echo "${SERIAL}" > ${g_mtp}/strings/0x409/serialnumber # config 1 for MTP @@ -396,8 +406,8 @@ usb_start() { exit 3 fi - mkdir /dev/ffs-umtp - mount mtp -t functionfs /dev/ffs-umtp + mkdir -p /dev/ffs-umtp + mountpoint -q /dev/ffs-umtp || mount mtp -t functionfs /dev/ffs-umtp /usr/sbin/umtprd & sleep 1 @@ -425,6 +435,17 @@ usb_start() { usb_trigger async } +# umtprd keeps ep0 open, so it has to go before the umount can succeed +umtp_teardown() { + killall umtprd 2>/dev/null + for _ in 1 2 3 4 5 6 7 8 9 10; do + mountpoint -q /dev/ffs-umtp 2>/dev/null || break + umount /dev/ffs-umtp 2>/dev/null && break + sleep 0.1 + done + rmdir /dev/ffs-umtp 2>/dev/null +} + usb_stop() { ( @@ -435,10 +456,7 @@ usb_stop() { usb_disable if [ -d /dev/ffs-umtp ] ; then - umount /dev/ffs-umtp - rmdir /dev/ffs-umtp - - killall umtprd + umtp_teardown fi ) >/dev/null 2>&1 } @@ -461,11 +479,7 @@ usb_init_clean_state() { [ -n "$(cat "$udc_link" 2>/dev/null)" ] && echo "" > "$udc_link" 2>/dev/null done - if mountpoint -q /dev/ffs-umtp 2>/dev/null; then - umount /dev/ffs-umtp 2>/dev/null - fi - [ -d /dev/ffs-umtp ] && rmdir /dev/ffs-umtp 2>/dev/null - pkill -x umtprd 2>/dev/null + [ -d /dev/ffs-umtp ] && umtp_teardown if [ -f "${UDHCPPIDFILE}" ]; then cat "${UDHCPPIDFILE}" 2>/dev/null | xargs -r -n 1 kill 2>/dev/null rm -f "${UDHCPPIDFILE}" diff --git a/projects/ROCKNIX/packages/sysutils/drm_tool/package.mk b/projects/ROCKNIX/packages/sysutils/drm_tool/package.mk index cdaf1f239da..c6b77f7e4d6 100644 --- a/projects/ROCKNIX/packages/sysutils/drm_tool/package.mk +++ b/projects/ROCKNIX/packages/sysutils/drm_tool/package.mk @@ -5,11 +5,10 @@ PKG_NAME="drm_tool" PKG_VERSION="1cb5b10b7d529105e33f27388519671ee7ce46f3" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/NickCis/drm_tool" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain libdrm" PKG_LONGDESC="A simple tool for getting drm info and setting properties." - pre_configure_target() { export CFLAGS="${TARGET_CFLAGS} -D_FILE_OFFSET_BITS=64 -ldrm" export LDFLAGS="${TARGET_LDFLAGS} -ldrm" @@ -17,5 +16,5 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp drm_tool ${INSTALL}/usr/bin + cp -a drm_tool ${INSTALL}/usr/bin } diff --git a/projects/ROCKNIX/packages/sysutils/nvtop/package.mk b/projects/ROCKNIX/packages/sysutils/nvtop/package.mk index bfc427ac537..8b9a4be5108 100644 --- a/projects/ROCKNIX/packages/sysutils/nvtop/package.mk +++ b/projects/ROCKNIX/packages/sysutils/nvtop/package.mk @@ -2,11 +2,10 @@ # Copyright (C) 2024-present JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="nvtop" -PKG_VERSION="339ee0b10a64ec51f43d27357b0068a40f16e9e4" -PKG_ARCH="arm aarch64" +PKG_VERSION="76890233d759199f50ad3bdb57a0c0988e96fc44" #3.3.2 PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/Syllo/nvtop" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="libdrm mesa" PKG_LONGDESC="NVTOP stands for Neat Videocard TOP, a (h)top like task monitor for AMD, Intel and NVIDIA GPUs." PKG_TOOLCHAIN="cmake" @@ -14,8 +13,8 @@ PKG_TOOLCHAIN="cmake" case ${TARGET_ARCH} in x86_64) PKG_CMAKE_OPTS_TARGET+=" -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON -DINTEL_SUPPORT=ON -DPANFROST_SUPPORT=OFF -DPANTHOR_SUPPORT=OFF -DMSM_SUPPORT=OFF" - ;; + ;; aarch64) - PKG_CMAKE_OPTS_TARGET+=" -DPANFROST_SUPPORT=ON -DPANTHOR_SUPPORT=ON -DMSM_SUPPORT=ON -DNVIDIA_SUPPORT=OFF -DAMDGPU_SUPPORT=OFF -DINTEL_SUPPORT=OFF" - ;; + PKG_CMAKE_OPTS_TARGET+=" -DPANFROST_SUPPORT=ON -DPANTHOR_SUPPORT=ON -DMSM_SUPPORT=ON -DNVIDIA_SUPPORT=OFF -DAMDGPU_SUPPORT=OFF -DINTEL_SUPPORT=OFF" + ;; esac diff --git a/projects/ROCKNIX/packages/sysutils/squashfuse/package.mk b/projects/ROCKNIX/packages/sysutils/squashfuse/package.mk index 43c88f2ae46..44132eab722 100644 --- a/projects/ROCKNIX/packages/sysutils/squashfuse/package.mk +++ b/projects/ROCKNIX/packages/sysutils/squashfuse/package.mk @@ -2,11 +2,10 @@ # Copyright (C) 2026 ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="squashfuse" -PKG_VERSION="e1e237a7ee9f0646d05aa85d20939c49555279db" -PKG_ARCH="aarch64" +PKG_VERSION="df85c4ddf1a079b10cfe39a2caf7d0cfdc504a6b" PKG_LICENSE="BSD-2-Clause" PKG_SITE="https://github.com/vasi/squashfuse" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain fuse" PKG_LONGDESC=" squashfuse - Mount SquashFS archives using FUSE" PKG_TOOLCHAIN="autotools" diff --git a/projects/ROCKNIX/packages/tools/batteryplus/package.mk b/projects/ROCKNIX/packages/tools/batteryplus/package.mk index b21a7cf4914..d29972bb747 100644 --- a/projects/ROCKNIX/packages/tools/batteryplus/package.mk +++ b/projects/ROCKNIX/packages/tools/batteryplus/package.mk @@ -3,37 +3,35 @@ PKG_NAME="batteryplus" PKG_VERSION="1c31e89ec1828d51710ad35a607bdfad7e18464e" -PKG_GIT_CLONE_BRANCH="main" PKG_LICENSE="GPL" PKG_SITE="https://github.com/Mikhailzrick/knubat.components" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain systemd" -PKG_LONGDESC="BatteryPlus — battery percentage daemon for handheld Linux systems" - +PKG_LONGDESC="BatteryPlus is a battery percentage daemon for handheld Linux systems" PKG_TOOLCHAIN="make" pre_make_target() { - cp ${PKG_DIR}/Makefile ${PKG_BUILD} + cp ${PKG_DIR}/Makefile ${PKG_BUILD} } makeinstall_target() { - mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/batteryplus ${INSTALL}/usr/bin - cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin - chmod 0755 ${INSTALL}/usr/bin/* - - mkdir -p ${INSTALL}/etc/batteryplus - cp -f ${PKG_DIR}/config/batteryplus.conf ${INSTALL}/etc/batteryplus - - # Empty hook dirs - mkdir -p ${INSTALL}/etc/batteryplus/charging.d - touch ${INSTALL}/etc/batteryplus/charging.d/.keep - mkdir -p ${INSTALL}/etc/batteryplus/discharging.d - touch ${INSTALL}/etc/batteryplus/discharging.d/.keep - mkdir -p ${INSTALL}/etc/batteryplus/state.d - touch ${INSTALL}/etc/batteryplus/state.d/.keep + mkdir -p ${INSTALL}/usr/bin + cp -a ${PKG_BUILD}/batteryplus ${INSTALL}/usr/bin + cp -a ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin + + mkdir -p ${INSTALL}/etc/batteryplus + cp -a ${PKG_DIR}/config/batteryplus.conf ${INSTALL}/etc/batteryplus + + mkdir -p ${INSTALL}/etc/batteryplus/charging.d + touch ${INSTALL}/etc/batteryplus/charging.d/.keep + + mkdir -p ${INSTALL}/etc/batteryplus/discharging.d + touch ${INSTALL}/etc/batteryplus/discharging.d/.keep + + mkdir -p ${INSTALL}/etc/batteryplus/state.d + touch ${INSTALL}/etc/batteryplus/state.d/.keep } post_install() { - enable_service batteryplus.service + enable_service batteryplus.service } diff --git a/projects/ROCKNIX/packages/tools/batteryplus/sources/scripts/batteryplus-init b/projects/ROCKNIX/packages/tools/batteryplus/sources/scripts/batteryplus-init old mode 100644 new mode 100755 diff --git a/projects/ROCKNIX/packages/tools/mkbootimg/package.mk b/projects/ROCKNIX/packages/tools/mkbootimg/package.mk index 26e5643a1dc..b61f46be2b4 100644 --- a/projects/ROCKNIX/packages/tools/mkbootimg/package.mk +++ b/projects/ROCKNIX/packages/tools/mkbootimg/package.mk @@ -1,17 +1,17 @@ # SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2025 ROCKNIX (https://github.com/ROCKNIX) +# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="mkbootimg" PKG_VERSION="d2bb0af5ba6d3198a3e99529c97eda1be0b5a093" PKG_LICENSE="GPL" PKG_SITE="https://android.googlesource.com/platform/system/tools/mkbootimg" -PKG_URL="${PKG_SITE}.git" +PKG_URL="https://github.com/jbeich/platform_system_tools_mkbootimg/archive/${PKG_VERSION}.tar.gz" PKG_LONGDESC="mkbootimg: Creates kernel boot images for Android" PKG_TOOLCHAIN="manual" PKG_DEPENDS_HOST="toolchain Python3:host" makeinstall_host() { mkdir -p ${TOOLCHAIN}/mkbootimg - cp -r gki/ mkbootimg.py $TOOLCHAIN/mkbootimg/ + cp -a gki/ mkbootimg.py $TOOLCHAIN/mkbootimg } diff --git a/projects/ROCKNIX/packages/ui/lowerdeck/package.mk b/projects/ROCKNIX/packages/ui/lowerdeck/package.mk index 76c45df4d87..1ad7ae5dff2 100644 --- a/projects/ROCKNIX/packages/ui/lowerdeck/package.mk +++ b/projects/ROCKNIX/packages/ui/lowerdeck/package.mk @@ -3,21 +3,14 @@ PKG_NAME="lowerdeck" PKG_VERSION="ab735114ab318a84e4d28c9c5f1b154e450a579a" -PKG_GIT_CLONE_BRANCH="main" PKG_LICENSE="GPL-2.0-or-later" PKG_SITE="https://github.com/bulzipke/lowerdeck" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain Python3 SDL2 SDL2_image SDL2_ttf" PKG_LONGDESC="Touch UI for the second screen of dual-screen handhelds." PKG_TOOLCHAIN="manual" - makeinstall_target() { mkdir -p ${INSTALL}/usr/share/lowerdeck - cp -a ${PKG_BUILD}/. ${INSTALL}/usr/share/lowerdeck/ - - rm -rf ${INSTALL}/usr/share/lowerdeck/devices - if [ -d "${PKG_BUILD}/devices/${DEVICE}" ]; then - cp -rf ${PKG_BUILD}/devices/${DEVICE}/. ${INSTALL}/usr/share/lowerdeck/ - fi + cp -a ${PKG_BUILD}/* ${INSTALL}/usr/share/lowerdeck } diff --git a/projects/ROCKNIX/packages/wayland/lib/libdecor/package.mk b/projects/ROCKNIX/packages/wayland/lib/libdecor/package.mk index dd05f1809e0..78f6d769f68 100644 --- a/projects/ROCKNIX/packages/wayland/lib/libdecor/package.mk +++ b/projects/ROCKNIX/packages/wayland/lib/libdecor/package.mk @@ -2,10 +2,10 @@ # Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="libdecor" -PKG_VERSION="c2bd8ad6fa42c0cb17553ce77ad8a87d1f543b1f" +PKG_VERSION="0.2.5" PKG_LICENSE="MIT" PKG_SITE="https://gitlab.freedesktop.org/libdecor/libdecor" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2" PKG_DEPENDS_TARGET="toolchain gtk3" PKG_LONGDESC="libdecor - A client-side decorations library for Wayland clients" PKG_TOOLCHAIN="meson" diff --git a/projects/ROCKNIX/packages/wayland/weston-kiosk-shell-dpms/package.mk b/projects/ROCKNIX/packages/wayland/weston-kiosk-shell-dpms/package.mk index fa117b35fd3..f245520b751 100644 --- a/projects/ROCKNIX/packages/wayland/weston-kiosk-shell-dpms/package.mk +++ b/projects/ROCKNIX/packages/wayland/weston-kiosk-shell-dpms/package.mk @@ -5,12 +5,11 @@ PKG_NAME="weston-kiosk-shell-dpms" PKG_VERSION="1273a6ed6a3fdd7af9e3d5d70b4ef40ecb929309" PKG_LICENSE="MIT" PKG_SITE="https://github.com/akhilharihar/Weston-kiosk-shell-DPMS" -PKG_URL="${PKG_SITE}.git" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain ${WINDOWMANAGER}" PKG_LONGDESC="A dpms module for Weston's kiosk shell." post_makeinstall_target() { mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/.${TARGET_NAME}/weston-dpms ${INSTALL}/usr/bin - chmod 0755 ${INSTALL}/usr/bin/weston-dpms + cp -a ${PKG_BUILD}/.${TARGET_NAME}/weston-dpms ${INSTALL}/usr/bin }