<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardening consulting (Posts about accendino)</title><link>https://www.hardening-consulting.com/</link><description></description><atom:link href="https://www.hardening-consulting.com/en/categories/accendino.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Mon, 03 Aug 2026 09:37:09 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Release of Accendino 0.6.2</title><link>https://www.hardening-consulting.com/en/posts/20260727-accendino-0.6.2-release.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;A new version of &lt;em&gt;accendino&lt;/em&gt; is out, 0.6.2. It bundles the work accumulated since 0.6.0 (which introduced
toolchain support and building under &lt;code&gt;msys2&lt;/code&gt;), going through an intermediate 0.6.1. As a reminder, accendino
is a project that lets you specify how to build a piece of software and its dependencies in a multi-platform
way (at least Windows, Linux, partially Mac, a bit of FreeBSD), building it while making the best use of
the bricks already installable on the system (if a package is available, we use it, otherwise we build it).
It also tries as much as possible to support MinGW, to allow cross-building for Windows from Linux or
other unixes. On the menu for these changes: the ability to build the &lt;code&gt;wayvnc&lt;/code&gt; project with all its
dependencies, the FreeRDP build gaining features to keep up with the master branch, and of course several
fixes and improvements.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;What's new since 0.6.0&lt;/h2&gt;
&lt;h3&gt;The FreeRDP build gets richer&lt;/h3&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/FreeRDP.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;Several artifacts were added to enrich the FreeRDP build:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/en/posts/20260727-accendino-0.6.2-release.html"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>accendino</category><category>freerdp</category><guid>https://www.hardening-consulting.com/en/posts/20260727-accendino-0.6.2-release.html</guid><pubDate>Mon, 27 Jul 2026 09:15:00 GMT</pubDate></item><item><title>Accendino 0.5.10 alpha 1</title><link>https://www.hardening-consulting.com/en/posts/20251003-accendino-0.5.10-alpha-1-release.html</link><dc:creator>David FORT</dc:creator><description>&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;More improvements on &lt;em&gt;Accendino&lt;/em&gt;, with that 0.5.10alpha1 version which is the stabilization course for 0.5.10.&lt;/p&gt;
&lt;p&gt;FFmpeg is one of those softwares that are horrible to automatically build under windows (just behind OpenSSL), and one of 
the targets for this version was to be able to build FreeRDP with the support of FFmpeg under windows with the Visual Studio toolchain, 
and do all that automatically. No by hand hacks to make it work, just &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;accendino&lt;span class="w"&gt; &lt;/span&gt;--targets&lt;span class="o"&gt;=&lt;/span&gt;freerdp3&lt;span class="w"&gt; &lt;/span&gt;freerdp.accendino
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It checks out, compiles and it's ready.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;New features in version 0.5.10 alpha 1&lt;/h2&gt;
&lt;h3&gt;Support for Msys2&lt;/h3&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/msys2.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;First step to compile FFmpeg with Visual Studio: you need to execute commands under &lt;code&gt;msys2&lt;/code&gt;, and therefore this version brings package 
installation support to this environment. If you put &lt;code&gt;'msys2/yasm'&lt;/code&gt; in packages dependencies, &lt;em&gt;accendino&lt;/em&gt; will install the corresponding 
packages in the &lt;code&gt;msys2&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Extract from the FFmpeg accendino file:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="o"&gt;...&lt;/span&gt;

