Libticonv Guix Package Definition

(define-public libticonv
  (package
    (name "libticonv")
    (version "1.1.5")
    (source (origin
              (method url-fetch)
              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
              (sha256
               (base32
                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
    (build-system gnu-build-system)
    (arguments
     ;; build fails with out --enable-iconv (...?)
     `(#:configure-flags (list "--enable-iconv")
       #:phases
       (modify-phases %standard-phases
         (replace 'unpack
           (lambda* (#:key source #:allow-other-keys)
             (invoke "tar" "xvkf" source)
             (invoke "tar" "xvkf"
                     (string-append "tilibs2/libticonv-"
                                    ,version ".tar.bz2"))
             (chdir (string-append "libticonv-" ,version))
             #t)))))
    (native-inputs
     `(("autoconf" ,autoconf)
       ("automake" ,automake)
       ("libtool" ,libtool)
       ("pkg-config" ,pkg-config)))
    (inputs
     `(("glib" ,glib)))
    (synopsis "Character conversion library for TI calculators:
A part of the TiLP project")
    (description
     "This project aims to develop a multi-platform linking program for
use with all TI graphing calculators (TI73 to V200PLT).")
    (home-page "http://lpg.ticalc.org/prj_tilp/")
    (license license:gpl2+)))

Libticables2 Guix Package Definition

(define-public libticables2
  (package
    (name "libticables2")
    (version "1.3.5")
    (source (origin
              (method url-fetch)
              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
              (sha256
               (base32
                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list "--enable-libusb10")
       #:phases
       (modify-phases %standard-phases
         (replace 'unpack
           (lambda* (#:key source #:allow-other-keys)
             (invoke "tar" "xvkf" source)
             (invoke "tar" "xvkf"
                     (string-append "tilibs2/libticables2-"
                                    ,version ".tar.bz2"))
             (chdir (string-append "libticables2-" ,version))
             #t)))))
    (native-inputs
     `(("autoconf" ,autoconf)
       ("autogen" ,autogen)
       ("automake" ,automake)
       ("gettext" ,gnu-gettext)
       ("libtool" ,libtool)
       ("pkg-config" ,pkg-config)))
    (inputs
     `(("glib" ,glib)
       ("libusb" ,libusb)))
    (synopsis "Texas Instruments link cable library: A part of the TiLP project")
    (description
     "This project aims to develop a multi-platform linking program for
use with all TI graphing calculators (TI73 to V200PLT).")
    (home-page "http://lpg.ticalc.org/prj_tilp/")
    (license license:gpl2+)))

I am planning to submit this to Guix after completing definitions for the other tilibs2 components.

libticables: guix build notes

christopher@nightshade ~/Build/tilibs2/libticables2-1.3.5$ guix describe
Generation 16	Apr 11 2020 08:47:10	(current)
  guix 658505d
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 658505d7a92f0518e1fc4c965bdaa389a6e83f2c
christopher@nightshade ~/Build/tilibs2/libticables2-1.3.5$ guix environment --pure --ad-hoc gcc-toolchain autoconf automake grep sed coreutils tar xz findutils diffutils m4 autogen libtool pkg-config libusb gawk

Can run autoconf -i -f and configure --enable-usb10 and make without errors, though two deprecation warnings appear.

Am working on package definitions for tiemu and dependencies.

Building LibreCMC in Guix

Was trying today to build v1.5.1 in a Guix –pure environment. This was a bit painful to figure out due to defects in the build scripts. For starters, one build script does not properly recognize the presence of git in your path, so you must delete the following lines from include/prereq-build.mk:

$(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))

Now here is a working Guix environment:

christopher@eowyn ~/Build/librecmc-lts$ guix environment --pure --ad-hoc gcc-toolchain perl make git coreutils grep sed bash which pkg-config binutils ncurses wget tar patch diffutils unzip bzip2 findutils gawk gengetopt python2 python file util-linux nss-certs

There is another bug in the build scripts that for some reason cannot see the runtime path to some of the ncurses libraries. Also, build scripts do not detect gcc, so:

christopher@eowyn ~/Build/librecmc-lts [env]$ pkg-config --libs ncurses
-L/gnu/store/gzp4ig4rdb1qf4i5dy1d9nl0zmj5q09y-ncurses-6.1-20190609/lib -lncursesw
christopher@eowyn ~/Build/librecmc-lts [env]$ LD_LIBRARY_PATH=/gnu/store/gzp4ig4rdb1qf4i5dy1d9nl0zmj5q09y-ncurses-6.1-20190609/lib CC=gcc make menuconfig

I had a thought to patch the librecmc build scripts, and then work on a LibreCMC Guix package definition. But not sure how soon I will get to that.