diff options
Diffstat (limited to 'gnu/packages/code.scm')
| -rw-r--r-- | gnu/packages/code.scm | 150 |
1 files changed, 80 insertions, 70 deletions
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index e3e4c6738c4..86f633a28b1 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm | |||
| @@ -339,81 +339,91 @@ features that are not supported by the standard @code{stdio} implementation.") | |||
| 339 | "http://sourceforge.net/p/ctrio/git/ci/master/tree/README")))) | 339 | "http://sourceforge.net/p/ctrio/git/ci/master/tree/README")))) |
| 340 | 340 | ||
| 341 | (define-public universal-ctags | 341 | (define-public universal-ctags |
| 342 | ;; The project is unable to decide whether to use 1.0 or 6.0 as the | 342 | (package |
| 343 | ;; first public release version (it started as a fork of another ctags | 343 | (name "universal-ctags") |
| 344 | ;; project that was on version 5.8), and five years later have been | 344 | (version "5.9.20201018.0") |
| 345 | ;; unable to tag a release. Thus, we just take the master branch. | 345 | (source |
| 346 | (let ((commit "0c78c0c4a68030df0d025c90bad291108b5e7107") | 346 | (origin |
| 347 | (revision "0")) | 347 | (method git-fetch) |
| 348 | (package | 348 | (uri (git-reference |
| 349 | (name "universal-ctags") | 349 | (url "https://github.com/universal-ctags/ctags") |
| 350 | (version (git-version "0.0.0" revision commit)) | 350 | (commit (string-append "p" version)))) |
| 351 | (source | 351 | (file-name (git-file-name name version)) |
| 352 | (origin | 352 | (sha256 |
| 353 | (method git-fetch) | 353 | (base32 |
| 354 | (uri (git-reference | 354 | "174p1w20pl25k996hfw61inw4mqhskmmic1lyw2m65firmkyvs7x")) |
| 355 | (url "https://github.com/universal-ctags/ctags") | 355 | (modules '((guix build utils))) |
| 356 | (commit commit))) | 356 | (snippet |
| 357 | (file-name (git-file-name name version)) | 357 | '(begin |
| 358 | (sha256 | 358 | ;; Remove the bundled PackCC and associated build rules. |
| 359 | (base32 | 359 | (substitute* "Makefile.am" |
| 360 | "0lnxc3kwi6srw0015m16vyjfdc7pdr9d1qzxjsbfv3c69ag87jhc")) | 360 | (("\\$\\(packcc_verbose\\)\\$\\(PACKCC\\)") |
| 361 | (modules '((guix build utils))) | 361 | "packcc") |
| 362 | (snippet | 362 | (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): packcc\\$\\(EXEEXT\\)") |
| 363 | '(begin | 363 | "$(PEG_SRCS) $(PEG_HEADS):") |
| 364 | ;; Remove the bundled PackCC and associated build rules. | 364 | (("noinst_PROGRAMS \\+= packcc") |
| 365 | (substitute* "Makefile.am" | 365 | "")) |
| 366 | (("\\$\\(packcc_verbose\\)\\$\\(PACKCC\\)") | 366 | (delete-file-recursively "misc/packcc") |
| 367 | "packcc") | 367 | #t)))) |
| 368 | (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): packcc\\$\\(EXEEXT\\)") | 368 | (build-system gnu-build-system) |
| 369 | "$(PEG_SRCS) $(PEG_HEADS):") | 369 | (arguments |
| 370 | (("noinst_PROGRAMS \\+= packcc") | 370 | '(#:phases (modify-phases %standard-phases |
| 371 | "")) | 371 | (add-after 'unpack 'make-files-writable |
| 372 | (delete-file-recursively "misc/packcc") | 372 | (lambda _ |
| 373 | #t)))) | 373 | (for-each make-file-writable (find-files ".")) |
| 374 | (build-system gnu-build-system) | 374 | #t)) |
| 375 | (arguments | 375 | (add-before 'bootstrap 'patch-optlib2c |
| 376 | '(#:phases (modify-phases %standard-phases | 376 | (lambda _ |
| 377 | (add-after 'unpack 'make-files-writable | 377 | ;; The autogen.sh script calls out to optlib2c to |
| 378 | (lambda _ | 378 | ;; generate translations, so we can not wait for the |
| 379 | (for-each make-file-writable (find-files ".")) | 379 | ;; patch-source-shebangs phase. |
| 380 | #t)) | 380 | (patch-shebang "misc/optlib2c") |
| 381 | (add-before 'bootstrap 'patch-optlib2c | 381 | #t)) |
| 382 | (lambda _ | 382 | (add-before 'check 'patch-tests |
| 383 | ;; The autogen.sh script calls out to optlib2c to | 383 | (lambda _ |
| 384 | ;; generate translations, so we can not wait for the | 384 | (substitute* "misc/units" |
| 385 | ;; patch-source-shebangs phase. | 385 | (("SHELL=/bin/sh") |
| 386 | (patch-shebang "misc/optlib2c") | 386 | (string-append "SHELL=" (which "sh")))) |
| 387 | #t)) | 387 | (substitute* "Tmain/utils.sh" |
| 388 | (add-before 'check 'patch-tests | 388 | (("/bin/echo") (which "echo"))) |
| 389 | (lambda _ | 389 | #t))))) |
| 390 | (substitute* "misc/units" | 390 | (native-inputs |
| 391 | (("SHELL=/bin/sh") | 391 | `(("autoconf" ,autoconf) |
| 392 | (string-append "SHELL=" (which "sh")))) | 392 | ("automake" ,automake) |
| 393 | (substitute* "Tmain/utils.sh" | 393 | ;; XXX: Use ctags' own packcc fork even though we meticolously unbundle |
| 394 | (("/bin/echo") (which "echo"))) | 394 | ;; it above. Mainly for historical reasons, and perhaps their changes |
| 395 | #t))))) | 395 | ;; get upstreamed in the future. |
| 396 | (native-inputs | 396 | ("packcc" |
| 397 | `(("autoconf" ,autoconf) | 397 | ,(let ((commit "03402b79505dc0024f90d5bebfd7e5d3fb62da9a")) |
| 398 | ("automake" ,automake) | 398 | (package |
| 399 | ("packcc" ,packcc) | 399 | (inherit packcc) |
| 400 | ("perl" ,perl) | 400 | (source (origin |
| 401 | ("pkg-config" ,pkg-config))) | 401 | (method git-fetch) |
| 402 | (inputs | 402 | (uri (git-reference |
| 403 | `(("jansson" ,jansson) | 403 | (url "https://github.com/universal-ctags/packcc") |
| 404 | ("libseccomp" ,libseccomp) | 404 | (commit commit))) |
| 405 | ("libxml2" ,libxml2) | 405 | (file-name (git-file-name "packcc-for-ctags" |
| 406 | ("libyaml" ,libyaml))) | 406 | (string-take commit 7))) |
| 407 | (home-page "https://ctags.io/") | 407 | (sha256 |
| 408 | (synopsis "Generate tag files for source code") | 408 | (base32 |
| 409 | (description | 409 | "0vxpdk9l2lf7f32nx1p3b3xmw2kw2wp95vnf9bc4lyqrg69pblm0"))))))) |
| 410 | "Universal Ctags generates an index (or tag) file of language objects | 410 | ("perl" ,perl) |
| 411 | ("pkg-config" ,pkg-config))) | ||
| 412 | (inputs | ||
| 413 | `(("jansson" ,jansson) | ||
| 414 | ("libseccomp" ,libseccomp) | ||
| 415 | ("libxml2" ,libxml2) | ||
| 416 | ("libyaml" ,libyaml))) | ||
| 417 | (home-page "https://ctags.io/") | ||
| 418 | (synopsis "Generate tag files for source code") | ||
| 419 | (description | ||
| 420 | "Universal Ctags generates an index (or tag) file of language objects | ||
| 411 | found in source files for many popular programming languages. This index | 421 | found in source files for many popular programming languages. This index |
| 412 | makes it easy for text editors and other tools to locate the indexed items. | 422 | makes it easy for text editors and other tools to locate the indexed items. |
| 413 | Universal Ctags improves on traditional ctags because of its multilanguage | 423 | Universal Ctags improves on traditional ctags because of its multilanguage |
| 414 | support, its ability for the user to define new languages searched by regular | 424 | support, its ability for the user to define new languages searched by regular |
| 415 | expressions, and its ability to generate emacs-style TAGS files.") | 425 | expressions, and its ability to generate emacs-style TAGS files.") |
| 416 | (license license:gpl2+)))) | 426 | (license license:gpl2+))) |
| 417 | 427 | ||
| 418 | (define-public withershins | 428 | (define-public withershins |
| 419 | (package | 429 | (package |
