mirror of
https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer.git
synced 2026-03-01 11:21:12 +03:00
v2.2.0.7 (#322)
# Pull Request Template ## Branch - [x] I branched off beta (not master) to develop this feature/fix ## Description NixOS Shell added by @Confused-Engineer #321 Merged capability calls to prevent unexpected connection error #318 CustomWGT Path cleared after installation #320 --- ## Type of Change - [x] Bug fix (non-breaking change) - [x] New feature (non-breaking change) - [x] Documentation update --- ## Checklist - [x] My code follows the existing project structure and style - [x] I have tested my changes manually - [x] I have added necessary documentation (if applicable) - [x] I have verified that the installer still works with the underlying CLI
This commit is contained in:
@@ -84,7 +84,7 @@ namespace Jellyfin2Samsung.Helpers
|
||||
// ----- Application-scoped settings (readonly at runtime) -----
|
||||
public string ReleasesUrl { get; set; } = "https://api.github.com/repos/jeppevinkel/jellyfin-tizen-builds/releases";
|
||||
public string AuthorEndpoint { get; set; } = "https://dev.tizen.samsung.com/apis/v2/authors";
|
||||
public string AppVersion { get; set; } = "v2.2.0.6";
|
||||
public string AppVersion { get; set; } = "v2.2.0.7";
|
||||
public string TizenSdb { get; set; } = "https://api.github.com/repos/PatrickSt1991/tizen-sdb/releases";
|
||||
public string JellyfinAvRelease { get; set; } = "https://api.github.com/repos/PatrickSt1991/tizen-jellyfin-avplay/releases";
|
||||
public string JellyfinAvReleaseFork { get; set; } = "https://api.github.com/repos/asamahy/tizen-jellyfin-avplay/releases";
|
||||
|
||||
@@ -383,8 +383,7 @@ namespace Jellyfin2Samsung.Services
|
||||
if (string.IsNullOrEmpty(tvDuid))
|
||||
return null;
|
||||
|
||||
string tizenOs = await FetchTizenOsAsync(tvIpAddress);
|
||||
string sdkToolPath = await FetchSdkPathAsync(tvIpAddress);
|
||||
var (tizenOs, sdkToolPath) = await FetchCapabilitiesAsync(tvIpAddress);
|
||||
|
||||
if (string.IsNullOrEmpty(tizenOs))
|
||||
tizenOs = Constants.Defaults.TizenOsVersion;
|
||||
@@ -658,18 +657,17 @@ namespace Jellyfin2Samsung.Services
|
||||
return output.Output.Split('\n', StringSplitOptions.RemoveEmptyEntries).FirstOrDefault()?.Trim() ?? string.Empty;
|
||||
}
|
||||
|
||||
private async Task<string> FetchTizenOsAsync(string tvIpAddress)
|
||||
private async Task<(string tizenOs, string sdkToolPath)> FetchCapabilitiesAsync(string tvIpAddress)
|
||||
{
|
||||
var output = await _processHelper.RunCommandAsync(TizenSdbPath!, $"capability {tvIpAddress}");
|
||||
var match = RegexPatterns.TizenCapability.PlatformVersion.Match(output.Output);
|
||||
return match.Success ? match.Groups[1].Value.Trim() : string.Empty;
|
||||
}
|
||||
|
||||
private async Task<string> FetchSdkPathAsync(string tvIpAddress)
|
||||
{
|
||||
var output = await _processHelper.RunCommandAsync(TizenSdbPath!, $"capability {tvIpAddress}");
|
||||
var match = RegexPatterns.TizenCapability.SdkToolPath.Match(output.Output);
|
||||
return match.Success ? match.Groups[1].Value.Trim() : Constants.Defaults.SdkToolPath;
|
||||
var versionMatch = RegexPatterns.TizenCapability.PlatformVersion.Match(output.Output);
|
||||
string tizenOs = versionMatch.Success ? versionMatch.Groups[1].Value.Trim() : string.Empty;
|
||||
|
||||
var pathMatch = RegexPatterns.TizenCapability.SdkToolPath.Match(output.Output);
|
||||
string sdkToolPath = pathMatch.Success ? pathMatch.Groups[1].Value.Trim() : Constants.Defaults.SdkToolPath;
|
||||
|
||||
return (tizenOs, sdkToolPath);
|
||||
}
|
||||
|
||||
private async Task<string> GetTvDuidAsync(string tvIpAddress)
|
||||
|
||||
@@ -481,8 +481,7 @@ namespace Jellyfin2Samsung.ViewModels
|
||||
if (!AppSettings.Default.KeepWGTFile)
|
||||
_packageHelper.CleanupDownloadedPackage(customPath);
|
||||
|
||||
AppSettings.Default.CustomWgtPath = string.Empty;
|
||||
AppSettings.Default.Save();
|
||||
CustomWgtPath = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
|
||||
| Channel | Version | Notes |
|
||||
|------------|---------------------------------------------------------------------|------------------------------|
|
||||
| **Stable** | [v2.2.0.4](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.4) | Recommended for most users |
|
||||
| **Beta** | [v2.2.0.6-beta](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.6-beta) | Includes new features |
|
||||
| **Stable** | [v2.2.0.6](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.6) | Recommended for most users |
|
||||
| **Beta** | [v2.2.0.7-beta](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.7-beta) | Includes new features |
|
||||
|
||||
<!-- versions:end -->
|
||||
|
||||
@@ -56,6 +56,8 @@ That’s it. No manual certificate handling required in most cases.
|
||||
🎥 Full walkthrough:
|
||||
https://www.youtube.com/watch?v=_8mSV5pW-ic
|
||||
|
||||
**NixOS:** Clone the [`Samsung2Jellyfin` branch](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer.git) and run `nix-shell` — the shell environment will automatically build and launch the tool.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
81
shell.nix
Normal file
81
shell.nix
Normal file
@@ -0,0 +1,81 @@
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
let
|
||||
krb5WithUnversionedLib = pkgs.runCommand "krb5-unversioned-so" {} ''
|
||||
mkdir -p $out/lib
|
||||
ln -s ${pkgs.krb5}/lib/libgssapi_krb5.so.2 $out/lib/libgssapi_krb5.so
|
||||
'';
|
||||
|
||||
# FHS environment that provides /lib, /lib64, /usr/lib etc.
|
||||
# so dynamically linked binaries (TizenSdb, .NET native bits) just work.
|
||||
fhs = pkgs.buildFHSEnv {
|
||||
name = "jellyfin2samsung-fhs";
|
||||
|
||||
targetPkgs = p: with p; [
|
||||
# Build and Run
|
||||
dotnet-sdk_8
|
||||
patchelf
|
||||
file
|
||||
stdenv.cc.cc.lib
|
||||
openssl
|
||||
icu
|
||||
zlib
|
||||
libgcc.lib
|
||||
krb5
|
||||
krb5WithUnversionedLib
|
||||
|
||||
# Fonts and Rendering
|
||||
fontconfig
|
||||
freetype
|
||||
libGL
|
||||
|
||||
# X11 tools
|
||||
xorg.libX11
|
||||
xorg.libICE
|
||||
xorg.libSM
|
||||
xorg.libXext
|
||||
xorg.libXcursor
|
||||
xorg.libXi
|
||||
xorg.libXrandr
|
||||
xorg.libXrender
|
||||
xorg.libXinerama
|
||||
xorg.libXcomposite
|
||||
xorg.libXdamage
|
||||
xorg.libXfixes
|
||||
xorg.libXtst
|
||||
|
||||
# Some other packages that may be needed if not installed system wide
|
||||
nmap
|
||||
iproute2
|
||||
curl
|
||||
wget
|
||||
xdg-utils
|
||||
];
|
||||
|
||||
runScript = pkgs.writeShellScript "jellyfin2samsung-entry" ''
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export DOTNET_NOLOGO=1
|
||||
|
||||
dotnet publish Jellyfin2Samsung-CrossOS/Jellyfin2Samsung.csproj \
|
||||
-c Release \
|
||||
-r linux-x64 \
|
||||
--self-contained true \
|
||||
-p:PublishSingleFile=false \
|
||||
-p:PublishTrimmed=false
|
||||
|
||||
Jellyfin2Samsung-CrossOS/bin/Release/net8.0/linux-x64/publish/Jellyfin2Samsung
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
pkgs.mkShell {
|
||||
name = "jellyfin2samsung";
|
||||
|
||||
buildInputs = [
|
||||
fhs
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
jellyfin2samsung-fhs
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user