Compare commits
11
Commits
72bb2966ec
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee9ceb4256 | ||
|
|
1ca16dee3d | ||
|
|
0d7ca3ee4b | ||
|
|
e28d4adef0 | ||
|
|
419942a496 | ||
|
|
d97a1a9662 | ||
|
|
6ee1625e70 | ||
|
|
13aea1c654 | ||
|
|
06bd01807a | ||
|
|
496920fddb | ||
|
|
ed27a09ef9 |
@@ -1,4 +1,4 @@
|
||||
name: Build and Publish Debian Packages
|
||||
name: Build, Test and Publish Debian Packages
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -9,6 +9,10 @@ on:
|
||||
- 'sources/**'
|
||||
- 'buildpackages.sh'
|
||||
- '.gitea/workflows/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
@@ -35,9 +39,75 @@ jobs:
|
||||
name: debian-packages
|
||||
path: staging/*.deb
|
||||
|
||||
test-install:
|
||||
name: Test Package Installation
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download built artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: debian-packages
|
||||
path: staging
|
||||
|
||||
- name: Install system runtime dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3 python3-pip python3-venv ffmpeg mpv yt-dlp libmpv2
|
||||
|
||||
- name: Test install eendoe-repository
|
||||
run: |
|
||||
echo "=== Installing eendoe-repository ==="
|
||||
sudo apt-get install -y ./staging/eendoe-repository-*.deb
|
||||
dpkg -s eendoe-repository | grep -q "Status: install ok installed"
|
||||
test -f /etc/apt/sources.list.d/eendoe.list
|
||||
echo "eendoe-repository: OK"
|
||||
|
||||
- name: Test install eendoe-srs
|
||||
run: |
|
||||
echo "=== Installing eendoe-srs ==="
|
||||
sudo apt-get install -y ./staging/eendoe-srs-*.deb
|
||||
dpkg -s eendoe-srs | grep -q "Status: install ok installed"
|
||||
test -x /usr/share/srs/objs/srs
|
||||
echo "eendoe-srs: OK"
|
||||
|
||||
- name: Test install eendoe-hyperdeck
|
||||
run: |
|
||||
echo "=== Installing eendoe-hyperdeck ==="
|
||||
sudo apt-get install -y ./staging/eendoe-hyperdeck-*.deb
|
||||
dpkg -s eendoe-hyperdeck | grep -q "Status: install ok installed"
|
||||
test -d /usr/share/hyperdeck
|
||||
test -f /etc/hyperdeck/config.json
|
||||
test -f /usr/lib/systemd/system/hyperdeck.service
|
||||
- name: Test install bnhmeijer-ca-certificates
|
||||
run: |
|
||||
echo "=== Installing bnhmeijer-ca-certificates ==="
|
||||
sudo apt-get install -y ./staging/bnhmeijer-ca-certificates-*.deb
|
||||
dpkg -s bnhmeijer-ca-certificates | grep -q "Status: install ok installed"
|
||||
test -f /usr/local/share/ca-certificates/bnhmeijer/bnhmeijer-root-ca.crt
|
||||
echo "bnhmeijer-ca-certificates: OK"
|
||||
|
||||
- name: Test install jellyfin-kiosk
|
||||
run: |
|
||||
echo "=== Installing jellyfin-kiosk ==="
|
||||
sudo apt-get install -y ./staging/jellyfin-kiosk-*.deb
|
||||
dpkg -s jellyfin-kiosk | grep -q "Status: install ok installed"
|
||||
test -x /usr/bin/jellyfin-kiosk
|
||||
test -f /usr/lib/systemd/system/jellyfin-kiosk.service
|
||||
echo "jellyfin-kiosk: OK"
|
||||
|
||||
- name: Test package uninstall and cleanup
|
||||
run: |
|
||||
echo "=== Testing package removal ==="
|
||||
sudo apt-get remove -y eendoe-hyperdeck eendoe-srs eendoe-repository bnhmeijer-ca-certificates jellyfin-kiosk
|
||||
echo "Package removal: OK"
|
||||
|
||||
publish:
|
||||
name: Publish to eendoe repository
|
||||
needs: build
|
||||
needs: [build, test-install]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
||||
steps:
|
||||
|
||||
@@ -6,6 +6,7 @@ Debian / APT package repository bronbestanden en build tools voor Eendoe.
|
||||
|
||||
- **`sources/`**: Bronbestanden, control definities en packaging scripts voor de te bouwen packages:
|
||||
- `eendoe_repository`: Repository configuratie package (`/etc/apt/sources.list.d/`)
|
||||
- `bnhmeijer_ca_certificates`: Bnhmeijer Homelab Root CA package voor `/usr/local/share/ca-certificates/`
|
||||
- `eendoe_hyperdeck`: Hyperdeck Python service en systemd unit
|
||||
- `eendoe_srs`: SRS streaming server package en systemd unit
|
||||
- **`staging/`**: Bestaande en nieuw gebouwde `.deb` packages (exclusief Oracle database packages).
|
||||
|
||||
@@ -1,57 +1,34 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
Hash: SHA512
|
||||
|
||||
Origin: . stable
|
||||
Label: . stable
|
||||
Origin: Eendoe
|
||||
Label: Eendoe Repository
|
||||
Suite: stable
|
||||
Codename: stable
|
||||
Date: Wed, 27 Dec 2023 15:09:09 UTC
|
||||
Architectures: amd64
|
||||
Date: Tue, 20 Oct 2026 21:36:18 +0000
|
||||
Architectures: amd64 all
|
||||
Components: main
|
||||
Description: Generated by aptly
|
||||
Description: Eendoe Private APT Package Repository
|
||||
MD5Sum:
|
||||
cf5f351b126aaab2bf6ca97c13b378c5 3405449 Contents-amd64
|
||||
9f23a2449f3abc4c6fccecfd01fd86e3 152525 Contents-amd64.gz
|
||||
cf5f351b126aaab2bf6ca97c13b378c5 3405449 main/Contents-amd64
|
||||
9f23a2449f3abc4c6fccecfd01fd86e3 152525 main/Contents-amd64.gz
|
||||
f8778b24beb2988de929e2d59d1f4c58 2761 main/binary-amd64/Packages
|
||||
a9ae692d17b8e39db0555ab28ca1207d 1357 main/binary-amd64/Packages.bz2
|
||||
9a64097df252b063fd82b0127ffc57ae 1268 main/binary-amd64/Packages.gz
|
||||
1a863a05e2aa38a0db0bf785722d7fae 99 main/binary-amd64/Release
|
||||
8fc1ad8fefc657a8da319cc9b55c6eaf 4709 main/binary-amd64/Packages
|
||||
a6c07fa32055f89a45b322fc1804dd8e 1747 main/binary-amd64/Packages.gz
|
||||
cddb357d915f3e3cc9c59e221003730d 1893 main/binary-amd64/Packages.bz2
|
||||
SHA1:
|
||||
5fe9dd2d9aa59f1f24de2ca35728e05db5f74655 3405449 Contents-amd64
|
||||
3913d6a2268e0599ee051d4a267b70a4740c03fa 152525 Contents-amd64.gz
|
||||
5fe9dd2d9aa59f1f24de2ca35728e05db5f74655 3405449 main/Contents-amd64
|
||||
3913d6a2268e0599ee051d4a267b70a4740c03fa 152525 main/Contents-amd64.gz
|
||||
7236da7bf2d82d5b66a9305d78f7ec7876792c71 2761 main/binary-amd64/Packages
|
||||
a2ed1b4117915d2349051ada9ddc089113aa7803 1357 main/binary-amd64/Packages.bz2
|
||||
a628182db07c468ccf6236597693c3624a0eb9f8 1268 main/binary-amd64/Packages.gz
|
||||
279ffa18634b8d6c311595f6e6db2c1b2324b3ef 99 main/binary-amd64/Release
|
||||
e349ded34482fa7054812a7ff8ec1675a0d3987b 4709 main/binary-amd64/Packages
|
||||
c8c126f431f6813812de54c586da7d3c998008cb 1747 main/binary-amd64/Packages.gz
|
||||
f875d955166a78973c768b08bc595a2dcb7c41c7 1893 main/binary-amd64/Packages.bz2
|
||||
SHA256:
|
||||
0ec939a6371353e8ba850811ecba0bd6749ecf5ad4e6ffe4d3f4d48ed68dc8ee 3405449 Contents-amd64
|
||||
915bdf7b19675b1eb09b22f0aada96d0d1557fa9ed70a3e71db197c71376db02 152525 Contents-amd64.gz
|
||||
0ec939a6371353e8ba850811ecba0bd6749ecf5ad4e6ffe4d3f4d48ed68dc8ee 3405449 main/Contents-amd64
|
||||
915bdf7b19675b1eb09b22f0aada96d0d1557fa9ed70a3e71db197c71376db02 152525 main/Contents-amd64.gz
|
||||
f2197b98eadd153d364ff7948bca222763f70e18b76a963b504c1ebbbeb0f2b7 2761 main/binary-amd64/Packages
|
||||
7dc41b5f359d26cb8c1bcc4b512c94c5db1b402efb15e76d5d0d23625cdca933 1357 main/binary-amd64/Packages.bz2
|
||||
64f1a3fd43c28053b3c2301a123b4cf6dc5a1370a94463d861fab3856554366e 1268 main/binary-amd64/Packages.gz
|
||||
101f8d561bb536f600918ab98ffb742828149f0d90ed0b007b7b761e9ad4f8a2 99 main/binary-amd64/Release
|
||||
SHA512:
|
||||
ec29ceab750bab737fbbcc9f00b74c334d0e1ea2f62c0081ed9b695d76bac1296f7560b2ee80361c9f8ed2b538a6adad21d8d3b55200fa71096ac09cd6c7eebd 3405449 Contents-amd64
|
||||
69bbc10540b2bb90941dd2b6804544c91fd335e91f7674f50b2d32312257b997f34ec5d0147d69a16164e41e2bdbdc008a74c863b6de0c42c15eba062c540efa 152525 Contents-amd64.gz
|
||||
ec29ceab750bab737fbbcc9f00b74c334d0e1ea2f62c0081ed9b695d76bac1296f7560b2ee80361c9f8ed2b538a6adad21d8d3b55200fa71096ac09cd6c7eebd 3405449 main/Contents-amd64
|
||||
69bbc10540b2bb90941dd2b6804544c91fd335e91f7674f50b2d32312257b997f34ec5d0147d69a16164e41e2bdbdc008a74c863b6de0c42c15eba062c540efa 152525 main/Contents-amd64.gz
|
||||
19efa178a219564af52c8eff763c820d973a9f00f43a6fd5d1599179661b025a043da630874ba56814ca43608d68aa2e555bb5f303a3d84deb1412c4c8923ff6 2761 main/binary-amd64/Packages
|
||||
87099e5b28836adde21419be72bc16bbb6b02bd901f8372df2de3543d03f8de9ff58fd058ef7bc90a7bafc9b8d4c38fdd25c507b788b8054d79d448c97ef32d7 1357 main/binary-amd64/Packages.bz2
|
||||
dc706a07d45f70d0bf645c4d65e1b6b235a66dfa294f8a77825b1395cf40aa3a2ed097f7092e4635c99ff231fc9f44852d0b91ed09fbbd1cc8a78bb758afc2e7 1268 main/binary-amd64/Packages.gz
|
||||
fd75f52e3d8ab190e919a646d1ccc84e447b32e45691f0f9f65c3ac5ac806f024f7edef6e0c3c9e2d19a5f2621dcd3744f684d9b87a7cdc493b0eb55e7a0b393 99 main/binary-amd64/Release
|
||||
8bd948850a78b9f51ef065ce194760947b7bfb60e0124bdf8ff115e4eaa51d62 4709 main/binary-amd64/Packages
|
||||
4cff378eeaf24824f9e9027c8e4b2e42023c7fb8b83bb9e3517caffc82ee7c66 1747 main/binary-amd64/Packages.gz
|
||||
a38a8258163e341ddaf3708b7dab8d4437d9b65ef1267539d3c184cc2c367ade 1893 main/binary-amd64/Packages.bz2
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsBcBAEBCAAQBQJljD4VCRBWSZ+SBjn1cQAANDUIAKjuNqznCTWjUgwAdRkmCLyb
|
||||
HzmxTbtSfc4Eguri0QsUCQg7FA5nlupNketz2NNJ3TIkPJ7KVHAvcYdifnDlL0k2
|
||||
WQMRC4L94jxYSvRnMj4f+/pWt1UxHs5wCHGaojvf8s9ZzSTme52g3MLtikQCEpgv
|
||||
zqIgSH4bzAJu0fc5Je1qRpxiwATyf7B7vC276XSWkDIxDZBUSupLoZNua0NdZ7mh
|
||||
cTXyFIexrWOJk3xJjKfcTQZEB+RxVZk/vSADAnaVKo/YuzBoSx2A1HEwVDOPc4TD
|
||||
vwPIfM9LDoS6YrN4mKDvkjlUtgds/5rXcOVxEQAAaG/md5RvRTOAFbpBKs/pbZc=
|
||||
=2HIC
|
||||
iQEzBAEBCgAdFiEEUQdwLhqNQP44F6OuVkmfkgY59XEFAmrX3tIACgkQVkmfkgY5
|
||||
9XFjHwf/Qqa5PCPX919pWz/ML5entwd2vEZpr3HSqfum0R9hp7YE9p9100Z+p7pk
|
||||
BFG2vLSKzw9XsExUH5WqtDyDLyxZNqqrlwlhZWbaVfHhpFoUf2ToOAF6lA2vB40U
|
||||
EmG2dFgnrvC43oZIh46W1EGs0yKmeinJuZWh/OIQI1oNP6TCzEAkmzaLZOtlBQSy
|
||||
0wYVGYp/DwkzGOink7Izz3GP6CHeDUwzp3tazeOQAqgz5cjUmc4O6GNl78MdSeu8
|
||||
rD0DQNELvDK2TXsE8b17MdK/ZdHZNGuq27xZeVcedF5CQ+7fkv2I9vHsGulj8dF/
|
||||
KwmW68r0bBmvZsM0xsBbvpKPfAfHeg==
|
||||
=9xzR
|
||||
-----END PGP SIGNATURE-----
|
||||
@@ -1,44 +1,20 @@
|
||||
Origin: . stable
|
||||
Label: . stable
|
||||
Origin: Eendoe
|
||||
Label: Eendoe Repository
|
||||
Suite: stable
|
||||
Codename: stable
|
||||
Date: Wed, 27 Dec 2023 15:09:09 UTC
|
||||
Architectures: amd64
|
||||
Date: Tue, 20 Oct 2026 21:36:18 +0000
|
||||
Architectures: amd64 all
|
||||
Components: main
|
||||
Description: Generated by aptly
|
||||
Description: Eendoe Private APT Package Repository
|
||||
MD5Sum:
|
||||
cf5f351b126aaab2bf6ca97c13b378c5 3405449 Contents-amd64
|
||||
9f23a2449f3abc4c6fccecfd01fd86e3 152525 Contents-amd64.gz
|
||||
cf5f351b126aaab2bf6ca97c13b378c5 3405449 main/Contents-amd64
|
||||
9f23a2449f3abc4c6fccecfd01fd86e3 152525 main/Contents-amd64.gz
|
||||
f8778b24beb2988de929e2d59d1f4c58 2761 main/binary-amd64/Packages
|
||||
a9ae692d17b8e39db0555ab28ca1207d 1357 main/binary-amd64/Packages.bz2
|
||||
9a64097df252b063fd82b0127ffc57ae 1268 main/binary-amd64/Packages.gz
|
||||
1a863a05e2aa38a0db0bf785722d7fae 99 main/binary-amd64/Release
|
||||
8fc1ad8fefc657a8da319cc9b55c6eaf 4709 main/binary-amd64/Packages
|
||||
a6c07fa32055f89a45b322fc1804dd8e 1747 main/binary-amd64/Packages.gz
|
||||
cddb357d915f3e3cc9c59e221003730d 1893 main/binary-amd64/Packages.bz2
|
||||
SHA1:
|
||||
5fe9dd2d9aa59f1f24de2ca35728e05db5f74655 3405449 Contents-amd64
|
||||
3913d6a2268e0599ee051d4a267b70a4740c03fa 152525 Contents-amd64.gz
|
||||
5fe9dd2d9aa59f1f24de2ca35728e05db5f74655 3405449 main/Contents-amd64
|
||||
3913d6a2268e0599ee051d4a267b70a4740c03fa 152525 main/Contents-amd64.gz
|
||||
7236da7bf2d82d5b66a9305d78f7ec7876792c71 2761 main/binary-amd64/Packages
|
||||
a2ed1b4117915d2349051ada9ddc089113aa7803 1357 main/binary-amd64/Packages.bz2
|
||||
a628182db07c468ccf6236597693c3624a0eb9f8 1268 main/binary-amd64/Packages.gz
|
||||
279ffa18634b8d6c311595f6e6db2c1b2324b3ef 99 main/binary-amd64/Release
|
||||
e349ded34482fa7054812a7ff8ec1675a0d3987b 4709 main/binary-amd64/Packages
|
||||
c8c126f431f6813812de54c586da7d3c998008cb 1747 main/binary-amd64/Packages.gz
|
||||
f875d955166a78973c768b08bc595a2dcb7c41c7 1893 main/binary-amd64/Packages.bz2
|
||||
SHA256:
|
||||
0ec939a6371353e8ba850811ecba0bd6749ecf5ad4e6ffe4d3f4d48ed68dc8ee 3405449 Contents-amd64
|
||||
915bdf7b19675b1eb09b22f0aada96d0d1557fa9ed70a3e71db197c71376db02 152525 Contents-amd64.gz
|
||||
0ec939a6371353e8ba850811ecba0bd6749ecf5ad4e6ffe4d3f4d48ed68dc8ee 3405449 main/Contents-amd64
|
||||
915bdf7b19675b1eb09b22f0aada96d0d1557fa9ed70a3e71db197c71376db02 152525 main/Contents-amd64.gz
|
||||
f2197b98eadd153d364ff7948bca222763f70e18b76a963b504c1ebbbeb0f2b7 2761 main/binary-amd64/Packages
|
||||
7dc41b5f359d26cb8c1bcc4b512c94c5db1b402efb15e76d5d0d23625cdca933 1357 main/binary-amd64/Packages.bz2
|
||||
64f1a3fd43c28053b3c2301a123b4cf6dc5a1370a94463d861fab3856554366e 1268 main/binary-amd64/Packages.gz
|
||||
101f8d561bb536f600918ab98ffb742828149f0d90ed0b007b7b761e9ad4f8a2 99 main/binary-amd64/Release
|
||||
SHA512:
|
||||
ec29ceab750bab737fbbcc9f00b74c334d0e1ea2f62c0081ed9b695d76bac1296f7560b2ee80361c9f8ed2b538a6adad21d8d3b55200fa71096ac09cd6c7eebd 3405449 Contents-amd64
|
||||
69bbc10540b2bb90941dd2b6804544c91fd335e91f7674f50b2d32312257b997f34ec5d0147d69a16164e41e2bdbdc008a74c863b6de0c42c15eba062c540efa 152525 Contents-amd64.gz
|
||||
ec29ceab750bab737fbbcc9f00b74c334d0e1ea2f62c0081ed9b695d76bac1296f7560b2ee80361c9f8ed2b538a6adad21d8d3b55200fa71096ac09cd6c7eebd 3405449 main/Contents-amd64
|
||||
69bbc10540b2bb90941dd2b6804544c91fd335e91f7674f50b2d32312257b997f34ec5d0147d69a16164e41e2bdbdc008a74c863b6de0c42c15eba062c540efa 152525 main/Contents-amd64.gz
|
||||
19efa178a219564af52c8eff763c820d973a9f00f43a6fd5d1599179661b025a043da630874ba56814ca43608d68aa2e555bb5f303a3d84deb1412c4c8923ff6 2761 main/binary-amd64/Packages
|
||||
87099e5b28836adde21419be72bc16bbb6b02bd901f8372df2de3543d03f8de9ff58fd058ef7bc90a7bafc9b8d4c38fdd25c507b788b8054d79d448c97ef32d7 1357 main/binary-amd64/Packages.bz2
|
||||
dc706a07d45f70d0bf645c4d65e1b6b235a66dfa294f8a77825b1395cf40aa3a2ed097f7092e4635c99ff231fc9f44852d0b91ed09fbbd1cc8a78bb758afc2e7 1268 main/binary-amd64/Packages.gz
|
||||
fd75f52e3d8ab190e919a646d1ccc84e447b32e45691f0f9f65c3ac5ac806f024f7edef6e0c3c9e2d19a5f2621dcd3744f684d9b87a7cdc493b0eb55e7a0b393 99 main/binary-amd64/Release
|
||||
8bd948850a78b9f51ef065ce194760947b7bfb60e0124bdf8ff115e4eaa51d62 4709 main/binary-amd64/Packages
|
||||
4cff378eeaf24824f9e9027c8e4b2e42023c7fb8b83bb9e3517caffc82ee7c66 1747 main/binary-amd64/Packages.gz
|
||||
a38a8258163e341ddaf3708b7dab8d4437d9b65ef1267539d3c184cc2c367ade 1893 main/binary-amd64/Packages.bz2
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsBcBAABCAAQBQJljD4VCRBWSZ+SBjn1cQAA8egIADfaxAQ/X/sjUAVIXODYu2cu
|
||||
CWzVmXJ9PcNAQhTo+3rCgLKfs2o8Vw4lKGbNlAUAUZuLTooAUAmIqqnkgaiJsXLO
|
||||
wGWqbHRi/opVVvYRATpuQJfpZ6Du9z8bhmnm7klVlZhluxuFia1analsT3lOopI1
|
||||
GrXrN4TMXwUp3tOk/7hWaP/ME3v0MsMIqtrkDwseA8lQ7pMhA8TnmabDZTSmf94R
|
||||
KxYzw8TaI/Ddrs9HBsP9d0hUqOvyhicwqC5XF4Rtn9GgjN2H0+/vUPkNta7I8zOV
|
||||
UlnOj0r8owjVKg4opRqrGfk14MmyliQZ2KlFHhsgdxUoTB0QPuFKnQLflwx7Ztw=
|
||||
=tgYK
|
||||
iQEyBAABCgAdFiEEUQdwLhqNQP44F6OuVkmfkgY59XEFAmrX3tIACgkQVkmfkgY5
|
||||
9XGlSQf4useyfLCS4hNEM1x4soVjDwrs5LB8nQJTs14zHZ00YFinE66kaV6OdDJv
|
||||
MH+vv9JdMFK+tyaemkw2xKkDib0RyLx8rQYqGERI/TX6RBTIlZRa7TBwVw4YuleC
|
||||
jPeXtyFJGvho4rAN6gS1jG5POHhnZk9cZPeCsC9ydoAXBevQV6j1WR3n98qvx/vp
|
||||
ObAqVIGX7uP7Ffmgo5yXZUWOeLU7lmaiwjv8yMEjirqHpqhxq9qkYe41tXS2NJ18
|
||||
ZCrm0uutbDdOS4DiU2ndSNKDd9bQtNwU9X0+xviFzOteMtOMEhtzycytDBFCur3z
|
||||
Np6uCQaoxKOLfgomTeKhBG6PRbOo
|
||||
=UcVa
|
||||
-----END PGP SIGNATURE-----
|
||||
@@ -1,29 +1,91 @@
|
||||
Package: eendoe-repository
|
||||
Section: utils
|
||||
Maintainer: Bart Meijer
|
||||
Package: bnhmeijer-ca-certificates
|
||||
Version: 1.0.0
|
||||
Architecture: all
|
||||
Maintainer: Bart Meijer <info@bnhmeijer.nl>
|
||||
Depends: ca-certificates
|
||||
Filename: pool/main/b/bnhmeijer-ca-certificates/bnhmeijer-ca-certificates-1.0.0_all.deb
|
||||
Size: 2408
|
||||
MD5sum: 042a9554c51f2add03a5cd82cacb616f
|
||||
SHA1: 439678abe947246bfc25d8ad4bd336acada4bec1
|
||||
SHA256: 2a87b6bb51d751c47ebc83d5dfc81f1874c509e70859cf25a0003f0e2c5fb382
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Description: Bnhmeijer Homelab Root CA certificate
|
||||
Installs the Bnhmeijer Homelab Root CA certificate into the system trust store
|
||||
(/usr/local/share/ca-certificates/bnhmeijer/) and updates the CA trust list.
|
||||
Ensures all homelab internal services (*.lan and *.bnhmeijer.nl) signed by
|
||||
cert-service are automatically trusted by the OS and browsers.
|
||||
|
||||
Package: bnhmeijer-ca-certificates
|
||||
Version: 1.0.1
|
||||
Architecture: all
|
||||
Maintainer: Bart Meijer <info@bnhmeijer.nl>
|
||||
Depends: ca-certificates
|
||||
Recommends: libnss3-tools
|
||||
Filename: pool/main/b/bnhmeijer-ca-certificates/bnhmeijer-ca-certificates-1.0.1_all.deb
|
||||
Size: 3548
|
||||
MD5sum: e3933131eb461153e3b52ebb1605815b
|
||||
SHA1: 31bb175b972276bca977646af656a9f3b7a9083e
|
||||
SHA256: cfe6653252f5b55a26e645efb6718a72049c5e4185d77d915fc50fcf635acfc3
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Description: Bnhmeijer Homelab Root CA certificate
|
||||
Installs the Bnhmeijer Homelab Root CA certificate into the system trust store
|
||||
(/usr/local/share/ca-certificates/bnhmeijer/) and configures system policies
|
||||
for Firefox, Google Chrome, Chromium and Brave browsers.
|
||||
Ensures all homelab internal services (*.lan and *.bnhmeijer.nl) signed by
|
||||
cert-service are automatically trusted by the OS and browsers.
|
||||
|
||||
Package: eendoe-hyperdeck
|
||||
Version: 0.15.2
|
||||
Architecture: all
|
||||
Maintainer: nl.eendoe.bart
|
||||
Depends: python3, python3-pip, ffmpeg, eendoe-srs
|
||||
Filename: pool/main/e/eendoe-hyperdeck/eendoe-hyperdeck-0.15.2_all.deb
|
||||
Size: 11316
|
||||
MD5sum: 17a094c21bc92198231c1438cd834633
|
||||
SHA1: 45e06ad000760f88ee025d888b246bacc59da1a8
|
||||
SHA256: 7a5de2fa5289da9fe3227b5e39ff9b837d3c99c397008376d6b29714fcd3dd1e
|
||||
Section: utils
|
||||
Description: Eendoe hyperdeck client module
|
||||
|
||||
Package: eendoe-repository
|
||||
Version: 1.0
|
||||
Architecture: all
|
||||
Maintainer: Bart Meijer
|
||||
Filename: pool/main/e/eendoe-repository/eendoe-repository-1.0_all.deb
|
||||
Size: 7224
|
||||
MD5sum: 1dec21c569795d9a7c408b49bc462351
|
||||
SHA1: f81b15730a43fc3e8bb002046a09755c83b00794
|
||||
SHA256: 87fe58023583065366484a08af3789e276a0ab87516eae549e550dd6e74ca78f
|
||||
SHA512: 6c5ccca79318822ea39cfe04bbf8c11e9be06e8f53aafdef9a47b8bbcf3b2370b1ad1d15e23fb36378aa8cf3304fce8563f5e963299eda348636f0e1eead4809
|
||||
Section: utils
|
||||
Description: Eendoe package repository
|
||||
|
||||
Package: eendoe-srs
|
||||
Version: 0.0.1
|
||||
Architecture: all
|
||||
Maintainer: nl.eendoe.bart
|
||||
Depends: python3, python3-pip, ffmpeg
|
||||
Filename: pool/main/e/eendoe-srs/eendoe-srs-0.0.1_all.deb
|
||||
Size: 12412098
|
||||
MD5sum: 1c91d1fdfff4a8c2b1512c28d49e5ea9
|
||||
SHA1: a8ad5125183f618f0f652275670f4369f4fca07b
|
||||
SHA256: 38f8b0288471024e2cb4465210bb28fa6bf3442a4d7c938a598686595d67eebc
|
||||
Section: utils
|
||||
Description: Eendoe Hyperdeck SRS module
|
||||
|
||||
Package: oracle-database-preinstall-21c
|
||||
Priority: extra
|
||||
Section: alien
|
||||
Installed-Size: 101
|
||||
Maintainer: Bart Meijer <bart@vmserver>
|
||||
Architecture: amd64
|
||||
Version: 1.0-2
|
||||
Architecture: amd64
|
||||
Maintainer: Bart Meijer <bart@vmserver>
|
||||
Installed-Size: 101
|
||||
Filename: pool/main/o/oracle-database-preinstall-21c/oracle-database-preinstall-21c_1.0-2_amd64.deb
|
||||
Size: 19796
|
||||
MD5sum: 9a95793469fb85f535a26266b60738bf
|
||||
SHA1: 6869aad4114275c479e40865bba021c6ca02e6cb
|
||||
SHA256: a6ad8c2b5b204f631f88199ed799784ad6fd73bd65d899277b8e786ecf5bb578
|
||||
SHA512: 617ce833e5771b2d55f8d1c39c77adf1f775590565ff056610625f8c24450150d4a563a7a4cac25966b41c6becd90e73c38c379bc198096acd0b673eaa0b48e2
|
||||
Section: alien
|
||||
Priority: extra
|
||||
Description: Oracle Database Preinstallation RPM
|
||||
The Oracle Database Preinstallation RPM automatically installs any additional
|
||||
packages needed for installing Oracle Grid Infrastructure and Oracle Database
|
||||
@@ -33,33 +95,31 @@ Description: Oracle Database Preinstallation RPM
|
||||
(Converted from a rpm package by alien version 8.95.)
|
||||
|
||||
Package: oracle-database-xe-21c
|
||||
Section: utils
|
||||
Maintainer: Bart Meijer
|
||||
Architecture: all
|
||||
Version: 1.0.3
|
||||
Filename: pool/main/o/oracle-database-xe-21c/oracle-database-xe-21c-1.0.3_all.deb
|
||||
Size: 2188370848
|
||||
MD5sum: b89910db6b9ba0ab149db6ee78a711f8
|
||||
SHA1: 39e2f816b81ccc4dbbc4bc89d20361272dd59161
|
||||
SHA256: ec96ebd544d9492e3696fc609d18a539357c653b3fb4264d144fbd0a27b23eec
|
||||
SHA512: 1922b4fec8b7e6b03a298a2f8d4f400ec9aa9b2d7ad6fe4ceaa83d136c6d5910316f46c6025b352b05ce18ad8fc9e3b7286bf3948e000a1857b6fce2d2c19c03
|
||||
Description: Eendoe package repository
|
||||
|
||||
Package: oracle-database-xe-21c
|
||||
Priority: extra
|
||||
Section: alien
|
||||
Installed-Size: 6067591
|
||||
Maintainer: Bart Meijer <bart@vmserver>
|
||||
Architecture: amd64
|
||||
Version: 1.0-2
|
||||
Architecture: amd64
|
||||
Maintainer: Bart Meijer <bart@vmserver>
|
||||
Installed-Size: 6067591
|
||||
Filename: pool/main/o/oracle-database-xe-21c/oracle-database-xe-21c_1.0-2_amd64.deb
|
||||
Size: 2188841976
|
||||
MD5sum: 0b39df8f78e8c909557d1f028c9e7e5f
|
||||
SHA1: 882d1f5f63d842c6051a9aa0ec57a2d34cdb1a3f
|
||||
SHA256: 5b1401ac3e34ac5c0c636b8b41a6b3762f9b8297fb6f42c3bc2d1d05677ae01d
|
||||
SHA512: 9ff82c1b2d09582f1c456ba99ecb3f3be5079bd00a5101c7f927fb3752bc869fe4e982b51d170feca64e9ab6ab58c41566a30e57b1ff9fe066041bc0465e3d2a
|
||||
Section: alien
|
||||
Priority: extra
|
||||
Description: Oracle 21c Express Edition Database
|
||||
Oracle 21c Express Edition Database
|
||||
.
|
||||
(Converted from a rpm package by alien version 8.95.)
|
||||
|
||||
Package: oracle-database-xe-21c
|
||||
Version: 1.0.3
|
||||
Architecture: all
|
||||
Maintainer: Bart Meijer
|
||||
Filename: pool/main/o/oracle-database-xe-21c/oracle-database-xe-21c-1.0.3_all.deb
|
||||
Size: 2188370848
|
||||
MD5sum: b89910db6b9ba0ab149db6ee78a711f8
|
||||
SHA1: 39e2f816b81ccc4dbbc4bc89d20361272dd59161
|
||||
SHA256: ec96ebd544d9492e3696fc609d18a539357c653b3fb4264d144fbd0a27b23eec
|
||||
Section: utils
|
||||
Description: Eendoe package repository
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -645,6 +645,17 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pkg-card">
|
||||
<div>
|
||||
<div class="pkg-name">bnhmeijer-ca-certificates</div>
|
||||
<div class="pkg-desc">Bnhmeijer Homelab Root CA certificaat. Voegt de root CA automatisch toe aan de OS trust store zodat interne TLS-certificaten direct vertrouwd worden.</div>
|
||||
</div>
|
||||
<div class="pkg-footer">
|
||||
<span>Versie: 1.0.0</span>
|
||||
<span>Arch: all</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pkg-card">
|
||||
<div>
|
||||
<div class="pkg-name">eendoe-repository</div>
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+14
-3
@@ -26,13 +26,24 @@ REPO_USER="${1:-}"
|
||||
REPO_PASS="${2:-}"
|
||||
|
||||
if [ -z "$REPO_USER" ]; then
|
||||
read -r -p "Gebruikersnaam voor repository [eendoe]: " INPUT_USER
|
||||
if [ -t 0 ]; then
|
||||
read -r -p "Gebruikersnaam voor repository [eendoe]: " INPUT_USER
|
||||
elif [ -e /dev/tty ]; then
|
||||
read -r -p "Gebruikersnaam voor repository [eendoe]: " INPUT_USER </dev/tty
|
||||
else
|
||||
INPUT_USER=""
|
||||
fi
|
||||
REPO_USER="${INPUT_USER:-eendoe}"
|
||||
fi
|
||||
|
||||
if [ -z "$REPO_PASS" ]; then
|
||||
read -r -s -p "Wachtwoord voor repository ($REPO_USER): " REPO_PASS
|
||||
echo ""
|
||||
if [ -t 0 ]; then
|
||||
read -r -s -p "Wachtwoord voor repository ($REPO_USER): " REPO_PASS
|
||||
echo ""
|
||||
elif [ -e /dev/tty ]; then
|
||||
read -r -s -p "Wachtwoord voor repository ($REPO_USER): " REPO_PASS </dev/tty
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$REPO_USER" ] || [ -z "$REPO_PASS" ]; then
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$CONTROL_FILE" ]; then
|
||||
echo "Fout: Geen .control bestand gevonden in $(pwd)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE")
|
||||
DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE")
|
||||
|
||||
# Version resolution: CLI arg > ENV var > .control version > default 0.1.0
|
||||
if [ -n "$1" ]; then
|
||||
VERSION="$1"
|
||||
elif [ -n "$PACKAGE_VERSION" ]; then
|
||||
VERSION="$PACKAGE_VERSION"
|
||||
elif [ -n "$VERSION" ]; then
|
||||
VERSION="$VERSION"
|
||||
elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then
|
||||
VERSION="$DETECTED_VERSION"
|
||||
else
|
||||
VERSION="0.1.0"
|
||||
fi
|
||||
|
||||
mkdir -p "packaging/$PACKAGE_NAME/DEBIAN"
|
||||
sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
|
||||
ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control")
|
||||
ARCH="${ARCH:-all}"
|
||||
DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb"
|
||||
|
||||
echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME"
|
||||
|
||||
# Ensure correct Debian directory permissions
|
||||
find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} +
|
||||
find "packaging/$PACKAGE_NAME" -type f -exec chmod 644 {} +
|
||||
find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
|
||||
# Build debian binary package
|
||||
dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME"
|
||||
|
||||
# Cleanup temporary control file
|
||||
rm -f "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
echo "Succesvol gebouwd: $DEB_FILENAME"
|
||||
@@ -0,0 +1,14 @@
|
||||
Package: bnhmeijer-ca-certificates
|
||||
Version: 1.0.1
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Depends: ca-certificates
|
||||
Recommends: libnss3-tools
|
||||
Maintainer: Bart Meijer <info@bnhmeijer.nl>
|
||||
Description: Bnhmeijer Homelab Root CA certificate
|
||||
Installs the Bnhmeijer Homelab Root CA certificate into the system trust store
|
||||
(/usr/local/share/ca-certificates/bnhmeijer/) and configures system policies
|
||||
for Firefox, Google Chrome, Chromium and Brave browsers.
|
||||
Ensures all homelab internal services (*.lan and *.bnhmeijer.nl) signed by
|
||||
cert-service are automatically trusted by the OS and browsers.
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CA_CRT="/usr/local/share/ca-certificates/bnhmeijer/bnhmeijer-root-ca.crt"
|
||||
CA_NICKNAME="Bnhmeijer Homelab Root CA"
|
||||
|
||||
case "$1" in
|
||||
configure|abort-upgrade)
|
||||
# 1. Update OS system trust store
|
||||
if command -v update-ca-certificates >/dev/null 2>&1; then
|
||||
echo "Bijwerken van systeem trusted CA certificaten..."
|
||||
update-ca-certificates >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
# 2. Link Firefox distribution policies if application dir exists
|
||||
if [ -d /usr/lib/firefox ]; then
|
||||
mkdir -p /usr/lib/firefox/distribution
|
||||
if [ ! -e /usr/lib/firefox/distribution/policies.json ] || [ -L /usr/lib/firefox/distribution/policies.json ]; then
|
||||
ln -sf /etc/firefox/policies/policies.json /usr/lib/firefox/distribution/policies.json
|
||||
fi
|
||||
fi
|
||||
|
||||
# 3. Import into NSS databases if certutil is installed
|
||||
if command -v certutil >/dev/null 2>&1 && [ -f "$CA_CRT" ]; then
|
||||
for user_home in /root $(awk -F: '$3 >= 1000 && $3 < 60000 {print $6}' /etc/passwd 2>/dev/null); do
|
||||
user_name=$(stat -c '%U' "$user_home" 2>/dev/null || echo "root")
|
||||
for pki_dir in "$user_home/.pki/nssdb" "$user_home/.local/share/pki/nssdb"; do
|
||||
if [ -d "$pki_dir" ]; then
|
||||
certutil -d "sql:$pki_dir" -A -t "TC,," -n "$CA_NICKNAME" -i "$CA_CRT" >/dev/null 2>&1 || true
|
||||
chown -R "$user_name:" "$pki_dir" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Bnhmeijer Root CA is geconfigureerd voor OS, Firefox en Chromium/Chrome."
|
||||
echo "Herstart actieve browsers om de nieuwe certificaatvertrouwenslijst te laden."
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CA_NICKNAME="Bnhmeijer Homelab Root CA"
|
||||
|
||||
case "$1" in
|
||||
remove|purge|disappear)
|
||||
# 1. Update OS system trust store
|
||||
if command -v update-ca-certificates >/dev/null 2>&1; then
|
||||
echo "Verwijderen van certificaat uit systeem trust store..."
|
||||
update-ca-certificates --fresh >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
# 2. Clean up Firefox symlink if it points to our policy
|
||||
if [ -L /usr/lib/firefox/distribution/policies.json ]; then
|
||||
rm -f /usr/lib/firefox/distribution/policies.json 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 3. Remove from NSS databases if certutil is installed
|
||||
if command -v certutil >/dev/null 2>&1; then
|
||||
for user_home in /root $(awk -F: '$3 >= 1000 && $3 < 60000 {print $6}' /etc/passwd 2>/dev/null); do
|
||||
for pki_dir in "$user_home/.pki/nssdb" "$user_home/.local/share/pki/nssdb"; do
|
||||
if [ -d "$pki_dir" ]; then
|
||||
certutil -d "sql:$pki_dir" -D -n "$CA_NICKNAME" >/dev/null 2>&1 || true
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"CACertificates": [
|
||||
"MIIFZzCCA0+gAwIBAgIRALCvASaMQ9DZPQrGDIYTVkswDQYJKoZIhvcNAQELBQAwTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMB4XDTI2MTAyMDIwMjQ0OVoXDTM2MTAxNzIwMjQ0OVowTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuOKEFT0p9uzcxf5hfPyvjFDdFs2GxN3nUNJ+6fzdwR3Bf0yeFYLIHA8C/7hMApt5JGW/ndnYEA7hk0Oj2mbXUo7oj7zIKke5OALBO3SSvJSywwBOsaZ95sSTfkYvmCOLojH/EUmLA6+MmUtSTWMIm1doki2H8BEdXzeE4XtI/Fw8v1kRX0AYA3l4+AB8ejVSHIuhcWgbrwGKkRZFBEAJMXEpIKkYiYPxAZ4AUy4FJHVJwpdK9JLc6ORQS4kpBWJRGROwSePs2hfMn3tSg3xfyOK/c8bOyGTx9O1tjWcfN2cPbGhJ5Uo9j5uyZnAvdkR0mniELB6/G6jM4UzKfmVvQEMtjH76vowFzJmDiKWRJgmq1rEEdSVPDowateLEac5YkGIc9e+/1G3yKQH+eqcHbGvQORnQF03rB5jNWUHdF5WSbMHPszOndMHnUYMrHC025ApIKXcO8R1/ld0DsMRGY4sSwQfRQW5oVOOxQkPMk2LcC4v9Gz/ox9DuAhBXqQUpoXkZ/Zdd2zI2eKLnKuYqkiUvUOUJAUapyztQCCWpxeU9gxTBOrN1g5sSVy3p5lrSWNMQUNXNyOr3ylj3XVQFZxtRWM64tHb8M4UpHYvLG7Bw7m59BgwgEJP686ShnQg/CpE0XpILU+GH8FPL2k8Zl9RBH3jJjLrGEjexiv0KdDcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFH1zTZdKh8Q63s5JV5UwrfHB6rAYMA0GCSqGSIb3DQEBCwUAA4ICAQBQmMk725RF2qzN5Me+MuY/N0GdJGNauZ9KvzSybyCIrXfycmidvwU+g1j3nFwVs2FSH3cU6s06jH1Lr0soz74cEmU/Zn94G3Yp8nMh3Nz+qwmJenD1ffF9bTgk2b/jhSRRNU4nDm0HvdfUGLTxgmtAkI45dAmmtynGhKhaFqyxbosxz/PrCqzo6SSrKYx7bHj8Wk2wdB6hDY5UbzOvBVWq8JqZCJiSLNjZNgD64YFUtbBTK3kDCLJhesuf6Qg8UBUL34NqIHfTC5J6G2AlFOLBi6DKBc7rnTlHCCesUUGZqxQy58nCMSlRLKRg3tqQq1Hy839Vb/llmpQDujWDaQ7ptN1bn2ATzdruc+PW2pPv6Ffs3lS7o+69mk5/NDhkqNCM1EYK2hDEkO1jdiyUgmXi0i7ni7Qea3HSK2WYAtHPTIDHAGCzO2Lvfbeq70rfGIf2FJRItIqmS8OjOggGp++ED2d49hvw3Tfxnw108SqYFph2QN/drt8kvcXkMNGQXE7eIqyY5sgI3tJuYpy2r7BWsg0EFwYVphZ0o/SFZTleSTKSxGprNLXKcqxyEYCmZfZLiWRcvTFOkzCqnLQZGJMMdk3Nkq6IwAaZiyRtW6QBHLaIHX/vUX0C3FD+bSuRfZbZGcTmdHVLKAdCOfMp0w/oW5X4vURcjoGJNbd8z0UU0A=="
|
||||
]
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"CACertificates": [
|
||||
"MIIFZzCCA0+gAwIBAgIRALCvASaMQ9DZPQrGDIYTVkswDQYJKoZIhvcNAQELBQAwTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMB4XDTI2MTAyMDIwMjQ0OVoXDTM2MTAxNzIwMjQ0OVowTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuOKEFT0p9uzcxf5hfPyvjFDdFs2GxN3nUNJ+6fzdwR3Bf0yeFYLIHA8C/7hMApt5JGW/ndnYEA7hk0Oj2mbXUo7oj7zIKke5OALBO3SSvJSywwBOsaZ95sSTfkYvmCOLojH/EUmLA6+MmUtSTWMIm1doki2H8BEdXzeE4XtI/Fw8v1kRX0AYA3l4+AB8ejVSHIuhcWgbrwGKkRZFBEAJMXEpIKkYiYPxAZ4AUy4FJHVJwpdK9JLc6ORQS4kpBWJRGROwSePs2hfMn3tSg3xfyOK/c8bOyGTx9O1tjWcfN2cPbGhJ5Uo9j5uyZnAvdkR0mniELB6/G6jM4UzKfmVvQEMtjH76vowFzJmDiKWRJgmq1rEEdSVPDowateLEac5YkGIc9e+/1G3yKQH+eqcHbGvQORnQF03rB5jNWUHdF5WSbMHPszOndMHnUYMrHC025ApIKXcO8R1/ld0DsMRGY4sSwQfRQW5oVOOxQkPMk2LcC4v9Gz/ox9DuAhBXqQUpoXkZ/Zdd2zI2eKLnKuYqkiUvUOUJAUapyztQCCWpxeU9gxTBOrN1g5sSVy3p5lrSWNMQUNXNyOr3ylj3XVQFZxtRWM64tHb8M4UpHYvLG7Bw7m59BgwgEJP686ShnQg/CpE0XpILU+GH8FPL2k8Zl9RBH3jJjLrGEjexiv0KdDcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFH1zTZdKh8Q63s5JV5UwrfHB6rAYMA0GCSqGSIb3DQEBCwUAA4ICAQBQmMk725RF2qzN5Me+MuY/N0GdJGNauZ9KvzSybyCIrXfycmidvwU+g1j3nFwVs2FSH3cU6s06jH1Lr0soz74cEmU/Zn94G3Yp8nMh3Nz+qwmJenD1ffF9bTgk2b/jhSRRNU4nDm0HvdfUGLTxgmtAkI45dAmmtynGhKhaFqyxbosxz/PrCqzo6SSrKYx7bHj8Wk2wdB6hDY5UbzOvBVWq8JqZCJiSLNjZNgD64YFUtbBTK3kDCLJhesuf6Qg8UBUL34NqIHfTC5J6G2AlFOLBi6DKBc7rnTlHCCesUUGZqxQy58nCMSlRLKRg3tqQq1Hy839Vb/llmpQDujWDaQ7ptN1bn2ATzdruc+PW2pPv6Ffs3lS7o+69mk5/NDhkqNCM1EYK2hDEkO1jdiyUgmXi0i7ni7Qea3HSK2WYAtHPTIDHAGCzO2Lvfbeq70rfGIf2FJRItIqmS8OjOggGp++ED2d49hvw3Tfxnw108SqYFph2QN/drt8kvcXkMNGQXE7eIqyY5sgI3tJuYpy2r7BWsg0EFwYVphZ0o/SFZTleSTKSxGprNLXKcqxyEYCmZfZLiWRcvTFOkzCqnLQZGJMMdk3Nkq6IwAaZiyRtW6QBHLaIHX/vUX0C3FD+bSuRfZbZGcTmdHVLKAdCOfMp0w/oW5X4vURcjoGJNbd8z0UU0A=="
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"policies": {
|
||||
"Certificates": {
|
||||
"ImportEnterpriseRoots": true,
|
||||
"Install": [
|
||||
"/usr/local/share/ca-certificates/bnhmeijer/bnhmeijer-root-ca.crt"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"CACertificates": [
|
||||
"MIIFZzCCA0+gAwIBAgIRALCvASaMQ9DZPQrGDIYTVkswDQYJKoZIhvcNAQELBQAwTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMB4XDTI2MTAyMDIwMjQ0OVoXDTM2MTAxNzIwMjQ0OVowTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuOKEFT0p9uzcxf5hfPyvjFDdFs2GxN3nUNJ+6fzdwR3Bf0yeFYLIHA8C/7hMApt5JGW/ndnYEA7hk0Oj2mbXUo7oj7zIKke5OALBO3SSvJSywwBOsaZ95sSTfkYvmCOLojH/EUmLA6+MmUtSTWMIm1doki2H8BEdXzeE4XtI/Fw8v1kRX0AYA3l4+AB8ejVSHIuhcWgbrwGKkRZFBEAJMXEpIKkYiYPxAZ4AUy4FJHVJwpdK9JLc6ORQS4kpBWJRGROwSePs2hfMn3tSg3xfyOK/c8bOyGTx9O1tjWcfN2cPbGhJ5Uo9j5uyZnAvdkR0mniELB6/G6jM4UzKfmVvQEMtjH76vowFzJmDiKWRJgmq1rEEdSVPDowateLEac5YkGIc9e+/1G3yKQH+eqcHbGvQORnQF03rB5jNWUHdF5WSbMHPszOndMHnUYMrHC025ApIKXcO8R1/ld0DsMRGY4sSwQfRQW5oVOOxQkPMk2LcC4v9Gz/ox9DuAhBXqQUpoXkZ/Zdd2zI2eKLnKuYqkiUvUOUJAUapyztQCCWpxeU9gxTBOrN1g5sSVy3p5lrSWNMQUNXNyOr3ylj3XVQFZxtRWM64tHb8M4UpHYvLG7Bw7m59BgwgEJP686ShnQg/CpE0XpILU+GH8FPL2k8Zl9RBH3jJjLrGEjexiv0KdDcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFH1zTZdKh8Q63s5JV5UwrfHB6rAYMA0GCSqGSIb3DQEBCwUAA4ICAQBQmMk725RF2qzN5Me+MuY/N0GdJGNauZ9KvzSybyCIrXfycmidvwU+g1j3nFwVs2FSH3cU6s06jH1Lr0soz74cEmU/Zn94G3Yp8nMh3Nz+qwmJenD1ffF9bTgk2b/jhSRRNU4nDm0HvdfUGLTxgmtAkI45dAmmtynGhKhaFqyxbosxz/PrCqzo6SSrKYx7bHj8Wk2wdB6hDY5UbzOvBVWq8JqZCJiSLNjZNgD64YFUtbBTK3kDCLJhesuf6Qg8UBUL34NqIHfTC5J6G2AlFOLBi6DKBc7rnTlHCCesUUGZqxQy58nCMSlRLKRg3tqQq1Hy839Vb/llmpQDujWDaQ7ptN1bn2ATzdruc+PW2pPv6Ffs3lS7o+69mk5/NDhkqNCM1EYK2hDEkO1jdiyUgmXi0i7ni7Qea3HSK2WYAtHPTIDHAGCzO2Lvfbeq70rfGIf2FJRItIqmS8OjOggGp++ED2d49hvw3Tfxnw108SqYFph2QN/drt8kvcXkMNGQXE7eIqyY5sgI3tJuYpy2r7BWsg0EFwYVphZ0o/SFZTleSTKSxGprNLXKcqxyEYCmZfZLiWRcvTFOkzCqnLQZGJMMdk3Nkq6IwAaZiyRtW6QBHLaIHX/vUX0C3FD+bSuRfZbZGcTmdHVLKAdCOfMp0w/oW5X4vURcjoGJNbd8z0UU0A=="
|
||||
]
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFZzCCA0+gAwIBAgIRALCvASaMQ9DZPQrGDIYTVkswDQYJKoZIhvcNAQELBQAw
|
||||
TTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9vdCBDQTEaMBgGA1UECgwR
|
||||
Qm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMB4XDTI2MTAyMDIwMjQ0OVoX
|
||||
DTM2MTAxNzIwMjQ0OVowTTEiMCAGA1UEAwwZQm5obWVpamVyIEhvbWVsYWIgUm9v
|
||||
dCBDQTEaMBgGA1UECgwRQm5obWVpamVyIEhvbWVsYWIxCzAJBgNVBAYTAk5MMIIC
|
||||
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuOKEFT0p9uzcxf5hfPyvjFDd
|
||||
Fs2GxN3nUNJ+6fzdwR3Bf0yeFYLIHA8C/7hMApt5JGW/ndnYEA7hk0Oj2mbXUo7o
|
||||
j7zIKke5OALBO3SSvJSywwBOsaZ95sSTfkYvmCOLojH/EUmLA6+MmUtSTWMIm1do
|
||||
ki2H8BEdXzeE4XtI/Fw8v1kRX0AYA3l4+AB8ejVSHIuhcWgbrwGKkRZFBEAJMXEp
|
||||
IKkYiYPxAZ4AUy4FJHVJwpdK9JLc6ORQS4kpBWJRGROwSePs2hfMn3tSg3xfyOK/
|
||||
c8bOyGTx9O1tjWcfN2cPbGhJ5Uo9j5uyZnAvdkR0mniELB6/G6jM4UzKfmVvQEMt
|
||||
jH76vowFzJmDiKWRJgmq1rEEdSVPDowateLEac5YkGIc9e+/1G3yKQH+eqcHbGvQ
|
||||
ORnQF03rB5jNWUHdF5WSbMHPszOndMHnUYMrHC025ApIKXcO8R1/ld0DsMRGY4sS
|
||||
wQfRQW5oVOOxQkPMk2LcC4v9Gz/ox9DuAhBXpQUpoXkZ/Zdd2zI2eKLnKuYqkiUv
|
||||
UOUJAUapyztQCCWpxeU9gxTBOrN1g5sSVy3p5lrSWNMQUNXNyOr3ylj3XVQFZxtR
|
||||
WM64tHb8M4UpHYvLG7Bw7m59BgwgEJP686ShnQg/CpE0XpILU+GH8FPL2k8Zl9RB
|
||||
H3jJjLrGEjexiv0KdDcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
||||
Af8EBAMCAQYwHQYDVR0OBBYEFH1zTZdKh8Q63s5JV5UwrfHB6rAYMA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQBQmMk725RF2qzN5Me+MuY/N0GdJGNauZ9KvzSybyCIrXfycmid
|
||||
vwU+g1j3nFwVs2FSH3cU6s06jH1Lr0soz74cEmU/Zn94G3Yp8nMh3Nz+qwmJenD1
|
||||
ffF9bTgk2b/jhSRRNU4nDm0HvdfUGLTxgmtAkI45dAmmtynGhKhaFqyxbosxz/Pr
|
||||
Cqzo6SSrKYx7bHj8Wk2wdB6hDY5UbzOvBVWq8JqZCJiSLNjZNgD64YFUtbBTK3kD
|
||||
CLJhesuf6Qg8UBUL34NqIHfTC5J6G2AlFOLBi6DKBc7rnTlHCCesUUGZqxQy58nC
|
||||
MSlRLKRg3tqQq1Hy839Vb/llmpQDujWDaQ7ptN1bn2ATzdruc+PW2pPv6Ffs3lS7
|
||||
o+69mk5/NDhkqNCM1EYK2hDEkO1jdiyUgmXi0i7ni7Qea3HSK2WYAtHPTIDHAGCz
|
||||
O2Lvfbeq70rfGIf2FJRItIqmS8OjOggGp++ED2d49hvw3Tfxnw108SqYFph2QN/d
|
||||
rt8kvcXkMNGQXE7eIqyY5sgI3tJuYpy2r7BWsg0EFwYVphZ0o/SFZTleSTKSxGpr
|
||||
NLXKcqxyEYCmZfZLiWRcvTFOkzCqnLQZGJMMdk3Nkq6IwAaZiyRtW6QBHLaIHX/v
|
||||
UX0C3FD+bSuRfZbZGcTmdHVLKAdCOfMp0w/oW5X4vURcjoGJNbd8z0UU0A==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,31 +1,45 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$CONTROL_FILE" ]; then
|
||||
echo "Fout: Geen .control bestand gevonden in $(pwd)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE")
|
||||
DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE")
|
||||
|
||||
# Version resolution: CLI arg > ENV var > .control version > default 0.1.0
|
||||
if [ -n "$1" ]; then
|
||||
VERSION="$1"
|
||||
elif [ -n "$PACKAGE_VERSION" ]; then
|
||||
VERSION="$PACKAGE_VERSION"
|
||||
elif [ -n "$VERSION" ]; then
|
||||
VERSION="$VERSION"
|
||||
elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then
|
||||
VERSION="$DETECTED_VERSION"
|
||||
else
|
||||
VERSION="0.1.0"
|
||||
fi
|
||||
|
||||
mkdir -p "packaging/$PACKAGE_NAME/DEBIAN"
|
||||
sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control)
|
||||
ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control")
|
||||
ARCH="${ARCH:-all}"
|
||||
DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb"
|
||||
|
||||
echo "Using control file $CONTROL_FILE"
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' $CONTROL_FILE)
|
||||
VERSION=$(awk '/^Version: /{print $NF}' $CONTROL_FILE)
|
||||
echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME"
|
||||
|
||||
# Ensure correct Debian directory permissions
|
||||
find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} +
|
||||
find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
|
||||
# Build debian binary package
|
||||
dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME"
|
||||
|
||||
|
||||
# tag git repo
|
||||
# git tag -f release-${VERSION}
|
||||
|
||||
echo "Building package $PACKAGE_NAME ($VERSION): $PACKAGE_NAME-${VERSION}_all.deb"
|
||||
# VERSION
|
||||
sed "s/{VERSION}/${VERSION}/" $PACKAGE_NAME.control > packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
#create debian package
|
||||
dpkg --build packaging/$PACKAGE_NAME $PACKAGE_NAME-${VERSION}_all.deb
|
||||
|
||||
# dpkg-sig -k 14AF7F05 --sign builder icosi-${VERSION}_all.deb
|
||||
|
||||
echo "clean up"
|
||||
rm packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
# Cleanup temporary control file
|
||||
rm -f "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
echo "Succesvol gebouwd: $DEB_FILENAME"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Package: eendoe-hyperdeck
|
||||
Version: {VERSION}
|
||||
Version: 0.15.2
|
||||
Section: utils
|
||||
Maintainer: nl.eendoe.bart
|
||||
Architecture: all
|
||||
Depends: python3, python3-pip, ffmpeg, eendoe-srs
|
||||
Depends: python3, python3-pip, python3-venv, ffmpeg, eendoe-srs
|
||||
Description: Eendoe hyperdeck client module
|
||||
|
||||
@@ -1,41 +1,43 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
#set -e
|
||||
case "$1" in
|
||||
configure|abort-upgrade)
|
||||
id -u vid &>/dev/null || useradd --system -m -s /bin/bash vid
|
||||
|
||||
id -u vid &>/dev/null || useradd --system -m vid
|
||||
# Setup virtualenv for python dependencies to comply with PEP 668 on Debian 12 / Ubuntu 24.04+
|
||||
VENV_DIR="/usr/share/hyperdeck/venv"
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
python3 -m venv "$VENV_DIR" 2>/dev/null || python3 -m venv --system-site-packages "$VENV_DIR" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
runuser -l vid -c "pip3 install -r /usr/share/hyperdeck/requirements.txt"
|
||||
if [ -x "$VENV_DIR/bin/pip" ]; then
|
||||
"$VENV_DIR/bin/pip" install -q -r /usr/share/hyperdeck/requirements.txt || true
|
||||
chown -R vid:vid "$VENV_DIR" || true
|
||||
else
|
||||
pip3 install -r /usr/share/hyperdeck/requirements.txt --break-system-packages 2>/dev/null || \
|
||||
pip3 install -r /usr/share/hyperdeck/requirements.txt 2>/dev/null || true
|
||||
fi
|
||||
|
||||
FILE="/etc/hyperdeck/config.json"
|
||||
SOURCEFILE="/usr/share/hyperdeck/config.json.orig"
|
||||
if [ ! -f "$FILE" ]; then
|
||||
mkdir -p /etc/hyperdeck/
|
||||
echo "Copy default config"
|
||||
cp "$SOURCEFILE" "$FILE"
|
||||
chmod 744 "$FILE"
|
||||
fi
|
||||
|
||||
# Register and enable systemd service if running under systemd
|
||||
if systemctl is-system-running &>/dev/null || [ -d /run/systemd/system ]; then
|
||||
systemctl daemon-reload 2>/dev/null || true
|
||||
systemctl enable hyperdeck 2>/dev/null || true
|
||||
fi
|
||||
|
||||
FILE="/etc/hyperdeck/config.json"
|
||||
SOURCEFILE="/usr/share/hyperdeck/config.json.orig"
|
||||
if [ -f "$FILE" ]; then
|
||||
echo "$FILE exists."
|
||||
else
|
||||
mkdir -p /etc/hyperdeck/
|
||||
echo "Copy default config"
|
||||
cp "$SOURCEFILE" "$FILE"
|
||||
chmod 744 "$FILE"
|
||||
fi
|
||||
mkdir -p /var/log/hyperdeck/
|
||||
chown vid:vid "/var/log/hyperdeck/" 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
systemd-notify --booted
|
||||
if [ "$?" -eq 0 ]
|
||||
then
|
||||
echo "Systemd running, registering service"
|
||||
systemctl daemon-reload && systemctl enable hyperdeck
|
||||
else
|
||||
echo "Systemd not running, skipping"
|
||||
fi
|
||||
|
||||
mkdir -p /var/log/hyperdeck/
|
||||
chown vid:vid "/var/log/hyperdeck/"
|
||||
|
||||
echo "Installation done"
|
||||
echo "Installation done"
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
|
||||
@@ -1,31 +1,45 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$CONTROL_FILE" ]; then
|
||||
echo "Fout: Geen .control bestand gevonden in $(pwd)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE")
|
||||
DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE")
|
||||
|
||||
# Version resolution: CLI arg > ENV var > .control version > default 0.1.0
|
||||
if [ -n "$1" ]; then
|
||||
VERSION="$1"
|
||||
elif [ -n "$PACKAGE_VERSION" ]; then
|
||||
VERSION="$PACKAGE_VERSION"
|
||||
elif [ -n "$VERSION" ]; then
|
||||
VERSION="$VERSION"
|
||||
elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then
|
||||
VERSION="$DETECTED_VERSION"
|
||||
else
|
||||
VERSION="0.1.0"
|
||||
fi
|
||||
|
||||
mkdir -p "packaging/$PACKAGE_NAME/DEBIAN"
|
||||
sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control)
|
||||
ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control")
|
||||
ARCH="${ARCH:-all}"
|
||||
DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb"
|
||||
|
||||
echo "Using control file $CONTROL_FILE"
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' $CONTROL_FILE)
|
||||
VERSION=$(awk '/^Version: /{print $NF}' $CONTROL_FILE)
|
||||
echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME"
|
||||
|
||||
# Ensure correct Debian directory permissions
|
||||
find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} +
|
||||
find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
|
||||
# Build debian binary package
|
||||
dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME"
|
||||
|
||||
|
||||
# tag git repo
|
||||
# git tag -f release-${VERSION}
|
||||
|
||||
echo "Building package $PACKAGE_NAME ($VERSION): $PACKAGE_NAME-${VERSION}_all.deb"
|
||||
# VERSION
|
||||
sed "s/{VERSION}/${VERSION}/" $PACKAGE_NAME.control > packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
#create debian package
|
||||
dpkg --build packaging/$PACKAGE_NAME $PACKAGE_NAME-${VERSION}_all.deb
|
||||
|
||||
# dpkg-sig -k 14AF7F05 --sign builder icosi-${VERSION}_all.deb
|
||||
|
||||
echo "clean up"
|
||||
rm packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
# Cleanup temporary control file
|
||||
rm -f "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
echo "Succesvol gebouwd: $DEB_FILENAME"
|
||||
|
||||
@@ -1,31 +1,45 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$CONTROL_FILE" ]; then
|
||||
echo "Fout: Geen .control bestand gevonden in $(pwd)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE")
|
||||
DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE")
|
||||
|
||||
# Version resolution: CLI arg > ENV var > .control version > default 0.1.0
|
||||
if [ -n "$1" ]; then
|
||||
VERSION="$1"
|
||||
elif [ -n "$PACKAGE_VERSION" ]; then
|
||||
VERSION="$PACKAGE_VERSION"
|
||||
elif [ -n "$VERSION" ]; then
|
||||
VERSION="$VERSION"
|
||||
elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then
|
||||
VERSION="$DETECTED_VERSION"
|
||||
else
|
||||
VERSION="0.1.0"
|
||||
fi
|
||||
|
||||
mkdir -p "packaging/$PACKAGE_NAME/DEBIAN"
|
||||
sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
|
||||
CONTROL_FILE=$(ls -1 *.control)
|
||||
ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control")
|
||||
ARCH="${ARCH:-all}"
|
||||
DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb"
|
||||
|
||||
echo "Using control file $CONTROL_FILE"
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' $CONTROL_FILE)
|
||||
VERSION=$(awk '/^Version: /{print $NF}' $CONTROL_FILE)
|
||||
echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME"
|
||||
|
||||
# Ensure correct Debian directory permissions
|
||||
find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} +
|
||||
find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
|
||||
# Build debian binary package
|
||||
dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME"
|
||||
|
||||
|
||||
# tag git repo
|
||||
# git tag -f release-${VERSION}
|
||||
|
||||
echo "Building package $PACKAGE_NAME ($VERSION): $PACKAGE_NAME-${VERSION}_all.deb"
|
||||
# VERSION
|
||||
sed "s/{VERSION}/${VERSION}/" $PACKAGE_NAME.control > packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
#create debian package
|
||||
dpkg --build packaging/$PACKAGE_NAME $PACKAGE_NAME-${VERSION}_all.deb
|
||||
|
||||
# dpkg-sig -k 14AF7F05 --sign builder icosi-${VERSION}_all.deb
|
||||
|
||||
echo "clean up"
|
||||
rm packaging/$PACKAGE_NAME/DEBIAN/control
|
||||
|
||||
# Cleanup temporary control file
|
||||
rm -f "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
echo "Succesvol gebouwd: $DEB_FILENAME"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Package: eendoe-srs
|
||||
Version: {VERSION}
|
||||
Version: 0.0.1
|
||||
Section: utils
|
||||
Maintainer: nl.eendoe.bart
|
||||
Architecture: all
|
||||
Architecture: amd64
|
||||
Depends: python3, python3-pip, ffmpeg
|
||||
Description: Eendoe Hyperdeck SRS module
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
vid-35m3s3d
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
27563
|
||||
Executable
+79
@@ -0,0 +1,79 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PKG_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
CLUSTER_ROOT="$(cd "$PKG_ROOT/../../.." && pwd)"
|
||||
|
||||
CONTROL_FILE=$(ls -1 "$PKG_ROOT"/*.control 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$CONTROL_FILE" ]; then
|
||||
echo "Fout: Geen .control bestand gevonden in $PKG_ROOT" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE")
|
||||
DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE")
|
||||
|
||||
# Version resolution: CLI arg > ENV var > .control version > default 0.1.0
|
||||
if [ -n "$1" ]; then
|
||||
VERSION="$1"
|
||||
elif [ -n "$PACKAGE_VERSION" ]; then
|
||||
VERSION="$PACKAGE_VERSION"
|
||||
elif [ -n "$VERSION" ]; then
|
||||
VERSION="$VERSION"
|
||||
elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then
|
||||
VERSION="$DETECTED_VERSION"
|
||||
else
|
||||
VERSION="0.1.0"
|
||||
fi
|
||||
|
||||
cd "$PKG_ROOT"
|
||||
|
||||
TARGET_BIN="packaging/$PACKAGE_NAME/usr/bin/jellyfin-kiosk"
|
||||
mkdir -p "packaging/$PACKAGE_NAME/usr/bin"
|
||||
mkdir -p "packaging/$PACKAGE_NAME/etc/jellyfin-client"
|
||||
mkdir -p "packaging/$PACKAGE_NAME/usr/lib/systemd/system"
|
||||
|
||||
RELEASE_BIN="$CLUSTER_ROOT/jellyfin-client/jellyfin-kiosk-rs/target/release/jellyfin-kiosk-rs"
|
||||
if [ -f "$RELEASE_BIN" ]; then
|
||||
echo "Copying compiled binary from $RELEASE_BIN to $TARGET_BIN..."
|
||||
cp -f "$RELEASE_BIN" "$TARGET_BIN"
|
||||
strip -s "$TARGET_BIN" 2>/dev/null || true
|
||||
elif [ ! -f "$TARGET_BIN" ]; then
|
||||
echo "Error: Binary not found at $RELEASE_BIN or $TARGET_BIN" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Copy config example if available
|
||||
if [ -f "$CLUSTER_ROOT/jellyfin-client/config.yaml" ]; then
|
||||
cp -f "$CLUSTER_ROOT/jellyfin-client/config.yaml" "packaging/$PACKAGE_NAME/etc/jellyfin-client/config.example.yaml"
|
||||
elif [ -f "$CLUSTER_ROOT/jellyfin-client/config.example.yaml" ]; then
|
||||
cp -f "$CLUSTER_ROOT/jellyfin-client/config.example.yaml" "packaging/$PACKAGE_NAME/etc/jellyfin-client/config.example.yaml"
|
||||
fi
|
||||
|
||||
mkdir -p "packaging/$PACKAGE_NAME/DEBIAN"
|
||||
sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
|
||||
ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control")
|
||||
ARCH="${ARCH:-amd64}"
|
||||
DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb"
|
||||
|
||||
echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME"
|
||||
|
||||
# Ensure correct Debian directory permissions
|
||||
find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} +
|
||||
find "packaging/$PACKAGE_NAME" -type f -exec chmod 644 {} +
|
||||
find "packaging/$PACKAGE_NAME/usr/bin" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true
|
||||
chmod 644 "packaging/$PACKAGE_NAME/DEBIAN/control" 2>/dev/null || true
|
||||
if [ -f "packaging/$PACKAGE_NAME/DEBIAN/conffiles" ]; then
|
||||
chmod 644 "packaging/$PACKAGE_NAME/DEBIAN/conffiles"
|
||||
fi
|
||||
|
||||
# Build debian binary package
|
||||
dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME"
|
||||
|
||||
# Cleanup temporary control file
|
||||
rm -f "packaging/$PACKAGE_NAME/DEBIAN/control"
|
||||
echo "Succesvol gebouwd: $DEB_FILENAME"
|
||||
@@ -0,0 +1,10 @@
|
||||
Package: jellyfin-kiosk
|
||||
Version: 0.1.5
|
||||
Section: video
|
||||
Maintainer: Bart Meijer <bart@bnhmeijer.nl>
|
||||
Architecture: amd64
|
||||
Depends: libmpv2, mpv, yt-dlp
|
||||
Description: Native Jellyfin HTPC Kiosk client with Yatse and YouTube support
|
||||
High-performance Rust GUI client for Jellyfin, featuring hardware-accelerated
|
||||
MPV playback, Yatse Kodi JSON-RPC & EventServer emulation, YouTube sharing receiver,
|
||||
and TV-friendly interface.
|
||||
@@ -0,0 +1 @@
|
||||
/etc/jellyfin-client/config.example.yaml
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mkdir -p /etc/jellyfin-client
|
||||
if [ ! -f /etc/jellyfin-client/config.yaml ] && [ -f /etc/jellyfin-client/config.example.yaml ]; then
|
||||
cp /etc/jellyfin-client/config.example.yaml /etc/jellyfin-client/config.yaml
|
||||
chmod 644 /etc/jellyfin-client/config.yaml 2>/dev/null || true
|
||||
fi
|
||||
|
||||
if [ -d /run/systemd/system ]; then
|
||||
systemctl daemon-reload || true
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ -d /run/systemd/system ]; then
|
||||
systemctl daemon-reload || true
|
||||
fi
|
||||
|
||||
exit 0
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
# Jellyfin HTPC Client Configuration
|
||||
|
||||
jellyfin:
|
||||
# Base URL of your Jellyfin server (can be internal IP or external domain with HTTPS)
|
||||
server_url: "http://10.2.0.4:8096/jellyfin"
|
||||
# Login credentials
|
||||
|
||||
username: "bart"
|
||||
password: "8x5yPgAa"
|
||||
# Device identification
|
||||
client_name: "Jellyfin HTPC Client"
|
||||
device_name: "HTPC Living Room"
|
||||
device_id: "htpc-living-room-01"
|
||||
|
||||
player:
|
||||
# Path to mpv binary
|
||||
mpv_path: "mpv"
|
||||
# MPV IPC socket location
|
||||
ipc_socket: "/tmp/mpv-jellyfin.sock"
|
||||
# Video output & hardware decoding
|
||||
# Options for hwdec: auto, vaapi (Intel/AMD), nvdec (Nvidia), no
|
||||
hwdec: "auto"
|
||||
vo: "gpu"
|
||||
fullscreen: false
|
||||
# Audio device (use `mpv --audio-device=help` to list devices)
|
||||
audio_device: "auto"
|
||||
# Custom MPV arguments
|
||||
extra_args:
|
||||
- "--keep-open=yes"
|
||||
- "--force-window=immediate"
|
||||
- "--osd-font=sans-serif"
|
||||
- "--osd-font-size=28"
|
||||
|
||||
kodi_rpc:
|
||||
# Emulated Kodi JSON-RPC interface for Yatse and other Kodi remotes
|
||||
enabled: true
|
||||
http_port: 8080
|
||||
ws_port: 9090
|
||||
|
||||
web_api:
|
||||
# Direct REST API and web sharing page
|
||||
enabled: true
|
||||
host: "0.0.0.0"
|
||||
port: 8097
|
||||
|
||||
youtube:
|
||||
# Maximum resolution preference for YouTube streaming via yt-dlp
|
||||
max_height: 1080
|
||||
# Automatically extract metadata (title, uploader) using yt-dlp before playback
|
||||
fetch_metadata: true
|
||||
# Google OAuth 2.0 Client ID (Google Cloud Console -> APIs -> Credentials, type: TVs and Limited Input / Desktop)
|
||||
client_id: "612788493042-0070gm71evodaajv02tcl9kjtk9s76au.apps.googleusercontent.com"
|
||||
client_secret: "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"
|
||||
# Pad voor het opslaan van de ingelogde YouTube sessie
|
||||
token_path: "youtube_token.json"
|
||||
|
||||
mqtt:
|
||||
# Enable MQTT client and Home Assistant auto-discovery
|
||||
enabled: true
|
||||
# MQTT broker host/IP
|
||||
host: "10.2.0.4"
|
||||
port: 1883
|
||||
username: ""
|
||||
password: ""
|
||||
# Home Assistant MQTT discovery prefix (default: homeassistant)
|
||||
discovery_prefix: "homeassistant"
|
||||
# Base topic prefix for state updates and commands
|
||||
topic_prefix: "jellyfin-kiosk"
|
||||
Binary file not shown.
+18
@@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Jellyfin HTPC Kiosk & YouTube Receiver
|
||||
After=network-online.target sound.target graphical-session.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=bart
|
||||
Environment=DISPLAY=:0
|
||||
Environment=WAYLAND_DISPLAY=wayland-0
|
||||
ExecStart=/usr/bin/jellyfin-kiosk
|
||||
WorkingDirectory=/home/bart
|
||||
Restart=always
|
||||
RestartSec=3s
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# Update and sign Eendoe APT Repository
|
||||
# ==============================================================================
|
||||
set -euo pipefail
|
||||
|
||||
REPO_DIR="/sites/repository/binaries"
|
||||
DISTS_DIR="${REPO_DIR}/dists/stable"
|
||||
MAIN_DIR="${DISTS_DIR}/main/binary-amd64"
|
||||
KEY_ID="56499F920639F571"
|
||||
|
||||
echo "=== Updating Eendoe APT Repository ==="
|
||||
|
||||
cd "$REPO_DIR"
|
||||
mkdir -p "$MAIN_DIR"
|
||||
|
||||
echo "Scanning packages in pool/main..."
|
||||
dpkg-scanpackages --multiversion pool/main /dev/null > "$MAIN_DIR/Packages"
|
||||
|
||||
echo "Compressing Packages..."
|
||||
gzip -9c "$MAIN_DIR/Packages" > "$MAIN_DIR/Packages.gz"
|
||||
bzip2 -9c "$MAIN_DIR/Packages" > "$MAIN_DIR/Packages.bz2"
|
||||
|
||||
echo "Generating Release file..."
|
||||
cd "$DISTS_DIR"
|
||||
|
||||
cat << EOF > Release
|
||||
Origin: Eendoe
|
||||
Label: Eendoe Repository
|
||||
Suite: stable
|
||||
Codename: stable
|
||||
Date: $(date -Ru)
|
||||
Architectures: amd64 all
|
||||
Components: main
|
||||
Description: Eendoe Private APT Package Repository
|
||||
EOF
|
||||
|
||||
add_checksums() {
|
||||
local algo="$1"
|
||||
local cmd="$2"
|
||||
echo "${algo}:" >> Release
|
||||
for file in main/binary-amd64/Packages main/binary-amd64/Packages.gz main/binary-amd64/Packages.bz2; do
|
||||
if [ -f "$file" ]; then
|
||||
local size
|
||||
size=$(stat -c%s "$file")
|
||||
local hash
|
||||
hash=$($cmd "$file" | awk '{print $1}')
|
||||
printf " %s %16d %s\n" "$hash" "$size" "$file" >> Release
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_checksums "MD5Sum" "md5sum"
|
||||
add_checksums "SHA1" "sha1sum"
|
||||
add_checksums "SHA256" "sha256sum"
|
||||
|
||||
echo "Signing Release with GPG key $KEY_ID..."
|
||||
rm -f Release.gpg InRelease
|
||||
gpg --batch --yes --default-key "$KEY_ID" --armor --detach-sign -o Release.gpg Release
|
||||
gpg --batch --yes --default-key "$KEY_ID" --clearsign -o InRelease Release
|
||||
|
||||
echo "=== Repository update & signing complete ==="
|
||||
Reference in New Issue
Block a user