<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>AppImage Crafters</title>
    <description>AppImage creation an usage.
</description>
    <link>http://appimagecrafters.github.io//</link>
    <atom:link href="http://appimagecrafters.github.io//feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 03 Nov 2020 05:18:30 +0000</pubDate>
    <lastBuildDate>Tue, 03 Nov 2020 05:18:30 +0000</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>appimage-builder v0.7.5 files based recipes</title>
        <description>&lt;p&gt;appimage-builder v0.7.5 brings an really interesting feature: &lt;em&gt;full file based recipes&lt;/em&gt;.
Unlike traditional recipes that uses apt-get and a list of Debian packages to fulfill
the dependencies of a given application the new approach uses a list of files. Yes, you
read it well, all the files that should be included in the final bundle will be listed
in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AppImageBuilder.yml&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;The file list is built using the outputs of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;strace&lt;/code&gt; and the linker in debug mode. Therefore
all the files that were accessed by the application at runtime are add into the list.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;blockquote&gt;
    &lt;p&gt;Are you nuts? The recipe files will be huge!&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;Indeed they will, that’s why we will keep recommending the package based recipes. But let’s
dig a bit on this idea.&lt;/p&gt;

&lt;p&gt;This kind of recipes are focussed on those GNU/Linux distributions that doesn’t have apt-get
or other package manager supported by appimage-builder. To use it just run 
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;appimage-builder --generate&lt;/code&gt; on a system without apt-get. It will prompt the same questions
and run the application. Once it exits instead of finding which packages provide the files
and libraries accessed at runtime it will proceed to list them in the 
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AppDir &amp;gt; files &amp;gt; include&lt;/code&gt; section.&lt;/p&gt;

&lt;p&gt;Once the recipe is generated you can run appimage-builder again to create the bundle. Notice 
that not only libraries are included but also other data files. You may want to take a look 
at them before considering your job done. Some of them may be icons from the system icon theme
or fonts. Those can be safely excluded.&lt;/p&gt;

&lt;p&gt;While this approach has its drawbacks it’s an important step on bringing appimage-builder
to every GNU/Linux distribution. If you want to see a full recipe generated using this 
check out the following &lt;a href=&quot;https://github.com/AppImageCrafters/appimage-builder/blob/master/examples/kcalc-files/AppImageBuilder.yml&quot;&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for readings, see you in the comments section.&lt;/p&gt;

</description>
        <pubDate>Sun, 01 Nov 2020 20:00:00 +0000</pubDate>
        <link>http://appimagecrafters.github.io//appimage/appimagebuilder/2020/11/01/appimage-builder-files-only-recipe.html</link>
        <guid isPermaLink="true">http://appimagecrafters.github.io//appimage/appimagebuilder/2020/11/01/appimage-builder-files-only-recipe.html</guid>
        
        
        <category>AppImage</category>
        
        <category>AppImageBuilder</category>
        
      </item>
    
      <item>
        <title>Path mapping in AppImages</title>
        <description>&lt;p&gt;Fixed file paths in binaries have been a nightmare for AppImage creators since the format was created. The most effective
solution to this issue is to modify the source code and add a way of setting those paths at runtime. But, this is not
always possible.&lt;/p&gt;

&lt;p&gt;The developer may not have access, permissions, knowledge or time to modify the source code. This is a big stop if you
plan to pack an applications as an AppImage. Obscure binary patches are used to workaround this leading to complex 
packaging recipes.&lt;/p&gt;

&lt;h1 id=&quot;system-calls-hooking-to-the-rescue&quot;&gt;System calls hooking to the rescue&lt;/h1&gt;

&lt;p&gt;With the help of ld-linux.so and its preload feature we can hook every system call that takes a file path as an argument
and edit it to point to the bundled files. This allows running binaries containing fixed file paths without modifying
them.&lt;/p&gt;

&lt;p&gt;For its use in AppImage bundle we added this feature into the &lt;a href=&quot;https://github.com/appimagecrafters/AppRun&quot;&gt;AppRun&lt;/a&gt; project.
This is will be deployed as default entry point for AppImages created with &lt;a href=&quot;https://github.com/AppImageCrafters/appimage-builder&quot;&gt;appimage-builder 0.6&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;limitations&quot;&gt;Limitations&lt;/h1&gt;

&lt;p&gt;Preloading libraries is only possible for dynamic linked binaries, we will need something different for static linked ones.
Luckily the major part of the modern software is dynamically linked.&lt;/p&gt;

