Skip to content

Commit bf32da8

Browse files
committed
Merge branch 'master' into ms-hamlib-4-7
2 parents e094ce7 + 3e91ee5 commit bf32da8

File tree

8 files changed

+58
-11
lines changed

8 files changed

+58
-11
lines changed

README.md

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,36 @@ one to build FreeDV for ARM as well as for Intel Windows systems.
141141

142142
### Instructions
143143

144-
1. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
145-
2. Decompress into your preferred location. For example: `tar xvf llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64.tar.xz` (The exact filename here will depend on the file downloaded in step (1). Note that for best results, you should use a build containing "ucrt" in the file name corresponding to the platform which you're building the Windows binary from.)
146-
3. Add LLVM MinGW to your PATH: `export PATH=/path/to/llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64/bin:$PATH`. (The folder containing the LLVM tools is typically named the same as the file downloaded in step (2) minus the extension.)
147-
4. Create a build folder inside freedv-gui: `mkdir build_windows`
148-
5. Run CMake to configure the FreeDV build: `cd build_windows && cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../cross-compile/freedv-mingw-llvm-[architecture].cmake ..`
149-
* Valid architectures are: aarch64 (64 bit ARM), i686 (32 bit Intel/AMD), x86_64 (64 bit Intel/AMD)
150-
6. Build FreeDV as normal: `make` (You can also add `-j[num]` to the end of this command to use multiple cores and shorten the build time.)
151-
7. Create FreeDV installer: `make package`
144+
1. Install WINE (example commands for Ubuntu below):
145+
146+
```
147+
sudo dpkg --add-architecture i386
148+
sudo sh -c "curl https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor > /etc/apt/trusted.gpg.d/winehq.gpg"
149+
sudo sh -c "apt-add-repository \"https://dl.winehq.org/wine-builds/ubuntu\""
150+
sudo apt-get update
151+
sudo apt install -y --install-recommends winehq-staging
152+
WINEPREFIX=`pwd`/wine-env WINEARCH=win64 DISPLAY= winecfg /v win10
153+
```
154+
155+
2. Install Python inside the WINE environment:
156+
157+
```
158+
export WINEPREFIX=`pwd`/wine-env
159+
wget https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe
160+
WINEARCH=win64 DISPLAY= wine ./python-3.14.3-amd64.exe
161+
DISPLAY= wine c:\\Program\ Files\\Python314\\Scripts\\pip.exe install numpy==2.3.5
162+
```
163+
164+
(*Note: if using WSL2, you will need to choose "Customize Installation", skip "Optional Features" (hit Next), and then in "Advanced Options" check "Install Python 3.14 for all users" inside Python setup.*)
165+
166+
3. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
167+
4. Decompress into your preferred location. For example: `tar xvf llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64.tar.xz` (The exact filename here will depend on the file downloaded in step (1). Note that for best results, you should use a build containing "ucrt" in the file name corresponding to the platform which you're building the Windows binary from.)
168+
5. Add LLVM MinGW to your PATH: `export PATH=/path/to/llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64/bin:$PATH`. (The folder containing the LLVM tools is typically named the same as the file downloaded in step (2) minus the extension.)
169+
6. Create a build folder inside freedv-gui: `mkdir build_windows`
170+
7. Run CMake to configure the FreeDV build: `cd build_windows && cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../cross-compile/freedv-mingw-llvm-[architecture].cmake -DPython3_ROOT_DIR=$WINEPREFIX/drive_c/Program\ Files/Python314 ..`
171+
* Valid architectures are: aarch64 (64 bit ARM), x86_64 (64 bit Intel/AMD)
172+
8. Build FreeDV as normal: `make` (You can also add `-j[num]` to the end of this command to use multiple cores and shorten the build time.)
173+
9. Create FreeDV installer: `make package`
152174

153175
## Building and installing on macOS
154176

USER_MANUAL.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,8 @@ <h2 data-number="18.1" id="v2.3.0-tbd-2026"><span
11871187
<li>Update audio device list in Easy Setup after opening advanced audio
11881188
setup. (PR #1223)</li>
11891189
<li>Easy Setup: Fix crash while displaying Hamlib error. (PR #1224)</li>
1190+
<li>Force numpy to 2.3.x due to illegal instruction errors. (PR
1191+
#1230)</li>
11901192
</ul></li>
11911193
<li>Enhancements:
11921194
<ul>
@@ -1197,6 +1199,11 @@ <h2 data-number="18.1" id="v2.3.0-tbd-2026"><span
11971199
<ul>
11981200
<li>Windows/macOS: Update Python to 3.14.3. (PR #1221)</li>
11991201
</ul></li>
1202+
<li>Documentation:
1203+
<ul>
1204+
<li>Update README instructions to reflect current Windows build steps.
1205+
(PR #1232)</li>
1206+
</ul></li>
12001207
</ol>
12011208
<h2 data-number="18.2" id="v2.2.1-february-2026"><span
12021209
class="header-section-number">18.2</span> V2.2.1 February 2026</h2>

USER_MANUAL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,10 +882,13 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
882882
* FreeDV Reporter: Fix display issues on non-English systems. (PR #1217)
883883
* Update audio device list in Easy Setup after opening advanced audio setup. (PR #1223)
884884
* Easy Setup: Fix crash while displaying Hamlib error. (PR #1224)
885+
* Force numpy to 2.3.x due to illegal instruction errors. (PR #1230)
885886
2. Enhancements:
886887
* FreeDV Reporter: Use ItemsAdded/ItemsDeleted instead of Cleared() for performance. (PR #1212)
887888
3. Build system:
888889
* Windows/macOS: Update Python to 3.14.3. (PR #1221)
890+
4. Documentation:
891+
* Update README instructions to reflect current Windows build steps. (PR #1232)
889892

890893
## V2.2.1 February 2026
891894

USER_MANUAL.pdf

-120 Bytes
Binary file not shown.

appimage/make-appimage.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ source rade-venv/bin/activate # || { echo "ERROR: activate venv failed"; exit 1;
6262
# Clear cache in venv
6363
pip3 cache purge
6464
pip3 install --upgrade pip || echo "WARNING: pip upgrade failed"
65-
pip3 install numpy
65+
pip3 install numpy==2.3.5
6666
pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cpu
6767
pip3 install matplotlib
6868
cd -

cmake/rade-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
torch==2.9.1
2+
numpy==2.3.5
23
matplotlib

generate-univ-pkgs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ cp ../delocating.py.patched pkg-venv/lib/python3.12/site-packages/delocate/deloc
3636
# Download RADE dependencies appropriate for both architectures (x86_64 and arm64)
3737

3838
mkdir arm64
39-
pip3 download --platform macosx_11_0_arm64 --python-version 3.14 --only-binary=:all: filelock typing-extensions setuptools sympy networkx jinja2 fsspec optree opt-einsum numpy matplotlib
39+
pip3 download --platform macosx_11_0_arm64 --python-version 3.14 --only-binary=:all: filelock typing-extensions setuptools sympy networkx jinja2 fsspec optree opt-einsum numpy==2.3.5 matplotlib
4040
wget -O arm64/torch-2.9.1a0+gitd38164a-cp314-cp314-macosx_11_0_arm64.whl https://github.com/tmiw/pytorch-macos-packages/releases/download/v2.9.1-20251129/torch-2.9.1a0+gitd38164a-cp314-cp314-macosx_11_0_arm64.whl
4141
mv *arm64.whl arm64
4242

4343
mkdir x86_64
44-
pip3 download --platform macosx_11_0_x86_64 --python-version 3.14 --only-binary=:all: filelock typing-extensions setuptools sympy networkx jinja2 fsspec optree opt-einsum numpy matplotlib
44+
pip3 download --platform macosx_11_0_x86_64 --python-version 3.14 --only-binary=:all: filelock typing-extensions setuptools sympy networkx jinja2 fsspec optree opt-einsum numpy==2.3.5 matplotlib
4545
wget -O x86_64/torch-2.9.1a0+gitd38164a-cp314-cp314-macosx_11_0_x86_64.whl https://github.com/tmiw/pytorch-macos-packages/releases/download/v2.9.1-20251129/torch-2.9.1a0+gitd38164a-cp314-cp314-macosx_11_0_x86_64.whl
4646
#rm numpy*
4747
#wget -O x86_64/numpy-2.3.2-cp312-cp312-macosx_11_0_x86_64.whl https://k6aq.net/freedv-build/numpy-2.3.2-cp312-cp312-macosx_11_0_x86_64.whl

src/integrations/flex/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@ $ SSDR_RADIO_ADDRESS=192.168.1.2 PYTHONPATH=$(pwd)/rade_src src/integrations/fle
4242
To ensure proper reporting to FreeDV Reporter by the waveform, make sure that your callsign is properly
4343
configured in SmartSDR (i.e. it doesn't say "FLEX" when first starting).
4444

45+
### Executing on Windows Subsystem For Linux (WSL)
46+
47+
Prior to building the waveform, WSL needs some settings changes to allow it to have the required network
48+
support. Edit .wslconfig to contain the following:
49+
50+
```
51+
[wsl2]
52+
networkingMode=Mirrored
53+
firewall=false
54+
```
55+
56+
Then, from a PowerShell session running as Administrator, execute `Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow`.
57+
You will then need to restart WSL by executing `wsl.exe --shutdown` and then reopening the Linux instance.
58+
4559
## Full list of options
4660

4761
```

0 commit comments

Comments
 (0)