Codelite building issues from pkgsrc

Recently I am trying to build my own desktop environment on NetBSD which is based on current branch and using current pkgsrc for packages. I successfully built up to date MATE 1.22.1 desktop environment but got stuck on pretty outaded CodeLite IDE (9.1.0 in pkgsrc compared to 13.0.0 being the latest at the time of writing). The first error I hit by was:

/usr/pkgsrc/editors/codelite/work/codelite-9.1/LiteEditor/clangpch_cache.h:35:10: fatal error: clang-c/Index.h: No such file or directory

Since I was quite sure that I should have it, I quickly looked around and I found that header exists in /usr/pkg/include/clang-c/Index.h. So quick workaround was quite obvious by setting CFLAGS environment variable to point to pkg include folder. Since I checked that this variable didn’t have any value, I just simply did:

export CFLAGS=/usr/pkg/include

It helped me to finish the build successfully but linking failed with “ld: cannot find -lclang” error… So yet another environment variable was needed:

export LIBRARY_PATH=/usr/pkg/lib

After that linking went successfully but it wasn’t the end of the story yet. Package PLIST file contained 5 files which were not available after the build. Apparently spell checker was not part of the build for some reason and lib/codelite/SpellCheck.so and all files in share/codelite/dics/ folder (including folder itself) were missing. Because of this pkg_create was failing to assemble the installation package. You would see messages like “pkg_create: can’t stat <filename>”. I just decided remove those files from PLIST file:

fossil diff --unified PLIST


Index: editors/codelite/PLIST
==================================================================
— editors/codelite/PLIST
+++ editors/codelite/PLIST
@@ -22,11 +22,10 @@
lib/codelite/MemCheck.so
lib/codelite/Outline.so
lib/codelite/QMakePlugin.so
lib/codelite/SFTP.so
lib/codelite/SnipWiz.so
-lib/codelite/SpellCheck.so
lib/codelite/Subversion.so
lib/codelite/Tweaks.so
lib/codelite/UnitTestsPP.so
lib/codelite/WebTools.so
lib/codelite/Wizards.so
@@ -64,14 +63,10 @@
share/codelite/config/cfg/sdl.cfg
share/codelite/config/cfg/std.cfg
share/codelite/config/cfg/windows.cfg
share/codelite/config/codelite.xml.default
share/codelite/config/debuggers.xml.default
-share/codelite/dics/en_GB.aff
-share/codelite/dics/en_GB.dic
-share/codelite/dics/en_US.aff
-share/codelite/dics/en_US.dic
share/codelite/gdb_printers/boost/init.py
share/codelite/gdb_printers/boost/printers.py
share/codelite/gdb_printers/helper.py
share/codelite/gdb_printers/libstdcxx/init.py
share/codelite/gdb_printers/libstdcxx/v6/init.py

Unfortunately there is one caveat that after changing this file I needed to make a clean build again (make clean before make install). Fortunately, it doesn’t take long to rebuild CodeLite on modern CPU, especially if all cores are utilized. Finally, after all the struggles CodeLite IDE started successfully (even if it’s a relatively old version).

CodeLite 9.1.0 on NetBSD amd64 8.99.50

Update: Actually I managed to build the latest CodeLite (13.0.1) too straight from github source code. The most applied patches were the same as pkgsrc package has (actually seems even less is needed now). Manually I needed to add /usr/pkg/libexec/wx-3.0 to PATH since build script need wx-config and I also needed to change libssh.so path to from /usr/lib/libssh.so to /usr/pkg/lib/libssh.so (libssh-0.87) in CMakeFiles/<module>.dir/link.txt files which were linking against it. Probably updating pkgsrc package should not be difficult too considering my relatively easy success , so I guess package is not actively maintained anymore. Will see if I can prepare a patch.

CodeLite 13.0.1 on NetBSD amd64 8.99.50

First round of GSoC reports

First round of GSoC reports are available in NetBSD blog:

Also an interesting read about fuzzers:

Write your own fuzzer for NetBSD kernel! [Part 1]

NetBSD 8.1 released

