For those that are interested in the technical details, while the main NEURON
core is built using the standard
./configure; make ; make install
process that cleanly differentiates the "build" and "install" phases, the
Python bits are built as a "post-install hook". That is to say, they are built
after the other bits in the "install" step instead of the "build" step. This
implies that the build is not quite straightforward and must be slightly
tweaked to ensure that the Fedora packaging guidelines are met.
After discussing things on this Github issue, the developers, @nrnhines (Michael Hines) and @ramcdougal (Robert A McDougal) helped me understand the complexities of the build process and get it done. They have also mentioned that NEURON is now moving to a CMake based build system and should be simpler to work with in the future. CMake is generally nicer for projects that include different languages and build systems.
After a few hours of work, NEURON is now ready to use in NeuroFedora. It is built with Python 3, and does not currently provide IV and MPI bits. These will be worked upon later. Since MUSIC is not yet in NeuroFedora, NEURON does not support MUSIC either currently. This is also a work in progress.
I have tested the NEURON build on my machine with a few example simulations and it works well, but this cannot be considered exhaustive testing of the package. If you have a Fedora system, please test NEURON and let us know if you notice any issues. Here's how.
Step 1: Set up a Fedora installation
NeuroFedora is based on Fedora, so the simplest way to use it is to install a Fedora Workstation using the live images available on https://getfedora.org. You can either install it on a system or use a virtual machine if you wish. NeuroFedora includes lots of other software for neuroscience also. You can learn more in our documentation. Fedora, in general, provides lots of other software too. You can search them using the Fedora Packages web application.
Step 2: Install NEURON
I would recommend updating your system before proceeding using
dnf in a
sudo dnf update --refresh
Then, you can install NEURON. It is currently in the testing repositories, so they will need to be enabled for the command:
sudo dnf --enablerepo=updates-testing install neuron python3-neuron
Step 3: Test it out
Step 4: Give feedback
This step is optional, especially if everything works fine. If you experience any issues, please do get in touch with us. You can either contact us directly using one of our communication channels, or you can give karma to the update on Bodhi. The latter is preferred.
- a new version of software is released
- the Fedora maintainer updates the Fedora package.
- the maintainer submits the new Fedora package to Bodhi
- the package remains in the
updates-testingrepositories while users test it out and provide feedback.
- if the update receives positive feedback (positive karma), it is
automatically pushed to the
updatesrepository for all users to receive the new version.
- if the update receives negative feedback, the new version is not sent out to users and the maintainer must fix the reported issues and submit a new version of the package for testing again.
This workflow applies to all Fedora packages, thus ensuring that there's plenty of time for issues to be flagged before the software reaches users. So, if you have a few minutes to spare, please help us by testing these packages out. The updates for Fedora 29 and Fedora 30 are both here: https://bodhi.fedoraproject.org/updates/?packages=neuron
Please note that this requires an Fedora account, since that's the account system that links all Fedora community infrastructure. This Fedora Magazine post provides an excellent resource on setting up a Fedora Account: https://fedoramagazine.org/getting-set-up-with-fedora-project-services/
NeuroFedora is volunteer driven initiative and contributions in any form always welcome. You can get in touch with us here. We are happy to help you learn the skills needed to contribute to the project. In fact, that is one of the major goals of the initiative---to spread technical knowledge that is necessary to develop software for Neuroscience.