Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bun-pty for openSUSE:Factory checked 
in at 2026-10-01 16:44:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bun-pty (Old)
 and      /work/SRC/openSUSE:Factory/.bun-pty.new.1253 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bun-pty"

Thu Oct  1 16:44:48 2026 rev:3 rq:1381675 version:0.4.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/bun-pty/bun-pty.changes  2026-09-24 
22:59:37.851676215 +0200
+++ /work/SRC/openSUSE:Factory/.bun-pty.new.1253/bun-pty.changes        
2026-10-01 16:45:35.647391938 +0200
@@ -1,0 +2,10 @@
+Wed Sep 30 08:02:58 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 0.4.11:
+  * Add native Windows ARM64 support (#46): ship a rust_pty_arm64.dll
+    and select it at run time; the x64 DLL filename is unchanged
+  * Move native library filename resolution into src/library.ts
+  * Linux ABI unchanged: same 45 vendored crates and no exported-symbol
+    changes; %check still verifies all eight dlsym entry points
+
+-------------------------------------------------------------------

Old:
----
  bun-pty-0.4.10.tar.gz

New:
----
  bun-pty-0.4.11.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bun-pty.spec ++++++
--- /var/tmp/diff_new_pack.9XJNDA/_old  2026-10-01 16:45:36.577430925 +0200
+++ /var/tmp/diff_new_pack.9XJNDA/_new  2026-10-01 16:45:36.580431051 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           bun-pty
-Version:        0.4.10
+Version:        0.4.11
 Release:        0
 Summary:        Pseudo-terminal library for Bun FFI consumers
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.9XJNDA/_old  2026-10-01 16:45:36.654434153 +0200
+++ /var/tmp/diff_new_pack.9XJNDA/_new  2026-10-01 16:45:36.661434447 +0200
@@ -1,6 +1,6 @@
 <services>
   <service name="cargo_vendor" mode="manual">
-    <param name="srctar">bun-pty-0.4.10.tar.gz</param>
+    <param name="srctar">bun-pty-0.4.11.tar.gz</param>
     <param name="cargotoml">rust-pty/Cargo.toml</param>
     <param name="compression">zst</param>
   </service>

++++++ bun-pty-0.4.10.tar.gz -> bun-pty-0.4.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/.github/workflows/publish.yml 
new/bun-pty-0.4.11/.github/workflows/publish.yml
--- old/bun-pty-0.4.10/.github/workflows/publish.yml    2026-06-15 
13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/.github/workflows/publish.yml    2026-09-30 
07:52:47.000000000 +0200
@@ -47,6 +47,10 @@
           - runner: windows-latest
             target: x86_64-pc-windows-gnu
             out:    rust_pty.dll
+          - runner: windows-11-arm
+            target: aarch64-pc-windows-msvc
+            out:    rust_pty_arm64.dll
+            rustflags: -C target-feature=+crt-static
 
     steps:
       - uses: actions/checkout@v4
@@ -74,6 +78,8 @@
 
       - name: Build rust-pty
         if: "!matrix.zigbuild_target"
+        env:
+          RUSTFLAGS: ${{ matrix.rustflags }}
         run: |
           cd rust-pty
           cargo build --release --target ${{ matrix.target }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/.github/workflows/test.yml 
new/bun-pty-0.4.11/.github/workflows/test.yml
--- old/bun-pty-0.4.10/.github/workflows/test.yml       2026-06-15 
13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/.github/workflows/test.yml       2026-09-30 
07:52:47.000000000 +0200
@@ -24,7 +24,9 @@
             target: aarch64-apple-darwin
           - runner: windows-latest
             target: x86_64-pc-windows-gnu
-
+          - runner: windows-11-arm
+            target: aarch64-pc-windows-msvc
+            rustflags: -C target-feature=+crt-static
 
     steps:
       - uses: actions/checkout@v4
@@ -55,6 +57,8 @@
 
       - name: Build Rust library
         if: "!matrix.zigbuild_target"
+        env:
+          RUSTFLAGS: ${{ matrix.rustflags }}
         run: |
           cd rust-pty
           cargo build --release --target ${{ matrix.target }}
@@ -62,6 +66,13 @@
       - name: Install dependencies
         run: bun install
 
+      - name: Prepare Windows ARM64 library
+        if: matrix.target == 'aarch64-pc-windows-msvc'
+        shell: pwsh
+        run: |
+          Copy-Item rust-pty/target/${{ matrix.target }}/release/rust_pty.dll 
rust-pty/target/release/rust_pty_arm64.dll
+          Remove-Item rust-pty/target/release/rust_pty.dll
+
       - name: Run unit tests
         run: bun run test:unit
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/CHANGELOG.md 
new/bun-pty-0.4.11/CHANGELOG.md
--- old/bun-pty-0.4.10/CHANGELOG.md     2026-06-15 13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/CHANGELOG.md     2026-09-30 07:52:47.000000000 +0200
@@ -5,6 +5,16 @@
 The format is based on [Keep a 
Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic 
Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [0.4.11] - 2026-09-30
+
+### Added
+- Native Windows ARM64 support (#46)
+  - Ship a pre-built `rust_pty_arm64.dll` (built on GitHub's `windows-11-arm` 
runner for `aarch64-pc-windows-msvc`) alongside the existing x64 
`rust_pty.dll`, whose filename is unchanged
+  - Link the MSVC runtime statically (`-C target-feature=+crt-static`) to 
avoid a Visual C++ Redistributable dependency
+  - Select the ARM64 DLL at runtime and in the `bun build --compile` embed 
path, falling back to `rust_pty.dll`
+  - Move native library filename resolution into `src/library.ts` with unit 
tests
+  - Add a `windows-11-arm` job to the test matrix that runs the unit and 
integration tests against the exact ARM64 artifact
+
 ## [0.4.10] - 2026-06-15
 
 ### Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/package.json 
new/bun-pty-0.4.11/package.json
--- old/bun-pty-0.4.10/package.json     2026-06-15 13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/package.json     2026-09-30 07:52:47.000000000 +0200
@@ -1,6 +1,6 @@
 {
        "name": "bun-pty",
-       "version": "0.4.10",
+       "version": "0.4.11",
        "description": "Cross-platform pseudoterminal (PTY) implementation for 
Bun with native performance",
        "main": "./src/index.ts",
        "types": "./dist/index.d.ts",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/src/library.ts 
new/bun-pty-0.4.11/src/library.ts
--- old/bun-pty-0.4.10/src/library.ts   1970-01-01 01:00:00.000000000 +0100
+++ new/bun-pty-0.4.11/src/library.ts   2026-09-30 07:52:47.000000000 +0200
@@ -0,0 +1,20 @@
+export function libraryFilenames(platform: typeof process.platform, arch: 
string, musl: boolean) {
+       if (platform === "darwin") {
+               return arch === "arm64"
+                       ? ["librust_pty_arm64.dylib", "librust_pty.dylib"]
+                       : ["librust_pty.dylib"];
+       }
+       if (platform === "win32") {
+               return arch === "arm64"
+                       ? ["rust_pty_arm64.dll", "rust_pty.dll"]
+                       : ["rust_pty.dll"];
+       }
+       if (musl) {
+               return arch === "arm64"
+                       ? ["librust_pty_arm64_musl.so", "librust_pty_musl.so", 
"librust_pty_arm64.so", "librust_pty.so"]
+                       : ["librust_pty_musl.so", "librust_pty.so"];
+       }
+       return arch === "arm64"
+               ? ["librust_pty_arm64.so", "librust_pty.so"]
+               : ["librust_pty.so"];
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/src/terminal.integration.test.ts 
new/bun-pty-0.4.11/src/terminal.integration.test.ts
--- old/bun-pty-0.4.10/src/terminal.integration.test.ts 2026-06-15 
13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/src/terminal.integration.test.ts 2026-09-30 
07:52:47.000000000 +0200
@@ -421,8 +421,11 @@
     let hasExited = false;
 
     const terminal = new Terminal("powershell.exe", [
+      "-NoLogo",
+      "-NoProfile",
+      "-NonInteractive",
       "-Command",
-      "Write-Output 'Hello from PowerShell'",
+      "Microsoft.PowerShell.Utility\\Write-Output 'Hello from PowerShell'",
     ]);
     terminals.push(terminal);
 
@@ -447,7 +450,7 @@
     await new Promise((resolve) => setTimeout(resolve, 200));
 
     expect(dataReceived).toContain("Hello from PowerShell");
-  });
+  }, 15000);
 
   // Windows-specific: Test environment variables
   test.skipIf(!isWindows)("Terminal passes environment variables on Windows", 
async () => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/src/terminal.test.ts 
new/bun-pty-0.4.11/src/terminal.test.ts
--- old/bun-pty-0.4.10/src/terminal.test.ts     2026-06-15 13:17:45.000000000 
+0200
+++ new/bun-pty-0.4.11/src/terminal.test.ts     2026-09-30 07:52:47.000000000 
+0200
@@ -1,6 +1,20 @@
 import { expect, test, describe } from "bun:test";
 import { DEFAULT_COLS, DEFAULT_ROWS, DEFAULT_FILE, DEFAULT_NAME } from 
"./terminal";
 import type { IPtyForkOptions, IExitEvent } from "./interfaces";
+import { libraryFilenames } from "./library";
+
+describe("native library resolution", () => {
+       test("prefers the ARM64 DLL on Windows ARM64", () => {
+               expect(libraryFilenames("win32", "arm64", false)).toEqual([
+                       "rust_pty_arm64.dll",
+                       "rust_pty.dll",
+               ]);
+       });
+
+       test("keeps the generic DLL name on Windows x64", () => {
+               expect(libraryFilenames("win32", "x64", 
false)).toEqual(["rust_pty.dll"]);
+       });
+});
 
 describe("Terminal configuration and options", () => {
        describe("default values", () => {
@@ -394,4 +408,3 @@
                expect(DEFAULT_NAME).toBe("xterm");
        });
 });
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bun-pty-0.4.10/src/terminal.ts 
new/bun-pty-0.4.11/src/terminal.ts
--- old/bun-pty-0.4.10/src/terminal.ts  2026-06-15 13:17:45.000000000 +0200
+++ new/bun-pty-0.4.11/src/terminal.ts  2026-09-30 07:52:47.000000000 +0200
@@ -4,6 +4,7 @@
 import { Buffer } from "node:buffer";
 import { EventEmitter } from "./interfaces";
 import type { IPty, IPtyForkOptions, IExitEvent } from "./interfaces";
+import { libraryFilenames } from "./library";
 import { join, dirname, basename } from "node:path";
 import { existsSync, readFileSync } from "node:fs";
 
@@ -50,7 +51,7 @@
        // See: https://github.com/sursaone/bun-pty/issues/19
        try {
                // @ts-ignore - require returns path for binary files in Bun
-               const embeddedPath = 
require(`../rust-pty/target/release/${process.platform === "win32" ? 
"rust_pty.dll" : process.platform === "darwin" ? (process.arch === "arm64" ? 
"librust_pty_arm64.dylib" : "librust_pty.dylib") : process.arch === "arm64" ? 
"librust_pty_arm64.so" : "librust_pty.so"}`);
+               const embeddedPath = 
require(`../rust-pty/target/release/${process.platform === "win32" ? 
(process.arch === "arm64" ? "rust_pty_arm64.dll" : "rust_pty.dll") : 
process.platform === "darwin" ? (process.arch === "arm64" ? 
"librust_pty_arm64.dylib" : "librust_pty.dylib") : process.arch === "arm64" ? 
"librust_pty_arm64.so" : "librust_pty.so"}`);
                if (embeddedPath && !musl) return embeddedPath;
        } catch {
                // Not running as compiled binary, fall through to dynamic 
resolution
@@ -74,20 +75,7 @@
        const arch = process.arch;
 
        // Try both architecture-specific and generic filenames
-       const filenames =
-               platform === "darwin"
-                       ? arch === "arm64"
-                               ? ["librust_pty_arm64.dylib", 
"librust_pty.dylib"]
-                               : ["librust_pty.dylib"]
-                       : platform === "win32"
-                       ? ["rust_pty.dll"]
-                       : musl
-                       ? arch === "arm64"
-                               ? ["librust_pty_arm64_musl.so", 
"librust_pty_musl.so", "librust_pty_arm64.so", "librust_pty.so"]
-                               : ["librust_pty_musl.so", "librust_pty.so"]
-                       : arch === "arm64"
-                       ? ["librust_pty_arm64.so", "librust_pty.so"]
-                       : ["librust_pty.so"];
+       const filenames = libraryFilenames(platform, arch, musl);
 
        // Start from the current module's location
        const base = Bun.fileURLToPath(import.meta.url);

Reply via email to