Add tex and ocaml stuff

Julien LepillerFri Apr 12 18:17:34+0200 2019

b11b83f

Add tex and ocaml stuff

more/packages/ocaml.scm

11
;;; GNU Guix --- Functional package management for GNU
2-
;;; Copyright ?? 2017 Julien Lepiller <julien@lepiller.eu>
2+
;;; Copyright ?? 2017-2019 Julien Lepiller <julien@lepiller.eu>
33
;;;
44
;;; This file is part of GNU Guix.
55
;;;

2121
  #:use-module (guix download)
2222
  #:use-module (guix git-download)
2323
  #:use-module (guix utils)
24+
  #:use-module (guix build-system dune)
2425
  #:use-module (guix build-system gnu)
2526
  #:use-module (guix build-system ocaml)
2627
  #:use-module ((guix licenses) #:prefix license:)

3132
  #:use-module (gnu packages bison)
3233
  #:use-module (gnu packages boost)
3334
  #:use-module (gnu packages check)
35+
  #:use-module (gnu packages compression)
3436
  #:use-module (gnu packages coq)
3537
  #:use-module (gnu packages emacs)
3638
  #:use-module (gnu packages flex)

561563
    (synopsis "")
562564
    (description "")
563565
    (license license:lgpl2.1+)))
566+
567+
(define-public ocaml-optint
568+
  (package
569+
    (name "ocaml-optint")
570+
    (version "0.0.2")
571+
    (source
572+
      (origin
573+
        (method url-fetch)
574+
        (uri "https://github.com/dinosaure/optint/releases/download/v0.0.2/optint-v0.0.2.tbz")
575+
        (sha256
576+
          (base32
577+
            "1lmb7nycmkr05y93slqi98i1lcs1w4kcngjzjwz7i230qqjpw9w1"))))
578+
    (build-system dune-build-system)
579+
    (arguments
580+
     `(#:test-target "."))
581+
    (home-page "https://github.com/dinosaure/optint")
582+
    (synopsis
583+
      "Abstract type on integer between x64 and x86 architecture")
584+
    (description
585+
      "This library provide one module `Optint` which use internally an `int` if you
586+
are in a x64 architecture or an `int32` (boxed value) if you are in a x86
587+
architecture. This module is __really__ unsafe and does not care some details
588+
(like the sign bit) for any cast.
589+
590+
## Goal
591+
592+
The main difference between an `int` and an `int32` is the second is boxed.
593+
About performance this is not the best. However, you can not ensure to be in an
594+
x64 architecture where you can use directly an `int` instead an `int32` (and
595+
improve performance).
596+
597+
So, this library provide an abstraction about a real `int32`. In a x64
598+
architecture, internally, we use a `int` and in a x86 architure, we use a
599+
`int32`. By this way, we ensure to have in any platform 32 free bits in
600+
`Optint.t`.")
601+
    (license #f)))
602+
603+
(define-public ocaml-checkseum
604+
  (package
605+
    (name "ocaml-checkseum")
606+
    (version "0.0.3")
607+
    (source
608+
      (origin
609+
        (method url-fetch)
610+
        (uri "https://github.com/dinosaure/checkseum/releases/download/v0.0.3/checkseum-v0.0.3.tbz")
611+
        (sha256
612+
          (base32
613+
            "12j45zsvil1ynwx1x8fbddhqacc8r1zf7f6h576y3f3yvbg7l1fm"))))
614+
    (build-system dune-build-system)
615+
    (propagated-inputs
616+
      `(("ocaml-optint" ,ocaml-optint)
617+
        ("ocaml-fmt" ,ocaml-fmt)
618+
        ("ocaml-rresult" ,ocaml-rresult)
619+
        ("ocaml-cmdliner" ,ocaml-cmdliner)))
620+
    (native-inputs
621+
      `(("ocaml-alcotest" ,ocaml-alcotest)))
622+
    (home-page
623+
      "https://github.com/dinosaure/checkseum")
624+
    (synopsis
625+
      "Adler-32, CRC32 and CRC32-C implementation in C and OCaml")
626+
    (description
627+
      "Checkseum is a library to provide implementation of Adler-32, CRC32 and CRC32-C in C and OCaml.
628+
629+
This library use the linking trick to choose between the C implementation (checkseum.c) or the OCaml implementation (checkseum.ocaml).
630+
This library is on top of optint to get the best representation of an int32.
631+
")
632+
    (license #f)))
633+
634+
; not the latest but imagelib requires 0.7
635+
(define-public ocaml-decompress
636+
  (package
637+
    (name "ocaml-decompress")
638+
    (version "0.7")
639+
    (source
640+
      (origin
641+
        (method url-fetch)
642+
        (uri "https://github.com/mirage/decompress/releases/download/v0.7/decompress-0.7.tbz")
643+
        (sha256
644+
          (base32
645+
            "1q96q4bhrlz13c33jj82qn6706m8dbn4azc6yja8lbavpy4q5zpy"))))
646+
    (build-system ocaml-build-system)
647+
    (arguments
648+
     ;; Tets need some path modification
649+
     `(#:tests? #f
650+
       #:phases
651+
       (modify-phases %standard-phases
652+
         (delete 'configure)
653+
         (replace 'build
654+
           (lambda _
655+
             (invoke "ocaml" "pkg/pkg.ml" "build")))
656+
         (add-before 'build 'set-topfind
657+
           (lambda* (#:key inputs #:allow-other-keys)
658+
             ;; add the line #directory ".." at the top of each file
659+
             ;; using #use "topfind";; to be able to find topfind
660+
             (let* ((findlib-path (assoc-ref inputs "findlib"))
661+
                    (findlib-libdir
662+
                     (string-append findlib-path "/lib/ocaml/site-lib")))
663+
               (substitute* '("pkg/pkg.ml")
664+
                 (("#use       \"topfind\";;" all)
665+
                  (string-append "#directory \"" findlib-libdir "\"\n"
666+
                                 all))))
667+
             #t)))))
668+
    (propagated-inputs
669+
     `(("ocaml-optint" ,ocaml-optint)
670+
        ("ocaml-checkseum" ,ocaml-checkseum)
671+
        ("ocaml-cmdliner" ,ocaml-cmdliner)))
672+
    (native-inputs
673+
      `(("camlzip" ,camlzip)
674+
        ("ocaml-re" ,ocaml-re)
675+
        ("ocaml-topkg" ,ocaml-topkg)
676+
        ("ocamlbuild" ,ocamlbuild)
677+
        ("ocaml-alcotest" ,ocaml-alcotest)
678+
        ("opam" ,opam)))
679+
    (inputs
680+
     `(("zlib" ,zlib)))
681+
    (home-page
682+
      "https://github.com/mirage/decompress")
683+
    (synopsis "Implementation of Zlib in OCaml")
684+
    (description
685+
      "Decompress is an implementation of Zlib in OCaml
686+
687+
It provides a pure non-blocking interface to inflate and deflate data flow.
688+
")
689+
    (license #f)))
690+
691+
(define-public ocaml-imagelib
692+
  (package
693+
    (name "ocaml-imagelib")
694+
    (version "20180522")
695+
    (source
696+
      (origin
697+
        (method url-fetch)
698+
        (uri "https://github.com/rlepigre/ocaml-imagelib/archive/ocaml-imagelib_20180522.tar.gz")
699+
        (sha256
700+
          (base32
701+
            "06l724fj8yirp5jbf782r2xl3lrcff2i1b3c3pf80kbgngw6kakg"))))
702+
    (build-system ocaml-build-system)
703+
    (arguments
704+
     `(#:tests? #f
705+
       #:phases
706+
       (modify-phases %standard-phases
707+
         (delete 'configure)
708+
         (replace 'build
709+
           (lambda _
710+
             (invoke "make")))
711+
         (replace 'install
712+
           (lambda _
713+
             (invoke "make" "install"))))))
714+
    (propagated-inputs
715+
      `(("ocaml-decompress" ,ocaml-decompress)
716+
        ("which" ,which)))
717+
    (native-inputs
718+
      `(("ocamlbuild" ,ocamlbuild)))
719+
    (home-page "http://lepigre.fr")
720+
    (synopsis
721+
      "The imagelib library implements image formats such as PNG and PPM")
722+
    (description
723+
      "The imagelib library implements image formats such as PNG and PPM in
724+
OCaml, relying on only one external dependency: 'decompress'.
725+
726+
Supported image formats:
727+
 - PNG (full implementation of RFC 2083),
728+
 - PPM, PGM, PBM, ... (fully supported),
729+
 - JPG (only image size natively, conversion to PNG otherwise),
730+
 - GIF (only image size natively, conversion to PNG otherwise),
731+
 - XCF (only image size natively, conversion to PNG otherwise),
732+
 - Other formats rely on 'convert' (imagemagick).
733+
734+
As imagelib only requires 'decompress', it can be used together with
735+
js_of_ocaml to compile projects to Javascript. Note that some of the
736+
features of imagelib require the convert binary  (and thus cannot be
737+
used from Javascript).")
738+
    (license #f)))
739+
740+
741+
(define-public patoline
742+
  (package
743+
    (name "patoline")
744+
    (version "0.2")
745+
    (source (origin
746+
              (method url-fetch)
747+
              (uri (string-append "https://github.com/patoline/patoline/archive/"
748+
                                  version ".tar.gz"))
749+
              (file-name (string-append name "-" version ".tar.gz"))
750+
              (sha256
751+
               (base32
752+
                "1qlxcf8k83lcyamyg19838j3f1js068skxgab94axv2gv4ylhhfb"))))
753+
    (build-system dune-build-system)
754+
    (arguments
755+
     `(#:test-target "."
756+
       #:phases
757+
       (modify-phases %standard-phases
758+
         (add-before 'build 'set-dirs
759+
           (lambda* (#:key outputs #:allow-other-keys)
760+
             (let ((out (assoc-ref outputs "out")))
761+
               (substitute* '("unicodelib/config.ml"
762+
                              "patconfig/patDefault.ml")
763+
                 (("/usr/local/share") (string-append out "/share"))))
764+
             #t)))))
765+
    (propagated-inputs
766+
     `(("camlzip" ,camlzip)
767+
       ("ocaml-earley" ,ocaml-earley)
768+
       ("ocaml-imagelib" ,ocaml-imagelib)
769+
       ("ocaml-sqlite3" ,ocaml-sqlite3)))
770+
    (inputs
771+
     `(("zlib" ,zlib)))
772+
    (home-page "")
773+
    (synopsis "")
774+
    (description "")
775+
    (license license:gpl2+)))

more/packages/tex.scm unknown status 1

1+
;;; GNU Guix --- Functional package management for GNU
2+
;;; Copyright ?? 2019 Julien Lepiller <julien@lepiller.eu>
3+
;;;
4+
;;; This file is part of GNU Guix.
5+
;;;
6+
;;; GNU Guix is free software; you can redistribute it and/or modify it
7+
;;; under the terms of the GNU General Public License as published by
8+
;;; the Free Software Foundation; either version 3 of the License, or (at
9+
;;; your option) any later version.
10+
;;;
11+
;;; GNU Guix is distributed in the hope that it will be useful, but
12+
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13+
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14+
;;; GNU General Public License for more details.
15+
;;;
16+
;;; You should have received a copy of the GNU General Public License
17+
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18+
19+
(define-module (more packages tex)
20+
  #:use-module (guix packages)
21+
  #:use-module (guix download)
22+
  #:use-module (guix svn-download)
23+
  #:use-module (guix utils)
24+
  #:use-module (guix build-system texlive)
25+
  #:use-module ((guix licenses) #:prefix license:)
26+
  #:use-module (gnu packages)
27+
  #:use-module (gnu packages tex))
28+
29+
(define-public texlive-generic-babel-french
30+
  (package
31+
    (name "texlive-generic-babel-french")
32+
    (version (number->string %texlive-revision))
33+
    (source (origin
34+
              (method svn-fetch)
35+
              (uri (texlive-ref "generic" "babel-french"))
36+
              (file-name (string-append name "-" version "-checkout"))
37+
              (sha256
38+
               (base32
39+
                "1rymnl34w4k5izw56g48s90wki2qyq8nz1aj6ijax2bnznm55ngl"))))
40+
    (build-system texlive-build-system)
41+
    (arguments '(#:tex-directory "generic/babel-french"))
42+
    (home-page "https://www.ctan.org/pkg/babel-french")
43+
    (synopsis "Babel support for French")
44+
    (description
45+
     "This package provides the language definition file for support of
46+
French in @code{babel}.")
47+
    (license license:lppl1.3+)))
48+
49+
(define-public texlive-latex-sauerj
50+
  (package
51+
    (name "texlive-latex-sauerj")
52+
    (version (number->string %texlive-revision))
53+
    (source (origin
54+
              (method svn-fetch)
55+
              (uri (texlive-ref "latex" "sauerj"))
56+
              (file-name (string-append name "-" version "-checkout"))
57+
              (sha256
58+
               (base32
59+
                "1rn3l0klhx1yhw37m20jj5aiss0qd7n30ivhss6x9ivsli938dk0"))))
60+
    (build-system texlive-build-system)
61+
    (arguments '(#:tex-directory "latex/sauerj"))
62+
    (home-page "")
63+
    (synopsis "")
64+
    (description "sauerj, parcolumns")
65+
    (license license:lppl1.3+)))