feat:migration from gitlab
Some checks failed
/ ansible-semaphore (push) Successful in 2m43s
/ atlasswprobe (push) Successful in 4m0s
/ daliserver (push) Successful in 2m14s
/ forgejo (push) Successful in 5m56s
/ forgejo-runner (push) Successful in 1m27s
/ http-mqtt-bridge (push) Successful in 4m50s
/ keycloak-23 (push) Successful in 10m5s
/ linux-diversion-ath-regd-optional (push) Successful in 18m51s
/ lottieconverter (push) Successful in 52s
/ matterbridge (push) Successful in 3m31s
/ matrix-element-web (push) Successful in 3m52s
/ matrix-hydrogen (push) Successful in 1m11s
/ matrix.to (push) Successful in 6m19s
/ maubot (push) Successful in 10m47s
/ maubot-plugin-spaceapi (push) Successful in 2m5s
/ maubot-plugin-ultimaker (push) Successful in 1m55s
/ mautrix-signal (push) Successful in 1m7s
/ mautrix-telegram (push) Successful in 51s
/ mediawiki-extension-auth-remoteuser (push) Successful in 1m2s
/ mediawiki-extension-nativesvghandler (push) Successful in 1m0s
/ mediawiki-extension-openidconnect (push) Successful in 1m29s
/ mediawiki-extension-pluggableauth (push) Successful in 40s
/ mqtt2prometheus (push) Successful in 4m47s
/ mumble-web (push) Successful in 53s
/ mumble-web-data (push) Failing after 7m37s
/ mumble-web-proxy (push) Failing after 6m47s
/ prometheus-ipmi-exporter (push) Successful in 1m1s
/ prometheus-dnsbl-exporter (push) Successful in 1m33s
/ prometheus2influxdb (push) Successful in 53s
/ python3-mautrix (push) Successful in 1m11s
/ python3-telethon (push) Successful in 47s
/ repo.s3lph.me-apt-source (push) Successful in 47s
/ republik-feeder (push) Successful in 1m11s
/ woodpecker-agent (push) Successful in 2m50s
/ woodpecker-cli (push) Successful in 1m10s
Some checks failed
/ ansible-semaphore (push) Successful in 2m43s
/ atlasswprobe (push) Successful in 4m0s
/ daliserver (push) Successful in 2m14s
/ forgejo (push) Successful in 5m56s
/ forgejo-runner (push) Successful in 1m27s
/ http-mqtt-bridge (push) Successful in 4m50s
/ keycloak-23 (push) Successful in 10m5s
/ linux-diversion-ath-regd-optional (push) Successful in 18m51s
/ lottieconverter (push) Successful in 52s
/ matterbridge (push) Successful in 3m31s
/ matrix-element-web (push) Successful in 3m52s
/ matrix-hydrogen (push) Successful in 1m11s
/ matrix.to (push) Successful in 6m19s
/ maubot (push) Successful in 10m47s
/ maubot-plugin-spaceapi (push) Successful in 2m5s
/ maubot-plugin-ultimaker (push) Successful in 1m55s
/ mautrix-signal (push) Successful in 1m7s
/ mautrix-telegram (push) Successful in 51s
/ mediawiki-extension-auth-remoteuser (push) Successful in 1m2s
/ mediawiki-extension-nativesvghandler (push) Successful in 1m0s
/ mediawiki-extension-openidconnect (push) Successful in 1m29s
/ mediawiki-extension-pluggableauth (push) Successful in 40s
/ mqtt2prometheus (push) Successful in 4m47s
/ mumble-web (push) Successful in 53s
/ mumble-web-data (push) Failing after 7m37s
/ mumble-web-proxy (push) Failing after 6m47s
/ prometheus-ipmi-exporter (push) Successful in 1m1s
/ prometheus-dnsbl-exporter (push) Successful in 1m33s
/ prometheus2influxdb (push) Successful in 53s
/ python3-mautrix (push) Successful in 1m11s
/ python3-telethon (push) Successful in 47s
/ repo.s3lph.me-apt-source (push) Successful in 47s
/ republik-feeder (push) Successful in 1m11s
/ woodpecker-agent (push) Successful in 2m50s
/ woodpecker-cli (push) Successful in 1m10s
This commit is contained in:
commit
4fe6ccd91c
312 changed files with 10182 additions and 0 deletions
70
.forgejo/workflows/package.yml
Normal file
70
.forgejo/workflows/package.yml
Normal file
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
schedule:
|
||||
- cron: "0 2 * * *" # every night at 1 AM
|
||||
|
||||
jobs:
|
||||
|
||||
# One step per package
|
||||
|
||||
ansible-semaphore: &job
|
||||
runs-on: docker
|
||||
container:
|
||||
image: git.kabelsalat.ch/s3lph/package-pipeline-builder:latest
|
||||
env:
|
||||
API_REPOSITORY_DEB: ${{ secrets.API_REPOSITORY_DEB }}
|
||||
API_USERNAME: ${{ secrets.API_USERNAME }}
|
||||
API_PASSWORD: ${{ secrets.API_PASSWORD }}
|
||||
MAINTAINER: ${{ secrets.MAINTAINER }}
|
||||
steps:
|
||||
- uses: https://code.forgejo.org/actions/checkout@v4
|
||||
- run: |
|
||||
cd "${GITHUB_JOB}"
|
||||
[ -x build.sh ] && ./build.sh
|
||||
[ -x package.sh ] && fakeroot ./package.sh
|
||||
cd build
|
||||
lintian *.deb || true
|
||||
# Upload to the repo
|
||||
for file in *deb; do
|
||||
curl --user "${API_USERNAME}:${API_PASSWORD}" \
|
||||
--upload-file "${file}" \
|
||||
"${API_REPOSITORY_DEB}"
|
||||
done
|
||||
atlasswprobe: *job
|
||||
daliserver: *job
|
||||
forgejo: *job
|
||||
forgejo-runner: *job
|
||||
http-mqtt-bridge: *job
|
||||
keycloak-23: *job
|
||||
linux-diversion-ath-regd-optional: *job
|
||||
lottieconverter: *job
|
||||
matterbridge: *job
|
||||
matrix-element-web: *job
|
||||
matrix-hydrogen: *job
|
||||
matrix.to: *job
|
||||
maubot: *job
|
||||
maubot-plugin-spaceapi: *job
|
||||
maubot-plugin-ultimaker: *job
|
||||
mautrix-signal: *job
|
||||
mautrix-telegram: *job
|
||||
mediawiki-extension-auth-remoteuser: *job
|
||||
mediawiki-extension-nativesvghandler: *job
|
||||
mediawiki-extension-openidconnect: *job
|
||||
mediawiki-extension-pluggableauth: *job
|
||||
mqtt2prometheus: *job
|
||||
mumble-web: *job
|
||||
mumble-web-data: *job
|
||||
mumble-web-proxy: *job
|
||||
prometheus-ipmi-exporter: *job
|
||||
prometheus-dnsbl-exporter: *job
|
||||
prometheus2influxdb: *job
|
||||
python3-mautrix: *job
|
||||
python3-telethon: *job
|
||||
repo.s3lph.me-apt-source: *job
|
||||
republik-feeder: *job
|
||||
woodpecker-agent: *job
|
||||
woodpecker-cli: *job
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
**/build/
|
9
.skel/helpers.sh
Normal file
9
.skel/helpers.sh
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
function github_changelog() {
|
||||
curl https://api.github.com/repos/$1/releases | jq -r 'reverse | .[] | select(.draft==false and .prerelease==false) | "'"${PKGNAME}"' (\(.name)); urgency=medium\n \(.body // empty | gsub("\n";"\n "))\n -- '"${MAINTAINER}"' \(.created_at | fromdate | strftime("%a, %d %b %Y %T %z"))\n"' | gzip -9n > "${PKGDIR}/usr/share/doc/${PKGNAME}/changelog.gz"
|
||||
}
|
||||
|
||||
function gitlab_changelog() {
|
||||
curl https://gitlab.com/api/v4/$1/releases | jq -r 'reverse | .[] | select(.upcoming_release==false) | "'"${PKGNAME}"' (\(.name)); urgency=medium\n \(.description // empty | gsub("\n";"\n "))\n -- '"${MAINTAINER}"' \(.created_at | fromdate | strftime("%a, %d %b %Y %T %z"))\n"' | gzip -9n > "${PKGDIR}/usr/share/doc/${PKGNAME}/changelog.gz"
|
||||
}
|
44
.skel/maubot-plugin.sh
Normal file
44
.skel/maubot-plugin.sh
Normal file
|
@ -0,0 +1,44 @@
|
|||
|
||||
set -exo pipefail
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
pip3 install --break-system-packages maubot
|
||||
|
||||
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
git clone "${REPO}"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/lib/maubot/plugins"
|
||||
PLUGIN_DIR=$(find "${SRCDIR}" -type f -name maubot.yaml | head -1)
|
||||
PLUGIN_DIR=$(dirname "${PLUGIN_DIR}")
|
||||
VERSION=$(cat "${PLUGIN_DIR}/maubot.yaml" | yq -r .version | head -1)
|
||||
PLUGIN_ID=$(cat "${PLUGIN_DIR}/maubot.yaml" | yq -r .id | head -1)
|
||||
cd "${PLUGIN_DIR}"
|
||||
mbc build --output "${PKGDIR}/usr/lib/maubot/plugins/${PLUGIN_ID}_${VERSION}.mbp"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m --reference "${PLUGIN_DIR}/maubot.yaml" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build_maubot_plugin() {
|
||||
export REPO="${1}"
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
20
LICENSE
Normal file
20
LICENSE
Normal file
|
@ -0,0 +1,20 @@
|
|||
Copyright 2023 s3lph
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
47
README.md
Normal file
47
README.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
# Miscellaneous Debian Packages
|
||||
|
||||
This project automatically builds miscellaneous Debian packages for my
|
||||
personal use (and sometimes adapted to my needs).
|
||||
|
||||
There is a daily Gitlab-CI run which builds the latest stable version
|
||||
of each package and pushes them to my private repository. For more
|
||||
information, please see [https://repo.s3lph.me/](https://repo.s3lph.me/).
|
||||
|
||||
## Packages
|
||||
|
||||
- [ansible-semaphore](https://github.com/ansible-semaphore/semaphore)
|
||||
- [atlasswprobe](https://github.com/RIPE-NCC/ripe-atlas-software-probe)
|
||||
- [daliserver](https://github.com/onitake/daliserver)
|
||||
- [forgejo](https://codeberg.org/forgejo/forgejo)
|
||||
- [forgejo-runner](https://code.forgejo.org/forgejo/runner)
|
||||
- [http-mqtt-bridge](https://github.com/subzerobo/http-mqtt-bridge)
|
||||
- [keycloak-23](https://github.com/keycloak/keycloak)
|
||||
- [linux-diversion-ath-regd-optional](https://github.com/twisteroidambassador/arch-linux-ath-user-regd/issues/1)
|
||||
- [lottieconverter](https://github.com/sot-tech/LottieConverter)
|
||||
- [matrix-element-web](https://github.com/vector-im/element-web/)
|
||||
- [matrix-hydrogen](https://github.com/vector-im/hydrogen-web/)
|
||||
- [matrix.to](https://github.com/matrix-org/matrix.to)
|
||||
- [matterbridge](https://github.com/42wim/matterbridge/)
|
||||
- [maubot](https://github.com/maubot/maubot)
|
||||
- [maubot-plugin-spaceapi](https://git.kabelsalat.ch/s3lph/maubot-plugin-spaceapi)
|
||||
- [maubot-plugin-ultimaker](https://git.kabelsalat.ch/s3lph/maubot-plugin-ultimaker)
|
||||
- [mautrix-signal](https://github.com/tulir/mautrix-signal)
|
||||
- [mautrix-telegram](https://github.com/tulir/mautrix-telegram)
|
||||
- [mediawiki-extension-auth-remoteuser](https://www.mediawiki.org/wiki/Extension:Auth_remoteuser)
|
||||
- [mediawiki-extension-nativesvghandler](https://www.mediawiki.org/wiki/Extension:NativeSvgHandler)
|
||||
- [mediawiki-extension-openidconnect](https://www.mediawiki.org/wiki/Extension:OpenID_Connect)
|
||||
- [mediawiki-extension-pluggableauth](https://www.mediawiki.org/wiki/Extension:PluggableAuth)
|
||||
- [mqtt2prometheus](https://github.com/hikhvar/mqtt2prometheus)
|
||||
- [mumble-web](https://github.com/Johni0702/mumble-web)
|
||||
- [mumble-web-data](https://github.com/Johni0702/mumble-web)
|
||||
- [mumble-web-proxy](https://github.com/Johni0702/mumble-web-proxy)
|
||||
- [prometheus-ipmi-exporter](https://github.com/prometheus-community/ipmi_exporter)
|
||||
- [prometheus-dnsbl-exporter](https://github.com/Luzilla/dnsbl_exporter)
|
||||
- [prometheus2influxdb](https://gitlab.com/s3lph/prometheus2influxdb)
|
||||
- [python3-mautrix](https://github.com/mautrix/python)
|
||||
- [python3-telethon](https://github.com/tulir/Telethon)
|
||||
- [repo.s3lph.me-apt-source](https://repo.s3lph.me)
|
||||
- [republik-feeder](https://github.com/maetthu/republik-feeder)
|
||||
- [woodpecker-agent](https://github.com/woodpecker-ci/woodpecker)
|
||||
- [woodpecker-cli](https://github.com/woodpecker-ci/woodpecker)
|
||||
- [woodpecker-server](https://github.com/woodpecker-ci/woodpecker)
|
65
ansible-semaphore/build.sh
Executable file
65
ansible-semaphore/build.sh
Executable file
|
@ -0,0 +1,65 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
. ../.skel/helpers.sh
|
||||
|
||||
PKGNAME=ansible-semaphore
|
||||
|
||||
API_URL=https://api.github.com/repos/ansible-semaphore/semaphore/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and (.tag_name|test("^v[0-9.-]+$")) ) | "\(.name[1:]) \(.published_at) \(.assets[] | select(.name|test(".*_linux_amd64.tar.gz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "semaphore_${VERSION}_linux_amd64.tar.gz"
|
||||
tar xf "semaphore_${VERSION}_linux_amd64.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/semaphore"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/semaphore" \
|
||||
"${PKGDIR}/var/lib/semaphore/playbooks" \
|
||||
"${PKGDIR}/var/lib/semaphore/database" \
|
||||
"${PKGDIR}/lib/systemd/system" \
|
||||
"${PKGDIR}/usr/share/doc/${PKGNAME}"
|
||||
cp "${SRCDIR}/semaphore" "${PKGDIR}/usr/bin/semaphore"
|
||||
cp "${ROOT}/semaphore.service" "${PKGDIR}/lib/systemd/system/semaphore.service"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/debian.prerm" "${PKGDIR}/DEBIAN/prerm"
|
||||
cp "${ROOT}/debian.postrm" "${PKGDIR}/DEBIAN/postrm"
|
||||
cp "${ROOT}/config.json" "${PKGDIR}/etc/semaphore/config.json"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
cp "${SRCDIR}/LICENSE" "${PKGDIR}/usr/share/doc/${PKGNAME}/copyright"
|
||||
github_changelog ansible-semaphore/semaphore
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
# Replace Forgejo patch level separater - with . to be Debian versioning compatible, and add epoch number 2
|
||||
export VERSION="${VERSION/-/.}"
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
1
ansible-semaphore/config.json
Normal file
1
ansible-semaphore/config.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
1
ansible-semaphore/debian.conffiles
Normal file
1
ansible-semaphore/debian.conffiles
Normal file
|
@ -0,0 +1 @@
|
|||
/etc/semaphore/config.json
|
11
ansible-semaphore/debian.control
Normal file
11
ansible-semaphore/debian.control
Normal file
|
@ -0,0 +1,11 @@
|
|||
Package: ansible-semaphore
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: ansible, git
|
||||
Description: Modern UI for Ansible
|
||||
Ansible Semaphore is a modern UI for Ansible. It lets you easily run
|
||||
Ansible playbooks, get notifications about fails, control access to
|
||||
deployment system.
|
25
ansible-semaphore/debian.postinst
Executable file
25
ansible-semaphore/debian.postinst
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group semaphore >/dev/null; then
|
||||
groupadd --system semaphore
|
||||
fi
|
||||
|
||||
if ! getent passwd semaphore >/dev/null; then
|
||||
useradd --system --gid semaphore --home-dir /var/lib/semaphore --shell /bin/bash semaphore
|
||||
fi
|
||||
|
||||
chown semaphore:semaphore /var/lib/semaphore
|
||||
chmod 0750 /var/lib/semaphore
|
||||
chown root:semaphore /etc/semaphore/config.json
|
||||
chmod g+rx /etc/semaphore
|
||||
chmod g+r /etc/semaphore/config.json
|
||||
|
||||
deb-systemd-helper enable semaphore.service
|
||||
deb-systemd-invoke restart semaphore.service
|
||||
|
||||
fi
|
||||
|
9
ansible-semaphore/debian.postrm
Executable file
9
ansible-semaphore/debian.postrm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
systemctl daemon-reload || true
|
||||
|
||||
fi
|
9
ansible-semaphore/debian.prerm
Executable file
9
ansible-semaphore/debian.prerm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
deb-systemd-invoke stop semaphore.service
|
||||
|
||||
fi
|
19
ansible-semaphore/semaphore.service
Normal file
19
ansible-semaphore/semaphore.service
Normal file
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Ansible Semaphore
|
||||
After=network.target
|
||||
#Requires=mysql.service
|
||||
#Requires=postgresql.service
|
||||
|
||||
[Service]
|
||||
# Modify these two values anda
|
||||
Type=simple
|
||||
User=semaphore
|
||||
Group=semaphore
|
||||
WorkingDirectory=/var/lib/semaphore
|
||||
ExecStart=/usr/bin/semaphore server --config /etc/semaphore/config.json
|
||||
Restart=always
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
16
atlasswprobe/atlasswprobe/build.sh
Executable file
16
atlasswprobe/atlasswprobe/build.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
export BUILDDIR="${ROOT}/build"
|
||||
export SRCDIR="${ROOT}/build/srcdir"
|
||||
mkdir -p "${SRCDIR}"
|
||||
|
||||
cd "${SRCDIR}"
|
||||
apt install --yes git tar fakeroot libssl-dev libcap2-bin autoconf automake libtool build-essential
|
||||
git clone --recursive https://github.com/RIPE-NCC/ripe-atlas-software-probe
|
||||
|
||||
"${SRCDIR}/ripe-atlas-software-probe/build-config/debian/bin/make-deb"
|
||||
mv atlasswprobe-*deb "${BUILDDIR}"
|
16
atlasswprobe/build.sh
Executable file
16
atlasswprobe/build.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
export BUILDDIR="${ROOT}/build"
|
||||
export SRCDIR="${ROOT}/build/srcdir"
|
||||
mkdir -p "${SRCDIR}"
|
||||
|
||||
cd "${SRCDIR}"
|
||||
apt install --yes git tar fakeroot libssl-dev libcap2-bin autoconf automake libtool build-essential
|
||||
git clone --recursive https://github.com/RIPE-NCC/ripe-atlas-software-probe
|
||||
|
||||
"${SRCDIR}/ripe-atlas-software-probe/build-config/debian/bin/make-deb"
|
||||
mv atlasswprobe-*deb "${BUILDDIR}"
|
35
daliserver/build.sh
Executable file
35
daliserver/build.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
function fetch() {
|
||||
git clone https://github.com/onitake/daliserver "${SRCDIR}/daliserver"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
cd "${SRCDIR}/daliserver"
|
||||
apt install -y build-essential autoconf
|
||||
apt build-dep -y "${SRCDIR}/daliserver"
|
||||
autoreconf -i
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${SRCDIR}/daliserver"
|
||||
dpkg-buildpackage
|
||||
cp ${SRCDIR}/daliserver_*_amd64.deb ${BUILDDIR}
|
||||
}
|
||||
|
||||
function build() {
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${BUILDDIR}/srcdir
|
||||
export PKGDIR=${BUILDDIR}/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
35
daliserver/daliserver/build.sh
Executable file
35
daliserver/daliserver/build.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
function fetch() {
|
||||
git clone https://github.com/onitake/daliserver "${SRCDIR}/daliserver"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
cd "${SRCDIR}/daliserver"
|
||||
apt install -y build-essential autoconf
|
||||
apt build-dep -y "${SRCDIR}/daliserver"
|
||||
autoreconf -i
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${SRCDIR}/daliserver"
|
||||
dpkg-buildpackage
|
||||
cp ${SRCDIR}/daliserver_*_amd64.deb ${BUILDDIR}
|
||||
}
|
||||
|
||||
function build() {
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${BUILDDIR}/srcdir
|
||||
export PKGDIR=${BUILDDIR}/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
56
forgejo-runner/build.sh
Executable file
56
forgejo-runner/build.sh
Executable file
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://code.forgejo.org/api/v1/repos/forgejo/runner/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and (.tag_name|test("^v[0-9.-]+$")) ) | "\(.name[1:]) \(.published_at) \(.assets[] | select(.name|test(".*-linux-amd64.xz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "forgejo-runner-${VERSION}-linux-amd64.xz"
|
||||
xz --decompress "forgejo-runner-${VERSION}-linux-amd64.xz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/forgejo-runner-${VERSION}-linux-amd64"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/forgejo-runner" \
|
||||
"${PKGDIR}/lib/systemd/system"
|
||||
cp "${SRCDIR}/forgejo-runner-${VERSION}-linux-amd64" "${PKGDIR}/usr/bin/forgejo-runner"
|
||||
cp "${ROOT}/forgejo-runner-cli" "${PKGDIR}/usr/bin/forgejo-runner-cli"
|
||||
cp "${ROOT}/forgejo-runner.service" "${PKGDIR}/lib/systemd/system/forgejo-runner.service"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/debian.prerm" "${PKGDIR}/DEBIAN/prerm"
|
||||
cp "${ROOT}/debian.postrm" "${PKGDIR}/DEBIAN/postrm"
|
||||
"${PKGDIR}/usr/bin/forgejo-runner" generate-config > "${PKGDIR}/etc/forgejo-runner/config.yml"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
1
forgejo-runner/debian.conffiles
Normal file
1
forgejo-runner/debian.conffiles
Normal file
|
@ -0,0 +1 @@
|
|||
/etc/forgejo-runner/config.yml
|
10
forgejo-runner/debian.control
Normal file
10
forgejo-runner/debian.control
Normal file
|
@ -0,0 +1,10 @@
|
|||
Package: forgejo-runner
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: git
|
||||
Description: Runner for Forgejo Actions
|
||||
A daemon that connects to a Forgejo instance and runs jobs for
|
||||
continous integration.
|
25
forgejo-runner/debian.postinst
Executable file
25
forgejo-runner/debian.postinst
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group forgejo-runner >/dev/null; then
|
||||
groupadd --system forgejo-runner
|
||||
fi
|
||||
|
||||
if ! getent passwd forgejo-runner >/dev/null; then
|
||||
useradd --system --gid forgejo-runner --groups docker --home-dir /var/lib/forgejo-runner --create-home --shell /sbin/nologin forgejo-runner
|
||||
fi
|
||||
|
||||
chown forgejo-runner:forgejo-runner /var/lib/forgejo-runner
|
||||
chmod 0750 /var/lib/forgejo-runner
|
||||
chown root:forgejo-runner /etc/forgejo-runner/config.yml
|
||||
chmod g+rx /etc/forgejo-runner
|
||||
chmod g+r /etc/forgejo-runner/config.yml
|
||||
|
||||
deb-systemd-helper enable forgejo-runner.service
|
||||
deb-systemd-invoke restart forgejo-runner.service
|
||||
|
||||
fi
|
||||
|
9
forgejo-runner/debian.postrm
Executable file
9
forgejo-runner/debian.postrm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
systemctl daemon-reload || true
|
||||
|
||||
fi
|
9
forgejo-runner/debian.prerm
Executable file
9
forgejo-runner/debian.prerm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
deb-systemd-invoke stop forgejo-runner.service
|
||||
|
||||
fi
|
4
forgejo-runner/forgejo-runner-cli
Executable file
4
forgejo-runner/forgejo-runner-cli
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd /var/lib/forgejo-runner
|
||||
su -c /usr/bin/forgejo-runner -l forgejo-runner -- $@
|
14
forgejo-runner/forgejo-runner.service
Normal file
14
forgejo-runner/forgejo-runner.service
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Unit]
|
||||
Description=Forgejo Runner
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=forgejo-runner
|
||||
Group=forgejo-runner
|
||||
WorkingDirectory=/var/lib/forgejo-runner
|
||||
ExecStart=/usr/bin/forgejo-runner daemon -c /etc/forgejo-runner/config.yml
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
0
forgejo/app.ini
Normal file
0
forgejo/app.ini
Normal file
62
forgejo/build.sh
Executable file
62
forgejo/build.sh
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://codeberg.org/api/v1/repos/forgejo/forgejo/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and (.tag_name|test("^v[0-9.-]+$")) ) | "\(.name[1:]) \(.published_at) \(.assets[] | select(.name|test(".*-linux-amd64.xz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "forgejo-${VERSION}-linux-amd64.xz"
|
||||
xz --decompress "forgejo-${VERSION}-linux-amd64.xz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/forgejo-${VERSION}-linux-amd64"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/gitea" \
|
||||
"${PKGDIR}/var/lib/gitea/custom" \
|
||||
"${PKGDIR}/var/lib/gitea/data" \
|
||||
"${PKGDIR}/var/lib/gitea/log" \
|
||||
"${PKGDIR}/var/lib/gitea/gitea-repositories" \
|
||||
"${PKGDIR}/lib/systemd/system"
|
||||
cp "${SRCDIR}/forgejo-${VERSION}-linux-amd64" "${PKGDIR}/usr/bin/forgejo"
|
||||
cp "${ROOT}/gitea.service" "${PKGDIR}/lib/systemd/system/gitea.service"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/debian.prerm" "${PKGDIR}/DEBIAN/prerm"
|
||||
cp "${ROOT}/debian.postrm" "${PKGDIR}/DEBIAN/postrm"
|
||||
cp "${ROOT}/app.ini" "${PKGDIR}/etc/gitea/app.ini"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
ln -s gitea.service "${PKGDIR}/lib/systemd/system/forgejo.service"
|
||||
ln -s gitea "${PKGDIR}/etc/forgejo"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
# Replace Forgejo patch level separater - with . to be Debian versioning compatible, and add epoch number 2
|
||||
export VERSION="2:${VERSION/-/.}"
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
1
forgejo/debian.conffiles
Normal file
1
forgejo/debian.conffiles
Normal file
|
@ -0,0 +1 @@
|
|||
/etc/gitea/app.ini
|
13
forgejo/debian.control
Normal file
13
forgejo/debian.control
Normal file
|
@ -0,0 +1,13 @@
|
|||
Package: forgejo
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: git
|
||||
Provides: gitea
|
||||
Conflicts: gitea
|
||||
Replaces: gitea
|
||||
Description: Libre code forge - a community-run soft fork of Gitea
|
||||
Gitea is a community managed lightweight code hosting solution written in Go.
|
||||
It is published under the MIT license.
|
25
forgejo/debian.postinst
Executable file
25
forgejo/debian.postinst
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group gitea >/dev/null; then
|
||||
groupadd --system gitea
|
||||
fi
|
||||
|
||||
if ! getent passwd gitea >/dev/null; then
|
||||
useradd --system --gid gitea --home-dir /var/lib/gitea --shell /bin/bash gitea
|
||||
fi
|
||||
|
||||
chown gitea:gitea /var/lib/gitea
|
||||
chmod 0750 /var/lib/gitea
|
||||
chown root:gitea /etc/gitea/app.ini
|
||||
chmod g+rx /etc/gitea
|
||||
chmod g+rw /etc/gitea/app.ini
|
||||
|
||||
deb-systemd-helper enable gitea.service
|
||||
deb-systemd-invoke restart gitea.service
|
||||
|
||||
fi
|
||||
|
9
forgejo/debian.postrm
Executable file
9
forgejo/debian.postrm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
systemctl daemon-reload || true
|
||||
|
||||
fi
|
9
forgejo/debian.prerm
Executable file
9
forgejo/debian.prerm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
deb-systemd-invoke stop gitea.service
|
||||
|
||||
fi
|
0
forgejo/forgejo/app.ini
Normal file
0
forgejo/forgejo/app.ini
Normal file
62
forgejo/forgejo/build.sh
Executable file
62
forgejo/forgejo/build.sh
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://codeberg.org/api/v1/repos/forgejo/forgejo/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and (.tag_name|test("^v[0-9.-]+$")) ) | "\(.name[1:]) \(.published_at) \(.assets[] | select(.name|test(".*-linux-amd64.xz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "forgejo-${VERSION}-linux-amd64.xz"
|
||||
xz --decompress "forgejo-${VERSION}-linux-amd64.xz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/forgejo-${VERSION}-linux-amd64"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/gitea" \
|
||||
"${PKGDIR}/var/lib/gitea/custom" \
|
||||
"${PKGDIR}/var/lib/gitea/data" \
|
||||
"${PKGDIR}/var/lib/gitea/log" \
|
||||
"${PKGDIR}/var/lib/gitea/gitea-repositories" \
|
||||
"${PKGDIR}/lib/systemd/system"
|
||||
cp "${SRCDIR}/forgejo-${VERSION}-linux-amd64" "${PKGDIR}/usr/bin/forgejo"
|
||||
cp "${ROOT}/gitea.service" "${PKGDIR}/lib/systemd/system/gitea.service"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/debian.prerm" "${PKGDIR}/DEBIAN/prerm"
|
||||
cp "${ROOT}/debian.postrm" "${PKGDIR}/DEBIAN/postrm"
|
||||
cp "${ROOT}/app.ini" "${PKGDIR}/etc/gitea/app.ini"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
ln -s gitea.service "${PKGDIR}/lib/systemd/system/forgejo.service"
|
||||
ln -s gitea "${PKGDIR}/etc/forgejo"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
# Replace Forgejo patch level separater - with . to be Debian versioning compatible, and add epoch number 2
|
||||
export VERSION="2:${VERSION/-/.}"
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
1
forgejo/forgejo/debian.conffiles
Normal file
1
forgejo/forgejo/debian.conffiles
Normal file
|
@ -0,0 +1 @@
|
|||
/etc/gitea/app.ini
|
13
forgejo/forgejo/debian.control
Normal file
13
forgejo/forgejo/debian.control
Normal file
|
@ -0,0 +1,13 @@
|
|||
Package: forgejo
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: git
|
||||
Provides: gitea
|
||||
Conflicts: gitea
|
||||
Replaces: gitea
|
||||
Description: Libre code forge - a community-run soft fork of Gitea
|
||||
Gitea is a community managed lightweight code hosting solution written in Go.
|
||||
It is published under the MIT license.
|
25
forgejo/forgejo/debian.postinst
Executable file
25
forgejo/forgejo/debian.postinst
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group gitea >/dev/null; then
|
||||
groupadd --system gitea
|
||||
fi
|
||||
|
||||
if ! getent passwd gitea >/dev/null; then
|
||||
useradd --system --gid gitea --home-dir /var/lib/gitea --shell /bin/bash gitea
|
||||
fi
|
||||
|
||||
chown gitea:gitea /var/lib/gitea
|
||||
chmod 0750 /var/lib/gitea
|
||||
chown root:gitea /etc/gitea/app.ini
|
||||
chmod g+rx /etc/gitea
|
||||
chmod g+rw /etc/gitea/app.ini
|
||||
|
||||
deb-systemd-helper enable gitea.service
|
||||
deb-systemd-invoke restart gitea.service
|
||||
|
||||
fi
|
||||
|
9
forgejo/forgejo/debian.postrm
Executable file
9
forgejo/forgejo/debian.postrm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
systemctl daemon-reload || true
|
||||
|
||||
fi
|
9
forgejo/forgejo/debian.prerm
Executable file
9
forgejo/forgejo/debian.prerm
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "remove" ]]; then
|
||||
|
||||
deb-systemd-invoke stop gitea.service
|
||||
|
||||
fi
|
32
forgejo/forgejo/gitea.service
Normal file
32
forgejo/forgejo/gitea.service
Normal file
|
@ -0,0 +1,32 @@
|
|||
[Unit]
|
||||
Description=Forgejo
|
||||
After=network.target
|
||||
#Requires=mysql.service
|
||||
Requires=mariadb.service
|
||||
#Requires=postgresql.service
|
||||
#Requires=memcached.service
|
||||
#Requires=redis.service
|
||||
|
||||
[Service]
|
||||
# Modify these two values and uncomment them if you have
|
||||
# repos with lots of files and get an HTTP error 500 because
|
||||
# of that
|
||||
###
|
||||
#LimitMEMLOCK=infinity
|
||||
#LimitNOFILE=65535
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User=gitea
|
||||
Group=gitea
|
||||
WorkingDirectory=/var/lib/gitea
|
||||
ExecStart=/usr/bin/forgejo web -c /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea
|
||||
# If you want to bind Gitea to a port below 1024 uncomment
|
||||
# the two values below
|
||||
###
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
32
forgejo/gitea.service
Normal file
32
forgejo/gitea.service
Normal file
|
@ -0,0 +1,32 @@
|
|||
[Unit]
|
||||
Description=Forgejo
|
||||
After=network.target
|
||||
#Requires=mysql.service
|
||||
Requires=mariadb.service
|
||||
#Requires=postgresql.service
|
||||
#Requires=memcached.service
|
||||
#Requires=redis.service
|
||||
|
||||
[Service]
|
||||
# Modify these two values and uncomment them if you have
|
||||
# repos with lots of files and get an HTTP error 500 because
|
||||
# of that
|
||||
###
|
||||
#LimitMEMLOCK=infinity
|
||||
#LimitNOFILE=65535
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User=gitea
|
||||
Group=gitea
|
||||
WorkingDirectory=/var/lib/gitea
|
||||
ExecStart=/usr/bin/forgejo web -c /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea
|
||||
# If you want to bind Gitea to a port below 1024 uncomment
|
||||
# the two values below
|
||||
###
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
52
http-mqtt-bridge/build.sh
Executable file
52
http-mqtt-bridge/build.sh
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
apt install --assume-yes --no-install-recommends git golang-go
|
||||
cd "${SRCDIR}"
|
||||
git clone https://github.com/subzerobo/http-mqtt-bridge
|
||||
cd http-mqtt-bridge
|
||||
export VERSION=0.$(git rev-list --count HEAD)
|
||||
go get ./...
|
||||
go build -o http-mqtt-bridge
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/http-mqtt-bridge/http-mqtt-bridge"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/default" \
|
||||
"${PKGDIR}/etc/apache2/sites-available" \
|
||||
"${PKGDIR}/lib/systemd/system"
|
||||
cp "${SRCDIR}/http-mqtt-bridge/http-mqtt-bridge" "${PKGDIR}/usr/bin/http-mqtt-bridge"
|
||||
cp "${ROOT}/http-mqtt-bridge.defaults" "${PKGDIR}/etc/default/http-mqtt-bridge"
|
||||
cp "${ROOT}/http-mqtt-bridge.service" "${PKGDIR}/lib/systemd/system/http-mqtt-bridge.service"
|
||||
cp "${ROOT}/http-mqtt-bridge.site" "${PKGDIR}/etc/apache2/sites-available/http-mqtt-bridge.site"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
2
http-mqtt-bridge/debian.conffiles
Normal file
2
http-mqtt-bridge/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/default/http-mqtt-bridge
|
||||
/etc/apache2/sites-available/http-mqtt-bridge.site
|
11
http-mqtt-bridge/debian.control
Normal file
11
http-mqtt-bridge/debian.control
Normal file
|
@ -0,0 +1,11 @@
|
|||
Package: http-mqtt-bridge
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Recommends: apache2
|
||||
Description: Rewrite HTTP POST requests into MQTT PUB requests
|
||||
The HTTP to MQTT bridge should fill that gap of IFTTT Actions for
|
||||
your Custom IoT Hardwares. The idea is to receive signals using HTTP
|
||||
requests and transfer them to your MQTT broker.
|
5
http-mqtt-bridge/http-mqtt-bridge.defaults
Normal file
5
http-mqtt-bridge/http-mqtt-bridge.defaults
Normal file
|
@ -0,0 +1,5 @@
|
|||
MQTT_HOST=localhost:1883
|
||||
#MQTT_USER=
|
||||
#MQTT_PASS=
|
||||
AUTH_USERNAME=hmb
|
||||
AUTH_PASSWORD=hmb
|
14
http-mqtt-bridge/http-mqtt-bridge.service
Normal file
14
http-mqtt-bridge/http-mqtt-bridge.service
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Unit]
|
||||
Description=HTTP to MQTT Bridge
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/default/http-mqtt-bridge
|
||||
ExecStart=/usr/bin/http-mqtt-bridge start
|
||||
DynamicUser=true
|
||||
CapabilityBoundingSet=
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
32
http-mqtt-bridge/http-mqtt-bridge.site
Normal file
32
http-mqtt-bridge/http-mqtt-bridge.site
Normal file
|
@ -0,0 +1,32 @@
|
|||
<VirtualHost *:80>
|
||||
ServerName mqtt.example.com
|
||||
ServerAdmin webmaster@localhost
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
# Reverse Proxy for HTTP-MQTT-Bridge
|
||||
ProxyPass / http://localhost:8090/
|
||||
ProxyPassReverse / http://localhost:8090/
|
||||
# Static auth header (hmb:hmb)
|
||||
#RequestHeader set "Authorization" "Basic aG1iOmhtYg=="
|
||||
|
||||
# Configure CORS headers
|
||||
Header always set "Access-Control-Allow-Origin" "*"
|
||||
Header always set "Access-Control-Allow-Methods" "GET, POST, OPTIONS"
|
||||
Header always set "Access-Control-Allow-Headers" "Content-Type"
|
||||
|
||||
# Stop CORB complaints by overwriting text/html with application/json
|
||||
Header always set "Content-Type" "application/json"
|
||||
|
||||
# Make OPTIONS request work by forcibly returning a 200 OK header
|
||||
# even though the backend returns a 405
|
||||
RewriteEngine on
|
||||
RewriteCond %{REQUEST_METHOD} OPTIONS
|
||||
RewriteRule ^(.*)$ $1 [R=200,L]
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
52
http-mqtt-bridge/http-mqtt-bridge/build.sh
Executable file
52
http-mqtt-bridge/http-mqtt-bridge/build.sh
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
apt install --assume-yes --no-install-recommends git golang-go
|
||||
cd "${SRCDIR}"
|
||||
git clone https://github.com/subzerobo/http-mqtt-bridge
|
||||
cd http-mqtt-bridge
|
||||
export VERSION=0.$(git rev-list --count HEAD)
|
||||
go get ./...
|
||||
go build -o http-mqtt-bridge
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
chmod +x "${SRCDIR}/http-mqtt-bridge/http-mqtt-bridge"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin" \
|
||||
"${PKGDIR}/etc/default" \
|
||||
"${PKGDIR}/etc/apache2/sites-available" \
|
||||
"${PKGDIR}/lib/systemd/system"
|
||||
cp "${SRCDIR}/http-mqtt-bridge/http-mqtt-bridge" "${PKGDIR}/usr/bin/http-mqtt-bridge"
|
||||
cp "${ROOT}/http-mqtt-bridge.defaults" "${PKGDIR}/etc/default/http-mqtt-bridge"
|
||||
cp "${ROOT}/http-mqtt-bridge.service" "${PKGDIR}/lib/systemd/system/http-mqtt-bridge.service"
|
||||
cp "${ROOT}/http-mqtt-bridge.site" "${PKGDIR}/etc/apache2/sites-available/http-mqtt-bridge.site"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
2
http-mqtt-bridge/http-mqtt-bridge/debian.conffiles
Normal file
2
http-mqtt-bridge/http-mqtt-bridge/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/default/http-mqtt-bridge
|
||||
/etc/apache2/sites-available/http-mqtt-bridge.site
|
11
http-mqtt-bridge/http-mqtt-bridge/debian.control
Normal file
11
http-mqtt-bridge/http-mqtt-bridge/debian.control
Normal file
|
@ -0,0 +1,11 @@
|
|||
Package: http-mqtt-bridge
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Recommends: apache2
|
||||
Description: Rewrite HTTP POST requests into MQTT PUB requests
|
||||
The HTTP to MQTT bridge should fill that gap of IFTTT Actions for
|
||||
your Custom IoT Hardwares. The idea is to receive signals using HTTP
|
||||
requests and transfer them to your MQTT broker.
|
|
@ -0,0 +1,5 @@
|
|||
MQTT_HOST=localhost:1883
|
||||
#MQTT_USER=
|
||||
#MQTT_PASS=
|
||||
AUTH_USERNAME=hmb
|
||||
AUTH_PASSWORD=hmb
|
14
http-mqtt-bridge/http-mqtt-bridge/http-mqtt-bridge.service
Normal file
14
http-mqtt-bridge/http-mqtt-bridge/http-mqtt-bridge.service
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Unit]
|
||||
Description=HTTP to MQTT Bridge
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/default/http-mqtt-bridge
|
||||
ExecStart=/usr/bin/http-mqtt-bridge start
|
||||
DynamicUser=true
|
||||
CapabilityBoundingSet=
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
32
http-mqtt-bridge/http-mqtt-bridge/http-mqtt-bridge.site
Normal file
32
http-mqtt-bridge/http-mqtt-bridge/http-mqtt-bridge.site
Normal file
|
@ -0,0 +1,32 @@
|
|||
<VirtualHost *:80>
|
||||
ServerName mqtt.example.com
|
||||
ServerAdmin webmaster@localhost
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
# Reverse Proxy for HTTP-MQTT-Bridge
|
||||
ProxyPass / http://localhost:8090/
|
||||
ProxyPassReverse / http://localhost:8090/
|
||||
# Static auth header (hmb:hmb)
|
||||
#RequestHeader set "Authorization" "Basic aG1iOmhtYg=="
|
||||
|
||||
# Configure CORS headers
|
||||
Header always set "Access-Control-Allow-Origin" "*"
|
||||
Header always set "Access-Control-Allow-Methods" "GET, POST, OPTIONS"
|
||||
Header always set "Access-Control-Allow-Headers" "Content-Type"
|
||||
|
||||
# Stop CORB complaints by overwriting text/html with application/json
|
||||
Header always set "Content-Type" "application/json"
|
||||
|
||||
# Make OPTIONS request work by forcibly returning a 200 OK header
|
||||
# even though the backend returns a 405
|
||||
RewriteEngine on
|
||||
RewriteCond %{REQUEST_METHOD} OPTIONS
|
||||
RewriteRule ^(.*)$ $1 [R=200,L]
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
68
keycloak-23/build.sh
Executable file
68
keycloak-23/build.sh
Executable file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
. ../.skel/helpers.sh
|
||||
|
||||
MAJOR_VERSION=23
|
||||
export PKGNAME="keycloak-${MAJOR_VERSION}"
|
||||
|
||||
API_URL="https://api.github.com/repos/keycloak/keycloak/releases"
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="main" ) | "\(.name) \(.published_at) \(.assets[] | select( .name|test("keycloak-'${MAJOR_VERSION}'.*.tar.gz$") ).browser_download_url)"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "keycloak-${VERSION}.tar.gz"
|
||||
tar -xf "keycloak-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/opt/" \
|
||||
"${PKGDIR}/lib/systemd/system" \
|
||||
"${PKGDIR}/etc/apache2/sites-available" \
|
||||
"${PKGDIR}/usr/share/doc/${PKGNAME}"
|
||||
cp -r "${SRCDIR}/keycloak-${VERSION}" "${PKGDIR}/opt/keycloak/"
|
||||
mv "${PKGDIR}/opt/keycloak/conf" "${PKGDIR}/etc/keycloak/"
|
||||
ln -s /etc/keycloak "${PKGDIR}/opt/keycloak/conf"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/opt/keycloak/data" \
|
||||
"${PKGDIR}/opt/keycloak/ObjectStore"
|
||||
rm "${PKGDIR}/opt/keycloak/bin/kc.bat" \
|
||||
"${PKGDIR}/etc/keycloak/README.md"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/keycloak.service" "${PKGDIR}/lib/systemd/system/"
|
||||
cp "${ROOT}/keycloak.site.conf" "${PKGDIR}/etc/apache2/sites-available/"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.copyright" "${PKGDIR}/usr/share/doc/${PKGNAME}/copyright"
|
||||
github_changelog keycloak/keycloak
|
||||
find "${PKGDIR}" -exec touch -m --reference "${SRCDIR}/keycloak-${VERSION}/version.txt" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
3
keycloak-23/debian.conffiles
Normal file
3
keycloak-23/debian.conffiles
Normal file
|
@ -0,0 +1,3 @@
|
|||
/etc/apache2/sites-available/keycloak.site.conf
|
||||
/etc/keycloak/cache-ispn.xml
|
||||
/etc/keycloak/keycloak.conf
|
16
keycloak-23/debian.control
Normal file
16
keycloak-23/debian.control
Normal file
|
@ -0,0 +1,16 @@
|
|||
Package: keycloak-23
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Depends: default-jdk-headless (>=2:1.17), default-jdk-headless (<<2:1.22)
|
||||
Suggests: apache2, postgresql
|
||||
Provides: keycloak
|
||||
Conflicts: keycloak
|
||||
Replaces: keycloak
|
||||
Description: Open Source Identity and Access Management
|
||||
Add authentication to applications and secure services with minimum
|
||||
effort. No need to deal with storing users or authenticating users.
|
||||
Keycloak provides user federation, strong authentication, user
|
||||
management, fine-grained authorization, and more.
|
6
keycloak-23/debian.copyright
Normal file
6
keycloak-23/debian.copyright
Normal file
|
@ -0,0 +1,6 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Source: https://github.com/keycloak/keycloak
|
||||
|
||||
Files: *
|
||||
License: Apache-2.0
|
||||
|
22
keycloak-23/debian.postinst
Executable file
22
keycloak-23/debian.postinst
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group keycloak >/dev/null; then
|
||||
groupadd --system keycloak
|
||||
fi
|
||||
|
||||
if ! getent passwd keycloak >/dev/null; then
|
||||
useradd --system --gid keycloak --home-dir /opt/keycloak --shell /bin/false keycloak
|
||||
fi
|
||||
|
||||
chown root:keycloak /opt/keycloak /etc/keycloak
|
||||
chown keycloak:keycloak -R /opt/keycloak/lib/quarkus /opt/keycloak/data /opt/keycloak/ObjectStore
|
||||
chmod 0750 /etc/keycloak
|
||||
|
||||
deb-systemd-helper enable keycloak.service
|
||||
deb-systemd-invoke restart keycloak.service
|
||||
|
||||
fi
|
68
keycloak-23/keycloak-23/build.sh
Executable file
68
keycloak-23/keycloak-23/build.sh
Executable file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
. ../.skel/helpers.sh
|
||||
|
||||
MAJOR_VERSION=23
|
||||
export PKGNAME="keycloak-${MAJOR_VERSION}"
|
||||
|
||||
API_URL="https://api.github.com/repos/keycloak/keycloak/releases"
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="main" ) | "\(.name) \(.published_at) \(.assets[] | select( .name|test("keycloak-'${MAJOR_VERSION}'.*.tar.gz$") ).browser_download_url)"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "keycloak-${VERSION}.tar.gz"
|
||||
tar -xf "keycloak-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/opt/" \
|
||||
"${PKGDIR}/lib/systemd/system" \
|
||||
"${PKGDIR}/etc/apache2/sites-available" \
|
||||
"${PKGDIR}/usr/share/doc/${PKGNAME}"
|
||||
cp -r "${SRCDIR}/keycloak-${VERSION}" "${PKGDIR}/opt/keycloak/"
|
||||
mv "${PKGDIR}/opt/keycloak/conf" "${PKGDIR}/etc/keycloak/"
|
||||
ln -s /etc/keycloak "${PKGDIR}/opt/keycloak/conf"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/opt/keycloak/data" \
|
||||
"${PKGDIR}/opt/keycloak/ObjectStore"
|
||||
rm "${PKGDIR}/opt/keycloak/bin/kc.bat" \
|
||||
"${PKGDIR}/etc/keycloak/README.md"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst"
|
||||
cp "${ROOT}/keycloak.service" "${PKGDIR}/lib/systemd/system/"
|
||||
cp "${ROOT}/keycloak.site.conf" "${PKGDIR}/etc/apache2/sites-available/"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.copyright" "${PKGDIR}/usr/share/doc/${PKGNAME}/copyright"
|
||||
github_changelog keycloak/keycloak
|
||||
find "${PKGDIR}" -exec touch -m --reference "${SRCDIR}/keycloak-${VERSION}/version.txt" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
3
keycloak-23/keycloak-23/debian.conffiles
Normal file
3
keycloak-23/keycloak-23/debian.conffiles
Normal file
|
@ -0,0 +1,3 @@
|
|||
/etc/apache2/sites-available/keycloak.site.conf
|
||||
/etc/keycloak/cache-ispn.xml
|
||||
/etc/keycloak/keycloak.conf
|
16
keycloak-23/keycloak-23/debian.control
Normal file
16
keycloak-23/keycloak-23/debian.control
Normal file
|
@ -0,0 +1,16 @@
|
|||
Package: keycloak-23
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Depends: default-jdk-headless (>=2:1.17), default-jdk-headless (<<2:1.22)
|
||||
Suggests: apache2, postgresql
|
||||
Provides: keycloak
|
||||
Conflicts: keycloak
|
||||
Replaces: keycloak
|
||||
Description: Open Source Identity and Access Management
|
||||
Add authentication to applications and secure services with minimum
|
||||
effort. No need to deal with storing users or authenticating users.
|
||||
Keycloak provides user federation, strong authentication, user
|
||||
management, fine-grained authorization, and more.
|
6
keycloak-23/keycloak-23/debian.copyright
Normal file
6
keycloak-23/keycloak-23/debian.copyright
Normal file
|
@ -0,0 +1,6 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Source: https://github.com/keycloak/keycloak
|
||||
|
||||
Files: *
|
||||
License: Apache-2.0
|
||||
|
22
keycloak-23/keycloak-23/debian.postinst
Executable file
22
keycloak-23/keycloak-23/debian.postinst
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$1" == "configure" ]]; then
|
||||
|
||||
if ! getent group keycloak >/dev/null; then
|
||||
groupadd --system keycloak
|
||||
fi
|
||||
|
||||
if ! getent passwd keycloak >/dev/null; then
|
||||
useradd --system --gid keycloak --home-dir /opt/keycloak --shell /bin/false keycloak
|
||||
fi
|
||||
|
||||
chown root:keycloak /opt/keycloak /etc/keycloak
|
||||
chown keycloak:keycloak -R /opt/keycloak/lib/quarkus /opt/keycloak/data /opt/keycloak/ObjectStore
|
||||
chmod 0750 /etc/keycloak
|
||||
|
||||
deb-systemd-helper enable keycloak.service
|
||||
deb-systemd-invoke restart keycloak.service
|
||||
|
||||
fi
|
22
keycloak-23/keycloak-23/keycloak.service
Normal file
22
keycloak-23/keycloak-23/keycloak.service
Normal file
|
@ -0,0 +1,22 @@
|
|||
[Unit]
|
||||
Description=Keycloak
|
||||
#Requires=mysql.service
|
||||
#Requires=mariadb.service
|
||||
#Requires=postgresql.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/keycloak/bin/kc.sh start
|
||||
Restart=always
|
||||
User=keycloak
|
||||
Group=keycloak
|
||||
WorkingDirectory=/opt/keycloak
|
||||
CapabilityBoundingSet=
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
## To clear the theme cache (use systemctl edit keycloak.service, then paste this at the top)
|
||||
#[Service]
|
||||
#ExecStart=
|
||||
#ExecStart=/opt/keycloak/bin/kc.sh start --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false
|
31
keycloak-23/keycloak-23/keycloak.site.conf
Normal file
31
keycloak-23/keycloak-23/keycloak.site.conf
Normal file
|
@ -0,0 +1,31 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName keycloak.example.org
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ProxyPass /js/ http://localhost:8080/js/
|
||||
ProxyPassReverse /js/ http://localhost:8080/js/
|
||||
ProxyPass /realms/ http://localhost:8080/realms/
|
||||
ProxyPassReverse /realms/ http://localhost:8080/realms/
|
||||
ProxyPass /resources/ http://localhost:8080/resources/
|
||||
ProxyPassReverse /resources/ http://localhost:8080/resources/
|
||||
|
||||
# Redirect root to user account management
|
||||
RewriteEngine on
|
||||
RewriteRule ^/?$ /realms/EXAMPLE/account [L,R]
|
||||
|
||||
## Test client that dumps the id_token
|
||||
#OIDCProviderMetadataURL https://keycloak.example.org/realms/EXAMPLE/.well-known/openid-configuration
|
||||
#OIDCClientID foo
|
||||
#OIDCClientSecret bar
|
||||
#OIDCRedirectURI https://keycloak.example.org/test-client/redirect
|
||||
#OIDCCryptoPassphrase supersecurepassword
|
||||
#OIDCInfoHook id_token
|
||||
#<Location /test-client>
|
||||
# AuthType openid-connect
|
||||
# Require valid-user
|
||||
# RewriteRule .* /test-client/redirect?info=html
|
||||
#</Location>
|
||||
|
||||
</VirtualHost>
|
22
keycloak-23/keycloak.service
Normal file
22
keycloak-23/keycloak.service
Normal file
|
@ -0,0 +1,22 @@
|
|||
[Unit]
|
||||
Description=Keycloak
|
||||
#Requires=mysql.service
|
||||
#Requires=mariadb.service
|
||||
#Requires=postgresql.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/keycloak/bin/kc.sh start
|
||||
Restart=always
|
||||
User=keycloak
|
||||
Group=keycloak
|
||||
WorkingDirectory=/opt/keycloak
|
||||
CapabilityBoundingSet=
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
## To clear the theme cache (use systemctl edit keycloak.service, then paste this at the top)
|
||||
#[Service]
|
||||
#ExecStart=
|
||||
#ExecStart=/opt/keycloak/bin/kc.sh start --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false
|
31
keycloak-23/keycloak.site.conf
Normal file
31
keycloak-23/keycloak.site.conf
Normal file
|
@ -0,0 +1,31 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName keycloak.example.org
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ProxyPass /js/ http://localhost:8080/js/
|
||||
ProxyPassReverse /js/ http://localhost:8080/js/
|
||||
ProxyPass /realms/ http://localhost:8080/realms/
|
||||
ProxyPassReverse /realms/ http://localhost:8080/realms/
|
||||
ProxyPass /resources/ http://localhost:8080/resources/
|
||||
ProxyPassReverse /resources/ http://localhost:8080/resources/
|
||||
|
||||
# Redirect root to user account management
|
||||
RewriteEngine on
|
||||
RewriteRule ^/?$ /realms/EXAMPLE/account [L,R]
|
||||
|
||||
## Test client that dumps the id_token
|
||||
#OIDCProviderMetadataURL https://keycloak.example.org/realms/EXAMPLE/.well-known/openid-configuration
|
||||
#OIDCClientID foo
|
||||
#OIDCClientSecret bar
|
||||
#OIDCRedirectURI https://keycloak.example.org/test-client/redirect
|
||||
#OIDCCryptoPassphrase supersecurepassword
|
||||
#OIDCInfoHook id_token
|
||||
#<Location /test-client>
|
||||
# AuthType openid-connect
|
||||
# Require valid-user
|
||||
# RewriteRule .* /test-client/redirect?info=html
|
||||
#</Location>
|
||||
|
||||
</VirtualHost>
|
34
linux-diversion-ath-regd-optional/ath_regd.patch
Normal file
34
linux-diversion-ath-regd-optional/ath_regd.patch
Normal file
|
@ -0,0 +1,34 @@
|
|||
--- a/drivers/net/wireless/ath/Kconfig
|
||||
+++ b/drivers/net/wireless/ath/Kconfig
|
||||
@@ -23,6 +23,10 @@ config WLAN_VENDOR_ATH
|
||||
|
||||
if WLAN_VENDOR_ATH
|
||||
|
||||
+config ATH_USER_REGD
|
||||
+ bool "Do not enforce EEPROM regulatory restrictions"
|
||||
+ default n
|
||||
+
|
||||
config ATH_DEBUG
|
||||
bool "Atheros wireless debugging"
|
||||
help
|
||||
--- a/drivers/net/wireless/ath/regd.c
|
||||
+++ b/drivers/net/wireless/ath/regd.c
|
||||
@@ -43,12 +43,18 @@
|
||||
NL80211_RRF_NO_OFDM)
|
||||
|
||||
/* We allow IBSS on these on a case by case basis by regulatory domain */
|
||||
+#ifdef CONFIG_ATH_USER_REGD
|
||||
+#define ATH_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30, 0)
|
||||
+#define ATH_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30, 0)
|
||||
+#define ATH_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30, 0)
|
||||
+#else
|
||||
#define ATH_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30,\
|
||||
NL80211_RRF_NO_IR)
|
||||
#define ATH_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\
|
||||
NL80211_RRF_NO_IR)
|
||||
#define ATH_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
|
||||
NL80211_RRF_NO_IR)
|
||||
+#endif
|
||||
|
||||
#define ATH_2GHZ_ALL ATH_2GHZ_CH01_11, \
|
||||
ATH_2GHZ_CH12_13, \
|
116
linux-diversion-ath-regd-optional/build.sh
Executable file
116
linux-diversion-ath-regd-optional/build.sh
Executable file
|
@ -0,0 +1,116 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Build the current linux kernel with a patch permitting ath10k WiFi
|
||||
# cards with no burned-in regdom to be used as 5 GHz APs again.
|
||||
# linux-5.6 "sanitizes the regdom value 0x00 (= unset) to
|
||||
# 0x64 (= worldwide, most restricted), which works fine in STA mode, but
|
||||
# does not permit setting a more relaxed regdom in AP mode, breaking
|
||||
# 5 GHz WiFi.
|
||||
#
|
||||
# Build instructions from
|
||||
# https://github.com/twisteroidambassador/arch-linux-ath-user-regd/issues/1
|
||||
#
|
||||
# Revised kernel patch from
|
||||
# https://github.com/CodePhase/patch-atheros-regdom
|
||||
|
||||
set -xe
|
||||
|
||||
ROOT="$(pwd)"
|
||||
export BUILDDIR="${ROOT}/build"
|
||||
export SRCDIR="${ROOT}/build/srcdir"
|
||||
export PKGDIR="${ROOT}/build/pkgdir"
|
||||
export PKGDIR_META="${ROOT}/build/pkgdir_meta"
|
||||
mkdir -p "${SRCDIR}" "${PKGDIR}" "${PKGDIR_META}"
|
||||
|
||||
# Add deb-src lines missing in the docker:bullseye image
|
||||
sed 's/^Types: deb$/Types: deb-src/g' /etc/apt/sources.list.d/debian.sources > /etc/apt/sources.list.d/10-deb-src.sources
|
||||
|
||||
apt update
|
||||
apt build-dep -y linux
|
||||
|
||||
# Get kernel version from orig filename
|
||||
cd "${SRCDIR}"
|
||||
apt source linux
|
||||
export LINUX_VERSION=$(ls -1 linux_*.orig.tar.xz | sed -re 's/^linux_(.*).orig.tar.xz$/\1/g' | head -1)
|
||||
export LINUX_REVISION=$(ls -1 linux_*.dsc | sed -re 's/^linux_(.*).dsc$/\1/g' | head -1)
|
||||
# Get debian package version from source's debian/control (contains lots
|
||||
# of binary packages, pick linux-headers-{version}-common, because it's
|
||||
# the first one.
|
||||
export DEB_VERSION=$(grep '^Package: linux-headers-.*-common$' "linux-${LINUX_VERSION}/debian/control" \
|
||||
| sed -re 's/^Package: linux-headers-(.*)-common$/\1/g')
|
||||
# Download the already built binary package and extract the kernel config
|
||||
mkdir -p "${SRCDIR}/unpack/image" "${SRCDIR}/unpack/headers"
|
||||
cd "${SRCDIR}/unpack/image"
|
||||
apt download "linux-image-${DEB_VERSION}-amd64"
|
||||
ar xf "linux-image-${DEB_VERSION}-amd64_${LINUX_REVISION}_amd64.deb" ./data.tar.xz
|
||||
tar xf data.tar.xz ./boot/config-${DEB_VERSION}-amd64
|
||||
# Download the already built headers package and extract symvers
|
||||
cd "${SRCDIR}/unpack/headers"
|
||||
apt download "linux-headers-${DEB_VERSION}-amd64"
|
||||
ar xf "linux-headers-${DEB_VERSION}-amd64_${LINUX_REVISION}_amd64.deb" ./data.tar.xz
|
||||
tar xf data.tar.xz "./usr/src/linux-headers-${DEB_VERSION}-amd64/Module.symvers"
|
||||
|
||||
# Apply the patch and copy kernel config and symvers
|
||||
cd "${SRCDIR}/linux-${LINUX_VERSION}"
|
||||
make clean mrproper
|
||||
patch -p1 < "${ROOT}/ath_regd.patch"
|
||||
cp "${SRCDIR}/unpack/image/boot/config-${DEB_VERSION}-amd64" "${SRCDIR}/linux-${LINUX_VERSION}/.config"
|
||||
cp "${SRCDIR}/unpack/headers/usr/src/linux-headers-${DEB_VERSION}-amd64/Module.symvers" "${SRCDIR}/linux-${LINUX_VERSION}/Module.symvers"
|
||||
# Set the new configuration flag
|
||||
./scripts/config --set-val ATH_USER_REGD y
|
||||
make oldconfig
|
||||
|
||||
# Build and compress the "ath" kernel module
|
||||
make prepare modules_prepare scripts
|
||||
make M=drivers/net/wireless/ath
|
||||
|
||||
# This will be used as timestamp in the "ar" archives
|
||||
export SOURCE_DATE_EPOCH=$(date +%s -r "${SRCDIR}/unpack/image/boot/config-${DEB_VERSION}-amd64")
|
||||
# Prepare the diversion package
|
||||
rsync -a "${ROOT}/debian/" "${PKGDIR}/DEBIAN/"
|
||||
mkdir -p \
|
||||
"${PKGDIR}/lib/modules/${DEB_VERSION}-amd64/kernel/drivers/net/wireless/ath" \
|
||||
"${PKGDIR}/usr/share/doc/linux-diversion-${DEB_VERSION}-ath-regd-optional"
|
||||
cp "${SRCDIR}/linux-${LINUX_VERSION}/drivers/net/wireless/ath/ath.ko" \
|
||||
"${PKGDIR}/lib/modules/${DEB_VERSION}-amd64/kernel/drivers/net/wireless/ath/ath.ko"
|
||||
# Insert version numbers into control files
|
||||
for FILE in $(echo "${PKGDIR}"/DEBIAN/*); do
|
||||
sed -re "s/__DEB_VERSION__/${DEB_VERSION}/g" -i "${FILE}"
|
||||
sed -re "s/__LINUX_VERSION__/${LINUX_VERSION}/g" -i "${FILE}"
|
||||
sed -re "s/__LINUX_REVISION__/${LINUX_REVISION}/g" -i "${FILE}"
|
||||
done
|
||||
mv "${PKGDIR}/DEBIAN/changelog" "${PKGDIR}/usr/share/doc/linux-diversion-${DEB_VERSION}-ath-regd-optional/changelog.Debian"
|
||||
mv "${PKGDIR}/DEBIAN/copyright" "${PKGDIR}/usr/share/doc/linux-diversion-${DEB_VERSION}-ath-regd-optional/"
|
||||
gzip -9n "${PKGDIR}/usr/share/doc/linux-diversion-${DEB_VERSION}-ath-regd-optional/changelog.Debian"
|
||||
chown 0:0 -R "${PKGDIR}"
|
||||
find "${PKGDIR}" -type f -exec chmod 0644 {} \;
|
||||
find "${PKGDIR}" -type d -exec chmod 0755 {} \;
|
||||
chmod 0755 "${PKGDIR}/DEBIAN/preinst" "${PKGDIR}/DEBIAN/postinst" "${PKGDIR}/DEBIAN/postrm"
|
||||
# change mtime to the original package's config file
|
||||
find "${PKGDIR}" -exec touch -m -r "${SRCDIR}/unpack/image/boot/config-${DEB_VERSION}-amd64" {} \;
|
||||
# Build the diversion package
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
|
||||
# Prepare the meta package
|
||||
rsync -a "${ROOT}/debian.meta/" "${PKGDIR_META}/DEBIAN/"
|
||||
mkdir -p \
|
||||
"${PKGDIR_META}/usr/share/doc/linux-diversion-ath-regd-optional"
|
||||
# Insert version numbers into control files
|
||||
for FILE in $(echo "${PKGDIR_META}"/DEBIAN/*); do
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${FILE}"
|
||||
sed -re "s/__DEB_VERSION__/${DEB_VERSION}/g" -i "${FILE}"
|
||||
sed -re "s/__LINUX_VERSION__/${LINUX_VERSION}/g" -i "${FILE}"
|
||||
sed -re "s/__LINUX_REVISION__/${LINUX_REVISION}/g" -i "${FILE}"
|
||||
done
|
||||
mv "${PKGDIR_META}/DEBIAN/changelog" "${PKGDIR_META}/usr/share/doc/linux-diversion-ath-regd-optional/changelog.Debian"
|
||||
mv "${PKGDIR_META}/DEBIAN/copyright" "${PKGDIR_META}/usr/share/doc/linux-diversion-ath-regd-optional/"
|
||||
gzip -9n "${PKGDIR_META}/usr/share/doc/linux-diversion-ath-regd-optional/changelog.Debian"
|
||||
chown 0:0 -R "${PKGDIR_META}"
|
||||
find "${PKGDIR_META}" -type f -exec chmod 0644 {} \;
|
||||
find "${PKGDIR_META}" -type d -exec chmod 0755 {} \;
|
||||
# change mtime to the original package's config file
|
||||
find "${PKGDIR_META}" -exec touch -m -r "${SRCDIR}/unpack/image/boot/config-${DEB_VERSION}-amd64" {} \;
|
||||
# Build the diversion package
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR_META}" "${BUILDDIR}"
|
5
linux-diversion-ath-regd-optional/debian.meta/changelog
Normal file
5
linux-diversion-ath-regd-optional/debian.meta/changelog
Normal file
|
@ -0,0 +1,5 @@
|
|||
linux-diversion-ath-regd-optional (__DEB_VERSION__) s3lphrepo; urgency=high
|
||||
|
||||
* Depend on linux-diversion-__DEB_VERSION__-ath-regd-optional (= __LINUX_REVISION__)
|
||||
|
||||
-- __MAINTAINER__ Fri, 25 Feb 2022 00:44:52 +0100
|
14
linux-diversion-ath-regd-optional/debian.meta/control
Normal file
14
linux-diversion-ath-regd-optional/debian.meta/control
Normal file
|
@ -0,0 +1,14 @@
|
|||
Package: linux-diversion-ath-regd-optional
|
||||
Architecture: amd64
|
||||
Version: __DEB_VERSION__
|
||||
Maintainer: Sebastian Philipp <account-gitlab-ideynizv@kernelpanic.lol>
|
||||
Section: kernel
|
||||
Priority: optional
|
||||
Depends: linux-diversion-__DEB_VERSION__-ath-regd-optional (= __LINUX_REVISION__)
|
||||
Description: ath kernel module diversion disabling faulty regdom sanitization (metapackage)
|
||||
Starting with linux-5.10, the "ath" wireless driver "sanitizes" the
|
||||
regdom value 0x00 (= unset) to 0x64 (= worldwide, most restricted),
|
||||
which works fine in STA mode, but does not permit setting a more
|
||||
relaxed regdom in AP mode, breaking 5 GHz Wi-Fi. This package diverts
|
||||
ath.ko and replaces it with a patched version that does not perform
|
||||
this sanitization procedure.
|
20
linux-diversion-ath-regd-optional/debian.meta/copyright
Normal file
20
linux-diversion-ath-regd-optional/debian.meta/copyright
Normal file
|
@ -0,0 +1,20 @@
|
|||
Copyright 2022 s3lph
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
5
linux-diversion-ath-regd-optional/debian/changelog
Normal file
5
linux-diversion-ath-regd-optional/debian/changelog
Normal file
|
@ -0,0 +1,5 @@
|
|||
linux-diversion-__DEB_VERSION__-ath-regd-optional (__LINUX_REVISION__) s3lphrepo; urgency=high
|
||||
|
||||
* Add ath.ko for upstream kernel revision __LINUX_REVISION__
|
||||
|
||||
-- __MAINTAINER__ Fri, 25 Feb 2022 00:44:52 +0100
|
14
linux-diversion-ath-regd-optional/debian/control
Normal file
14
linux-diversion-ath-regd-optional/debian/control
Normal file
|
@ -0,0 +1,14 @@
|
|||
Package: linux-diversion-__DEB_VERSION__-ath-regd-optional
|
||||
Architecture: amd64
|
||||
Version: __LINUX_REVISION__
|
||||
Maintainer: Sebastian Philipp <account-gitlab-ideynizv@kernelpanic.lol>
|
||||
Section: kernel
|
||||
Priority: optional
|
||||
Depends: linux-image-__DEB_VERSION__-amd64 (= __LINUX_REVISION__)
|
||||
Description: ath kernel module diversion disabling faulty regdom sanitization
|
||||
Starting with linux-5.10, the "ath" wireless driver "sanitizes" the
|
||||
regdom value 0x00 (= unset) to 0x64 (= worldwide, most restricted),
|
||||
which works fine in STA mode, but does not permit setting a more
|
||||
relaxed regdom in AP mode, breaking 5 GHz Wi-Fi. This package diverts
|
||||
ath.ko and replaces it with a patched version that does not perform
|
||||
this sanitization procedure.
|
20
linux-diversion-ath-regd-optional/debian/copyright
Normal file
20
linux-diversion-ath-regd-optional/debian/copyright
Normal file
|
@ -0,0 +1,20 @@
|
|||
Copyright 2022 s3lph
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
17
linux-diversion-ath-regd-optional/debian/postinst
Executable file
17
linux-diversion-ath-regd-optional/debian/postinst
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
# Based on linux-image-5.10.0-11-amd64 postinst
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" != configure ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
depmod __DEB_VERSION__-amd64
|
||||
|
||||
if [ -d /var/run ]; then
|
||||
touch /var/run/reboot-required
|
||||
if ! grep -q "^linux-diversion-__DEB_VERSION__-ath-regd-optional$" /var/run/reboot-required.pkgs 2> /dev/null ; then
|
||||
echo "linux-diversion-__DEB_VERSION__-ath-regd-optional" >> /var/run/reboot-required.pkgs
|
||||
fi
|
||||
fi
|
20
linux-diversion-ath-regd-optional/debian/postrm
Executable file
20
linux-diversion-ath-regd-optional/debian/postrm
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ remove != "$1" -a abort-install != "$1" -a disappear != "$1" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
dpkg-divert --package linux-diversion-__DEB_VERSION__-ath-regd-optional --remove --rename --divert \
|
||||
/lib/modules/__DEB_VERSION__-amd64/kernel/drivers/net/wireless/ath/ath.ko.orig \
|
||||
/lib/modules/__DEB_VERSION__-amd64/kernel/drivers/net/wireless/ath/ath.ko
|
||||
|
||||
depmod __DEB_VERSION__-amd64
|
||||
|
||||
if [ -d /var/run ]; then
|
||||
touch /var/run/reboot-required
|
||||
if ! grep -q "^linux-diversion-__DEB_VERSION__-ath-regd-optional$" /var/run/reboot-required.pkgs 2> /dev/null ; then
|
||||
echo "linux-diversion-__DEB_VERSION__-ath-regd-optional" >> /var/run/reboot-required.pkgs
|
||||
fi
|
||||
fi
|
7
linux-diversion-ath-regd-optional/debian/preinst
Executable file
7
linux-diversion-ath-regd-optional/debian/preinst
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
dpkg-divert --package linux-diversion-__DEB_VERSION__-ath-regd-optional --add --rename --divert \
|
||||
/lib/modules/__DEB_VERSION__-amd64/kernel/drivers/net/wireless/ath/ath.ko.orig \
|
||||
/lib/modules/__DEB_VERSION__-amd64/kernel/drivers/net/wireless/ath/ath.ko
|
47
lottieconverter/build.sh
Executable file
47
lottieconverter/build.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/sot-tech/LottieConverter/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false ) | "\(.name[8:]) \(.published_at) \(.assets[] | select( .name|test(".*-linux-bin.tar.gz$") ).browser_download_url)"'
|
||||
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "lottieconverter.tar.gz"
|
||||
tar -xf "lottieconverter.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin"
|
||||
cp "${SRCDIR}/lottieconverter" "${PKGDIR}/usr/bin/lottieconverter"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
9
lottieconverter/debian.control
Normal file
9
lottieconverter/debian.control
Normal file
|
@ -0,0 +1,9 @@
|
|||
Package: lottieconverter
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: librlottie0-1, libpng16-16, libz1
|
||||
Description: Simple lottie (telegram animated sticker) converter
|
||||
Animation can be converted to png (with transparency) or to gif.
|
47
lottieconverter/lottieconverter/build.sh
Executable file
47
lottieconverter/lottieconverter/build.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/sot-tech/LottieConverter/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false ) | "\(.name[8:]) \(.published_at) \(.assets[] | select( .name|test(".*-linux-bin.tar.gz$") ).browser_download_url)"'
|
||||
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "lottieconverter.tar.gz"
|
||||
tar -xf "lottieconverter.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/bin"
|
||||
cp "${SRCDIR}/lottieconverter" "${PKGDIR}/usr/bin/lottieconverter"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
9
lottieconverter/lottieconverter/debian.control
Normal file
9
lottieconverter/lottieconverter/debian.control
Normal file
|
@ -0,0 +1,9 @@
|
|||
Package: lottieconverter
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Depends: librlottie0-1, libpng16-16, libz1
|
||||
Description: Simple lottie (telegram animated sticker) converter
|
||||
Animation can be converted to png (with transparency) or to gif.
|
2
matrix-element-web/debian.conffiles
Normal file
2
matrix-element-web/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/matrix-element-web/config.json
|
||||
/etc/apache2/sites-available/matrix-element-web.site.conf
|
9
matrix-element-web/debian.control
Normal file
9
matrix-element-web/debian.control
Normal file
|
@ -0,0 +1,9 @@
|
|||
Package: matrix-element-web
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Description: Glossy Matrix collaboration client for the web
|
||||
Element (formerly known as Vector and Riot) is a Matrix web client
|
||||
built using the Matrix React SDK.
|
24
matrix-element-web/matrix-element-web.site.conf
Normal file
24
matrix-element-web/matrix-element-web.site.conf
Normal file
|
@ -0,0 +1,24 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName element.example.com
|
||||
|
||||
DocumentRoot /usr/share/matrix-element-web/html
|
||||
|
||||
<Directory /usr/share/matrix-element-web/html>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Directory /etc/matrix-element-web>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
Header set X-Frame-Options SAMEORIGIN
|
||||
Header set X-Content-Type-Options nosniff
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
Header set Content-Security-Policy "frame-ancestors 'self'"
|
||||
|
||||
</VirtualHost>
|
2
matrix-element-web/matrix-element-web/debian.conffiles
Normal file
2
matrix-element-web/matrix-element-web/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/matrix-element-web/config.json
|
||||
/etc/apache2/sites-available/matrix-element-web.site.conf
|
9
matrix-element-web/matrix-element-web/debian.control
Normal file
9
matrix-element-web/matrix-element-web/debian.control
Normal file
|
@ -0,0 +1,9 @@
|
|||
Package: matrix-element-web
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Description: Glossy Matrix collaboration client for the web
|
||||
Element (formerly known as Vector and Riot) is a Matrix web client
|
||||
built using the Matrix React SDK.
|
|
@ -0,0 +1,24 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName element.example.com
|
||||
|
||||
DocumentRoot /usr/share/matrix-element-web/html
|
||||
|
||||
<Directory /usr/share/matrix-element-web/html>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Directory /etc/matrix-element-web>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
Header set X-Frame-Options SAMEORIGIN
|
||||
Header set X-Content-Type-Options nosniff
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
Header set Content-Security-Policy "frame-ancestors 'self'"
|
||||
|
||||
</VirtualHost>
|
55
matrix-element-web/matrix-element-web/package.sh
Executable file
55
matrix-element-web/matrix-element-web/package.sh
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/vector-im/element-web/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="develop" ) | "\(.tag_name[1:]) \(.published_at) \(.assets[] | select(.name|test("element-.*.tar.gz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "element-web-${VERSION}.tar.gz"
|
||||
tar --strip-components 1 -xf "element-web-${VERSION}.tar.gz"
|
||||
rm -f "element-web-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/share/matrix-element-web" \
|
||||
"${PKGDIR}/etc/matrix-element-web" \
|
||||
"${PKGDIR}/etc/apache2/sites-available"
|
||||
cp -r "${SRCDIR}" "${PKGDIR}/usr/share/matrix-element-web/html"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/matrix-element-web.site.conf" "${PKGDIR}/etc/apache2/sites-available/matrix-element-web.site.conf"
|
||||
mv "${PKGDIR}/usr/share/matrix-element-web/html/config.sample.json" "${PKGDIR}/etc/matrix-element-web/config.json"
|
||||
ln -s "/etc/matrix-element-web/config.json" "${PKGDIR}/usr/share/matrix-element-web/html/config.json"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
# root:www-data
|
||||
chown 0:33 -R "${PKGDIR}/usr/share/matrix-element-web" "${PKGDIR}/etc/matrix-element-web"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
55
matrix-element-web/package.sh
Executable file
55
matrix-element-web/package.sh
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/vector-im/element-web/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="develop" ) | "\(.tag_name[1:]) \(.published_at) \(.assets[] | select(.name|test("element-.*.tar.gz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "element-web-${VERSION}.tar.gz"
|
||||
tar --strip-components 1 -xf "element-web-${VERSION}.tar.gz"
|
||||
rm -f "element-web-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/share/matrix-element-web" \
|
||||
"${PKGDIR}/etc/matrix-element-web" \
|
||||
"${PKGDIR}/etc/apache2/sites-available"
|
||||
cp -r "${SRCDIR}" "${PKGDIR}/usr/share/matrix-element-web/html"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/matrix-element-web.site.conf" "${PKGDIR}/etc/apache2/sites-available/matrix-element-web.site.conf"
|
||||
mv "${PKGDIR}/usr/share/matrix-element-web/html/config.sample.json" "${PKGDIR}/etc/matrix-element-web/config.json"
|
||||
ln -s "/etc/matrix-element-web/config.json" "${PKGDIR}/usr/share/matrix-element-web/html/config.json"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
# root:www-data
|
||||
chown 0:33 -R "${PKGDIR}/usr/share/matrix-element-web" "${PKGDIR}/etc/matrix-element-web"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
55
matrix-hydrogen/build.sh
Executable file
55
matrix-hydrogen/build.sh
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/vector-im/hydrogen-web/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="master" ) | "\(.tag_name[1:]) \(.published_at) \(.assets[] | select(.name|test("hydrogen-web-.*.tar.gz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "hydrogen-web-${VERSION}.tar.gz"
|
||||
tar -xf "hydrogen-web-${VERSION}.tar.gz"
|
||||
rm -f "hydrogen-web-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/share/matrix-hydrogen" \
|
||||
"${PKGDIR}/etc/matrix-hydrogen" \
|
||||
"${PKGDIR}/etc/apache2/sites-available"
|
||||
cp -r "${SRCDIR}" "${PKGDIR}/usr/share/matrix-hydrogen/html"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/matrix-hydrogen.site.conf" "${PKGDIR}/etc/apache2/sites-available/matrix-hydrogen.site.conf"
|
||||
mv "${PKGDIR}/usr/share/matrix-hydrogen/html/config.sample.json" "${PKGDIR}/etc/matrix-hydrogen/config.json"
|
||||
ln -s "/etc/matrix-hydrogen/config.json" "${PKGDIR}/usr/share/matrix-hydrogen/html/config.json"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
# root:www-data
|
||||
chown 0:33 -R "${PKGDIR}/usr/share/matrix-hydrogen" "${PKGDIR}/etc/matrix-hydrogen"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
2
matrix-hydrogen/debian.conffiles
Normal file
2
matrix-hydrogen/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/matrix-hydrogen/config.json
|
||||
/etc/apache2/sites-available/matrix-hydrogen.site.conf
|
10
matrix-hydrogen/debian.control
Normal file
10
matrix-hydrogen/debian.control
Normal file
|
@ -0,0 +1,10 @@
|
|||
Package: matrix-hydrogen
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Description: Lightweight matrix client with legacy and mobile browser support
|
||||
A minimal Matrix chat client, focused on performance, offline
|
||||
functionality, and broad browser support. This is work in progress
|
||||
and not yet ready for primetime.
|
47
matrix-hydrogen/matrix-hydrogen.site.conf
Normal file
47
matrix-hydrogen/matrix-hydrogen.site.conf
Normal file
|
@ -0,0 +1,47 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName hydrogen.example.com
|
||||
|
||||
DocumentRoot /usr/share/matrix-hydrogen/html
|
||||
|
||||
<Directory /usr/share/matrix-hydrogen/html>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Directory /etc/matrix-hydrogen>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Location /index.html>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /sw.js>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /config.json>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /assets/theme-element.json>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
</VirtualHost>
|
55
matrix-hydrogen/matrix-hydrogen/build.sh
Executable file
55
matrix-hydrogen/matrix-hydrogen/build.sh
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
API_URL=https://api.github.com/repos/vector-im/hydrogen-web/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="master" ) | "\(.tag_name[1:]) \(.published_at) \(.assets[] | select(.name|test("hydrogen-web-.*.tar.gz$")).browser_download_url )"'
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
wget "${URL}" --output-document "hydrogen-web-${VERSION}.tar.gz"
|
||||
tar -xf "hydrogen-web-${VERSION}.tar.gz"
|
||||
rm -f "hydrogen-web-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/share/matrix-hydrogen" \
|
||||
"${PKGDIR}/etc/matrix-hydrogen" \
|
||||
"${PKGDIR}/etc/apache2/sites-available"
|
||||
cp -r "${SRCDIR}" "${PKGDIR}/usr/share/matrix-hydrogen/html"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles"
|
||||
cp "${ROOT}/matrix-hydrogen.site.conf" "${PKGDIR}/etc/apache2/sites-available/matrix-hydrogen.site.conf"
|
||||
mv "${PKGDIR}/usr/share/matrix-hydrogen/html/config.sample.json" "${PKGDIR}/etc/matrix-hydrogen/config.json"
|
||||
ln -s "/etc/matrix-hydrogen/config.json" "${PKGDIR}/usr/share/matrix-hydrogen/html/config.json"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
# root:www-data
|
||||
chown 0:33 -R "${PKGDIR}/usr/share/matrix-hydrogen" "${PKGDIR}/etc/matrix-hydrogen"
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
2
matrix-hydrogen/matrix-hydrogen/debian.conffiles
Normal file
2
matrix-hydrogen/matrix-hydrogen/debian.conffiles
Normal file
|
@ -0,0 +1,2 @@
|
|||
/etc/matrix-hydrogen/config.json
|
||||
/etc/apache2/sites-available/matrix-hydrogen.site.conf
|
10
matrix-hydrogen/matrix-hydrogen/debian.control
Normal file
10
matrix-hydrogen/matrix-hydrogen/debian.control
Normal file
|
@ -0,0 +1,10 @@
|
|||
Package: matrix-hydrogen
|
||||
Version: __VERSION__
|
||||
Maintainer: __MAINTAINER__
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Description: Lightweight matrix client with legacy and mobile browser support
|
||||
A minimal Matrix chat client, focused on performance, offline
|
||||
functionality, and broad browser support. This is work in progress
|
||||
and not yet ready for primetime.
|
47
matrix-hydrogen/matrix-hydrogen/matrix-hydrogen.site.conf
Normal file
47
matrix-hydrogen/matrix-hydrogen/matrix-hydrogen.site.conf
Normal file
|
@ -0,0 +1,47 @@
|
|||
<VirtualHost *:80>
|
||||
|
||||
ServerName hydrogen.example.com
|
||||
|
||||
DocumentRoot /usr/share/matrix-hydrogen/html
|
||||
|
||||
<Directory /usr/share/matrix-hydrogen/html>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Directory /etc/matrix-hydrogen>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
|
||||
<Location /index.html>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /sw.js>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /config.json>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
<Location /assets/theme-element.json>
|
||||
Header unset ETag
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
</Location>
|
||||
|
||||
</VirtualHost>
|
66
matrix.to/build.sh
Executable file
66
matrix.to/build.sh
Executable file
|
@ -0,0 +1,66 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exo pipefail
|
||||
|
||||
. ../.skel/helpers.sh
|
||||
|
||||
PKGNAME=matrix.to
|
||||
API_URL=https://api.github.com/repos/matrix-org/matrix.to/releases
|
||||
JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="main" ) | "\(.tag_name) \(.published_at) \(.tarball_url)"'
|
||||
|
||||
apt update
|
||||
apt install --yes nodejs npm
|
||||
|
||||
ROOT=$(pwd)
|
||||
function fetch() {
|
||||
cd "${SRCDIR}"
|
||||
mkdir -p "${PKGNAME}-${VERSION}"
|
||||
wget "${URL}" --output-document "${PKGNAME}-${VERSION}.tar.gz"
|
||||
tar -x -C "${PKGNAME}-${VERSION}" --strip-components=1 -f "${PKGNAME}-${VERSION}.tar.gz"
|
||||
rm "${PKGNAME}-${VERSION}.tar.gz"
|
||||
}
|
||||
|
||||
function prepare() {
|
||||
cd "${ROOT}"
|
||||
npm install yarn
|
||||
mkdir -p \
|
||||
"${PKGDIR}/DEBIAN" \
|
||||
"${PKGDIR}/usr/share/matrix.to/html/" \
|
||||
"${PKGDIR}/usr/share/doc/matrix.to/"
|
||||
cd "${SRCDIR}/${PKGNAME}-${VERSION}"
|
||||
"${ROOT}/node_modules/.bin/yarn"
|
||||
cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control"
|
||||
rsync -a "${SRCDIR}/${PKGNAME}-${VERSION}/index.html" "${PKGDIR}/usr/share/matrix.to/html/index.html"
|
||||
rsync -a "${SRCDIR}/${PKGNAME}-${VERSION}/src/" "${PKGDIR}/usr/share/matrix.to/html/src/"
|
||||
rsync -a "${SRCDIR}/${PKGNAME}-${VERSION}/css/" "${PKGDIR}/usr/share/matrix.to/html/css/"
|
||||
rsync -a "${SRCDIR}/${PKGNAME}-${VERSION}/images/" "${PKGDIR}/usr/share/matrix.to/html/images/"
|
||||
github_changelog matrix-org/matrix.to
|
||||
chown root:www-data -R "${PKGDIR}/usr/share/matrix.to"
|
||||
find "${PKGDIR}/usr/share/matrix.to" -type d -exec chmod 0755 {} \;
|
||||
find "${PKGDIR}/usr/share/matrix.to" -type f -exec chmod 0644 {} \;
|
||||
find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \;
|
||||
}
|
||||
|
||||
function package() {
|
||||
cd "${BUILDDIR}"
|
||||
dpkg-deb --build "${PKGDIR}" "${BUILDDIR}"
|
||||
}
|
||||
|
||||
function build() {
|
||||
read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1)
|
||||
export VERSION
|
||||
export ISODATE
|
||||
export URL
|
||||
export BUILDDIR=${ROOT}/build
|
||||
export SRCDIR=${ROOT}/build/srcdir
|
||||
export PKGDIR=${ROOT}/build/pkgdir
|
||||
mkdir -p ${SRCDIR} ${PKGDIR}
|
||||
fetch
|
||||
prepare
|
||||
package
|
||||
}
|
||||
|
||||
|
||||
build
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue