Commit before push.

This commit is contained in:
cyteen 2024-07-24 12:01:51 +01:00
parent 33c5a5499c
commit 95768d9f89
19 changed files with 1947 additions and 1488 deletions

View File

@ -33,17 +33,17 @@ mkdir -p ${PATCH_DIR}
# --directory-prefix=${PATCHES_DIR} \
# https://github.com/LibreELEC/LibreELEC.tv/raw/master/projects/Rockchip/patches/linux/default/*.patch
cp -a /space/code_repositories/test-kernel-patches/projects/LibreELEC.tv/projects/Rockchip/patches/linux/default/*.patch \
${PATCH_DIR}
${PATCH_DIR}
# Pull the upstream sources
mkdir -p ${BUILD_DEST}
gbp clone \
--pristine-tar \
--debian-branch=${DEBIAN_BRANCH} \
--upstream-branch=${UPSTREAM_BRANCH} \
--add-upstream-vcs \
--verbose \
https://salsa.debian.org/kernel-team/linux.git ${BUILD_DEST}
--pristine-tar \
--debian-branch=${DEBIAN_BRANCH} \
--upstream-branch=${UPSTREAM_BRANCH} \
--add-upstream-vcs \
--verbose \
https://salsa.debian.org/kernel-team/linux.git ${BUILD_DEST}
pushd ${BUILD_DEST}
git checkout ${DEBIAN_BRANCH}

File diff suppressed because it is too large Load Diff

78
020_klipper.sh Normal file
View File

@ -0,0 +1,78 @@
#!usr/bin/env bash
# https://github.com/nhchiu/Klipper-on-Orange-Pi-Zero-2
# Update existing release
# apt update --allow-releaseinfo-change && apt dist-upgrade -y
apt-get install git virtualenv -y
# Add the pi user
adduser pi
adduser pi sudo
# We need to have klipper, Moonraker, and one of the clients
# Klipper is a 3d-Printer firmware.
# - [klipper](https://www.klipper3d.org/)
# - [klipper install](http://www.klipper3d.org/Installation.html)
#
# A web user interface
# - [Mainsail](https://docs.mainsail.xyz/)
# - [Mainsail](https://docs.mainsail.xyz/setup/getting-started/manual-setup)
# - [Mainsail git](https://github.com/mainsail-crew/mainsail)
#
# Fluidd Klipper web interface for managing your 3d printer.
# - [Fluidd](https://docs.fluidd.xyz/)
# - [Fluidd git](https://github.com/fluidd-core/fluidd)
#
# Moonraker - API Web Server for Klipper
# - [Moonraker](https://moonraker.readthedocs.io/en/latest/)
# - [Moonraker install](https://moonraker.readthedocs.io/en/latest/installation/)
# - [Moonraker git](https://github.com/Arksine/moonraker)
# - [Klipperscreen](https://github.com/jordanruthe/KlipperScreen)
# - [Moonraker-Telegram-Bot](https://github.com/nlef/moonraker-telegram-bot)
#
# PrettyGCode WebGL based GCode preview and simulator
# - [PrettyGCode for Klipper](https://github.com/Kragrathea/pgcode)
#
# Obico 3D printing platform
# This is a Moonraker plugin that enables the Klipper-based 3D printers to connect to Obico.
# - [Obico Cloud for Klipper](https://github.com/TheSpaghettiDetective/moonraker-obico)
# - [Mobileraker's Companion](https://github.com/Clon1998/mobileraker_companion)
#
# Octoprint is a 3d-Printer firmware.
# - [Octoprint](https://docs.octoprint.org/en/master/)
# - [Octoprint](https://github.com/OctoPrint/OctoPrint)
# - [OctoEverywhere for Klipper](https://octoeverywhere.com/?source=kiauh_readme)
# - [OctoApp for Klipper](https://github.com/crysxd/OctoPrint-OctoApp)
# installed to make it functional.
# We can't use this:
# this is a systemd based script that uses a tui to ask for input.
# [Klipper install and update helper](https://github.com/dw-0/kiauh)
MainsailOS images includes:
[Mainsail](https://github.com/mainsail-crew/mainsail)
[Klipper](https://github.com/klipper3d/klipper)
Moonraker - API Web Server for Klipper
[Moonraker](https://github.com/arksine/moonraker)
Webcam daemon
[Crowsnest](https://github.com/mainsail-crew/crowsnest)
Keep alive daemon
[Sonar](https://github.com/mainsail-crew/sonar)
Timelapse plugin for Moonraker
[Timelapse](https://github.com/mainsail-crew/moonraker-timelapse)
Preinstalled software dependencies:
[Measuring Resonances](https://www.klipper3d.org/Measuring_Resonances.html)
[Katapult](https://github.com/Arksine/katapult) (formerly known as CanBoot)
KlipperScreen is a touchscreen GUI that interfaces with Klipper via Moonraker.
[KlipperScreen](https://github.com/jordanruthe/KlipperScreen/)

8
020_klipper_crowsnest.sh Normal file
View File

@ -0,0 +1,8 @@
#/usr/bin/env bash
# https://github.com/mainsail-crew/crowsnest
# # crowsnest
# A wrapper script for webcam streaming on Raspberry Pi OS Lite images like MainsailOS](https://github.com/mainsail-crew/MainsailOS). Mainly written in bash.
# https://crowsnest.mainsail.xyz/setup/installation

3
020_klipper_fluid.sh Normal file
View File

@ -0,0 +1,3 @@
#!/usr/bin
# # Fluidd
# Fluidd is a free and open-source Klipper web interface for managing your 3d printer.

7
020_klipper_mainsail.sh Normal file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env bash
# # Mainsail
# Makes Klipper more accessible by adding a lightweight, responsive web user
# interface, centred around an intuitive and consistent design philosophy.
# https://docs.mainsail.xyz/setup/getting-started/manual-setup

33
020_klipper_moonraker.sh Normal file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# # Moonraker - API Web Server for Klipper
#
# Moonraker is a Python 3 based web server that exposes APIs with which
# client applications may use to interact with the 3D printing firmware
# [Klipper](https://github.com/KevinOConnor/klipper). Communication between
# the Klippy host and Moonraker is done over a Unix Domain Socket. Tornado
# is used to provide Moonraker's server functionality.
#
# Documentation for users and developers can be found on
# [Read the Docs](https://moonraker.readthedocs.io/en/latest/).
#
# ### Clients
#
# Note that Moonraker does not come bundled with a client, you will need to
# install one. The following clients are currently available:
#
# - [Mainsail](https://github.com/mainsail-crew/mainsail) by [Mainsail-Crew](https://github.com/mainsail-crew)
# - [Fluidd](https://github.com/fluidd-core/fluidd) by Cadriel
# - [KlipperScreen](https://github.com/jordanruthe/KlipperScreen) by jordanruthe
# - [mooncord](https://github.com/eliteSchwein/mooncord) by eliteSchwein
#
# ### Raspberry Pi Images
#
# Moonraker is available pre-installed with the following Raspberry Pi images:
#
# - [MainsailOS](https://github.com/mainsail-crew/MainsailOS) by [Mainsail-Crew](https://github.com/mainsail-crew)
# - Includes Klipper, Moonraker, and Mainsail
# - [FluiddPi](https://github.com/fluidd-core/FluiddPi) by Cadriel
# - Includes Klipper, Moonraker, and Fluidd
# [Moonraker install](https://moonraker.readthedocs.io/en/latest/installation/)

View File

@ -1,2 +1,5 @@
#!/usr/bin/env bash
apt install -y qemu qemu-kvm qemu-utils
apt install -y qemu qemu-kvm qemu-utils qemu-user-static qemu-user-static binfmt-support
sudo update-binfmts --enable qemu-aarch64 qemu-arm

43
git-update.md Normal file
View File

@ -0,0 +1,43 @@
# the procedure to update sd-card-images repo
```bash
cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@git2.ring-zero.co.uk:cyteen/sd-card-images.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "devuan"]
remote = origin
merge = refs/heads/devuan
[branch "cherry"]
remote = origin
merge = refs/heads/cherry
[branch "add_devuan"]
remote = origin
merge = refs/heads/add_devuan
[remote "upstream"]
url = https://github.com/johang/sd-card-images.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[pull]
ff = only
git pull upstream master
git reset --hard upstream/master
git push origin master --force
git branch backup-devuan
git rebase master
git push origin devuan --force-with-lease
```

21
hypr_setup.md Normal file
View File

@ -0,0 +1,21 @@
# Configuration post install for hyprland wm
## pipewire/wireplumber
exec-once=pipewire
exec-once=wireplumber
## Portal file chooser
```bash
conf_print_hyprland-portals() {
cat <<-EOF
[preferred]
default=hyprland;gtk
org.freedesktop.impl.portal.FileChooser=kde
EOF
}
conf_print_hyprland-portals | tee ~/.config/xdg-desktop-portal/hyprland-portals.conf
```
or use '/usr/share/xdg-desktop-portal/portals.conf'

84
hyprland/003_hyprutils.sh Normal file
View File

@ -0,0 +1,84 @@
#!/usr/bin/env bash
set -x
# Install deps
sudo apt install -y \
cmake \
dh-cmake \
git \
build-essential \
libcairo2 \
libcairo2-dev \
libzip4 \
libzip-dev \
librsvg2-2 \
librsvg2-dev
# Set github user and project name
USER="hyprwm"
PROJECT="hyprutils"
LICENSE="gpl3"
HOMEPAGE="https://github.com/hyprwm/hyprlang"
BUILD_HOME="/var/tmp/hyprlang-git_build"
PACKAGE="hyprutils"
VERSION=$(curl "https://api.github.com/repos/${USER}/${PROJECT}/tags?per_page=5" | jq -r '.[0] | .name')
VERSION=${VERSION:1} # strip the preceding 'v'
SECTION="x11/wm"
DEBEMAIL="cyteen@ring-zero.co.uk"
DEBFULLNAME="Cyteen May"
DESCRIPTION="A small C++ library for utilities in the Hypr* ecosystem."
LONG_DESCRIPTION="Hyprutils is a small C++ library for utilities used across the Hypr* ecosystem."
# Make the BUILD_HOME directory and clone upstream
mkdir -p ${BUILD_HOME}
cd ${BUILD_HOME} || exit
git clone https://github.com/${USER}/${PROJECT}.git ${PACKAGE}-${VERSION}
cd ${PACKAGE}-${VERSION} || exit
# debianize the BUILD_HOME directory
dh_make --createorig --single --native --copyright ${LICENSE} --yes
# Customize the debian directory values
sed -i "s,^\(Description: \).*,\1${DESCRIPTION}," debian/control
sed -i 's,^\(Section: \).*,\1'${SECTION}',' debian/control
sed -i "s,^\(Maintainer: \).*,\1'${DEBFULLNAME}\ \<${DEBEMAIL}\>'," debian/control
sed -i 's,^\(Homepage: \).*,\1'${HOMEPAGE}',' debian/control
sed -i "s|.*insert long.*|${LONG_DESCRIPTION}|" debian/control
cat <<'EOF' >debian/rules
#!/usr/bin/make -f
# Uncomment and adjust the following lines as needed
#export DH_VERBOSE = 1
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
%:
dh $@ --buildsystem=cmake
override_dh_auto_configure:
dh_auto_configure -- \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_LIBRARY_ARCHITECTURE="$(DEB_HOST_MULTIARCH)"
EOF
# Build and install Hyprlang using CMake
# cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
# cmake --build ./build --config Release --target all -j$(nproc 2>/dev/null || getconf NPROCESSORS_CONF)
# sudo cmake --install build
cat <<EOF >debian/watch
version=4
opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/${PROJECT}-$1\.tar\.gz/ \
https://github.com/${USER}/${PROJECT}/tags .*/v?(\d\S+)\.tar\.gz
EOF
dpkg-buildpackage -us -uc -b
echo ${PACKAGE}_${VERSION}_amd64.deb
sudo dpkg -i ../${PACKAGE}_${VERSION}_amd64.deb

