rsync -rvlhpt sphinx/ build/src
cd artwork; cp button_w200.png logo_tuned/fmri_w200.png ../build/src/_static; cd ..
cp 3rd/jquery.livetwitter/jquery.livetwitter.min.js build/src/_static
+ cp neurodebian.cfg build/src/_static
cd build/src && $(MAKE) html BUILDDIR=$(CURDIR)/build 2>&1
mv $(WWW_DIR)/_static/robots.txt $(WWW_DIR)/
cp -r build/src/lists $(WWW_DIR)/
--- /dev/null
+HOWTO build
+-----------
+
+make pics
+make
\ndsection{Debian}
was founded by Ian Murdock in August 1993 with the goal
-to create an easy-to-install and maintain non-commercial GNU/Linux
+to create an easy to install and maintain non-commercial GNU/Linux
operating system that would be able to compete in the
commercial market. Since then, Debian established itself as an
independent and unique project driven by more than 3000
Debian is the only major operating system developed
solely by volunteer individuals who collaborate via the Internet.
Debian developers, teams or individual contributors improve the operating
-system not by writing new applications (in most cases), but by
+system not by writing new applications (in most cases) but by
\begin{itemize}[nolistsep,topsep=0em,leftmargin=1pc]
\item integrating existing software into Debian
\item fixing and communicating bug reports to original developers
\begin{flushright}
\vspace{-0.5em}
\url{http://neuro.debian.net/pkgs.html}
+\vspace{-0.1em}
\end{flushright}
-\textit{Electrophysiology:} BioSig, Sigviewer, Brian, PyNN, \ldots\\
-\textit{Machine Learning:} PyMVPA, scikits.learn, \ldots\\
-\textit{Imaging:} AFNI, CV, FSL, Lipsia, Mricron, NiPy, \ldots\\
-\textit{Psychophysics:} PsychoPy, Psychtoolbox, \ldots\\
-\vspace{-0.5em}
+\textit{Distributed computing:} Condor, DMTCP, IPython, \ldots \\
+\textit{Electrophysiology:} BioSig, EEGLAB, Sigviewer, \ldots\\
+\textit{Machine Learning:} MDP, PyMVPA, sklearn, \ldots\\
+\textit{Neural Modeling:} Brian, CNrun, PyNN, XPPAUT, \ldots\\
+\textit{Imaging:} AFNI, FSL, Mricron, NiPy, SPM, \ldots\\
+\textit{Psychophysics:} PsychoPy, Psychtoolbox, PyEPL, \ldots\\
+\vspace{-0.8em}
+
+% TODO: Environments... -- list avail cloud env using NeuroDebian
\ndsubsection{Benefits from Debian integration}
\item Debian standards and policies guarantee quality and robustness.
\item Debian's centralized bug tracking system provides a unified
- single-point of entry for bug reporting and troubleshooting for any
- software in Debian.
+ single-point of entry for bug reporting and troubleshooting
+ for any software in Debian.
\item Debian makes software available through a world-wide distribution
network, thus offloading bandwidth demands.
software for more than 60 languages.
\end{description}
-\item Neuroscience software becomes a 1st-class citizen within the Debian
- project, which guarantees its availability, longevity, smooth
- installation and upgrades.
+\item Neuroscience software becomes a 1st-class citizen within the
+ Debian project, which guarantees its longevity, smooth installation
+ and upgrades.
%\item Participation in the Debian community helps to assure Debian's
% aptness for the neuroscientific software demands
\ndsubsection{Work-in-progress}
\begin{description}[nolistsep,leftmargin=1pc,style=nextline]
\item[Increased coverage]
-\textit{Electrophysiology:} NEURON, Fieldtrip, \ldots \\
-\textit{Matlab/Octave toolboxes:} SPM, EEGLAB, \ldots \\
-\textit{Distributed computing:} Condor \\
-\textit{Imaging:} CMTK, Freesurfer, \ldots \\
-
-\epigraph{Having FreeSurfer integrated into the Debian operating system by the NeuroDebian team would have enormous benefits for us, and for the thousands of users of FreeSurfer across the world.}{Prof. Bruce Fischl}{Director, Computational Core at Martinos Center at Massachusetts General Hospital, Charlestown, Massachusetts, USA}
+\textit{Electrophysiology:} Fieldtrip, Spyke Viewer, \ldots \\
+\textit{Neural Modeling:} NEURON, (NEST), LFPy, \\
+\textit{Imaging:} DTI-TK, Freesurfer, XNAT, \ldots
+% \epigraph{Having FreeSurfer integrated into the Debian operating system by the NeuroDebian team would have enormous benefits for us, and for the thousands of users of FreeSurfer across the world.}{Prof. Bruce Fischl}{Director, Computational Core at Martinos Center at Massachusetts General Hospital, Charlestown, Massachusetts, USA}
\item[Improved quality assurance]
Extended integration and regression testing
\item[Available snapshotting service]
All versions of packages readily available
\item[Data as the 1st-class citizen]
\url{http://neuro.debian.net/datasets.html}
-\item[Universal availability]
- % \begin{itemize}[nolistsep,leftmargin=1pc,topsep=0em]
- % \item Virtual Appliance enhancements
- %\item
- Cloud computing
- %\end{itemize}
-
+% yoh: see TODO above -- we can say that it is available already
+%\item[Universal availability]
+% % \begin{itemize}[nolistsep,leftmargin=1pc,topsep=0em]
+% % \item Virtual Appliance enhancements
+% %\item
+% Cloud computing
+% %\end{itemize}
\end{description}
\vspace{-0.5em}
\end{flushright}
-
+% TODO yoh: This one remains the best summary IMHO. But may be
+% we would just kick this section out an place Testimonials into References
\epigraph{The approach taken with NeuroDebian is plainly the most appropriate
approach to software distribution for the dominant platform in brain
image analysis, and I have great confidence that this project will be
\ndsubsection{Acknowledgements}
NeuroDebian is grateful to all Debian developers and contributors for
-developing the Debian operating system, and to Prof. James V. Haxby (PBS Department,
-Dartmouth College) for his continued support and endless supply of
-Italian espresso (\url{http://neuro.debian.net/coffeeart.html}).
+developing the Debian operating system, to
+\href{http://www.incf.org}{INCF} for the support in community outreach
+and technical collaborations, and to
+Prof. \href{http://haxbylab.dartmouth.edu}{James V. Haxby}
+(\href{http://www.dartmouth.edu/~psych}{PBS Department, Dartmouth
+ College}) for his continued support and endless supply of Italian
+espresso (\url{http://neuro.debian.net/coffeeart.html}).
+
+
+\ndsubsection{References}
+
+Halchenko, Y. O. \& Hanke, M. (2012). \href{http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2012.00022/full}{Open is not enough. Let’s take the next step: An integrated, community-driven computing platform for neuroscience}. Frontiers in Neuroinformatics, 6:22.
+
+% TODO: adjust for the new layout
+\url{http://neuro.debian.net/#publications}
%\columnbreak
\end{multicols}
# all currently supported dists
allnddists="nd+debian-squeeze nd+debian-wheezy nd+debian-sid \
- nd+ubuntu-hardy nd+ubuntu-karmic nd+ubuntu-lucid nd+ubuntu-maverick nd+ubuntu-natty nd+ubuntu-oneiric nd+ubuntu-precise"
+ nd+ubuntu-hardy nd+ubuntu-karmic nd+ubuntu-lucid nd+ubuntu-maverick nd+ubuntu-natty nd+ubuntu-oneiric nd+ubuntu-precise nd+ubuntu-quantal"
alldists="$allnddists debian-squeeze debian-wheezy debian-sid"
# default is debian
+neurodebian (0.29) unstable; urgency=low
+
+ [ Yaroslav Halchenko & Michael Hanke ]
+ * website:
+ - new mirror ([de-md])
+ - dynamic ranges for the new distributions subscription stats plot
+ * VM (6.0.6):
+ - base on 6.0.6 Debian point release (finally version of NeuroDebian
+ VM is in sync with the Debian release)
+ - nd-vmsetupwizard:
+ - robustify check/linking of $HOME/host
+ - optional installations dialog:
+ - set height of the dialog to 450 for to fit all list items
+ - refactored "GIMP" section into "Graphics" which would install
+ also inkscape, vym and svgtune
+ - added sections for "PyMVPA tutorial", and different collections of
+ Python modules (Neuroimaging, Electrophysiology, etc)
+ - Python selections depend on ipython01x instead of older ipython
+ to provide IPython notebooks facilities out-of-the-box
+
+ -- Yaroslav Halchenko <debian@onerussian.com> Mon, 01 Oct 2012 12:26:37 -0400
+
+neurodebian (0.28) unstable; urgency=low
+
+ [ Michael Hanke & Yaroslav Halchenko]
+ * website:
+ - lots of changes
+ * nd_* tools:
+ - backport-dsc: backport to squeeze by default
+ - nd_adddist: explicitly specify debian keyring to work on Ubuntus
+ - nd_build_testrdepends: test dependees of all binary packages
+ - cmdsettings.sh: in allnddist -- deprecated lenny, added precise
+ * VM:
+ - neurodebian-guest-additions: in preparation for wheezy NeuroDebian
+ VM appliance added option for gdm3
+
+ -- Yaroslav Halchenko <debian@onerussian.com> Thu, 19 Jul 2012 23:46:00 -0400
+
neurodebian (0.27) unstable; urgency=low
* nd_* tools:
Package: neurodebian-dev
Architecture: all
Depends: ${misc:Depends}, devscripts, cowbuilder, neurodebian-keyring
-Recommends: python, zerofree, moreutils, time, ubuntu-keyring, debian-archive-keyring
+Recommends: python, zerofree, moreutils, time, ubuntu-keyring, debian-archive-keyring, apt-utils
Suggests: virtualbox-ose, virtualbox-ose-fuse
Description: NeuroDebian development tools
neuro.debian.net sphinx website sources and development tools used by
Package: neurodebian-guest-additions
Architecture: all
Pre-Depends: virtualbox-ose-guest-utils, virtualbox-ose-guest-x11, virtualbox-ose-guest-dkms
-Depends: ${misc:Depends}, sudo, neurodebian-desktop, gdm, update-manager-gnome, update-notifier
+Depends: ${misc:Depends}, sudo, neurodebian-desktop, gdm | gdm3, update-manager-gnome, update-notifier
Recommends: chromium-browser
Description: NeuroDebian guest additions (DO NOT INSTALL OUTSIDE VIRTUALBOX)
This package configures a Debian installation as a guest operating system
--- /dev/null
+Source: patchclamp
+Tasks: debian-science/electrophysiology
+Homepage: http://sourceforge.net/projects/patchclamp
+Responsible: Vadim Alexeenko <v.a.alexeenko@gmail.com>
+Language: C/C++
+Author: Vadim Alexeenko <v.a.alexeenko@gmail.com>
+License: GPL-2+
+Pkg-Description: recorder of single-channel and whole-cell currents
+ The ultimate aim is to create an extremely user-friendly software to
+ perform the most common tasks of recording single channels and
+ whole-cell currents
--- /dev/null
+Source: spykeview
+Tasks: debian-science/electrophysiology
+Homepage: https://github.com/rproepp/spykeviewer
+License: promised MIT or BSD-3
+Author: Robert Pröpper <robert.proepper@googlamil.com>
+Language: Python
+Version: 0.1.0
+WNPP: 687703
+Pkg-Description: GUI application for navigating, analyzing and visualizing electrophysiological datasets
+ Based on the neo framework, it works with a wide variety of data
+ formats. Plugin interfaces allow for rapid extension with custom
+ analyses.
+Remark: Upstream promises public release by SfN 2012 in October
python-sklearn python-scikits-learn python-mdp python-mlpy python-openpyxl libgdf-dev matlab-support
svgtune rorden-mri-tutorial caret-data python-joblib python-sphinx fail2ban
python-pandas python-skimage neurodebian numdiff nuitka pytables
- guacamole
+ guacamole freeipmi remake
# Information about prospective packages to be imported from taskfiles
prospective =
pytables = python-tables
isis = isis-utils libisis-core-dev python-isis libisis-ioplugins-common libisis-ioplugins-dicom libisis-qt4-dev
guacamole = guacamole guacd libguac-dev libguac3 libguac-client-rdp guacamole-tomcat libguac-client-vnc0
+neo = python-neo
+openvibe = openvibe-bin openvibe-data openvibe-dev openvibe-libs openvibe-plugins
[mirrors]
au = http://mirror.aarnet.edu.au/pub/neurodebian
-de = http://apsy.gse.uni-magdeburg.de/debian
+de-m = http://neurodebian.g-node.org
+de-md = http://apsy.gse.uni-magdeburg.de/debian
+de-v = http://nd.zetatech.org
gr = http://neurobot.bio.auth.gr/neurodebian
jp = http://neuroimaging.sakura.ne.jp/neurodebian
ua = http://www.neuro.webdisk.com.ua
[mirror names]
au = Australia (AARNET)
-de = Germany (University of Magdeburg)
+de-m = Germany (G-Node, LMU Munich)
+de-md = Germany (University of Magdeburg)
+de-v = Germany (Nikolaus Valentin Haenel, Vogtland)
gr = Greece (Aristotle University of Thessaloniki)
jp = Japan (Kiyotaka Nemoto)
ua = Ukraine (Iaroslav Iurchenko)
http://neuro.debian.net/debian/dists/natty/Release
http://neuro.debian.net/debian/dists/oneiric/Release
http://neuro.debian.net/debian/dists/precise/Release
+ http://neuro.debian.net/debian/dists/quantal/Release
http://neuro.debian.net/debian/dists/squeeze/Release
http://neuro.debian.net/debian/dists/wheezy/Release
http://neuro.debian.net/debian/dists/sid/Release
oneiric = Ubuntu 11.10 "Oneiric Ocelot" (oneiric)
# EOL: April 2017 (LTS)
precise = Ubuntu 12.04 LTS "Precise Pangolin" (precise)
+# EOL: April 2014
+quantal = Ubuntu 12.10 "Quantal Quetzal" (quantal)
[release backport ids]
# the purpose of these ids is to have version suffixes for backported packages
natty = nd11.04
oneiric = nd11.10
precise = nd12.04
+quantal = nd12.10
[nitrc ids]
afni = 23
Chroot workaround for fslview (HOWTO)
=====================================
+.. note::
+
+ With the release of FSLView 4.0.0b this workaround should no longer be
+ necessary. However, the technology is stil equally useful to work around
+ similar problems with other software.
+
Preamble
--------
within the chroot environment, so just create a little shell script
``/usr/local/bin/fslview``, make it executable and be all set::
- echo -e '#!/bin/sh\nschroot -p -c squeeze /usr/bin/fslview "$@"' > /usr/local/bin/fslview
+ echo -e '#!/bin/sh\nexport FSLDIR=/usr/share/fsl\nschroot -p -c squeeze /usr/bin/fslview "$@"' > /usr/local/bin/fslview
chmod a+x /usr/local/bin/fslview
.. note::
+---------------------------+-------------------------------------------------------+
|**Author** | Kiyotaka Nemoto <kiyotaka@nemotos.net> |
+---------------------------+-------------------------------------------------------+
-|**Homepage** | http://www.nemotos.net/?page_id=504 |
+|**Homepage** | http://www.nemotos.net/lin4neuro/ |
+---------------------------+-------------------------------------------------------+
|**Purpose** | Neuroimaging tools for course-work |
+---------------------------+-------------------------------------------------------+
|**Features** | - Datasets and tutorials from C.Rorden (mricron_) |
| | - Both 32- and 64-bit images |
-| | - Based on Ubuntu_ 10.04 LTS |
+| | - Based on Ubuntu_ 10.04 LTS and Xubuntu_ 12.04 LTS |
+---------------------------+-------------------------------------------------------+
|**Pre-installed Software** | NeuroDebian |
| | AFNI_, AMIDE, Caret_, FSL_, LIPSIA_, mricron_, etc. |
| | Custom: |
| | 3DSlicer, Ginkgo CADx, MINC, MRIConvert, Virtual MRI |
+---------------------------+-------------------------------------------------------+
-|**Download** | ftp://ftp.nemotos.net/ [~2GB] |
+|**Download** | http://www.nemotos.net/l4n-iso/ [~2GB] |
+---------------------------+-------------------------------------------------------+
|**References** | http://www.biomedcentral.com/1471-2342/11/3 |
+---------------------------+-------------------------------------------------------+
* `Department of Psychological and Brain Sciences at Dartmouth College`_
*[us-nh]* (primary mirror)
* `Department of Experimental Psychology at the University of Magdeburg`_
- *[de]*
+ *[de-md]*
* `Neurobot at Aristotle University of Thessaloniki, Greece`_ *[gr]*
* `Paul Ivanov`_ *[us-ca]*
* `Medical-image Analysis and Statistical Interpretation lab at Vanderbilt`_
<http://www.aarnet.edu.au>`_ *[au]*
* Kiyotaka Nemoto (AKA Mr. Lin4Neuro_) *[jp]*
* Iaroslav Iurchenko *[ua]*
+* `Nikolaus Valentin Haenel`_ *[de-v]*
+* `INCF G-Node at Ludwig-Maximilians-Universität München <http://www.g-node.org>`_ *[de-m]*
If your are interested in mirroring the repository, please see the :ref:`faq`.
.. _Neurobot at Aristotle University of Thessaloniki, Greece: http://neurobot.bio.auth.gr
.. _Paul Ivanov: http://www.pirsquared.org
.. _Medical-image Analysis and Statistical Interpretation lab at Vanderbilt: https://masi.vuse.vanderbilt.edu
+.. _Nikolaus Valentin Haenel: http://haenel.co
Publications
============
+Hanke, M. (2012). `Share your tools! But fear the wombat! Seriously.
+<http://neuro.debian.net/_files/Hanke_FearTheWombat_Brainhack2012.pdf>`_ *Talk
+given at* `Brainhack <http://brainhack.org/2012/04/06/brainhack-2012-unconference>`_ 2012 at the
+Max-Planck-Institute for Human Cognitive and Brain Sciences*, Leipzig, Germany.
+[`video <http://youtu.be/8t6znEOEDVo>`_]
+
Hanke, M. (2012). `Computational and cognitive neuroscience boosted by Debian
OR Just using Debian is not enough
<http://neuro.debian.net/_files/Hanke_UsingDebianIsNotEnough_ESRF2012.pdf>`_.
.. _NeuroDebian: http://neuro.debian.net
.. _Debian: http://www.debian.org
.. _Ubuntu: http://www.ubuntu.com
+.. _Xubuntu: http://www.xubuntu.org
.. _exppsy: http://alioth.debian.org/projects/pkg-exppsy
.. _`Debian Med`: http://debian-med.alioth.debian.org
.. _`Debian Science`: http://wiki.debian.org/DebianScience
Downloads
---------
-* `NeuroDebian 6.0.5 image (32bit)
- <http://neuro.debian.net/debian/vm/NeuroDebian_6.0.5_i386.ova>`_ [~559MB]
+* `NeuroDebian 6.0.6 image (32bit)
+ <http://neuro.debian.net/debian/vm/NeuroDebian_6.0.6_i386.ova>`_ [~559MB]
*This image should work on virtually all systems that are supported by*
VirtualBox_ *and can be used whenever the, otherwise preferable, 64bit image
is not compatible with a host machine.*
-* `NeuroDebian 6.0.5 image (64bit)
- <http://neuro.debian.net/debian/vm/NeuroDebian_6.0.5_amd64.ova>`_ [~575MB]
+* `NeuroDebian 6.0.6 image (64bit)
+ <http://neuro.debian.net/debian/vm/NeuroDebian_6.0.6_amd64.ova>`_ [~576MB]
*This image only works on 64bit host machines with active hardware
virtualization support. The should include all recent Apple hardware and most
Changes
-------
+6.0.6 -- 01 Oct 2012
+
+ * Updated core system to Debian squeeze 6.0.6
+
6.0.5 -- 10 Nov 2011
* Updated core system to Debian squeeze 6.0.3
6.0.3 -- 12 Jun 2011 [Superseded in the archive by 6.0.4]
- * Updated to Squeeze 6.0.1
+ * Updated to Debian squeeze 6.0.1
* Updated VirtualBox guest additions to 4.0.4 from backports.debian.org
* Appliance is available as a single file (.ova) ready for the import
# ln -f is used for further robustness
[ ! -L $HOME/host ] && ln -sf /media/sf_host $HOME/host
-# TODO:
-# we need to package python-mvpa2-tutorial-data for PyMVPA
-packages=$(zenity --list $icon_opt --checklist --column="Install" --column="Description" \
+# TODO: add PyMVPA:
+# FALSE "PyMVPA" "python-mvpa2,python-mvpa2-doc,python-mvpa2-tutorial-data" \
+# needs -doc and -tutorial-data package
+packages=$(zenity --height 450 --list $icon_opt --checklist --column="Install" --column="Description" \
--column="Package Name" --print-column=3 --hide-column=3 --hide-header \
--separator=' ' --text="Please select any additional component that shall be installed.
on the system. No installed packages will be reinstalled or removed, only
additional components will be installed." \
FALSE "Emacs" "emacs" \
-FALSE "GNU Image Manipulation Program (Gimp)" "gimp" \
+FALSE "Graphics (e.g. GIMP, Inscape)" "gimp,inkscape,svgtune,xzgv,vym" \
FALSE "Octave" "octave,qtoctave" \
FALSE "OpenOffice.org" "openoffice.org" \
-FALSE "PyMVPA" "ipython,python-mvpa2,python-mvpa2-doc,spyder" \
+FALSE "PyMVPA Tutorial" "ipython01x,python-mvpa2,python-mvpa2-doc,python-mvpa2-tutorialdata,spyder" \
+FALSE "Python: Electrophysiology & Modeling" "python-brian,python-pynn,python-pyentropy,stimfit" \
+FALSE "Python: Neuroimaging" "ipython01x,spyder,nipy-suite,python-mvpa2" \
+FALSE "Python: Scientific stack" "ipython01x,spyder,python-matplotlib,python-pandas,python-sympy" \
FALSE "R" "r-recommended" \
-FALSE "Scientific Python" "ipython,python-scipy,python-matplotlib,spyder,python-pandas" \
FALSE "TeX Live" "texlive" \
FALSE "Adobe Flash browser plugin" "flashplugin-nonfree" \
|| true)
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
from matplotlib.font_manager import FontProperties
from ConfigParser import SafeConfigParser
-
+from math import ceil
dt = [('ip', '|S16'),
('loc', '|S3'),
('date', float)]
-def make_figure(data, ymax):
+def make_figure(data, ymax=None):
fig = pl.figure(figsize=(14,3))
distros = ('Debian', 'Ubuntu')
# Sorting is actually seems to be not needed on Python 2.7
continue
width = bin_edges[1] - bin_edges[0]
# think lines
- ax.plot(bin_edges[:-1]+(width/2), hist / width,
+ y = hist / width
+ global_y_max = max(max(y), global_y_max)
+ ax.plot(bin_edges[:-1]+(width/2), y,
label=suite, color=colors[i%4], linestyle=linestyle[i//4], lw=2)
# transparent curve shading
ax.fill_between(bin_edges[:-1]+(width/2), 0, hist / width, alpha=0.2,
# figure out axis limits to avoid whitespace in plots
x_max = bin_edges[-2] + width/2
x_min = bin_edges[0] + width/2
- if global_x_max is None or x_max > global_x_max:
- global_x_max = x_max
+
+ global_x_max = max(x_max, global_x_max)
if global_x_min is None or x_min < global_x_min:
global_x_min = x_min
ax.set_ylabel('New subscriptions [1/day]')
if title:
ax.set_title(title)
- if ymax:
- ax.set_ylim(0, ymax)
+ if not ymax:
+ # Always leave significant 5% for improvement ;-)
+ ymax = global_y_max * 1.05
+ ax.set_ylim(0, ymax)
# set x-ticks in date
# see: http://matplotlib.sourceforge.net/examples/api/date_demo.html
ax.xaxis.set_major_locator(YearLocator())
ax.xaxis.set_major_formatter(DateFormatter('\n\n%Y'))
- ax.xaxis.set_minor_locator(MonthLocator())
+ ax.xaxis.set_minor_locator(MonthLocator(interval=2))
ax.xaxis.set_minor_formatter(DateFormatter('%b'))
# format the coords message box
ax.format_xdata = DateFormatter('%Y-%m-%d')
date = datetime.strptime(date, "%d %b %Y")
data.append((ip.strip(), loc, suite, date2num(date)))
data = np.array(data, dtype=dt)
- make_figure(data, ymax=21).savefig(sys.argv[1], bbox_inches='tight', dpi=60)
+ make_figure(data).savefig(sys.argv[1], bbox_inches='tight', dpi=60)
#? TODO -- should be a parameter as well?
testdir=${dscfilef_base}_$arch.testrdepends.$family-$dist
+secdir=${dscfilef_base}_$arch.testrdepends.$family-$dist.secure
bindir=$testdir/bin
debdir=$testdir/debs
srcdir=$testdir/srcs
echo "I: Building the new package for $pkg"
-mkdir -p $debdir $srcdir $bindir
+mkdir -p $debdir $srcdir $bindir $secdir
$CMD nd_build $family $dist $arch $dscfile --buildresult=$debdir
+echo "I: Initiating the repository"
cd $debdir
dpkg-scanpackages . >| Packages
+apt-ftparchive release . >| Release
+
+gpgargs="--no-default-keyring --secret-keyring $secdir/keyring.sec --keyring $secdir/keyring.pub"
+if [ ! -e $secdir/keyring.sec ]; then
+ # Generate a key to sign the Release file
+ cat >| $secdir/keyring.gen <<EOF
+ %echo Generating a standard key
+ Key-Type: DSA
+ Key-Length: 1024
+ Subkey-Type: ELG-E
+ Subkey-Length: 1024
+ Name-Real: NeuroDebian Tester
+ Name-Comment: Temporary key
+ Name-Email: team@neuro.debian.net
+ Expire-Date: 0
+ Passphrase: salty salt
+ %pubring $secdir/keyring.pub
+ %secring $secdir/keyring.sec
+ # Do a commit here, so that we can later print "done" :-)
+ %commit
+ %echo done
+EOF
+
+ gpg --batch --gen-key $secdir/keyring.gen
+ gpg $gpgargs --list-secret-keys
+fi
+
+echo "I: signing Release file"
+gpg $gpgargs --list-secret-keys
+gpg --yes -abs -u "NeuroDebian Tester" \
+ $gpgargs --passphrase "salty salt" \
+ -o Release.gpg Release
+pubkey=$(gpg $gpgargs -a --export -u "NeuroDebian Tester")
+
# All binary packages produced
pkgs=$(awk '/^Package:/{print $2;}' Packages)
cd - > /dev/null
echo "I: preparing the hook"
cat << EOF >| $bindir/D00add_custom_repo
echo 'deb file://$debdir ./' >| /etc/apt/sources.list.d/custom.list
-apt-get update
+echo "$pubkey" | apt-key add -
+apt-get update || /bin/bash < /dev/tty > /dev/tty 2> /dev/tty
EOF
chmod a+x $bindir/D00add_custom_repo
#!/usr/bin/python
-#
-# Dead simple script to query the NeuroDebian dev config.
-#
-import sys
+"""
+Dead simple script to query the NeuroDebian dev config (or any other Python config file)
+"""
+
+import os, sys
+
from ConfigParser import SafeConfigParser
+from optparse import OptionParser
+
+__prog__ = os.path.basename(sys.argv[0])
+__version__ = '0.0.2'
+
+if __name__ == '__main__':
+ parser = OptionParser(
+ usage="%s [OPTIONS] [section] [field]\n" % __prog__ + __doc__,
+ version="%prog " + __version__)
+
+ parser.add_option(
+ '-f', '--config-file', default="/etc/neurodebian/neurodebian.cfg",
+ help="name of the config file")
+
+ parser.add_option(
+ '-F', '--value-separator', default="=",
+ help="string to separate key from value")
+
+ opts, argv = parser.parse_args()
-# XXX add check if it is there at all
-# XXX support more locations
-cfg_path="/etc/neurodebian/neurodebian.cfg"
+ if not os.path.exists(opts.config_file):
+ sys.stderr.write("ERROR: File %s does not exist\n" % opts.config_file)
+ sys.exit(1)
-cfg = SafeConfigParser()
-cfg.read(cfg_path)
-print cfg.get(sys.argv[1], sys.argv[2])
+ cfg = SafeConfigParser()
+ cfg.read(opts.config_file)
+ if len(argv) == 2:
+ print cfg.get(argv[0], argv[1])
+ elif len(argv) == 1:
+ # Print values of the section, =-separate key from value
+ print '\n'.join([opts.value_separator.join(x)
+ for x in cfg.items(argv[0])])
+ else:
+ # Print section names
+ print '\n'.join(cfg.sections())
VBoxManage startvm "${vm_name}"
+# TODO: see if we could just use virtinst (virt-install tool) to run d-i
+# with pre-seeding without this hackery. See
+# http://honk.sigxcpu.org/con/Preseeding_Debian_virtual_machines_with_virt_install.html
+# for an example
sleep 5 # give some time to make sure we get to menu
# Send our sequence -- cruel way
#VBoxManage controlvm "${vm_name}" keyboardputscancode \