aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.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 lego)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages qt))

(define-public nqc
  (package
    (name "nqc")
    (version "3.1.r6")
    (source (origin
              ;; XXX Using url-fetch/tarbomb results in failure:
              ;; Error: could not create compiler/rcx1_nqh.h
              (method url-fetch)
              (uri (string-append "http://bricxcc.sourceforge.net/nqc/release/"
                                  "nqc-" version ".tgz"))
              (sha256
               (base32
                "0rp7pzr8xrdxpv75c2mi8zszzz2ypli4vvzxiic7mbrryrafdmdz"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("bison" ,bison)
       ("flex" ,flex)
       ("add-usb-tcp-support.patch"
        ,(origin
           (method url-fetch)
           (uri (string-append "https://sourceforge.net/p/bricxcc/patches/"
                               "_discuss/thread/00b427dc/b84b/attachment/"
                               "nqc-01-Linux_usb_and_tcp.diff"))
           (sha256
            (base32 "0z5gx55ra1kamhhqxz08lvvwslfl36pbmwdd566rhmbgmyhlykbr"))))
       ("debian-writable-swap-inst-len.patch"
        ,(origin
           (method url-fetch)
           (uri (string-append "https://sources.debian.org/data/main/n/nqc/"
                               "3.1.r6-7/debian/patches/"
                               "writable-swap-inst-len.patch"))
           (sha256
            (base32 "1kr7j057aa5i0kxmlfpbfcsif5yq2lrmjw4sljn400ijaq4mys3v"))))))
    (arguments
     '(#:tests? #f                      ;no tests
       #:make-flags (list (string-append "PREFIX=" %output))
       #:phases
       (modify-phases %standard-phases
         (delete 'configure)
         (add-before 'build 'rm-generated
           ;; Regenerating compiler/lexer.cpp avoids an 'undefined
           ;; reference to `isatty(int)'' error.
           (lambda _
             (for-each delete-file
                       '("compiler/lexer.cpp"
                         "compiler/parse.cpp"))
             #t))
         (add-after 'unpack 'deal-with-tarbomb
           (lambda _
             (chdir "..")               ;tarbomb
             #t))
         (add-after 'deal-with-tarbomb 'patch
           (lambda* (#:key inputs #:allow-other-keys)
             (for-each (lambda (patch)
                         (invoke "patch" "-Np1" "-i"
                                 (assoc-ref inputs patch)))
                       (list "add-usb-tcp-support.patch"
                             "debian-writable-swap-inst-len.patch")))))))
    (home-page "https://bricxcc.sourceforge.net/nqc/")
    (synopsis "C-like language for Lego's MINDSTORMS")
    (description
     "Not Quite C (NQC) is a simple language for programming several Lego
MINDSTORMS products.  The preprocessor and control structures of NQC are very
similar to C.  NQC is not a general purpose language -- there are many
restrictions that stem from limitations of the standard RCX firmware.")
    (license license:mpl1.0)))

(define-public leocad
  (package
    (name "leocad")
    (version "23.03")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/leozide/leocad")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0sihx2g06mxaahqdh361xfqf7fkzzyhlr58qlzyr4c8jd2pnd3r1"))))
    (build-system gnu-build-system)
    (native-inputs
     (list qttools-5))           ; for lrelease
    (inputs
     (list mesa qtbase-5 zlib))
    (arguments
     '(#:tests? #f
       #:phases
       (modify-phases %standard-phases
         (replace 'configure
           (lambda* (#:key outputs inputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (invoke "qmake"
                       (string-append "INSTALL_PREFIX=" out)
                       ;; Otherwise looks for lrelease-qt4.
                       "QMAKE_LRELEASE=lrelease"
                       ;; Don't pester users about updates.
                       "DISABLE_UPDATE_CHECK=1")
               #t)))
         (add-after 'configure 'reset-resource-timestamps
           (lambda _
             ;; The contents of build/release/.qrc/qrc_leocad.cpp generated by
             ;; qt's rcc tool depends on the timestamps in resources/*, in
             ;; particular the leocad_*.qm files that are created by qmake
             ;; above.  So reset those timestamps for a reproducible build.
             (with-directory-excursion "resources"
               (for-each (lambda (file)
                           (let* ((base (basename file ".qm"))
                                  (src (string-append base ".ts"))
                                  (st (stat src)))
                             (set-file-time file st)))
                         (find-files "." "leocad_.*\\.qm")))
             #t)))))
    (home-page "https://www.leocad.org")
    (synopsis "Create virtual Lego models")
    (description
     "LeoCAD is a program for creating virtual LEGO models.  It has an
intuitive interface, designed to allow new users to start creating new models
without having to spend too much time learning the application.  LeoCAD is
fully compatible with the LDraw Standard and related tools.")
    (license license:gpl2+)))
020-04-23 13:33:09 +0200'>2020-04-23Merge branch 'master' into core-updates... Conflicts: etc/news.scm gnu/local.mk gnu/packages/bootloaders.scm gnu/packages/linphone.scm gnu/packages/linux.scm gnu/packages/tls.scm gnu/system.scm Marius Bakke 2020-04-22gnu: commoncpp: Add support for gnu updater....* gnu/packages/telephony.scm (commoncpp)[properties]: New field. Add ftp-directory, upstream-name. Efraim Flashner 2020-04-22gnu: osip: Update to 5.1.1....* gnu/packages/telephony.scm (osip): Update to 5.1.1. Efraim Flashner 2020-04-22gnu: osip: Add support for gnu updater....* gnu/packages/telephony.scm (osip)[properties]: New field. Add upstream-name, ftp-directory. Efraim Flashner 2020-04-11gnu: spandsp: Add comment....* gnu/packages/telephony.scm (spandsp)[native-inputs]: Note that the LIBJPEG-TURBO dependency comes via LIBTIFF. Marius Bakke 2020-04-11gnu: spandsp: Fix build failure....* gnu/packages/telephony.scm (spandsp)[native-inputs]: Add libjpeg-turbo. Danny Milosavljevic 2020-04-08Merge branch 'master' into core-updates... Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm Marius Bakke 2020-04-04gnu: jami: Make some inputs native....* gnu/packages/telephony.scm (jami)[inputs]: Move gettext from here... [native-inputs]: ...to here. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Vincent Legoll 2020-04-04gnu: Replace uses of 'gettext' with 'gettext-minimal'....* gnu/packages/cdrom.scm (dvdstyler)[native-inputs]: Change from GNU-GETTEXT to GETTEXT-MINIMAL. * gnu/packages/emulators.scm (dolphin-emu)[native-inputs]: Likewise. * gnu/packages/engineering.scm (lepton-eda, kicad, kicad-i18l)[native-inputs]: Likewise. * gnu/packages/games.scm (quadrapassel, edgar)[native-inputs]: Likewise. * gnu/packages/gnome.scm (eog-plugins, workrave, geary)[native-inputs]: Likewise. * gnu/packages/guile-xyz.scm (guile-gi, emacsy)[native-inputs]: Likewise. * gnu/packages/image.scm (gpick)[native-inputs]: Likewise. * gnu/packages/messaging.scm (telegram-purple)[native-inputs]: Likewise. * gnu/packages/music.scm (fmit)[native-inputs]: Likewise. * gnu/packages/package-management.scm (flatpak)[native-inputs]: Likewise. * gnu/packages/patchutils.scm (quilt)[native-inputs]: Likewise. * gnu/packages/photo.scm (hugin)[native-inputs]: Likewise. * gnu/packages/security-token.scm (eid-mw)[native-inputs]: Likewise. * gnu/packages/telephony.scm (jami)[native-inputs]: Likewise. * gnu/packages/texinfo.scm (pinfo)[native-inputs]: Likewise. * gnu/packages/vulkan.scm (vkd3d)[native-inputs]: Likewise. * gnu/packages/web.scm (cadaver)[native-inputs]: Likewise. Marius Bakke 2020-04-03gnu: spandsp: Disable parallel build....The build could otherwise fail non-deterministically. Reported-by: Raghav Gururajan <raghavgururajan@disroot.org> * gnu/packages/telephony.scm (spandsp)[arguments]: Set parallel-build? to false. Maxim Cournoyer 2020-04-03gnu: Remove bctoolbox and ortp....* gnu/packages/telephony.scm (bctoolbox): Delete variable. (ortp): Delete variable. * gnu/packages/audio.scm (bluez-alsa)[inputs]: Update ortp reference. * gnu/packages/kde-internet.scm (kopete)[inputs]: Update ortp reference. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Raghav Gururajan 2020-03-31gnu: Add spandsp....* gnu/packages/telephony.scm (spandsp): New variable. Co-authored by Maxim Cournoyer. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Raghav Gururajan 2020-03-10Merge branch 'master' into core-updatesMarius Bakke 2020-03-10gnu: mumble: Disable statistic gathering by default....Fixes <https://bugs.gnu.org/25201> * gnu/packages/telephone.scm (mumble)[arguments]: Add phase to disable statistic gathering by default. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Michael Rohleder 2020-01-21Merge branch 'staging' into core-updatesMarius Bakke 2020-01-20gnu: libsrtp: Build shared library....* gnu/packages/telephony.scm (libsrtp)[arguments]: Add #:phases. Marius Bakke 2020-01-20gnu: libsrtp: Update to 2.3.0....* gnu/packages/telephony.scm (libsrtp): Update to 2.3.0. Marius Bakke 2020-01-15gnu: util-linux: Move libraries to separate output....Fixes <https://bugs.gnu.org/37732>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/packages/linux.scm (util-linux)[outputs]: Add "lib". [arguments]: Update #:configure-flags and the "move-static-libraries" phase accordingly. Add phases "patch-build-scripts" and "adjust-pkg-config-files". (e2fsprogs, psm, mtd-utils, f2fs-tools, f2fs-tools-1.7, eudev, xfsprogs)[inputs]: Change to the "lib" output of UTIL-LINUX. (btrfs-progs)[inputs]: Remove duplicate UTIL-LINUX inputs and change to use the "lib" output. * gnu/packages/admin.scm (pam-mount)[inputs]: Add UTIL-LINUX:LIB. (testdisk)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/android.scm (abootimg)[inputs]: Likewise. * gnu/packages/audio.scm (jack-1)[propagated-inputs]: Likewise. * gnu/packages/bootloaders.scm (syslinux, vboot-utils)[inputs]: Likewise. * gnu/packages/chez.scm (chez-scheme)[inputs]: Likewise. * gnu/packages/cryptsetup.scm (cryptsetup, cryptsetup-static)[inputs]: Likewise. * gnu/packages/databases.scm (postgresql, 4store)[inputs]: Likewise. * gnu/packages/disk.scm (ndctl, gptfdisk, fdisk, gparted, rmlint, volume-key)[inputs]: Likewise. (parted)[inputs]: Likewise. [native-inputs]: Add UTIL-LINUX. * gnu/packages/efi.scm (sbsigntools)[inputs]: Add UTIL-LINUX:LIB. * gnu/packages/engineering.scm (lib3mf)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/enlightenment.scm (efl)[propagated-inputs]: Likewise. * gnu/packages/file-systems.scm (glusterfs, jfsutils, zfs)[inputs]: Likewise. * gnu/packages/firmware.scm (ovmf)[inputs]: Likewise. * gnu/packages/fontutils.scm (fontconfig)[propagated-inputs]: Likewise. * gnu/packages/freedesktop.scm (localed)[inputs]: Likewise. * gnu/packages/glib.scm (glib, appstream-glib)[propagated-inputs]: Likewise. * gnu/packages/gnome.scm (tracker, gnome-terminal)[inputs]: Likewise. * gnu/packages/jupyter.scm (xeus)[inputs]: Likewise. * gnu/packages/kde.scm (kpmcore)[inputs]: Likewise. * gnu/packages/kodi.scm (crossguid)[inputs]: Likewise. * gnu/packages/lighting.scm (ola)[inputs]: Likewise. * gnu/packages/music.scm (libgig)[inputs]: Likewise. * gnu/packages/nfs.scm (nfs-utils)[inputs]: Likewise. * gnu/packages/opencog.scm (opencog)[inputs]: Likewise. * gnu/packages/package-management.scm (msitools)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/password-utils.scm (pwsafe)[inputs]: Likewise. * gnu/packages/telephony.scm (pjproject)[propagated-inputs]: Likewise. * gnu/packages/rdf.scm (rasqal)[inputs]: Likewise. * gnu/packages/search.scm (xapian)[inputs]: Likewise. * gnu/packages/sssd.scm (sssd)[native-inputs]: Likewise. * gnu/packages/storage.scm (ceph)[inputs]: Add UTIL-LINUX:LIB. * gnu/packages/task-management.scm (taskwarrior)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/virtualization.scm (libvirt, xen)[inputs]: Likewise. * gnu/packages/xorg.scm (libsm)[inputs]: Likewise. Marius Bakke 2020-01-11Merge branch 'master' into core-updatesMarius Bakke 2020-01-05gnu: libtgvoip: Fix failing build on i686-linux....* gnu/local.mk (libtgvoip): Add patches for libtgvoip-disable-sse2.patch and libtgvoip-disable-webrtc.patch * gnu/packages/patches/libtgvoip-disable-sse2.patch: New file. * gnu/packages/patches/libtgvoip-disable-webrtc.patch: New file. * gnu/packages/telephony.scm (libtgvoip): Fix building on i686-linux. [source]: Reference patches for correcting failing build on i686-linux architecture. Reported-by: Diego Nicola Barbato <dnbarbato@posteo.de> Fixes <bugs.gnu.org/38944>. Brett Gilio 2020-01-05gnu: libtgvoip: Update to 2.4.4....* gnu/packages/telephony.scm (libtgvoip): Update to 2.4.4. [source]: Change source URI to reflect upstream. [inputs]: Add pulseaudio and alsa-lib. This change corrects a bug, and allows for cross-compilation on armhf architectures. Brett Gilio 2020-01-01gnu: Add libtgvoip....* gnu/packages/telephony.scm (libtgvoip): New variable. Brett Gilio 2019-12-31Merge remote-tracking branch 'master' into core-updates.Mathieu Othacehe 2019-12-23Revert "gnu: mumble: Actually modify qt-build-system."...Now the qt-build-system is fixed, this is no longer necessary. This reverts commit a7a91c01c98499c8a1e44fadea1b8f70e91fc16f. Hartmut Goebel 2019-12-22gnu: mumble: Actually modify qt-build-system....This was reported by Ivan Vilata i Balaguer. * gnu/packages/telephony.scm (mumble)[arguments]: Refer to the qt-build-system %supported-phases directly so we modify them. Efraim Flashner 2019-12-19gnu: mumble: Update to 1.3.0....* gnu/packages/telephony.scm (mumble): Update to 1.3.0. [source]: Remove patch. Update snippet. [build-system]: Switch to qt-build-system. [arguments]: Update custom 'configure phase. Add custom phase to disable murmur ice. [inputs]: Remove protobuf-3.5, libx11, qt-4, alsa-lib. Add protobuf, mesa, qtbase, qtsvg. [native-inputs]: Add python, qttools. [license]: Update license info. * gnu/packages/patches/mumble-1.2.19-abs.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Ivan Vilata-i-Balaguer 2019-12-05Merge branch 'master' into core-updatesMarius Bakke 2019-12-01gnu: jami: Fix wrapper....* gnu/packages/telephony.scm (jami)[arguments]: Wrap around jami-gnome instead of gnome-ring. [synopsis]: Make it more sensible. Pierre Neidhardt 2019-12-01gnu: libring: Update to 20191101....* gnu/packages/telephony.scm (libring)[inputs]: Replace restbed with restinio, add asio. Pierre Neidhardt 2019-12-01gnu: pjproject-jami: Update to 2.9...* gnu/packages/telephony.scm (pjproject-jami)[arguments]: Fix flags, make files writable, update patch set. Pierre Neidhardt 2019-12-01gnu: jami: Update to 20191101.3.67671e7....* gnu/packages/telephony.scm (jami): Update to 20191101.3.67671e7. Pierre Neidhardt 2019-12-01gnu: pjproject: Update to 2.9....* gnu/packages/telephony.scm (pjproject): Update to 2.9. Pierre Neidhardt 2019-11-28gnu: sqlite: Build with column metadata....* gnu/packages/sqlite.scm (sqlite)[arguments]: Add configure flag to enable column metadata. (sqlite-with-column-metadata): Remove variable. * gnu/packages/fontutils.scm (fontmanager)[inputs]: Replace sqlite-with-column-metadata with sqlite. * gnu/packages/messaging (dino)[inputs]: Ditto. * gnu/packages/music.scm (clementine)[inputs]: Ditto. * gnu/packages/qt.scm (qtbase)[inputs]: Ditto. * gnu/packages/telephony.scm (jami)[inputs]: Remove sqlite-with-column-metadata. [arguments]: Remove custom 'wrap phase. Efraim Flashner