gnu: Remove idris.

* gnu/packages/idris.scm (idris): Delete variable.
* gnu/packages/patches/idris-test-ffi008.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Unregister patch.

Change-Id: I7a825e25e4c2e8c67b8395ef1efd80bfa40d5fc4
This commit is contained in:
Andreas Enge 2026-01-05 16:48:17 +01:00
parent f9e92222d9
commit e89d3a0857
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3
3 changed files with 0 additions and 172 deletions

View file

@ -1615,7 +1615,6 @@ dist_patch_DATA = \
%D%/packages/patches/icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
%D%/packages/patches/idris-test-ffi008.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inferno-fix-crash.patch \
%D%/packages/patches/inkscape-libxml2.patch \

View file

@ -36,148 +36,3 @@
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public idris
(package
(name "idris")
(version "1.3.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/idris-lang/Idris-dev.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0cd2a92323hb9a6wy8sc0cqwnisf4pv8y9y2rxvxcbyv8cs1q8g2"))
(patches (search-patches "idris-test-ffi008.patch"))))
(build-system haskell-build-system)
(native-inputs ;For tests
(list perl ghc-cheapskate ghc-tasty ghc-tasty-golden
ghc-tasty-rerun))
(inputs
(list gmp
ncurses
ghc-aeson
ghc-annotated-wl-pprint
ghc-ansi-terminal
ghc-ansi-wl-pprint
ghc-async
ghc-base64-bytestring
ghc-blaze-html
ghc-blaze-markup
ghc-cheapskate
ghc-code-page
ghc-fingertree
ghc-fsnotify
ghc-ieee754
ghc-libffi
ghc-megaparsec
ghc-network
ghc-optparse-applicative
ghc-regex-tdfa
ghc-safe
ghc-split
ghc-terminal-size
ghc-uniplate
ghc-unordered-containers
ghc-utf8-string
ghc-vector
ghc-vector-binary-instances
ghc-zip-archive))
(arguments
`(#:configure-flags
(list (string-append "--datasubdir="
(assoc-ref %outputs "out") "/lib/idris")
"-fFFI" "-fGMP")
#:phases
(modify-phases %standard-phases
;; This allows us to call the 'idris' binary before installing.
(add-after 'unpack 'set-ld-library-path
(lambda _
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
(add-before 'configure 'update-constraints
(lambda _
(substitute* "idris.cabal"
(("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[<>=0-9. &|]+" all dep)
dep))))
(add-before 'configure 'set-cc-command
(lambda _
(setenv "CC" ,(cc-for-target))))
(add-after 'install 'fix-libs-install-location
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib/idris"))
(modules (string-append lib "/libs")))
(for-each
(lambda (module)
(symlink (string-append modules "/" module)
(string-append lib "/" module)))
'("prelude" "base" "contrib" "effects" "pruviloj")))))
(delete 'check) ;Run check later
(add-after 'install 'check
(lambda* (#:key outputs #:allow-other-keys #:rest args)
(let ((out (assoc-ref outputs "out")))
(chmod "test/scripts/timeout" #o755) ;must be executable
(setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count)))
(setenv "IDRIS_CC" ,(cc-for-target)) ;Needed for creating executables
(setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
(apply (assoc-ref %standard-phases 'check) args)))))))
(native-search-paths
(list (search-path-specification
(variable "IDRIS_LIBRARY_PATH")
(files '("lib/idris")))))
(home-page "https://www.idris-lang.org")
(synopsis "General purpose language with full dependent types")
(description "Idris is a general purpose language with full dependent
types. It is compiled, with eager evaluation. Dependent types allow types to
be predicated on values, meaning that some aspects of a program's behaviour
can be specified precisely in the type. The language is closely related to
Epigram and Agda.")
(license license:bsd-3)))
;; Idris modules use the gnu-build-system so that the IDRIS_LIBRARY_PATH is set.
(define (idris-default-arguments name)
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(idris (assoc-ref inputs "idris"))
(idris-bin (string-append idris "/bin/idris"))
(idris-libs (string-append idris "/lib/idris/libs"))
(module-name (and (string-prefix? "idris-" ,name)
(substring ,name 6)))
(ibcsubdir (string-append out "/lib/idris/" module-name))
(ipkg (string-append module-name ".ipkg"))
(idris-library-path (getenv "IDRIS_LIBRARY_PATH"))
(idris-path (string-split idris-library-path #\:))
(idris-path-files (apply append
(map (lambda (path)
(map (lambda (dir)
(string-append path "/" dir))
(scandir path))) idris-path)))
(idris-path-subdirs (filter (lambda (path)
(and path (match (stat:type (stat path))
('directory #t)
(_ #f))))
idris-path-files))
(install-cmd (cons* idris-bin
"--ibcsubdir" ibcsubdir
"--build" ipkg
;; only trigger a build, as --ibcsubdir
;; already installs .ibc files.
(apply append (map (lambda (path)
(list "--idrispath"
path))
idris-path-subdirs)))))
;; FIXME: Seems to be a bug in idris that causes a dubious failure.
(apply system* install-cmd)))))))

View file

@ -1,26 +0,0 @@
Avoid "multiple definition of `mystruct'" error from `ld`:
Submitted upstream at https://github.com/idris-lang/Idris-dev/issues/4914
--- a/test/ffi008/ffi008.h 1969-12-31 18:00:01.000000000 -0600
+++ a/test/ffi008/ffi008.h 2022-04-13 00:32:35.561262598 -0500
@@ -10,7 +10,7 @@
int16_t b;
};
-struct test2 mystruct;
+extern struct test2 mystruct;
int size1(void);
int size2(void);
--- a/test/ffi008/ffi008.c 1969-12-31 18:00:01.000000000 -0600
+++ a/test/ffi008/ffi008.c 2022-04-13 00:32:53.145186302 -0500
@@ -11,6 +11,8 @@
return sizeof(struct test2);
}
+struct test2 mystruct;
+
void print_mystruct(void) {
printf("a: %d b: %d\n", mystruct.a, mystruct.b);
}