1482
hyprland/020_hyprland.sh Normal file

File diff suppressed because it is too large Load Diff

143
hyprland/README.md Normal file
View File

@ -0,0 +1,143 @@
# Hyprland for debian
Here we have a number of scripts to build the dependencies for hyprland tiling
wayland compositor.
Our goal is to have a 'debian' way to build these packages using gitbuildpackage
to update from upstream, apply patches in a patch queue branch and output debian
packages which can be added to the gitea package repo using the automate/utils
helper scripts.
NB. We have a working example from salsa in [/space/code_repositories/hyprland/](https://salsa.debian.org/debian/hyprland/) that successfully built the 0.36 and upgraded to 0.39.1
using these watch files which were missing from the salsa [hyperland](https://salsa.debian.org/debian/hyprland) and [hyperlang](https://salsa.debian.org/debian/hyprlang) repos:
```bash
conf_print_debian-watch_hyprland() {
cat <<-'EOF'
version=4
opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/hyprland-$1\.tar\.gz/ \
https://github.com/hyprwm/hyprland/tags .*/v?(\d\S*)\.tar\.gz
EOF
}
# conf_print_debian-watch_hyprland | sudo tee debian/watch
```
This is now included in the salsa hyperlang repo:
```bash
conf_print_debian-watch_hyprlang() {
cat <<-'EOF' | tee debian/watch
version=4
opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/hyprlang-$1\.tar\.gz/ \
https://github.com/hyprwm/hyprlang/tags .*/v?(\d\S*)\.tar\.gz
EOF
}
# conf_print_debian-watch_hyprlang | sudo tee debian/watch
```
From phind:
```bash
version=4
opts="searchmode=html, filenamemangle=s/.+\/v?(\d+\.\d+)\.tar\.gz/hyprland-protocols-$1.tar.gz/"
https://github.com/hyprwm/hyprland-protocols/tags .*/v?(\d+\.\d+)\.tar\.gz
```
From salsa repo:
```bash
version=4
opts="searchmode=html" \
https://github.com/hyprwm/hyprland-protocols/tags \
https://github.com/hyprwm/hyprland-protocols/archive/refs/tags/v(\d+)\.(\d+).tar\.gz
```
This did not work for 0.4.0 or 0.4.1
## resulting packages
the hyprland build provides:
- hyprland
- hyprland-common
- hyprland-completitions (locally added)
- hyprland-dev
the hyperlang build provides:
- hyprlang
- libhyprlang-dev
- libhyprlang2
dpkg -i libudis86-0_0+20221013-1_amd64.deb
dpkg -i udcli_0+20221013-1_amd64.deb
dpkg -i hyprwayland-scanner_0.3.10-1_amd64.deb
dpkg -i libhyprlang2_0.5.2-1_amd64.deb
dpkg -i libhyprcursor0_0.1.9-1_amd64.deb
dpkg -i libhyprutils0_0.1.5-1_amd64.deb
dpkg -i hyprcursor-util_0.1.9-1_amd64.deb
dpkg -i hyprland-protocols_0.3.0-1_all.deb
dpkg -i hyprland_0.41.2+ds-1_amd64.deb
dpkg -i hyprland-backgrounds_0.41.2+ds-1_all.deb
dpkg -i hyprpaper_0.7.0-1_amd64.deb
so far we have manually updated these from the debian source directory with uscan command from the devscripts package:
```bash
conf_print_debian-watch_hyprland | sudo tee debian/watch
uscan --no-download --verbose
uscan
while dquilt push; do dquilt refresh; done
dch
```
```bash
UPSTREAM_VERSION="0.3.0"
LOCAL_VERSION="1"
gbp import-orig --uscan
gbp pqapply
gbp dch -N ${UPSTREAM_VERSION}-${LOCAL_VERSION} -R
git add .
git commit -m "Update debian/changelog for version ${UPSTREAM_VERSION)-${LOCAL_VERSION}"
```
## build sequence for build from git
NB these scripts only build a debianized upstream git packages, better to fix the salsa packages.
- [hyprwayland-scanner](https://salsa.debian.org/debian/hyprland-protocols) - available in debian unstable
001_hyprwayland-scanner.sh [hyprwayland-scanner - A Hyprland implementation of wayland-scanner, in and for C++.](https://github.com/hyprwm/hyprwayland-scanner)
- [hyprutils](https://salsa.debian.org/NyxTrail/hyprutils) available in debian
003_hyprutils.sh [hyprutils - Hyprutils is a small C++ library for utilities used across the Hypr\* ecosystem.](https://github.com/hyprwm/hyprutils)
- [hyprlang](https://salsa.debian.org/NyxTrail/hyprlang) available in debian
005_hyprlang.sh [hyprlang - The official implementation library for the hypr config language.](https://github.com/hyprwm/hyprlang)
- [hypcursor](https://salsa.debian.org/NyxTrail/hyprcursor) available in debian
007_hyprcursor.sh [hyprcursor - The hyprland cursor format, library and utilities.](https://github.com/hyprwm/hyprcursor)
- [hyprland-protocols](https://salsa.debian.org/debian/hyprland-protocols) - available in debian unstable
010_hyprland-protocols.sh [hyprland-protocols - Wayland protocol extensions for Hyprland](https://github.com/hyprwm/hyprland-protocols)
- [hyprland](https://salsa.debian.org/NyxTrail/hyprland) available in debian
020_hyprland.sh [Hyprland - Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.](https://github.com/hyprwm/Hyprland)
And a bonus - dot files to configure a pretty hypr (not working yet):
- [hyprpaper](https://github.com/hyprwm/hyprpaper) - wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets.
- hyprdots
025_hyprland-hyprdots.sh [hyprland dotfiles to be converted from arch.](https://github.com/prasanthrangan/hyprdots)
### gitbuildpackage script automate/020_hyprland.sh

5
utils/update-schroots.sh Normal file
View File

@ -0,0 +1,5 @@
#!usr/bin/env bash
for chroot in $(schroot -l --exclude-aliases | grep ^source:); do
(sbuild-update -udcar "$chroot" 2>&1)
done