&lt;span class="n"&gt;ffmpegPkgs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;'Darwin'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'nasm'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'Windows'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'choco/nasm|path/nasm'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/make'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/yasm'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/diffutils'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This support was not very complex to implement because &lt;code&gt;msys2&lt;/code&gt; uses  &lt;code&gt;pacman&lt;/code&gt; as package manager, which is already supported in &lt;em&gt;accendino&lt;/em&gt; for ArchLinux. 
We already had everything we needed to list installed packages and run package installations.&lt;/p&gt;
&lt;p&gt;A new &lt;code&gt;makeMsys2&lt;/code&gt; builder type has been added for &lt;code&gt;CustomCommandBuildArtifact&lt;/code&gt;, which allows to launch &lt;code&gt;make&lt;/code&gt; but in the &lt;code&gt;msys2&lt;/code&gt; environment, 
that's the way to build FFmpeg with MSVC.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h3&gt;Toolchain&lt;/h3&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/specifications2.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;This version brings the notion of toolchain, which basically allows to specify which buildchain to use. Under the Unixes, 
we have the choice between &lt;code&gt;gcc&lt;/code&gt; and &lt;code&gt;clang&lt;/code&gt;, and under windows we will detect Visual Studio and you can use with &lt;code&gt;MSVC&lt;/code&gt; or 
&lt;code&gt;clang&lt;/code&gt; (&lt;code&gt;vs/msvc&lt;/code&gt; or &lt;code&gt;vs/clang&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;The toolchain support enables to set the right environment variables for &lt;code&gt;gcc&lt;/code&gt; or &lt;code&gt;clang&lt;/code&gt; builds (which will then be used by &lt;code&gt;meson&lt;/code&gt;, &lt;code&gt;cmake&lt;/code&gt; or others), 
but also to call the &lt;code&gt;VsDevCmd.bat&lt;/code&gt; script of visual studio (or its powershell equivalent).&lt;/p&gt;
&lt;p&gt;All of this was required for FFmpeg, because when you do the build process by hand, you open a Visual Studio development shell that allows you to have the PATH positioned properly, 
then from there you run a &lt;code&gt;msys2&lt;/code&gt; shell that will inherit of these values, and the build is launched inside this msys2 shell.&lt;/p&gt;
&lt;p&gt;The build process under windows has therefore also been redesigned and so now we generate a powershell script containing all commands and this powershell script is then executed. 
This facilitates management of environment variables, but also debugging, because you can easily restart the script with exactly the same environment (because all this
is done in the powershell script itself). With all these additions, we automate the construction of FFmpeg under windows with Visual Studio. &lt;/p&gt;
&lt;p&gt;Even if we already had the possibility to make a cross compilation with mingw on Linux and then transfer the files under windows, it is so more convenient 
to build on windows and use directly VisualStudio if you have to do a debugging session.&lt;/p&gt;
&lt;p&gt;With the support of the toolchains, the &lt;code&gt;BuildArtifact&lt;/code&gt; gains a new &lt;code&gt;toolchainArtifacts&lt;/code&gt; argument that gives the list of artifacts that should be pulled from the toolchain. The default value is to indicate that it is desired to use a C compiler (&lt;code&gt;c&lt;/code&gt;), but
you can also add &lt;code&gt;c++&lt;/code&gt; for projects coded in this language. &lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h3&gt;Various other changes&lt;/h3&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/new.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;A lot of other improvements have been made in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;accendino&lt;/em&gt; files have been added for &lt;code&gt;Cairo&lt;/code&gt;, &lt;code&gt;cJson&lt;/code&gt; and &lt;code&gt;qfreerdp_platform&lt;/code&gt;, which allows to build these projects very 
    easily and have a more feature complete FreeRDP under windows;&lt;/li&gt;
&lt;li&gt;now when &lt;em&gt;accendino&lt;/em&gt; detects a rebuild for an item, it will also rebuild all the items which that item depends on;&lt;/li&gt;
&lt;li&gt;with this version we look for the &lt;em&gt;accendino&lt;/em&gt; files passed in command line in the current path and then in the pockets: 
  no need to give the complete path when the &lt;em&gt;accessino&lt;/em&gt; file is stored in a pocket directory;&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;include()&lt;/code&gt; command has a new &lt;code&gt;include_once&lt;/code&gt; parameter (true by default) which allows to specify that a file should only be 
  included once during the execution of &lt;em&gt;accendino&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;CI tests have been added to validate that everything is working properly after changes, this allows to validate a number of 
  build cases with &lt;em&gt;accendino&lt;/em&gt; under linux and even windows;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;To conclude&lt;/h2&gt;
&lt;p&gt;With these changes, you can easily have the latest FreeRDP under windows with every possible features with a simple:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="go"&gt;C:\Users\david&amp;gt; accendino --targets=freerdp3 freerdp.accendino&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;VisualStudio will be detected, any packages installed, etc.&lt;/p&gt;
&lt;p&gt;And under Linux:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;accendino&lt;span class="w"&gt; &lt;/span&gt;--targets&lt;span class="o"&gt;=&lt;/span&gt;qfreerdp_platform-qt6&lt;span class="w"&gt; &lt;/span&gt;--toolchain&lt;span class="o"&gt;=&lt;/span&gt;clang&lt;span class="w"&gt; &lt;/span&gt;qfreerdp_platform.accendino
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and you have &lt;code&gt;qfreerdp_platform&lt;/code&gt; compiled for Qt6 under clang. There's really no excuse to not have tested these nice projects yet !&lt;/p&gt;
&lt;p&gt;This is basically the functional scope that will be in the 0.5.10 release, any feedback or bug reports are welcome.&lt;/p&gt;</description><category>accendino</category><category>freerdp</category><category>ogon</category><guid>https://www.hardening-consulting.com/en/posts/20251003-accendino-0.5.10-alpha-1-release.html</guid><pubDate>Fri, 03 Oct 2025 06:15:00 GMT</pubDate></item><item><title>Release of Accendino 0.5.9</title><link>https://www.hardening-consulting.com/en/posts/20250210-accendino-0.5.9-release.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;I made some updates to my &lt;em&gt;Accendino&lt;/em&gt; script, until it became a program of its own with
interesting features. This version 0.5.9 adds a lot of nice things compared to the
previous version. Over time, I see &lt;em&gt;Accendino&lt;/em&gt; more as a program allowing to build a complex software from
several software sources, and on several platforms. For now my case study is FreeRDP, I try to have
accendino files that allow to build FreeRDP from scratch on as many platforms as possible (linux, mac,
windows, mingw, ...)&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;History&lt;/h2&gt;
&lt;p&gt;Originally &lt;em&gt;accendino&lt;/em&gt; was just a small script to run the &lt;em&gt;Ogon&lt;/em&gt; installation instructions. It was
a bit more complex because you could specify the git locations to download. For example, to use the &lt;em&gt;Forgiare&lt;/em&gt;
repositories instead of the official &lt;em&gt;Ogon&lt;/em&gt; repositories. With version 0.5.0, I extended its features quite a lot:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the ability to include accendino files to reuse existing definitions;&lt;/li&gt;
&lt;li&gt;the program sources have been greatly extended and no longer necessarily come from git. We can have local sources,
  or from git. Many git options are now accessible;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/en/posts/20250210-accendino-0.5.9-release.html"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><category>accendino</category><category>freerdp</category><category>ogon</category><guid>https://www.hardening-consulting.com/en/posts/20250210-accendino-0.5.9-release.html</guid><pubDate>Mon, 10 Feb 2025 10:15:00 GMT</pubDate></item><item><title>accendino, an OGON deployer   </title><link>https://www.hardening-consulting.com/en/posts/20201009-accendino-is-out.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;
Long time no post. I did quite a lot of things around ogon these last months, and for testing
purpose, I had to deploy ogon on many hosts. The &lt;a href="https://github.com/ogon-project/ogon/blob/master/doc/build-debian-ubuntu.md"&gt;deployment guide&lt;/a&gt; is ok, but it's 
a long and repetitive operation. And thinking of it, if we can write these instructions in a manual,
then for sure we can automate these operations in a script.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Accendino&lt;/h2&gt;
&lt;p&gt;So I've created that little software &lt;a href="https://github.com/forgiare/accendino"&gt;accendino&lt;/a&gt; (lighter in italian) that will allow you to
start a big fire (&lt;em&gt;ogon&lt;/em&gt; in russian). &lt;/p&gt;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/en/posts/20201009-accendino-is-out.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>accendino</category><category>ogon</category><guid>https://www.hardening-consulting.com/en/posts/20201009-accendino-is-out.html</guid><pubDate>Fri, 09 Oct 2020 06:12:00 GMT</pubDate></item></channel></rss>