Nekaj guix paketov

main
Jurij Podgoršek 2024-08-21 17:33:56 +02:00
parent df194859db
commit 69dfaaca4f
6 changed files with 4883 additions and 0 deletions

View File

@ -0,0 +1,102 @@
(define-module (g1smo packages fluxus)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system scons)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages maths)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages dbm)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gnunet)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages stb)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages racket))
(define-public fluxus
(package
(name "fluxus")
(version "0.19")
(source (origin (method git-fetch)
(uri (git-reference
(url "https://gitlab.com/nebogeo/fluxus")
(commit "2259ab0be14c28fb49ea8f5db3ec6c49f52e1528")))
(sha256
(base32
"1xhc06mhxipclrplsdq5fzb4kcgd04yzhpcnrp69cwpnlmydqnxz"))))
(build-system scons-build-system)
(arguments
`(#:scons ,scons-python2))
(inputs
(list racket
ode
liblo
fftw))
(native-inputs
(list glibc
pkg-config))
(home-page "http://www.pawfal.org/Software/fluxus/")
(synopsis "A rapid prototyping, livecoding and playing/learning environment for 3D graphics, sound and games. ")
(description "A rapid prototyping, livecoding and playing/learning environment for 3D graphics, sound and games. ")
(license license:gpl2)))

View File

@ -0,0 +1,161 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Tomáš Čech <sleep_walker@suse.cz>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
;;; Copyright © 2020-2022 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (g1smo packages game-development)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system scons)
#:use-module (gnu packages)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages dbm)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnunet)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages stb)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public guile-chickadee
(package
(name "guile-chickadee")
(version "0.9.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
"0b92lld7kj629mvq44vgd8vmf9h7s5gkdawb35vkzlx5q03wjfvk"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0")))
(propagated-inputs
`(("guile-opengl" ,guile3.0-opengl)
("guile-sdl2" ,guile-sdl2)))
(inputs
(list freetype
guile-3.0-latest
libjpeg-turbo
libpng
libvorbis
mpg123
openal
readline))
(native-inputs
(list guile-3.0-latest pkg-config texinfo))
(home-page "https://dthompson.us/projects/chickadee.html")
(synopsis "Game development toolkit for Guile Scheme with SDL2 and OpenGL")
(description "Chickadee is a game development toolkit for Guile Scheme
built on top of SDL2 and OpenGL. Chickadee aims to provide all the features
that parenthetically inclined game developers need to make 2D (and eventually
3D) games in Scheme, such as:
@enumerate
@item extensible, fixed-timestep game loop
@item OpenGL-based rendering engine
@item keyboard, mouse, controller input
@item REPL-driven development model
@end enumerate\n")
(license license:gpl3+)))

View File

@ -0,0 +1,169 @@
(define-module (g1smo packages guile)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix deprecation)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages guile)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl)
#:use-module (gnu packages compression)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages databases)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages autotools))
(define-public guile3-dbi
(package
(name "guile3-dbi")
(version "2.1.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/opencog/guile-dbi")
(commit (string-append "guile-dbi-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"123m4j82bi60s1v95pjh4djb7bh6zdwmljbpyg7zq8ni2gyal7lw"))))
(build-system gnu-build-system)
(arguments
`(#:modules (((guix build guile-build-system)
#:select (target-guile-effective-version))
,@%gnu-build-system-modules)
#:imported-modules ((guix build guile-build-system)
,@%gnu-build-system-modules)
#:configure-flags
(list (string-append
"--with-guile-site-dir=" %output "/share/guile/site/"
(target-guile-effective-version (assoc-ref %build-inputs "guile"))))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
;; The upstream Git repository contains all the code, so change
;; to the directory specific to guile-dbi.
(chdir "guile-dbi")))
(add-after 'install 'patch-extension-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dbi.scm (string-append out "/share/guile/site/"
(target-guile-effective-version
(assoc-ref inputs "guile"))
"/dbi/dbi.scm"))
(ext (string-append out "/lib/libguile-dbi")))
(substitute* dbi.scm (("libguile-dbi") ext))))))))
(inputs
(list libltdl))
(native-inputs
(list autoconf automake libtool perl texinfo))
(propagated-inputs
(list guile-3.0-latest))
(synopsis "Guile database abstraction layer")
(home-page "https://github.com/opencog/guile-dbi")
(description
"guile-dbi is a library for Guile that provides a convenient interface to
SQL databases. Database programming with guile-dbi is generic in that the same
programming interface is presented regardless of which database system is used.
It currently supports MySQL, Postgres and SQLite3.")
(license license:gpl2+)
(native-search-paths
(list (search-path-specification
(variable "GUILE_DBD_PATH")
(files '("lib")))))))
(define-public guile3-dbd-sqlite3
(package
(inherit guile3-dbi)
(name "guile3-dbd-sqlite3")
(arguments
(substitute-keyword-arguments (package-arguments guile3-dbi)
((#:phases phases)
`(modify-phases ,phases
(replace 'chdir
(lambda _
;; The upstream Git repository contains all the code, so change
;; to the directory specific to guile-dbd-sqlite3.
(chdir "guile-dbd-sqlite3")))
(delete 'patch-extension-path)))))
(inputs
(modify-inputs (package-inputs guile3-dbi)
(prepend sqlite
zlib)))
(native-inputs
(modify-inputs (package-native-inputs guile3-dbi)
(prepend guile3-dbi ; only required for headers
pkg-config)))
(synopsis "Guile DBI driver for SQLite")
(description
"guile-dbi is a library for Guile that provides a convenient interface to
SQL databases. This package implements the interface for SQLite.")))
(define-public guile3-dbd-postgresql
(package
(inherit guile3-dbi)
(name "guile3-dbd-postgresql")
(arguments
(substitute-keyword-arguments (package-arguments guile3-dbi)
((#:phases phases)
`(modify-phases ,phases
(replace 'chdir
(lambda _
;; The upstream Git repository contains all the code, so change
;; to the directory specific to guile-dbd-mysql.
(chdir "guile-dbd-postgresql")))
(add-after 'chdir 'patch-src
(lambda _
(substitute* "src/guile-dbd-postgresql.c"
(("postgresql/libpq-fe\\.h") "libpq-fe.h"))))
(delete 'patch-extension-path)))))
(inputs
(list postgresql zlib))
(native-inputs
(modify-inputs (package-native-inputs guile3-dbi)
(prepend guile3-dbi ; only required for headers
)))
(synopsis "Guile DBI driver for PostgreSQL")
(description
"@code{guile-dbi} is a library for Guile that provides a convenient
interface to SQL databases. This package implements the interface for
PostgreSQL.")))
(define-public guile3-dbd-mysql
(package
(inherit guile3-dbi)
(name "guile3-dbd-mysql")
(arguments
(substitute-keyword-arguments (package-arguments guile3-dbi)
((#:phases phases)
`(modify-phases ,phases
(replace 'chdir
(lambda _
;; The upstream Git repository contains all the code, so change
;; to the directory specific to guile-dbd-mysql.
(chdir "guile-dbd-mysql")))
(add-after 'chdir 'patch-src
(lambda _
(substitute* "configure.ac"
(("mariadbclient") "mariadb"))
(substitute* "src/guile-dbd-mysql.c"
(("<mariadb/") "<mysql/"))))
(delete 'patch-extension-path)))))
(inputs
(modify-inputs (package-inputs guile3-dbi)
(prepend `(,mariadb "dev")
`(,mariadb "lib")
zlib)))
(native-inputs
(modify-inputs (package-native-inputs guile3-dbi)
(prepend guile3-dbi ; only required for headers
)))
(synopsis "Guile DBI driver for MySQL")
(description "@code{guile-dbi} is a library for Guile that provides a
convenient interface to SQL databases. This package implements the interface
for MySQL.")
(license license:gpl2+)))

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,97 @@
(define-module (g1smo packages python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-check)
#:use-module (gnu packages check)
#:use-module (gnu packages django))
(define-public python-semantic-version
(package
(name "python-semantic-version")
(version "2.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "semantic_version" version))
(sha256
(base32 "0704smz9k6hdd6i5xh0xf0sk47kannjb77abilvvp34r6v9vdaxx"))))
(build-system pyproject-build-system)
(native-inputs (list python-check-manifest
python-colorama
python-coverage
python-django
python-flake8
python-nose2
python-readme-renderer
python-tox
python-wheel))
(home-page "https://github.com/rbarrois/python-semanticversion")
(supported-systems '("i686-linux" "x86_64-linux"))
(synopsis "A library implementing the 'SemVer' scheme.")
(description
"This small python library provides a few tools to handle SemVer in Python. It follows strictly the 2.0.0 version of the SemVer scheme.")
(license license:bsd-3)))
(define-public python-platformio
(package
(name "python-platformio")
(version "6.1.15")
(supported-systems '("i686-linux" "x86_64-linux"))
(source
(origin
(method url-fetch)
(uri (pypi-uri "platformio" version))
(sha256
(base32 "1pjzjz86h84x1jc947x1l375w3nr0cry4vn7naxgsh03sih9l86k"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases
%standard-phases
;; Disable telemetry (sends to google analytics)
(add-after
'unpack 'remove-telemetry
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "platformio/telemetry.py"
(((string-append "if not app.get_setting(\"enable_telemetry\") or app.get_session_var(\n"
" \"pause_telemetry\"\n"
" ):"))
("if True:"))))))))
(propagated-inputs (list python-ajsonrpc
python-bottle
python-click
python-colorama
python-marshmallow
python-pyelftools
python-pyserial
python-requests
python-semantic-version
python-starlette
python-tabulate
python-uvicorn
python-wsproto))
(native-inputs (list python-black
python-isort
python-pylint
python-pytest
python-pytest-xdist
python-jsondiff
python-twisted
python-semantic-version
scons))
(home-page "https://platformio.org")
(synopsis
"Your Gateway to Embedded Software Development Excellence 👽")
(description
"Unlock the true potential of embedded software development with PlatformIO's collaborative ecosystem, embracing declarative principles, test-driven methodologies, and modern toolchains for unrivaled success.")
(license license:asl2.0)))

View File

@ -0,0 +1,296 @@
(define-module (g1smo packages razno)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guixrus packages olive-editor)
#:use-module (nonguix build-system chromium-binary)
#:use-module (gnu packages audio)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages fonts)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphics)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages swig)
#:use-module (gnu packages video))
(define-public signal-desktop
(package
(name "signal-desktop")
(version "7.18.0")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
"_amd64.deb"))
(sha256
(base32 "0wzpp1f7hdyqy2av6aidwqd8x0y69p9pz4nvj86l2yjrrw5cd3f4"))))
(supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system)
(arguments
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
#:wrapper-plan
#~'("lib/Signal/signal-desktop")
#:phases
#~(modify-phases %standard-phases
(add-after 'binary-unpack 'setup-cwd
(lambda _
(copy-recursively "usr/" ".")
;; Use the more standard lib directory for everything.
(rename-file "opt/" "lib")
;; Remove unneeded files.
(delete-file-recursively "usr")
;; Fix the .desktop file binary location.
(substitute* '("share/applications/signal-desktop.desktop")
(("/opt/Signal/")
(string-append #$output "/bin/")))))
(add-after 'install 'symlink-binary-file
(lambda _
(mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/Signal/signal-desktop")
(string-append #$output "/bin/signal-desktop"))))
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
(lambda _
(wrap-program (string-append #$output "/lib/Signal/signal-desktop")
`("LD_LIBRARY_PATH" ":" prefix
(,(string-join
(list
(string-append #$output "/lib/Signal"))
":")))))))))
(home-page "https://signal.org/")
(synopsis "Private messenger using the Signal protocol")
(description "Signal Desktop is an Electron application that links with Signal on Android
or iOS.")
;; doesn't work?
(properties
'((release-monitoring-url . "https://github.com/signalapp/Signal-Desktop/releases")))
(license license:agpl3)))
(define-public openshot
(package
(name "openshot")
(version "3.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/OpenShot/openshot-qt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1hh5sggvnfayzgj1h9h7wp9k0n44lj2z32am9g51whkyzl5pp5nd"))
(modules '((guix build utils)))
(snippet
'(begin
;; TODO: Unbundle jquery and others from src/timeline/media
(delete-file-recursively "src/images/fonts") #t))))
(build-system python-build-system)
(inputs
(list ffmpeg
font-dejavu
libopenshot
python
python-pyqt
python-pyqtwebengine
python-pyzmq
python-requests
qtsvg:5
qtwebengine-5))
(arguments
`(#:modules ((guix build python-build-system)
(guix build qt-utils)
(guix build utils))
#:imported-modules (,@%python-build-system-modules
(guix build qt-utils))
#:phases (modify-phases %standard-phases
(delete 'build) ;install phase does all the work
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "QT_QPA_PLATFORM" "offscreen")
(invoke "python" "src/tests/query_tests.py"))))
(add-after 'unpack 'patch-font-location
(lambda* (#:key inputs #:allow-other-keys)
(let ((font (assoc-ref inputs "font-dejavu")))
(substitute* "src/classes/app.py"
(("info.IMAGES_PATH") (string-append "\"" font "\""))
(("fonts") "share/fonts/truetype")
(("[A-Za-z_-]+.ttf") "DejaVuSans.ttf")))
#t))
(add-before 'install 'set-tmp-home
(lambda _
;; src/classes/info.py "needs" to create several
;; directories in $HOME when loaded during build
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'wrap-program
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(qtwebengine-process-path
(search-input-file
inputs "/lib/qt5/libexec/QtWebEngineProcess")))
(wrap-qt-program "openshot-qt"
#:output out #:inputs inputs)
;; Help the program discover QtWebEngine at runtime.
(wrap-program (string-append out "/bin/openshot-qt")
`("QTWEBENGINEPROCESS_PATH" =
(,qtwebengine-process-path)))))))))
(home-page "https://www.openshot.org/")
(synopsis "Video editor")
(description "OpenShot takes your videos, photos, and music files and
helps you create the film you have always dreamed of. Easily add sub-titles,
transitions, and effects and then export your film to many common formats.")
(license license:gpl3+)))
(define-public libopenshot
(package
(name "libopenshot")
(version "0.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/OpenShot/libopenshot")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0jfp0kdncwmw8gqk0z8frpc4xdv9rxwh4z5m5l6mkyy320hr8zgm"))
(modules '((guix build utils)))
(snippet '(begin
;; Allow overriding of the python installation dir
(substitute* "bindings/python/CMakeLists.txt"
(("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set)
(string-append set " CACHE PATH "
"\"Python bindings directory\")")))
(delete-file-recursively "thirdparty")))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python)
("swig" ,swig)
("unittest++" ,unittest-cpp)))
(inputs
(list alsa-lib zlib))
(propagated-inputs ;all referenced in installed headers
(list cppzmq
ffmpeg-4
imagemagick
jsoncpp
libopenshot-audio
qtbase-5
qtmultimedia-5
qtsvg-5
zeromq))
(arguments
`(#:configure-flags
(list (string-append "-DPYTHON_MODULE_PATH:PATH=" %output "/lib/python"
,(version-major+minor (package-version python))
"/site-packages")
"-DUSE_SYSTEM_JSONCPP:BOOL=ON")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-vars
(lambda* (#:key inputs #:allow-other-keys)
(setenv "LIBOPENSHOT_AUDIO_DIR"
(assoc-ref inputs "libopenshot-audio"))
(setenv "ZMQDIR"
(assoc-ref inputs "zeromq"))
(setenv "UNITTEST_DIR"
(search-input-directory inputs
"include/UnitTest++")))))))
(home-page "https://openshot.org")
(synopsis "Video-editing, animation, and playback library")
(description "OpenShot Library (libopenshot) is a powerful C++ video
editing library with a multi-threaded and feature rich video editing
API. It includes bindings for Python, Ruby, and other languages.")
(license license:lgpl3+)))
(define-public libolivecore
(let ((revision "1")
(commit "08eeee5fa90bed55442f2be9e324482f0be0a73c"))
(package
(name "olive")
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/olive-editor/core")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1jh8hf7ap4qmqdzkhc4ax15k4yhvh5mbd7pnl0xv2bgx13p6ydvw"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DCMAKE_CXX_FLAGS=-Wno-error=shadow")
#:phases (modify-phases %standard-phases
(delete 'check))))
(inputs
(list ffmpeg
imath
mesa))
(native-inputs
(list pkg-config))
(home-page "https://olivevideoeditor.org")
(synopsis "Common components shared between Olive libraries")
(description
"GPU core library used for various video-related applications. Currently supports OpenGL, will soon support Vulkan.")
(license license:gpl3+))))
(define-public olive
(let ((revision "3")
(commit "aef08f8cdd4780f4c407539a6c5e9a3286d1ab80"))
(package
(name "olive")
(version (git-version "0.2.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/olive-editor/olive")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1hgv4l8y8xnv5xjjaz5ikxi93c5idqpjlby181597ib2pd62d4b4"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DCMAKE_CXX_FLAGS=-Wno-error=shadow")))
(inputs
(list qtbase-5
qtmultimedia-5
qttools-5
qtsvg-5
ffmpeg
opencolorio
openimageio
portaudio
zlib
imath
openexr-3
ilmbase))
(native-inputs
(list pkg-config qmsetup kddockwidgets libolivecore))
(home-page "https://olivevideoeditor.org")
(synopsis "Free non-linear video editor")
(description
"@code{olive} is a free and open source non-linear video editor.")
(license license:gpl3+))))