diff options
author | 宋文武 <iyzsong@member.fsf.org> | 2025-01-31 16:35:02 +0800 |
---|---|---|
committer | 宋文武 <iyzsong@member.fsf.org> | 2025-02-20 19:43:22 +0800 |
commit | 584d1c1a8a3636c748056ad477d2c0129174b95a (patch) | |
tree | beebf7368d6d95024c91fa2ecbdfd23cc7d8cb46 | |
parent | 00787cd61611d74d3e54b160e94176905d36ef39 (diff) |
gnu: Add gambas.
* gnu/packages/gambas.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
Change-Id: Ia96b34ce49d0e7512a179f8e55a51dc3449fda08
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/gambas.scm | 189 |
2 files changed, 190 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 01926bb1b8..c7f63c458a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -310,6 +310,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/ftp.scm \ %D%/packages/fribidi.scm \ %D%/packages/fvwm.scm \ + %D%/packages/gambas.scm \ %D%/packages/game-development.scm \ %D%/packages/games.scm \ %D%/packages/gawk.scm \ diff --git a/gnu/packages/gambas.scm b/gnu/packages/gambas.scm new file mode 100644 index 0000000000..caa5d0b31d --- /dev/null +++ b/gnu/packages/gambas.scm @@ -0,0 +1,189 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2025 宋文武 <iyzsong@envs.net> +;;; +;;; 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 (gnu packages gambas) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system gnu) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (gnu packages ) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages crypto) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gstreamer) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages libffi) + #:use-module (gnu packages mail) + #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pdf) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages qt) + #:use-module (gnu packages sdl) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tls) + #:use-module (gnu packages webkit) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg)) + +(define-public gambas + (package + (name "gambas") + (version "3.20.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/gambas/gambas") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fw3nark7vaw4vbmdvaaqb0an4838k0hhwwvc3dqd7f2033d41xq")) + (modules '((guix build utils))) + (snippet + ;; Fix desktop file creation, upstream commit bbaa7b40. + '(substitute* "comp/src/gb.gui.base/.src/_Gui.class" + (("If sDir Begins [(]User\\.Home & \"/\"[)]" all) + (string-append all " And If Access(sDir, gb.Write)")))))) + (build-system gnu-build-system) + (arguments + (list + #:bootstrap-scripts #~'("reconf-all") + ;; XXX: Gambas executables expect a '#! /usr/bin/env gbr3' shebang. + #:patch-shebangs? #f + #:configure-flags + #~(list + (string-append "--with-inotify-includes=" + #$(this-package-input "glibc") + "/include") + (string-append "--with-crypt-libraries=" + #$(this-package-input "libxcrypt") + "/lib") + (string-append "--with-gmp-includes=" + #$(this-package-input "gmp") + "/include") + (string-append "--with-gmp-libraries=" + #$(this-package-input "gmp") + "/lib") + (string-append "--with-mysql-includes=" + #$(this-package-input "mysql") + "/include/mysql") + (string-append "--with-mysql-libraries=" + #$(this-package-input "mysql") + "/lib") + (string-append "--with-postgresql-includes=" + #$(this-package-input "postgresql") + "/include") + (string-append "--with-postgresql-libraries=" + #$(this-package-input "postgresql") + "/lib") + (string-append "--with-bzlib2-includes=" + #$(this-package-input "bzip2") + "/include") + (string-append "--with-bzlib2-libraries=" + #$(this-package-input "bzip2") + "/lib")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'qualify-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "main/gbc/gbc.c" + (("msgfmt -o") + (string-append (search-input-file inputs "bin/msgfmt") + " -o"))))) + (add-after 'install 'install-desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (appdir (string-append out "/share/applications")) + (icondir (string-append out "/share/pixmaps"))) + (install-file "app/desktop/gambas3.desktop" + (string-append appdir "/gambas3.desktop")) + (install-file "app/desktop/gambas3.png" + (string-append icondir "/gambas3.png")))))))) + (native-inputs + (list autoconf + automake + libtool + gettext-minimal + pkg-config)) + (inputs + (list alure + bzip2 + cairo + curl + dbus + gdk-pixbuf + gettext-minimal + glew + glibc + glu + gmime + gmp + gsl + gst-plugins-base + gstreamer + gtk+ + imlib2 + libffi + libice + libsm + libxcrypt + libxml2 + libxslt + libxtst + (list zstd "lib") + mesa + mysql + ncurses + openal + openssl + pcre2 + poppler + postgresql + qtbase + qtbase-5 + qtsvg + qtsvg-5 + qtwebengine + qtwebengine-5 + qtx11extras + sdl2 + sdl2-image + sdl2-mixer + sdl2-ttf + sqlite + unixodbc + webkitgtk-for-gtk3 + zlib)) + (home-page "https://gambas.sourceforge.net/") + (synopsis "Object-oriented language and development platform") + (description + "GAMBAS is a graphical development environment and platform based on a +BASIC interpreter. It is inspired by Visual Basic and Java.") + (license license:gpl2+))) |