Hi, while Im waiting to my first Arduino, I work on Debian/Ubuntu native package for Arduino software. In any other case, it is few minutes of work, but unfortunately Arduino mix libraries and data into one directory tree. Because arduino need write permissions to program directory, it is almost impossible to make correct package.
Because mixing program libraries with data is not good idea at all, Im just wondering, if is possible to divide these pieces. My idea is to have static data in program directory and some "working" directory (temp, probably in user's home) with write permissions.
I've started a little electronics club locally, and started researching packaging arduino as .deb, because I need it.
I like the idea a LOT, particular the dependancy of java (gcc?)
Here are my thoughts, largely like yours with splitting up data
install arduino to it appears as "arduino" ie no path required in /usr/bin or whatever
create an "arduino_sketches" directory in ~home directory
Also package up the third party libs - eg timer, servo, and a few other standard ones. (is this legal ?)
include a package with the tutorials and manual (dont think these exist yet in html)
My felling is that arudino is geared up as you have pointed out for a single "directory" structure, this is a bad design imho, for example a new update is difficult with possibily or overwritting, or having to move stuff etc.
The only snag is that the preferences might need to change from default.
If deb packages are as easy as you say, then I'd be very glad )along with my club) to be a guinea pig and tester, mainly because the whole .deb bit is a bit confusing (and I dont have much time), but same goal.
you are absolutely right. With current arduino sources, it is almost impossible to make good directory structure. Unfortunately, Im not a Java programmer, so I cannot send a patch to solve problem.
If is any Java programmer here - it would be great to separate data dirs (sketch directory, ...), program code (java app) and temporary files (compiled libraries, .o files, ...) and configure these paths using "preferences" file.
After that, I can manage arduino packages for Debian/Ubuntu.
As of Arduino 0017, most compilation is done in temporary folders (including for libraries). The only thing that gets written within the application directory when uploading examples. This, too, will be moved to a temporary folder in Arduino 0018. That should make it possible to create a package, since the application directory could be read-only.
We'd need the dependancies =
gcc, JAVA, + arduino
arduino in /usr/bin/arduino, all other in libs/
Temp will be executed by os with debian, could be tmp or ~.tmp (not an issue)
I really want to package all the extra libs, their pretty stable, but need updating on a regular basis.. we need to version these.
=== The Experience ===
After apt-get install arduino and a coffee,
Click Icon in "?? which "category" is it gonna be under" ? = Development (need arduino.png
"Welcome to Arduino" - It seems that this is the first time you have run arduino.
Arduino needs somewhere to save all the sketches and stuff your goin to create. By default this is a directory calles arduino in you home directory.
The arduino directory will contain subdirectories with all your stuff
examples/ this directory contains tutorial and example code u can cut and paste
a sketches/ directory where all your mad projects will go
a preferences.ini file that saves your profile. U wont need to change this
a xlibs/ directory with extras
LEGAL.txt = gpl license agreement
docs/ - directory with html and docbook and pdf + logos' icons
Most of what you're describing happens already, in some form. The sketches are stored in a sketchbook whose location defaults to the Arduino/ sub-folder of your home or documents folder. The preferences go in ~/.arduino/preferences.txt. The compilation happens in the system tmp folder. Etc.
When I started using arduino about a month ago, I wondered, why there is nothing in the debian or ubuntu repositories.
And thought about packaging.
But I'm glad some people with more experience are already on the task.
Looking forward to it.
I would also be willing to be an early tester.
Once it's done, could you also upload it to backports.org for lenny?
I'm fairly new to Debian (this time around) and was following the HOWTO to install arduino-00018 but I don't know where the repositories are and how the sources.list should be edited to add them. It says to run sudo apt-get install arduino but without the correct repository it can't find the files. Help always appreciated. :o