Make this package available for newer distributions

Asked by Fernando

Please, make this package available and updated to newer versions of Ubuntu.
I can't find it in 11.04 (Natty) repository.
It is a very useful application.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu root-system Edit question
Assignee:
No assignee Edit question
Solved by:
mycae
Solved:
Last query:
Last reply:
Revision history for this message
Best mycae (mycae) said :
#1

Root system is a highly complicated package, and was removed from debian (ubuntu's upstream) for being very difficult to maintain.

A fresh effort to maintain this package has been made, but has not appeared in debian as yet. You can find some discussion of the remaining problems here:
http://old.nabble.com/Scientific-software-packaging-td31638593.html

Revision history for this message
Fernando (fernandocarvalho1987) said :
#2

Do you know another C++ interpreter that can replace root system in Ubuntu?

Revision history for this message
Fernando (fernandocarvalho1987) said :
#3

Thanks mycae, that solved my question.

Revision history for this message
mycae (mycae) said :
#4

No, root is the only C++-ish interpreter that I am aware of. Root is not a true C++ interpreter however, and is only C++ like (global objects, freely swaps references and instances, limited inheritance, etc).

To be honest, though, i would probably recommend using something like numpy, unless you are doing very heavy number crunching. Though this requires learning python, and is obviously not C++.

Revision history for this message
Eliah Kagan (degeneracypressure) said :
#5

You should still be able to use ROOT (root-system) on Ubuntu 11.04. Just built it from source:
http://root.cern.ch/drupal/content/installing-root-source

Technically, ROOT is not an interpreter at all. But it includes (embeds) CINT, which is an interpreter for a very C++-like language. (Thus it is CINT, rather that ROOT itself, that could somewhat reasonably be called a C++ interpreter.) If CINT is the only ROOT functionality you use, then you can just build CINT from source rather than all of ROOT:
http://root.cern.ch/drupal/content/cint

As linked to in http://old.nabble.com/Scientific-software-packaging-td31638593.html, you can find experimental Debian root-system packages at http://lcg-heppkg.web.cern.ch/lcg-heppkg/debian/ (if you choose to use these packages in Natty, you can reasonably use the squeeze, stable, or sid packages; you'd be well advised to read up on the Debian website for what those terms denote, less so that you can make a good choice between them and more so you understand the updating ramifications associated with whatever choice you make). The installation instructions at http://lcg-heppkg.web.cern.ch/lcg-heppkg/debian/install.html should work in Ubuntu (assuming these unofficial Debian packages will work in Ubuntu at all, that is)--just remember that, to run a command as root in Ubuntu, you precede it with "sudo " (without the quotes). You might want to add the repository lines in a file you create inside /etc/apt/sources.list.d for them, to keep things neat, rather than adding them to the master file (/etc/apt/sources.list), but either way should work fine. I recommend backing up /etc/apt/sources.list ("sudo cp /etc/apt/sources.list /etc/apt/sources.list.old") if you modify it.

As a fourth option, you might try installing the root-system packages from Lucid. (You could install the Maverick versions, but they provide the same version of the upstream ROOT software, and Lucid packages are maintained longer than Maverick packages because of Lucid's status as an LTS release. When Lucid is no longer supported, Natty won't be either. Of course, the act of running Lucid packages on Natty is not supported and you may or may not be able to get good assistance for doing so here on this forum and elsewhere, but updated packages could and likely would be released if root-system were found to contain security vulnerabilities or severe stability/usability problems that could practically be fixed. Since root-system is in universe rather than main and thus community-supported rather than supported by Canonical, and since there have been problems maintaining the upstream versions, whether or not such updates would actually come out is something of a toss-up. But the only reason I can think of to try the Maverick versions is if you try the Lucid versions and they don't work.)

You can download Lucid (or Maverick) root-system packages at https://launchpad.net/ubuntu/+source/root-system. Expand the version you want to download and grab all the .deb files for your architecture, put them in a folder that contains nothing else. Supposing that this folder is called root-system-debs and it's an immediate subfolder of your home directory, you can install them all by opening a Terminal window and running the command "sudo dpkg -Ri ~/root-system-debs" without the quotes. (As an alternative to manually typing in the name of the folder, you can type "sudo dpkg -Ri " without the quotes but with the space at the end, then drag the folder that contains the .deb files from Nautilus into the Terminal, and that will paste its fully qualified name.)

Another way to install the Lucid (or Maverick) root-system packages would be to add the Lucid (or Maverick) repositories (again, you may want to add them in a file you create for this purpose in /etc/apt/sources.list.d, rather than directly to /etc/apt/sources.list) and install them that way. The advantage is that this will make it faster to install them--you won't have to manually download all the different root-system binary packages--and they will be automatically updated when you update your system. The disadvantage is that you have to make sure you're not inadvertently installing other packages from the Lucid (or Maverick) repositories, because if you mix Lucid (or Maverick) and Natty packages throughout your system or for key system components, you can seriously mess up your system, even to the point at which the easiest solution might be to offload documents, wipe disk, and start over. (If you were adding a repository for a future release or a release of a different operating system then you would want to use pinning to greatly mitigate the risk -- https://help.ubuntu.com/community/PinningHowto -- but, while you could do that here, it doesn't really apply to adding repositories from a *previous* release of the same operating system, outside of some narrow and very strange circumstances).

Considering that, so far, no updates have ever been released for root-system on Lucid or Maverick (at least not while Lucid and Maverick have been stable releases), I would suggest that the benefits of enabling a Lucid or Maverick repository to install root-system are negligible. If you're going to attempt to install root-system packages from one of these releases, I recommend you do it manually by downloading them from Launchpad and installing them with dpkg as detailed two paragraphs above.

If you need help with any of these techniques, please feel free to reopen this question.

By the way, you can file a feature request asking that ROOT (root-system) be provided in Ubuntu, even if it is not provided in Debian. To do this, first read https://help.ubuntu.com/community/ReportingBugs carefully, then search to see if any bugs filed against the root-system package, against no package, or against any package with the needs-packaging tag have already requested this. If not, then you can file a bug against root-system in Ubuntu to request that it be provided in Oneiric (or in a future release, if it cannot be provided in Oneiric). You may want to indicate that it should *especially* be provided in Oneiric if a package for it is ready in Debian unstable before Oneiric's release (it would not be *automatically* imported into Oneiric, as Oneiric's Debian import freeze has passed). Such a request would not result directly in root-system packages being provided in Natty via natty-updates (only security and important stability/usability updates are offered through the standard update channels for a stable release), but once there is a package in Oneiric or a future release, that package can then be requested to be backported to any previous releases that have not reached end-of-life, and provided in that release's -backports repository.

If you file such a bug, please make sure to tag it with the needs-packaging tag. (Typically, needs-packaging bugs are reported against Ubuntu, rather than against any source package in Ubuntu, but since the source package root-system exists, you may as well report it against that.)

If you file or find such a bug, I recommend that you link it to this question using the "Link existing bug" link near the top of this question page. However, if you file such a bug, your feature request shouldn't rely on the Ubuntu developers referring to this question page--it should be self contained and explain briefly but compellingly why it would be a good idea to include ROOT (root-system) in Ubuntu even though it has been removed (at least for the time being) from Debian.

Revision history for this message
Fernando (fernandocarvalho1987) said :
#6

I was only seeking CINT.
I've being using it on Maverick for long time, and when I upgraded to Natty, I missed it a lot.
When we don't know a code, or is trying to port it from another platform to Linux, an C++ interpreter is a good way to for a program to run even if it is not completely done, as I can incrementally creating stubs and other kind of modules as they are needed.
But I think that it will be to much work to get it from Ubuntu repository. The quickest way is to download it from the developer's website and build the package.

Revision history for this message
Eliah Kagan (degeneracypressure) said :
#7

Depending on how fast your computer is (because your computer has to perform the build steps, which take time), that may very well be the case. Depending on whether or not you're familiar with building complex software from source that you have not yourself created (if you haven't, don't worry--it's almost always quite easy) and whether or not there are any complications in configuration and obtaining and installing the build dependencies), building from source may very well be personally easier and less time-consuming for you as well.

But even if you knew that building from source would be harder, take you longer, and take your computer longer than installing the Lucid or Maverick packages, I would still recommend building from source as your first choice. The software is designed to work when it is installed that way, whereas the Lucid and Maverick packages are not designed to work on Natty and haven't been tested on Natty. Plus, if you build from source, you can build a newer version than the version provided in Lucid and Maverick.