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+))) |