Re: Building from source

Accueil Forums Feedback Building from source Re: Building from source

#2559
Anonyme
Inactif

I am making an ebuild for the linux gentoo overlay. (Gentoo overlays are the gentoo equivalence for multiple repositories). An ebuild is a script that the package management software (portage) will use to build and install a software.

If I resume what my ebuild is doing, this is
1) clone the git repository
2) copy it in a portage work directory
3) configure it with cmake
4) build it with make
5) install it with make install

The points 1 to 4 are just working fine, but 5 tell me:

make -j5 DESTDIR=/var/tmp/portage/media-sound/iannix-9999/image/ INSTALL_ROOT=/var/tmp/portage/media-sound/iannix-9999/image/ install
make: Nothing to be done for `install'

That imply that I will have to install every single file by hand from the ebuild.
That also imply that the “make install” phase is missing into iannix.

If you look at the code, you see “DESTDIR=“. This is a temporary install location, because portage use a sandbox. Portage make a 2 steps install, 1) in the sandbox at $DESTDIR, 2) in the final location in $PREFIX. After 1), you will find iannix files into $DESTDIR$PREFIX.

On linux, $PREFIX is usually /usr. See here for more on the Linux File Hierarchy.

This 2 steps install is necessary to insure, among other things, that it will be no files collision with other installed software. That imply than the install phase must honour both $DESTDIR and $PREFIX. $PREFIX is set with the configure step, $DESTDIR is set on the fly by portage when installing the package, The default PREFIX is /usr/local. That way, an user that install the package without the help of a package manager will not have to change it, and it will not collide with the files managed by the package manager. (It can be /usr for some system related packages). A package manager will replace it by /usr.

When installing by “hand”, only $PREFIX will be used, but when installing with/for a package manager, both $PREFIX and $DESTDIR will be used.

Also, if you want iannix to be incorporated not only into overlays or multiple repositories, you have to release some tarballs of the sources. In fact, this is all you need to do, because every single distribution will take the sources and compile them anyway (this is the best and only way to really insure the system consistency).

Also, if you want to try linux, and for the distributions I know, I would recommend gentoo or debian. gentoo because you will learn a lot very fast (the first install is hard, but after, this is just happiness), debian because you will find here a lot of dedicated peoples. And maybe the most important: both have an outstanding support forum with a lot of very nice and skilled peoples.

For a programmer, another gentoo advantage is than, as every thing is compiled from the sources by portage in the user’s computer, it is the easiest distribution for installing from the sources, and get the whole thing managed by the package manager (portage provide eclasses for git, svn, and so on, other eclases for qt or kde programs,…).

OK, the ebuild work. The files are installed into common linux places as follow:

/usr
/usr/bin
/usr/bin/IanniX
/usr/lib
/usr/lib/debug
/usr/lib/debug/usr
/usr/lib/debug/usr/bin
/usr/lib/debug/usr/bin/IanniX.debug
/usr/share
/usr/share/applications
/usr/share/applications/IanniX-iannix.desktop
/usr/share/doc
/usr/share/doc/iannix-9999
/usr/share/doc/iannix-9999/Documentation
/usr/share/doc/iannix-9999/Documentation/Common
/usr/share/doc/iannix-9999/Documentation/Common/css
/usr/share/doc/iannix-9999/Documentation/Common/css/reset.css
/usr/share/doc/iannix-9999/Documentation/Common/css/styleDocumentation.css
/usr/share/doc/iannix-9999/Documentation/Common/font
/usr/share/doc/iannix-9999/Documentation/Common/font/museo300-regular-webfont.eot
/usr/share/doc/iannix-9999/Documentation/Common/font/museo300-regular-webfont.svg
/usr/share/doc/iannix-9999/Documentation/Common/font/museo300-regular-webfont.ttf
/usr/share/doc/iannix-9999/Documentation/Common/font/museo300-regular-webfont.woff
/usr/share/doc/iannix-9999/Documentation/Common/font/museo500-regular-webfont.eot
/usr/share/doc/iannix-9999/Documentation/Common/font/museo500-regular-webfont.svg
/usr/share/doc/iannix-9999/Documentation/Common/font/museo500-regular-webfont.ttf
/usr/share/doc/iannix-9999/Documentation/Common/font/museo500-regular-webfont.woff
/usr/share/doc/iannix-9999/Documentation/Common/font/museo700-regular-webfont.eot
/usr/share/doc/iannix-9999/Documentation/Common/font/museo700-regular-webfont.svg
/usr/share/doc/iannix-9999/Documentation/Common/font/museo700-regular-webfont.ttf
/usr/share/doc/iannix-9999/Documentation/Common/font/museo700-regular-webfont.woff
/usr/share/doc/iannix-9999/Documentation/Common/font/museo_slab_500-webfont.eot
/usr/share/doc/iannix-9999/Documentation/Common/font/museo_slab_500-webfont.svg
/usr/share/doc/iannix-9999/Documentation/Common/font/museo_slab_500-webfont.ttf
/usr/share/doc/iannix-9999/Documentation/Common/font/museo_slab_500-webfont.woff
/usr/share/doc/iannix-9999/Documentation/Common/font/museosans_500-webfont.eot
/usr/share/doc/iannix-9999/Documentation/Common/font/museosans_500-webfont.svg
/usr/share/doc/iannix-9999/Documentation/Common/font/museosans_500-webfont.ttf
/usr/share/doc/iannix-9999/Documentation/Common/font/museosans_500-webfont.woff
/usr/share/doc/iannix-9999/Documentation/Common/font/stylesheet.css
/usr/share/doc/iannix-9999/Documentation/Common/img
/usr/share/doc/iannix-9999/Documentation/Common/img/add.jpg
/usr/share/doc/iannix-9999/Documentation/Common/img/autosize.png
/usr/share/doc/iannix-9999/Documentation/Common/img/bezier.png
/usr/share/doc/iannix-9999/Documentation/Common/img/center.jpg
/usr/share/doc/iannix-9999/Documentation/Common/img/cursor.png
/usr/share/doc/iannix-9999/Documentation/Common/img/curve.png
/usr/share/doc/iannix-9999/Documentation/Common/img/fastrewind.png
/usr/share/doc/iannix-9999/Documentation/Common/img/globale.png
/usr/share/doc/iannix-9999/Documentation/Common/img/info.png
/usr/share/doc/iannix-9999/Documentation/Common/img/inspector_cursor.png
/usr/share/doc/iannix-9999/Documentation/Common/img/inspector_curve.png
/usr/share/doc/iannix-9999/Documentation/Common/img/inspector_message.png
/usr/share/doc/iannix-9999/Documentation/Common/img/inspector_selection.png
/usr/share/doc/iannix-9999/Documentation/Common/img/inspector_trigger.png
/usr/share/doc/iannix-9999/Documentation/Common/img/logo_black.png
/usr/share/doc/iannix-9999/Documentation/Common/img/play.png
/usr/share/doc/iannix-9999/Documentation/Common/img/registercolor.png
/usr/share/doc/iannix-9999/Documentation/Common/img/registertexture.png
/usr/share/doc/iannix-9999/Documentation/Common/img/remove.png
/usr/share/doc/iannix-9999/Documentation/Common/img/script.jpg
/usr/share/doc/iannix-9999/Documentation/Common/img/setactive.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setcoloractive.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setcoloractivemessage.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setcolorinactive.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setcolorinactivemessage.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setcurve.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setgroup.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setlabel.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setline.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setmessage.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointat.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointsellipse.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointsimg.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointssvg.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointssvg2.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpointstxt.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setpos.jpg
/usr/share/doc/iannix-9999/Documentation/Common/img/setresize.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setsize.png
/usr/share/doc/iannix-9999/Documentation/Common/img/settextureactive.png
/usr/share/doc/iannix-9999/Documentation/Common/img/settextureactivemessage.png
/usr/share/doc/iannix-9999/Documentation/Common/img/settextureinactive.png
/usr/share/doc/iannix-9999/Documentation/Common/img/settextureinactivemessage.png
/usr/share/doc/iannix-9999/Documentation/Common/img/setwidth.png
/usr/share/doc/iannix-9999/Documentation/Common/img/trigger.png
/usr/share/doc/iannix-9999/Documentation/Common/img/zoom.jpg
/usr/share/doc/iannix-9999/Documentation/Common/jquery.js
/usr/share/doc/iannix-9999/Documentation/Common/vid
/usr/share/doc/iannix-9999/Documentation/Common/vid/setbounds.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/setboundsvalue.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/setoffset.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/setpattern.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/setspeed.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/setspeedf.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/settime.swf
/usr/share/doc/iannix-9999/Documentation/Common/vid/speed.swf
/usr/share/doc/iannix-9999/Documentation/EN
/usr/share/doc/iannix-9999/Documentation/EN/index.html
/usr/share/doc/iannix-9999/Documentation/EN/intro.html
/usr/share/doc/iannix-9999/Documentation/EN/objets.html
/usr/share/doc/iannix-9999/Documentation/EN/reference.html
/usr/share/doc/iannix-9999/Documentation/EN/script.html
/usr/share/doc/iannix-9999/Documentation/FR
/usr/share/doc/iannix-9999/Documentation/FR/index.html
/usr/share/doc/iannix-9999/Documentation/FR/intro.html
/usr/share/doc/iannix-9999/Documentation/FR/objets.html
/usr/share/doc/iannix-9999/Documentation/FR/reference.html
/usr/share/doc/iannix-9999/Documentation/FR/script.html
/usr/share/doc/iannix-9999/Documentation/index.html
/usr/share/doc/iannix-9999/Readme.txt.bz2
/usr/share/iannix
/usr/share/iannix/Examples
/usr/share/iannix/Examples/Learn - Curve 3D equations.nxscript
/usr/share/iannix/Examples/Learn - Curve 3D points.nxscript
/usr/share/iannix/Examples/Learn - How to manage received messages in scripts.nxscript
/usr/share/iannix/Examples/Performance - (a-z)².nxscript
/usr/share/iannix/Examples/Performance - Recurrence.nxscript
/usr/share/iannix/Examples/Script sample - Fractal.nxscript
/usr/share/iannix/Examples/Script sample - Glyphs.nxscript
/usr/share/iannix/Examples/Script sample - Grid.nxscript
/usr/share/iannix/Examples/Script sample - IanniX logo.nxscript
/usr/share/iannix/Examples/Script sample - Random 3D lines.nxscript
/usr/share/iannix/Examples/Script sample - Rosette MIDI.nxscript
/usr/share/iannix/Examples/Script sample - Rosette.nxscript
/usr/share/iannix/Examples/Script sample - Shape with Xenakis score.nxscript
/usr/share/iannix/Examples/Script sample - Smooth 3D curves.nxscript
/usr/share/iannix/Examples/Script sample - Spin.nxscript
/usr/share/iannix/Examples/Script sample - Torus.nxscript
/usr/share/iannix/Examples/Script sample - Xenakis Metastaseis linear.nxscript
/usr/share/iannix/Examples/Script sample - Xenakis Metastaseis.nxscript
/usr/share/iannix/Examples/Simple Javascript example (basic).nxscript
/usr/share/iannix/Examples/Simple Javascript example (more complex).nxscript
/usr/share/iannix/Examples/Simple MIDI example.nxscript
/usr/share/iannix/Examples/Simple TCP-XML example.nxscript
/usr/share/iannix/Examples/Simple serial example.nxscript
/usr/share/iannix/Examples/Style sample - Triggers in triangle.nxstyle
/usr/share/iannix/Examples/Tool - Add random triggers.nxscript
/usr/share/iannix/Examples/Xenakis - Metastaseis.png
/usr/share/iannix/Examples/Xenakis - Metastaseis.svg
/usr/share/iannix/Examples/background.jpg
/usr/share/iannix/Examples/logo.png
/usr/share/iannix/Examples/trigger_loop.png
/usr/share/iannix/Examples/trigger_play.png
/usr/share/iannix/Examples/trigger_speaker.png
/usr/share/iannix/Examples/trigger_speaker_mask.png
/usr/share/iannix/Examples/trigger_triangle.png
/usr/share/iannix/Patches
/usr/share/iannix/Patches/Ableton Live MIDI
/usr/share/iannix/Patches/Ableton Live MIDI/1. Please run Simple MIDI example.png
/usr/share/iannix/Patches/Ableton Live MIDI/2. Live setup.png
/usr/share/iannix/Patches/Ableton Live MIDI/IanniX Project
/usr/share/iannix/Patches/Ableton Live MIDI/IanniX Project/Ableton Project Info
/usr/share/iannix/Patches/Ableton Live MIDI/IanniX Project/Ableton Project Info/Project8_1.cfg
/usr/share/iannix/Patches/Ableton Live MIDI/IanniX Project/IanniX.als
/usr/share/iannix/Patches/Arduino
/usr/share/iannix/Patches/Arduino/Check your serial port setup and run Simple serial example.png
/usr/share/iannix/Patches/Arduino/IanniX
/usr/share/iannix/Patches/Arduino/IanniX/IanniX.ino
/usr/share/iannix/Patches/Arduino/IanniX/iannix_lib.cpp
/usr/share/iannix/Patches/Arduino/IanniX/iannix_lib.h
/usr/share/iannix/Patches/CSound
/usr/share/iannix/Patches/CSound/ChebyshevTest01.csd
/usr/share/iannix/Patches/CSound/ChebyshevTest01.nxscore
/usr/share/iannix/Patches/CSound/CsoundTemplate.csd
/usr/share/iannix/Patches/CSound/CsoundTest01.csd
/usr/share/iannix/Patches/CSound/CsoundTest01.nxscore
/usr/share/iannix/Patches/CSound/CsoundTest02.csd
/usr/share/iannix/Patches/CSound/CsoundTest02.nxscore
/usr/share/iannix/Patches/CSound/CsoundTest03.csd
/usr/share/iannix/Patches/CSound/CsoundTest03.nxscore
/usr/share/iannix/Patches/ChucK
/usr/share/iannix/Patches/ChucK/ChucK.txt
/usr/share/iannix/Patches/MaxMSP
/usr/share/iannix/Patches/MaxMSP/IanniX.maxpat
/usr/share/iannix/Patches/MaxMSP/synthCursor.maxpat
/usr/share/iannix/Patches/MaxMSP/synthTrigger.maxpat
/usr/share/iannix/Patches/Pd
/usr/share/iannix/Patches/Pd/IanniX.pd
/usr/share/iannix/Patches/Pd/subpatch.pd
/usr/share/iannix/Patches/Processing
/usr/share/iannix/Patches/Processing/IanniX
/usr/share/iannix/Patches/Processing/IanniX/IanniX.pde
/usr/share/iannix/Patches/SC
/usr/share/iannix/Patches/SC/Iannix_classes
/usr/share/iannix/Patches/SC/Iannix_classes/Iannix.sc
/usr/share/iannix/Patches/SC/Iannix_classes/IannixObjects.sc
/usr/share/iannix/Patches/SC/Iannix_classes/PianniX.sc
/usr/share/iannix/Patches/SC/Iannix_help
/usr/share/iannix/Patches/SC/Iannix_help/Examples
/usr/share/iannix/Patches/SC/Iannix_help/Examples/0_Read_me.html
/usr/share/iannix/Patches/SC/Iannix_help/Examples/1_iannix_receive.html
/usr/share/iannix/Patches/SC/Iannix_help/Examples/2_iannix_send.html
/usr/share/iannix/Patches/SC/Iannix_help/Examples/3_receive+send_supercollider_grain.html
/usr/share/iannix/Patches/SC/Iannix_help/Examples/4_Gendy_Metastaseis.html
/usr/share/iannix/Patches/SC/Iannix_help/Examples/SCcube.png
/usr/share/iannix/Patches/SC/Iannix_help/Examples/SCcube_mask.png
/usr/share/iannix/Patches/SC/Iannix_help/Iannix.html
/usr/share/iannix/Patches/SC/Iannix_help/IannixCursor.html
/usr/share/iannix/Patches/SC/Iannix_help/IannixCurve.html
/usr/share/iannix/Patches/SC/Iannix_help/IannixObject.html
/usr/share/iannix/Patches/SC/Iannix_help/IannixTrigger.html
/usr/share/iannix/Patches/SC/Instructions.txt
/usr/share/iannix/Project
/usr/share/iannix/Project/Important for former IanniX users.txt
/usr/share/iannix/Project/New Score Template.nxscore
/usr/share/iannix/Project/New Script Template.nxscript
/usr/share/iannix/Tools
/usr/share/iannix/Tools/Add a linear cursor.nxscript
/usr/share/iannix/Tools/HTML Template.html
/usr/share/iannix/Tools/JavaScript Library.js
/usr/share/iannix/Tools/Reset orientation.nxscript
/usr/share/iannix/Tools/Reset score.nxscript
/usr/share/iannix/Tools/Restore original background.nxstyle
/usr/share/iannix/Tools/Restore triggers original shapes.nxstyle
/usr/share/iannix/Tools/Translation_fr_FR.qm
/usr/share/iannix/Tools/Translation_fr_FR.ts
/usr/share/iannix/Tools/White background.nxstyle
/usr/share/iannix/Tools/background.jpg
/usr/share/iannix/Tools/backgroundWhite.jpg
/usr/share/iannix/Tools/trigger.png
/usr/share/iannix/Tools/trigger_message.png
/usr/share/iannix/Tools/trigger_speaker_1.png
/usr/share/iannix/Tools/trigger_speaker_2.png
/usr/share/iannix/Tools/trigger_speaker_3.png
/usr/share/iannix/Tools/trigger_speaker_4.png
/usr/share/iannix/pixmaps
/usr/share/iannix/pixmaps/icon.ico
/usr/share/iannix/pixmaps/icon.png
/usr/share/iannix/pixmaps/icon_green.ico
/usr/share/iannix/pixmaps/icon_orange.ico
/usr/share/iannix/pixmaps/res_about.png
/usr/share/iannix/pixmaps/res_appicon_pause.png
/usr/share/iannix/pixmaps/res_appicon_play.png
/usr/share/iannix/pixmaps/res_icon_cursor.png
/usr/share/iannix/pixmaps/res_icon_cursor_select.png
/usr/share/iannix/pixmaps/res_icon_curveCircle.png
/usr/share/iannix/pixmaps/res_icon_curveFree.png
/usr/share/iannix/pixmaps/res_icon_curvePoint.png
/usr/share/iannix/pixmaps/res_icon_curve_select.png
/usr/share/iannix/pixmaps/res_icon_down.png
/usr/share/iannix/pixmaps/res_icon_editor.png
/usr/share/iannix/pixmaps/res_icon_ff.png
/usr/share/iannix/pixmaps/res_icon_fullscreen.png
/usr/share/iannix/pixmaps/res_icon_grid.png
/usr/share/iannix/pixmaps/res_icon_grid_snapX.png
/usr/share/iannix/pixmaps/res_icon_grid_snapY.png
/usr/share/iannix/pixmaps/res_icon_help.png
/usr/share/iannix/pixmaps/res_icon_inspector.png
/usr/share/iannix/pixmaps/res_icon_inspector_info.png
/usr/share/iannix/pixmaps/res_icon_inspector_osc.png
/usr/share/iannix/pixmaps/res_icon_inspector_project.png
/usr/share/iannix/pixmaps/res_icon_inspector_view.png
/usr/share/iannix/pixmaps/res_icon_label.png
/usr/share/iannix/pixmaps/res_icon_light.png
/usr/share/iannix/pixmaps/res_icon_lock.png
/usr/share/iannix/pixmaps/res_icon_minus.png
/usr/share/iannix/pixmaps/res_icon_pause.png
/usr/share/iannix/pixmaps/res_icon_play.png
/usr/share/iannix/pixmaps/res_icon_plus.png
/usr/share/iannix/pixmaps/res_icon_timer.png
/usr/share/iannix/pixmaps/res_icon_transport.png
/usr/share/iannix/pixmaps/res_icon_trigger.png
/usr/share/iannix/pixmaps/res_icon_trigger_select.png
/usr/share/iannix/pixmaps/res_info_curve.png
/usr/share/iannix/pixmaps/res_info_export.png
/usr/share/iannix/pixmaps/res_info_img.png
/usr/share/iannix/pixmaps/res_info_svg.png
/usr/share/iannix/pixmaps/res_info_txt.png
/usr/share/iannix/pixmaps/res_info_update.png
/usr/share/iannix/pixmaps/res_logo.png
/usr/share/iannix/pixmaps/res_splash.png
/usr/share/iannix/pixmaps/res_splash2.png

But when I run IanniX, I get:

IanniX
/usr/bin
Command line syntax : ./IanniX
trying to open file "/dev/tty.usbserial-A600afc5"
could not open file: Aucun fichier ou dossier de ce type
Last update : 12/08/2012 20:22:19 (each 1 days)
Ready to start!
Erreur de segmentation

If I stop portage when the build is finished and run IanniX from the source directory, it work.
So here, I am stick. Is it something I can do like a wrapper script?

Another issue is than I can see a few directories into the build directory, but nothing was compiled into them:

qextserialport qffmpeg qjsedit qkinect qrtmidi qwacom

What are those? Can an user want them, and if yes, what must I do in order to compile them? Do they need custom dependencies?

It is also an Info.plist file. Do I need it on linux?


© IanniX Association

Qu'est-ce que IanniX ? | Téléchargement | Showcase | Forum | Recherche | À propos