mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Fix/startup jvm error after installation update via msi (#1229)
* Remove existing installations with msi installer * Remove unused x86 wxs file * Uninstall old msi versions with different upgrade code * Progress but error 2721 happens on install * Remove added uninstall previous version wxs stuff * Use revision as patch number MSI only uninstalls previous versions in case the version number changed (it only checks the first three numbers (major, minor, patch)). Thus, to prevent each preview install to result in it getting registered as a new "app" and for it to uninstall the old versions, we have to change the version on each release. * Deprecate "BuildConfig.REVISION" * Remove outdated env vars --------- Co-authored-by: Syer10 <syer10@users.noreply.github.com>
This commit is contained in:
@@ -10,14 +10,13 @@ import java.io.BufferedReader
|
||||
const val MainClass = "suwayomi.tachidesk.MainKt"
|
||||
|
||||
// should be bumped with each stable release
|
||||
val tachideskVersion = System.getenv("ProductVersion") ?: "v1.1.1"
|
||||
val getTachideskVersion = { "v1.1.${getCommitCount()}" }
|
||||
|
||||
val webUIRevisionTag = System.getenv("WebUIRevision") ?: "r1689"
|
||||
val webUIRevisionTag = "r1689"
|
||||
|
||||
// counts commits on the current checked out branch
|
||||
val getTachideskRevision = {
|
||||
private val getCommitCount = {
|
||||
runCatching {
|
||||
System.getenv("ProductRevision") ?: ProcessBuilder()
|
||||
ProcessBuilder()
|
||||
.command("git", "rev-list", "HEAD", "--count")
|
||||
.start()
|
||||
.let { process ->
|
||||
@@ -26,8 +25,11 @@ val getTachideskRevision = {
|
||||
it.bufferedReader().use(BufferedReader::readText)
|
||||
}
|
||||
process.destroy()
|
||||
"r" + output.trim()
|
||||
output.trim()
|
||||
}
|
||||
}.getOrDefault("r0")
|
||||
}.getOrDefault("0")
|
||||
}
|
||||
|
||||
// counts commits on the current checked out branch
|
||||
val getTachideskRevision = { "r${getCommitCount()}" }
|
||||
|
||||
|
||||
@@ -151,16 +151,16 @@ setup_jre() {
|
||||
mv "jre" "$RELEASE_NAME/jre"
|
||||
else
|
||||
if [ ! -f "$JRE" ]; then
|
||||
curl -L "$JRE_URL" -o "$JRE"
|
||||
fi
|
||||
curl -L "$JRE_URL" -o "$JRE"
|
||||
fi
|
||||
|
||||
local ext="${JRE##*.}"
|
||||
if [ "$ext" = "zip" ]; then
|
||||
unzip "$JRE"
|
||||
else
|
||||
tar xvf "$JRE"
|
||||
fi
|
||||
mv "$JRE_DIR" "$RELEASE_NAME/jre"
|
||||
local ext="${JRE##*.}"
|
||||
if [ "$ext" = "zip" ]; then
|
||||
unzip "$JRE"
|
||||
else
|
||||
tar xvf "$JRE"
|
||||
fi
|
||||
mv "$JRE_DIR" "$RELEASE_NAME/jre"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product Id="*" UpgradeCode="*"
|
||||
<Product Id="*" UpgradeCode="174c8f36-0bec-4585-9ddd-469c3d889dc1"
|
||||
Version="$(var.ProductVersion)" Language="1033" Name="Suwayomi Server" Manufacturer="Suwayomi">
|
||||
<Package InstallerVersion="300" Compressed="yes" />
|
||||
<Media Id="1" Cabinet="Suwayomi_Server.cab" EmbedCab="yes" />
|
||||
@@ -9,6 +9,8 @@
|
||||
VersionNT64
|
||||
</Condition>
|
||||
|
||||
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
|
||||
|
||||
<!-- Directory -->
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
@@ -48,6 +50,10 @@
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<RemoveExistingProducts After="InstallValidate" />
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<!-- Feature -->
|
||||
<Feature Id="Suwayomi_Server" Title="Suwayomi-Server" Level="1">
|
||||
<ComponentGroupRef Id="jre" />
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product Id="*" UpgradeCode="*"
|
||||
Version="$(var.ProductVersion)" Language="1033" Name="Suwayomi Server" Manufacturer="Suwayomi">
|
||||
<Package InstallerVersion="300" Compressed="yes" />
|
||||
<Media Id="1" Cabinet="Suwayomi_Server.cab" EmbedCab="yes" />
|
||||
|
||||
<!-- Directory -->
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFilesFolder">
|
||||
<Directory Id="INSTALLDIR" Name="Suwayomi-Server" >
|
||||
<Directory Id="jre"/>
|
||||
<Directory Id="electron"/>
|
||||
<Directory Id="bin"/>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="ProgramMenuFolder">
|
||||
<Directory Id="ProgramMenuDir" Name="Suwayomi-Server">
|
||||
<Component Id="ProgramMenuDir" Guid="*">
|
||||
<RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
|
||||
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="DesktopFolder" />
|
||||
</Directory>
|
||||
|
||||
<!-- Component -->
|
||||
<DirectoryRef Id="INSTALLDIR">
|
||||
<Component Id="SuwayomiJAR" Guid="*">
|
||||
<File Id="Suwayomi-Launcher.jar" Source="$(var.SourceDir)/Suwayomi-Launcher.jar" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
<Component Id="SuwayomiLauncherBAT" Guid="*" Win64="yes">
|
||||
<File Id="SuwayomiLauncher.bat" Source="$(var.SourceDir)/Suwayomi Launcher.bat" KeyPath="yes" >
|
||||
<Shortcut Id="SuwayomiLauncher.lnk" Name="Suwayomi Launcher" Directory="INSTALLDIR"
|
||||
WorkingDirectory="INSTALLDIR" Icon="Suwayomi.ico" IconIndex="0" Advertise="yes" />
|
||||
<Shortcut Id="DesktopSuwayomiLauncher.lnk" Name="Suwayomi Launcher" Directory="DesktopFolder"
|
||||
WorkingDirectory="INSTALLDIR" Icon="Suwayomi.ico" IconIndex="0" Advertise="yes" />
|
||||
<Shortcut Id="ProgramMenuSuwayomiLauncher.lnk" Name="Suwayomi Launcher" Directory="ProgramMenuDir"
|
||||
WorkingDirectory="INSTALLDIR" Icon="Suwayomi.ico" IconIndex="0" Advertise="yes"
|
||||
Description="A free and open source manga reader that runs extensions built for Tachiyomi." />
|
||||
</File>
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<!-- Feature -->
|
||||
<Feature Id="Suwayomi_Server" Title="Suwayomi-Server" Level="1">
|
||||
<ComponentGroupRef Id="jre" />
|
||||
<ComponentGroupRef Id="bin" />
|
||||
<ComponentRef Id="SuwayomiJAR" />
|
||||
<ComponentRef Id="SuwayomiLauncherBAT" />
|
||||
<ComponentRef Id="ProgramMenuDir" />
|
||||
<ComponentGroupRef Id="electron" />
|
||||
</Feature>
|
||||
|
||||
<Icon Id="Suwayomi.ico" SourceFile="$(var.Icon)" />
|
||||
<Property Id="ARPPRODUCTICON" Value="Suwayomi.ico" /> <!-- Icon in Add/Remove Programs -->
|
||||
</Product>
|
||||
</Wix>
|
||||
@@ -121,7 +121,7 @@ buildConfig {
|
||||
fun quoteWrap(obj: Any): String = """"$obj""""
|
||||
|
||||
buildConfigField("String", "NAME", quoteWrap(rootProject.name))
|
||||
buildConfigField("String", "VERSION", quoteWrap(tachideskVersion))
|
||||
buildConfigField("String", "VERSION", quoteWrap(getTachideskVersion()))
|
||||
buildConfigField("String", "REVISION", quoteWrap(getTachideskRevision()))
|
||||
buildConfigField("String", "BUILD_TYPE", quoteWrap(if (System.getenv("ProductBuildType") == "Stable") "Stable" else "Preview"))
|
||||
buildConfigField("long", "BUILD_TIME", Instant.now().epochSecond.toString())
|
||||
@@ -140,13 +140,13 @@ tasks {
|
||||
"Main-Class" to MainClass,
|
||||
"Implementation-Title" to rootProject.name,
|
||||
"Implementation-Vendor" to "The Suwayomi Project",
|
||||
"Specification-Version" to tachideskVersion,
|
||||
"Specification-Version" to getTachideskVersion(),
|
||||
"Implementation-Version" to getTachideskRevision(),
|
||||
)
|
||||
}
|
||||
archiveBaseName.set(rootProject.name)
|
||||
archiveVersion.set(tachideskVersion)
|
||||
archiveClassifier.set(getTachideskRevision())
|
||||
archiveVersion.set(getTachideskVersion())
|
||||
archiveClassifier.set("")
|
||||
destinationDirectory.set(File("$rootDir/server/build"))
|
||||
mergeServiceFiles()
|
||||
}
|
||||
|
||||
@@ -15,7 +15,12 @@ object AppInfo {
|
||||
*
|
||||
* @since extension-lib 1.3
|
||||
*/
|
||||
fun getVersionCode() = BuildConfig.REVISION.substring(1).toInt()
|
||||
fun getVersionCode() =
|
||||
BuildConfig.VERSION
|
||||
.replace("v", "")
|
||||
.split('.')
|
||||
.joinToString("")
|
||||
.toInt()
|
||||
|
||||
/**
|
||||
* should be something like "0.13.1"
|
||||
|
||||
@@ -12,6 +12,7 @@ import suwayomi.tachidesk.server.generated.BuildConfig
|
||||
data class AboutDataClass(
|
||||
val name: String,
|
||||
val version: String,
|
||||
@Deprecated("The version includes the revision as the patch number")
|
||||
val revision: String,
|
||||
val buildType: String,
|
||||
val buildTime: Long,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package suwayomi.tachidesk.graphql.queries
|
||||
|
||||
import com.expediagroup.graphql.generator.annotations.GraphQLDeprecated
|
||||
import suwayomi.tachidesk.global.impl.AppUpdate
|
||||
import suwayomi.tachidesk.graphql.types.AboutWebUI
|
||||
import suwayomi.tachidesk.graphql.types.WebUIUpdateCheck
|
||||
@@ -15,6 +16,7 @@ class InfoQuery {
|
||||
data class AboutServerPayload(
|
||||
val name: String,
|
||||
val version: String,
|
||||
@GraphQLDeprecated("The version includes the revision as the patch number")
|
||||
val revision: String,
|
||||
val buildType: String,
|
||||
val buildTime: Long,
|
||||
|
||||
@@ -20,7 +20,7 @@ class MangaUpdatesInterceptor(
|
||||
originalRequest
|
||||
.newBuilder()
|
||||
.addHeader("Authorization", "Bearer $token")
|
||||
.header("User-Agent", "Suwayomi ${BuildConfig.VERSION} (${BuildConfig.REVISION})")
|
||||
.header("User-Agent", "Suwayomi ${BuildConfig.VERSION}")
|
||||
.build()
|
||||
|
||||
return chain.proceed(authRequest)
|
||||
|
||||
@@ -137,7 +137,7 @@ fun applicationSetup() {
|
||||
|
||||
setupLogLevelUpdating(serverConfig.debugLogsEnabled, listOf(BASE_LOGGER_NAME))
|
||||
|
||||
logger.info { "Running Suwayomi-Server ${BuildConfig.VERSION} revision ${BuildConfig.REVISION}" }
|
||||
logger.info { "Running Suwayomi-Server ${BuildConfig.VERSION}" }
|
||||
|
||||
logger.debug {
|
||||
"Loaded config:\n" +
|
||||
|
||||
@@ -591,14 +591,18 @@ object WebInterfaceManager {
|
||||
return BuildConfig.WEBUI_TAG
|
||||
}
|
||||
|
||||
val currentServerVersionNumber = extractVersion(BuildConfig.REVISION)
|
||||
val currentServerVersionNumber =
|
||||
BuildConfig.VERSION
|
||||
.split(".")
|
||||
.last()
|
||||
.toInt()
|
||||
val webUIToServerVersionMappings = fetchServerMappingFile(flavor)
|
||||
|
||||
logger.debug {
|
||||
"getLatestCompatibleVersion: " +
|
||||
"flavor= ${flavor.uiName}, " +
|
||||
"webUIChannel= ${serverConfig.webUIChannel.value}, " +
|
||||
"currentServerVersion= ${BuildConfig.REVISION}, " +
|
||||
"currentServerVersion= ${BuildConfig.VERSION}, " +
|
||||
"mappingFile= $webUIToServerVersionMappings"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user