Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2018-08-28 01:22:24 +02:00
commit 61fca0fd22
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
42 changed files with 12366 additions and 46840 deletions

View File

@ -56,6 +56,7 @@ Nils Gillmann <ng0@n0.is> <ngillmann@runbox.com>
Nils Gillmann <ng0@n0.is> <niasterisk@grrlz.net>
Nils Gillmann <ng0@n0.is> <ng@niasterisk.space>
Nils Gillmann <ng0@n0.is> <ng0@libertad.pw>
Pierre Neidhardt <mail@ambrevar.xyz>
Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@thebird.nl>

View File

@ -110,14 +110,14 @@ changement localement sans les installer pour de vrai. Pour pouvoir
distinguer votre rôle « d'utilisateur final » de celui parfois haut en
couleur de « développeur ».
Pour cela, tous les outils en ligne de commande sont utilisables même sans
avoir lancé @code{make install}. Vous devez pour cela préfixer chaque
commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se
trouve dans le répertoire de plus haut niveau de l'arborescence des sources
de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie
que @code{GUILE_LOAD_PATH} est bien paramétré pour @command{guix-daemon} et
les outils qu'il utilise puissent trouver les modules Guile dont ils ont
besoin.} :
To that end, all the command-line tools can be used even if you have not run
@code{make install}. To do that, you first need to have an environment with
all the dependencies available (@pxref{Construire depuis Git}), and then simply
prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env}
script lives in the top build tree of Guix), as in@footnote{The @option{-E}
flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly
set such that @command{guix-daemon} and the tools it uses can find the Guile
modules they need.}:
@example
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
@ -213,11 +213,12 @@ variables @var{yas-snippet-dirs} d'Emacs.
(add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))
@end lisp
Les extraits de messages de commit dépendent de @url{https://magit.vc/,
Magit} pour afficher les fichiers sélectionnés. Lors de la modification
d'un message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un
modèle de message de commit pour ajouter un paquet ; tapez @code{update}
suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet.
The commit message snippets depend on @url{https://magit.vc/, Magit} to
display staged files. When editing a commit message type @code{add}
followed by @kbd{TAB} to insert a commit message template for adding a
package; type @code{update} followed by @kbd{TAB} to insert a template for
updating a package; type @code{https} followed by @kbd{TAB} to insert a
template for changing the home page URI of a package to HTTPS.
L'extrait principal pour @code{scheme-mode} est lancé en tapant
@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de

File diff suppressed because it is too large Load Diff

View File

@ -584,6 +584,9 @@ dist_patch_DATA = \
%D%/packages/patches/audacity-build-with-system-portaudio.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avogadro-boost148.patch \
%D%/packages/patches/avogadro-eigen3-update.patch \
%D%/packages/patches/avogadro-python-eigen-lib.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
%D%/packages/patches/azr3.patch \
@ -768,6 +771,7 @@ dist_patch_DATA = \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/groff-source-date-epoch.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-check-error-efibootmgr.patch \
%D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
@ -1082,7 +1086,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-paste-remove-website-test.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \
%D%/packages/patches/python-pygit2-disable-network-tests.patch \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \

View File

@ -85,7 +85,8 @@
(uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
(sha256
(base32
"03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1"))))
"03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1"))
(patches (search-patches "grub-check-error-efibootmgr.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases

View File

@ -2,7 +2,7 @@
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -23,16 +23,96 @@
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gl)
#:use-module (gnu packages gv)
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
(define-public avogadro
(package
(name "avogadro")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/cryos/avogadro/archive/"
version ".tar.gz"))
(sha256
(base32
"02v4h6hi1m7ilv0apdf74a8l1cm6dxnxyqp0rdaidrp3i9pf6lv4"))
(file-name (string-append name "-" version ".tar.gz"))
(patches
(search-patches "avogadro-eigen3-update.patch"
"avogadro-python-eigen-lib.patch"
"avogadro-boost148.patch"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f
#:configure-flags
(list "-DENABLE_GLSL=ON"
(string-append "-DPYTHON_LIBRARIES="
(assoc-ref %build-inputs "python")
"/lib")
(string-append "-DPYTHON_INCLUDE_DIRS="
(assoc-ref %build-inputs "python")
"/include/python2.7"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-python-lib-path
(lambda* (#:key outputs #:allow-other-keys)
;; This is necessary to install the Python module in the correct
;; directory.
(substitute* "libavogadro/src/python/CMakeLists.txt"
(("^EXECUTE_PROCESS.*$") "")
(("^.*from sys import stdout.*$") "")
(("^.*OUTPUT_VARIABLE.*")
(string-append "set(PYTHON_LIB_PATH \""
(assoc-ref outputs "out")
"/lib/python2.7/site-packages\")")))
#t))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'avogadro' runs with the correct PYTHONPATH.
(let* ((out (assoc-ref outputs "out")))
(setenv "PYTHONPATH"
(string-append
(assoc-ref outputs "out")
"/lib/python2.7/site-packages:"
(getenv "PYTHONPATH")))
(wrap-program (string-append out "/bin/avogadro")
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
#t)))))
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(inputs
`(("boost" ,boost)
("eigen" ,eigen)
("glew" ,glew)
("openbabel" ,openbabel)
("python" ,python-2)
("python-numpy" ,python2-numpy)
("python-pyqt" ,python2-pyqt-4)
("python-sip" ,python2-sip)
("qt" ,qt-4)
("zlib" ,zlib)))
(home-page "https://avogadro.cc")
(synopsis "Advanced molecule editor")
(description
"Avogadro is an advanced molecule editor and visualizer designed for use
in computational chemistry, molecular modeling, bioinformatics, materials
science, and related areas. It offers flexible high quality rendering and a
powerful plugin architecture.")
(license license:gpl2+)))
(define-public domainfinder
(package
(name "domainfinder")

View File

@ -185,8 +185,8 @@ their dependencies.")
(license l:gpl3+))))
(define-public cuirass
(let ((commit "4db99f647b3677086a2007763726d05a59b0cdcb")
(revision "18"))
(let ((commit "8d40c49170971ad7bbf8b97336934dbb3d949fc1")
(revision "19"))
(package
(name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@ -198,7 +198,7 @@ their dependencies.")
(file-name (string-append name "-" version))
(sha256
(base32
"1lg3w0xjg6b806y8gfxj2dq1g0djm5pyk886j8g7n5n9ljlhjzxj"))))
"0xxcapf9ag3zx6131v128vhin5m2j3w2gjbjbpdwr0qkaysh0gvf"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)

View File

@ -7,7 +7,7 @@
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>

View File

@ -22,7 +22,7 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -12,7 +12,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -34,7 +34,7 @@
;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
@ -1179,16 +1179,18 @@ rather than the contents of files.")
(define-public emacs-async
(package
(name "emacs-async")
(home-page "https://github.com/jwiegley/emacs-async")
(version "1.9.3")
(source (origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/async-"
version ".tar"))
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0xvi50y96y2qh81qkhj8p6ar1xnfasg58qvlsvgvvmdf4g8srlij"))))
"1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq"))))
(build-system emacs-build-system)
(home-page "https://elpa.gnu.org/packages/async.html")
(synopsis "Asynchronous processing in Emacs")
(description
"This package provides the ability to call asynchronous functions and
@ -10025,8 +10027,8 @@ perform regression test for packages that provide font-lock rules.")
(license license:gpl3+))))
(define-public emacs-racket-mode
(let ((commit "1b78827d310b6d655782b7bba0f2360c9ef34ff6")
(revision "2"))
(let ((commit "add0190d3c9bdad25fee57f8efd0460c9a45c2ec")
(revision "1"))
(package
(name "emacs-racket-mode")
(version (string-append "0.0.2" "-" revision "."
@ -10040,7 +10042,7 @@ perform regression test for packages that provide font-lock rules.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"04mzxcg32av8p6v0pqb0si6qk5qxbrbllx6m3j16fp32bdz71sps"))))
"0bf6s4nqjfacij20x9vppdnq8fq1bf53cch6p4g8xqcqri3ms4jw"))))
(build-system emacs-build-system)
(arguments
`(#:include '("\\.el$" "\\.rkt$")))
@ -11374,8 +11376,8 @@ wiki.")
(license license:expat)))
(define-public emacs-recent-addresses
(let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373")
(revision "0"))
(let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
(revision "1"))
(package
(name "emacs-recent-addresses")
(home-page "http://nschum.de/src/emacs/recent-addresses/")
@ -11383,18 +11385,20 @@ wiki.")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nschum/recent-addresses.el")
;; Note: Use a branch that works with Helm. Submitted
;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
(url "https://github.com/civodul/recent-addresses.el")
(commit commit)))
(sha256
(base32
"175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk"))
"0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(synopsis "Record recently-used email addressed and auto-complete them")
(description
"@code{recent-addresses} is an Emacs allows you to quickly look up
previously used email addresses. It can be used alongside the Gnus email
client.")
"@code{recent-addresses} is an Emacs package that allows you to quickly
look up previously used email addresses. It can be used alongside the Gnus
email client.")
(license license:gpl2+))))
(define-public emacs-fold-dwim
@ -11643,3 +11647,30 @@ comments and Org files in the Magit status buffer. Activating an item jumps
to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
few (like NOTE).")
(license license:gpl3))))
(define-public emacs-git-annex
;; Unreleased version has a fontification fix.
(let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707")
(revision "1"))
(package
(name "emacs-git-annex")
(version (string-append "1.1-" revision "." (string-take commit 8)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jwiegley/git-annex-el")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
(build-system emacs-build-system)
(home-page "https://github.com/jwiegley/git-annex-el")
(synopsis "Emacs integration for git-annex")
(description "Enhances Dired and buffers visiting annex files with
git-annex functionality. In Dired, the names of annex files are shortened by
hiding the symbolic links and fontified based on whether content is present.
Commands for performing some common operations (e.g., unlocking and adding
files) are provided.")
(license license:gpl2+))))

View File

@ -59,6 +59,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
@ -76,6 +77,7 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages wxwidgets)
@ -224,6 +226,74 @@ tool to forward annotation from your schematic to layout using PCB; some minor
utilities.")
(license license:gpl2+)))
(define-public lepton-eda
;; This is a fork of gEDA/gaf started in late 2016. One of its goal is to
;; keep and to extend Guile support.
(package
(inherit geda-gaf)
(name "lepton-eda")
(version "1.9.5-20180820")
(home-page "https://github.com/lepton-eda/lepton-eda")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(sha256
(base32
"1ayaccvw18zh4g7a4x5jf6yxkphi5xafb0hpc732g59qkgwfcmlr"))
(file-name (git-file-name name version))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("gettext" ,gnu-gettext)
("texinfo" ,texinfo)
("groff" ,groff)
("which" ,which)
,@(package-native-inputs geda-gaf)))
;; For now it's Guile 2.0, not 2.2.
(arguments
(substitute-keyword-arguments (package-arguments geda-gaf)
((#:configure-flags flags ''())
;; When running "make", the POT files are built with the build time as
;; their "POT-Creation-Date". Later on, "make" notices that .pot
;; files were updated and goes on to run "msgmerge"; as a result, the
;; non-deterministic POT-Creation-Date finds its way into .po files,
;; and then in .gmo files. To avoid that, simply make sure 'msgmerge'
;; never runs. See <https://bugs.debian.org/792687>.
`(cons "ac_cv_path_MSGMERGE=true" ,flags))
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(add-before 'bootstrap 'prepare
(lambda _
;; Some of the scripts there are invoked by autogen.sh.
(for-each patch-shebang (find-files "build-tools"))
;; Make sure 'msgmerge' can modify the PO files.
(for-each (lambda (po)
(chmod po #o666))
(find-files "." "\\.po$"))
;; This would normally be created by invoking 'git', but it
;; doesn't work here.
(call-with-output-file "version.h"
(lambda (port)
(format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
,(string-drop version
(+ 1 (string-index version #\-))))
(format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
,(string-take version
(string-index version #\-)))
(format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
#t))))))
(description
"Lepton EDA ia an @dfn{electronic design automation} (EDA) tool set
forked from gEDA/gaf in late 2016. EDA tools are used for electrical circuit
design, schematic capture, simulation, prototyping, and production. Lepton
EDA includes tools for schematic capture, attribute management, bill of
materials (BOM) generation, netlisting into over 20 netlist formats, analog
and digital simulation, and printed circuit board (PCB) layout, and many other
features.")))
(define-public pcb
(package
(name "pcb")

View File

@ -188,7 +188,7 @@ by the b43-open driver of Linux-libre.")
(version "1.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://code.coreboot.org/p/seabios/downloads/get/"
(uri (string-append "https://www.seabios.org/downloads/"
"seabios-" version ".tar.gz"))
(sha256
(base32

View File

@ -12,7 +12,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@ -495,7 +495,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(define-public weston
(package
(name "weston")
(version "4.0.0")
(version "5.0.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -503,7 +503,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
"weston-" version ".tar.xz"))
(sha256
(base32
"0n2big8xw6g6n46zm1jyf00dv9r4d84visdz5b8vxpw3xzkhmz50"))))
"1bsc9ry566mpk6fdwkqpvwq2j7m79d9cvh7d3lgf6igsphik98hm"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)

View File

@ -11,7 +11,7 @@
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -1984,6 +1984,30 @@ Vicare Scheme and IronScheme. Right now it contains:
@end itemize\n")
(license license:bsd-3)))
(define-public guile-aa-tree
(package
(name "guile-aa-tree")
(version "3.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-"
version ".tar.gz"))
(sha256
(base32
"0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh"))))
(build-system guile-build-system)
(native-inputs `(("guile" ,guile-2.2)))
;; https://savannah.nongnu.org/projects/guile-aa-tree
(home-page "https://qlfiles.net/guile-aa-tree/")
(synopsis "AA tree data structure for Guile")
(description
"This package provides an implementation of @dfn{AA trees}, a
self-balancing binary tree data structure, for Guile. It ensure @math{O(log
n)} worst case performance for core operations. The module provides
non-mutating insert, delete, and search operations, with support for
convenient nested tree operations.")
(license license:gpl3+)))
(define-public guile-simple-zmq
(let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424")
(revision "1"))

View File

@ -3268,7 +3268,7 @@ This is a better maintained fork of the \"temporary\" package.")
(define-public ghc-smallcheck
(package
(name "ghc-smallcheck")
(version "1.1.1")
(version "1.1.5")
(source
(origin
(method url-fetch)
@ -3278,7 +3278,7 @@ This is a better maintained fork of the \"temporary\" package.")
".tar.gz"))
(sha256
(base32
"1ygrabxh40bym3grnzqyfqn96lirnxspb8cmwkkr213239y605sd"))))
"195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
(build-system haskell-build-system)
(inputs
`(("ghc-logict" ,ghc-logict)
@ -4256,7 +4256,7 @@ simple general-purpose data structure\".")
(define-public ghc-optparse-applicative
(package
(name "ghc-optparse-applicative")
(version "0.13.0.0")
(version "0.14.2.0")
(source
(origin
(method url-fetch)
@ -4265,15 +4265,8 @@ simple general-purpose data structure\".")
"/optparse-applicative-" version ".tar.gz"))
(sha256
(base32
"1b0c5fdq8bd070g24vrjrwlq979r8dk8mys6aji9hy1l9pcv3inf"))))
"0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
(build-system haskell-build-system)
;; These tests fail because the package doesn't come with all needed test
;; files:
;; - prop_drops_back_contexts
;; - prop_context_carry
;; - prop_help_on_empty
;; - prop_help_on_empty_sub
(arguments `(#:tests? #f))
(inputs
`(("ghc-transformers-compat" ,ghc-transformers-compat)
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
@ -5061,7 +5054,7 @@ occurrences of a substring (the first in case of overlaps) with another.")
(define-public ghc-integer-logarithms
(package
(name "ghc-integer-logarithms")
(version "1.0.2")
(version "1.0.2.1")
(source
(origin
(method url-fetch)
@ -5070,16 +5063,16 @@ occurrences of a substring (the first in case of overlaps) with another.")
version ".tar.gz"))
(sha256
(base32
"0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"))))
"1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
(build-system haskell-build-system)
(inputs
`(("ghc-tasty" ,ghc-tasty)
("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-smallcheck" ,ghc-smallcheck)
("ghc-tasty" ,ghc-tasty)
("ghc-tasty-hunit" ,ghc-tasty-hunit)
("ghc-quickcheck" ,ghc-quickcheck)
("ghc-smallcheck" ,ghc-smallcheck)))
(home-page "https://github.com/phadej/integer-logarithms")
("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
(home-page "https://github.com/Bodigrim/integer-logarithms")
(synopsis "Integer logarithms")
(description
"This package provides the following modules:
@ -5093,7 +5086,7 @@ in migrated modules.")
(define-public ghc-scientific
(package
(name "ghc-scientific")
(version "0.3.5.2")
(version "0.3.6.2")
(source
(origin
(method url-fetch)
@ -5103,14 +5096,15 @@ in migrated modules.")
".tar.gz"))
(sha256
(base32
"0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"))))
"03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
(build-system haskell-build-system)
(inputs
`(("ghc-integer-logarithms" ,ghc-integer-logarithms)
("ghc-text" ,ghc-text)
("ghc-hashable" ,ghc-hashable)
("ghc-primitive" ,ghc-primitive)
("ghc-tasty" ,ghc-tasty)
("ghc-primitive" ,ghc-primitive)))
(native-inputs
`(("ghc-tasty" ,ghc-tasty)
("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
("ghc-tasty-hunit" ,ghc-tasty-hunit)
("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)

View File

@ -74,12 +74,14 @@
'(#:phases (modify-phases %standard-phases (delete 'configure))
#:test-target "test"
#:make-flags
(list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))
"exif=1")))
(native-inputs
`(("perl" ,perl)
("perl-test-command" ,perl-test-command)))
(inputs `(("imlib2" ,imlib2)
("curl" ,curl)
("libexif" ,libexif)
("libpng" ,libpng)
("libxt" ,libxt)
("libx11" ,libx11)

View File

@ -18,7 +18,7 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -398,8 +398,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.18.4")
(define %linux-libre-hash "1q3bndhwxwcrlyi0qcgxjsp5fl92wkfgk4y41qwrrywfv9xj3sl7")
(define %linux-libre-version "4.18.5")
(define %linux-libre-hash "1y52ns34vh9p4pfj08xsycv8p0xywm6dbpdi0wwpkll1xgpqikvf")
(define %linux-libre-4.18-patches
(list %boot-logo-patch
@ -429,8 +429,8 @@ It has been modified to remove all non-free binary blobs.")
#:patches %linux-libre-4.18-patches
#:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.66")
(define %linux-libre-4.14-hash "1sf18m6xjyg535yviz3yjbislf57s180y67z7mzbcl5pq9352bg9")
(define %linux-libre-4.14-version "4.14.67")
(define %linux-libre-4.14-hash "050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@ -439,14 +439,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
(make-linux-libre "4.9.123"
"1rljdp3vzhmdc6qha6b9dq0d1a3xz06rn51pb4ad3a2y61mph9sv"
(make-linux-libre "4.9.124"
"0p78gx5jiqvaf2cadf5jp40lzgarrg0m0ybf9w2499v28vjsp30q"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
(make-linux-libre "4.4.151"
"0irzdq4p8a6dxyx5basgrc7af7w48hmyjwbk5hff8wn8jy71p9zm"
(make-linux-libre "4.4.152"
"082aajyr363ca95pxlg9iascf5d7k2gbw9ggsbsa1hj6nhspsxw6"
%intel-compatible-systems
#:configuration-file kernel-config))

View File

@ -16,7 +16,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 nee <nee.git@hidamari.blue>
;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.

View File

@ -25,7 +25,7 @@
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -19,7 +19,7 @@
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;;
;;; This file is part of GNU Guix.

View File

@ -0,0 +1,69 @@
Index: avogadro-1.2.0/libavogadro/src/pythonengine_p.h
===================================================================
--- avogadro-1.2.0.orig/libavogadro/src/pythonengine_p.h
+++ avogadro-1.2.0/libavogadro/src/pythonengine_p.h
@@ -31,7 +31,9 @@
#include <avogadro/global.h>
#include <avogadro/engine.h>
+#ifndef Q_MOC_RUN
#include <boost/python.hpp>
+#endif
namespace Avogadro {
Index: avogadro-1.2.0/libavogadro/src/pythonextension_p.h
===================================================================
--- avogadro-1.2.0.orig/libavogadro/src/pythonextension_p.h
+++ avogadro-1.2.0/libavogadro/src/pythonextension_p.h
@@ -33,7 +33,9 @@
#include <avogadro/extension.h>
#include <avogadro/primitive.h>
#include <avogadro/glwidget.h>
+#ifndef Q_MOC_RUN
#include <boost/python.hpp>
+#endif
#include <QWidget>
#include <QList>
Index: avogadro-1.2.0/libavogadro/src/pythontool_p.h
===================================================================
--- avogadro-1.2.0.orig/libavogadro/src/pythontool_p.h
+++ avogadro-1.2.0/libavogadro/src/pythontool_p.h
@@ -31,7 +31,9 @@
#include <avogadro/global.h>
#include <avogadro/tool.h>
+#ifndef Q_MOC_RUN
#include <boost/python.hpp>
+#endif
#include <QObject>
#include <QAction>
Index: avogadro-1.2.0/libavogadro/src/pythoninterpreter.h
===================================================================
--- avogadro-1.2.0.orig/libavogadro/src/pythoninterpreter.h
+++ avogadro-1.2.0/libavogadro/src/pythoninterpreter.h
@@ -26,7 +26,9 @@
#define PYTHONINTERPRETER_H
#include <avogadro/global.h>
+#ifndef Q_MOC_RUN
#include <boost/python.hpp>
+#endif
#include <avogadro/primitive.h>
#include <QString>
Index: avogadro-1.2.0/libavogadro/src/pythonscript.h
===================================================================
--- avogadro-1.2.0.orig/libavogadro/src/pythonscript.h
+++ avogadro-1.2.0/libavogadro/src/pythonscript.h
@@ -27,6 +27,8 @@
#define PYTHONSCRIPT_H
#include <avogadro/global.h>
+#ifndef Q_MOC_RUN
#include <boost/python.hpp>
+#endif
#include "pythonerror.h"

View File

@ -0,0 +1,603 @@
From 43af3c117b0b3220b15c2fe2895b94bbd83d3a60 Mon Sep 17 00:00:00 2001
From: Claudio Fernandes <claudiosf.claudio@gmail.com>
Date: Sun, 15 Jan 2017 21:23:39 -0200
Subject: [PATCH] Adapt Avogadro to Eigen 3.3
---
CMakeLists.txt | 9 +------
avogadro/src/mainwindow.cpp | 5 ++--
libavogadro/src/camera.cpp | 10 ++++----
libavogadro/src/camera.h | 14 +++++------
libavogadro/src/engines/wireengine.cpp | 4 ++--
.../crystallography/crystallographyextension.cpp | 2 +-
.../crystallography/ui/ceviewoptionswidget.cpp | 2 +-
.../src/extensions/orca/orcaanalysedialog.cpp | 1 -
.../src/extensions/orca/orcainputdialog.cpp | 1 -
.../src/extensions/qtaim/qtaimmathutilities.cpp | 1 +
.../qtaim/qtaimwavefunctionevaluator.cpp | 28 +++++++++++-----------
.../extensions/surfaces/openqube/gamessukout.cpp | 1 +
.../src/extensions/surfaces/openqube/slaterset.cpp | 6 +++--
libavogadro/src/glpainter_p.cpp | 14 +++++------
libavogadro/src/glwidget.cpp | 4 ++--
libavogadro/src/molecule.cpp | 26 ++++++++++++++++++--
libavogadro/src/navigate.cpp | 2 +-
libavogadro/src/tools/bondcentrictool.cpp | 28 +++++++++++-----------
libavogadro/src/tools/manipulatetool.cpp | 17 +++++++------
libavogadro/src/tools/navigatetool.cpp | 3 ++-
libavogadro/src/tools/skeletontree.cpp | 7 +++---
libavogadro/src/tools/skeletontree.h | 2 +-
22 files changed, 102 insertions(+), 85 deletions(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -231,14 +231,7 @@ if(NOT Linguist_FOUND)
message(WARNING " Qt4 Linguist not found, please install it if you want Avogadro translations")
endif()
-find_package(Eigen3) # find and setup Eigen3 if available
-if(NOT EIGEN3_FOUND)
- message(STATUS "Cannot find Eigen3, trying Eigen2")
- find_package(Eigen2 REQUIRED) # Some version is required
-else()
-# Use Stage10 Eigen3 support
- set (EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API TRUE)
-endif()
+find_package(Eigen3 REQUIRED) # find and setup Eigen3 if available
find_package(ZLIB REQUIRED)
find_package(OpenBabel2 REQUIRED) # find and setup OpenBabel
--- a/avogadro/src/mainwindow.cpp
+++ b/avogadro/src/mainwindow.cpp
@@ -115,7 +115,6 @@
#include <QDebug>
#include <Eigen/Geometry>
-#include <Eigen/Array>
#define USEQUAT
// This is a "hidden" exported Qt function on the Mac for Qt-4.x.
#ifdef Q_WS_MAC
@@ -2775,7 +2774,7 @@ protected:
linearGoal.row(1) = linearGoal.row(2).cross(linearGoal.row(0));
// calculate the translation matrix
- Transform3d goal(linearGoal);
+ Projective3d goal(linearGoal);
goal.pretranslate(- 3.0 * (d->glWidget->radius() + CAMERA_NEAR_DISTANCE) * Vector3d::UnitZ());
@@ -2840,7 +2839,7 @@ protected:
Matrix3d linearGoal = Matrix3d::Identity();
// calculate the translation matrix
- Transform3d goal(linearGoal);
+ Projective3d goal(linearGoal);
goal.pretranslate(- 3.0 * (d->glWidget->radius() + CAMERA_NEAR_DISTANCE) * Vector3d::UnitZ());
--- a/libavogadro/src/camera.cpp
+++ b/libavogadro/src/camera.cpp
@@ -47,7 +47,7 @@ namespace Avogadro
CameraPrivate() {};
- Eigen::Transform3d modelview, projection;
+ Eigen::Projective3d modelview, projection;
const GLWidget *parent;
double angleOfViewY;
double orthoScale;
@@ -169,20 +169,20 @@ namespace Avogadro
double Camera::distance(const Eigen::Vector3d & point) const
{
- return ( d->modelview * point ).norm();
+ return ( d->modelview * point.homogeneous() ).head<3>().norm();
}
- void Camera::setModelview(const Eigen::Transform3d &matrix)
+ void Camera::setModelview(const Eigen::Projective3d &matrix)
{
d->modelview = matrix;
}
- const Eigen::Transform3d & Camera::modelview() const
+ const Eigen::Projective3d & Camera::modelview() const
{
return d->modelview;
}
- Eigen::Transform3d & Camera::modelview()
+ Eigen::Projective3d & Camera::modelview()
{
return d->modelview;
}
--- a/libavogadro/src/camera.h
+++ b/libavogadro/src/camera.h
@@ -101,16 +101,16 @@ namespace Avogadro {
double angleOfViewY() const;
/** Sets 4x4 "modelview" matrix representing the camera orientation and position.
* @param matrix the matrix to copy from
- * @sa Eigen::Transform3d & modelview(), applyModelview() */
- void setModelview(const Eigen::Transform3d &matrix);
+ * @sa Eigen::Projective3d & modelview(), applyModelview() */
+ void setModelview(const Eigen::Projective3d &matrix);
/** @return a constant reference to the 4x4 "modelview" matrix representing
* the camera orientation and position
- * @sa setModelview(), Eigen::Transform3d & modelview() */
- const Eigen::Transform3d & modelview() const;
+ * @sa setModelview(), Eigen::Projective3d & modelview() */
+ const Eigen::Projective3d & modelview() const;
/** @return a non-constant reference to the 4x4 "modelview" matrix representing
* the camera orientation and position
- * @sa setModelview(), const Eigen::Transform3d & modelview() const */
- Eigen::Transform3d & modelview();
+ * @sa setModelview(), const Eigen::Projective3d & modelview() const */
+ Eigen::Projective3d & modelview();
/** Calls gluPerspective() or glOrtho() with parameters automatically chosen
* for rendering the GLWidget's molecule with this camera. Should be called
* only in GL_PROJECTION matrix mode. Example code is given
@@ -342,7 +342,7 @@ namespace Avogadro {
* @return {x/w, y/w, z/w} vector
*/
Eigen::Vector3d V4toV3DivW(const Eigen::Vector4d & v4) {
- return v4.start<3>()/v4.w();
+ return v4.head<3>()/v4.w();
}
};
--- a/libavogadro/src/engines/wireengine.cpp
+++ b/libavogadro/src/engines/wireengine.cpp
@@ -109,7 +109,7 @@ namespace Avogadro {
const Camera *camera = pd->camera();
// perform a rough form of frustum culling
- Eigen::Vector3d transformedPos = pd->camera()->modelview() * v;
+ Eigen::Vector3d transformedPos = (pd->camera()->modelview() * v.homogeneous()).head<3>();
double dot = transformedPos.z() / transformedPos.norm();
if(dot > -0.8)
return true;
@@ -167,7 +167,7 @@ namespace Avogadro {
map = pd->colorMap(); // fall back to global color map
// perform a rough form of frustum culling
- Eigen::Vector3d transformedEnd1 = pd->camera()->modelview() * v1;
+ Eigen::Vector3d transformedEnd1 = (pd->camera()->modelview() * v1.homogeneous()).head<3>();
double dot = transformedEnd1.z() / transformedEnd1.norm();
if(dot > -0.8)
return true; // i.e., don't bother rendering
--- a/libavogadro/src/extensions/crystallography/crystallographyextension.cpp
+++ b/libavogadro/src/extensions/crystallography/crystallographyextension.cpp
@@ -1989,7 +1989,7 @@ namespace Avogadro
// fix coordinates
// Apply COB matrix:
Eigen::Matrix3d invCob;
- cob.computeInverse(&invCob);
+ invCob = cob.inverse();
for (QList<Eigen::Vector3d>::iterator
it = fcoords.begin(),
it_end = fcoords.end();
--- a/libavogadro/src/extensions/crystallography/ui/ceviewoptionswidget.cpp
+++ b/libavogadro/src/extensions/crystallography/ui/ceviewoptionswidget.cpp
@@ -139,7 +139,7 @@ namespace Avogadro
{
// View into a Miller plane
Camera *camera = m_glWidget->camera();
- Eigen::Transform3d modelView;
+ Eigen::Projective3d modelView;
modelView.setIdentity();
// OK, so we want to rotate to look along the normal at the plane
--- a/libavogadro/src/extensions/orca/orcaanalysedialog.cpp
+++ b/libavogadro/src/extensions/orca/orcaanalysedialog.cpp
@@ -41,7 +41,6 @@
#include <openbabel/mol.h>
#include <Eigen/Geometry>
-#include <Eigen/LeastSquares>
#include <vector>
--- a/libavogadro/src/extensions/orca/orcainputdialog.cpp
+++ b/libavogadro/src/extensions/orca/orcainputdialog.cpp
@@ -33,7 +33,6 @@
#include <openbabel/mol.h>
#include <Eigen/Geometry>
-#include <Eigen/LeastSquares>
#include <vector>
--- a/libavogadro/src/extensions/qtaim/qtaimmathutilities.cpp
+++ b/libavogadro/src/extensions/qtaim/qtaimmathutilities.cpp
@@ -28,6 +28,7 @@
#include <cmath>
#include <Eigen/QR>
+#include <Eigen/Eigenvalues>
namespace Avogadro {
namespace QTAIMMathUtilities {
--- a/libavogadro/src/extensions/qtaim/qtaimwavefunctionevaluator.cpp
+++ b/libavogadro/src/extensions/qtaim/qtaimwavefunctionevaluator.cpp
@@ -35,21 +35,21 @@ namespace Avogadro
m_nprim=wfn.numberOfGaussianPrimitives();
m_nnuc=wfn.numberOfNuclei();
- m_nucxcoord=Map<Matrix<qreal,Dynamic,1> >(wfn.xNuclearCoordinates(),m_nnuc);
- m_nucycoord=Map<Matrix<qreal,Dynamic,1> >(wfn.yNuclearCoordinates(),m_nnuc);
- m_nuczcoord=Map<Matrix<qreal,Dynamic,1> >(wfn.zNuclearCoordinates(),m_nnuc);
- m_nucz=Map<Matrix<qint64,Dynamic,1> >(wfn.nuclearCharges(),m_nnuc);
- m_X0=Map<Matrix<qreal,Dynamic,1> >(wfn.xGaussianPrimitiveCenterCoordinates(),m_nprim,1);
- m_Y0=Map<Matrix<qreal,Dynamic,1> >(wfn.yGaussianPrimitiveCenterCoordinates(),m_nprim,1);
- m_Z0=Map<Matrix<qreal,Dynamic,1> >(wfn.zGaussianPrimitiveCenterCoordinates(),m_nprim,1);
- m_xamom=Map<Matrix<qint64,Dynamic,1> >(wfn.xGaussianPrimitiveAngularMomenta(),m_nprim,1);
- m_yamom=Map<Matrix<qint64,Dynamic,1> >(wfn.yGaussianPrimitiveAngularMomenta(),m_nprim,1);
- m_zamom=Map<Matrix<qint64,Dynamic,1> >(wfn.zGaussianPrimitiveAngularMomenta(),m_nprim,1);
- m_alpha=Map<Matrix<qreal,Dynamic,1> >(wfn.gaussianPrimitiveExponentCoefficients(),m_nprim,1);
+ m_nucxcoord=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.xNuclearCoordinates()),m_nnuc);
+ m_nucycoord=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.yNuclearCoordinates()),m_nnuc);
+ m_nuczcoord=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.zNuclearCoordinates()),m_nnuc);
+ m_nucz=Map<Matrix<qint64,Dynamic,1> >(const_cast<qint64*>(wfn.nuclearCharges()),m_nnuc);
+ m_X0=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.xGaussianPrimitiveCenterCoordinates()),m_nprim,1);
+ m_Y0=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.yGaussianPrimitiveCenterCoordinates()),m_nprim,1);
+ m_Z0=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.zGaussianPrimitiveCenterCoordinates()),m_nprim,1);
+ m_xamom=Map<Matrix<qint64,Dynamic,1> >(const_cast<qint64*>(wfn.xGaussianPrimitiveAngularMomenta()),m_nprim,1);
+ m_yamom=Map<Matrix<qint64,Dynamic,1> >(const_cast<qint64*>(wfn.yGaussianPrimitiveAngularMomenta()),m_nprim,1);
+ m_zamom=Map<Matrix<qint64,Dynamic,1> >(const_cast<qint64*>(wfn.zGaussianPrimitiveAngularMomenta()),m_nprim,1);
+ m_alpha=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.gaussianPrimitiveExponentCoefficients()),m_nprim,1);
// TODO Implement screening for unoccupied molecular orbitals.
- m_occno=Map<Matrix<qreal,Dynamic,1> >(wfn.molecularOrbitalOccupationNumbers(),m_nmo,1);
- m_orbe=Map<Matrix<qreal,Dynamic,1> >(wfn.molecularOrbitalEigenvalues(),m_nmo,1);
- m_coef=Map<Matrix<qreal,Dynamic,Dynamic,RowMajor> >(wfn.molecularOrbitalCoefficients(),m_nmo,m_nprim);
+ m_occno=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.molecularOrbitalOccupationNumbers()),m_nmo,1);
+ m_orbe=Map<Matrix<qreal,Dynamic,1> >(const_cast<qreal*>(wfn.molecularOrbitalEigenvalues()),m_nmo,1);
+ m_coef=Map<Matrix<qreal,Dynamic,Dynamic,RowMajor> >(const_cast<qreal*>(wfn.molecularOrbitalCoefficients()),m_nmo,m_nprim);
m_totalEnergy=wfn.totalEnergy();
m_virialRatio=wfn.virialRatio();
--- a/libavogadro/src/extensions/surfaces/openqube/gamessukout.cpp
+++ b/libavogadro/src/extensions/surfaces/openqube/gamessukout.cpp
@@ -19,6 +19,7 @@
using Eigen::Vector3d;
using std::vector;
+#include <iostream>
#include <fstream>
namespace OpenQube
--- a/libavogadro/src/extensions/surfaces/openqube/slaterset.cpp
+++ b/libavogadro/src/extensions/surfaces/openqube/slaterset.cpp
@@ -25,9 +25,9 @@
#include "cube.h"
-#include <Eigen/Array>
#include <Eigen/LU>
#include <Eigen/QR>
+#include <Eigen/Eigenvalues>
#include <cmath>
@@ -250,7 +250,9 @@ bool SlaterSet::initialize()
SelfAdjointEigenSolver<MatrixXd> s(m_overlap);
MatrixXd p = s.eigenvectors();
- MatrixXd m = p * s.eigenvalues().cwise().inverse().cwise().sqrt().asDiagonal() * p.inverse();
+ // TODO check if this is correct
+ MatrixXd m1 = (s.eigenvalues().array().inverse().sqrt());
+ MatrixXd m = p.array()*(m1.diagonal().array())*p.inverse().array();
m_normalized = m * m_eigenVectors;
if (!(m_overlap*m*m).isIdentity())
--- a/libavogadro/src/glpainter_p.cpp
+++ b/libavogadro/src/glpainter_p.cpp
@@ -789,13 +789,13 @@ namespace Avogadro
} else {
points[theta-1] = Eigen::AngleAxisd(theta * (M_PI / 180.0) / 2, n) * u;
}
- points[theta-1] = d->widget->camera()->modelview() * (origin + points[theta-1]);
+ points[theta-1] = (d->widget->camera()->modelview() * (origin + points[theta-1]).homogeneous()).head<3>();
}
// Get vectors representing the points' positions in terms of the model view.
- Eigen::Vector3d _origin = d->widget->camera()->modelview() * origin;
- Eigen::Vector3d _direction1 = d->widget->camera()->modelview() * (origin+u);
- Eigen::Vector3d _direction2 = d->widget->camera()->modelview() * (origin+v);
+ Eigen::Vector3d _origin = (d->widget->camera()->modelview() * origin.homogeneous()).head<3>();
+ Eigen::Vector3d _direction1 = (d->widget->camera()->modelview() * (origin+u).homogeneous()).head<3>();
+ Eigen::Vector3d _direction2 = (d->widget->camera()->modelview() * (origin+v).homogeneous()).head<3>();
glPushAttrib(GL_ALL_ATTRIB_BITS);
glPushMatrix();
@@ -880,12 +880,12 @@ namespace Avogadro
} else {
points[theta-1] = Eigen::AngleAxisd(theta * (M_PI / 180.0) / 2, n) * u;
}
- points[theta-1] = d->widget->camera()->modelview() * (origin + points[theta-1]);
+ points[theta-1] = (d->widget->camera()->modelview() * (origin + points[theta-1]).homogeneous()).head<3>();
}
// Get vectors representing the points' positions in terms of the model view.
- Eigen::Vector3d _direction1 = d->widget->camera()->modelview() * (origin + u);
- Eigen::Vector3d _direction2 = d->widget->camera()->modelview() * (origin + v);
+ Eigen::Vector3d _direction1 = (d->widget->camera()->modelview() * (origin + u).homogeneous()).head<3>();
+ Eigen::Vector3d _direction2 = (d->widget->camera()->modelview() * (origin + v).homogeneous()).head<3>();
glPushAttrib(GL_ALL_ATTRIB_BITS);
glPushMatrix();
--- a/libavogadro/src/glwidget.cpp
+++ b/libavogadro/src/glwidget.cpp
@@ -765,7 +765,7 @@ namespace Avogadro {
GLfloat fogColor[4]= {static_cast<GLfloat>(d->background.redF()), static_cast<GLfloat>(d->background.greenF()),
static_cast<GLfloat>(d->background.blueF()), static_cast<GLfloat>(d->background.alphaF())};
glFogfv(GL_FOG_COLOR, fogColor);
- Vector3d distance = camera()->modelview() * d->center;
+ Vector3d distance = (camera()->modelview() * d->center.homogeneous()).head<3>();
double distanceToCenter = distance.norm();
glFogf(GL_FOG_DENSITY, 1.0);
glHint(GL_FOG_HINT, GL_NICEST);
@@ -1711,7 +1711,7 @@ namespace Avogadro {
if (d->renderModelViewDebug) {
// Model view matrix:
- const Eigen::Transform3d &modelview = d->camera->modelview();
+ const Eigen::Projective3d &modelview = d->camera->modelview();
y += d->pd->painter()->drawText
(x, y, tr("ModelView row 1: %L1 %L2 %L3 %L4")
.arg(modelview(0, 0), 6, 'f', 2, ' ')
--- a/libavogadro/src/molecule.cpp
+++ b/libavogadro/src/molecule.cpp
@@ -38,7 +38,7 @@
#include "zmatrix.h"
#include <Eigen/Geometry>
-#include <Eigen/LeastSquares>
+#include <Eigen/Eigenvalues>
#include <vector>
@@ -1907,7 +1907,29 @@ namespace Avogadro{
}
d->center /= static_cast<double>(nAtoms);
Eigen::Hyperplane<double, 3> planeCoeffs;
- Eigen::fitHyperplane(numAtoms(), atomPositions, &planeCoeffs);
+ //Eigen::fitHyperplane(numAtoms(), atomPositions, &planeCoeffs);
+
+ // TODO check if this is OK
+ /************************/
+ typedef Eigen::Matrix<double,3,3> CovMatrixType;
+ typedef Eigen::Vector3d VectorType;
+
+ VectorType mean = d->center;
+ int size=3;
+ int numPoints=numAtoms();
+ VectorType ** points=atomPositions;
+ CovMatrixType covMat = CovMatrixType::Zero(size, size);
+ VectorType remean = VectorType::Zero(size);
+ for(int i = 0; i < numPoints; ++i)
+ {
+ VectorType diff = (*(points[i]) - mean).conjugate();
+ covMat += diff * diff.adjoint();
+ }
+ Eigen::SelfAdjointEigenSolver<CovMatrixType> eig(covMat);
+ planeCoeffs.normal() = eig.eigenvectors().col(0);
+ /************************/
+
+
delete[] atomPositions;
d->normalVector = planeCoeffs.normal();
}
--- a/libavogadro/src/navigate.cpp
+++ b/libavogadro/src/navigate.cpp
@@ -40,7 +40,7 @@ namespace Avogadro {
void Navigate::zoom(GLWidget *widget, const Eigen::Vector3d &goal,
double delta)
{
- Vector3d transformedGoal = widget->camera()->modelview() * goal;
+ Vector3d transformedGoal = (widget->camera()->modelview() * goal.homogeneous()).head<3>();
double distanceToGoal = transformedGoal.norm();
double t = ZOOM_SPEED * delta;
--- a/libavogadro/src/tools/bondcentrictool.cpp
+++ b/libavogadro/src/tools/bondcentrictool.cpp
@@ -578,8 +578,8 @@ namespace Avogadro {
Vector3d clicked = *m_clickedAtom->pos();
- Vector3d axis = Vector3d(0, 0, ((widget->camera()->modelview() * other).z() >=
- (widget->camera()->modelview() * center).z() ? -1 : 1));
+ Vector3d axis = Vector3d(0, 0, ((widget->camera()->modelview() * other.homogeneous()).z() >=
+ (widget->camera()->modelview() * center.homogeneous()).z() ? -1 : 1));
Vector3d centerProj = widget->camera()->project(center);
centerProj -= Vector3d(0,0,centerProj.z());
@@ -673,8 +673,8 @@ namespace Avogadro {
Vector3d clicked = *m_clickedAtom->pos();
- Vector3d axis = Vector3d(0, 0, ((widget->camera()->modelview() * other).z() >=
- (widget->camera()->modelview() * center).z() ? -1 : 1));
+ Vector3d axis = Vector3d(0, 0, ((widget->camera()->modelview() * other.homogeneous()).z() >=
+ (widget->camera()->modelview() * center.homogeneous()).z() ? -1 : 1));
Vector3d centerProj = widget->camera()->project(center);
centerProj -= Vector3d(0,0,centerProj.z());
@@ -1362,10 +1362,10 @@ namespace Avogadro {
planeVec = length * (planeVec / planeVec.norm());
- Vector3d topLeft = widget->camera()->modelview() * (left + planeVec);
- Vector3d topRight = widget->camera()->modelview() * (right + planeVec);
- Vector3d botRight = widget->camera()->modelview() * (right - planeVec);
- Vector3d botLeft = widget->camera()->modelview() * (left - planeVec);
+ Vector3d topLeft = (widget->camera()->modelview() * (left + planeVec).homogeneous()).head<3>();
+ Vector3d topRight = (widget->camera()->modelview() * (right + planeVec).homogeneous()).head<3>();
+ Vector3d botRight = (widget->camera()->modelview() * (right - planeVec).homogeneous()).head<3>();
+ Vector3d botLeft = (widget->camera()->modelview() * (left - planeVec).homogeneous()).head<3>();
float alpha = 0.4;
double lineWidth = 1.5;
@@ -1444,10 +1444,10 @@ namespace Avogadro {
C = D + ((C-D).normalized() * minWidth);
}
- Vector3d topLeft = widget->camera()->modelview() * D;
- Vector3d topRight = widget->camera()->modelview() * C;
- Vector3d botRight = widget->camera()->modelview() * B;
- Vector3d botLeft = widget->camera()->modelview() * A;
+ Vector3d topLeft = (widget->camera()->modelview() * D.homogeneous()).head<3>();
+ Vector3d topRight = (widget->camera()->modelview() * C.homogeneous()).head<3>();
+ Vector3d botRight = (widget->camera()->modelview() * B.homogeneous()).head<3>();
+ Vector3d botLeft = (widget->camera()->modelview() * A.homogeneous()).head<3>();
float alpha = 0.4;
double lineWidth = 1.5;
@@ -1506,12 +1506,12 @@ namespace Avogadro {
Vector3d positionVector)
{
//Rotate skeleton around a particular axis and center point
- Eigen::Transform3d rotation;
+ Eigen::Projective3d rotation;
rotation = Eigen::AngleAxisd(angle, rotationVector);
rotation.pretranslate(centerVector);
rotation.translate(-centerVector);
- return rotation*positionVector;
+ return (rotation*positionVector.homogeneous()).head<3>();
}
// ########## showAnglesChanged ##########
--- a/libavogadro/src/tools/manipulatetool.cpp
+++ b/libavogadro/src/tools/manipulatetool.cpp
@@ -40,7 +40,6 @@
#include <QAbstractButton>
using Eigen::Vector3d;
-using Eigen::Transform3d;
using Eigen::AngleAxisd;
namespace Avogadro {
@@ -138,7 +137,7 @@ namespace Avogadro {
double yRotate = m_settingsWidget->yRotateSpinBox->value() * DEG_TO_RAD;
double zRotate = m_settingsWidget->zRotateSpinBox->value() * DEG_TO_RAD;
- Eigen::Transform3d rotation;
+ Eigen::Projective3d rotation;
rotation.matrix().setIdentity();
rotation.translation() = center;
rotation.rotate(AngleAxisd(xRotate, Vector3d::UnitX())
@@ -152,12 +151,12 @@ namespace Avogadro {
if (p->type() == Primitive::AtomType) {
Atom *atom = static_cast<Atom*>(p);
tempPos = translate + *(atom->pos());
- atom->setPos(rotation * tempPos);
+ atom->setPos((rotation * tempPos.homogeneous()).head<3>());
}
} else {
foreach(Atom *atom, widget->molecule()->atoms()) {
tempPos = translate + *(atom->pos());
- atom->setPos(rotation * tempPos);
+ atom->setPos((rotation * tempPos.homogeneous()).head<3>());
}
}
@@ -199,7 +198,7 @@ namespace Avogadro {
widget->setCursor(Qt::SizeVerCursor);
// Move the selected atom(s) in to or out of the screen
- Vector3d transformedGoal = widget->camera()->modelview() * *goal;
+ Vector3d transformedGoal = (widget->camera()->modelview() * goal->homogeneous()).head<3>();
double distanceToGoal = transformedGoal.norm();
double t = ZOOM_SPEED * delta;
@@ -255,7 +254,7 @@ namespace Avogadro {
// Rotate the selected atoms about the center
// rotate only selected primitives
- Transform3d fragmentRotation;
+ Eigen::Projective3d fragmentRotation;
fragmentRotation.matrix().setIdentity();
fragmentRotation.translation() = *center;
fragmentRotation.rotate(
@@ -266,7 +265,7 @@ namespace Avogadro {
foreach(Primitive *p, widget->selectedPrimitives())
if (p->type() == Primitive::AtomType)
- static_cast<Atom *>(p)->setPos(fragmentRotation * *static_cast<Atom *>(p)->pos());
+ static_cast<Atom *>(p)->setPos((fragmentRotation * static_cast<Atom *>(p)->pos()->homogeneous()).head<3>());
widget->molecule()->update();
}
@@ -274,7 +273,7 @@ namespace Avogadro {
double delta) const
{
// Tilt the selected atoms about the center
- Transform3d fragmentRotation;
+ Eigen::Projective3d fragmentRotation;
fragmentRotation.matrix().setIdentity();
fragmentRotation.translation() = *center;
fragmentRotation.rotate(AngleAxisd(delta * ROTATION_SPEED, widget->camera()->backTransformedZAxis()));
@@ -282,7 +281,7 @@ namespace Avogadro {
foreach(Primitive *p, widget->selectedPrimitives())
if (p->type() == Primitive::AtomType)
- static_cast<Atom *>(p)->setPos(fragmentRotation * *static_cast<Atom *>(p)->pos());
+ static_cast<Atom *>(p)->setPos((fragmentRotation * static_cast<Atom *>(p)->pos()->homogeneous()).head<3>());
widget->molecule()->update();
}
--- a/libavogadro/src/tools/navigatetool.cpp
+++ b/libavogadro/src/tools/navigatetool.cpp
@@ -92,7 +92,8 @@ namespace Avogadro {
double sumOfWeights = 0.;
QList<Atom*> atoms = widget->molecule()->atoms();
foreach (Atom *atom, atoms) {
- Vector3d transformedAtomPos = widget->camera()->modelview() * *atom->pos();
+ Vector3d transformedAtomPos = (widget->camera()->modelview() *
+ atom->pos()->homogeneous()).head<3>();
double atomDistance = transformedAtomPos.norm();
double dot = transformedAtomPos.z() / atomDistance;
double weight = exp(-30. * (1. + dot));
--- a/libavogadro/src/tools/skeletontree.cpp
+++ b/libavogadro/src/tools/skeletontree.cpp
@@ -29,6 +29,7 @@
#include <avogadro/atom.h>
#include <avogadro/bond.h>
#include <avogadro/molecule.h>
+#include <iostream>
using namespace Eigen;
using namespace std;
@@ -221,7 +222,7 @@ namespace Avogadro {
{
if (m_rootNode) {
//Rotate skeleton around a particular axis and center point
- Eigen::Transform3d rotation;
+ Eigen::Projective3d rotation;
rotation = Eigen::AngleAxisd(angle, rotationAxis);
rotation.pretranslate(centerVector);
rotation.translate(-centerVector);
@@ -248,11 +249,11 @@ namespace Avogadro {
// ########## recursiveRotate ##########
void SkeletonTree::recursiveRotate(Node* n,
- const Eigen::Transform3d &rotationMatrix)
+ const Eigen::Projective3d &rotationMatrix)
{
// Update the root node with the new position
Atom* a = n->atom();
- a->setPos(rotationMatrix * (*a->pos()));
+ a->setPos((rotationMatrix * (*a->pos()).homogeneous()).head<3>());
a->update();
// Now update the children
--- a/libavogadro/src/tools/skeletontree.h
+++ b/libavogadro/src/tools/skeletontree.h
@@ -230,6 +230,6 @@ namespace Avogadro {
* @param centerVector Center location to rotate around.
*/
void recursiveRotate(Node* n,
- const Eigen::Transform3d &rotationMatrix);
+ const Eigen::Projective3d &rotationMatrix);
};
} // End namespace Avogadro

View File

@ -0,0 +1,161 @@
From 2d4be7ede177a8df7340fe3b209698d591ee8a04 Mon Sep 17 00:00:00 2001
From: Claudio Fernandes <claudiosf.claudio@gmail.com>
Date: Mon, 16 Jan 2017 19:48:23 -0200
Subject: [PATCH] Adapt libavogadro/python to Eigen 3.3
---
libavogadro/src/python/camera.cpp | 2 +-
libavogadro/src/python/eigen.cpp | 60 +++++++++++++++++++--------------------
2 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/libavogadro/src/python/camera.cpp b/libavogadro/src/python/camera.cpp
index 69ca87bf8..30b32af7d 100644
--- a/libavogadro/src/python/camera.cpp
+++ b/libavogadro/src/python/camera.cpp
@@ -10,7 +10,7 @@ using namespace Avogadro;
void export_Camera()
{
- const Eigen::Transform3d& (Camera::*modelview_ptr)() const = &Camera::modelview;
+ const Eigen::Projective3d& (Camera::*modelview_ptr)() const = &Camera::modelview;
Eigen::Vector3d (Camera::*unProject_ptr1)(const Eigen::Vector3d&) const = &Camera::unProject;
Eigen::Vector3d (Camera::*unProject_ptr2)(const QPoint&, const Eigen::Vector3d&) const = &Camera::unProject;
Eigen::Vector3d (Camera::*unProject_ptr3)(const QPoint&) const = &Camera::unProject;
diff --git a/libavogadro/src/python/eigen.cpp b/libavogadro/src/python/eigen.cpp
index c1faedbcc..20b4e719d 100644
--- a/libavogadro/src/python/eigen.cpp
+++ b/libavogadro/src/python/eigen.cpp
@@ -305,9 +305,9 @@ template <> struct ScalarTraits<double>
struct innerclass
{
//
- // Eigen::Transform3d --> python array (4x4)
+ // Eigen::Projective3d --> python array (4x4)
//
- static PyObject* convert(Eigen::Transform3d const &trans)
+ static PyObject* convert(Eigen::Projective3d const &trans)
{
npy_intp dims[2] = { 4, 4 };
PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
@@ -321,9 +321,9 @@ template <> struct ScalarTraits<double>
return incref(result);
}
//
- // Eigen::Transform3d* --> python array (4x4)
+ // Eigen::Projective3d* --> python array (4x4)
//
- static PyObject* convert(Eigen::Transform3d *trans)
+ static PyObject* convert(Eigen::Projective3d *trans)
{
npy_intp dims[2] = { 4, 4 };
PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
@@ -337,9 +337,9 @@ template <> struct ScalarTraits<double>
return incref(result);
}
//
- // const Eigen::Transform3d* --> python array (4x4)
+ // const Eigen::Projective3d* --> python array (4x4)
//
- static PyObject* convert(const Eigen::Transform3d *trans)
+ static PyObject* convert(const Eigen::Projective3d *trans)
{
npy_intp dims[2] = { 4, 4 };
PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
@@ -358,10 +358,10 @@ template <> struct ScalarTraits<double>
Transform3d_to_python_array()
{
#ifndef WIN32
- to_python_converter<Eigen::Transform3d, innerclass>();
+ to_python_converter<Eigen::Projective3d, innerclass>();
#endif
- to_python_converter<Eigen::Transform3d*, innerclass>();
- to_python_converter<const Eigen::Transform3d*, innerclass>();
+ to_python_converter<Eigen::Projective3d*, innerclass>();
+ to_python_converter<const Eigen::Projective3d*, innerclass>();
}
};
@@ -373,17 +373,17 @@ template <> struct ScalarTraits<double>
// Insert an rvalue from_python converter at the tail of the
// chain. Used for implicit conversions
//
- // python array --> Eigen::Transform3d
+ // python array --> Eigen::Projective3d
//
// used for:
//
- // void function(Eigen::Transform3d vec)
- // void function(Eigen::Transform3d & vec)
- // void function(const Eigen::Transform3d & vec)
+ // void function(Eigen::Projective3d vec)
+ // void function(Eigen::Projective3d & vec)
+ // void function(const Eigen::Projective3d & vec)
//
- converter::registry::push_back( &convertible, &construct, type_id<Eigen::Transform3d>() );
+ converter::registry::push_back( &convertible, &construct, type_id<Eigen::Projective3d>() );
- converter::registry::insert( &convert, type_id<Eigen::Transform3d>() );
+ converter::registry::insert( &convert, type_id<Eigen::Projective3d>() );
}
static void* convert(PyObject *obj_ptr)
@@ -401,7 +401,7 @@ template <> struct ScalarTraits<double>
throw_error_already_set(); // the 1D array does not have exactly 3 elements
double *values = reinterpret_cast<double*>(array->data);
- Eigen::Transform3d *c_obj = new Eigen::Transform3d();
+ Eigen::Projective3d *c_obj = new Eigen::Projective3d();
double *dataPtr = c_obj->data();
for (int i = 0; i < 16; ++i)
@@ -432,7 +432,7 @@ template <> struct ScalarTraits<double>
// I think this is a better way to get at the double array, where is this
// deleted though? Does Boost::Python do it?
double *values = reinterpret_cast<double*>(array->data);
- Eigen::Transform3d *storage = new Eigen::Transform3d();
+ Eigen::Projective3d *storage = new Eigen::Projective3d();
double *dataPtr = storage->data();
for (int i = 0; i < 16; ++i)
@@ -467,21 +467,21 @@ class EigenUnitTestHelper
void set_vector3d_ptr(Eigen::Vector3d* vec) { m_vector3d = *vec; }
void set_const_vector3d_ptr(const Eigen::Vector3d* const vec) { m_vector3d = *vec; }
- //Eigen::Transform3d transform3d() { return m_transform3d; }
- //Eigen::Transform3d& transform3d_ref() { return m_transform3d; }
- const Eigen::Transform3d& const_transform3d_ref() { return m_transform3d; }
- Eigen::Transform3d* transform3d_ptr() { return &m_transform3d; }
- const Eigen::Transform3d* const_transform3d_ptr() { return &m_transform3d; }
-
- //void set_transform3d(Eigen::Transform3d vec) { m_transform3d = vec; }
- //void set_transform3d_ref(Eigen::Transform3d& vec) { m_transform3d = vec; }
- void set_const_transform3d_ref(const Eigen::Transform3d& vec) { m_transform3d = vec; }
- void set_transform3d_ptr(Eigen::Transform3d* vec) { m_transform3d = *vec; }
- void set_const_transform3d_ptr(const Eigen::Transform3d* const vec) { m_transform3d = *vec; }
+ //Eigen::Projective3d transform3d() { return m_transform3d; }
+ //Eigen::Projective3d& transform3d_ref() { return m_transform3d; }
+ const Eigen::Projective3d& const_transform3d_ref() { return m_transform3d; }
+ Eigen::Projective3d* transform3d_ptr() { return &m_transform3d; }
+ const Eigen::Projective3d* const_transform3d_ptr() { return &m_transform3d; }
+
+ //void set_transform3d(Eigen::Projective3d vec) { m_transform3d = vec; }
+ //void set_transform3d_ref(Eigen::Projective3d& vec) { m_transform3d = vec; }
+ void set_const_transform3d_ref(const Eigen::Projective3d& vec) { m_transform3d = vec; }
+ void set_transform3d_ptr(Eigen::Projective3d* vec) { m_transform3d = *vec; }
+ void set_const_transform3d_ptr(const Eigen::Projective3d* const vec) { m_transform3d = *vec; }
private:
Eigen::Vector3d m_vector3d;
- Eigen::Transform3d m_transform3d;
+ Eigen::Projective3d m_transform3d;
};
#endif
@@ -529,6 +529,6 @@ void export_Eigen()
Vector3x_to_python_array<Eigen::Vector3i>();
Vector3x_from_python_array<Eigen::Vector3i>();
- // Eigen::Transform3d
+ // Eigen::Projective3d
Transform3d_to_python_array();
Transform3d_from_python_array();

View File

@ -0,0 +1,176 @@
Without this patch, GRUB may proceed to wipe all firmware boot entries
and report a successful installation, even if efibootmgr hit an error.
Origin URL:
https://git.sv.gnu.org/cgit/grub.git/commit/?id=6400613ad0b463abc93362086a491cd2a5e99b0d
From 6400613ad0b463abc93362086a491cd2a5e99b0d Mon Sep 17 00:00:00 2001
From: Steve McIntyre <steve@einval.com>
Date: Wed, 31 Jan 2018 21:49:36 +0000
Subject: Make grub-install check for errors from efibootmgr
Code is currently ignoring errors from efibootmgr, giving users
clearly bogus output like:
Setting up grub-efi-amd64 (2.02~beta3-4) ...
Installing for x86_64-efi platform.
Could not delete variable: No space left on device
Could not prepare Boot variable: No space left on device
Installation finished. No error reported.
and then potentially unbootable systems. If efibootmgr fails, grub-install
should know that and report it!
We've been using similar patch in Debian now for some time, with no ill effects.
diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c
index a3fcfca..ca448bc 100644
--- a/grub-core/osdep/unix/platform.c
+++ b/grub-core/osdep/unix/platform.c
@@ -78,19 +78,20 @@ get_ofpathname (const char *dev)
dev);
}
-static void
+static int
grub_install_remove_efi_entries_by_distributor (const char *efi_distributor)
{
int fd;
pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd);
char *line = NULL;
size_t len = 0;
+ int rc;
if (!pid)
{
grub_util_warn (_("Unable to open stream from %s: %s"),
"efibootmgr", strerror (errno));
- return;
+ return errno;
}
FILE *fp = fdopen (fd, "r");
@@ -98,7 +99,7 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor)
{
grub_util_warn (_("Unable to open stream from %s: %s"),
"efibootmgr", strerror (errno));
- return;
+ return errno;
}
line = xmalloc (80);
@@ -119,23 +120,25 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor)
bootnum = line + sizeof ("Boot") - 1;
bootnum[4] = '\0';
if (!verbosity)
- grub_util_exec ((const char * []){ "efibootmgr", "-q",
+ rc = grub_util_exec ((const char * []){ "efibootmgr", "-q",
"-b", bootnum, "-B", NULL });
else
- grub_util_exec ((const char * []){ "efibootmgr",
+ rc = grub_util_exec ((const char * []){ "efibootmgr",
"-b", bootnum, "-B", NULL });
}
free (line);
+ return rc;
}
-void
+int
grub_install_register_efi (grub_device_t efidir_grub_dev,
const char *efifile_path,
const char *efi_distributor)
{
const char * efidir_disk;
int efidir_part;
+ int ret;
efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk);
efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1;
@@ -151,23 +154,26 @@ grub_install_register_efi (grub_device_t efidir_grub_dev,
grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL });
#endif
/* Delete old entries from the same distributor. */
- grub_install_remove_efi_entries_by_distributor (efi_distributor);
+ ret = grub_install_remove_efi_entries_by_distributor (efi_distributor);
+ if (ret)
+ return ret;
char *efidir_part_str = xasprintf ("%d", efidir_part);
if (!verbosity)
- grub_util_exec ((const char * []){ "efibootmgr", "-q",
+ ret = grub_util_exec ((const char * []){ "efibootmgr", "-q",
"-c", "-d", efidir_disk,
"-p", efidir_part_str, "-w",
"-L", efi_distributor, "-l",
efifile_path, NULL });
else
- grub_util_exec ((const char * []){ "efibootmgr",
+ ret = grub_util_exec ((const char * []){ "efibootmgr",
"-c", "-d", efidir_disk,
"-p", efidir_part_str, "-w",
"-L", efi_distributor, "-l",
efifile_path, NULL });
free (efidir_part_str);
+ return ret;
}
void
diff --git a/include/grub/util/install.h b/include/grub/util/install.h
index 5910b0c..0dba8b6 100644
--- a/include/grub/util/install.h
+++ b/include/grub/util/install.h
@@ -210,7 +210,7 @@ grub_install_create_envblk_file (const char *name);
const char *
grub_install_get_default_x86_platform (void);
-void
+int
grub_install_register_efi (grub_device_t efidir_grub_dev,
const char *efifile_path,
const char *efi_distributor);
diff --git a/util/grub-install.c b/util/grub-install.c
index 5e4cdfd..690f180 100644
--- a/util/grub-install.c
+++ b/util/grub-install.c
@@ -1848,9 +1848,13 @@ main (int argc, char *argv[])
if (!removable && update_nvram)
{
/* Try to make this image bootable using the EFI Boot Manager, if available. */
- grub_install_register_efi (efidir_grub_dev,
- "\\System\\Library\\CoreServices",
- efi_distributor);
+ int ret;
+ ret = grub_install_register_efi (efidir_grub_dev,
+ "\\System\\Library\\CoreServices",
+ efi_distributor);
+ if (ret)
+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"),
+ strerror (ret));
}
grub_device_close (ins_dev);
@@ -1871,6 +1875,7 @@ main (int argc, char *argv[])
{
char * efifile_path;
char * part;
+ int ret;
/* Try to make this image bootable using the EFI Boot Manager, if available. */
if (!efi_distributor || efi_distributor[0] == '\0')
@@ -1887,8 +1892,11 @@ main (int argc, char *argv[])
efidir_grub_dev->disk->name,
(part ? ",": ""), (part ? : ""));
grub_free (part);
- grub_install_register_efi (efidir_grub_dev,
- efifile_path, efi_distributor);
+ ret = grub_install_register_efi (efidir_grub_dev,
+ efifile_path, efi_distributor);
+ if (ret)
+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"),
+ strerror (ret));
}
break;

View File

@ -1,43 +0,0 @@
Disable tests trying to look up remote servers.
diff --git a/test/test_credentials.py b/test/test_credentials.py
--- a/test/test_credentials.py
+++ b/test/test_credentials.py
@@ -68,6 +68,7 @@ class CredentialCreateTest(utils.NoRepoTestCase):
self.assertEqual((username, None, None, None), cred.credential_tuple)
+@unittest.skipIf(True, "network tests are not supported in Guix")
class CredentialCallback(utils.RepoTestCase):
def test_callback(self):
class MyCallbacks(pygit2.RemoteCallbacks):
@@ -92,6 +93,7 @@ class CredentialCallback(utils.RepoTestCase):
remote = self.repo.create_remote("github", url)
self.assertRaises(TypeError, lambda: remote.fetch(callbacks=MyCallbacks()))
+@unittest.skipIf(True, "network tests are not supported in Guix")
class CallableCredentialTest(utils.RepoTestCase):
def test_user_pass(self):
diff --git a/test/test_repository.py b/test/test_repository.py
--- a/test/test_repository.py
+++ b/test/test_repository.py
@@ -573,6 +573,7 @@ class CloneRepositoryTest(utils.NoRepoTestCase):
self.assertTrue('refs/remotes/custom_remote/master' in repo.listall_references())
self.assertIsNotNone(repo.remotes["custom_remote"])
+ @unittest.skipIf(True, "network tests are not supported in Guix")
def test_clone_with_credentials(self):
repo = clone_repository(
"https://bitbucket.org/libgit2/testgitrepository.git",
diff --git a/test/test_submodule.py b/test/test_submodule.py
--- a/test/test_submodule.py
+++ b/test/test_submodule.py
@@ -42,6 +42,7 @@ SUBM_PATH = 'submodule'
SUBM_URL = 'https://github.com/libgit2/pygit2'
SUBM_HEAD_SHA = '819cbff552e46ac4b8d10925cc422a30aa04e78e'
+@unittest.skipIf(True, "network tests are not supported in Guix")
class SubmoduleTest(utils.SubmoduleRepoTestCase):
def test_lookup_submodule(self):

View File

@ -12,7 +12,7 @@
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.

View File

@ -19,7 +19,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.

View File

@ -109,7 +109,7 @@ cameras (CRW/CR2, NEF, RAF, DNG, and others).")
(base32
"06nlsibr3ylfwp28w8f5466l6drgrnydgxrm4jmxzrmk5svaxk8n"))))
(build-system gnu-build-system)
(home-page "http://libexif.sourceforge.net/")
(home-page "https://libexif.github.io/")
(synopsis "Read and manipulate EXIF data in digital photographs")
(description
"The libexif C library allows applications to read, edit, and save EXIF

View File

@ -3172,16 +3172,14 @@ association studies (GWAS) on extremely large data sets.")
(define-public python-pygit2
(package
(name "python-pygit2")
(version "0.26.0")
(version "0.26.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pygit2" version))
(sha256
(base32
"1cbc488ra3kg7r3qky17ms0szi3cda2d96qfkv1l9djsy9hnvw57"))
(patches
(search-patches "python-pygit2-disable-network-tests.patch"))))
"145k3fsd21274swia7mcc7n3kzlbd47xmg55mxsjdb5d9b7fr858"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)

View File

@ -37,14 +37,14 @@
(define-public slang
(package
(name "slang")
(version "2.3.1a")
(version "2.3.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.jedsoft.org/releases/slang/slang-"
version ".tar.bz2"))
(sha256
(base32
"0dlcy0hn0j6cj9qj5x6hpb0axifnvzzmv5jqq0wq14fygw0c7w2l"))
"06p379fqn6w38rdpqi98irxi2bf4llb0rja3dlgkqz7nqh7kp7pw"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -14,7 +14,7 @@
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -24,7 +24,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>

View File

@ -23,7 +23,7 @@
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -61,7 +61,7 @@
(define (yearly-feed-uri year)
"Return the URI for the CVE feed for YEAR."
(string->uri
(string-append "https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-"
(string-append "https://nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-"
(number->string year) ".xml.gz")))
(define %current-year-ttl

View File

@ -33,6 +33,8 @@
#:autoload (guix inferior) (open-inferior)
#:use-module (guix scripts build)
#:autoload (guix self) (whole-package)
#:use-module (guix git)
#:use-module (git)
#:use-module (gnu packages)
#:autoload (gnu packages ssh) (guile-ssh)
#:autoload (gnu packages tls) (gnutls)
@ -55,37 +57,6 @@
#:use-module (ice-9 vlist)
#:export (guix-pull))
(module-autoload! (resolve-module '(guix scripts pull))
'(git) '(git-error? set-tls-certificate-locations!)
'(guix git) '(latest-repository-commit))
(define (ensure-guile-git!)
;; Previously Guile-Git was not a prerequisite. Thus, someone running 'guix
;; pull' on an old installation may be lacking Guile-Git. To address this,
;; we autoload things that depend on Guile-Git and check in the entry point
;; whether Guile-Git is available.
;;
;; TODO: Remove this hack when Guile-Git is widespread or enforced.
(unless (false-if-exception (resolve-interface '(git)))
(leave (G_ "Guile-Git is missing but it is now required by 'guix pull'.
Install it by running:
guix package -i ~a
export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH
export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH
\n")
(match (effective-version)
("2.0" "guile2.0-git")
(_ "guile-git"))
(effective-version)
(effective-version)))
;; XXX: For unclear reasons this is needed for
;; 'set-tls-certificate-locations!'.
(module-use! (resolve-module '(guix scripts pull))
(resolve-interface '(git))))
(define %repository-url
(or (getenv "GUIX_PULL_URL") "https://git.savannah.gnu.org/git/guix.git"))
@ -467,8 +438,6 @@ and ALIST2 differ, display HEADING upfront."
(url (assoc-ref opts 'repository-url))
(ref (assoc-ref opts 'ref))
(cache (string-append (cache-directory) "/pull")))
(ensure-guile-git!)
(cond ((assoc-ref opts 'query)
(process-query opts))
((assoc-ref opts 'dry-run?)

View File

@ -367,22 +367,26 @@ DOMAIN, a gettext domain."
guile (guile-version (effective-version)))
"Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its
load path."
(define source-directories
(map (lambda (package)
(file-append package "/share/guile/site/"
guile-version))
dependencies))
(define object-directories
(map (lambda (package)
(file-append package "/lib/guile/"
guile-version "/site-ccache"))
dependencies))
(program-file "guix-command"
#~(begin
(set! %load-path
(append '#$(map (lambda (package)
(file-append package
"/share/guile/site/"
guile-version))
dependencies)
(append (filter file-exists? '#$source-directories)
%load-path))
(set! %load-compiled-path
(append '#$(map (lambda (package)
(file-append package "/lib/guile/"
guile-version
"/site-ccache"))
dependencies)
(append (filter file-exists? '#$object-directories)
%load-compiled-path))
(set! %load-path (cons #$modules %load-path))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff