Skip to content

Commit da22197

Browse files
committed
Merge branch 'develop' into stable
2 parents 678ff8d + dbe5ee3 commit da22197

8 files changed

Lines changed: 73 additions & 42 deletions

File tree

build/common.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ repo. It imports the other MSBuild files as needed.
77
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
88
<PropertyGroup>
99
<!--set general build properties -->
10-
<Version>4.5.0</Version>
10+
<Version>4.5.1</Version>
1111
<Product>SMAPI</Product>
1212
<LangVersion>latest</LangVersion>
1313
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>

build/scripts/prepare-install-package.ps1

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
##########
1616
$windowsOnly = $false # Windows-only build
1717
$skipBundleDeletion = $false # skip bundle deletion (only applies when using WSL to finalize the build on Windows)
18-
foreach ($arg in $args) {
19-
if ($arg -eq "--windows-only" -and $IsWindows) {
20-
$windowsOnly = $true
21-
}
22-
elseif ($arg -eq "--skip-bundle-deletion") {
23-
$skipBundleDeletion = $true
18+
foreach ($arg in $args) {
19+
if ($arg -eq "--windows-only" -and $IsWindows) {
20+
$windowsOnly = $true
21+
}
22+
elseif ($arg -eq "--skip-bundle-deletion") {
23+
$skipBundleDeletion = $true
2424
}
2525
}
2626

@@ -156,6 +156,7 @@ $installAssets = "src/SMAPI.Installer/assets"
156156
$packagePath = "bin/SMAPI installer"
157157

158158
# init structure
159+
Write-Host "Setting up structure..."
159160
foreach ($folder in $folders) {
160161
$folderPath = "$packagePath/internal/$folder/bundle/smapi-internal"
161162

@@ -256,22 +257,37 @@ foreach ($folder in $folders) {
256257
}
257258

258259
# mark scripts executable
260+
Write-Host "Setting file permissions..."
259261
if ($IsWindows) {
260262
Write-Warning "Can't set Unix file permissions on Windows. This may cause issues for Linux/macOS players."
261263
}
262264
else {
263-
ForEach ($path in @("install on Linux.sh", "install on macOS.command", "bundle/unix-launcher.sh")) {
265+
ForEach ($path in @("install on Linux.sh", "install on macOS.command", "internal/linux/bundle/unix-launcher.sh", "internal/macOS/bundle/unix-launcher.sh")) {
264266
if (Test-Path "$packagePath/$path" -PathType Leaf) {
265267
chmod 755 "$packagePath/$path"
266268
}
269+
else {
270+
Write-Host "Couldn't set permissions for '$packagePath/$path': file does not exist."
271+
}
267272
}
268273
}
269274

270275
# convert bundle folder into final 'install.dat' files
276+
Write-Host "Tucking SMAPI bundle into install.dat..."
271277
foreach ($folder in $folders) {
272278
$path = "$packagePath/internal/$folder"
273279

274-
Compress-Archive -Path "$path/bundle/*" -CompressionLevel Optimal -DestinationPath "$path/install.dat"
280+
if ($IsWindows) {
281+
Compress-Archive -Path "$path/bundle/*" -CompressionLevel Optimal -DestinationPath "$path/install.dat"
282+
}
283+
else {
284+
# Compress-Archive doesn't keep Unix permissions, so use zip directly on Linux/macOS
285+
pushd "$path/bundle" > /dev/null
286+
zip "install.dat" * --recurse-paths --quiet
287+
popd > /dev/null
288+
mv "$path/bundle/install.dat" "$path/install.dat"
289+
}
290+
275291
if (!$skipBundleDeletion) {
276292
Remove-Item -Recurse -Force "$path/bundle"
277293
}
@@ -281,9 +297,18 @@ foreach ($folder in $folders) {
281297
###########
282298
### Create release zips
283299
###########
300+
Write-Host "Creating release zip..."
284301
Move-Item "$packagePath" "bin/SMAPI $version installer"
285302

286-
Compress-Archive -Path "bin/SMAPI $version installer" -DestinationPath "bin/SMAPI-$version-installer.zip" -CompressionLevel Optimal
303+
if ($IsWindows) {
304+
Compress-Archive -Path "bin/SMAPI $version installer" -DestinationPath "bin/SMAPI-$version-installer.zip" -CompressionLevel Optimal
305+
}
306+
else {
307+
# Compress-Archive doesn't keep Unix permissions, so use zip directly on Linux/macOS
308+
pushd bin > /dev/null
309+
zip -9 "SMAPI-$version-installer.zip" "SMAPI $version installer" --recurse-paths --quiet
310+
popd > /dev/null
311+
}
287312

288313
Write-Output ""
289314
Write-Output "Done! Package created in ${pwd.Path}/bin."

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Italian | ↻ [partly translated](../src/SMAPI/i18n/it.json)
6868
Japanese | ↻ [partly translated](../src/SMAPI/i18n/ja.json)
6969
Korean | ↻ [partly translated](../src/SMAPI/i18n/ko.json)
7070
[Polish] | ↻ [partly translated](../src/SMAPI/i18n/pl.json)
71-
Portuguese | [partly translated](../src/SMAPI/i18n/pt.json)
71+
Portuguese | [fully translated](../src/SMAPI/i18n/pt.json)
7272
Russian | ↻ [partly translated](../src/SMAPI/i18n/ru.json)
7373
Spanish | ↻ [partly translated](../src/SMAPI/i18n/es.json)
7474
[Thai] | ↻ [partly translated](../src/SMAPI/i18n/th.json)

docs/release-notes.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
[README](README.md)
22

33
# Release notes
4+
## 4.5.1
5+
Released 25 January 2026 for Stardew Valley 1.6.14 or later.
6+
7+
* For players:
8+
* Fixed error installing SMAPI 4.5.0 on Linux/macOS.
9+
* Improved translations. Thanks to Maatsuki (updated Portuguese)!
10+
411
## 4.5.0
512
Released 25 January 2026 for Stardew Valley 1.6.14 or later. See [release highlights](https://www.patreon.com/posts/149054246) and [build attestation](https://github.com/Pathoschild/SMAPI/attestations/17379361).
613

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"Name": "Console Commands",
33
"Author": "SMAPI",
4-
"Version": "4.5.0",
4+
"Version": "4.5.1",
55
"Description": "Adds SMAPI console commands that let you manipulate the game.",
66
"UniqueId": "SMAPI.ConsoleCommands",
77
"EntryDll": "ConsoleCommands.dll",
8-
"MinimumApiVersion": "4.5.0"
8+
"MinimumApiVersion": "4.5.1"
99
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"Name": "Save Backup",
33
"Author": "SMAPI",
4-
"Version": "4.5.0",
4+
"Version": "4.5.1",
55
"Description": "Automatically backs up all your saves once per day into its folder.",
66
"UniqueId": "SMAPI.SaveBackup",
77
"EntryDll": "SaveBackup.dll",
8-
"MinimumApiVersion": "4.5.0"
8+
"MinimumApiVersion": "4.5.1"
99
}

src/SMAPI/Constants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal static class EarlyConstants
4949
internal static int? LogScreenId { get; set; }
5050

5151
/// <summary>SMAPI's current raw semantic version.</summary>
52-
internal static string RawApiVersion = "4.5.0";
52+
internal static string RawApiVersion = "4.5.1";
5353
}
5454

5555
/// <summary>Contains SMAPI's constants and assumptions.</summary>

src/SMAPI/i18n/pt.json

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,44 @@
1111
/*********
1212
** Generic Mod Config Menu UI
1313
*********/
14-
// TODO
1514
// 'SMAPI features' section
16-
"config.section.features": "SMAPI features",
15+
"config.section.features": "Recursos do SMAPI",
1716

18-
"config.check-for-updates.name": "Check for updates",
19-
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
17+
"config.check-for-updates.name": "Verificar atualizações",
18+
"config.check-for-updates.desc": "Define se o SMAPI deve verificar automaticamente por versões mais novas do SMAPI e dos mods ao iniciar o jogo. Se houver novas versões disponíveis, um alerta será exibido no console. Isso não afeta o tempo de carregamento, mesmo se sua conexão estiver offline ou lenta, pois acontece em segundo plano.",
2019

21-
"config.check-content-integrity.name": "Check content integrity",
22-
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
20+
"config.check-content-integrity.name": "Verificar integridade do conteúdo",
21+
"config.check-content-integrity.desc": "Define se o SMAPI deve verificar se os arquivos de conteúdo do jogo estão presentes e sem modificações. Isso quase sempre deve ficar ativado. Se desativado, o SMAPI registrará um aviso para facilitar a identificação de problemas quando alguém estiver ajudando a solucionar erros do jogo.",
2322

24-
"config.read-console-input.name": "Read console input",
25-
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
23+
"config.read-console-input.name": "Ler entrada do console",
24+
"config.read-console-input.desc": "Define se o SMAPI deve escutar comandos digitados no console. Desativar isso impedirá o uso de comandos do console. Em alguns sistemas Linux específicos, desativar essa opção pode reduzir o uso de CPU.",
2625

2726
// 'Console window' section
28-
"config.section.console-window": "Console window",
27+
"config.section.console-window": "Janela do console",
2928

30-
"config.developer-mode.name": "Developer mode",
31-
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
29+
"config.developer-mode.name": "Modo desenvolvedor",
30+
"config.developer-mode.desc": "Define se devem ser exibidas muito mais informações na janela do console do SMAPI, destinado a desenvolvedores de mods. Não recomendado para a maioria dos jogadores.",
3231

33-
"config.color-scheme.name": "Color scheme",
34-
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
35-
"config.color-scheme.options.AutoDetect": "Auto-detect",
36-
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
37-
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
38-
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
39-
"config.color-scheme.options.None": "No colors",
32+
"config.color-scheme.name": "Esquema de cores",
33+
"config.color-scheme.desc": "O esquema de cores aplicado ao texto na janela do console do SMAPI. Isso não afeta o jogo, os mods ou o arquivo de log do SMAPI.",
34+
"config.color-scheme.options.AutoDetect": "Detecção automática",
35+
"config.color-scheme.options.AutoDetect.on-windows": "Detecção automática (recomendado)",
36+
"config.color-scheme.options.DarkBackground": "Texto mais claro (para fundos escuros)",
37+
"config.color-scheme.options.LightBackground": "Texto mais escuro (para fundos claros)",
38+
"config.color-scheme.options.None": "Sem cores",
4039

4140
// 'Verbose logging' section
42-
"config.section.verbose-logs": "Verbose logs",
43-
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
41+
"config.section.verbose-logs": "Logs detalhados",
42+
"config.section.verbose-logs.explanation": "Para ajudar na solução de problemas, o SMAPI e muitos mods podem enviar informações extras para o log do SMAPI (chamado de 'log detalhado'). Isso pode causar problemas de desempenho e geralmente deve permanecer desativado.",
4443

45-
"config.enable-for.name": "Enable for",
46-
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
47-
"config.enable-for.options.all": "All (not recommended)",
48-
"config.enable-for.options.selected": "Mods selected below",
44+
"config.enable-for.name": "Ativar para",
45+
"config.enable-for.desc": "Escolha quais mods terão o log detalhado ativado.",
46+
"config.enable-for.options.all": "Todos (não recomendado)",
47+
"config.enable-for.options.selected": "Mods selecionados abaixo",
4948

5049
"config.enable-for-smapi.name": "SMAPI",
51-
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
50+
"config.enable-for-smapi.desc": "Define se os logs detalhados devem ser ativados para o próprio SMAPI.",
5251

5352
"config.enable-for-mod.name": "{{modName}}",
54-
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
53+
"config.enable-for-mod.desc": "Define se os logs detalhados devem ser ativados para o mod '{{modName}}'."
5554
}

0 commit comments

Comments
 (0)