A new Linux machine we recently purchased came with Ubuntu 18.04, so I figured I'd go ahead and try it out.
However, installing PTB from the NeuroDebian distribution failed with unmet dependencies:
The following packages have unmet dependencies:
matlab-psychtoolbox-3-nonfree : Depends: psychtoolbox-3-lib (>= 3.0.14.20171008-1~ndall.dfsg) but it is not going to be installed
Depends: psychtoolbox-3-common (>= 3.0.14.20171008-1~ndall.dfsg) but it is not going to be installed
Recommends: libfreenect0.1 but it is not installable
Recommends: libopenal1 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
This happened in spite of using the up-to-date Ubuntu 18.04 repositories & keys provided from the neurodebian website.
Tried hacky workarounds by manually installing freenect metapackage (sudo apt install freenect), and libopenal1 (sudo apt install libopenal1).
This dealt with the openal issue, but not libfreenect0.1 (...the freenect metapackage for 18.04 appears to include libfreenect0.5).
-> None of this was reproducible when i upgraded last week, so apparently it is fixed, or was some problem local to your machine or network.
This brought up the question "Why NeuroDebian anyway?"
Presumably its nice that it takes care of dependent packages on Linux, but what those packages actually are is totally opaque (on purpose?), and in instances like this, it can prevent installation all together even though I have no interest in using a Microsoft Kinect.
-> Your package manager will tell you what was installed where, but yes, you need to learn how to use it if you want to use it. My experience is that NeuroDebian worked pretty reliable over the years. I assume the bumpy part is when some brand-new OS release comes out and maybe some mistakes happen there. Ubuntu 18.04 is only a month old by now, that's not much time for somebody who has to maintain possibly hundreds of packages and still tries to have an actual scientist job and some real life outside the lab. I haven't even managed to run my full testing cycle for the final system yet, although things seem to be fine at least on my laptop, and the core components that are important to us were tested by myself already months ahead in isolation.
I'm happy NeuroDebian exists. It provides an extra layer of quality control, which spotted bugs in the past. It makes life for myself easier - even though i use PTB from git for obvious reasons, i don't have to track down all packages i need for developing and testing, ND takes care of that on Linux. If i hate tracking down dependencies manually, i assume most average users would also appreciate not having to deal with those and being able to just click an install button. Also ND provides custom optimized builds of all mex files at least for octave. For that you have to know that there isn't anything in Octave's or Matlab's design or documentation that guarantees that mex files build on one version work on other versions. The reason this so far mostly works with PTB from us is only a mixture of dirty hacks from myself and equal amounts of dumb luck. ND does it the right way for octave. The Matlab version however is identical to what we ship, due to Matlab's proprietary nature making it difficult on technical and legel levels to do it properly. Strictly speaking, PTB's Matlab mex files are only guaranteed to work with exactly the Matlab version i have for building and testing (R2012a atm.) it working on every other version is just dumb luck. And failures caused by Matlab bugs and going unnoticed for quite a while are one of the symptoms of not having extra quality control and proper builds.
The opaqueness of the contents also makes understanding different package versions impossible. What is the difference in actual content of matlab-psychtoolbox-3 vs matlab-psychtoolbox-3-nonfree ? ...why does octave-psychtoolbox-3-nonfree seem to include a more complete version of the Eyelink toolbox?
-> You have an interesting definition of "impossible". The package descriptions on NeuroDebian's website describe quite exactly what the purpose and content of each package is, e.g., http://neuro.debian.net/pkgs/octave-psychtoolbox-3-nonfree.html#pkg-octave-psychtoolbox-3
In this case, because the Eyelink toolbox requires proprietary runtime libraries from SR-Research, which can not be part of the OS and can not be supported or fixed by open-source developers in case of problems -- the classic problem of proprietary software. In Debian, such stuff is usually separated out into extra packages.
Clicking through the rabbit hole of neurodebian pages reveals lots of broken links, and [very confusingly] the most recent commit history is from back in 2012....
-> Then report it to NeuroDebian. There's a "Report Bug" button right to the "Install" button of each package, and other feedback channels on the website. Like much of the software that neuroscience depends on, NeuroDebian is a volunteer effort by people who sacrifice lots of their time and sometimes career by trying to make some corner of science less awful. Thank you notes or other support for such people would be nice, but polite bug reports also go a long way. One large problem of the neuroscience community wrt. to computer software imho is that it mostly consists of consumers & often complainers, not producers of software, and of too few people giving at least appropriate feedback through the appropriate channels set up for it. Not picking on you here, btw. But you know how to give feedback here, so you should be able to do the same thing on ND.
With the move to github, does it not make more sense to just source PTB from there?
That way:
• users can decide what directory they want /Psychtoolbox installed (neurodebian puts it in /usr/share/psychtoolbox-3, but doesn't actually tell you that)
-> The package manager or a "which" statement in Octave/Matlab does.
• local file changes can be easily discovered (git status), reverted (git checkout), or submitted
• users have more granular control of PTB updates (i.e. won't accidentally piggyback on more general invocations of "sudo apt upgrade")
-> Sure, and nobody prevents you from installing from GitHub directly. That doesn't mean it's the right thing for everybody, especially not the large fraction of users which can't even read a paragraph of text with installation instructions. I certainly don't want to hand-hold people through the use of git. According to your past posts, i'd put you probably into the upper 1% of our users when it comes to understanding of computers. A large fraction of users is already challenged with typing DownloadPsychtoolbox or readin most basic intro material. i doubt git would make that easier. Download size is also much larger with the full repo downloaded, dependencies need to be manually tracked...
I admittedly know nothing about debian package management, and don't mean to imply lack of appreciation for time spent by those who do manage the neurodebian system. Just that it's use & documentation are so opaque that I can't tell what actual utility it provides.
-> I'm pretty sure NeuroDebian has info material on why they think you can benefit from it. As nothing is perfect they are probably open to suggestions, feedback and actual help to improve things. They even have info stands on some big neuroscience conferences afaik.
One of our many problems is that the docu is always somewhat behind, also on the psychtoolbox webpage, which doesn't exactly help. That's the sad reality of having way too few (~1) and way too overworked/overloaded people to maintain a project this size. ND provides a bit of redundancy here at least on the download & install side if users use their support channels.
-mario
Thanks,
Thad