]> git.donarmstrong.com Git - neurodebian.git/commitdiff
Merge branch 'master' of git://git.debian.org/pkg-exppsy/neurodebian
authorYaroslav Halchenko <debian@onerussian.com>
Mon, 2 Feb 2015 19:27:04 +0000 (14:27 -0500)
committerYaroslav Halchenko <debian@onerussian.com>
Mon, 2 Feb 2015 19:27:04 +0000 (14:27 -0500)
* 'master' of git://git.debian.org/pkg-exppsy/neurodebian: (61 commits)
  New VM (7.8.0) + FAQ on installing headers if upgrade goes south
  forgotten utopic for michael's environments
  Release point for utopic, build for utopic, add info on vivid (comment out)
  Added future vivid ubuntu release
  and cn-ln is now out
  Added 4 more mirrors in China
  NF: added cn-ln mirror in China, Thanks Fulong Sun and Hörmetjan Yiltiz
  ENH: added one more msg to catch when pkg is N/A
  compressed a bit so things do not get trimmed
  minor refreshment to the brochure
  foreseeing creating more of custom "repos" allow tohave debian-custom folder on the website
  t-shirt version of a logo but with black color for Debian
  saucy is gone, so do not build for it any longer
  BF: adjusting URLs for migration to cgit from gitweb on alioth
  ENH: dropping quantal and saucy -- EOLed
  BF: Removing echo of obsolete way to mount host directory manually
  doh -- forgot to close the ITP
  more fixes and overrides
  more fixups of screw ups etc
  override for absent man pages in -devel + fixing screw up
  ...

43 files changed:
3rd/bigmess
3rd/nvd3
Makefile
artwork/Makefile
artwork/brochure/brochure_debian-neurodebian.tex
artwork/ndhackergotchi.png [deleted file]
artwork/neurodebian_back_lightbg.svg [new file with mode: 0644]
cmdsettings.sh
debian/TODO
debian/changelog
debian/control
debian/copyright
debian/neurodebian-desktop.lintian-overrides [new file with mode: 0644]
debian/neurodebian-desktop.manpages
debian/neurodebian-dev.install
debian/neurodebian-dev.lintian-overrides [new file with mode: 0644]
debian/neurodebian-guest-additions.dirs [deleted file]
debian/neurodebian-guest-additions.lintian-overrides [new file with mode: 0644]
debian/neurodebian-popularity-contest.dirs [new file with mode: 0644]
debian/neurodebian-popularity-contest.install [new file with mode: 0644]
debian/neurodebian-popularity-contest.postinst
debian/neurodebian-popularity-contest.postrm
debian/neurodebian.config [new file with mode: 0755]
debian/neurodebian.install [new file with mode: 0644]
debian/neurodebian.manpages [new file with mode: 0644]
debian/neurodebian.postinst [new file with mode: 0755]
debian/neurodebian.postrm [new file with mode: 0755]
debian/neurodebian.templates [new file with mode: 0644]
debian/po/POTFILES.in [new file with mode: 0644]
debian/po/templates.pot [new file with mode: 0644]
debian/rules
etc/xdg/autostart/vboxhost-mount.desktop [deleted file]
neurodebian.cfg
popcon/neurodebian-popcon.gpg [new file with mode: 0644]
popcon/neurodebian.conf [new file with mode: 0644]
sphinx/_templates/layout.html
sphinx/reposetup.rst
sphinx/vm.rst
tools/nd-configurerepo [new file with mode: 0755]
tools/nd_rebuildarchive
tools/tests/run_in_debian_dockers [new file with mode: 0755]
tools/tests/test_neurodebian-repository-deployment [new file with mode: 0755]
vm/d-i/wheezy/initial_setup

index 65601e6ca109f3a4eb7c07be0930db0fc1cd26f2..145aa3f06451754ab759b88c1dbb47c7081d5f47 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 65601e6ca109f3a4eb7c07be0930db0fc1cd26f2
+Subproject commit 145aa3f06451754ab759b88c1dbb47c7081d5f47
index ba44aa30533688953a1f8bfc6fd32dc903c446e6..683eb18ce196a7eb494f060656098ac12d604b65 160000 (submodule)
--- a/3rd/nvd3
+++ b/3rd/nvd3
@@ -1 +1 @@
-Subproject commit ba44aa30533688953a1f8bfc6fd32dc903c446e6
+Subproject commit 683eb18ce196a7eb494f060656098ac12d604b65
index 4c06e30b25aec82acc3460e3529d94d3ca4e40d7..a2f86caea92a60a9dc8cbe86fb2eccf07d442bcb 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -72,7 +72,7 @@ updatedb: cachefiles
 
 upload-website: html
        rsync -rvzlhp --delete \
-        --exclude=debian --exclude=debian-local --exclude=debian-devel --exclude=_files \
+        --exclude=debian --exclude=debian-local --exclude=debian-devel --exclude=debian-custom --exclude=_files \
         --chmod=Dg+s,g+rw $(WWW_DIR) $(WWW_UPLOAD_URI)
        : # Touch stamp here so we get it updated on every upload
        touch $@-stamp
index 7bcab8581d0d28a8bd33ce9b7715ce2611fa96b5..734d958e476452d77e738f2acf54f3e431ccf88c 100644 (file)
@@ -6,7 +6,7 @@ ICONSIZED=ccn-logo_h50.png uni-md-logo_h50.png dartmouth-logo_h50.png
 pics: $(SVGIS) $(ICONSIZED)
 
 clean::
-       for p in *.svg; do rm -f $${p%*.svg}.{pdf,eps,png}; done
+       for p in *.svg; do [ "$$p" = ndhackergotchi.svg ] || rm -f $${p%*.svg}.{pdf,eps,png}; done
        rm -rf *_tuned
        rm -f  $(ICONSIZED)
 
index 116ed08838b1e78f1587f863a7e0c37ee7f5bb77..75a052680a343f2114072d79d10ba2654a99db20 100644 (file)
@@ -154,7 +154,7 @@ Very (Special|Stable) Operating Platform
   of software.
 
 %\item[Stable] \emph{Official release}\\
-\item[Official release]\hfill\emph{Stable} (now 7.5, \emph{wheezy})\\
+\item[Official release]\hfill\emph{Stable} (now 7.7, \emph{wheezy})\\
   % Software verified to be well tested and secure,
   % Very stable (hence the name) and secure
   % but might be lacking the most recent versions.\\% of the software.\\
@@ -175,7 +175,8 @@ Story animation, \emph{e.g.} sid, jessie, wheezy.  \emph{Unstable}
 flavor always called \emph{sid}, while a new name chosen for every
 upcoming release and assigned to \emph{Testing} to become a code name
 of the release when it becomes \emph{Stable}.\\  At the moment
-\emph{jessie} is \emph{Testing}, and \emph{wheezy} is \emph{Stable}.
+\emph{jessie} is \emph{Testing} (actually \emph{Frozen} in preparation
+for the release), and \emph{wheezy} is \emph{Stable}.
 As soon as \emph{jessie} gets released, \emph{Testing} will be given
 a new name.% -- \emph{jessie}.
 \end{comment}
