Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add renode-cli #28944

Open
wants to merge 77 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
5b1d320
Add renode-cli
MementoRC Jan 26, 2025
fca5890
(fix) remove selectors. fix typos
MementoRC Jan 27, 2025
b29216e
(fix) add tests requirements
MementoRC Jan 27, 2025
9e65189
(fix) separate arch/noarch
MementoRC Jan 28, 2025
bded9e6
(fix) update renode-cores for non-unix
MementoRC Jan 28, 2025
ab99f31
(fix) update renode-cores for non-unix
MementoRC Jan 28, 2025
c8a4e1b
(fix) use .bat for non-unix
MementoRC Jan 28, 2025
37d1d27
(wip) damn working with win is like pulling teeth
MementoRC Jan 28, 2025
3388248
(fix) use PS1
MementoRC Jan 28, 2025
e66d7d7
(ref) clean unix
MementoRC Jan 29, 2025
309d872
(fix) call 'cleaned-out' function
MementoRC Jan 29, 2025
35e9924
(fix) unix script args. permissions on non-unix
MementoRC Jan 29, 2025
4606fb7
(fix) unix typos. ppc64 not on win?
MementoRC Jan 29, 2025
51bc4e6
(wip) built non-unix till tests
MementoRC Jan 29, 2025
37927b8
(ref) clean non-unix
MementoRC Jan 29, 2025
413f1f9
(fix) tests fail?
MementoRC Jan 29, 2025
4339a60
(fix) test script: hardcode pkg_name
MementoRC Jan 30, 2025
f206438
(fix) dynamic libraries loader?
MementoRC Jan 30, 2025
cab5f38
(fix) arm64 asm code
MementoRC Jan 31, 2025
020a069
(ref) remove build.sh patch
MementoRC Jan 31, 2025
0d3e416
(dev) remove patches, switch to arch renode-cli
MementoRC Jan 31, 2025
a663b6e
(wip) solved ppc64 non-unix. Odd 'do' fail
MementoRC Jan 31, 2025
4d819f2
(wip) closing in on that wraith of an OS
MementoRC Feb 1, 2025
dc9010d
(dev) sed error?
MementoRC Feb 1, 2025
9094271
(fix) win: .so not copied to cli. arm64: clobbered
MementoRC Feb 2, 2025
b306356
(fix) win build update
MementoRC Feb 5, 2025
5a7e35c
(ref) cleanup
MementoRC Mar 11, 2025
7348f94
(fix) corect OS for licenses
MementoRC Mar 12, 2025
8f4ad8c
(wip) remove build_prefix deps
MementoRC Mar 12, 2025
055d176
(fix) update licenses copy for windows
MementoRC Mar 12, 2025
b5d391b
(ref) skip win
MementoRC Mar 13, 2025
8230d8d
(ref) odd CR ussue with patch
MementoRC Mar 13, 2025
06d557a
(fix) typo
MementoRC Mar 13, 2025
9b35d0b
(fix) link the cores?
MementoRC Mar 13, 2025
a5702cf
(fix) os mismatch
MementoRC Mar 13, 2025
5ec33b3
Update recipes/renode-cli/variants.yaml
MementoRC Mar 14, 2025
066057b
Update recipes/renode-cli/build.sh
MementoRC Mar 14, 2025
ff48eb4
Update recipes/renode-cores/variants.yaml
MementoRC Mar 14, 2025
e4af681
Update recipes/renode-cli/build.sh
MementoRC Mar 14, 2025
37ca761
(fix) removed win build to simplify review. WIP
MementoRC Mar 14, 2025
f3c635e
(fix) no win for cli
MementoRC Mar 15, 2025
a7e1892
(fix) share, not opt
MementoRC Mar 15, 2025
34ffa68
(fix) Do we need to install the tests?
MementoRC Mar 15, 2025
c2d515e
(fix) Simplify win cores to single ps1
MementoRC Mar 15, 2025
77049f7
(fix) ninja. core one build.sh
MementoRC Mar 15, 2025
f6ec8e9
(fix) missing folder
MementoRC Mar 15, 2025
ba81074
(fix) single cli build.sh
MementoRC Mar 15, 2025
9a423f1
(fix) create bin dir
MementoRC Mar 15, 2025
5c24d18
(fix) missing logic in refactor
MementoRC Mar 16, 2025
58b5444
(fix) typo
MementoRC Mar 16, 2025
253120d
(fix) ill-placed ""
MementoRC Mar 16, 2025
3a54b45
(fix) several ill-placed ""
MementoRC Mar 16, 2025
3f7b5be
(fix) consolidate build.sh. adding win scaffold
MementoRC Mar 16, 2025
17f0b53
(wip) updated windows recipe
MementoRC Mar 16, 2025
8678248
(ref) fullpath to license-files
MementoRC Mar 17, 2025
b108e6e
(ref) use _NET properties
MementoRC Mar 17, 2025
62d7e52
(wip) updated windows recipe
MementoRC Mar 18, 2025
c2494cd
(fix) sign. correct location Renode.dll
MementoRC Mar 18, 2025
4c30885
(fix) simplified build (linux passes locally)
MementoRC Mar 19, 2025
4ae7e8d
(fix) remove function
MementoRC Mar 19, 2025
1e10379
(fix) various typos
MementoRC Mar 19, 2025
8ec21af
(wip) updated windows recipe
MementoRC Mar 19, 2025
1e38438
(ref) Clean-up
MementoRC Mar 20, 2025
54146e5
(ref) consolidate patches in script
MementoRC Mar 20, 2025
d979d92
(ref) ofc
MementoRC Mar 20, 2025
b2b63e4
(ref) url/sha. python_min. CXXFLAGS.
MementoRC Mar 21, 2025
7d9b970
(ref) remove -Wno-error
MementoRC Mar 21, 2025
15fc1aa
(ref) reqs. clean-up
MementoRC Mar 22, 2025
467252d
(ref) add unclassified resources
MementoRC Mar 22, 2025
8a90f2b
(ref) tlib_helper in > 1.15.3. add renode-python-tools
MementoRC Mar 22, 2025
94c29d6
(ref) noarch can't skip (ironic?)
MementoRC Mar 22, 2025
f4ab462
(ref) non-unix install dir
MementoRC Mar 22, 2025
4f6527a
(ref) typos
MementoRC Mar 22, 2025
8dab7ee
(ref) typos
MementoRC Mar 22, 2025
20ee5ef
(ref) noarch: not installing on non-linux
MementoRC Mar 22, 2025
0fd7d79
(ref) noarch: not installing on non-linux
MementoRC Mar 22, 2025
89f1337
(ref) noarch: not installing on non-linux
MementoRC Mar 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions recipes/renode-cli/build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@echo off
powershell -ExecutionPolicy Bypass -File "%RECIPE_DIR%\helpers\renode_build_with_dotnet.ps1"
if %errorlevel% neq 0 exit /b %errorlevel%
95 changes: 95 additions & 0 deletions recipes/renode-cli/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#!/usr/bin/env bash

