aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Rabert <6550543+nvllsvm@users.noreply.github.com>2019-01-24 23:01:20 -0500
committerGitHub <noreply@github.com>2019-01-24 23:01:20 -0500
commit15806de2aad07a4b4c799a0ee56d770dd5248543 (patch)
treeb238012ba501f16b09b47f7ad00c299f2cd5d12a
parent2c9e056d52840dd98da27a6527fab970150c139f (diff)
parentcab7fa26714c10f26df179ac768427d0a561095a (diff)
Merge pull request #681 from LogicalPhallacy/buildscriptfix
Fix Windows build script errors + pin ffmpeg to 4.0
-rw-r--r--CONTRIBUTORS.md1
-rw-r--r--deployment/win-generic/build-jellyfin.ps112
-rwxr-xr-xdeployment/win-x64/package.sh39
-rwxr-xr-xdeployment/win-x86/package.sh40
4 files changed, 83 insertions, 9 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 8ae6c81a8..d918b7b95 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -15,6 +15,7 @@
- [cvium](https://github.com/cvium)
- [wtayl0r](https://github.com/wtayl0r)
- [TtheCreator](https://github.com/Tthecreator)
+ - [LogicalPhallacy](https://github.com/LogicalPhallacy/)
# Emby Contributors
diff --git a/deployment/win-generic/build-jellyfin.ps1 b/deployment/win-generic/build-jellyfin.ps1
index 7807a46c3..1121c3398 100644
--- a/deployment/win-generic/build-jellyfin.ps1
+++ b/deployment/win-generic/build-jellyfin.ps1
@@ -40,21 +40,21 @@ function Install-FFMPEG {
Write-Warning "FFMPEG will not be installed"
}elseif($Architecture -eq 'x64'){
Write-Verbose "Downloading 64 bit FFMPEG"
- Invoke-WebRequest -Uri https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-4.1-win64-static.zip -UseBasicParsing -OutFile "$tempdir/fmmpeg.zip" | Write-Verbose
+ Invoke-WebRequest -Uri https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-4.0.2-win64-static.zip -UseBasicParsing -OutFile "$tempdir/fmmpeg.zip" | Write-Verbose
}else{
Write-Verbose "Downloading 32 bit FFMPEG"
- Invoke-WebRequest -Uri https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-4.1-win32-static.zip -UseBasicParsing -OutFile "$tempdir/fmmpeg.zip" | Write-Verbose
+ Invoke-WebRequest -Uri https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-4.0.2-win32-static.zip -UseBasicParsing -OutFile "$tempdir/fmmpeg.zip" | Write-Verbose
}
Expand-Archive "$tempdir/fmmpeg.zip" -DestinationPath "$tempdir/ffmpeg/" | Write-Verbose
if($Architecture -eq 'x64'){
Write-Verbose "Copying Binaries to Jellyfin location"
- Get-ChildItem "$tempdir/ffmpeg/ffmpeg-4.1-win64-static/bin" | ForEach-Object {
+ Get-ChildItem "$tempdir/ffmpeg/ffmpeg-4.0.2-win64-static/bin" | ForEach-Object {
Copy-Item $_.FullName -Destination $installLocation | Write-Verbose
}
}else{
Write-Verbose "Copying Binaries to Jellyfin location"
- Get-ChildItem "$tempdir/ffmpeg/ffmpeg-4.1-win32-static/bin" | ForEach-Object {
+ Get-ChildItem "$tempdir/ffmpeg/ffmpeg-4.0.2-win32-static/bin" | ForEach-Object {
Copy-Item $_.FullName -Destination $installLocation | Write-Verbose
}
}
@@ -102,8 +102,8 @@ if($InstallNSSM.IsPresent -or ($InstallNSSM -eq $true)){
Write-Verbose "Starting NSSM Install"
Install-NSSM $InstallLocation $Architecture
}
-Copy-Item .\install-jellyfin.ps1 $InstallLocation\install-jellyfin.ps1
-Copy-Item .\install.bat $InstallLocation\install.bat
+Copy-Item .\deployment\win-generic\install-jellyfin.ps1 $InstallLocation\install-jellyfin.ps1
+Copy-Item .\deployment\win-generic\install.bat $InstallLocation\install.bat
if($GenerateZip.IsPresent -or ($GenerateZip -eq $true)){
Compress-Archive -Path $InstallLocation -DestinationPath "$InstallLocation/jellyfin.zip" -Force
}
diff --git a/deployment/win-x64/package.sh b/deployment/win-x64/package.sh
index e8410e8c2..befddb2e7 100755
--- a/deployment/win-x64/package.sh
+++ b/deployment/win-x64/package.sh
@@ -1,9 +1,46 @@
#!/usr/bin/env bash
+package_win64() (
+ local NSSM_VERSION="nssm-2.24-101-g897c7ad"
+ local NSSM_URL="https://nssm.cc/ci/${NSSM_VERSION}.zip"
+ local FFMPEG_VERSION="ffmpeg-4.0.2-win64-static"
+ local FFMPEG_URL="https://ffmpeg.zeranoe.com/builds/win64/static/${FFMPEG_VERSION}.zip"
+ local ROOT=${1-$DEFAULT_ROOT}
+ local OUTPUT_DIR=${2-$DEFAULT_OUTPUT_DIR}
+ local PKG_DIR=${3-$DEFAULT_PKG_DIR}
+ local ARCHIVE_CMD="zip -r"
+ # Package portable build result
+ if [ -d ${OUTPUT_DIR} ]; then
+ echo -e "${CYAN}Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}'.${NC}"
+ local TEMP_DIR="$(mktemp -d)"
+ wget ${NSSM_URL} -O ${TEMP_DIR}/nssm.zip
+ wget ${FFMPEG_URL} -O ${TEMP_DIR}/ffmpeg.zip
+ unzip ${TEMP_DIR}/nssm.zip -d $TEMP_DIR
+ cp ${TEMP_DIR}/${NSSM_VERSION}}/win64/nssm.exe ${OUTPUT_DIR}/nssm.exe
+ unzip ${TEMP_DIR}/ffmpeg.zip -d $TEMP_DIR
+ cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffmpeg.exe ${OUTPUT_DIR}/ffmpeg.exe
+ cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffprobe.exe ${OUTPUT_DIR}/ffprobe.exe
+ rm -r ${TEMP_DIR}
+ cp ${ROOT}/deployment/win-generic/install-jellyfin.ps1 ${OUTPUT_DIR}/install-jellyfin.ps1
+ cp ${ROOT}/deployment/win-generic/install.bat ${OUTPUT_DIR}/install.bat
+ mkdir -p ${PKG_DIR}
+ pushd ${OUTPUT_DIR}
+ ${ARCHIVE_CMD} ${ROOT}/${PKG_DIR}/`basename "${OUTPUT_DIR}"`.zip .
+ popd
+ local EXIT_CODE=$?
+ if [ $EXIT_CODE -eq 0 ]; then
+ echo -e "${GREEN}[DONE] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' complete.${NC}"
+ else
+ echo -e "${RED}[FAIL] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' FAILED.${NC}"
+ fi
+ else
+ echo -e "${RED}[FAIL] Build artifacts do not exist for ${OUTPUT_DIR}. Run build.sh first.${NC}"
+ fi
+)
source ../common.build.sh
VERSION=`get_version ../..`
-package_portable ../.. `pwd`/dist/jellyfin_${VERSION}
+package_win64 ../.. `pwd`/dist/jellyfin_${VERSION}
#TODO setup and maybe change above code to produce the Windows native zip format.
diff --git a/deployment/win-x86/package.sh b/deployment/win-x86/package.sh
index e8410e8c2..3cc4eb623 100755
--- a/deployment/win-x86/package.sh
+++ b/deployment/win-x86/package.sh
@@ -1,9 +1,45 @@
#!/usr/bin/env bash
-
+package_win32() (
+ local NSSM_VERSION="nssm-2.24-101-g897c7ad"
+ local NSSM_URL="https://nssm.cc/ci/${NSSM_VERSION}.zip"
+ local FFMPEG_VERSION="ffmpeg-4.0.2-win32-static"
+ local FFMPEG_URL="https://ffmpeg.zeranoe.com/builds/win32/static/${FFMPEG_VERSION}.zip"
+ local ROOT=${1-$DEFAULT_ROOT}
+ local OUTPUT_DIR=${2-$DEFAULT_OUTPUT_DIR}
+ local PKG_DIR=${3-$DEFAULT_PKG_DIR}
+ local ARCHIVE_CMD="zip -r"
+ # Package portable build result
+ if [ -d ${OUTPUT_DIR} ]; then
+ echo -e "${CYAN}Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}'.${NC}"
+ local TEMP_DIR="$(mktemp -d)"
+ wget ${NSSM_URL} -O ${TEMP_DIR}/nssm.zip
+ wget ${FFMPEG_URL} -O ${TEMP_DIR}/ffmpeg.zip
+ unzip ${TEMP_DIR}/nssm.zip -d $TEMP_DIR
+ cp ${TEMP_DIR}/${NSSM_VERSION}/win32/nssm.exe ${OUTPUT_DIR}/nssm.exe
+ unzip ${TEMP_DIR}/ffmpeg.zip -d $TEMP_DIR
+ cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffmpeg.exe ${OUTPUT_DIR}/ffmpeg.exe
+ cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffprobe.exe ${OUTPUT_DIR}/ffprobe.exe
+ rm -r ${TEMP_DIR}
+ cp ${ROOT}/deployment/win-generic/install-jellyfin.ps1 ${OUTPUT_DIR}/install-jellyfin.ps1
+ cp ${ROOT}/deployment/win-generic/install.bat ${OUTPUT_DIR}/install.bat
+ mkdir -p ${PKG_DIR}
+ pushd ${OUTPUT_DIR}
+ ${ARCHIVE_CMD} ${ROOT}/${PKG_DIR}/`basename "${OUTPUT_DIR}"`.zip .
+ popd
+ local EXIT_CODE=$?
+ if [ $EXIT_CODE -eq 0 ]; then
+ echo -e "${GREEN}[DONE] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' complete.${NC}"
+ else
+ echo -e "${RED}[FAIL] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' FAILED.${NC}"
+ fi
+ else
+ echo -e "${RED}[FAIL] Build artifacts do not exist for ${OUTPUT_DIR}. Run build.sh first.${NC}"
+ fi
+)
source ../common.build.sh
VERSION=`get_version ../..`
-package_portable ../.. `pwd`/dist/jellyfin_${VERSION}
+package_win32 ../.. `pwd`/dist/jellyfin_${VERSION}
#TODO setup and maybe change above code to produce the Windows native zip format.