</description>
        <pubDate>Wed, 19 Aug 2020 20:00:00 +0000</pubDate>
        <link>http://appimagecrafters.github.io//appimage/appimagebuilder/apprun/2020/08/19/path-mapping-in-appimages.html</link>
        <guid isPermaLink="true">http://appimagecrafters.github.io//appimage/appimagebuilder/apprun/2020/08/19/path-mapping-in-appimages.html</guid>
        
        
        <category>AppImage</category>
        
        <category>AppImageBuilder</category>
        
        <category>APPRUN</category>
        
      </item>
    
      <item>
        <title>Introducing appimage-manager</title>
        <description>&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;appimage-manager&lt;/code&gt; is a tool for managing your AppImage collection. It works quite similar to a traditional package
manager but without the fuss of managing dependencies.&lt;/p&gt;

&lt;h1 id=&quot;installation&quot;&gt;Installation&lt;/h1&gt;

&lt;p&gt;To install appimage-manager go to the releases page at Github, download the AppImage file into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/local/bin&lt;/code&gt; and
give it execution permissions. This is basically what the command below does:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo wget https://github.com/AppImageCrafters/appimage-manager/releases/download/v0.1.2/app-0.1.0-x86_64.AppImage -O /usr/local/bin/app; 
sudo chmod +x /usr/local/bin/app
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;usage&quot;&gt;Usage&lt;/h1&gt;

&lt;h2 id=&quot;looking-for-appimages&quot;&gt;Looking for AppImages&lt;/h2&gt;

&lt;p&gt;AppImage binaries are usually published in the author releases page. So if you know what application do you need then
go to the releases author releases page and download the binary right from there.&lt;/p&gt;

&lt;p&gt;If the author uses Github releases you can use:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;app install https://github.com/lbryio/lbry-desktop&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;discovering-appimage&quot;&gt;Discovering AppImage&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://appimage.github.io&quot;&gt;AppImage Index&lt;/a&gt; is an index of projects that publish AppImages. You can also use 
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://www.srevinsaju.me/get-appimage/&lt;/code&gt; for a better user interface.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.appimagehub.com&quot;&gt;AppImageHub&lt;/a&gt; is a software store were you can find many original and third party packaged 
applications. It’s recommended to always download binaries from the original author to avoid malware.&lt;/p&gt;

&lt;p&gt;AppImageHub is also integrated into the app, so in order to look for an application you can use: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;app search &amp;lt;appname&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;AppImage files will be downloaded to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$HOME/Applications&lt;/code&gt; and will be also added to your system menu on installation.&lt;/p&gt;

&lt;h2 id=&quot;updating-appimages&quot;&gt;Updating AppImages&lt;/h2&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;appimage-manager&lt;/code&gt; support delta updates using the zsync algorithm. This algorithm requires &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.zsync&lt;/code&gt; file to be published
by the author. In the cases were this file is not provided a regular download will be performed. Updates work also for
manually downloaded applications.&lt;/p&gt;

&lt;h1 id=&quot;preview&quot;&gt;Preview&lt;/h1&gt;

&lt;p&gt;See it working in this video:&lt;/p&gt;
&lt;iframe id=&quot;lbry-iframe&quot; width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://lbry.tv/$/embed/app_preview/cdd35353aefe047a8115c95a994ea63bfb728501&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
        <pubDate>Fri, 07 Aug 2020 05:00:00 +0000</pubDate>
        <link>http://appimagecrafters.github.io//appimage/2020/08/07/appimage-manager.html</link>
        <guid isPermaLink="true">http://appimagecrafters.github.io//appimage/2020/08/07/appimage-manager.html</guid>
        
        
        <category>AppImage</category>
        
      </item>
    
      <item>
        <title>Presenting AppImage Planet</title>
        <description>&lt;p&gt;The AppImage world is bast and mysterious, therefore a map is required to ease
navigation. That map is the RSS aggregator &lt;a href=&quot;https://appimage.gitlab.io/planet/&quot;&gt;AppImage Planet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There you will be able to find all the people and projects that gravitates around
the AppImage core project.  Let’s take a look to the more significant project.&lt;/p&gt;

&lt;h1 id=&quot;nxos&quot;&gt;NXOS&lt;/h1&gt;

&lt;p&gt;NXOS is a GNU/Linux distribution focused on AppImages. They use Ubuntu for the system
foundations and AppImages for user applications. This makes a great mix because 
developers can focus on making their awesome desktop environment and not having to
worry on providing builds for every single app.&lt;/p&gt;

&lt;p&gt;Read more about NXOS here: https://nxos.org/&lt;/p&gt;