Today the NetBSD Project announced 8.1 release. It already follows the new release cycle without teeny releases and represents selected changes to improve stability and security plus some new enhancements and features. Main highlights include INTEL-SA-00233 (MDS) mitigation, various kernel data leak fixes, smtoff property to disable SMT explicitly in rc.conf(5), addition of mfii(4) and bwfm(4) drivers, DRM/KMS improvements, performance regression fix in tmpfs, updated dhcpcd(8) and httpd(8), fixes for sh(1), reproducible builds, network drivers, thread local storage (TLS) in position independent executables (PIE). All changes can be found here. Source and binaries can be downloaded from the project CDN or any other mirrors.

NetBSD 8.1 RC1 released

The NetBSD project released the first and possibly the only release candidate for 8.1 release. As usual this release represents a subset of selected security and stability fixes, additionally with some selected new drivers and enhancements. It has workarounds for the latest CPU vulnerabilities, rc.conf(5) has a new property to disable smt (Simultaneous Multi-Threading). dhcpcd(8) was updated to 7.2.2, along with httpd(8). Full list of changes can be found here. You can download it from NetBSD project CDN or any of the project mirrors.

GSoC 2019

The NetBSD project is participating in Google Summer of Code 2019 and projects for this year were announced:

Must admit that few projects are out of my knowledge area but some of them are really interesting I am planning to follow them closely. As an interesting fact Siddharth is participating for the second year in a row.

Some interesting developments on NetBSD

Since I didn’t write any news update for a while, lately some interesting developments were happening in few NetBSD areas which I would like to share.

Virtualization is one of these areas, it received few interesting updates recently. The first one is Intel HAXM hardware-accelerated support. You can also read an independently written how-to here. It works with Intel CPUs with VTx only. Another one is NetBSD Virtual Machine Monitor or NVVM. Initially it supported AMD CPUs only, but recently it was updated to support Intel CPUs too. You can read It is a good time to start testing them. Update: the developer recently added the detailed NVVM presentation article to the official NetBSD blog.

Another area was LLVM sanitizers and improved LLVM support (reports can be found in NetBSD blog here, here, here and here).

One more hot topic is RISC-V architecture recently. Especially, once WD released their SweRW core on GitHub. The NetBSD project developers started work on RISC-V support as well:

Finally, you can watch an interesting FOSDEM’19 video by Benny Siegert who provided more info on various updates.


irBSD 01.06.2019 v8 released

irBSD is a digital forensic suite for cryptography, penetration testing, data recovery, reverse engineering, privacy and other security tasks. It is based on NetBSD and uses ratpoison as default window manager. The project recently released 01.06.2019 v8 of the suite. You can download it from the irBSD sourceforge page.

NetBSD 7.2 released

The NetBSD team released the second feature update of the NetBSD 7 release branch on 29 of August, 2018. It contains security and bug fixes as well as new features and enhancements. Release notes can be found here, full is of changes here. Main highlights of the release are USB 3.0 support, enhancements to Linux emulation subsystem, Raspberry PI 3 support, iwm(4) driver for Intel Wireless 726x, 316x, 826x and 416x series added, various USB stability enhancements, bug fixes and stability improvements. You can download it from any of NetBSD mirrors. In case you can’t upgrade to NetBSD 8.0,  it is recommended to update to 7.2.

GSoC reports, release policy changes and end of life for 6.x

Following one month after NetBSD 8 release, the NetBSD team announced the end of life for NetBSD 6.x branches. They won’t receive any updates (including security patches) or support anymore. So, it’s time to upgrade if you haven’t done yet…

Release policy was changed as well starting 8.0 release. It will be no “teeny” bugfixes x.x.x (e.g. 6.0.1) branches anymore, only x.x (e.g. 8.0) update releases and they will contain both bug/security fixes as well as enhancements and new features that are deemed to be safe. This way the team expects to have more frequent releases, better long-term support and new features/enhancements to come to binary releases faster. Branches prior 8 are not affected by this policy though.

Last but not the least, Google Summer of Code 2018 coding period is over and you can read all the reports from the students:

GSoC 2018 Reports: Kernel Address Sanitizer, Part 1
GSoC 2018 report: Kernel Address Sanitizer, Part 2
GSoC 2018 Reports: Kernel Address Sanitizer, Part 3

GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 1
GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 2
GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 3

GSoC 2018 Reports: Kernel Undefined Behavior Sanitizer, Part 1

GSoC 2018 Reports: Configuration files versioning in pkgsrc, Part 1
GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 2: remote repositories (git and CVS)
GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 3: remote repositories (SVN and Mercurial)
GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 4: configuration deployment, pkgtools and future improvements

Personal NetBSD blog