From 007c75f56fc48b031c1383c98b6bbb3c1e3c30ad Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 14 Dec 2017 17:03:58 -0600 Subject: [PATCH] gnu: ao-cad: Update and fix for aarch64. * gnu/packages/patches/ao-cad-aarch64-support.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/engineering.scm (ao-cad)[source]: Use it. Update snapshot to fb288c9. Use VCS helpers for version and file-name. [arguments]: Add 'remove-native-compilation' phase. --- gnu/local.mk | 1 + gnu/packages/engineering.scm | 22 ++++++++++--------- .../patches/ao-cad-aarch64-support.patch | 18 +++++++++++++++ 3 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/ao-cad-aarch64-support.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6f540731e2..e9ee25e4a8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -539,6 +539,7 @@ dist_patch_DATA = \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ + %D%/packages/patches/ao-cad-aarch64-support.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 77b1386b53..61abd6058b 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -559,10 +559,11 @@ as well as pick-place files.") (license license:gpl2+))) (define-public ao - (let ((commit "0bc2354b8dcd1a82a0fd6647706b126045e52734")) + (let ((commit "fb288c945aa7e30d9be10a564edad7e1b6a6c1ae") + (revision "1")) (package (name "ao-cad") ;XXX: really "ao", but it collides with libao - (version (string-append "0." (string-take commit 7))) + (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -570,8 +571,9 @@ as well as pick-place files.") (commit commit))) (sha256 (base32 - "0lm7iljklafs8dhlvaab2yhwx4xymrdjrqk9c5xvn59hlvbgl1j5")) - (file-name (string-append name "-" version "-checkout")) + "0syplfqiq7ng7md44yriq5cz41jp8q9z3pl2iwkkllds6p9ylyal")) + (file-name (git-file-name name version)) + (patches (search-patches "ao-cad-aarch64-support.patch")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries: Eigen, glm, and catch. TODO: @@ -594,6 +596,10 @@ as well as pick-place files.") #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-native-compilation + (lambda _ + (substitute* "CMakeLists.txt" (("-march=native") "")) + #t)) (add-before 'build 'add-eigen-to-search-path (lambda* (#:key inputs #:allow-other-keys) ;; Allow things to find our own Eigen and Catch. @@ -615,16 +621,12 @@ as well as pick-place files.") (with-directory-excursion ,(string-append "../" name "-" version "-checkout") - (substitute* "bind/guile/ao/bind.scm" + (substitute* "bind/guile/ao/sys/libao.scm" (("\\(define libao \\(dynamic-link .*$") (string-append "(define libao (dynamic-link \"" out "/lib/libao\")) ;"))) - (for-each (lambda (file) - (install-file file - (string-append moddir - "/ao"))) - (find-files "bind/guile" "\\.scm$")) + (copy-recursively "bind/guile/ao" (string-append moddir "/ao")) (substitute* "bin/ao-guile" (("\\(add-to-load-path .*") diff --git a/gnu/packages/patches/ao-cad-aarch64-support.patch b/gnu/packages/patches/ao-cad-aarch64-support.patch new file mode 100644 index 0000000000..291369cd9b --- /dev/null +++ b/gnu/packages/patches/ao-cad-aarch64-support.patch @@ -0,0 +1,18 @@ +Support in ao-cad for aarch64. + +Submitted upstream at https://github.com/mkeeter/ao/issues/69 + +--- ao/ui/vendor/efsw/src/efsw/inotify-nosys.h.orig 2017-12-14 16:27:16.125871099 -0600 ++++ ao/ui/vendor/efsw/src/efsw/inotify-nosys.h 2017-12-14 16:26:39.786022981 -0600 +@@ -69,6 +69,11 @@ + # define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317) + # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318) + ++#elif defined (__aarch64__) ++# define __NR_inotify_init 1043 ++# define __NR_inotify_add_watch 27 ++# define __NR_inotify_rm_watch 28 ++ + #elif defined (__frv__) + # define __NR_inotify_init 291 + # define __NR_inotify_add_watch 292