Code Monkey home page Code Monkey logo

guix2appimage's Introduction

Guix2AppImage

A utility for converting any manifest of Guix packages into an executable AppImage.

Using a definition of the AppImage defined in Scheme, e.g. appdir.example.scm, it creates an AppImage that lets you run that/those Guix programs on any system that can run AppImages.

Example Usage

Create a shell with -- or install -- Guix2AppImage.

$ ls
AppDir.example  appdir.example.scm  appimagetool-x86_64.AppImage  package.scm  README.md  src
$ guix shell -f package.scm

Invoke guix2appimage to build the AppImage defined by a Scheme file.

$ guix2appimage appdir.example.scm

Your new AppImage will be available as myapp.AppImage.

$ ls
AppDir.example  appdir.example.scm  appimagetool-x86_64.AppImage  myapp.AppImage  package.scm  README.md  src

Though this utility uses Guix, it does not currently run on a Guix System alone and only works with Guix installed on a foreign distribution. The reason for this is that the AppImageTool utility from AppImageKit to create AppImages from an AppDir does not work with Guix. It seemes to only be buildable by Docker and assumes file paths that do not hold for a Guix System. I attempted to package AppImageKit for Guix, but I was unable to do so. For this reason, the appimagetool-x86_64.AppImage executable must be provided in the same working directory as the invocation of Guix2AppImage. I have included the appimagetool-x86_64.AppImage executable within this repository for convenience, but any file named the same thing from the AppImageKit repo will work.

Guix2AppImage reads the definition for an AppDir, an example of which is given in the appdir.example.scm file. Using this information it will construct a relocatable AppDir and then use the local appimagetool executable to create the .AppImage file. The AppDir is created in the Guix store, and so it is cached, but because appimagetool does not run in a purely Guix environment, the executable is just invoked locally and therefore does not cache. The resulting .AppImage file is written to the working directory.

guix2appimage's People

Contributors

danielbatterystapler avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.