From dae0f10b403b016d9ad979493032f6d1d04eb672 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 5 Jan 2021 23:04:52 +0100 Subject: [PATCH 1/5] Creating a PKGBUILD file --- Kyoo/Views/WebClient | 2 +- Kyoo/kyoo.sh | 4 ---- Makefile | 33 ------------------------------- install.sh | 11 ----------- install/PKGBUILD | 45 +++++++++++++++++++++++++++++++++++++++++++ install/kyoo.service | 13 +++++++++++++ install/kyoo.sysusers | 1 + transcoder | 2 +- 8 files changed, 61 insertions(+), 50 deletions(-) delete mode 100644 Kyoo/kyoo.sh delete mode 100644 Makefile delete mode 100755 install.sh create mode 100644 install/PKGBUILD create mode 100644 install/kyoo.service create mode 100644 install/kyoo.sysusers diff --git a/Kyoo/Views/WebClient b/Kyoo/Views/WebClient index 2201028d..45976671 160000 --- a/Kyoo/Views/WebClient +++ b/Kyoo/Views/WebClient @@ -1 +1 @@ -Subproject commit 2201028d9fd234dac81d1f0fcaac3793463cba46 +Subproject commit 459766717070ee420c933923727c1e9816b7ddd6 diff --git a/Kyoo/kyoo.sh b/Kyoo/kyoo.sh deleted file mode 100644 index b614af45..00000000 --- a/Kyoo/kyoo.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/bash - -cd /opt/kyoo || exit 1 -dotnet Kyoo.dll \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 2ee5a44b..00000000 --- a/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -NEEDED = dotnet \ - cmake \ - gcc \ - node \ - npm - -ECHO = @echo -e -COL = \033[1;36m -RED = \033[1;31m -NOCOL = \033[0m - - -all: dependencies - -dependencies: - @for pkg in $(NEEDED); do \ - $$pkg --version >> /dev/null 2>&1 || ($(ECHO) "$(RED)ERROR: $$pkg could not be found.$(NOCOL)"; exit 1); \ - done - -install_kyoo: all - $(ECHO) "$(COL)Building the app$(NOCOL)" - @if ! [[ $$(mkdir --parent /opt/kyoo) -eq 0 && -w /opt/kyoo ]]; then echo -e "$(RED)You don't have permissions to install Kyoo. Try to re run with sudo privileges.$(NOCOL)"; exit 1; fi - dotnet publish -c Release -o /opt/kyoo Kyoo/Kyoo.csproj - id -u kyoo &> /dev/null || useradd -rU kyoo - chown -R kyoo /opt/kyoo - chgrp -R kyoo /opt/kyoo - chmod +x /opt/kyoo/kyoo.sh - -install: install_kyoo - chown -R kyoo /opt/kyoo - chgrp -R kyoo /opt/kyoo - -.PHONY = all dependencies transcoder diff --git a/install.sh b/install.sh deleted file mode 100755 index df9a0936..00000000 --- a/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ $(/usr/bin/id -u) -ne 0 ]]; then - echo "The script must be run as root since it create an user for kyoo and install the app inside the /opt folder." - exit -fi - -git clone https://github.com/AnonymusRaccoon/Kyoo --recurse -cd Kyoo -git pull --recurse -make install diff --git a/install/PKGBUILD b/install/PKGBUILD new file mode 100644 index 00000000..82bd35ce --- /dev/null +++ b/install/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Zoe Roux +pkgname=kyoo +pkgver=1.0.0 +pkgrel=1 +epoch= +pkgdesc="A media browser." +arch=("i686" "x86_64" "armv6h") +url="https://github.com/AnonymusRaccoon/Kyoo" +license=("GPLv3") +groups=() +depends=("dotnet-runtime>=3" "aspnet-runtime>=3") +makedepends=("dotnet-sdk>=3" "cmake" "gcc" "make" "npm") +source=("kyoo-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo/archive/master.tar.gz" + "trancoder-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo.Transcoder/archive/master.tar.gz" + "webapp-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo.WebApp/archive/master.tar.gz" + "kyoo.service" + "kyoo.sysusers") +sha256sums=("SKIP" "SKIP" "SKIP" "SKIP" "SKIP") + + +prepare() { + # cd "Kyoo-$pkgver" + # ln -s transcoder "../Kyoo.Transcoder-$pkgver" + # ln -s Kyoo/Views/WebApp "../Kyoo.WebApp-$pkgver" + cd "Kyoo-master" + ln -s transcoder "../Kyoo.Transcoder-master" + ln -s Kyoo/Views/WebApp "../Kyoo.WebApp-master" + +} + +build() { + # cd "Kyoo-$pkgver" + cd "Kyoo-master" + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + dotnet build -c Release Kyoo +} + +package() { + # cd "Kyoo-$pkgver" + cd "Kyoo-master" + mkdir -p "$pkgdir/usr/lib/kyoo" + dotnet publish -c Release -o "$pkgdir/usr/lib/kyoo" Kyoo + install -Dm 644 kyoo.service -t "$pkgdir/usr/lib/systemd/system/" + install -Dm 644 kyoo.sysusers "$pkgdir/usr/lib/sysusers.d/kyoo.conf" +} diff --git a/install/kyoo.service b/install/kyoo.service new file mode 100644 index 00000000..a0ea7435 --- /dev/null +++ b/install/kyoo.service @@ -0,0 +1,13 @@ +[Unit] +Description=Kyoo Media Server +After=network.target + +[Service] +User=kyoo +WorkingDirectory=/usr/lib/kyoo +ExecStart=/usr/bin/dotnet kyoo.dll +Restart=on-abort +TimeoutSec=20 + +[Install] +WantedBy=multi-user.target diff --git a/install/kyoo.sysusers b/install/kyoo.sysusers new file mode 100644 index 00000000..35918eea --- /dev/null +++ b/install/kyoo.sysusers @@ -0,0 +1 @@ +u kyoo - "Kyoo Media Server" /var/lib/kyoo diff --git a/transcoder b/transcoder index 542241fe..e242eb5f 160000 --- a/transcoder +++ b/transcoder @@ -1 +1 @@ -Subproject commit 542241feb932113ea6481f4e49823872fca4f30a +Subproject commit e242eb5f19fcf2c4b10aed5bd96072dd498f9476 From 7d18c0dd842bf9c4d810d392f20264b17e4db8f2 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 5 Jan 2021 23:33:18 +0100 Subject: [PATCH 2/5] Fixing the submodules --- install/PKGBUILD | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/install/PKGBUILD b/install/PKGBUILD index 82bd35ce..b1ab9f9d 100644 --- a/install/PKGBUILD +++ b/install/PKGBUILD @@ -9,35 +9,28 @@ url="https://github.com/AnonymusRaccoon/Kyoo" license=("GPLv3") groups=() depends=("dotnet-runtime>=3" "aspnet-runtime>=3") -makedepends=("dotnet-sdk>=3" "cmake" "gcc" "make" "npm") -source=("kyoo-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo/archive/master.tar.gz" - "trancoder-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo.Transcoder/archive/master.tar.gz" - "webapp-$pkgver.tar.gz::https://github.com/AnonymusRaccoon/Kyoo.WebApp/archive/master.tar.gz" +makedepends=("dotnet-sdk>=3" "cmake" "gcc" "make" "npm" "git") +source=("git+https://github.com/AnonymusRaccoon/Kyoo" #tag=v${pkgver} "kyoo.service" "kyoo.sysusers") -sha256sums=("SKIP" "SKIP" "SKIP" "SKIP" "SKIP") +sha256sums=("SKIP" "SKIP" "SKIP") prepare() { - # cd "Kyoo-$pkgver" - # ln -s transcoder "../Kyoo.Transcoder-$pkgver" - # ln -s Kyoo/Views/WebApp "../Kyoo.WebApp-$pkgver" - cd "Kyoo-master" - ln -s transcoder "../Kyoo.Transcoder-master" - ln -s Kyoo/Views/WebApp "../Kyoo.WebApp-master" - + cd "Kyoo" + git submodule update --init --recursive } build() { # cd "Kyoo-$pkgver" - cd "Kyoo-master" + cd "Kyoo" export DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet build -c Release Kyoo } package() { # cd "Kyoo-$pkgver" - cd "Kyoo-master" + cd "Kyoo" mkdir -p "$pkgdir/usr/lib/kyoo" dotnet publish -c Release -o "$pkgdir/usr/lib/kyoo" Kyoo install -Dm 644 kyoo.service -t "$pkgdir/usr/lib/systemd/system/" From a8afe1c7cbc0c079964fecb62a9956b468849a62 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 6 Jan 2021 00:23:02 +0100 Subject: [PATCH 3/5] Finishing the AUR installer (only need to strip debug informations) --- Kyoo/Kyoo.csproj | 6 +++--- install/PKGBUILD | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Kyoo/Kyoo.csproj b/Kyoo/Kyoo.csproj index 32b3148f..af287686 100644 --- a/Kyoo/Kyoo.csproj +++ b/Kyoo/Kyoo.csproj @@ -45,7 +45,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -104,6 +104,6 @@ - + diff --git a/install/PKGBUILD b/install/PKGBUILD index b1ab9f9d..a45b2584 100644 --- a/install/PKGBUILD +++ b/install/PKGBUILD @@ -17,6 +17,7 @@ sha256sums=("SKIP" "SKIP" "SKIP") prepare() { + # cd "Kyoo-$pkgver" cd "Kyoo" git submodule update --init --recursive } @@ -25,14 +26,12 @@ build() { # cd "Kyoo-$pkgver" cd "Kyoo" export DOTNET_CLI_TELEMETRY_OPTOUT=1 - dotnet build -c Release Kyoo + dotnet publish -c Release -o "$srcdir/output" Kyoo } package() { - # cd "Kyoo-$pkgver" - cd "Kyoo" - mkdir -p "$pkgdir/usr/lib/kyoo" - dotnet publish -c Release -o "$pkgdir/usr/lib/kyoo" Kyoo + mkdir -p "$pkgdir/usr/lib" + cp -r --no-preserve ownership "$srcdir/output" "$pkgdir/usr/lib/kyoo" install -Dm 644 kyoo.service -t "$pkgdir/usr/lib/systemd/system/" install -Dm 644 kyoo.sysusers "$pkgdir/usr/lib/sysusers.d/kyoo.conf" } From 95a7efa71e66f360698cb844e45375342f7d0d61 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 11 Jan 2021 21:54:49 +0100 Subject: [PATCH 4/5] Adding postgres setup in the makepkg --- install/{ => aur}/PKGBUILD | 0 install/{ => aur}/kyoo.service | 0 install/{ => aur}/kyoo.sysusers | 0 install/aur/kyoo.tmpfiles | 1 + 4 files changed, 1 insertion(+) rename install/{ => aur}/PKGBUILD (100%) rename install/{ => aur}/kyoo.service (100%) rename install/{ => aur}/kyoo.sysusers (100%) create mode 100644 install/aur/kyoo.tmpfiles diff --git a/install/PKGBUILD b/install/aur/PKGBUILD similarity index 100% rename from install/PKGBUILD rename to install/aur/PKGBUILD diff --git a/install/kyoo.service b/install/aur/kyoo.service similarity index 100% rename from install/kyoo.service rename to install/aur/kyoo.service diff --git a/install/kyoo.sysusers b/install/aur/kyoo.sysusers similarity index 100% rename from install/kyoo.sysusers rename to install/aur/kyoo.sysusers diff --git a/install/aur/kyoo.tmpfiles b/install/aur/kyoo.tmpfiles new file mode 100644 index 00000000..c8772471 --- /dev/null +++ b/install/aur/kyoo.tmpfiles @@ -0,0 +1 @@ +d /var/lib/kyoo 0755 kyoo kyoo From 6c2410d9a94a9c7bd7720133b6756aa810ddae0f Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 11 Jan 2021 22:58:40 +0100 Subject: [PATCH 5/5] Allowing relative paths --- Kyoo/Controllers/AuthManager.cs | 14 ++++++-------- Kyoo/Kyoo.csproj | 2 +- Kyoo/Startup.cs | 5 +++-- install/aur/.gitignore | 5 +++++ install/aur/PKGBUILD | 2 ++ install/aur/kyoo.service | 3 +-- 6 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 install/aur/.gitignore diff --git a/Kyoo/Controllers/AuthManager.cs b/Kyoo/Controllers/AuthManager.cs index 287dad4f..3c2c382d 100644 --- a/Kyoo/Controllers/AuthManager.cs +++ b/Kyoo/Controllers/AuthManager.cs @@ -87,14 +87,12 @@ namespace Kyoo.Controllers Pkcs12Store store = new Pkcs12StoreBuilder().Build(); store.SetKeyEntry("Kyoo_key", new AsymmetricKeyEntry(subjectKeyPair.Private), new [] {new X509CertificateEntry(bouncyCert)}); - - using (MemoryStream pfxStream = new MemoryStream()) - { - store.Save(pfxStream, password.ToCharArray(), random); - certificate = new X509Certificate2(pfxStream.ToArray(), password, X509KeyStorageFlags.Exportable); - using FileStream fileStream = File.OpenWrite(file); - pfxStream.WriteTo(fileStream); - } + + using MemoryStream pfxStream = new MemoryStream(); + store.Save(pfxStream, password.ToCharArray(), random); + certificate = new X509Certificate2(pfxStream.ToArray(), password, X509KeyStorageFlags.Exportable); + using FileStream fileStream = File.OpenWrite(file); + pfxStream.WriteTo(fileStream); return certificate; } } diff --git a/Kyoo/Kyoo.csproj b/Kyoo/Kyoo.csproj index af287686..c73f5ad2 100644 --- a/Kyoo/Kyoo.csproj +++ b/Kyoo/Kyoo.csproj @@ -50,7 +50,7 @@ - + diff --git a/Kyoo/Startup.cs b/Kyoo/Startup.cs index fc738d26..990b714e 100644 --- a/Kyoo/Startup.cs +++ b/Kyoo/Startup.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Reflection; using IdentityServer4.Services; using Kyoo.Api; @@ -37,7 +38,7 @@ namespace Kyoo { services.AddSpaStaticFiles(configuration => { - configuration.RootPath = "wwwroot"; + configuration.RootPath = Path.Join(AppDomain.CurrentDomain.BaseDirectory, "wwwroot"); }); services.AddControllers() @@ -192,7 +193,7 @@ namespace Kyoo app.UseSpa(spa => { - spa.Options.SourcePath = "Views/WebClient"; + spa.Options.SourcePath = Path.Join(AppDomain.CurrentDomain.BaseDirectory, "Views/WebClient"); if (env.IsDevelopment()) { diff --git a/install/aur/.gitignore b/install/aur/.gitignore new file mode 100644 index 00000000..936548d0 --- /dev/null +++ b/install/aur/.gitignore @@ -0,0 +1,5 @@ +Kyoo/ +src/ +pkg/ +kyoo-1.0.0-1-x86_64.pkg.tar.zst + diff --git a/install/aur/PKGBUILD b/install/aur/PKGBUILD index a45b2584..082b5874 100644 --- a/install/aur/PKGBUILD +++ b/install/aur/PKGBUILD @@ -31,7 +31,9 @@ build() { package() { mkdir -p "$pkgdir/usr/lib" + mkdir -p "$pkgdir/var/lib/kyoo" cp -r --no-preserve ownership "$srcdir/output" "$pkgdir/usr/lib/kyoo" + mv "$pkgdir/usr/lib/kyoo/appsettings.json" "$pkgdir/var/lib/kyoo/" install -Dm 644 kyoo.service -t "$pkgdir/usr/lib/systemd/system/" install -Dm 644 kyoo.sysusers "$pkgdir/usr/lib/sysusers.d/kyoo.conf" } diff --git a/install/aur/kyoo.service b/install/aur/kyoo.service index a0ea7435..ceacfe65 100644 --- a/install/aur/kyoo.service +++ b/install/aur/kyoo.service @@ -4,8 +4,7 @@ After=network.target [Service] User=kyoo -WorkingDirectory=/usr/lib/kyoo -ExecStart=/usr/bin/dotnet kyoo.dll +ExecStart=/usr/lib/kyoo/Kyoo /var/lib/kyoo Restart=on-abort TimeoutSec=20