@@ -234,6 +235,7 @@ teams, such as Debian-Science or Debian-Med.
 \item[Run in a Virtual Machine] \url{http://neuro.debian.net/vm.html}
 \item[Development version] \url{http://www.debian.org/devel/debian-installer}
 \item[Use in a cloud] \url{https://wiki.debian.org/Cloud}
+\item[Docker: \texttt{docker pull debian}]
 \end{description}
 
 % \ndsubsection{Get \emph{Testing/Unstable} Debian}
@@ -241,7 +243,7 @@ teams, such as Debian-Science or Debian-Med.
 % Install on a hard-drive or in a Virtual Machine\\
 % \url{http://www.debian.org/devel/debian-installer}
 %
-
+\vspace{-1em}
 \ndsubsection{How to install software}
 
 GUI (Synaptic): \textit{Select and click ``Apply''}\\
@@ -279,8 +281,8 @@ Command line:
   %\begin{description}[nolistsep,leftmargin=1pc]
   %\item[Mailing lists] 
   \url{http://www.debian.org/MailingLists}\\
-  \url{http://forums.debian.net}\\
-  \url{http://ask.debian.net}\\
+  \url{http://forums.debian.net},
+  \url{ask.debian.net}\\
   \url{irc://irc.debian.org/debian}
   %\end{description}
 \item[Commercial support]
@@ -442,7 +444,7 @@ efforts of thousands of Debian contributors.
 \begin{itemize}[nolistsep,leftmargin=1pc]
 
 % rephrase to outline the benefit, not burden
-\item Debian standards and policies guarantee quality and robustness.
+\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
@@ -519,8 +521,9 @@ buga dugabuga dugabuga dugabuga dugabuga dugabuga dugabuga dugabuga dugabuga dug
   % Entire NeuroDebian repository for any given past moment
   All versions of packages readily available
 \item[Data as the 1st-class citizen]
-  \url{http://neuro.debian.net/datasets.html}\\
-  \url{http://github.com/neurodebian/datagit}
+  \url{http://datalad.org} data distribution
+\item[Community knowledge exchange portal]
+  \url{http://community.neurodebian.org}
 % yoh: see TODO above -- we can say that it is available already
 %\item[Universal availability]
 %  % \begin{itemize}[nolistsep,leftmargin=1pc,topsep=0em]
diff --git a/artwork/ndhackergotchi.png b/artwork/ndhackergotchi.png
deleted file mode 100644 (file)
index 9f74ec5..0000000
Binary files a/artwork/ndhackergotchi.png and /dev/null differ
diff --git a/artwork/neurodebian_back_lightbg.svg b/artwork/neurodebian_back_lightbg.svg
new file mode 100644 (file)
index 0000000..c993ff2
--- /dev/null
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="932.01465"
+   height="792.47455"
+   id="svg2878"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="neurodebian_back_lightbg.svg">
+  <defs
+     id="defs2880">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective2886" />
+    <inkscape:perspective
+       id="perspective3060"
+       inkscape:persp3d-origin="17.759468 : 14.569191 : 1"
+       inkscape:vp_z="35.518936 : 21.853786 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 21.853786 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#000000"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.39215686"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.5"
+     inkscape:cx="359.43589"
+     inkscape:cy="366.74194"
+     inkscape:document-units="mm"
+     inkscape:current-layer="g2478"
+     showgrid="false"
+     inkscape:window-width="1857"
+     inkscape:window-height="1179"
+     inkscape:window-x="61"
+     inkscape:window-y="19"
+     inkscape:window-maximized="0"
+     units="mm"
+     showguides="true"
+     fit-margin-top="1"
+     fit-margin-left="1"
+     fit-margin-right="1"
+     fit-margin-bottom="1"
+     showborder="true" />
+  <metadata
+     id="metadata2883">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-164.23723,-115.44164)">
+    <g
+       id="g3063"
+       transform="matrix(18.11552,0,0,18.11552,-664.75845,93.250972)">
+      <g
+         transform="matrix(1.583466,0,0,1.583466,-20.013661,-84.959016)"
+         style="display:inline"
+         inkscape:label="NeuroDebian-brain"
+         id="layer4">
+        <g
+           inkscape:export-ydpi="2.8800001"
+           inkscape:export-xdpi="2.8800001"
+           transform="matrix(0.06447637,0,0,0.06447637,35.55119,35.413705)"
+           id="g2725"
+           style="display:inline;enable-background:new">
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 215.74201,479.87605 -5.79253,0.36503 c -5.62491,7.03748 -12.11799,13.1655 -15.81469,21.20531 7.96444,-7.20864 10.83957,-11.74277 21.60722,-21.57034"
+             id="path2596"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 219.47886,491.93252 c 2.2921,-3.53965 5.49405,-6.11913 8.61876,-8.90297 -5.89247,3.43544 -10.40595,8.44794 -15.08808,13.22997 l 6.46932,-4.327"
+             id="path2598"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751"
+             d="m 352.14351,592.05711 c -13.144,3.795 -46.927,17.762 -59.547,17.341 l -5.69,-5.079 c -13.061,-2.014 -7,2.31 -17.246,1.094 -10.821,-5.587 -33.582,-16.727 -36.944,-21.293 -1.213,-3.654 5.979,1.16 8.219,1.458 -12.019,-8.093 -9.475,6.986 -20.178,-7.346 l 1.053,-0.762 c -32.59205,-22.7974 -3.68564,-76.57793 52.596,-97.519 -3.844,0.534 -3.195,-0.464 -4.987,-0.937 26.72448,-1.31405 18.16469,-5.19537 43.49128,-11.85424 12.39572,-4.09959 9.1069,-8.15071 12.96087,-9.32035 -14.41207,0.0228 -18.69607,-1.1748 -37.58515,5.53259 -55.915,7.507 -72.738,31.092 -89.261,67.96 -2.083,5.657 -3.876,2.429 -6.522,3.788 1.957,-11.348 7.044,-22.574 14.588,-32.667 -5.485,5.735 -10.666,11.73 -13.953,18.617 0.392,-10.34 19.147,-28.779 18.78,-32.668 -28.616,24.913 -36.788,80.905 -14.591,103.509 -4.839,-11.841 -10.077,-27.108 -9.003,-42.057 1.422,-6.544 5.819,-16.034 7.65,-15.001 -2.976,39.294 1.963,48.786 42.094,71.924 10.008,5.944 25.318,11.318 26.367,13.732 -7.944,-2.013 -2.953,1.441 -9.813,0.087 17.645,3.952 4.84,-4.91 28.543,1.475 l -5.367,5.947 c 11.782,-4.711 57.961,-10.07 76.943,-16.5 7.158,1.799 -25.097,17.328 -40.085,17.303 16.981,1.007 38.138,-15.203 51.155,-17.149 -3.742,2.419 -7.582,5.349 -11.716,7.394 13.573,-6.923 45.947,-11.048 55.079,-11.623 0.256,-1.792 -8.27,-3.253 8.83,-8.438 7.591,-1.803 4.594,0.766 6.682,0.926 0.406,-1.456 5.018,-6.196 15.402,-11.001 3.128,0.765 -5.377,5.566 -5.051,7.623 8.365,-3.504 14.314,-7.383 21.054,-9.198 12.187,-9.356 -2.634,-1.546 3.717,-8.227 20.439,-11.858 7.076,3.722 17.627,1.868 -12.604,13.287 -35.413,24.834 -44.768,29.861 11.808,-5.02 22.823,-11.075 33.202,-17.695 -0.401,3.175 24.028,-11.049 9.047,1.692 35.07,-18.449 109.63656,-35.57999 116.90656,-66.16899 -2.349,4.104 -5.287,9.288 -6.503,8.012 4.554,-15.46 6.115,-13.344 9.356,-16.217 1.33,-11.971 -4.516,-11.262 -6.642,-18.418 5.459,-23.341 -4.44256,-33.43401 -3.16056,-53.96301 l -4.385,2.034 c 0.486,-14.664 -7.58,-15.016 -10.781,-29.913 0.494,-1.079 4.611,3.865 7.014,8.19 -6.662,-12.367 -1.394,-13.05 -9.514,-24.743 3.709,2.443 6.616,5.298 10.009,8.049 -4.54,-10.307 -16.303,-23.23 -8.752,-20.239 -15.268,-14.817 -38.993,-41.998 -64.195,-54.23 l 4.077,-1.621 c -13.991,-4.983 -45.66,-25.634 -60.901,-24.045 l -1.332,-1.948 c -9.667,-1.979 -19.911,-2.256 -29.508,-3.339 -12.717,-2.576 -6.97,-6.748 -8.391,-5.558 -29.037,-4.05 -52.141,-3.865 -71.178,-3.926 -6.33264,5.84009 -34.262,8.796 -56.711,15.82 -114.931,23.483 -188.380251,90.08316 -184.815805,194.81921 4.006775,15.15819 24.500405,27.00274 36.446855,36.79889 -10.4753,-15.69627 -4.05981,-9.10136 -16.09703,-23.20978 -7.11475,-10.82227 -5.70567,-15.43227 0.0543,-26.24227 l -5.906,5.2 c 1.029,-18.581 5.235,-11.984 5.463,-26.95 2.307,0.73 4.614,1.461 6.921,2.192 -1.464,-5.568 -4.283,-17.184 0.618,-21.105 l -2.425,-5.884 c 7.914,-9.814 10.118,-21.554 16.09,-22.765 l -4.775,-0.885 c 3.668,-3.31 29.913,-36.325 26.288,-21.737 1.683,-2.967 2.16,-6.464 8.21,-11.661 l 4.379,1.668 c 7.061,-8.361 17.06,-16.439 21.139,-17.052 -4.004,4.525 -4.17,7 -4.26,9.435 39.443,-26.635 -3.316,-16.7 35.792,-39.212 0.369,0.791 0.737,1.582 1.106,2.373 2.691,-2.718 5.906,-4.782 8.938,-7.188 4.319,-0.71 8.637,-1.421 12.956,-2.132 11.112,-14.776 67.90165,-10.56005 95.35165,-15.80705 11.319,-1.691 25.856,3.405 46.309,4.882 l -0.582,-3.919 c 17.357,3.369 74.071,25.592 77.382,41.728 13.969,4.67 -0.496,-1.51 1.801,-3.703 26.333,11.368 22.225,18.09 29.915,28.323 12.833,9.874 -7.044,-9.489 1.574,-5.452 13.818,19.213 19.693,11.093 32.677,37.432 -0.905,3.359 -5.385,-5.883 -8.759,-7.63 16.344,14.771 36.5012,61.8442 31.8852,89.6442 -5.56,32.285 -91.5722,52.9568 -134.8792,65.3388 l 0.057,1.544 c -17.658,3.702 -76.714,31.776 -97.04,31.336"
+             id="path2490"
+             sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 409.46096,437.09419 c 7.26669,-7.07473 2.33738,5.03485 -5.58209,15.84382 -4.62208,0.5712 -8.98983,0.86871 -13.06965,0.97439 7.24762,-4.39653 13.21362,-10.2954 18.65174,-16.81821"
+             id="path2584"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 382.16943,461.30713 c -9.6974,3.50652 -19.6828,5.19858 -29.17847,4.07174 6.83451,0.55544 13.41827,-1.32159 20.27063,-2.9301 16.73493,-14.89706 -6.31008,-3.68937 -13.76173,-3.99218 30.32696,-12.44476 15.56966,1.57539 22.66957,2.85054"
+             id="path2586"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 342.63854,465.30284 c -18.27936,1.01777 -12.43907,-3.73926 -5.46269,-5.27853 0.96848,1.89875 12.84191,3.54031 5.46269,5.27853"
+             id="path2588"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 530.20382,347.62316 c 23.47676,14.90397 20.07236,37.02155 18.64946,8.83781 -18.01001,-28.36583 -9.63957,-1.73775 -18.64946,-8.83781"
+             id="path2604"
+             inkscape:connector-curvature="0" />
+          <path
+             style="fill:#d70751;display:inline"
+             i:knockout="Off"
+             d="m 416.40084,297.82351 c 21.30349,6.95292 34.08262,8.19821 46.43183,10.85188 -24.52052,-19.16869 -29.75373,-8.83568 -46.43183,-10.85188"
+             id="path2606"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+      <g
+         transform="matrix(1.5801928,0,0,1.5801928,-19.841359,-98.444624)"
+         style="display:inline"
+         inkscape:label="NeuroDebian-text"
+         id="layer3">
+        <g
+           id="g2488">
+          <g
+             id="g3885"
+             transform="matrix(0.700036,0,0,0.7872628,8.8169518,11.740131)">
+            <g
+               id="g3902">
+              <path
+                 id="text2950"
+                 d="m 51.959073,94.482231 c -0.128006,0.362672 -0.208006,1.024005 -0.24,1.984 -0.0053,0.229337 -0.008,0.93867 -0.008,2.128 -5e-6,0.656001 0.032,1.189334 0.096,1.599999 -0.213339,-0.032 -0.378672,-0.048 -0.496,-0.048 -0.144005,0 -0.296005,0.016 -0.456,0.048 -0.261338,-0.474665 -0.616004,-1.066664 -1.064,-1.775999 -0.36267,-0.575997 -0.725336,-1.151997 -1.088,-1.728 -0.154669,-0.234663 -0.309335,-0.469329 -0.464,-0.704 -0.181335,-0.277328 -0.314668,-0.522662 -0.4,-0.736 0.05866,0.469338 0.09333,1.021338 0.104,1.656 -0.0053,-0.202663 -0.008,0.349337 -0.008,1.656 -2e-6,0.741335 0.06667,1.288001 0.2,1.639999 -0.234668,-0.0427 -0.416001,-0.064 -0.544,-0.064 -0.133335,0 -0.322668,0.0213 -0.568,0.064 0.159999,-0.431998 0.239999,-1.314664 0.24,-2.647999 -10e-7,-0.879996 -0.01867,-1.562662 -0.056,-2.048 -0.02133,-0.266661 -0.04267,-0.450661 -0.064,-0.552 -0.048,-0.186661 -0.133334,-0.349327 -0.256,-0.488 0.261332,0.03201 0.495999,0.04801 0.704,0.048 0.287998,6e-6 0.554665,-0.01599 0.8,-0.048 0.165331,0.410672 0.370664,0.816005 0.616,1.216 l 1.288,2.104 c 0.143996,0.218669 0.290662,0.437336 0.44,0.656 0.170662,0.266669 0.287995,0.501335 0.352,0.704 -0.01067,-0.149332 -0.016,-0.919998 -0.016,-2.312 -5e-6,-1.247995 -0.08,-2.031994 -0.24,-2.352 0.133329,0.02134 0.333328,0.03201 0.6,0.032 0.122661,6e-6 0.298661,-0.01066 0.528,-0.032"
+                 style="font-size:8px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#d70a53;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+                 inkscape:connector-curvature="0" />
+              <path
+                 id="text2971"
+                 d="m 56.007933,97.498229 c -4e-6,0.144003 -0.008,0.301336 -0.024,0.472 l -2.888,0 c 0.08533,1.136001 0.623998,1.704001 1.616,1.704 0.495996,10e-7 0.882663,-0.149332 1.16,-0.448 -0.09067,0.266668 -0.146671,0.538667 -0.168,0.816001 -0.368004,0.10667 -0.74667,0.16 -1.136,0.16 -0.725336,0 -1.296002,-0.202667 -1.712,-0.608001 -0.416001,-0.405332 -0.624001,-0.970665 -0.624,-1.696 -10e-7,-0.682663 0.162666,-1.22133 0.488,-1.616 0.357332,-0.426662 0.869331,-0.639995 1.536,-0.64 0.570664,5e-6 1.00533,0.165338 1.304,0.496 0.298662,0.330671 0.447996,0.784004 0.448,1.36 m -0.84,0 c 0.0053,-0.933329 -0.320003,-1.399996 -0.976,-1.4 -0.677335,4e-6 -1.045335,0.466671 -1.104,1.4 l 2.08,0"
+                 style="font-size:8px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#d70a53;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+                 inkscape:connector-curvature="0" />
+              <path
+                 id="text2975"
+                 d="m 67.562515,97.874234 c -4e-6,0.698668 -0.170671,1.253334 -0.512,1.664 -0.36267,0.442667 -0.888003,0.663996 -1.576,0.663996 -0.693335,0 -1.226667,-0.205329 -1.6,-0.615996 -0.357333,-0.394666 -0.536,-0.941332 -0.536,-1.64 0,-0.703997 0.173333,-1.26133 0.52,-1.672 0.367999,-0.431996 0.898665,-0.647996 1.592,-0.648 0.677331,4e-6 1.202663,0.208004 1.576,0.624 0.357329,0.400003 0.535996,0.941336 0.536,1.624 m -0.848,0.048 c -3e-6,-1.18933 -0.405336,-1.783996 -1.216,-1.784 -0.885335,4e-6 -1.328001,0.59467 -1.328,1.784 -10e-7,1.184001 0.431999,1.776 1.296,1.776 0.831997,0 1.247997,-0.591999 1.248,-1.776"
+                 style="font-size:8px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#d70a53;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+                 inkscape:connector-curvature="0" />
+              <path
+                 id="text2979"
+                 d="m 63.152097,95.674231 c -0.09067,0.245338 -0.149336,0.514671 -0.176,0.808 -0.08,-0.02133 -0.152003,-0.032 -0.216,-0.032 -0.314669,4e-6 -0.576002,0.146671 -0.784,0.44 -0.192002,0.272003 -0.288002,0.693336 -0.288,1.264 l 0,0.984 c -2e-6,0.394668 0.04,0.749334 0.12,1.063999 -0.240001,-0.0373 -0.405335,-0.056 -0.496,-0.056 -0.08533,0 -0.258668,0.0187 -0.52,0.056 0.07467,-0.282665 0.111999,-0.663998 0.112,-1.143999 l 0,-2.024 c -10e-7,-0.559996 -0.101334,-0.959995 -0.304,-1.2 0.389332,-0.016 0.762665,-0.09066 1.12,-0.224 -0.016,0.325338 -0.024,0.546671 -0.024,0.664 l 0,0.528 c 0.325331,-0.714662 0.810664,-1.090662 1.456,-1.128"
+                 style="font-size:8px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#d70a53;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+                 inkscape:connector-curvature="0" />
+              <path
+                 id="text2983"
+                 d="m 60.240798,100.17823 c -0.160005,-0.032 -0.322671,-0.048 -0.488,-0.048 -0.122671,0 -0.301337,0.016 -0.536,0.048 l -0.008,-0.959997 c -0.272003,0.656 -0.736003,0.983997 -1.392,0.983997 -0.848002,0 -1.272001,-0.418664 -1.272,-1.255997 l 0,-2 c -10e-7,-0.54933 -0.088,-0.927996 -0.264,-1.136 0.506665,4e-6 0.882665,-0.07733 1.128,-0.232 -0.05867,0.218671 -0.088,0.520004 -0.088,0.904 l 0,2.208 c -2e-6,0.576 0.263998,0.864 0.792,0.864 0.714663,0 1.071996,-0.541333 1.072,-1.624 l 0,-0.912 c -4e-6,-0.634663 -0.08534,-1.03733 -0.256,-1.208 0.437329,4e-6 0.815996,-0.07733 1.136,-0.232 -0.06401,0.293337 -0.09601,0.648004 -0.096,1.064 l 0,2.232 c -5e-6,0.650667 0.09066,1.085333 0.272,1.303997"
+                 style="font-size:8px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#d70a53;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+                 inkscape:connector-curvature="0" />
+            </g>
+          </g>
+          <g
+             id="g2478">
+            <path
+               class="st1"
+               d="m 61.055138,88.360478 c 0.01103,-0.5558 0.13264,-1.059213 0.629911,-1.059213 0.552561,0 0.596764,0.57684 0.585735,1.059213 l -1.215646,0 z m 1.922906,0.0734 c 0,-0.796958 -0.165757,-1.573065 -1.215674,-1.573065 -1.458724,0 -1.458724,1.531146 -1.458724,1.856198 0,1.363279 0.651998,1.908612 1.735033,1.908612 0.486241,0 0.718318,-0.07332 0.8509,-0.104907 -0.011,-0.241159 0.03317,-0.398533 0.06632,-0.608131 -0.143612,0.09439 -0.331542,0.209598 -0.762493,0.209598 -1.105094,0 -1.127267,-0.964746 -1.127267,-1.289771 l 1.88976,0 0.02214,-0.398534 z"
+               id="path3777"
+               style="fill:#000000;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               class="st1"
+               d="m 65.287697,88.71701 c 0,0.6292 -0.121553,1.478734 -0.939337,1.478734 -0.121553,0 -0.265194,-0.0211 -0.353601,-0.04195 -0.01103,-0.241213 -0.01103,-0.660761 -0.01103,-1.1536 0,-0.576813 0.0552,-0.880878 0.110495,-1.027705 0.154698,-0.482481 0.486241,-0.482481 0.552561,-0.482481 0.530387,0 0.640911,0.702707 0.640911,1.226999 z m -2.04443,0.734053 c 0,0.503441 0,0.786546 -0.07735,1.006745 0.287339,0.104827 0.651998,0.167787 1.083006,0.167787 0.276252,0 1.082949,0 1.514015,-0.849425 0.210017,-0.388013 0.276252,-0.912387 0.276252,-1.310839 0,-0.241268 -0.02206,-0.776107 -0.232049,-1.111654 -0.198902,-0.325024 -0.519444,-0.482372 -0.861987,-0.482372 -0.685144,0 -0.884076,0.53484 -0.983541,0.817919 0,-0.346067 0,-1.551999 0.06632,-2.160184 -0.464154,0.199213 -0.751465,0.230666 -1.060891,0.262146 0.276252,0.10488 0.276252,0.5558 0.276252,2.002972 l 0,1.656905 -2.8e-5,0 z"
+               id="path3779"
+               style="fill:#000000;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               class="st1"
+               d="m 67.409534,90.583676 c -0.143697,-0.02104 -0.243163,-0.03137 -0.453152,-0.03137 -0.220962,0 -0.375689,0.01033 -0.541417,0.03137 0.06626,-0.125868 0.09944,-0.188692 0.121552,-0.629172 0.02209,-0.597801 0.03309,-2.202293 -0.01111,-2.548359 -0.04418,-0.251707 -0.09941,-0.293626 -0.198875,-0.356506 0.574677,-0.05247 0.740406,-0.09436 1.016658,-0.220226 -0.06626,0.293626 -0.06626,0.450973 -0.06626,0.901865 -0.01109,2.328106 -0.02209,2.579732 0.13261,2.852398 z"
+               id="path3781"
+               style="fill:#000000;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               class="st1"
+               d="m 69.686013,88.675064 c -0.01097,0.419493 -0.02206,0.723586 -0.143583,0.954333 -0.143727,0.304038 -0.39792,0.388013 -0.585707,0.388013 -0.419951,0 -0.508444,-0.335546 -0.508444,-0.66068 0,-0.63972 0.596823,-0.681666 0.862045,-0.681666 l 0.375689,0 0,0 z m -1.956051,0.828466 c 0,0.419466 0.132639,0.849507 0.53053,1.027733 0.187759,0.0734 0.364603,0.0734 0.419864,0.0734 0.652027,0 0.873017,-0.450892 1.005629,-0.734079 -0.01097,0.293627 0,0.471934 0.02209,0.713093 0.132669,-0.01052 0.254193,-0.02104 0.475241,-0.02104 0.110551,0 0.232104,0.01052 0.353601,0.02104 -0.07735,-0.115401 -0.121497,-0.17828 -0.143612,-0.450974 -0.01109,-0.25168 -0.01109,-0.503305 -0.01109,-0.870358 l 0,-1.373826 c 0,-0.513745 -0.143612,-1.017186 -1.204559,-1.017186 -0.707203,0 -1.116181,0.199294 -1.326084,0.304174 0.08838,0.146827 0.154727,0.272586 0.220962,0.566212 0.276251,-0.230666 0.640997,-0.356533 1.005685,-0.356533 0.596793,0 0.596793,0.377574 0.596793,0.901893 -0.13264,-0.01055 -0.254278,-0.02107 -0.442095,-0.02107 -0.906162,0 -1.502955,0.335735 -1.502955,1.23752 z"
+               id="path3783"
+               style="fill:#000000;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               class="st1"
+               d="m 73.786047,89.912584 c 0,0.230693 0,0.471825 0.09941,0.671092 -0.154699,-0.01052 -0.243192,-0.03137 -0.530531,-0.03137 -0.176786,0 -0.265136,0.01033 -0.39769,0.03137 0.02206,-0.08392 0.033,-0.125868 0.05518,-0.241159 0.02217,-0.1468 0.03312,-0.671092 0.03312,-0.849507 l 0,-0.734107 c 0,-0.314505 0,-0.776026 -0.02206,-0.933238 -0.01106,-0.115346 -0.05529,-0.430041 -0.464126,-0.430041 -0.408948,0 -0.541559,0.283215 -0.585706,0.513961 -0.05529,0.241187 -0.05529,0.492894 -0.05529,1.489065 0,0.870385 0,0.943894 0.07735,1.185052 -0.121496,-0.01052 -0.276166,-0.03137 -0.486156,-0.03137 -0.176872,0 -0.287453,0.01033 -0.431008,0.03137 0.05529,-0.104879 0.07735,-0.16784 0.09941,-0.545332 0.01114,-0.366918 0.04415,-2.191745 -0.02206,-2.62165 -0.04415,-0.262227 -0.110581,-0.325134 -0.187901,-0.388014 0.574648,-0.03148 0.762578,-0.1154 0.939336,-0.209787 l 0,0.723559 c 0.08838,-0.209598 0.265137,-0.681639 0.972454,-0.681639 0.895133,0 0.895133,0.618868 0.906277,1.017294 l 0,2.034451 0,0 z"
+               id="path3785"
+               style="fill:#000000;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               class="st0"
+               d="m 67.464825,85.875107 -0.585678,0.555826 -0.585793,-0.555826 0.585793,-0.555827 0.585678,0.555827 z"
+               id="path3787"
+               style="fill:#d70751;fill-opacity:1"
+               inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+               inkscape:export-xdpi="64.494591"
+               inkscape:export-ydpi="64.494591"
+               inkscape:connector-curvature="0" />
+            <path
+               id="text3769"
+               d="m 63.697582,83.280325 c -4e-6,1.457025 -0.785925,2.185536 -2.357765,2.185536 -0.09898,0 -0.245478,-0.004 -0.439482,-0.01188 -0.190048,-0.0079 -0.334562,-0.01188 -0.433544,-0.01188 -0.03563,0 -0.209844,0.0079 -0.522628,0.02376 0.126697,-0.162332 0.190046,-0.821555 0.190047,-1.977672 -1e-6,-0.716631 -0.002,-1.098704 -0.0059,-1.146219 -0.01584,-0.455316 -0.06929,-0.82749 -0.160352,-1.116523 0.182127,0.03564 0.395929,0.05345 0.641407,0.05345 0.122737,4e-6 0.304865,-0.0079 0.546384,-0.02376 0.245475,-0.01979 0.429582,-0.02969 0.552323,-0.0297 0.700793,4e-6 1.207584,0.166295 1.520372,0.498872 0.312781,0.332585 0.469173,0.851253 0.469177,1.556006 m -0.700796,0.01188 c -4e-6,-1.108601 -0.502835,-1.662903 -1.508495,-1.662907 -0.150455,4e-6 -0.393952,0.0198 -0.730491,0.05939 -0.0198,0.455324 -0.0297,0.886887 -0.0297,1.294693 l 0,1.668846 c -10e-7,0.182128 0.06137,0.300907 0.184108,0.356337 0.07918,0.03563 0.221719,0.05345 0.427604,0.05345 0.582016,0 1.00764,-0.152433 1.276876,-0.4573 0.253392,-0.285068 0.380089,-0.722571 0.380093,-1.312509"
+               style="font-size:5.93895483000000013px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:700%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:LaudatioC;-inkscape-font-specification:LaudatioC Bold"
+               transform="scale(0.9429753,1.0604732)"
+               inkscape:connector-curvature="0" />
+          </g>
+        </g>
+      </g>
+      <g
+         transform="translate(-40.044329,-50.107571)"
+         style="display:none"
+         inkscape:label="Debian-text"
+         id="layer5">
+        <g
+           transform="matrix(0.04585734,0,0,0.05070038,37.456067,81.452516)"
+           id="g6679"
+           style="display:inline;enable-background:new">
+          <path
+             class="st1"
+             d="m 269.84799,136.25108 c -0.30551,0.26427 -0.30551,27.32302 -0.61339,34.41853 -0.61102,5.779 -1.22363,18.12839 -15.30407,18.12839 -14.69303,0 -18.06159,-14.44985 -19.28521,-20.49514 -1.22442,-7.09484 -1.22442,-12.87452 -1.22442,-15.23787 0,-8.14304 0.30551,-30.74068 22.65295,-30.74068 6.73314,0 10.40639,1.57807 13.46863,2.89187 l 0.30551,11.0349 z m -57.24224,19.96732 c 0,47.55389 29.38608,47.55389 33.97747,47.55389 12.2442,0 19.89702,-5.51813 23.26477,-15.50281 l 0.61182,14.97702 c 3.67327,-0.26358 7.34731,-0.52715 13.46862,-0.52715 2.14334,0 3.97955,0 5.51028,0.26357 1.52994,0 3.06147,0 4.8977,0.26358 -3.06145,-5.51746 -5.51029,-17.60395 -5.51029,-43.87537 0,-25.74766 0,-69.36082 2.44962,-82.498905 -7.04101,2.890524 -13.1631,4.729448 -26.63253,5.781037 5.51029,4.992329 5.51029,7.357048 5.51029,29.689078 -3.67403,-1.05225 -8.57174,-2.10317 -16.53007,-2.10317 -35.20268,0 -41.01768,26.27618 -41.01768,45.97923 z"
+             id="path6681"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st1"
+             d="m 319.43741,147.54753 c 0.30552,-13.92475 3.67405,-26.53703 17.44819,-26.53703 15.30564,0 16.53006,14.45189 16.22455,26.53703 l -33.67274,0 z m 53.26347,1.83892 c 0,-19.96662 -4.59138,-39.41086 -33.67353,-39.41086 -40.40588,0 -40.40588,38.36063 -40.40588,46.50434 0,34.15496 18.06001,47.81748 48.05949,47.81748 13.46861,0 19.89704,-1.83689 23.56949,-2.62829 -0.30472,-6.04189 0.91891,-9.98468 1.83703,-15.23585 -3.97798,2.36473 -9.18354,5.25117 -21.12065,5.25117 -30.61051,0 -31.2247,-24.17028 -31.2247,-32.31331 l 52.34535,0 0.6134,-9.98468 z"
+             id="path6683"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st1"
+             d="m 436.67703,156.47993 c 0,15.76367 -3.36695,37.04751 -26.01913,37.04751 -3.36695,0 -7.34573,-0.52851 -9.79456,-1.05092 -0.30551,-6.04325 -0.30551,-16.55439 -0.30551,-28.90175 0,-14.45121 1.52913,-22.06913 3.06065,-25.74766 4.28507,-12.08786 13.46862,-12.08786 15.30566,-12.08786 14.69144,0 17.75289,17.60531 17.75289,30.74068 z m -56.62963,18.39061 c 0,12.61298 0,19.70577 -2.14253,25.22254 7.95911,2.62627 18.05999,4.20365 29.99868,4.20365 7.65204,0 29.9971,0 41.93739,-21.28111 5.81737,-9.7211 7.65203,-22.85851 7.65203,-32.84115 0,-6.0446 -0.61103,-19.44423 -6.42761,-27.85085 -5.50949,-8.14302 -14.38833,-12.08514 -23.87658,-12.08514 -18.97813,0 -24.48843,13.39963 -27.24357,20.49176 0,-8.67018 0,-38.883042 1.83705,-54.120226 -12.85682,4.990977 -20.81516,5.778993 -29.38611,6.567679 7.65204,2.627622 7.65204,13.924749 7.65204,50.181527 l 0,41.51132 -7.9e-4,0 z"
+             id="path35079"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st1"
+             d="m 495.45079,203.2465 c -3.98035,-0.52715 -6.7355,-0.78598 -12.55209,-0.78598 -6.12052,0 -10.40638,0.25883 -14.99696,0.78598 1.83543,-3.15342 2.75433,-4.7274 3.36694,-15.76298 0.61182,-14.97702 0.91655,-55.17521 -0.30787,-63.84541 -1.22364,-6.30614 -2.75356,-7.35636 -5.50871,-8.93172 15.91825,-1.31449 20.50884,-2.36405 28.16087,-5.51745 -1.83543,7.35638 -1.83543,11.29847 -1.83543,22.59492 -0.3071,58.32727 -0.61182,64.63139 3.67325,71.46264 z"
+             id="path6687"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st1"
+             d="m 558.50803,155.42903 c -0.30393,10.50979 -0.61102,18.12839 -3.97718,23.90942 -3.98116,7.61723 -11.02216,9.72108 -16.22377,9.72108 -11.6324,0 -14.08361,-8.4066 -14.08361,-16.55236 0,-16.02724 16.53166,-17.07814 23.87817,-17.07814 l 10.40639,0 0,0 z m -54.18158,20.756 c 0,10.5091 3.67404,21.28316 14.69541,25.74834 5.20083,1.83892 10.09931,1.83892 11.63001,1.83892 18.0608,0 24.1821,-11.29645 27.85538,-18.39128 -0.30393,7.35639 0,11.8236 0.6118,17.86549 3.67485,-0.26358 7.04102,-0.52715 13.16391,-0.52715 3.06223,0 6.42918,0.26357 9.79457,0.52715 -2.14255,-2.89119 -3.36539,-4.46654 -3.97798,-11.29849 -0.30709,-6.30546 -0.30709,-12.60956 -0.30709,-21.80555 l 0,-34.4192 c 0,-12.87112 -3.97797,-25.48409 -33.36566,-25.48409 -19.58913,0 -30.9176,4.99302 -36.73181,7.62063 2.44805,3.67854 4.28586,6.82923 6.12052,14.1856 7.65203,-5.77898 17.75528,-8.9324 27.85695,-8.9324 16.53086,0 16.53086,9.45957 16.53086,22.59561 -3.67406,-0.26425 -7.04338,-0.52784 -12.2458,-0.52784 -25.10021,0 -41.63107,8.41136 -41.63107,31.00426 z"
+             id="path6689"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st1"
+             d="m 672.07677,186.43327 c 0,5.77968 0,11.82089 2.75357,16.81323 -4.28508,-0.26358 -6.7363,-0.78598 -14.69543,-0.78598 -4.89688,0 -7.34414,0.25883 -11.01582,0.78598 0.61102,-2.1025 0.91416,-3.15342 1.52835,-6.04189 0.61418,-3.67785 0.91732,-16.81322 0.91732,-21.28315 l 0,-18.39198 c 0,-7.87945 0,-19.44218 -0.61101,-23.3809 -0.30631,-2.88983 -1.53153,-10.77404 -12.85604,-10.77404 -11.32765,0 -15.00091,7.09552 -16.22375,12.87654 -1.53151,6.04258 -1.53151,12.34873 -1.53151,37.30634 0,21.80621 0,23.64788 2.14253,29.68975 -3.36537,-0.26357 -7.64965,-0.78596 -13.46625,-0.78596 -4.89926,0 -7.96229,0.25882 -11.93869,0.78596 1.53151,-2.62761 2.14254,-4.205 2.75357,-13.66251 0.30866,-9.1926 1.22283,-54.91096 -0.61103,-65.68161 -1.22284,-6.56971 -3.06303,-8.14574 -5.20476,-9.7211 15.91745,-0.78869 21.12302,-2.89119 26.01911,-5.25591 l 0,18.1277 c 2.44805,-5.25116 7.34415,-17.07747 26.93645,-17.07747 24.79472,0 24.79472,15.50484 25.10339,25.48681 l 0,50.97019 0,0 z"
+             id="path6691"
+             style="fill:#000000"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+          <path
+             class="st0"
+             d="M 496.9823,85.280203 480.75933,99.205621 464.53319,85.280203 480.75933,71.354772 496.9823,85.280203 z"
+             id="path6693"
+             style="fill:#d70751;fill-opacity:1"
+             inkscape:export-filename="/home/alrferreira/Desktop/debian-gnu-banner.png"
+             inkscape:export-xdpi="64.494591"
+             inkscape:export-ydpi="64.494591"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
index f9db54f3e5174d083f1a21137fc5b74cc6287a9c..26f8cb8a72887b7bf7eeece1ea9778361135f155 100644 (file)
@@ -7,7 +7,7 @@ buildplace="${cowbuilderroot}/build"
 
 # all currently supported dists
 allnddists="nd+debian-squeeze nd+debian-wheezy nd+debian-jessie nd+debian-sid \
-            nd+ubuntu-lucid nd+ubuntu-precise nd+ubuntu-quantal nd+ubuntu-raring nd+ubuntu-saucy nd+ubuntu-trusty"
+            nd+ubuntu-lucid nd+ubuntu-precise nd+ubuntu-saucy nd+ubuntu-trusty nd+ubuntu-utopic"
 alldists="$allnddists debian-squeeze debian-wheezy debian-jessie debian-sid"
 
 # default is debian
index 66496b0846bfd3b893b59f5f9e10d198781e3868..0e69205d89c095be4ce0f401403317fdf6adb469 100644 (file)
@@ -4,3 +4,50 @@
   would need to assure that mvpa2-tutorial is aware of ipython1x first
   then... not now
 * make all nd_* scripts usable out of the box on non-x86 boxes
+* TODO testing of neurodebian "installer" packages
+** notes from manual attempts in a docker:
+
+*** just dpkg -i way
+rm neurodebian-*deb; apt-get update -y; apt-get install -y netselect python-minimal wget; wget http://www.onerussian.com/tmp/neurodebian-{repository,keyring}_0.33~a1_all.deb; DEBIAN_FRONTEND=noninteractive dpkg -i neurodebian-{keyring,repository}_0.33~a1_all.deb
+
+*** via apt
+
+#/bin/bash
+set -ex
+
+# minimal installation with few of those packages
+apt_file=/etc/apt/sources.list.d/local.list
+
+# clean up from a previous test
+dpkg --purge neurodebian neurodebian-keyring || :
+echo PURGE | debconf-communicate neurodebian || :
+rm -rf /tmp/apt $apt_file;
+
+mkdir -p /tmp/apt; cd /tmp/apt;
+rm -f neurodebian-*deb; apt-get update -y; apt-get install -y wget;
+wget http://www.onerussian.com/tmp/neurodebian_0.33~a1_all.deb;
+wget http://www.onerussian.com/tmp/neurodebian-keyring_0.33~a1_all.deb;
+
+# generate APT repo
+apt-get install -y dpkg-dev ;  dpkg-scanpackages  . /dev/null > Packages
+# Add it to the list of available
+echo "deb file:///tmp/apt ./" >| $apt_file; apt-get update
+# Install the beast
+apt-get install -y --allow-unauthenticated neurodebian
+
+# Verify that it has correct entries
+release=$(grep -v '^[\s#]*$' /etc/apt/sources.list | head -1 | awk '{print $3;}')
+grep -E "^deb\s+http.* $release main\s*\$" /etc/apt/sources.list.d/neurodebian.sources.list
+grep -E '^deb\s+http.* data main\s*$' /etc/apt/sources.list.d/neurodebian.sources.list
+# May be even retrospect stored debconf configuration
+apt-get install debconf-utils
+debconf-get-selections | grep neurodebian/release.*select.*auto
+# And apt-get must be working
+apt-get update
+# Make sure it is active
+apt-cache policy | grep o=NeuroDebian,.*,n=data
+apt-cache policy | grep o=NeuroDebian,.*,n=$release
+
+echo "I: success"
+
+*** ~/bin/docker-debians-run /bin/bash -c "apt-get -y update >/dev/null; apt-get install -y wget >/dev/null; bash <(wget -q --no-check-certificate -O- https://raw.githubusercontent.com/yarikoptic/neurodebian/enh/neurodebian-installer/tools/nd-configurerepo) --overwrite --install --mirror=us-nh" 
index 2f339f63beebc0f2b9edbe7cac94c61830d205b5..a083080345807c7520b219153edc618a309d3edb 100644 (file)
@@ -1,3 +1,17 @@
+neurodebian (0.33) unstable; urgency=medium
+
+  * Initial upload to Debian proper (Closes: #757279)
+  * Support popularity-contest >= 1.61 encrypting submissions:
+    - provide GPG public key for encryption of submissions
+  * Updated list of currently supported Ubuntu releases
+  * New features:
+    - neurodebian and neurodebian packages to provide 1-click
+      NeuroDebian deployment on Debian/Ubuntu boxesw
+  * Breakage of "compatibility":
+    - do not install sphinx sources
+
+ -- Yaroslav Halchenko <debian@onerussian.com>  Fri, 08 Aug 2014 16:29:40 -0400
+
 neurodebian (0.32) neurodebian; urgency=low
 
   [ Michael Hanke ]
index 0517d5d46ec757914805e3bf7a55f440e76036f2..e3385ac152e7ba2c62529f59dd1140e9bb51e9b8 100644 (file)
@@ -3,12 +3,26 @@ Section: science
 Priority: optional
 Maintainer: NeuroDebian Team <team@neuro.debian.net>
 Uploaders: Michael Hanke <mih@debian.org>, Yaroslav Halchenko <debian@onerussian.com>
-Build-Depends: debhelper (>= 7.0.50~), xcftools, help2man, inkscape, imagemagick, python-html5lib
-Standards-Version: 3.9.2
+Build-Depends: debhelper (>= 7.0.50~), xcftools, help2man, inkscape, imagemagick, python-html5lib, po-debconf
+Standards-Version: 3.9.5
 Homepage: http://neuro.debian.net
 Vcs-Browser: http://git.debian.org/?p=pkg-exppsy/neurodebian.git
 Vcs-Git: git://git.debian.org/git/pkg-exppsy/neurodebian.git
-XS-DM-Upload-Allowed: yes
+
+Package: neurodebian
+Architecture: all
+Pre-depends: python, wget
+Depends: neurodebian-keyring, ${misc:Depends}
+Recommends: netselect
+Suggests: neurodebian-desktop, neurodebian-popularity-contest
+Description: turnkey platform for the neuroscience
+ The NeuroDebian project integrates and maintain a variety of
+ neuroscience-oriented (such as AFNI, FSL, PsychoPy, etc.) and many
+ generic computational (such as condor, pandas, etc.) software projects
+ within Debian.
+ .
+ This package enables NeuroDebian repository on top of the stock
+ Debian or Ubuntu system.
 
 
 Package: neurodebian-dev
index 186258b6112f8938fd414eedc1b90f078fe0dbba..e9f10fbda3997139c66634889732c75868076352 100644 (file)
@@ -3,16 +3,38 @@ Upstream-Name: NeuroDebian
 Upstream-Contact: NeuroDebian team <team@neuro.debian.net>
 Source-Location: http://git.debian.org/?p=pkg-exppsy/neurodebian.git
 
-
 Files: *
-Copyright: 2009-2014 NeuroDebian Team
+Copyright: 2009-2014 NeuroDebian Team (Yaroslav Halchenko, Michael Hanke, et al.)
 License: GPL-3+
- On Debian systems the full text of the GNU General Public License can be found
- in the `/usr/share/common-licenses/GPL-3' file.
 
 Files: artwork/openlogo*.svg
 Copyright: 1999 Software in the Public Interest
-License: MIT
+License: Expat
+
+Files: sphinx/sphinxext/quote.py
+Copyright: 2010, Yaroslav O. Halchenko
+           2007-2010, Sphinx team
+License: BSD-2
+
+
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 3 can be found in `/usr/share/common-licenses/GPL-3'.
+
+License: Expat
  Permission is hereby granted, free of charge, to any person obtaining
  a copy of this software and associated documentation files (the
  "Software"), to deal in the Software without restriction, including
@@ -32,3 +54,30 @@ License: MIT
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
+
+License: BSD-2
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/debian/neurodebian-desktop.lintian-overrides b/debian/neurodebian-desktop.lintian-overrides
new file mode 100644 (file)
index 0000000..4e09e3f
--- /dev/null
@@ -0,0 +1,7 @@
+# Those .desktop files on purpose do not include main category for
+# them all to appear only under a non-standard additional NeuroDebian
+# submenu
+neurodebian-desktop: desktop-entry-lacks-main-category usr/share/applications/neurodebian-*.desktop
+
+# .desktop entries to fire up a browser pointing to a webpage (e.g. documentation)
+neurodebian-desktop: desktop-command-not-in-package usr/share/applications/neurodebian-*.desktop x-www-browser
index 06ff84cc13d3914b837b4dcea52243aab45b8a7a..0e6ca74fee19866bb5368853922710585b9cdb77 100644 (file)
@@ -1 +1 @@
-build/man/nd-*
+build/man/nd-autoinstall.1
index c2890c45cc91cd5eee150d136328afc8c844c9e2..883651242e6b2f409af1123553ab2049c001cdcf 100644 (file)
@@ -3,4 +3,3 @@ tools/nd_* usr/bin/
 neurodebian.cfg /etc/neurodebian/
 cmdsettings.sh /etc/neurodebian/
 pkgs usr/share/neurodebian/
-sphinx usr/share/neurodebian/
diff --git a/debian/neurodebian-dev.lintian-overrides b/debian/neurodebian-dev.lintian-overrides
new file mode 100644 (file)
index 0000000..1e59969
--- /dev/null
@@ -0,0 +1,2 @@
+# we do not provide manpages for the devel scripts yet
+neurodebian-dev binary: binary-without-manpage usr/bin/nd_*
diff --git a/debian/neurodebian-guest-additions.dirs b/debian/neurodebian-guest-additions.dirs
deleted file mode 100644 (file)
index 1b603c3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/mnt/host
diff --git a/debian/neurodebian-guest-additions.lintian-overrides b/debian/neurodebian-guest-additions.lintian-overrides
new file mode 100644 (file)
index 0000000..ea29a78
--- /dev/null
@@ -0,0 +1,6 @@
+# No manpage yet
+neurodebian-guest-additions: binary-without-manpage usr/bin/nd-vmsetupwizard
+
+# Similarly to the case of .desktop files in -desktop package
+# lack of main category is intentional
+neurodebian-guest-additions: desktop-entry-lacks-main-category usr/share/applications/neurodebianguest-vmsetupwizard.desktop
diff --git a/debian/neurodebian-popularity-contest.dirs b/debian/neurodebian-popularity-contest.dirs
new file mode 100644 (file)
index 0000000..ff41a38
--- /dev/null
@@ -0,0 +1,2 @@
+usr/share/popularity-contest
+etc/popularity-contest.d
diff --git a/debian/neurodebian-popularity-contest.install b/debian/neurodebian-popularity-contest.install
new file mode 100644 (file)
index 0000000..88ddd33
--- /dev/null
@@ -0,0 +1,2 @@
+popcon/neurodebian.conf /etc/popularity-contest.d
+popcon/neurodebian-popcon.gpg /usr/share/popularity-contest
index 3bb1437090d96622a741aa615d0fc40ca9a0f283..fb003d5226173167bc58a3de22a2789ceeeb9739 100755 (executable)
@@ -1,8 +1,25 @@
 #!/bin/bash -e
 
+# following to be duplicated within postrm as well, but may be with
+# "Removing" message
 popcon_conf=/etc/popularity-contest.conf
-if [ "$1" = "configure" -o "$1" = "abort-upgrade" ]; then
+nd_popcon_conf=/etc/popularity-contest.d/neurodebian.conf
+remove_neurodebian_popcon_pre161() {
        # Adjust popularity-contest.conf
+       if [ -e "$popcon_conf" ] \
+          && grep -q "http://neuro.debian.net/cgi-bin/popcon-submit.cgi" $popcon_conf; then
+               #echo "Removing NeuroDebian url for Popularity Contest submissions."
+               # First remove any explicit mentioning and then empty additions
+               sed -i -e 's,http://neuro.debian.net/cgi-bin/popcon-submit.cgi,,g' \
+                          -e '/SUBMITURLS+=" *"/d' \
+                          -e '/SUBMITURLS="$SUBMITURLS *"/d' \
+                       "$popcon_conf"
+       fi
+}
+
+add_neurodebian_popcon_pre161() {
+       # Adjust main popularity-contest configuration file.  Should be
+       # used only with older versions of the popularity contest.
        if [ -e "$popcon_conf" ]; then
                # Fix dashism missing += operator
                if grep -q 'SUBMITURLS+="' "$popcon_conf"; then
@@ -14,6 +31,26 @@ if [ "$1" = "configure" -o "$1" = "abort-upgrade" ]; then
                        echo -e 'SUBMITURLS="$SUBMITURLS http://neuro.debian.net/cgi-bin/popcon-submit.cgi"' >> "$popcon_conf"
                fi
        fi
+}
+
+add_neurodebian_popcon_161() {
+       # 1.60 introduced encryption and a way to provide multiple keys to
+       # encrypt submissions to multiple servers.
+
+       # "Installation" is taken care of through installing files under
+       # /etc/popularity-contest.d, so no additional actions necessary here
+       :
+}
+
+popcon_version=$(dpkg -l popularity-contest | tail -n 1 | awk '{print $3;}')
+
+if [ "$1" = "configure" -o "$1" = "abort-upgrade" ]; then
+       if dpkg --compare-versions $popcon_version lt 1.61; then
+               add_neurodebian_popcon_pre161
+       else
+               # Assure that we have no "old" settings for submission
+               remove_neurodebian_popcon_pre161 || :
+       fi
 fi
 
 #DEBHELPER#
index 6615555b99f81749e61ae8bc544a63d76919a093..92bb35d88fc615bd3278a147dd77320a0d7ed88b 100755 (executable)
@@ -2,11 +2,12 @@
 
 #DEBHELPER#
 
-# If requested to be purged -- remove our entry
 popcon_conf=/etc/popularity-contest.conf
-if [ "$1" = "purge" ]; then
+nd_popcon_conf=/etc/popularity-contest.d/neurodebian.conf
+remove_neurodebian_popcon_pre161() {
        # Adjust popularity-contest.conf
-       if [ -e "$popcon_conf" ]; then
+       if [ -e "$popcon_conf" ] \
+          && grep -q "http://neuro.debian.net/cgi-bin/popcon-submit.cgi" $popcon_conf; then
                echo "Removing NeuroDebian url for Popularity Contest submissions."
                # First remove any explicit mentioning and then empty additions
                sed -i -e 's,http://neuro.debian.net/cgi-bin/popcon-submit.cgi,,g' \
@@ -14,4 +15,9 @@ if [ "$1" = "purge" ]; then
                           -e '/SUBMITURLS="$SUBMITURLS *"/d' \
                        "$popcon_conf"
        fi
+}
+
+# If requested to be purged -- remove our entry
+if [ "$1" = "purge" ]; then
+       remove_neurodebian_popcon_pre161
 fi
diff --git a/debian/neurodebian.config b/debian/neurodebian.config
new file mode 100755 (executable)
index 0000000..ea6f628
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/bash
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_capb backup # allow to go back, for that we implement that STATE loop
+
+debug()
+{
+    [ "${DEBCONF_DEBUG:-}" != "developer" ] || echo -e "D: $*" >&2
+}
+
+db_settitle neurodebian/title
+
+if [ "$1" = "configure" ]; then
+    # Must have been called in preinst state, so no nd-configurerepo
+    # tool is yet installed, thus delay asking questions to
+    # whenever will be called in postinst state
+    which nd-configurerepo 1>/dev/null 2>&1 || exit 0
+fi
+
+# Create temporary directory which will be reused
+export ND_AE_TEMPDIR=$(mktemp -d)
+trap "rm -rf \"$ND_AE_TEMPDIR\"" TERM INT EXIT
+
+neurodebian_releases="auto"
+
+# This implements a simple state machine so the back button can be handled.
+# taken from debconf demo example
+STATE=1
+while [ "$STATE" != 0 -a "$STATE" != 8 ]; do
+    case $STATE in
+        1)
+                       neurodebian_releases="$(ND_IFS=', ' nd-configurerepo --print-releases)"
+                       debian_release="$(ND_IFS=', ' nd-configurerepo --print-release)"
+                       if [ -z "$debian_release" ]; then # just a failover
+                               debian_release="sid"
+                       fi
+                       debug "releases: $neurodebian_releases"
+                       db_subst neurodebian/release releases "$neurodebian_releases"
+                       db_subst neurodebian/release release  "$debian_release"
+                       db_input medium neurodebian/release || true
+                       ;;
+        2)
+                       neurodebian_mirrors="$(ND_IFS=', ' nd-configurerepo --print-mirrors)"
+                       debug "mirrors: $neurodebian_mirrors"
+                       db_subst neurodebian/mirror mirrors "$neurodebian_mirrors"
+                       db_input medium neurodebian/mirror || true
+                       mirror_selection_ret="$RET"
+                       debug "mirror select return: <$mirror_selection_ret>"
+                       ;;
+        3)  neurodebian_flavor="$(ND_IFS=', ' nd-configurerepo --print-flavor)"
+                       db_subst neurodebian/flavor flavor "$neurodebian_flavor"
+                       db_input medium neurodebian/flavor || true ;;
+        4)  db_input medium neurodebian/components || true ;;
+        5)  db_input low neurodebian/overwrite || true ;;
+        6)  db_input low neurodebian/suffix || true ;;
+        7)  db_input medium neurodebian/run-update-note || true ;;
+    esac
+
+    if db_go; then
+# Ubuntus managed to remove netselect "to accompany apt-netselect"
+# https://bugs.launchpad.net/ubuntu/+source/netselect/+bug/337377
+# So for now remove this mandatory demanding of netselect for "best", and
+# rely on logic in nd-configurerepo to select default mirror (currently origin)
+# as the 'best'
+#
+#              case $STATE in
+#                      2)
+#                              db_metaget neurodebian/mirror value
+#                              selected_mirror="$RET"
+#                              # TODOs:
+#                              # - handle custom
+#                              # - separate out alias from url
+#                              debug "selected mirror: $selected_mirror"
+#                              if [ "$selected_mirror" = "best" ] && ! which netselect &>/dev/null; then
+#                                      if [ "$mirror_selection_ret" = "30 question skipped" ]; then
+#                                              # if the question was not even shown, we would
+#                                              # not get a chance to specify mirror, thus
+#                                              # better just fail altogether and demand intervention
+#                                              db_input high neurodebian/netselect-cannot-be-used
+#                                              exit 1
+#                                      else
+#                                              db_input high neurodebian/netselect-not-found
+#                                              continue;
+#                                      fi
+#                              fi
+#              esac
+        STATE=$(($STATE + 1))
+    else
+        STATE=$(($STATE - 1))
+    fi
+done
+
+db_stop
+
diff --git a/debian/neurodebian.install b/debian/neurodebian.install
new file mode 100644 (file)
index 0000000..93aa380
--- /dev/null
@@ -0,0 +1 @@
+tools/nd-configurerepo usr/bin
diff --git a/debian/neurodebian.manpages b/debian/neurodebian.manpages
new file mode 100644 (file)
index 0000000..efcc365
--- /dev/null
@@ -0,0 +1 @@
+build/man/nd-configurerepo.1
diff --git a/debian/neurodebian.postinst b/debian/neurodebian.postinst
new file mode 100755 (executable)
index 0000000..97cbc86
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+
+case "$1" in
+    configure)
+               # obtain all the options and call nd-configurerepo
+               opts="--do-not-update"
+               db_get neurodebian/release; [ "$RET" = "auto" ] || opts+=" -r '$RET'"
+               db_get neurodebian/mirror;  nd_mirror="${RET##* }" # get just a url if it came together with alias
+               db_get neurodebian/flavor;  nd_flavor="$RET"
+               db_get neurodebian/components; nd_components="${RET// /}"
+
+               db_get neurodebian/overwrite;  [ "$RET" = "true" ] && opts+=" --overwrite" || :
+               db_get neurodebian/suffix;     [ "$RET" = "" ]     || opts+=" --suffix='$RET'" || :
+
+               eval nd-configurerepo -m "$nd_mirror" -c "$nd_components" $opts
+    ;;
+    abort-upgrade|abort-remove|abort-deconfigure)
+        # nothing to do
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/neurodebian.postrm b/debian/neurodebian.postrm
new file mode 100755 (executable)
index 0000000..902c3f4
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+set -e
+
+case "$1" in
+    purge)
+               rm -f /etc/apt/sources.list.d/neurodebian.sources*.list
+    ;;
+
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/neurodebian.templates b/debian/neurodebian.templates
new file mode 100644 (file)
index 0000000..03d814b
--- /dev/null
@@ -0,0 +1,106 @@
+Template: neurodebian/title
+Type: title
+_Description: NeuroDebian APT repository installer
+
+
+Template: neurodebian/release
+Type: select
+Choices: auto, ${releases}
+Default: auto
+_Description: Release name of the base system:
+ Specify for which Debian or Ubuntu release (e.g. wheezy or trusty).
+ .
+ If 'auto', Debian or Ubuntu release name will be '${release}' as
+ deduced from the output of apt-cache policy.  If the release of your
+ system is not '${release}' -- please choose specific one which
+ matches best.
+
+
+Template: neurodebian/mirror
+Type: select
+Choices: origin, best, custom, ${mirrors}
+Default: best
+_Description: NeuroDebian mirror to use:
+ NeuroDebian project has a number of community-maintainer mirrors
+ around the globe.
+ .
+ If you do not know which mirror URL to choose, select among
+ .
+  - origin: original NeuroDebian repository
+  - best: will try to use netselect to select "closest" mirror.
+    Depending on the configuration of the firewall, and actual mirror
+    setup, might fail to select actually closest one.  If netselect
+    is not available, default mirror (possibly 'origin') will be used.
+
+
+Template: neurodebian/flavor
+Type: select
+Choices: auto, libre, full
+Default: auto
+_Description: NeuroDebian flavor to use:
+ NeuroDebian project adheres to Debian Free Software Guidelines and
+ has three areas of the archive in all suites/releases:
+ .
+  libre
+    only the DFSG-compliant materials
+  full
+    all three areas (main, contrib, non-free)
+  auto
+    according to output of apt-cache policy '${flavor}' will be used.
+    If that is not the flavor you need, select manually another one.
+
+Template: neurodebian/components
+Type: multiselect
+Choices: software, data, devel
+Default: software, data
+_Description: NeuroDebian repository components to enable:
+ NeuroDebian repository provides
+ .
+  software
+   Packages containing software packages, often backports of stable
+   software releases for previous Debian/Ubuntu releases
+  devel
+   Additional "bleeding edge" software packages, which might not be a
+   good fit for being enabled by default. (Similar to Debian
+   experimental)
+  data
+   Packages containing data (e.g. atlases, sample datasets), often
+   required by software packages.  Should generally be enabled.
+
+
+Template: neurodebian/overwrite
+Type: boolean
+Default: true
+_Description: Should existing NeuroDebian APT file be overridden?
+ If not allowed, configuration would fail if there is
+ an existing apt configuration file for the NeuroDebian.
+
+Template: neurodebian/suffix
+Type: string
+Default:
+_Description: Additional suffix for the NeuroDebian APT file name:
+ For instance if you would like to enable additional repository
+ (e.g. NeuroDebian devel) or release, without interfering with the
+ main/default configuration file.  Generally should be left empty.
+
+Template: neurodebian/run-update-note
+Type: note
+_Description: APT list of packages needs to be updated
+ For the installed NeuroDebian APT configuration to take an effect,
+ list of packages needs to be updated.  This needs to be done
+ "manually" (e.g., via apt-get update) upon completion of installation
+ of the neurodebian package.
+
+Template: neurodebian/netselect-not-found
+Type: error
+_Description: netselect tool was not found!
+ Please install netselect tool first (apt-get install netselect) or
+ choose a specific mirror.
+
+Template: neurodebian/netselect-cannot-be-used
+Type: error
+_Description: netselect tool was not found (no other mirror)!
+ Please install netselect tool first (apt-get install netselect)
+ before installing/configuring this package, or run with a lower
+ DEBIAN_PRIORITY to choose a specific mirror.
+
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644 (file)
index 0000000..8626e85
--- /dev/null
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] neurodebian.templates
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644 (file)
index 0000000..9de6170
--- /dev/null
@@ -0,0 +1,204 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neurodebian\n"
+"Report-Msgid-Bugs-To: neurodebian@packages.debian.org\n"
+"POT-Creation-Date: 2014-08-08 15:23-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: title
+#. Description
+#: ../neurodebian.templates:1001
+msgid "NeuroDebian APT repository installer"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:2001
+msgid "Release name of the base system:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:2001
+msgid "Specify for which Debian or Ubuntu release (e.g. wheezy or trusty)."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:2001
+msgid ""
+"If 'auto', Debian or Ubuntu release name will be '${release}' as deduced "
+"from the output of apt-cache policy.  If the release of your system is not "
+"'${release}' -- please choose specific one which matches best."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:3001
+msgid "NeuroDebian mirror to use:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:3001
+msgid ""
+"NeuroDebian project has a number of community-maintainer mirrors around the "
+"globe."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:3001
+msgid "If you do not know which mirror URL to choose, select among"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:3001
+msgid ""
+" - origin: original NeuroDebian repository\n"
+" - best: will try to use netselect to select \"closest\" mirror.\n"
+"   Depending on the configuration of the firewall, and actual mirror\n"
+"   setup, might fail to select actually closest one.  If netselect\n"
+"   is not available, default mirror (possibly 'origin') will be used."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:4001
+msgid "NeuroDebian flavor to use:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:4001
+msgid ""
+"NeuroDebian project adheres to Debian Free Software Guidelines and has three "
+"areas of the archive in all suites/releases:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../neurodebian.templates:4001
+msgid ""
+" libre\n"
+"   only the DFSG-compliant materials\n"
+" full\n"
+"   all three areas (main, contrib, non-free)\n"
+" auto\n"
+"   according to output of apt-cache policy '${flavor}' will be used.\n"
+"   If that is not the flavor you need, select manually another one."
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../neurodebian.templates:5001
+msgid "NeuroDebian repository components to enable:"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../neurodebian.templates:5001
+msgid "NeuroDebian repository provides"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../neurodebian.templates:5001
+msgid ""
+" software\n"
+"  Packages containing software packages, often backports of stable\n"
+"  software releases for previous Debian/Ubuntu releases\n"
+" devel\n"
+"  Additional \"bleeding edge\" software packages, which might not be a\n"
+"  good fit for being enabled by default. (Similar to Debian\n"
+"  experimental)\n"
+" data\n"
+"  Packages containing data (e.g. atlases, sample datasets), often\n"
+"  required by software packages.  Should generally be enabled."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../neurodebian.templates:6001
+msgid "Should existing NeuroDebian APT file be overridden?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../neurodebian.templates:6001
+msgid ""
+"If not allowed, configuration would fail if there is an existing apt "
+"configuration file for the NeuroDebian."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../neurodebian.templates:7001
+msgid "Additional suffix for the NeuroDebian APT file name:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../neurodebian.templates:7001
+msgid ""
+"For instance if you would like to enable additional repository (e.g. "
+"NeuroDebian devel) or release, without interfering with the main/default "
+"configuration file.  Generally should be left empty."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../neurodebian.templates:8001
+msgid "APT list of packages needs to be updated."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../neurodebian.templates:8001
+msgid ""
+"For the installed NeuroDebian APT configuration to take an effect, list of "
+"packages needs to be updated.  This needs to be done \"manually\" (e.g., via "
+"apt-get update) upon completion of installation of the neurodebian package."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../neurodebian.templates:9001
+msgid "netselect tool was not found!"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../neurodebian.templates:9001
+msgid ""
+"Please install netselect tool first (apt-get install netselect) or choose a "
+"specific mirror."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../neurodebian.templates:10001
+msgid "netselect tool was not found (no other mirror)!"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../neurodebian.templates:10001
+msgid ""
+"Please install netselect tool first (apt-get install netselect) before "
+"installing/configuring this package, or run with a lower DEBIAN_PRIORITY to "
+"choose a specific mirror."
+msgstr ""
index c24da78693a6351c23c08f9b06a38b239d518d2a..3a3d80af9081ad8ed47aadddcedaa4f0a096b572 100755 (executable)
@@ -27,11 +27,14 @@ override_dh_auto_build::
                -n "backport Debian source packages" > build/man/backport-dsc.1
        help2man --no-info tools/nd-autoinstall \
                -n "install (if necessary) and run an application" > build/man/nd-autoinstall.1
+       help2man --no-info tools/nd-configurerepo \
+               -n "configure APT to use NeuroDebian repository" > build/man/nd-configurerepo.1
 
 override_dh_auto_install::
 
 override_dh_auto_test::
 
 override_dh_clean:
+       debconf-updatepo
        dh_clean
        $(MAKE) -C artwork clean
diff --git a/etc/xdg/autostart/vboxhost-mount.desktop b/etc/xdg/autostart/vboxhost-mount.desktop
deleted file mode 100644 (file)
index b508c46..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-[Desktop Entry]
-Name=VirtualBox shared folder
-Comment=Mount the shared folder of the VirtualBox host
-Exec=sh -c 'sudo mount.vboxsf -o uid=$(id -u),gid=$(id -g) host /mnt/host'
-Terminal=false
-Type=Application
index a053a9397968e2331dc509d2fb69c5fcc723c612..ff6198045efc2e10989c6f765197ceec63e2230a 100644 (file)
@@ -1,5 +1,10 @@
 [mirrors]
 au = http://mirror.aarnet.edu.au/pub/neurodebian
+cn-bj1 = http://mirrors.tuna.tsinghua.edu.cn/neurodebian
+cn-bj2 = http://debian.ustc.edu.cn/neurodebian
+# cn-ln = http://mirrors.neusoft.edu.cn/neurodebian
+cn-lz = http://mirror.lzu.edu.cn/neurodebian
+cn-zj = http://mirrors.zju.edu.cn/neurodebian
 de-m = http://neurodebian.g-node.org
 de-md = http://neurodebian.ovgu.de/debian
 de-v = http://nd.zetatech.org
@@ -13,6 +18,11 @@ us-tn = http://masi.vuse.vanderbilt.edu/neurodebian
 
 [mirror names]
 au = Australia (AARNET)
+cn-bj1 = China (Tsinghua University)
+cn-bj2 = China (University of Science and Technology)
+# cn-ln = China (Neusoft University of Information)
+cn-lz = China (Lanzhou University)
+cn-zj = China (Zhejiang University)
 de-m = Germany (G-Node, LMU Munich)
 de-md = Germany (University of Magdeburg)
 de-v = Germany (Nikolaus Valentin Haenel, Vogtland)
@@ -55,13 +65,17 @@ lucid = http://neuro.debian.net/debian/dists/lucid/Release
 # EOL: April 2017 (LTS)
 precise = http://neuro.debian.net/debian/dists/precise/Release
 # EOL: Apr 2014
-quantal = http://neuro.debian.net/debian/dists/quantal/Release
+#EOL quantal = http://neuro.debian.net/debian/dists/quantal/Release
 # EOL: Jan 2014
 raring = http://neuro.debian.net/debian/dists/raring/Release
 # EOL: July 2014
-saucy = http://neuro.debian.net/debian/dists/saucy/Release
-# EOL: ???
+#EOL saucy = http://neuro.debian.net/debian/dists/saucy/Release
+# EOL: Apr 2019
 trusty = http://neuro.debian.net/debian/dists/trusty/Release
+# EOL: Jul 2015
+utopic = http://neuro.debian.net/debian/dists/utopic/Release
+# EOL: Jul 2015
+#vivid = http://neuro.debian.net/debian/dists/vivid/Release
 # EOL: May 2014
 squeeze = http://neuro.debian.net/debian/dists/squeeze/Release
 wheezy = http://neuro.debian.net/debian/dists/wheezy/Release
@@ -73,13 +87,13 @@ debian = http://amd64-geomirror.debian.net/debian
 ubuntu = http://de.archive.ubuntu.com/ubuntu
 
 [task files]
-datasets = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/datasets
-distributedcomputing = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/distributedcomputing
-education = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/education
-electrophysiology = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/electrophysiology
-mri = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/mri
-neuralmodeling = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/neuralmodeling
-psychophysics = http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian-blend.git;a=blob_plain;f=tasks/psychophysics
+datasets = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/datasets
+distributedcomputing = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/distributedcomputing
+education = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/education
+electrophysiology = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/electrophysiology
+mri = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/mri
+neuralmodeling = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/neuralmodeling
+psychophysics = http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian-blend.git/plain/tasks/psychophysics
 
 [release names]
 # Map code names to release names and description
@@ -102,6 +116,8 @@ quantal = Ubuntu 12.10 "Quantal Quetzal" (quantal)
 raring = Ubuntu 13.04 "Raring Ringtail" (raring)
 saucy = Ubuntu 13.10 "Saucy Salamander" (saucy)
 trusty = Ubuntu 14.04 "Trusty Tahr" (trusty)
+utopic = Ubuntu 14.10 "Utopic Unicorn" (utopic)
+#vivid = Ubuntu 15.04 "Vivid Vervet" (vivid)
 
 [metadata]
 # base url: <url>/<src_pkg-name>/<file>
@@ -122,7 +138,7 @@ source extracts filenames = upstream README.Debian copyright
 # is a tuple of a build family ID and a release name joined by a dash, e.g.
 # debian-sid
 environments = nd+debian-sid nd+debian-jessie nd+debian-wheezy nd+debian-squeeze
-  nd+ubuntu-raring nd+ubuntu-quantal nd+ubuntu-precise nd+ubuntu-lucid
+               nd+ubuntu-lucid nd+ubuntu-precise nd+ubuntu-raring nd+ubuntu-saucy nd+ubuntu-trusty nd+ubuntu-utopic
 # what command to use for package building: pbuilder or cowbuilder
 builder = pbuilder
 
@@ -212,3 +228,5 @@ quantal = nd12.10
 raring = nd13.04
 saucy = nd13.10
 trusty = nd14.04
+utopic = nd14.10
+#vivid = nd15.04
diff --git a/popcon/neurodebian-popcon.gpg b/popcon/neurodebian-popcon.gpg
new file mode 100644 (file)
index 0000000..d5e8c9b
Binary files /dev/null and b/popcon/neurodebian-popcon.gpg differ
diff --git a/popcon/neurodebian.conf b/popcon/neurodebian.conf
new file mode 100644 (file)
index 0000000..5d0ecee
--- /dev/null
@@ -0,0 +1,3 @@
+KEYRING="$KEYRING --keyring /usr/share/popularity-contest/neurodebian-popcon.gpg"
+POPCONKEY="$POPCONKEY -r 0x544665CB8B48DE1D"
+SUBMITURLS="$SUBMITURLS http://neuro.debian.net/cgi-bin/popcon-submit.cgi"
index 989b92c9f342bde3574512e3996c3ddc658854ca..4c9d39daae74804bb1d3805f05b8f567eb1883c0 100644 (file)
@@ -57,7 +57,7 @@
 The source code for this portal is licensed under the
 <a href="http://www.gnu.org/licenses/gpl-3.0.html"
    title="Text of the GPL-3 license">GPL-3</a> and is available on
-<a href="http://anonscm.debian.org/gitweb/?p=pkg-exppsy/neurodebian.git"
+<a href="http://anonscm.debian.org/cgit/pkg-exppsy/neurodebian.git"
    title="Browse or clone the Git repository">
 git.debian.org</a>.
 </div>
index aca750ae927a147f8baa5a59fa9fa86e36dc19fd..c90918be45ce3d3cb6b6a326caa4e46920cc8879 100644 (file)
@@ -114,7 +114,7 @@ You are ready to go -- enjoy NeuroDebian!
 
   <script type="text/javascript">
   function createvmdownload(rel, mir) {
-        var img_version = '7.4.20140423';
+        var img_version = '7.8.0';
         var img_suffix;
         var base_url;
         var img_url;
@@ -143,7 +143,7 @@ You are ready to go -- enjoy NeuroDebian!
     if(mir in mirrors) {
         var retrepo = "wget -O- http://neuro.debian.net/lists/" + rel + "."
          + mir + "." + comp + " | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list\n"
-         + "sudo apt-key adv --recv-keys --keyserver pgp.mit.edu 2649A5A9\n";
+         + "sudo apt-key adv --recv-keys --keyserver hkp://pgp.mit.edu:80 2649A5A9\n";
         return retrepo;
     }
 
index 2cc7f20c3845b29c1b859d6612266013fb8940bf..1701ddb68eb705741c3bd2f7bb906e06c5b38e9d 100644 (file)
@@ -196,12 +196,21 @@ Troubleshooting
     NeuroDebian VM, please rebuild the version available from the
     backports::
 
-      sudo apt-get install -y linux-headers-2.6-amd64 # or -686 for 32bit
+      sudo apt-get install -y linux-headers-2.6-`dpkg --print-architecture`
       sudo apt-get install -y -t squeeze-backports virtualbox-ose-guest-dkms \
            virtualbox-ose-guest-utils  virtualbox-ose-guest-x11
 
     and reboot VM.
 
+  My VM lost mounted host directories, and display auto-resizing  after upgrade
+    NeuroDebian VMs ship without Linux kernel headers pre-installed to
+    minimize distribution/running footprint for one time throw-away
+    usages of the VM.  To install headers package(s) just run
+
+      sudo apt-get install -y linux-headers-`dpkg --print-architecture`
+
+    and reboot VM.
+
   I am still running an older VirtualBox 3.x
     Download one of the image files listed below. These older releases
     are distributed as a `zip` file. Please extract all files from the
@@ -223,6 +232,10 @@ What has changed
 
      Click on an item to expand it
 
+  7.8.0 -- 2 Feb 2015
+    * VM appliance based on the updated wheezy point release 7.8.0.
+      Should resolve problems with upgrades of the guest additions.
+
   7.4.20140423 -- 24 Apr 2014
     * VM appliance based on the updated wheezy point release 7.4.
       Should resolve problems with upgrades of the guest additions.
diff --git a/tools/nd-configurerepo b/tools/nd-configurerepo
new file mode 100755 (executable)
index 0000000..0b0f91c
--- /dev/null
@@ -0,0 +1,583 @@
+#!/bin/bash
+#emacs: -*- mode: shell-script; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil -*-
+#ex: set sts=4 ts=4 sw=4 et:
+
+# Depends:    apt (assumed to be present), python, wget
+# Recommends: netselect
+
+# play safe
+set -e
+set -u
+
+############
+# Defaults #
+############
+
+nd_aptenable_version=0.1
+
+nd_key_id=0x2649A5A9
+nd_config_url=https://raw.githubusercontent.com/neurodebian/neurodebian/master/neurodebian.cfg
+nd_config_file=/etc/neurodebian/neurodebian.cfg
+nd_mirror_origin=http://neuro.debian.net/debian
+nd_mirror_default=$nd_mirror_origin # or may be AWS?
+
+# To be set by cmdline args or via env variables with prefix ND_AE_
+ae_release=${ND_AE_RELEASE:-}
+ae_components=${ND_AE_COMPONENTS:-software,data}
+ae_flavor=${ND_AE_FLAVOR:-}
+ae_mirror=${ND_AE_MIRROR:-best}
+ae_suffix=${ND_AE_SUFFIX:-}
+ae_verbose=${ND_AE_VERBOSE:-1}
+ae_overwrite=${ND_AE_OVERWRITE:-}
+ae_sources=${ND_AE_SOURCES:-}
+ae_install=${ND_AE_INSTALL:-}
+ae_update=${ND_AE_UPDATE:-1}
+ae_dry_run=${ND_AE_DRY_RUN:-}
+ae_defun_only=${ND_AE_DEFUN_ONLY:-} # mode to source this file as a "library"
+
+ae_sudo=
+exe_dir=$(dirname $0)
+do_print_release=
+do_print_flavor=
+
+# TODOs:
+# - apt priority! (so we could avoid automagic upgrades etc)
+# - multiarch setups
+
+if [ -z "${ND_AE_TEMPDIR:-}" ]; then
+    ae_tempdir=$(mktemp -d)
+    trap "rm -rf \"$ae_tempdir\"" TERM INT EXIT
+else
+    # reuse the same directory/fetched configuration if was specified
+    ae_tempdir="${ND_AE_TEMPDIR:-}"
+fi
+
+
+nd_config_file_fresh="$ae_tempdir/neurodebian.cfg"
+
+print_verbose()
+{
+    level=$1; shift
+       if [ "$ae_verbose" -ge $level ]; then
+        # use stderr for printing within functions stdout of which might be used
+        echo -n "I: " >&2
+        i=1; while [ $i -lt $level ]; do echo -ne " ">&2; i=$(($i+1)); done
+        echo -e "$*" >&2
+    fi
+}
+
+error()
+{
+    code=$1; shift
+       echo -e "E: $*" >&2
+    exit $code
+}
+
+print_version()
+{
+    cat << EOT
+nd-configurerepo $nd_aptenable_version
+
+Copyright (C) 2014 Yaroslav Halchenko <debian@onerussian.com>
+
+Licensed under GNU Public License version 3 or later.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+Written by Yaroslav Halchenko for the NeuroDebian project.
+
+EOT
+}
+
+eval_dry()
+{
+    if [ -z "$ae_dry_run" ]; then
+        if eval "$ae_sudo $@" 1>|"$ae_tempdir/eval.log" 2>&1; then
+            rm "$ae_tempdir/eval.log"
+        else
+            error $? "Command $@ failed with exit code $?.  Output was: `cat $ae_tempdir/eval.log`"
+        fi
+    else
+        echo "DRY: $@" >&2
+    fi
+}
+
+print_help()
+{
+    cat << EOT
+
+Usage:  nd-configurerepo [options]
+
+Enables NeuroDebian repository for the current Debian or Ubuntu release.
+
+Options:
+
+  -r, --release=RELEASE
+    Name of the Debian/Ubuntu release to be used. If not specified,
+    it is deduced from the 'apt-cache policy' output, by taking repository
+    of Debian or Ubuntu origin with highest priority.
+
+  --print-releases
+    Print a list of releases present in NeuroDebian repository.
+
+  --print-release
+    Print the release deduced from the output of apt-cache policy.
+
+  -f, --flavor=full|libre
+    Which flavor of the repository should be enabled:
+
+      libre  Only 'main' component, containing only DFSG-compliant content.
+      full   Includes 'main', 'contrib', and 'non-free'.
+
+    If not specified -- deduced from the output of apt-cache policy.
+
+  --print-flavor
+    Print the flavor deduced from the output of apt-cache policy.
+
+  -c, --components=c1,c2,c3
+    Comma separated list of components to enable among:
+
+     software  primary software repository
+     data      data packages
+     devel     "overlay" of development versions (like Debians' "experimental").
+               Not sufficient on its own and available only from the main site
+
+    If not specified -- "software,data"
+
+  -m, --mirror=NAME|URL
+    Which mirror to use. Could be a mirror code-name (as specified in
+    /etc/neurodebian/neurodebian.cfg), or a URL.
+
+  --print-mirrors
+    Return a list (with abbreviation) of known NeuroDebian mirrors.
+
+  --overwrite,
+    If apt file already present, it would not be overriden (by default).
+    Use this option to overwrite.
+
+  --suffix=SUFFIX
+    Which suffix to add to the apt file, in case you are trying to enable
+    multiple repositories
+
+  --sources, --no-sources
+    Either to enable deb-src lines. If none specified -- would be enabled if
+    sources for a core package (apt) are available.
+
+  -n, --dry-run
+    Do not perform any changes -- generated configurations and commands will
+    simply be printed to stdout
+
+  --install
+    If found absent, all necessary tools (wget, netselect) if available will
+    be apt-get installed
+
+  -v, --verbose
+    Enable additional progress messages. Could be used multiple times
+
+  -q, --quiet
+    Make operation quiet -- only error messages would be output
+
+  -h, --help
+    Print short description, usage summary and option list.
+
+  --version
+    Print version information and exit.
+
+Exit status:
+
+  non-0 exit status in case of error.
+  Error exit code would depend on which command has failed.
+
+Examples:
+  nd-configurerepo
+    Enable software and data components from the optimal (according to
+    netselect) mirror.  Some information about progress will be printed
+
+  nd-configurerepo -q --suffix=-devel -c devel
+    Quietly enable -devel repository for the current release, and place apt
+    configuration into /etc/apt/sources.list.d/neurodebian.sources-devel.list
+
+  nd-configurerepo -q --suffix=-de-sid-full -c software,data,devel -m jp
+    Force sid distribution, all the components, from the Japan mirror
+EOT
+}
+
+get_neurodebian_cfg()
+{
+    if [ -s "$nd_config_file_fresh" ]; then
+        print_verbose 3 "Config file $nd_config_file_fresh exists -- not fetching"
+        echo "$nd_config_file_fresh"
+        return 0
+    fi
+    # First we try to fetch the most recent version from the github
+    print_verbose 3 "Fetching config file from the github repository"
+    assure_command_from_package wget wget 1
+    wget --no-check-certificate -c -q -O$nd_config_file_fresh \
+        $nd_config_url \
+        && { echo "$nd_config_file_fresh"; } \
+        || { [ -e "$nd_config_file" ] \
+             && echo "$nd_config_file" \
+             || error 10 "Neither could fetch $nd_config_url, nor found $nd_config_file"; }
+}
+
+query_cfg_section()
+{
+    config_file="$1"
+    section="$2"
+    print_verbose 3 "Querying config $config_file section $section"
+    assure_command_from_package python python-minimal 1
+    python -c "from ConfigParser import SafeConfigParser as SP; cfg = SP(); cfg.read('$config_file'); print('\n'.join([' '.join(x) for x in cfg.items('$section')]))"
+}
+
+get_mirrors()
+{
+    nd_config=`get_neurodebian_cfg`
+#    $exe_dir/nd_querycfg -F" " --config-file="$nd_config" "mirrors" \
+    n=""
+    query_cfg_section "$nd_config" "mirrors" \
+    | while read mirror_name mirror_url; do
+        # verify that url is just a url
+        if echo "$mirror_url" | grep -v -e '^[a-z0-9:+]*://[-+_%.a-z0-9/]*$'; then
+            print_verbose 1 "Mirror $mirror_name has 'illegit' URL: $mirror_url.  Skipping"
+        fi
+        [ -z "$n" ] || echo -ne "${ND_IFS:-\n}"; n+=1
+        echo -n "$mirror_name $mirror_url"
+    done
+}
+
+get_releases()
+{
+    nd_config=`get_neurodebian_cfg`
+    n=""
+    query_cfg_section "$nd_config" "release files" \
+    | while read release_name release_url; do
+        # verify that url is just a url
+        if [ "$release_name" = "data" ]; then
+            # skip data
+            continue
+        fi
+        [ -z "$n" ] || echo -ne "${ND_IFS:-\n}"; n+=1
+        echo -n "$release_name"
+    done
+}
+
+get_package_version()
+{
+    pkg_version=$(apt-cache policy "$1" | awk '/^ *Installed:/{print $2;}')
+    [ "$pkg_version" != '(none)' ] || pkg_version=''
+    echo "$pkg_version"
+}
+
+netselect_mirror() {
+    # select "closest" mirror according to netselect.
+    print_verbose 2 "Selecting the 'best' mirror using netselect"
+    assure_command_from_package netselect
+    if ! which netselect >&/dev/null; then
+        print_verbose 1 "netselect (apt-get install netselect) needed to select the 'best' mirror was not found"
+        print_verbose 1 "Selecting the default repository: $nd_mirror_default"
+        echo $nd_mirror_default
+    else
+        # squeeze version doesn't have -D yet to force output of the URL not IP, but for our mirrors ATM it shouldn't matter
+        netselect_opts="-s 1"
+        netselect_version="$(get_package_version netselect)"
+        if dpkg --compare-versions "$netselect_version" ge 0.3.ds1-17; then
+            netselect_opts+=" -D"
+        fi
+        if dpkg --compare-versions "$netselect_version" ge 0.3.ds1-15; then
+            netselect_opts+=" -I"
+        fi
+        best_mirror=$(get_mirrors | awk '{print $2;}' | eval $ae_sudo xargs netselect $netselect_opts | awk '{print $2;}')
+        if [ -z "$best_mirror" ]; then
+            print_verbose 1 "Failed to select mirror using netselect. Selecting default one ($nd_mirror_default)"
+            echo "$nd_mirror_default"
+        else
+            print_verbose 2 "Best mirror: $best_mirror"
+            echo $best_mirror
+        fi
+    fi
+}
+
+get_mirror_url()
+{
+    # given mirror alias -- find its url
+    url=$(get_mirrors | awk "/^$1 /{print \$2;}")
+    if [ -z "$url" ]; then
+        error 9 "Cannot resolve mirror $1 to the URL"
+    fi
+    echo $url
+}
+
+get_apt_policy()
+{
+    # Get apt-cache policy output in a single list for matching suites
+    # (could be a separated with \| or , for multiple choices, e.g.
+    #
+    # get_apt_policy Debian,Ubuntu
+    # or
+    # get_apt_policy NeuroDebian
+    suites="$1"
+    $ae_sudo apt-cache policy | grep -B1 -e "o=\(${suites//,/\\|}\)" | tr '\n' ' ' | sed -e 's, -- ,\n,g' | grep -v -e '-\(updates\|security\)' | sort -nr
+}
+
+is_component_included()
+{
+    echo "$ae_components" | tr ',' '\n' | grep -q "^$1\$"
+}
+
+is_sources_enabled()
+{
+    apt-cache showsrc apt >&/dev/null && echo 1 || echo 0
+}
+
+assure_command_from_package()
+{
+    cmd=$1
+    pkg=${2:-$cmd}
+    fail=${3:-}
+
+    which "$cmd" >&/dev/null && return 0
+
+    # if absent -- check availability of the package
+    apt_cache=$(LANG=C apt-cache policy "$pkg" 2>&1)
+    if [[ "$apt_cache" =~ Unable\ to\ locate\ package ]] || [[ "$apt_cache" =~ Candidate:\ (none) ]] \
+       || [[ "$apt_cache" =~ is\ not\ available ]] ; then
+        print_verbose 1 "Package $pkg providing command $cmd is N/A. Skipping"
+        return 10;
+    fi
+    if echo "$apt_cache" | grep -q '^\s*\*\*\*'; then
+        print_verbose 1 "WARNING -- command $cmd is N/A but package $pkg is claimed to be installed"
+        [ -z "$fail" ] && return 11 || error $fail "Command $cmd is required to proceed"
+    fi
+    if [ "$ae_install" = "1" ]; then
+        print_verbose 1 "Installing $pkg package to get $cmd command"
+        eval_dry DEBIAN_FRONTEND=noninteractive apt-get install -y "$pkg"
+        return
+    else
+        print_verbose 1 "Command $cmd (from package $pkg) is N/A."
+        print_verbose 1 "Use with --install to get all necessary packages installed automatically"
+        [ -z "$fail" ] && return 12 || error $fail "Command $cmd is required to proceed"
+    fi
+}
+
+# if it was requested -- return without doing anything
+[ -z "$ae_defun_only" ] || return
+
+#
+# Commandline options handling
+#
+
+# Parse commandline options (taken from the getopt examples from the Debian util-linux package)
+# Note that we use `"$@"' to let each command-line parameter expand to a
+# separate word. The quotes around `$@' are essential!
+# We need CLOPTS as the `eval set --' would nuke the return value of getopt.
+CLOPTS=`getopt -o h,r:,m:,f:,c:,q,v,n --long help,version,quiet,verbose,mirror:,release:,flavor:,components:,suffix:,overwrite,sources,no-sources,install,dry-run,do-not-update,print-releases,print-release,print-mirrors,print-best-mirror,print-flavor -n 'nd-configurerepo' -- "$@"`
+
+if [ $? != 0 ] ; then
+  error 2 "Problem with parsing cmdline.  Terminating..."
+fi
+
+# Note the quotes around `$CLOPTS': they are essential!
+eval set -- "$CLOPTS"
+
+if [ `whoami` != "root" ]; then
+    ae_sudo=sudo
+fi
+
+while true ; do
+  case "$1" in
+         -r|--release) shift; ae_release="$1"; shift;;
+         -f|--flavor) shift;  ae_flavor="$1"; shift;;
+         -c|--components) shift; ae_components="$1"; shift;;
+      -m|--mirror) shift;  ae_mirror="$1"; shift;;
+         --print-mirrors)  get_mirrors; exit 0;;
+         --print-best-mirror)  netselect_mirror; exit 0;;
+         --print-releases)  get_releases; exit 0;;
+         --print-release)  do_print_release=1; shift;;
+         --print-flavor)  do_print_flavor=1; shift;;
+      -n|--dry-run)        ae_dry_run=1; shift;;
+         --suffix) shift;  ae_suffix="$1"; shift;;
+         --overwrite)      ae_overwrite="$1"; shift;;
+         --do-not-update)  ae_update=""; shift;;
+         --sources)        ae_sources=1; shift;;
+         --no-sources)     ae_sources=0; shift;;
+         --install)        ae_install=1; shift;;
+         -q|--quiet)          ae_verbose=0; shift;;
+         -v|--verbose)        ae_verbose=$(($ae_verbose+1)); shift;;
+         -h|--help) print_help; exit 0;;
+         --version) print_version; exit 0;;
+         --) shift ; break ;;
+         *) error 1 "Internal error! ($1)";;
+  esac
+done
+
+
+if [ $# -gt 0 ] ; then
+    print_help >&2
+    exit 2
+fi
+
+# Inform!
+[ -z "$ae_sudo" ] || print_verbose 1 "This script requires root access.  Since current user is not root, sudo will be used"
+
+#
+# Basic system/environment knowledge
+#
+
+ae_output_file=/etc/apt/sources.list.d/neurodebian.sources${ae_suffix}.list
+
+apt_policy=$(get_apt_policy "Debian,Ubuntu" )
+
+if [ -z "$ae_release" ]; then
+    ae_release=$(echo "$apt_policy" | head -1 | sed -e 's/.*,n=\([^,]*\),.*/\1/g')
+    if [ ! -z "$do_print_release" ]; then
+        echo $ae_release
+        exit 0
+    fi
+fi
+
+if [ -z "$ae_flavor" ]; then
+    ae_flavor=$(echo "$apt_policy" | grep -e ",n=$ae_release," | grep -qe 'c=\(non-free\|multiverse\)' && echo "full" || echo "libre")
+    if [ ! -z "$do_print_flavor" ]; then
+        echo $ae_flavor
+        exit 0
+    fi
+fi
+
+#
+# Determine which mirror to use
+#
+
+# knowing mirror is not necessary for -devel available only from the main site
+if is_component_included software || is_component_included data; then
+    # for now just use default
+    if [ -z "$ae_mirror" ]; then # none specified
+        ae_mirror_url=$nd_mirror_origin
+    else
+        if ! [[ "$ae_mirror" =~ .*://.* ]]; then
+            case "$ae_mirror" in
+                best)    ae_mirror_url=$(netselect_mirror);;
+                default) ae_mirror_url=$nd_mirror_default;;
+                origin)  ae_mirror_url=$nd_mirror_origin;;
+                *)       ae_mirror_url=$(get_mirror_url "$ae_mirror");;
+            esac
+        else
+            ae_mirror_url="$ae_mirror" # it was some kind of a URL already
+        fi
+    fi
+fi
+
+#
+# Prepare APT file
+#
+
+case $ae_flavor in
+ full)  apt_flavor="contrib non-free";;
+ libre) apt_flavor="";;
+ *) error 5 "Unknown value of flavor $apt_flavor.  Must be full or libre"
+esac
+
+if [ -z "$ae_sources" ]; then
+    ae_sources=$(is_sources_enabled)
+fi
+
+if [ $ae_sources -eq 0 ]; then
+    sources_comment="#"
+else
+    sources_comment=""
+fi
+
+apt_list=
+
+if is_component_included software; then
+    apt_list+="
+# NeuroDebian software repository
+deb     $ae_mirror_url $ae_release main $apt_flavor
+${sources_comment}deb-src $ae_mirror_url $ae_release main $apt_flavor
+"
+fi
+
+if is_component_included data; then
+    apt_list+="
+# NeuroDebian data repository
+deb     $ae_mirror_url data main $apt_flavor
+${sources_comment}deb-src $ae_mirror_url data main $apt_flavor
+"
+fi
+
+if is_component_included devel; then
+    apt_list+="
+# NeuroDebian -devel repository
+deb     http://neuro.debian.net/debian-devel $ae_release main $apt_flavor
+${sources_comment}deb-src http://neuro.debian.net/debian-devel $ae_release main $apt_flavor
+"
+fi
+
+if [ -e "$ae_output_file" ] && [ -z "$ae_overwrite" ]; then
+    if diff "$ae_output_file" <(echo "$apt_list") | grep -q .; then
+        # error 3
+        print_verbose 1 "File $ae_output_file already exists, containing:\n`cat \"$ae_output_file\"`\n\nI: New configuration is different:\n$apt_list"
+        if get_apt_policy NeuroDebian >/dev/null; then
+            print_verbose 1 "NeuroDebian repositories are already available, thus skipping the rest."
+            print_verbose 1 "Rerun with --overwrite if you would like to reconfigure."
+            exit 0
+        else
+            print_verbose 1 "NeuroDebian configuration is found but not yet available -- continuing with new configuration."
+        fi
+    else
+        print_verbose 1 "New configuration is identical to existing and NeuroDebian repository is already enabled."
+        print_verbose 1 "Skiping the rest. Rerun with --overwrite if you would like to reconfigure."
+        exit 0
+    fi
+else
+    print_verbose 1 "Generating $ae_output_file"
+    if [ -z "$ae_dry_run" ]; then
+        echo "$apt_list" | $ae_sudo bash -c "cat - >| '$ae_output_file'"
+    else
+        echo "DRY:"
+        echo "$apt_list"
+    fi
+fi
+
+
+#
+# Assure present archive GPG key for APT system
+#
+
+# Figure out if key needs to be imported (if ran within package,
+# should already be there due to neurodebian-keyring package)
+if LANG=C eval $ae_sudo apt-key export $nd_key_id 2>&1 1>/dev/null | grep -qe "nothing exported"; then
+    print_verbose 1 "Fetching the key from the server"
+    eval_dry apt-key adv --recv-keys --keyserver pgp.mit.edu $nd_key_id
+fi
+
+
+#
+# Finalizing (apt-get update etc)
+#
+
+if [ ! -z "$ae_update" ]; then
+    print_verbose 1 "Updating APT listings, might take a few minutes"
+    if [ -z "$ae_dry_run" ]; then
+        apt_logfile="$ae_tempdir/apt.log"
+        $ae_sudo apt-get update 1>"$apt_logfile" 2>&1 \
+            && rm -f "$apt_logfile" \
+            || {
+                 apt_log=$(cat "$apt_logfile")
+                 echo "$apt_log"
+                 if echo "$apt_log" | grep -q "Malformed line [0-9]* in source list $ae_output_file"; then
+                     $ae_sudo mv "${ae_output_file}" "${ae_output_file}-failed.disabled"
+                     error 6 "Update failed to possible errorneous APT listing file produced by this script.  Generated $ae_output_file renamed to ${ae_output_file}-failed.disabled to not interfer"
+                 fi
+                 error 5 "Update failed with exit code $? (above output logged into $apt_logfile)."
+                 }
+    else
+        eval_dry apt-get update
+    fi
+else
+    print_verbose 1 "apt-get update  was not run. Please run to take an effect of changes"
+fi
+
+if [ "$ae_verbose" -ge 2 ]; then
+    print_verbose 2 "Currently enabled NeuroDebian suites/mirrors:"
+    get_apt_policy NeuroDebian
+fi
index e41cfc7952a293ee86a60949947fcc136abcef74..a5e93394cdf70503249383b2705cde1fbd9d87a3 100755 (executable)
@@ -83,7 +83,7 @@ for f in *~nd*.changes; do uf=${f//.changes/.neurodn.upload}; [ -e $uf ] && cont
 
 # on the neuro.debian.net side
 # filtered out incoming from pkgs with versions in official distribution
-for c in *changes; do pkg_ver=`grep '\.deb$' $c | head -1  | sed -e 's,.* \([^_]*\)_\(.*\)_.*,\1 \2,g'`;  echo $pkg_ver; done | uniq | while read p v; do  uver=$(whohas -D Ubuntu --strict $p | grep '/precise/' | awk '{print $3;}');  dpkg --compare-versions $v lt "$uver" && echo $c $p $v $uver; done 2>&1 | tee up-to-date-list.txt
+for c in *changes; do pkg_ver=`grep '\.deb$' $c | head -1  | sed -e 's,.* \([^_]*\)_\(.*\)_.*,\1 \2,g'`;  echo $pkg_ver; done | uniq | while read p v; do  uver=$(whohas -D Ubuntu --strict $p | grep "/$dist/" | awk '{print $3;}');  dpkg --compare-versions $v lt "$uver" && echo $c $p $v $uver; done 2>&1 | tee up-to-date-list.txt
 
 # and moved corresponding changelogs away
 mv `awk '{print $1,$2;}' up-to-date-list.txt | while read p v; do grep -l "${p}_${v}" *changes; done | sort | uniq` NOT_UPLOADED/
@@ -97,4 +97,4 @@ sudo nd_updatedist nd+ubuntu $dist
 # And build which previously failed, most probably due to unsatisfied dependencies
 # and possibly failure with outdated versions of 3rd party modules
 #grep -v OLD summary.build | grep FAILED | sed -e 's,_\(i386\|amd64\).build.*,,g' | sort | uniq | while read p; do sudo nd_build nd+ubuntu precise $p.dsc; done
-grep -v -e OLD -e networkx summary.build | grep FAILED  | sed -e 's,_\(i386\|amd64\).build.*,,g' | sort | uniq | while read p; do sudo nd_build nd+ubuntu precise $p.dsc; done
+grep -v -e OLD -e networkx summary.build | grep FAILED  | sed -e 's,_\(i386\|amd64\).build.*,,g' | sort | uniq | while read p; do sudo nd_build nd+ubuntu $dist $p.dsc; done
diff --git a/tools/tests/run_in_debian_dockers b/tools/tests/run_in_debian_dockers
new file mode 100755 (executable)
index 0000000..b12098c
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -u
+test=$1
+
+docker.io images 2>&1 | grep -e  "\(debian\|ubuntu\)[ ]*[0-9]"  | sort | awk '{print $1,$2;}' \
+| while read d v; do
+    echo "== $d $v"
+    chronic docker.io run --rm=true -v $PWD:$PWD $d:$v /bin/bash $PWD/$test
+done
diff --git a/tools/tests/test_neurodebian-repository-deployment b/tools/tests/test_neurodebian-repository-deployment
new file mode 100755 (executable)
index 0000000..6900417
--- /dev/null
@@ -0,0 +1,44 @@
+#/bin/bash
+set -ex
+
+# minimal installation with few of those packages
+apt_file=/etc/apt/sources.list.d/local.list
+apt_nd_file=/etc/apt/sources.list.d/neurodebian.sources.list
+
+# clean up from a previous test
+dpkg --purge neurodebian neurodebian-keyring || :
+echo PURGE | debconf-communicate neurodebian || :
+rm -rf /tmp/apt $apt_file;
+
+mkdir -p /tmp/apt; cd /tmp/apt;
+rm -f neurodebian-*deb; apt-get update -y; apt-get install -y wget;
+wget http://www.onerussian.com/tmp/neurodebian_0.33~a1_all.deb;
+wget http://www.onerussian.com/tmp/neurodebian-keyring_0.33~a1_all.deb;
+
+# generate APT repo
+apt-get install -y dpkg-dev ;  dpkg-scanpackages  . /dev/null > Packages
+# Add it to the list of available
+echo "deb file:///tmp/apt ./" >| $apt_file; apt-get update
+# Install the beast
+apt-get install -y --allow-unauthenticated neurodebian
+# Verify that it has correct entries
+# Very cruel way to figure out the default release. Would fail if
+# options, such as multiarch, are specified after deb
+release=$(grep -e '^\s*deb\s' /etc/apt/sources.list | head -1 | awk '{print $3;}')
+grep -E "^deb\s+http.* $release main\s*\$" $apt_nd_file
+grep -E '^deb\s+http.* data main\s*$'      $apt_nd_file
+# May be even retrospect stored debconf configuration
+apt-get install debconf-utils
+debconf-get-selections | grep neurodebian/release.*select.*auto
+# And apt-get must be working
+apt-get update
+# Make sure it is active
+apt-cache policy | grep o=NeuroDebian,.*,n=data
+apt-cache policy | grep o=NeuroDebian,.*,n=$release
+
+# Now lets remove
+dpkg --purge neurodebian
+[ ! -e $apt_nd_file ]
+apt-cache policy | grep o=NeuroDebian && exit 1 || :
+
+echo "I: success"
index c3000b6096736692fbd797eb71cadb3536f4cb78..852ea58ed0ed574aa96cad89d9e6d137e5e32f4e 100755 (executable)
@@ -131,7 +131,8 @@ apt-get install --no-install-recommends -y \
  software-center synaptic menu less libxp6 \
  task-xfce-desktop lightdm zenity \
  chromium-browser \
- sudo neurodebian-desktop update-notifier
+ sudo neurodebian-desktop update-notifier \
+ bc
 
 # Assure having xfce4 terminal and it being default one and other handy
 # XFCE4 components