SimulIDE 1.1.0-SR2 · Native FreeBSD Packaging & Desktop Integration
Quote from Florin on September 25, 2026, 5:13 pmhttps://github.com/EvonyMaster/SimulIDE-FreeBSD
SimulIDE for FreeBSD is an independent community project focused on bringing SimulIDE 1.1.0-SR2 into a clean, native FreeBSD installation model.
The project began with a simple objective:
Take a working native FreeBSD build of SimulIDE and turn it into a properly integrated FreeBSD package.
The result is an installation managed by the native FreeBSD package ecosystem, with Qt dependencies resolved by
pkg, application data placed in the standard filesystem hierarchy, and desktop integration provided through XDG application and icon infrastructure.This work was carried out by Florin Mitroi, with development, debugging, reverse-engineering of the build system and packaging assistance from ChatGPT.
This repository is not affiliated with or maintained by the official SimulIDE project.
The project went beyond simply compiling an executable.
The development process covered the complete path from source code to a functioning desktop application:
SimulIDE 1.1.0-SR2 source │ ▼ Native FreeBSD build │ ▼ FreeBSD compatibility fixes │ ▼ Runtime validation │ ▼ FreeBSD Port │ ┌─────┴─────┐ ▼ ▼ Qt 5 Runtime dependencies data │ │ └─────┬─────┘ ▼ FreeBSD .pkg │ ▼ Desktop integration │ ▼ SimulIDEThe resulting package includes:
- the SimulIDE executable;
- the complete runtime
datatree;- the bundled examples;
- Qt 5 runtime dependencies;
- an XDG
.desktopentry;- a dedicated application icon;
- desktop and icon-cache integration;
- standard FreeBSD
/usr/localinstallation paths.
A pre-built FreeBSD package is available from the project's GitHub Releases:
Download SimulIDE 1.1.0-SR2 for FreeBSD amd64
The package is intended for:
FreeBSD 15.x amd64Install the downloaded package with:
sudo pkg install ./simulide-1.1.0.pkg
pkgwill resolve the required Qt 5 runtime dependencies automatically.The FreeBSD Port is also included in this repository:
cd freebsd/ports/simulide make packageThe generated package will be available at:
work/pkg/simulide-1.1.0.pkgThis project therefore provides both a ready-to-install package and the FreeBSD packaging infrastructure used to build it.
The direct download link becomes active once the package is published as an asset of the latest GitHub Release.
Build the package from the FreeBSD Port:
cd freebsd/ports/simulide make packageThe generated package is:
work/pkg/simulide-1.1.0.pkgInstall it with:
sudo pkg install ./work/pkg/simulide-1.1.0.pkgAfter installation, SimulIDE is available as:
/usr/local/bin/simulideThe application can also be launched from a graphical application menu or Rofi.
The package follows the conventional FreeBSD
/usr/localhierarchy:/usr/local/bin/simulide /usr/local/share/simulide/ ├── data/ └── examples/ /usr/local/share/applications/simulide.desktop /usr/local/share/icons/hicolor/scalable/apps/simulide.svgThis allows SimulIDE to behave like a normal installed FreeBSD desktop application rather than an unpacked application directory.
The package does not ship private copies of Qt.
Instead, the Port declares the required Qt 5 components and lets FreeBSD's package manager resolve them:
qt5-core qt5-gui qt5-widgets qt5-xml qt5-concurrent qt5-network qt5-svg qt5-multimedia qt5-serialportThis approach keeps the application integrated with the host system and avoids duplicating system libraries inside the application package.
The first stage was simply getting SimulIDE to compile and run correctly on FreeBSD.
Once the native build was functional, the work moved into understanding how SimulIDE determines its runtime directories, how its Qt project installs resources, and how FreeBSD expects desktop software to be packaged.
One particularly important discovery was SimulIDE's runtime path handling.
The application determines its executable directory and checks for:
../share/simulideThat makes the following FreeBSD layout a natural fit:
/usr/local/bin/simulide /usr/local/share/simulideNo invasive modification of the application's runtime directory model was therefore necessary.
The packaging work then introduced:
- FreeBSD Port metadata;
- Qt dependency declarations;
- staged installation;
- package file validation;
- desktop integration;
- application icon integration;
- automatic packaging of the SimulIDE data and example trees.
The Port was repeatedly validated with:
make stage make check-plist make packageThe final package was then installed on the development machine using
pkgand launched directly from/usr/local/bin/simulide.
This project also documents the FreeBSD-specific compatibility work required to get SimulIDE 1.1.0-SR2 working reliably.
During development, the original build encountered compatibility issues in the AngelScript component.
Those issues were investigated directly against the FreeBSD source/build environment and corrected until the application built and ran successfully.
The repository therefore contains not only packaging metadata, but also the source tree used to reproduce the working FreeBSD build.
This port was developed on a real Apple MacBook Pro A1278 / MacBookPro9,2, rather than in a generic virtual machine.
Component Specification Machine Apple MacBook Pro A1278 Model MacBookPro9,2 Display 13-inch Year Mid-2012 CPU Intel Core i7-3520M Frequency 2.9 GHz CPU topology 2 cores / 4 threads RAM 16 GB DDR3 Memory Dual-channel Storage Kingston 480 GB SSD GPU Intel HD Graphics 4000 Operating system FreeBSD 15.1 amd64 GUI toolkit Qt 5 Desktop integration XDG / X11 The machine itself is part of the project's story: an almost fifteen-year-old Intel MacBook was used as the actual development and validation platform for the FreeBSD packaging work.
SimulIDE-FreeBSD/ │ ├── assets/ │ └── simulide.webp │ ├── freebsd/ │ └── ports/ │ └── simulide/ │ ├── files/ │ │ ├── simulide.desktop │ │ └── simulide.svg │ ├── Makefile │ └── pkg-descr │ ├── resources/ ├── src/ │ ├── COPYING ├── LICENSE-BSD-3-Clause.txt ├── README.md ├── SimulIDE.pro └── copyright.txt
The current Port intentionally concentrates on packaging and integration around the already validated FreeBSD build.
At this stage, the Port uses the SimulIDE executable produced during development rather than downloading and rebuilding the complete upstream source tree from a remote distfile.
That distinction is intentional and documented.
Source tree │ ├── Native FreeBSD build │ └── Validated executable │ ▼ FreeBSD Port │ ▼ pkg packageA future iteration can move toward a fully source-driven FreeBSD Port in which a clean checkout fetches the appropriate upstream source archive, applies the FreeBSD compatibility patch set, builds SimulIDE and produces the package without relying on a pre-existing development build.
The current repository provides the foundation for that evolution.
The final package was validated on the development system.
The resulting package size was approximately:
4.5 MBThe package was successfully installed with:
sudo pkg install ./work/pkg/simulide-1.1.0.pkgThe installed application was verified at:
/usr/local/bin/simulideSimulIDE successfully loaded its runtime environment from:
/usr/local/share/simulide/dataincluding its component definitions, compilers, assemblers and other runtime resources.
Many thanks to the SimulIDE developers and contributors for creating and maintaining an excellent open-source electronic circuit simulator and MCU development environment.
Without the original SimulIDE project, this FreeBSD port would not exist.
Special thanks to the FreeBSD Project, its developers, porters and contributors for the operating system, Ports Collection and packaging infrastructure that made this work possible.
FreeBSD's packaging model provided the foundation for turning the working build into a proper system-integrated application.
FreeBSD port and packaging: AnOnYmOuS
Development, debugging and packaging assistance: ChatGPT
This project represents a practical collaboration between a human developer working directly on the target hardware and an AI development assistant.
This repository contains work originating from two different licensing contexts.
The original SimulIDE source code is distributed under the:
GNU Affero General Public License v3.0 (AGPL-3.0)
The original license is preserved in:
COPYINGThe upstream SimulIDE source is not relicensed by this repository.
The original packaging and integration work contributed to this repository is released under:
BSD 3-Clause License
See:
LICENSE-BSD-3-Clause.txtThe two licenses are intentionally kept separate.
This repository therefore does not claim that the original SimulIDE source has been relicensed under BSD.
This project would not have been possible without the work of the communities behind the software it builds upon.
To the SimulIDE team: thank you for the simulator, the source code and the many years of work behind it.
To the FreeBSD community: thank you for building an operating system and packaging ecosystem where projects like this can be explored, adapted and shared.
To open-source contributors everywhere: this repository is another small example of what becomes possible when existing software, documentation, operating systems and development tools are available for people to study and build upon.
https://github.com/EvonyMaster/SimulIDE-FreeBSD
SimulIDE for FreeBSD is an independent community project focused on bringing SimulIDE 1.1.0-SR2 into a clean, native FreeBSD installation model.
The project began with a simple objective:
Take a working native FreeBSD build of SimulIDE and turn it into a properly integrated FreeBSD package.
The result is an installation managed by the native FreeBSD package ecosystem, with Qt dependencies resolved by pkg, application data placed in the standard filesystem hierarchy, and desktop integration provided through XDG application and icon infrastructure.
This work was carried out by Florin Mitroi, with development, debugging, reverse-engineering of the build system and packaging assistance from ChatGPT.
This repository is not affiliated with or maintained by the official SimulIDE project.
The project went beyond simply compiling an executable.
The development process covered the complete path from source code to a functioning desktop application:
SimulIDE 1.1.0-SR2 source
│
▼
Native FreeBSD build
│
▼
FreeBSD compatibility fixes
│
▼
Runtime validation
│
▼
FreeBSD Port
│
┌─────┴─────┐
▼ ▼
Qt 5 Runtime
dependencies data
│ │
└─────┬─────┘
▼
FreeBSD .pkg
│
▼
Desktop integration
│
▼
SimulIDE
The resulting package includes:
- the SimulIDE executable;
- the complete runtime
datatree; - the bundled examples;
- Qt 5 runtime dependencies;
- an XDG
.desktopentry; - a dedicated application icon;
- desktop and icon-cache integration;
- standard FreeBSD
/usr/localinstallation paths.
A pre-built FreeBSD package is available from the project's GitHub Releases:
Download SimulIDE 1.1.0-SR2 for FreeBSD amd64
The package is intended for:
FreeBSD 15.x
amd64
Install the downloaded package with:
sudo pkg install ./simulide-1.1.0.pkg
pkg will resolve the required Qt 5 runtime dependencies automatically.
The FreeBSD Port is also included in this repository:
cd freebsd/ports/simulide
make package
The generated package will be available at:
work/pkg/simulide-1.1.0.pkg
This project therefore provides both a ready-to-install package and the FreeBSD packaging infrastructure used to build it.
The direct download link becomes active once the package is published as an asset of the latest GitHub Release.
Build the package from the FreeBSD Port:
cd freebsd/ports/simulide
make package
The generated package is:
work/pkg/simulide-1.1.0.pkg
Install it with:
sudo pkg install ./work/pkg/simulide-1.1.0.pkg
After installation, SimulIDE is available as:
/usr/local/bin/simulide
The application can also be launched from a graphical application menu or Rofi.
The package follows the conventional FreeBSD /usr/local hierarchy:
/usr/local/bin/simulide
/usr/local/share/simulide/
├── data/
└── examples/
/usr/local/share/applications/simulide.desktop
/usr/local/share/icons/hicolor/scalable/apps/simulide.svg
This allows SimulIDE to behave like a normal installed FreeBSD desktop application rather than an unpacked application directory.
The package does not ship private copies of Qt.
Instead, the Port declares the required Qt 5 components and lets FreeBSD's package manager resolve them:
qt5-core
qt5-gui
qt5-widgets
qt5-xml
qt5-concurrent
qt5-network
qt5-svg
qt5-multimedia
qt5-serialport
This approach keeps the application integrated with the host system and avoids duplicating system libraries inside the application package.
The first stage was simply getting SimulIDE to compile and run correctly on FreeBSD.
Once the native build was functional, the work moved into understanding how SimulIDE determines its runtime directories, how its Qt project installs resources, and how FreeBSD expects desktop software to be packaged.
One particularly important discovery was SimulIDE's runtime path handling.
The application determines its executable directory and checks for:
../share/simulide
That makes the following FreeBSD layout a natural fit:
/usr/local/bin/simulide
/usr/local/share/simulide
No invasive modification of the application's runtime directory model was therefore necessary.
The packaging work then introduced:
- FreeBSD Port metadata;
- Qt dependency declarations;
- staged installation;
- package file validation;
- desktop integration;
- application icon integration;
- automatic packaging of the SimulIDE data and example trees.
The Port was repeatedly validated with:
make stage
make check-plist
make package
The final package was then installed on the development machine using pkg and launched directly from /usr/local/bin/simulide.
This project also documents the FreeBSD-specific compatibility work required to get SimulIDE 1.1.0-SR2 working reliably.
During development, the original build encountered compatibility issues in the AngelScript component.
Those issues were investigated directly against the FreeBSD source/build environment and corrected until the application built and ran successfully.
The repository therefore contains not only packaging metadata, but also the source tree used to reproduce the working FreeBSD build.
This port was developed on a real Apple MacBook Pro A1278 / MacBookPro9,2, rather than in a generic virtual machine.
| Component | Specification |
|---|---|
| Machine | Apple MacBook Pro A1278 |
| Model | MacBookPro9,2 |
| Display | 13-inch |
| Year | Mid-2012 |
| CPU | Intel Core i7-3520M |
| Frequency | 2.9 GHz |
| CPU topology | 2 cores / 4 threads |
| RAM | 16 GB DDR3 |
| Memory | Dual-channel |
| Storage | Kingston 480 GB SSD |
| GPU | Intel HD Graphics 4000 |
| Operating system | FreeBSD 15.1 amd64 |
| GUI toolkit | Qt 5 |
| Desktop integration | XDG / X11 |
The machine itself is part of the project's story: an almost fifteen-year-old Intel MacBook was used as the actual development and validation platform for the FreeBSD packaging work.
SimulIDE-FreeBSD/
│
├── assets/
│ └── simulide.webp
│
├── freebsd/
│ └── ports/
│ └── simulide/
│ ├── files/
│ │ ├── simulide.desktop
│ │ └── simulide.svg
│ ├── Makefile
│ └── pkg-descr
│
├── resources/
├── src/
│
├── COPYING
├── LICENSE-BSD-3-Clause.txt
├── README.md
├── SimulIDE.pro
└── copyright.txt
The current Port intentionally concentrates on packaging and integration around the already validated FreeBSD build.
At this stage, the Port uses the SimulIDE executable produced during development rather than downloading and rebuilding the complete upstream source tree from a remote distfile.
That distinction is intentional and documented.
Source tree
│
├── Native FreeBSD build
│
└── Validated executable
│
▼
FreeBSD Port
│
▼
pkg package
A future iteration can move toward a fully source-driven FreeBSD Port in which a clean checkout fetches the appropriate upstream source archive, applies the FreeBSD compatibility patch set, builds SimulIDE and produces the package without relying on a pre-existing development build.
The current repository provides the foundation for that evolution.
The final package was validated on the development system.
The resulting package size was approximately:
4.5 MB
The package was successfully installed with:
sudo pkg install ./work/pkg/simulide-1.1.0.pkg
The installed application was verified at:
/usr/local/bin/simulide
SimulIDE successfully loaded its runtime environment from:
/usr/local/share/simulide/data
including its component definitions, compilers, assemblers and other runtime resources.
Many thanks to the SimulIDE developers and contributors for creating and maintaining an excellent open-source electronic circuit simulator and MCU development environment.
Without the original SimulIDE project, this FreeBSD port would not exist.
Special thanks to the FreeBSD Project, its developers, porters and contributors for the operating system, Ports Collection and packaging infrastructure that made this work possible.
FreeBSD's packaging model provided the foundation for turning the working build into a proper system-integrated application.
FreeBSD port and packaging: AnOnYmOuS
Development, debugging and packaging assistance: ChatGPT
This project represents a practical collaboration between a human developer working directly on the target hardware and an AI development assistant.
This repository contains work originating from two different licensing contexts.
The original SimulIDE source code is distributed under the:
GNU Affero General Public License v3.0 (AGPL-3.0)
The original license is preserved in:
COPYING
The upstream SimulIDE source is not relicensed by this repository.
The original packaging and integration work contributed to this repository is released under:
BSD 3-Clause License
See:
LICENSE-BSD-3-Clause.txt
The two licenses are intentionally kept separate.
This repository therefore does not claim that the original SimulIDE source has been relicensed under BSD.
This project would not have been possible without the work of the communities behind the software it builds upon.
To the SimulIDE team: thank you for the simulator, the source code and the many years of work behind it.
To the FreeBSD community: thank you for building an operating system and packaging ecosystem where projects like this can be explored, adapted and shared.
To open-source contributors everywhere: this repository is another small example of what becomes possible when existing software, documentation, operating systems and development tools are available for people to study and build upon.