&lt;h1 id=&quot;the-assassin-blog&quot;&gt;The Assassin blog&lt;/h1&gt;

&lt;p&gt;Don’t be scared, no one will assassinate you for visiting this web. It belongs to the
author of linux-deploy a great tool for creating AppImages. He is also an active 
collaborator of the AppImage project, so you can find many more AppImage related stuff 
there.&lt;/p&gt;

&lt;p&gt;For more details visit: https://assassinate-you.net/&lt;/p&gt;

&lt;h1 id=&quot;probono-blog&quot;&gt;Probono Blog&lt;/h1&gt;

&lt;p&gt;Probono is the original author of the AppImage project. He writes about AppImage, 
of course, and about many tech related stuff including linux usability, digital 
privacy, typography, and computer history.&lt;/p&gt;

&lt;p&gt;Check his blog here: https://medium.com/@probonopd/
He is also quite active on &lt;a href=&quot;twitter.com/probonopd/&quot;&gt;twitter&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;appimage-crafters&quot;&gt;AppImage Crafters&lt;/h1&gt;

&lt;p&gt;That’s us!&lt;/p&gt;

&lt;p&gt;We are responsible for the development of some awesome AppImage related projects such as:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;appimage-builder&lt;/li&gt;
  &lt;li&gt;appimage-manager&lt;/li&gt;
  &lt;li&gt;AppRun&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, we are active contributors of the AppImage core.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;That was all, finally we recommend you to visit &lt;a href=&quot;https://appimage.gitlab.io/planet/&quot;&gt;AppImage Planet&lt;/a&gt; and subscribe.&lt;/p&gt;

&lt;p&gt;Stay tuned for more :)&lt;/p&gt;

</description>
        <pubDate>Wed, 05 Aug 2020 05:00:00 +0000</pubDate>
        <link>http://appimagecrafters.github.io//appimage/2020/08/05/presenting-appimage-planet.html</link>
        <guid isPermaLink="true">http://appimagecrafters.github.io//appimage/2020/08/05/presenting-appimage-planet.html</guid>
        
        
        <category>AppImage</category>
        
      </item>
    
      <item>
        <title>Welcome to AppImage Crafters!</title>
        <description>&lt;p&gt;Every large GNU/Linux distribution has its way of packaging applications. With every release some packages change their names, some are added, and some others are deleted. For an application developer, this is a nightmare as they must target not one but several moving targets.&lt;/p&gt;

&lt;p&gt;Let’s add that once a package goes into the “Official Repositories” it’s frozen until the next releases. There is keep all the working and not-working parts of the application. This translates into many issues reports on old bugs and frustrated users for not being able to get the new and shiny version.&lt;/p&gt;

&lt;p&gt;The user also suffers from this approach, they have to wait for their GNU/Linux distribution maintainer to update the packages. This can take days, months, years, or not happen at all.&lt;/p&gt;

&lt;p&gt;Users may also need to have some software installed to make use of their apps. There is no problem if this software comes pre-installed but if it doesn’t it may become a very hairy task to install it.&lt;/p&gt;

&lt;h1 id=&quot;the-appimage-crafters-initiative&quot;&gt;The AppImage Crafters Initiative&lt;/h1&gt;

&lt;p&gt;We believe that &lt;em&gt;developers&lt;/em&gt; should be able to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;create a single bundle that runs on almost every GNU/Linux distribution&lt;/li&gt;
  &lt;li&gt;control the application runtime dependencies&lt;/li&gt;
  &lt;li&gt;control the application distribution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We believe that &lt;em&gt;users&lt;/em&gt; should be able to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;use an application packaged for GNU/Linux no matter which distro they use&lt;/li&gt;
  &lt;li&gt;get the application the day it’s released&lt;/li&gt;
  &lt;li&gt;install it without the need for installing a package manager&lt;/li&gt;
  &lt;li&gt;keep the application version they love forever*&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We aim to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Educate developers on creating packages for GNU/Linux using the AppImage format&lt;/li&gt;
  &lt;li&gt;Develop tools to ease the creation process and user experience&lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Wed, 29 Jul 2020 20:04:50 +0000</pubDate>
        <link>http://appimagecrafters.github.io//appimage/2020/07/29/welcome-to-appimagecrafters.html</link>
        <guid isPermaLink="true">http://appimagecrafters.github.io//appimage/2020/07/29/welcome-to-appimagecrafters.html</guid>
        
        
        <category>AppImage</category>
        
      </item>
    
  </channel>
</rss>
