Add tex and ocaml stuff
more/packages/ocaml.scm
1 | 1 | ;;; GNU Guix --- Functional package management for GNU | |
2 | - | ;;; Copyright ?? 2017 Julien Lepiller <julien@lepiller.eu> | |
2 | + | ;;; Copyright ?? 2017-2019 Julien Lepiller <julien@lepiller.eu> | |
3 | 3 | ;;; | |
4 | 4 | ;;; This file is part of GNU Guix. | |
5 | 5 | ;;; | |
… | |||
21 | 21 | #:use-module (guix download) | |
22 | 22 | #:use-module (guix git-download) | |
23 | 23 | #:use-module (guix utils) | |
24 | + | #:use-module (guix build-system dune) | |
24 | 25 | #:use-module (guix build-system gnu) | |
25 | 26 | #:use-module (guix build-system ocaml) | |
26 | 27 | #:use-module ((guix licenses) #:prefix license:) | |
… | |||
31 | 32 | #:use-module (gnu packages bison) | |
32 | 33 | #:use-module (gnu packages boost) | |
33 | 34 | #:use-module (gnu packages check) | |
35 | + | #:use-module (gnu packages compression) | |
34 | 36 | #:use-module (gnu packages coq) | |
35 | 37 | #:use-module (gnu packages emacs) | |
36 | 38 | #:use-module (gnu packages flex) | |
… | |||
561 | 563 | (synopsis "") | |
562 | 564 | (description "") | |
563 | 565 | (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+))) |