set -o xtrace -o nounset -o pipefail -o errexit

# Consolidated script logic
main() {
export PATH="${DOTNET_ROOT}/dotnet:${PATH}"

dotnet_version=$(dotnet --version)
framework_version=${dotnet_version%.*}

# Patch project files (combined find and sed)
find lib src tests -name "*.csproj" -exec sed -i -E "s/([>;])net6.0([<;])/\1net${framework_version}\2/g" {} \;

# Remove obj and bin directories (combined find)
find . -name "obj" -o -name "bin" -type d -exec rm -rf {} +

# Fix typo in Renode_NET.sln
sed -i -E 's/(ReleaseHeadless\|Any .+ = )Debug/\1Release/' Renode_NET.sln

# Prepare for build (using more robust path)
mkdir -p "${SRC_DIR}/src/Infrastructure/src/Emulator/Cores/bin/Release/lib"
ln -sf ${PREFIX}/lib/renode-cores/* "${SRC_DIR}/src/Infrastructure/src/Emulator/Cores/bin/Release/lib"

rm -f "${SRC_DIR}/src/Infrastructure/src/Emulator/Cores/translate*.cproj"

# Build with dotnet (combined commands and simplified logic)
mkdir -p "${SRC_DIR}/output/bin/Release/net${framework_version}"
cp "${SRC_DIR}/src/Infrastructure/src/Emulator/Cores/${target_platform%%-*}-properties_NET.csproj" "${SRC_DIR}/output/properties.csproj"

dotnet build \
-p:GUI_DISABLED=true \
-p:Configuration=ReleaseHeadless \
-p:GenerateFullPaths=true \
-p:Platform="Any CPU" \
${SRC_DIR}/Renode_NET.sln
echo -n "dotnet" > "${SRC_DIR}/output/bin/Release/build_type"

# Copy LLVM library (simplified logic)
LLVM_LIB="libllvm-disas"
cp "lib/resources/llvm/$LLVM_LIB$SHLIB_EXT" "${SRC_DIR}/output/bin/Release/libllvm-disas$SHLIB_EXT"

# Install procedure (combined mkdir)
mkdir -p ${PREFIX}/bin ${PREFIX}/libexec/${PKG_NAME} ${PREFIX}/share/${PKG_NAME}/{scripts,platforms,tests}

cp -r ${SRC_DIR}/output/bin/Release/net${framework_version}/* ${PREFIX}/libexec/${PKG_NAME}/
cp -r ${SRC_DIR}/scripts/* "${PREFIX}/share/${PKG_NAME}/scripts/"
cp -r ${SRC_DIR}/platforms/* "${PREFIX}/share/${PKG_NAME}/platforms/"

# Copy licenses (simplified conditional)
mkdir -p ${SRC_DIR}/license-files
if [[ "${target_platform}" == "osx-*" ]]; then
tools/packaging/common_copy_licenses.sh ${SRC_DIR}/license-files macos
else
tools/packaging/common_copy_licenses.sh ${SRC_DIR}/license-files linux
fi

# Create renode script (using heredoc)
cat > "${PREFIX}/bin/renode" <<EOF
#!/bin/sh
exec "\${DOTNET_ROOT}"/dotnet exec "\${CONDA_PREFIX}"/libexec/renode-cli/Renode.dll "\$@"
EOF
chmod +x "${PREFIX}/bin/renode"

# Install tests
install_tests "${SRC_DIR}/test-bundle" "$PKG_NAME" "$PREFIX"
}

# Function to install tests (defined after main logic)
install_tests() {
local test_prefix="$1"
local pkg_name="$2"
local conda_prefix="$3"

mkdir -p "${test_prefix}/bin"
mkdir -p "${test_prefix}/share/${pkg_name}/tests"
cp -r tests/* "${test_prefix}/share/${pkg_name}/tests/"
cp lib/resources/styles/robot.css "${test_prefix}/share/${pkg_name}/tests"

sed -i "s#os\.path\.join(this_path, '\.\./lib/resources/styles/robot\.css')#os.path.join(this_path,'robot.css')#g" "${test_prefix}/share/${pkg_name}/tests/robot_tests_provider.py"

cat > "${test_prefix}/bin/renode-test" <<EOF
#!/usr/bin/env bash
stty_config=\$(stty -g 2>/dev/null)
python3 "\${LOCAL_TEST_PREFIX:-\${conda_prefix}}"/share/"${pkg_name}"/tests/run_tests.py --robot-framework-remote-server-full-directory "${conda_prefix}"/libexec/renode-cli "\$@"
result_code=\$?
if [[ -n "\${stty_config+_}" ]]; then stty "\$stty_config"; fi
exit \$result_code
EOF
chmod +x "${test_prefix}/bin/renode-test"
}

main "$@"

exit 0
114 changes: 114 additions & 0 deletions recipes/renode-cli/helpers/renode_build_with_dotnet.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
$ErrorActionPreference = "Stop"

# Get logical processors count
$cpuCount = (Get-CimInstance Win32_Processor).NumberOfLogicalProcessors

# Set environment variables (using robust expansion)
$SRC_DIR = & cmd.exe /c echo %SRC_DIR%
$PREFIX = & cmd.exe /c echo %PREFIX%
$PKG_NAME = & cmd.exe /c echo %PKG_NAME%

# Check for empty environment variables
if ([string]::IsNullOrEmpty($SRC_DIR)) { throw "SRC_DIR is empty" }
if ([string]::IsNullOrEmpty($PREFIX)) { throw "PREFIX is empty" }
if ([string]::IsNullOrEmpty($PKG_NAME)) { throw "PKG_NAME is empty" }

# Set environment variables
$env:PATH = "${env:BUILD_PREFIX}/Library/mingw-w64/bin;${env:BUILD_PREFIX}/Library/bin;${env:PREFIX}/Library/bin;${env:PREFIX}/bin;${env:PATH}"

# Function to install tests (defined before use in PowerShell)
function install_tests {
param(
[string]$test_prefix,
[string]$pkg_name,
[string]$conda_prefix
)

mkdir -p "$test_prefix/bin"
mkdir -p "$test_prefix/share/$pkg_name/tests"
Copy-Item -Path "tests/*" -Destination "$test_prefix/share/$pkg_name/tests" -Recurse -Force
Copy-Item -Path "lib/resources/styles/robot.css" -Destination "$test_prefix/share/$pkg_name/tests" -Force

# Use PowerShell's -replace operator
(Get-Content "$test_prefix/share/$pkg_name/tests/robot_tests_provider.py") | ForEach-Object { $_ -replace "os\.path\.join\(this_path, '\.\./lib/resources/styles/robot\.css'\)", "os.path.join(this_path,'robot.css')" } | Set-Content "$test_prefix/share/$pkg_name/tests/robot_tests_provider.py"

# Create renode-test script (using PowerShell heredoc)
@"
@echo off
setlocal enabledelayedexpansion
set "STTY_CONFIG=%stty -g 2^>nul%"
IF NOT DEFINED LOCAL_TEST_PREFIX (
set "LOCAL_TEST_PREFIX=%CONDA_PREFIX%"
)
python "%LOCAL_TEST_PREFIX%\share\renode-cli\tests\run_tests.py" --robot-framework-remote-server-full-directory "%CONDA_PREFIX%\libexec\renode-cli" %*
set "RESULT_CODE=%ERRORLEVEL%"
if not "%STTY_CONFIG%"=="" stty "%STTY_CONFIG%"
exit /b %RESULT_CODE%
"@ | Out-File -FilePath "$test_prefix\bin\renode-test.cmd" -Encoding ascii

# No need for chmod +x in PowerShell, but ensure execution policy allows it
}

# Consolidated script logic
$dotnet_version = dotnet --version

$framework_version = $dotnet_version -replace "^(\d+\.\d+).*", '$1'
@"
<Project>
<PropertyGroup>
<TargetFrameworks>net$framework_version-windows</TargetFrameworks>
</PropertyGroup>
</Project>
"@ | Set-Content "$SRC_DIR\Directory.Build.targets"
# Patch project files, remove obj/bin, fix sln (combined commands)
# Get-ChildItem -Path lib,src,tests -Filter "*.csproj" -Recurse | ForEach-Object {
# (Get-Content $_.FullName) | ForEach-Object { $_ -replace "([>;])net6\.0([<;])", "`$1net$framework_version`$2" } | Set-Content $_.FullName
# }
Get-ChildItem -Path lib,src,tests -Filter "*UI_NET.csproj" -Recurse | ForEach-Object {
(Get-Content $_.FullName) | ForEach-Object { $_ -replace "(<\/PropertyGroup>)", " <UseWPF>true</UseWPF>`n`$1" } | Set-Content $_.FullName
}

Get-ChildItem -Path . -Directory -Filter "obj" -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path . -Directory -Filter "bin" -Recurse | Remove-Item -Force -Recurse
(Get-Content Renode_NET.sln) | ForEach-Object { $_ -replace "(ReleaseHeadless\|Any .+ = )Debug", '$1Release' } | Set-Content Renode_NET.sln

# Prepare, build, and install (combined and simplified)
New-Item -ItemType Directory -Path "$SRC_DIR/src/Infrastructure/src/Emulator/Cores/bin/Release/lib", "$SRC_DIR/output/bin/Release/net$framework_version", "$PREFIX/bin", "$PREFIX/libexec/$PKG_NAME", "$PREFIX/share/$PKG_NAME/{scripts,platforms,tests}", "$SRC_DIR/license-files" -Force | Out-Null

# Symbolic links are tricky in Windows, use Copy-Item instead
Copy-Item -Path "$PREFIX/Library/lib/renode-cores/*" -Destination "$SRC_DIR/src/Infrastructure/src/Emulator/Cores/bin/Release/lib" -Force

Remove-Item -Path "$SRC_DIR/src/Infrastructure/src/Emulator/Cores/translate*.cproj" -Force

Copy-Item -Path "$SRC_DIR/src/Infrastructure/src/Emulator/Cores/windows-properties_NET.csproj" -Destination "$SRC_DIR/output/properties.csproj" -Force

dotnet build -p:GUI_DISABLED=true -p:Configuration=ReleaseHeadless -p:GenerateFullPaths=true -p:Platform="Any CPU" "$SRC_DIR/Renode_NET.sln"
"dotnet" | Out-File -FilePath "$SRC_DIR/output/bin/Release/build_type" -Encoding ascii

Copy-Item "$SRC_DIR/lib/resources/llvm/libllvm-disas.dll" "$SRC_DIR/output/bin/Release/" -Force

Copy-Item -Path "$SRC_DIR/output/bin/Release/net$framework_version-windows" -Destination "$PREFIX/libexec/$PKG_NAME/" -Recurse -Force
Copy-Item -Path "$SRC_DIR/scripts" -Destination "$PREFIX/share/$PKG_NAME/scripts" -Recurse -Force
Copy-Item -Path "$SRC_DIR/platforms" -Destination "$PREFIX/share/$PKG_NAME/platforms" -Recurse -Force

& bash.exe -c "./tools/packaging/common_copy_licenses.sh ./license-files windows ./tools/packaging"

# Create renode.cmd
New-Item -ItemType File -Path "$PREFIX\bin\renode.cmd" -Force
@"
@echo off
call %DOTNET_ROOT%\dotnet exec %CONDA_PREFIX%\libexec\renode-cli\net$framework_version-windows\Renode.dll %*
"@ | Out-File -FilePath "$PREFIX\bin\renode.cmd" -Encoding ascii

# Install tests
install_tests "$SRC_DIR/test-bundle" "$PKG_NAME" "$PREFIX"

try {
Get-Process -Name *dotnet* | Stop-Process
conda env remove -p $BUILD_PREFIX -y
}
catch {
Write-Warning "Error removing the build environment: $_"
}

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
--- a/Renode_NET.sln.orig
+++ b/Renode_NET.sln
@@ -718,4 +718,4 @@
{B83F88C1-35CB-4A41-A1B2-3EA252300C11}.Release|Any CPU.Build.0 = Release|Any CPU
- {B83F88C1-35CB-4A41-A1B2-3EA252300C11}.ReleaseHeadless|Any CPU.ActiveCfg = Debug|Any CPU
- {B83F88C1-35CB-4A41-A1B2-3EA252300C11}.ReleaseHeadless|Any CPU.Build.0 = Debug|Any CPU
+ {B83F88C1-35CB-4A41-A1B2-3EA252300C11}.ReleaseHeadless|Any CPU.ActiveCfg = Release|Any CPU
+ {B83F88C1-35CB-4A41-A1B2-3EA252300C11}.ReleaseHeadless|Any CPU.Build.0 = Release|Any CPU
{B83F88C1-35CB-4A41-A1B2-3EA252300C11}.ReleaseMono|Any CPU.ActiveCfg = Debug|Any CPU
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--- a/lib/termsharp/TermSharp_NET.csproj
+++ b/lib/termsharp/TermSharp_NET.csproj
@@ -11 +11 @@
- <PackageReference Include="System.Drawing.Common" Version="5.0.2" />
+ <PackageReference Include="System.Drawing.Common" Version="5.0.3" />
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--- a/lib/termsharp/xwt/Xwt.Gtk/Xwt.Gtk3_NET.csproj
+++ b/lib/termsharp/xwt/Xwt.Gtk/Xwt.Gtk3_NET.csproj
@@ -40 +40 @@
- <PackageReference Include="System.Drawing.Common" Version="5.0.2" />
+ <PackageReference Include="System.Drawing.Common" Version="5.0.3" />
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--- a/tools/packaging/common_copy_licenses.sh
+++ b/tools/packaging/common_copy_licenses.sh
@@ -1 +1 @@
-#!/usr/bin/env bash
+#!/usr/bin/bash
@@ -102 +102 @@
-if [ $# -ne 2 ]; then
+if [ $# -ne 3 ]; then
@@ -106 +106 @@
-BASE="$(dirname $0)/../.."
+BASE="$3/../.."
@@ -170,5 +170,0 @@
-LICENSE_COUNT=$(ls $TARGET/*-license | wc -w)
-echo
-echo "The target directory for licenses ($TARGET) contains $LICENSE_COUNT license files:"
-ls $TARGET
-echo
67 changes: 67 additions & 0 deletions recipes/renode-cli/patches/resolve-posix-unix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
--- a/src/Plugins/VerilatorPlugin/Connection/SocketVerilatorConnection.cs
+++ b/src/Plugins/VerilatorPlugin/Connection/SocketVerilatorConnection.cs
@@ -7,4 +7,6 @@
using System;
+using System.IO;
using System.Net;
using System.Net.Sockets;
+using System.Security.AccessControl;
using System.Text;
@@ -19,2 +21,3 @@
using Antmicro.Renode.Peripherals;
+using Antmicro.Renode.Peripherals.Bus;
using Antmicro.Renode.Peripherals.CPU;
@@ -212,3 +215,7 @@
#if !PLATFORM_WINDOWS
- Mono.Unix.Native.Syscall.chmod(value, FilePermissions.S_IRWXU); //setting permissions to 0x700
+ // Use built-in .NET methods for file permissions
+ var fileInfo = new FileInfo(value);
+ var fileSecurity = fileInfo.GetAccessControl();
+ fileSecurity.AddAccessRule(new FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Allow));
+ fileInfo.SetAccessControl(fileSecurity);
#endif
--- a/src/Renode/Backends/Terminals/UartPtyTerminal.cs 2024-09-17 03:09:19.000000000 -0500
+++ b/src/Renode/Backends/Terminals/UartPtyTerminal.cs 2025-01-25 21:32:28.901091634 -0600
@@ -10,2 +10,3 @@
using System;
+using System.IO;
using Antmicro.Renode.Peripherals.UART;
@@ -14,4 +15,2 @@
using Antmicro.Migrant;
-using Mono.Unix;
-using System.IO;
#endif
@@ -49,3 +48,3 @@
{
- symlink.Delete();
+ File.Delete(linkName);
}
@@ -53,3 +52,3 @@
{
- throw new RecoverableException(string.Format("There was an error when removing symlink `{0}': {1}", symlink.FullName, e.Message));
+ throw new RecoverableException(string.Format("There was an error when removing symlink `{0}': {1}", symlink, e.Message));
}
@@ -105,4 +104,4 @@
{
- var slavePtyFile = new UnixFileInfo(ptyStream.SlaveName);
- symlink = slavePtyFile.CreateSymbolicLink(linkName);
+ symlink = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
+ File.CreateSymbolicLink(symlink, ptyStream.SlaveName);
}
@@ -114,4 +113,2 @@

- private UnixSymbolicLinkInfo symlink;
-
private readonly bool forceCreate;
@@ -122,2 +119,4 @@
private IOProvider io;
+ [Transient]
+ private string symlink;
}
--- a/src/Renode/Program.cs 2024-09-17 03:09:19.000000000 -0500
+++ b/src/Renode/Program.cs 2025-01-26 11:07:01.717709447 -0600
@@ -98,3 +98,3 @@
ConfigurationManager.Instance.Get("general", "terminal", "Termsharp");
- ConsoleBackend.Instance.ReportRepeatingLines = !ConfigurationManager.Instance.Get("general", "collapse-repeated-log-entries", true);
+ // Logger.LogEntriesLimit = ConfigurationManager.Instance.Get("general", "log-entries-limit", 10000);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--- a/src/Renode/Renode_NET.csproj
+++ b/src/Renode/Renode_NET.csproj
@@ -29 +29 @@
- <PackageReference Include="IronPython.StdLib" Version="2.7.11" />
+ <PackageReference Include="IronPython.StdLib" Version="2.7.12" />
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
--- a/src/Infrastructure/src/Emulator/Main/Tests/UnitTests/UnitTests_NET.csproj
+++ b/src/Infrastructure/src/Emulator/Main/Tests/UnitTests/UnitTests_NET.csproj
@@ -18,5 +18,4 @@
<PackageReference Include="Moq" Version="4.18.1" />
- <Reference Include="IronPython">
- <HintPath>..\..\..\..\..\..\..\lib\resources\libraries\IronPython.dll</HintPath>
- </Reference>
+ <PackageReference Include="IronPython" Version="2.7.12" />
+ <PackageReference Include="IronPython.StdLib" Version="2.7.12" />
<PackageReference Include="NUnit" Version="3.13.1" />
--- a/src/Infrastructure/src/Emulator/Peripherals/Peripherals/Sensors/PAC1934.cs
+++ b/src/Infrastructure/src/Emulator/Peripherals/Peripherals/Sensors/PAC1934.cs
@@ -131,1 +131,1 @@
- return BitConverter.GetBytes(registers.Read(offset));
+ return BitConverter.GetBytes((short)registers.Read(offset));
46 changes: 46 additions & 0 deletions recipes/renode-cli/patches/update-cores.template_NET.csproj.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
--- a/src/Infrastructure/src/Emulator/Cores/cores.template_NET.csproj 2024-09-17 05:29:16.000000000 -0500
+++ b/src/Infrastructure/src/Emulator/Cores/cores.template_NET.csproj 2025-01-27 21:35:32.396468884 -0600
@@ -1,4 +1,2 @@
<Project DefaultTargets="Build">
- <UsingTask AssemblyFile="$(MSBuildProjectDirectory)/../../../../../lib/cctask/CCTask/bin/Release/net6.0/CCTask.dll" TaskName="EnvironmentTask" />
-
<PropertyGroup>
@@ -17,18 +15,9 @@

- <Target Name="CompileTranslationLib" DependsOnTargets="VerifyProperties">
- <!-- Due to a bug in some versions of xbuild we set default value of $(TargetWordSize) and $(TargetInsnStartExtraWords)
- before passing it to 'translate.cproj' as it is impossible to overwrite them later. -->
- <PropertyGroup>
- <TargetWordSize Condition=" $(TargetWordSize) == '' ">32</TargetWordSize>
- <TargetInsnStartExtraWords Condition=" $(TargetInsnStartExtraWords) == '' ">0</TargetInsnStartExtraWords>
- </PropertyGroup>
- <MSBuild Projects="./translate_NET.cproj" Properties="AdditionalCompilationFlags=$(AdditionalCompilationFlags);HostArchitecture=i386;HostEndianess=le;TargetEndianess=%(Endianess.Identity);TargetArchitecture=$(Architecture);EmulatedTarget=$(EmulatedTarget);Configuration=$(Configuration);TargetWordSize=$(TargetWordSize);TargetInsnStartExtraWords=$(TargetInsnStartExtraWords);CompilerPath=$(CompilerPath);LinkerPath=$(LinkerPath);ArPath=$(ArPath);CurrentPlatform=$(CurrentPlatform)">
- <Output TaskParameter="TargetOutputs" ItemName="TranslationLibraries" />
- </MSBuild>
- </Target>
-
- <Target Name="PrepareEmbeddedResources" BeforeTargets="ResolveReferences" DependsOnTargets="CompileTranslationLib">
+ <Target Name="PrepareEmbeddedResources" BeforeTargets="ResolveReferences" >
<ItemGroup>
- <EmbeddedResource Include="@(TranslationLibraries)">
- <LogicalName>Antmicro.Renode.%(Filename)%(Extension)</LogicalName>
+ <EmbeddedResource Include="..\Cores\bin\$(Configuration)\lib\translate-$(Architecture)-le.so" Condition=" '%(Endianess.Identity)' == 'le' ">
+ <LogicalName>Antmicro.Renode.translate-$(Architecture)-le.so</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Cores\bin\$(Configuration)\lib\translate-$(Architecture)-be.so" Condition=" '%(Endianess.Identity)' == 'be' ">
+ <LogicalName>Antmicro.Renode.translate-$(Architecture)-be.so</LogicalName>
</EmbeddedResource>
@@ -36,11 +25,2 @@
</Target>
-
- <Target Name="ActualClean" DependsOnTargets="_PrepareProperties">
- <MSBuild Projects="translate_NET.cproj" Targets="Clean" />
- </Target>
-
- <!-- It is intended to have 'Clean' and 'ActualClean' targets separated.
- Thanks to this multiple calling of 'Clean' from MSBuild task will not cause
- 'ActualClean' to run more than once. -->
- <Target Name="Clean" DependsOnTargets="ActualClean" />
-</Project>
+</Project>
\ No newline at end of file
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--- a/tools/building/createAssemblyInfo.sh
+++ b/tools/building/createAssemblyInfo.sh
@@ -7 +7 @@
-CURRENT_INFORMATIONAL_VERSION="`git rev-parse --short=8 HEAD`"
+CURRENT_INFORMATIONAL_VERSION="03756cb5"
Loading