diff --git a/020_swayfx.sh b/020_swayfx.sh new file mode 100644 index 0000000..3f61ad8 --- /dev/null +++ b/020_swayfx.sh @@ -0,0 +1,250 @@ +#!/usr/bin/env bash +set -x + +# https://github.com/WillPower3309/swayfx/ +# https://github.com/WillPower3309/swayfx/blob/master/INSTALL-deb.md +sudo apt install \ + meson \ + wayland-protocols \ + wayland \ + libpcre2-dev \ + libjson-c-dev \ + libpango-1.0-0 \ + libcairo2-dev \ + wget + +conf_print_debian_control() { + cat < +Rules-Requires-Root: no +Build-Depends: + debhelper-compat (= 13), +Standards-Version: 4.7.0 +Homepage: https://github.com/WillPower3309/swayfx/ +#Vcs-Browser: https://github.com/WillPower3309/swayfx/ +#Vcs-Git: https://github.com/WillPower3309/swayfx.git + +Package: swayfx +Architecture: any +Multi-Arch: foreign +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Description: "swayfx is the sway compositor with fancy GLES2 effects" + "Swayfx is a fork of sway window manager. This fork ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects." +EOF +} +# conf_print_debian_control | sudo tee debian/control + +conf_print_debian_rules() { + cat <<'EOF' +#!/usr/bin/make -f +%: + dh $@ --builddirectory=build/ \ + --buildsystem=meson+ninja + +# Include debhelper.mk +include /usr/share/dpkg/default.mk + +# Define the build directory +BUILDDIR = $(CURDIR)/build + +# Define the build and install targets for wlroots +override_dh_auto_build: + meson $(WLROOTS_BUILD) + ninja -C $(WLROOTS_BUILD) + +# Define the build and install targets for swayfx +override_dh_auto_build_swayfx: + meson $(SWAYFX_BUILD) + ninja -C $(SWAYFX_BUILD) + +override_dh_auto_install_swayfx: + ninja -C $(SWAYFX_BUILD) install + +# Define the clean target +clean: + rm -rf $(BUILDDIR) +EOF +} +# conf_print_debian_rules | sudo tee debian/rules >/dev/null + +# Set github user and project name +USER="WillPower3309" +PROJECT="swayfx" +LICENSE="expat" # Adjust based on the actual license +SECTION="x11/wm" +HOMEPAGE="https://github.com/WillPower3309/swayfx" +PACKAGE="swayfx" +TAG=$(curl "https://api.github.com/repos/${USER}/${PROJECT}/tags?per_page=5" | jq -r '.[0] | .name') +VERSION=${TAG:1} # strip the preceding 'v' +TIMESTAMP=$(date -R) # This generates the current date and time in RFC 2822 format +BUILD_HOME="/var/tmp/swayfx-${VERSION}-git_build" +DEBEMAIL="cyteen@ring-zero.co.uk" +DEBFULLNAME="Cyteen May" +# DEBIAN_BRANCH="suites/excalibur" +DEBIAN_BRANCH="suites/unstable" +DEBIAN_SUITE="${DEBIAN_BRANCH##*/}" +DEBIAN_MIRROR="http://deb.devuan.org/merged" +DEBIAN_ARCH="$(dpkg --print-architecture)" +DEBIAN_INCLUDE="ca-certificates,eatmydata,ccache,git" +DEBIAN_TAG='debian/%(version)s' +UPSTREAM_BRANCH="upstream/latest" +# UPSTREAM_TAG='v%(version)s' +UPSTREAM_TAG='upstream/v%(version)s' +TARGET_DIR="/srv/chroot/unstable-${DEBIAN_ARCH}-sbuild" +DESCRIPTION="swayfx is the sway compositor with fancy GLES2 effects" +LONG_DESCRIPTION="Swayfx is a fork of sway window manager. This fork ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects." + +# Check if the target directory exists +if [ ! -d "${TARGET_DIR}" ]; then + echo "Target directory ${TARGET_DIR} does not exist. Creating chroot environment..." + sudo sbuild-createchroot \ + --include="${DEBIAN_INCLUDE}" \ + --merged-usr \ + --make-sbuild-tarball=/srv/chroot/${DEBIAN_SUITE}-${DEBIAN_ARCH}.tar.gz \ + ${DEBIAN_SUITE} ${TARGET_DIR} ${DEBIAN_MIRROR} +else + echo "Target directory ${TARGET_DIR} already exists. Skipping chroot creation." +fi + +# Make the BUILD_DEST for git and gbp changeable from just PACKAGE +# gbp prefers no version number in the containing directory. +# BUILD_DEST="${BUILD_HOME}/${PACKAGE}_${VERSION}" +BUILD_DEST="${BUILD_HOME}/${PACKAGE}-${TAG##v}" +SUBPROJECTS_DEST="${BUILD_DEST}/subprojects" + +# Make the BUILD_HOME directory and clone upstream +mkdir -p ${BUILD_HOME} + +cd ${BUILD_HOME} || exit + +# fetch wlroots +# WLROOTS_RELEASE=$(lastversion --at gitlab wlroots/wlroots) +# WLROOTS_RELEASE="0.17.3" +WLROOTS_RELEASE="0.16.2" +git clone -b ${WLROOTS_RELEASE} --depth 1 https://gitlab.freedesktop.org/wlroots/wlroots.git wlroots-${WLROOTS_RELEASE} + +git clone -b ${TAG} --depth 1 https://github.com/${USER}/${PROJECT}.git ${BUILD_DEST} + +# https://github.com/WillPower3309/swayfx.git +# gbp clone \ +# --pristine-tar \ +# --debian-branch=${DEBIAN_BRANCH} \ +# --upstream-branch=${UPSTREAM_BRANCH} \ +# --add-upstream-vcs \ +# --verbose \ +# https://github.com/${USER}/${PROJECT}.git ${BUILD_DEST} + +# cd ${BUILD_DEST} || exit +# git checkout -b ${DEBIAN_BRANCH} ${VERSION} + +#============================================================================== +# debianize the BUILD_HOME directory +#============================================================================== + +# prepare Debian packaging from an original source archive +cd ${BUILD_DEST} +dh_make \ + --createorig \ + --single \ + --native \ + --copyright ${LICENSE} \ + --packagename ${PACKAGE}_${VERSION} \ + --yes + +rm debian/*.ex + +mv debian .. +cd .. + +#============================================================================== +# edit the debian files +#============================================================================== + +# conf_print function calls go here: +conf_print_debian_control | sudo tee debian/control +conf_print_debian_rules | sudo tee debian/rules + +sed -i \ + -e "s|^\(Section: \).*|\1${SECTION}|" \ + -e "s|^\(Maintainer: \).*|\1'${DEBFULLNAME}\ \<${DEBEMAIL}\>'|" \ + -e 's|^\(Homepage: \).*|\1'${HOMEPAGE}'|' \ + -e "s|^\(Description: \).*|\1${DESCRIPTION}|" \ + -e "s|.*insert long.*|${LONG_DESCRIPTION}|" \ + debian/control + +# https://salsa.debian.org/debian/debian-package-init/-/blob/master/deb_create_watch.py +# outputs to debian/watch/ With deb_create_watch.py in your path +EXEC_PREFIX=${HOME}/.local/bin +wget -c -O ${EXEC_PREFIX}/deb_create_watch.py https://salsa.debian.org/debian/debian-package-init/-/raw/master/deb_create_watch.py?inline=false + +python3 ${EXEC_PREFIX}/deb_create_watch.py https://github.com/${USER}/${PROJECT} + +#============================================================================== +# Update Changelog +#============================================================================== + +#--snapshot \ +# --commit \ +# --commit-msg="Commit after debian control pruned of dh_make ex." \ + +# switch to the branch the you wish to contain the debian directory +git checkout -b ${DEBIAN_BRANCH} + +DEBEMAIL="cyteen@ring-zero.co.uk" DEBFULLNAME="Cyteen May" \ + gbp dch \ + --auto \ + --local=devuan \ + --no-git-author \ + --force-distribution \ + --new-version=${VERSION} \ + --release \ + --upstream-branch=${UPSTREAM_BRANCH} \ + --upstream-tag=${UPSTREAM_TAG} \ + --distribution=${DEBIAN_SUITE} \ + --debian-branch=${DEBIAN_BRANCH} \ + --debian-tag=${DEBIAN_TAG} + +#============================================================================== +# Commit the debian directory to the debian branch +git add debian +git commit -m "Post gbp dch commit upstream changelog" + +GITEA_OWNER="cyteen" +GITEA_PASS="mlpfinsonik" +GITEA_URL="git2.ring-zero.co.uk" + +GITEA_KEY="${BUILD_HOME}/gitea-cyteen.asc" +sudo curl https://${GITEA_URL}/api/packages/${GITEA_OWNER}/debian/repository.key | sudo tee ${GITEA_KEY} + +GITEA_DIST="ceres" +GITEA_COMP="main" +GITEA_LIST="deb http://deb.debian.org/debian experimental main" + +GITEA_LIST="deb https://${GITEA_OWNER}:${GITEA_PASS}@${GITEA_URL}/api/packages/${GITEA_OWNER}/debian ${GITEA_DIST} ${GITEA_COMP}" + +DEPENDS="" + +# all options to gbp not starting with --git- to the builder, or add to GIT_BUIDLER +GIT_BUILDER='sbuild --arch-all --source --source-only-changes --verbose --dist=unstable' + +# --extra-package="${EXTRA_PACKAGES}" \ +sudo gbp buildpackage \ + --add-depends="${DEPENDS}" \ + --extra-repository="${GITEA_LIST}" \ + --extra-repository-key="${GITEA_KEY}" \ + --build-dep-resolver=aptitude \ + --git-ignore-new \ + --git-ignore-branch \ + --git-pristine-tar \ + --git-submodules \ + --git-builder="${GIT_BUILDER}" \ + --git-debian-branch="${DEBIAN_BRANCH}" \ + --git-debian-tag="${DEBIAN_TAG}" \ + --git-upstream-tag="${UPSTREAM_TAG}" \ + --git-upstream-branch="${UPSTREAM_BRANCH}" \ + --git-export-dir="../build-area" diff --git a/020_zsh-disable-magic.sh b/020_zsh-disable-magic.sh new file mode 100644 index 0000000..18deabf --- /dev/null +++ b/020_zsh-disable-magic.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +DEST=${1:-/etc/skel} + +conf_print_zsh_disable_magic() { + cat <<-EOF + DISABLE_MAGIC_FUNCTIONS=true + EOF +} +conf_print_zsh_disable_magic | tee ${DEST}/.zshrc.d/10_disable_magic.zsh