Releases: gerbv/gerbv
v2.13.0
It is only two weeks since last release, but this due anyhow. A lot of things has happened this time as well.
I think everything is settling in regarding the build environment and pipeline work.
There have been many small tweaks in the build system (expected since it is brand new):
- We have two new platforms that we build for (native Windows and MacOS).
- The website is finally getting updates from the pipeline again (changed scripting and authentication method to SSH)
- We are now packaging one of the Windows builds using NSIS (been on the wish list for a while)
- We now build both static and dynamic versions of
libgerbvin the pipeline (been on the wish list for a while)
On the website there are still some icons that is wrong, but we are on the hunt for new ones.
I updated the README.md, basically from past tense to current. I also added a BUILD.md that describes how to compile Gerbv using CMake and also what packages are needed to compile for respective platform.
For Windows build we now have two version. One is built using cross-compilation on Fedora, the other is built natively using MSYS. The cross compiled version is also packaged using NSIS and I am very interested to hear experiences of using that. If icons and menu options show up at the right place, that it can be uninstalled etc. If you find problems with it, please submit an issue. Please be thorough, not "it doesn't work" or similar. Even better would be if you could submit a PR with a potential fix. If there is a fatal problem with the NSIS packaged version, there is always the other version. That one is still a zip archive with all files just bundled up.
Small fixes on the Gerber parsing side that should improve things. The major step here have been to try to make it smaller step to start using Gerbv.
If you find problem you can always submit an issue. Please test the latest version on the website (gerbv.github.io), check if anyone already reported the problem, be elaborate in the description of the problem. And if you have a fix, please submit a PR.
Thanks to all that have submitted Issues, PRs and participated in the discussions on the Issues.
What's Changed
Bug fixes
- Fix bug in when BuildOptions.cmake checks if variables are defined or… by @spe-ciellt in #429
- Moved install() command for init.scm to tinyscheme CMakeLists.txt by @spe-ciellt in #430
- Update linux packaging by @spe-ciellt in #432
- Swap config stage and locale stage in CMakeLists.txt by @spe-ciellt in #445
- Fix website rebuild: dedicated ci-website job and replace m4 with shell script by @spe-ciellt in #447
New features
- Build both static and shared version of libgerbv at the same time by @spe-ciellt in #425
- NSIS packaging on the Windows platform by @spe-ciellt in #441
Documentation
- BUILD.md is added and README.md is updated by @spe-ciellt in #434
- Updated BUILD.md with lists of packages to build by @spe-ciellt in #446
- Also add the MacOS and Windows MSYS2 artifacts to the webpage. by @spe-ciellt in #453
Buildsystem (CMake/CTest/CPack/etc)
- ci: add artifact upload for MSYS2 and macOS jobs by @rampageservices in #408
- Add fetch-depth to 0 for all jobs that builds an artifact to be released by @spe-ciellt in #443
- Switch website deploy to SSH deploy key, drop PAT and real email by @spe-ciellt in #449
- Do not install all libraries in ci-macos. by @spe-ciellt in #450
Other changes
- fix: start new cairo subpath before drawing aperture holes by @rampageservices in #380
- fix: track source pointers in layer/state duplication by @rampageservices in #381
- docs: mention bundled dxflib license in README by @rampageservices in #386
- cosmetic: remove redundant vertex workaround from gerbv_draw_polygon by @rampageservices in #436
- cmake: add COMMAND_ERROR_IS_FATAL ANY to configure-time execute_process calls by @rampageservices in #438
Full Changelog: v2.12.0...v2.13.0
gerbv v2.12.0
This is another release, very short after the other. This is the learning step release. Also don't make releases when you're hungry. Sorry for all inconveniences this has caused. A lot of changes have happened a lot since last release, many PR's have been generated and merged.
Several fixes have gone into the platforms, especially the cross compiled Windows. It does not pop up any extra windows at start up thanks to fixes by @rampageservices . He have also contributed a Windows build using MSYS2. And @chenrui333 contributed a MacOS build, interesting to see compilation using Clang. Due to my ignorance the files are not part of the public release this time, but that is why we are doing this for. Experimenting, testing and learning.
@eyal0 have made sure that the libgerbv library now can be used by others outside of the Gerbv project.
All platforms can now generate DXF files since the DXF generator now is built in using local code in the project. So even if your distribution does not have the correct DXF library it should work, all thanks to @rampageservices .
SVG file generation is now a local version that generates significantly smaller SVG files. You can also use Inkscape layers when exporting to SVG.
The project now have a Github donation button as well. It is all very new for me and I have not decided what to do with the money, if someone decides to support this financially.
As you can see from the Changelog below most PRs comes from @rampageservices and @eyal0 so an extra big thank you to them.
The webpage is still broken, but it have been a low priority so far.
Reports of any issues or problems are as always welcomes on https://github.com/gerbv/gerbv, especially if you publish a fix as a PR.
What's Changed
Security fixes
- fix: undef DPRINTF before redefining to avoid macOS warning by @rampageservices in #358
- fix: replace sprintf with snprintf in dxflib by @rampageservices in #359
Bug fixes
- Fix all implicit case fallthrough (#287) by @rampageservices in #294
- Wire NOTE messages into CLI output with severity prefixes by @rampageservices in #292
- fix: DXF export renders arcs as straight lines by @rampageservices in #296
- fix: Put version number into libgerbv.pc correctly. by @eyal0 in #337
- fix: Correct computation for bounding box of gerber files. by @eyal0 in #342
- Fix errno clobbered by cleanup in gerb_fopen() by @rampageservices in #319
- Fix non-ASCII file path handling on Windows by @rampageservices in #318
- fix: replace unsafe dprintf macro with safe DPRINTF variadic macro by @rampageservices in #320
- fix: restore application icon and suppress console window on Windows by @rampageservices in #354
- fix: use portable font name for layer Modified column by @rampageservices in #355
- Fix double rotation of macro circle/line center coordinates (#233) by @rampageservices in #310
- Guard INCH/METRIC unit assignment with autod in drill header parsing (#241) by @rampageservices in #313
- Fix missing rotation for circle primitives in GDK renderer by @rampageservices in #375
- Fix use-after-free SEGV on RS274-X export (#162) by @rampageservices in #379
New features
- feat: add gerbv_create_excellon_image_from_filename() to public API by @spe-ciellt in #302
- fix: support Excellon G02/G03 arc routing with I/J center offsets by @rampageservices in #298
- feat: add directory opening support (
gerbv .) by @rampageservices in #309 - feat: optimized SVG export writer (fixes #236) by @rampageservices in #317
- refactor: move tinyscheme to thirdparty/ directory by @rampageservices in #357
- feat: warn when loaded file contains no geometry by @rampageservices in #307
- Implement our own local version of isascii() for tinyscheme. by @spe-ciellt in #390
- Move some toplevel definitions to respective toolchain files by @spe-ciellt in #391
- ci: add native Windows build with MSYS2 UCRT64 by @rampageservices in #378
Documentation
- docs: audit and update man page for current codebase by @rampageservices in #312
- Add TinyScheme BSD license notice by @rampageservices in #329
- fix: document dxflib patches and remove dead tessellation guard by @rampageservices in #340
- Update HACKING with modern git and GitHub recommendations. by @spe-ciellt in #347
Buildsystem (CMake/CTest/CPack/etc)
- Added label buildsystem for future release notes by @spe-ciellt in #311
- cmake: fix tarball builds and generated path handling by @chenrui333 in #303
- ci: add macos test by @chenrui333 in #327
- Allow static library builds via BUILD_SHARED_LIBS by @rampageservices in #314
- CMake for thirdparty libraries by @spe-ciellt in #374
- fix: Build authors.c before all locales. by @eyal0 in #365
- Pipeline fixes by @spe-ciellt in #389
- ci: fix Windows regression test runner by @rampageservices in #401
Other changes
- Add GitHub Sponsors funding configuration by @rampageservices in #315
- fix: address fopen() patch followups in main.c by @rampageservices in #351
- fix: remove dead NULL checks after g_malloc/g_new in gerb_file.c by @rampageservices in #353
- fix: apply rotation when computing aperture macro bounding boxes by @rampageservices in #341
- We now have DXF always compiled in so we need to remove all checks if… by @spe-ciellt in #388
- fix: Define M_PI, M_PI_2, and M_1_PI. by @eyal0 in #393
New Contributors
- @chenrui333 made their first contribution in #303
Full Changelog: v2.11.0...v2.12.0
v2.11.1
v2.11.0
This is the first release after some major rewrites. This release is a way to get this new shining build system on a test drive with all the packaging implementations. There are .deb for your Debian and Ubuntu, there are .rpm for your Redhat/Fedora and finally a .zip for the Windows people. This is "proper" release (no a pre-release) since I suspect that the build system currently don't handle the tagging and naming for pre-releases.
The Windows is built using cross compilation from Fedora and it is still missing an autoinstaller (NSIS). It is on the agenda to fix it. The Windows is 64-bit, so I don't think it works on older 32-bit system. But I am no Windows guy, so prove me wrong. ;)
The build system is using CMake and packaging is (of course) using CPack. The whole autotools should have been completely removed by now. Maybe you see traces of it here and there, but that is a mistake in that case. If you find anything, please report it. Some parts are kept for future reference when more and more goes to CMake. It was a major undertaking moving to CMake/CPack and there are still some dark corners that needs to be smoked out.
So one major thing with this release is to test the packaging
- Any errors? Please submit an issue, preferably with a matching PR
- Files ends up in the wrong place? Please submit an issue, preferably with a matching PR
- Files not even installed? Please submit an issue, preferably with a matching PR
So except the CMake update there are lot of fixes and cleanups. Compilation errors and some missing Gerber handling are fixed. In the pipe there are lot of PRs coming in that hopefully will make it into a release soon.
Special thanks to @rampageservices for all the issuses and PRs submitted. He has more in the PR queue for you to look forward to.
What's Changed
Bug fixes
- First set of trivial bugfixes by @spe-ciellt in #260
- Mingw compilation and bugfixes by @spe-ciellt in #262
- Clean up files by @spe-ciellt in #263
- Remove potential efence support by @spe-ciellt in #264
- Make MAX/MIN use pure C11 functions and not depend on GNU extensions by @spe-ciellt in #265
- GitHub CI updates by @spe-ciellt in #266
- Bugfixes and spellchecks by @spe-ciellt in #269
- fix: set omit_zeros unconditionally when LZ/TZ is declared in Excellon header by @rampageservices in #275
- test: wire up CTest integration and fix set -e abort in run_tests.sh by @spe-ciellt in #276
- fix: correctly apply N from FILE_FORMAT=N:M with LZ trailing suppression by @spe-ciellt in #278
- Add .gitignore to test to ignore files that are generated during test. by @spe-ciellt in #281
- fix: silently ignore Gerber X2 attribute commands (TF, TA, TO, TD) by @rampageservices in #282
- Fix aperture macro 0X parsed as hex float instead of multiplication by @rampageservices in #285
- Fix circle primitives in aperture macros ignoring rotation by @rampageservices in #286
- fix: add bounds-check guards for file reading functions by @rampageservices in #293
- Number of monitors should not affect the start window height. by @spe-ciellt in #295
- ci: add tag trigger and GitHub Release job by @spe-ciellt in #299
New features
- Updating to use CMake by @spe-ciellt in #261
- Packing of DEB and RPM by @spe-ciellt in #270
- feat: add optional Inkscape-layer SVG export by @5shekel in #279
- fix: support Excellon routing/milling commands (G00, G01, M15, M16, M17) by @rampageservices in #283
- fix: add DXF image export to CLI by @spe-ciellt in #289
New Contributors
- @spe-ciellt made their first contribution in #260
- @rampageservices made their first contribution in #275
- @5shekel made their first contribution in #279
Full Changelog: v2.10.0...v2.11.0
v2.10.0
Security
- CVE-2023-4508: Out-of-bounds memory access of filename (PR#192 by @eyal0 fixing issue #191 reported by @iosifache)
gerbv
- Japanese Language File (PR#183 by @kitanokitsune)
- Fix crash Edit-file-format dialog (PR#181 by @kitanokitsune)
- Allow
gerbv foo.gvpto act likegerbv -p foo.gvpwas specified (PR#184 by @kitanokitsune fixing issue #107 reported by @Dromantor) - Fix Translation and Scale are not editable in Edit-layer dialog (PR#182 by @kitanokitsune)
- Increase maximum zooming level (PR#186 by @ooxi fixing issue #185 reported by @StephaneIFO)
- Recommend a way of reporting security issues (PR#193 fixing issue #190 reported by @iosifache)
ci
- Windows does not support colons in filenames (PR#188 by @ooxi fixing issue #180 reported by @kitanokitsune)
v2.10.0-rc.1
Security
- Out-of-bounds memory access of filename (PR#192 by @eyal0 fixing issue #191 reported by @iosifache)
gerbv
- Japanese Language File (PR#183 by @kitanokitsune)
- Fix crash Edit-file-format dialog (PR#181 by @kitanokitsune)
- Allow
gerbv foo.gvpto act likegerbv -p foo.gvpwas specified (PR#184 by @kitanokitsune fixing issue #107 reported by @Dromantor) - Fix Translation and Scale are not editable in Edit-layer dialog (PR#182 by @kitanokitsune)
- Increase maximum zooming level (PR#186 by @ooxi fixing issue #185 reported by @StephaneIFO)
- Recommend a way of reporting security issues (PR#193 fixing issue #190 reported by @iosifache)
ci
- Windows does not support colons in filenames (PR#188 by @ooxi fixing issue #180 reported by @kitanokitsune)
v2.9.8
gerbv
- Using floating point math for arcs (PR#173 by @eyal0 fixing issue #167 reported by @jaseg)
- Bump
APERTURE_PARAMETERS_MAXto 10006 in order to comply with Gerber specification revision 2021.02 (PR#172 by @jaseg) - Recognize empty drill files (PR#170 by @eyal0 fixing issue #168 reported by @jaseg)
ci
v2.9.8-rc.1
gerbv
- Using floating point math for arcs (PR#173 by @eyal0 fixing issue #167 reported by @jaseg)
- Bump
APERTURE_PARAMETERS_MAXto 10006 in order to comply with Gerber specification revision 2021.02 (PR#172 by @jaseg) - Recognize empty drill files (PR#170 by @eyal0 fixing issue #168 reported by @jaseg)