Tux Guitar


  Forums : Help
Subject Need help with packaging for Fedora

Author Message
Post: Sep 24th 2008 at 9:05 PM


I am currently building a Fedora Linux package of tuxguitar, which, after it is done, will hopefully be officially distributed by Fedora.

There are few guidelines I have to follow to satisfy the Fedora packaging policies.

1: I have to be able to build tuxguitar with gcj and it has to be able to run with an open source jdk. I have managed to do this.

2: The default installation of tuxguitar puts some .so files into /usr/share. Fedora does not want any arch dependent files inside /usr/share . Therefore I patched the GNUMakefile's inside the source file and replaced



The source compiles fine and I get every file where I want them to be.

But when I run tuxguitar and go to Tools-> Plugins there are no plugins listed. Also When I go to Tools->Settings->Sound the Midi port combobox is empty. Obviously the program does not load the plugin libraries properly.

What else should I patch to fix this? Any help will be appreciated.

Back to Top
Post: Sep 24th 2008 at 9:14 PM

When you install a plugin, you should have some info.
if you moved .so file to lib, make sure the plugin "folder" what have the info didn't moved to.
you should have for example:

This folder must be at "share/plugins"
or, at classpath.

Back to Top
Post: Sep 24th 2008 at 9:39 PM

Thanks for the quick reply.

If I move the so files to /usr/lib/tuxguitar/plugins
and keep the info directories at /usr/share/tuxguitar/plugins/

I get error messages like:

java.lang.ClassNotFoundException: org.herac.tuxguitar.io.ascii.ASCIIPluginExporter not found in org.herac.tuxguitar.util.TGClassLoader$URLClassLoaderImpl{urls=[file:/usr/./share/tuxguitar/plugins/libtuxguitar-compat.so

because actually the so file is at


The info and the so files are not linked. How can I solve this?

Adding /usr/share/tuxguitar/plugins/ to $CLASSPATH did not help.

Back to Top
Post: Sep 24th 2008 at 9:48 PM

i wrote "oget" as reply.. but it seems i did it on "Author" :)

make sure that tuxguitar is receibing this vars:

I don't exactly remember now if plugins are loaded before or after check arguments.. but you can try run tuxguitar as:
tuxguitar -Dtuxguitar.library.path=/usr/lib/tuxguitar/plugins/

And it should automatically load all libraries at this path..

Back to Top
Post: Sep 24th 2008 at 10:05 PM

Yeah, when I saw that I said: Wait a minute, I did not reply myself?!? :)

Well, excellent. That solution actually worked. I will finish packaging tuxguitar tonight and hopefully this software will reach more people via Fedora (Some people don't install those software that are not packaged for their own distro.).

I have some more questions if you don't mind.

1) what icon do you want me to use for the desktop menu entry?

2) For now I could only manage to get sound out of tuxguitar via timidity. Is there a more native way of handling the sound with openjdk?

3) There is a pdf plugin I couldn't get to build with gcj. I think it depends on a file called itext.jar (I might be wrong). Where can I find that file, is it open source?

4) Similarly the system tray plugin is not built. How can I enable to build it with gcj?

Thanks a lot for your time!

Back to Top
Post: Sep 24th 2008 at 10:34 PM

i used share/skins/lavender/icon.png for latest version.
but you can use what you want.

timidity works with "tuxguitar-alsa" plugin.
you can use other synths like fluidsynth for tuxguitar-alsa
Now, if you looks for any openjdk synth.
you can try "gervill" project:
what is a replaced for the sun's closed synthesizer.
Gervill may need TuxGuitar-jsa plugin (don't works on GCJ)

I couldn't build itext.jar under GCJ.
i don't exactly remember now what was the problem. but i think it was because itext uses "com.sun" classes.

Similarly the system tray plugin is not built. How can I enable to build it with gcj?
I didn't build this plugin as default on official release.
so i don't remeber the build script satus..
It's supposed if you add tuxguitar-tray to build_gcj.sh
it may works. didn't it ?
As default it should be enabled..
however, on Tools -> Plugins you may be able to enable/disable it.

Back to Top
Post: Sep 26th 2008 at 6:29 AM

The packaging for Fedora is complete. It may take some time for it to appear in Fedora repositories.

In the mean time if you want to publish the fedora binaries in your website I'll be happy to send them to you. Just tell me where to send them.

Thanks for all the help again.

Back to Top
Post: Sep 26th 2008 at 9:20 AM

> It may take some time for it to appear in Fedora repositories
But is it available for download on any "unoficial" , "unstable" (or as you want call it :) ) place ?
If yes, i can put a direct link.
as i did for "Debian" and "FreeBSD" pagkages.

It's more easy for me to link to your package (and ofcourse help with any future script bug) than mantain it myself while i use a distro based on dpkg instead of rpm

Back to Top
Post: Sep 26th 2008 at 10:04 AM

Alright. I will upload them somewhere, then I'll give you the link. I have to build it for different architectures though (i386, x86_64, ppc). That might take me a while.

By the way, I am trying to compile the fluidsynth plugin in the source directory. But what does this plugin do? Should I have fluidsynth running in the background if I want to use this plugin?

I can't use gervill if it does not compile with gcj.

Back to Top
Post: Sep 26th 2008 at 10:27 AM

>By the way, I am trying to compile the fluidsynth plugin in the source directory. But what does this
>plugin do? Should I have fluidsynth running in the background if I want to use this plugin?

OK, I got it compiled (it requires some library from fluidsynth-devel). But when I run tuxguitar I get an error message:

Loading: /usr/lib64/tuxguitar/plugins/libtuxguitar-fluidsynth.so
/usr/lib64/tuxguitar/tuxguitar.bin: symbol lookup error: /usr/lib64/tuxguitar/libtuxguitar-fluidsynth-jni.so: undefined symbol: new_fluid_settings

What is wrong?

Back to Top
Post: Sep 26th 2008 at 10:18 PM

Nevermind about fluidsynth. I solved the linking problem. It's working now. I will build the packages and give you the links very soon.

Back to Top
Post: Sep 26th 2008 at 10:32 PM

mm i forgot to reply...

I think now you know the answers..

> But what does this plugin do?
This plugin uses fluidsynth library as synthesizer plugin.
you can load soundfonts from "Tools -> Plugins" and click configure on Fluidsynth plugin.
Then all fonts you added will be able to select on Tools -> Settings : Sound -> MIDI Port. (as you do with timidity ports)

> Should I have fluidsynth running in the background if I want to use this plugin?
No, it just need fluidsynth installed, and plugin is who will load the library. (no background process)

If you run fluidsynth in background, so you can connect to it throw Alsa plugin.
But this fluidsynth daemon don't understand some controller events used by tuxguitar (e.g: to play bends, vibratos, etc)

> I can't use gervill if it does not compile with gcj.
Gervill is a Java Sound Api implementation.
you don't need redistribute it with tuxguitar.
It was already implemented on latest OpenJDK releases.

What you need to make gervill works is TuxGuitar-jsa plugin.
It don't works under GCJ, but if must should without errors.

Back to Top
Post: Sep 28th 2008 at 7:08 AM

Here is the Fedora 9 SRPM:

Here are the Fedora 9 binary RPM's for 32bit and 64bit systems:

I only have a x86_64 system with Fedora 9. The binary installs and works fine. I wasn't able to test the i386 package but it should run without problems.

For Fedora 8, the above source RPM should work. It has to be built by:
$ rpmbuild --rebuild tuxguitar-1.0-3.fc9.src.rpm
(I can build it if there is need)

Similarly ppc users can build their own RPM's with the same command.

All these files will appear on Fedora repo's as soon as they are accepted.

These RPM's have fluidsynth and system-tray plugins enabled. They require fluidsynth-libs, openjdk (icedtea for F8).

Please let me know if you need more info.

Thanks for the great application!

Back to Top
Post: Sep 28th 2008 at 6:20 PM

Actually, there is a little dependency issue if someone wanted to build the SRPM in Fedora 8. Here are the latest files to be considered (ignore the files of the previous post):

Fedora 9 SRPM:

Fedora 9 binary RPM's for 32bit and 64bit systems:

Back to Top
Post: Sep 28th 2008 at 6:39 PM

For those who're interested here is the spec file I wrote to build the RPM packages. It also contains the changelog for build versions:


Back to Top
Post: Sep 29th 2008 at 11:14 AM

Hi oget, thanks for all.

i'm a little bussy these days, i'll try to add links to your files when find some free time.

Just a question..
i'm a debian based user ( i used old redhat, then fedora on the past, but never builded a .rpm file ) so i don't know enought about how to build it.

if i have "tuxguitar.spec", what should i do to build the RPM file ? do i need something more ?
I ask you this because i can upload tuxguitar.spec to SVN but i need to know if there are other dependencies too.

How many hard can be split plugins in RPM files ?
i mean:

I distributed official releases (tuxguitar + plugins) toghether because i don't have a repository to split them. and it may be hard to user download 1 by 1 file.
but if i have it, with apt-get or yum, it would be easy for user install all.
it would allow users uninstall plugins what don't use (release memory), and maybe more clean to install new plugins on the future.

Ofcourse this is what i'd do if i have my own repository, but you don't need to do this :)


Back to Top
Post: Sep 29th 2008 at 3:14 PM

Hi Julian,
.rpm files are like .deb files. They are ready to go. You don't need to do anything with them.

.src.rpm files come with the source code+patches+spec file. They are not compiled. How to apply the patches and how to sort the files into directories is defined in the spec file. You build a .src.rpm into a .rpm with

rpmbuild --rebuild foo.src.rpm

This will unpack the source, apply the patches, compile and produce an .rpm . I only compiled for the latest fedora (9) and for only i386 and x86_64 archs. You can just put those RPM's online.

To build a .src.rpm you have to have an rpm-tree. I don't know if there are tools to build an rpm-tree on debian system. An rpm-tree looks like this


You usually put the sources and the patches in the SOURCES dir. The spec file goes into the SPEC dir. You go to the SPEC dir and do a

rpmbuild -bs foo.spec

And this will build you a .src.rpm.

The spec file can be put into the SVN as is.

But I want to make a few things clear before we do that. First of all I am not a java programmer so my java knowledge is quite limited. I need you to answer these questions.

(1) If I use the build_gcj script to compile the source, I don't need to have openjdk (or any other java platform) to run the program, right?
(2) How about if I want to compile the source with openjdk? Then I have to have openjdk platform to run the program. Is that right?
(3) How do I compile this software with openjdk?

As for splitting the plugin packages, we have discussed this in fedora bugzilla. The common idea of fedora is to include as much as possible from a source file. I was told that if there is a single source file it is best to have one single rpm. Please see the bugzilla entry:

I am still not done with the packaging. I am open to new ideas. Especially if compiling with openjdk will increase the number of features tuxguitar provides (e.g. gervill) I will be happy to switch to openjdk. You just have to tell me how.

Wow, it's been a long post. :) Cheers

Back to Top
Post: Sep 29th 2008 at 3:46 PM

Yes there is RPM package for debian. i did something on the past but don't remember well. however if not you can allways use a VM :)

>> (1) If I use the build_gcj script to compile the source, I don't need to have openjdk ...
build_gcj script only call TuxGuitar and it's plugins GNUMakeFiles. and install it on a folder.
now, the GNUMakefiles at root of TuxGuitar or each plugins
are GCJ exclusives to build a "GCJ native release".
You will not able to run this release with any JVM (openjdk, sunjdk, etc).
Because it's not bytecode (.class) compilation. it will be native libraries (.so) and 1 executable file
So you'll need libgcj8 (or version used to build package) as dependency to run this release

(2) How about if I want to compile the source with openjdk?Then I have to have openjdk....

No, if you build tuxguitar (or any other java application) with openJdk you are building "bytecode", so you can run it with any other JVM.
When you use java: (e.j java application.jar )
the VM is java and application.jar is just a file.
see it as if you open an image with gimp: gimp myFile.png
PNG is a file-format what don't do nothing. is gimp who do something with that file.
so for java bytecode is the same.
.class files are fileformats, and if you have a JVM that understand that file format so you are able to run it.

Cleaning: if you build tuxguitar as bytecode,
you can build it with GCJ (but not in native mode), openJDK, Sun JDK, etc and any of that JVM's will be able to open it. and you also should be able to open it on other OS without rebuild it.

But if you build it as native, you need the native interpreter (e.g: libgcj8 for GCJ release, Jet VM for exelsior Jet release)

By other hand, there is something called "JNI" (java native interface) that allow you wrapp native libraries from java to OS.
some plugins like alsa, uses JNI.

This files are not multiplatform, and are not builded java.
they needs a C compiler ( GCC ) to build. and JDK header files (here is where i told about GCJ as dependency on the other topic)

(3) How do I compile this software with openjdk?
You should build is as a normal Java application.
I can write hours but i'll say same as here: (this is all that my english allow me :)

Back to Top
Post: Sep 29th 2008 at 9:16 PM

Great, I was able to compile the package with openjdk. I think it will be better this way.

But I have the same problem I had before. The program loads fine but the plugins don't load.

Now the plugin jar files are installed inside /usr/share/java/
and tuxguitar.jar is inside /usr/share/tuxguitar/

No error messages. Command line doesn't tell about any plugins either.

So, What is wrong this time?

Back to Top
Post: Sep 29th 2008 at 9:47 PM

You you want to load plugins outside share/plugins
you need to:
_ set "tuxguitar.class.path" property on launcher script.

Then tuxguitar will automatically load all files on this path to it classpath.

I don't recommended this, because if you have 50 .jar files at /usr/share/java so tuxguitar will load all in memory.

_ Another way is to add each plugin to the classpath on launcher script (where you set tuxguitar.jar:swt.jar,etc )
but it will remove the possibility of "dynamic" plugins to end user.

Now my question is, why do you want to move plugins to /usr/share/java instead of /usr/share/tuxguitar/plugins ?
If it's an "structure" thing.. so why tuxguitar.jar is at /usr/share/tuxguitar and not on /usr/share/java as all plugins

Usually .jar files at /usr/share/java are API,Frameworks or libraries usefull for other java applications. but on this case, plugins are for tuxguitar only and are not usefull for other applications.

Back to Top
Post: Sep 29th 2008 at 9:56 PM

Yes it is a "structure" thing of fedora.
But there is exceptions. If the jar files are only part of the particular application and are not useful for other applications they can be at other locations. So I will put them all at /usr/share/tuxguitar

By the way I found a solution to my problem, exporting each jar file to CLASSPATH one by one:
for i in /usr/share/java/tuxguitar-*; do export CLASSPATH=$CLASSPATH:$i; done

But since these plugins are not useful for anything else I guess it is ok to put them into /usr/share/tuxguitar

Back to Top
Post: Sep 29th 2008 at 10:04 PM

I did it this way:
Every jar file is at /usr/share/tuxguitar
But still the same problem. No plugins getting loaded.
So I have to modify the launching script I guess.

Back to Top
Post: Sep 29th 2008 at 10:10 PM

Uh oh, sorry. They have to be at /usr/share/tuxguitar/plugins
I missed that. Now with that fixed the plugins load fine.

But one last problem. The application is less responsive than when I compiled it with gcj. For instance if I go to Tools-> Settings -> Sound , it takes 10 seconds for the Midiport combobox to show something. It shows empty during this interval. Is this normal?

Back to Top
Post: Sep 29th 2008 at 10:26 PM

No this is no normal, but i knew about similar problems with PulseAudio. do you have it ?
i know that pulse audio have problems with MIDI and causes this delay, and on some cases it make impossible to play sounds.

By other hand, what plugins did you installed ?
maybe one of them is causing problems.
you can remobe 1 by 1 to see what plugin is taking this time.

Back to Top
Post: Sep 29th 2008 at 10:52 PM

OK I found the problematic plugin.
When I disable Java Sound Api Plugin (is this gervill?) everything goes fast and normal again.

And yes Fedora uses pulseaudio as default. So I think there is not much to do for this.

Back to Top
Post: Sep 29th 2008 at 11:08 PM

> is this gervill?
Gervill implements a synthesizer for the java sound api.
but it's just as a module (or plugin) for the api.
So it can be gervill yes, but it can be another thing too.
If now that you know the problem is on java sound api.
You can go to Tools ->Plugins and disable all other sound plugins and keep only java sound.
and then what MIDI Ports and MIDI Sequencers do you see available to select?

Back to Top
Post: Sep 29th 2008 at 11:46 PM

MIDI Sequencers:
Tuxguitar Sequencer and Real Time Sequencer
MIDI Ports:
I see 1 Gervill entry and bunch of Audigy2 entries. (Audigy2 is the name of my alsa device)

By the way Fedora has a script that checks the "quality" of rpm packages. In order to send the rpm file to the official repo the script needs to show no warnings and errors. The script gives me a warning:
[W} class-path-in-manifest /usr/share/tuxguitar/tuxguitar.jar

This is the explanation of the warning:

The META-INF/MANIFEST.MF file in the jar contains a hardcoded Class-Path.
These entries do not work with older Java versions and even if they do work,
they are inflexible and usually cause nasty surprises.

Do you know of an easy way of fixing the hardcoding in that jar file. I am asking this because you know java a lot better than me. It will take me hours to figure this out myself.

Back to Top
Post: Sep 30th 2008 at 12:04 AM

> The META-INF/MANIFEST.MF file in the jar contains a hardcoded Class-Path.
This is because paths used to build applications.
See on build.properties, as default for GNU/Linux releases we use "relative" paths to allow the user run tuxguitar without need to install it as root.
But if you use a package manager with dependencies (like itext.jar, swt.jar ) you can just set on build.properties where are they. you can set the share path to /usr/share/tuxguitar so it's not needed at build time, it's just to generate launcher scripts, and MANIFEST file.

Another option is open buils.xml and remove lines what make the MANIFEST file, so it's not usefull if you'll run tuxguitar with a build script.

However i think i'll remove this MANIFEST entry for future releases, because it is not used on tuxguitar.
MANIFEST files allow you to set some classpath vars, but not to set the java.library.path.
and as tuxguitar have some native plugins (and also SWT needs it if you don't use the official release )
it may don't work right launching application as "java -jar tuxguitar.jar"

About delay on sound settings. What about if you run tuxguitar with a Sun java. do you steal have this delay ?

Back to Top
Post: Sep 30th 2008 at 12:15 AM

Nope, no delay on Sun java.

Also on openjdk, tuxguitar freezes for about 10 seconds if I select/deselect Java Sound Api Plugin. So it is gervill that is the problem from what I understood.

About the MANIFEST, I will patch the source according to what you said and see what happens.

Back to Top
Post: Sep 30th 2008 at 3:27 AM

Removing the MANIFEST entry and adding an export path/to/swt.jar to CLASSPATH solved the issue.

I like the openjdk build better. I will build the binary RPM's and upload them together with the SPEC file (which you can add to svn) shortly.

Back to Top
Post: Sep 30th 2008 at 3:50 AM

The program ran fine for a while. Then it froze with the following (I am using timidity output):
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:614)
at org.herac.tuxguitar.gui.editors.tab.TGMeasureImpl.dispose(Unknown Source)
at org.herac.tuxguitar.gui.editors.tab.TGTrackImpl.clear(Unknown Source)
at org.herac.tuxguitar.song.models.TGSong.clear(Unknown Source)
at org.herac.tuxguitar.song.managers.TGSongManager.clearSong(Unknown Source)
at org.herac.tuxguitar.gui.actions.system.DisposeAction.dispose(Unknown Source)
at org.herac.tuxguitar.gui.actions.system.DisposeAction$2.run(Unknown Source)
at org.herac.tuxguitar.gui.helper.SyncThread$1.run(Unknown Source)
at org.herac.tuxguitar.util.TGSynchronizer$TGSynchronizerTask.run(Unknown Source)
at org.herac.tuxguitar.gui.TuxGuitar$1$1.run(Unknown Source)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:129)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
at org.herac.tuxguitar.gui.TuxGuitar.displayGUI(Unknown Source)
at org.herac.tuxguitar.gui.TGMain.main(Unknown Source)

I think the JAVA_FLAGS:="-Xms128m -Xmx128m" is causing the problem. I will reduce the stack size and try.

Back to Top
Post: Sep 30th 2008 at 11:08 AM

mm it is very strange. with what JVM did it happen ?
if you run:
tuxguitar -i
it may shouw you the real JVM used to launch it.

I don't think the problem is at JAVA_FLAGS.
but if it is, so you need to "increment" values. e.j: 256.

Back to Top
Post: Sep 30th 2008 at 6:03 PM

This is tuxguitar -i
System Info:
-> OS-Name: Linux
-> OS-Arch: amd64
-> OS-Version:
-> JVM-Name: OpenJDK 64-Bit Server VM
-> JVM-Version: 1.6.0-b09
-> JVM-Vendor: Sun Microsystems Inc.
-> Java-Version: 1.6.0
-> Java-Vendor: Sun Microsystems Inc.
-> Java-Home: /usr/lib/jvm/java-1.6.0-openjdk-
-> Java-Class-Path: :/usr/lib64/java/swt.jar:/usr/share/tuxguitar/:/usr/share/tuxguitar//tuxguitar.jar:
-> Java-Library-Path: /usr/lib64/jni

So it uses openjdk. The weird thing is I ran tuxguitar with -Xms128m -Xmx128m since then for an extended period of time, but I wasn't able to re-produce the memory leak.

I will pack tuxguitar for fedora as is (with openjdk and -Xms128m -Xmx128m). Thanks for all the help.

Back to Top
Post: Sep 30th 2008 at 6:14 PM

Note that "-Xms" and "-Xmx" are for (don't remember the order ) set "start memory" and "maximum memory" of the java applications.
The thing is that when the application needs more than maximum it throws OutOfMemoryError.

If you remove them, values will be setted to defaults ( as i remember the maximum is 64).
For any reason (stupid reason if you ask me) Java specification don't allow you to set a "dynamic" memory ussage.. something like,.. use as you can.

However tuxguitar don't needs so many RAM.
it was added because some actions needed a song "clone" with a lot of images like when you print, and it sometimes uses some memory.
but definitly is not needed if application is stand by.

I think it's maybe a bug of your version of OpenJDK (some background process )
A similar bug was reported on GCJ 4.3 some time ago ( and it's fixed now )

I have openJDK "1.6.0_0-b11" but maybe the problem is at 64bit version too.

about your openJDK and gervill as i remember your version came with gervill-0.9
Maybe with latest 1.0 you'll solve the delay problem too.

Back to Top
Post: Sep 30th 2008 at 9:49 PM

Here are the updated files:
Fedora 8:
Fedora 9:

- Fedora 8 uses icedtea vm. It does not come with openjdk vm. icedtea has limited capabilities. Some plugins may not be as functional.

- Builds can be made for ppc/ppc64 on Fedora-9 from the above SRPM (I made some scratch builds in koji, it worked). But not on Fedora-8 since icedtea/openjdk is not available on Fedora-8 ppc/ppc64.

- If there is anyone interested in building tuxguitar on Fedora-8 i386/x86_64/ppc/ppc64 with gcj, I can help with that.

To Julian:
- You can put the SPEC file into the svn. It makes minor modifications to the source via "sed" that can be easily read (I also put explanations for them into the spec file).

- I will let you know when the packages get approved and when they are available on fedora servers. This process can be tracked on:

Back to Top
Post: Sep 30th 2008 at 9:51 PM

Correction to the above post:
Fedora 9 x86_64 RPM should be:

The above post has a typo ('fc8' instead of 'fc9' for this RPM).

Back to Top
Post: Sep 30th 2008 at 10:24 PM

Hey, did you know that build.xml generates a launcher script ?
I see that you are using misc/tuxguitar.sh
maybe i should told you that this script was maded by debian packager adjusted to debian paths.

But if you take a look after build tuxguitar with ant, a new launcher script is generated, and it uses paths that you had at build.properties.
Another issue is that you can override build.properties vars from command line.

if you want to set/modify the var called "foo" you can exec ant as:
ant -Dfoo=newValue

You need to sed "-Dxxx" for each property.

Sorry if i don't tell you it before..
if you are fighting with any file inside misc/
or Makefile at SVN root, they are not needed at all to build tuxguitar under ant.
Ofcourse you can use these files, but i just tell you because i saw the "sed" to specify swt path.

You can also set install paths, but then install on another folder:
# tell where tuxguitar.jar will be:


# install it on other prefix
~$ant install -Ddist.dst.path=./RMPS

installation result will be:

but launcher script will have paths to "/usr/share/java/tuxguitar.jar"

Back to Top
Post: Sep 30th 2008 at 10:49 PM

I see. Inside the Makefile (which I used for packaging) that is at the root of the tree there are these parts:


So a "make install" puts the misc/tuxguitar.sh into the ${INSTALL_BIN_DIR}. That's why I used that. So I guess this Makefile is also written for debian(?)

Where is the script generated by ant? I can't seem to find it. Maybe the Makefile passes ant some flags that stops the building of the launching script.

But the package is good for now. It installs and runs and as far as I can tell, meets fedora standards. I will take into consideration the SWT path issue on the next update.

Back to Top
Post: Sep 30th 2008 at 11:27 PM

>> So I guess this Makefile is also written for debian?
Yes, sorry again, i should told you this before.

root MakeFile and all misc/ folder was written by Debian packager.

And what i use to build official releases is "ant".
ant is something like "make" that is used for java applications.

If you open TuxGuitar/build.properties you'll see all configurations used to build official releases (with GCJ and Jet exceptions ).

But, you maybe will need MakeFile or write a newone.
because build.xml files was maded with the purpose to build one proyect.
I mean.
build.xml to build "TuxGuitar"
build.xml to build "TuxGuitar-alsa"
build.xml to build "TuxGuitar-gtp"

My plan is (if i can some day have a good hosting ) to get repositories to use with apt-get, yum, etc (or maybe also a plugin manager from tuxguitar itself)...
and have all proyects as different packages.
so allow user to install what he want and not what i want.
i mean, why user must install tuxguitar-ascii if he don't like/want .txt tablature files.
So this is the why there is not a global build.xml that builds all.

So here i explained how to build tuxguitar and plugins using ant

And with default configurations you'll get same releases as you can found here:

Another issue of split proyects was the GCJ compatibility.
not all plugins work on GCJ (bytecode or native mode).
but, now since 1.0 user is able to build tuxguitar for GCJ without need plugins as dependencies.

> Builds can be made for ppc/ppc64 on Fedora-9 from the above
If you don't include plugins that use JNI ( alsa, oss, fluidsynth ) you don't need it for any arch.
all .class files inside .jar package are multiplatform.
you can build it under a 64 bit arch and run it under other,
and even you can build it under Fedora and run it under windows or macOs.

Maybe openJdk or sunJdk are not available for PPC, but there is an IBM Java runtime available for this platform.

Also i think GCJ is available too.

Just to tell .. i successfully tested build .rpm with your .spec file.
And uploaded tuxguitar.spec to SVN on misc folder. (so now it's not only debian exclusive :) )

i'll try to add links to download early.. i'm so bussy this month..

You should tell me your author account info please.
ofcourse post mails here is not a good idea.
try send a contact: http://www.tuxguitar.com.ar/contact.html

Back to Top
Post: Oct 1st 2008 at 10:22 PM

Orcan, i added this link on downlads section:

Please let me know if you someday move the files, and i'll fix the link to newone

Also please confirm me if you receive my reply of the contact mail you sended. i had some problems to send mails to yahoo acounts before.

Back to Top
Post: Oct 1st 2008 at 11:59 PM

Thanks Julian,
But I didn't receive any mail from you. Can you send it over?

The link can stay. The domain is mine. But once the package is approved I will use the Fedora cvs to update them.

After that, we can do three things. Either I will continue to upload the packages to the above link or we can change the link to the fedora's downloads website or you can even just write "yum install tuxguitar" on the Downloads page under the fedora section. I'd prefer the second or third way as it is less work for me, also this guarantees the end users that they get signed packages making things a little more secure.

Back to Top
Post: Oct 2nd 2008 at 12:47 AM

Ok, i resended mail from a Gmail account.

I think "both" options will be usefull.
yum as apt-get i think is one of the best inventions of latest 10 years :)

and also direct download links from fedora site ( for people who is not at home, and just download -> record CD to install it later )


Back to Top
Post: Oct 5th 2008 at 3:59 AM

Hi Julian, it's me again.
tuxguitar is accepted into fedora. Right now it is in queue for the testing repo and it will get to the testing repo in 1-2 weeks. Depending on the feedback it will be pushed to the stable repo. It may take 1 month or so.

I put the RPM and SPEC files on the hosting space Fedora gave me. These include i386/x86_64/ppc/ppc64 RPM's for F-8/F-9/F-10.*

The new address is: http://oget.fedorapeople.org/tuxguitar/
I'll be glad if you switch the address on the Downloads page to this one. Also the SPEC file there is the final version that is accepted by the reviewer. It has minor fixes. You may want to update the SPEC file in your svn with this one.

Thanks again :-)

* F-8 has only i386 and x86_64

Back to Top
Post: Oct 5th 2008 at 2:00 PM

Ok thanks, i modified download link.

Back to Top
Post: Oct 16th 2008 at 2:27 AM

Hi Julian,

As of today, Tuxguitar is in the official Fedora stable repo :-)
Now it is enough to do
"yum install tuxguitar"
to download and install it anywhere in the world.

I'll check out from time to time to see if there are any updates to tuxguitar. Any release plans soon?


Back to Top
Post: Oct 17th 2008 at 1:15 PM


Ok so it'll be so easy for users now..

> Any release plans soon?
Ofcousre new releases are planned.
but i don't have dates to say when,
allways the same story. it depends on free time we can found to work on tuxguitar.


Back to Top
cheap watch
Post: Apr 27th 2012 at 4:57 AM

In our replica watches shop- Cartier watches – the world ‘s top swiss watches , connected art and creative and perfect workmanship into one . In our watches shop you could see our replica cartier watches in all selections from Replica Cartier Watches Santos , Replica Cartier Watches Tank Louis , Replica Cartier Watches Pasha , Replica Cartier Watches Roaster , To Replica Cartier Watches Ronde , Replica Cartier Watches Ballon Bleu . Our Cartier watches are all classical compared to other watches shop . All Our replica Cartier watches or other swiss watches are made by top 1:1 original swiss watches from appearance to internal movement core . All swiss watches for sales in our watches shop are high quality watches in perfect working condition. Nowadays All Our Cartier watches shop and All Cartier Swiss watches are on sales . With interest to see swiss watches for sales or replica watches , Cartier watches . Please visit our watches shop –In our www.shopbuynet.com
Cheap IWC watches
Replica IWC Brand watches
Discount Fake IWC Watch Shop
Hot New IWC Watches On Sales
Discount iwc-ingenieur watches for sales
Fake iwc-ingenieur watches store
Cheap Automatic iwc-ingenieur watches
iwc-ingenieur-automatic titanium-mens-watch-3227-03
Automatic Replica iwc-portuguese watches
Replica iwc-portuguese new watches
Hot Brand iwc-portuguese Discount watches
iwc-portuguese-automatic-steel- watch-5001-09
iwc-portuguese-chrono-automatic -mens-watch-3714-01
iwc-portuguese-perpetual-calendar- watch-5022-13
Brand New IWC vintage-collection watches
Replica Hot New IWC vintage-collection watches
Automatic Fake Cheap IWC vintage-collection watches
iwc-vintage-jubilee-portuguese- iw544503
iwc-vintage-ingenieur-automatic -iw323304
iwc-vintage-collection- watch-iw325404
Cheap New iwc-classic-pilot watches
Automatic Discount iwc-classic-pilot watches
Hot Fake iwc-classic-pilot watches for sales
iwc-classic-pilot-midsize-steel- watch-3256-01
iwc-classic-pilot-chrono-automatic- watch-3717-04
cheap replica iwc vintage watches
Fake Men iwc vintage watches
Automatic Brand New iwc vintage watches
iwc-vintage-pilot-mens-wristwatch- iw325404
iwc-vintage-portugese-mens- iw544501
iwc-vintage-ingenier-mens- iw323301
New Cheap IWC da-vinci Watches
Replica Lady IWC da-vinci Watches for sales
Brand new discount IWC da-vinci watches
iwc-small-da-vinci-moonphase- ladies-watch-3736-01
iwc-da-vinci- moonphase-ladies-watch-3736-06
iwc-da-vinci- moonphase-ladies-watch-3736-04
iwc-da-vinci- moonphase-ladies-watch-3736-03
iwc-da-vinci- moonphase-ladies-watch-3736-14
iwc-da-vinci- moonphase-ladies-watch-3736-05
iwc-da-vinci- moonphase-ladies-watch-steel-9538-01
Replica Men IWC Portuguese Watches
Fake Discount IWC Portuguese Watches
IWC Portuguese Watches for sales
iwc-portuguese-automatic-mens- iw500101
iwc-portuguese-chronograph-ratrrapante-mens- iw371203
iwc-portuguese-chrono-automatic-mens- iw371401
iwc-portuguese-perpetual-calendar-mens- iw502121
iwc-portuguese-regulator-mens- iw544404
iwc-portuguese-chrono-automatic-mens- iw371402
iwc-portuguese-yacht-club-chronograph-mens- iw390202
iwc-portuguese-perpetual-calendar-mens- iw502119
iwc-portuguese-automatic-mens- iw500104
iwc-portuguese-chrono-automatic-mens- iw371417
iwc-portuguese-automatic-mens- iw500109
Cheap IWC Pilot Watches
New Brand IWC Pilot Watches on sales
Replica Cheap IWC Pilot Watches
iwc-pilots-watch-iw371701 chrono-automatic-mens
iwc-pilots-watch--iw371702 chrono-automatic-mens
iwc-pilots-double-chronograph-top-gun-mens- iw379901
iwc-pilots-watch-spitfire-utc-mens- iw325110
iwc-pilots spitfire-utc-mens-wristwatch-iw325108
iwc-pilots-watch-utc-antoine-de-saint-exupery-mens- iw326103
iwc-pilots-watch-chrono-automatic-mens- iw371713
iwc-big-pilots-watch- iw500421
iwc-pilots-double-chronograph-mens- iw371803
iwc-big-pilots-watch-mens- iw500401
iwc-pilots-watch-spitfire-utc-mens- iw325112
Cheap Brand IWC ingenieur watches
Fake discount iwc ingenieur watches
Replica iwc ingenieur watches for sales
iwc-big-ingenieur-chronograph- iw378401
iwc-ingenieur-automatic- rubber-strap-iw323601.html
iwc-ingenieur-automatic-mens- iw323401
iwc-ingenieur-chronograph-amg-mens- iw372504
iwc-ingenieur-automatic-amg-mens- iw322703
iwc-ingenieur-automatic- iw322702
iwc-ingenieur-climate-action-mens- iw323402
Fake IWC Spitfire Mark XVI IW325501 Watches
Cheap Brand IWC Spitfire Mark XVI IW325501 Watches
Discount IWC Spitfire Mark XVI IW325501 Watches for sales
Replica iwc aquatimer new watches
Fake iwc aquatimer cheap watches on sales
Men iwc aquatimer rubber watch shop
iwc-aquatimer-split-minute-chronograph-mens- iw372304
iwc-aquatimer-chronograph-mens-wristwatch- iw376704
iwc-aquatimer-chronograph-cousteau-divers-mens- iw378203
New iwc-portofino watches
Discount iwc-portofino watches
Replica new iwc-portofino watches
Hot new iwc big pilots watches
Fake discount iwc big pilots watches
iwc big pilots watches on sales
iwc-big-pilots-antoine-de-saint iw500422
iwc-big-pilots-antoine-de-saint iw500421
iwc-big-pilots-antoine-de-saint iw500401
iwc-big-pilot-s-watch- iw500402
iwc-big-pilots-antoine-de-saint iw500420
Cheap New iwc-specials watches
Hot Discount Replica iwc-specials watches
Fake new iwc grande-complication watches
Hot Replica grande-complication watches for sales
iwc-da-vinci-chronograph-mens- iw376410
replica-iwc-da-vinci-chronograph-mens- iw376405
iwc-da-vinci-perpetual-calendar-mens- iw376203
iwc-da-vinci-chronograph-mens- iw376402
Cheap new iwc da-vinci watches for sales
Hot replica iwc da-vinci watches
Cheap new

replica-iwc-special-father-son-watch-set- iw500413
iwc-hot-new-pliot fake cheap watches on sales
iwc-hot-new-pliot watches
iwc-hot-new-portugese watches
iwc-hot-new-portugese fake watches
cheap swiss-army watches
fake discount swiss-army watches
Replica brand swiss-army watches
Cheap replica swiss-army alpnach watches
swiss-army-chrono-classic fake watches
swiss-army-chrono-classic cheap watches
Replica swiss-army-chrono-classic watches
victorinox-swiss-army-chrono-classic-men-red-steel- watch-v-251148
victorinox-swiss-army-chrono-classic-men-black-steel- watch- v-251122
victorinox-swiss-army-chrono-classic-men-red-leather- watch-v-251124

victorinox-swiss-army-chrono-classic-men-white-leather watch-v-251125
victorinox-swiss-army-chrono-classic-men-blue-steel-watch- v-251120
fake cheap swiss-army-classic-alliance watches
Replica swiss-army-classic-alliance watches
cheap replica swiss-army-convoy watches
Fake brand swiss-army-convoy watches
cheap replica swiss-army- maverick watches
Hot new swiss-army- maverick watches
Hot new cheap swiss-army-classic-summit-xlt watches
Fake discount swiss-army-classic-summit-xlt watches

Cheap Swiss Army airboss-mach-6 watches
replica-swiss-army-airboss-mach-6-mens-wristwatch- v25785
fake cheap swiss-army-classic-infantry watches
Replica swiss-army-classic-infantry watches
swiss-army-professional-dive-master-500m watches
swiss-army-professional-dive-master-500m fake watches
Replica Swiss-Army dive-master-500 watche
Brand fake Swiss Army dive-master-500 watches
Cheap replica swiss-army-maverick-ii watches
swiss-army-maverick-ii fake watches
Brand new swiss-army-newly-added-victorinox watches
Cheap fake swiss-army-newly-added-victorinox watches
Micheal Kors Cheap watches
Wholesales Micheal Kors watches
Women Chronograph Micheal Kors watches
Micheal Kors watches on sales
Cheap Micheal Kors Women watches
Discount Micheal Kors watches

Cheap Micheal Kors acetate Watches
Ceramics Discount Micheal Kors Women acetate watches
Women Micheal Kors acetate Watches
michael-kors-mens discount watches
Cheap michael-kors-mens watches
Wholesales michael-kors-mens watches
Cheap Micheal Kors Ceramics Watches
Chronograph Diamond Women Micheal Kors Ceramics Watches
Cheap Diamond Women Micheal Kors Ceramics Watches
Cheap Micheal Kors Twotone watches
Cheap Micheal Kors Color Men watches
Discount Micheal Kors Color Men watches
Micheal Kors Acrylic Watches
Cheap Micheal Kors Acrylic Watches
Replica Micheal Kors Acrylic Watches
Cheap Micheal Kors Glitz watches
Replica Discount Micheal Kors Glitz watches
Cheap Micheal Kors Color Women watches
michael-kors-acetate-womens-chronograph-watch mk5324
Cheap Micheal Kors Goldtone watches
Discount Replcia Micheal Kors Goldtone watches
Wholesales Micheal Kors Goldtone watches
Micheal Kors Goldtone watches
Hot new Micheal Kors watches
Cheap Hot Micheal Kors watches
Cheap Micheal Kors Gun Metal watches
New Hot Micheal Kors Gun Metal watches
Cheap Micheal Kors Silvertone watches
Hot new Micheal Kors Silvertone watches
Cheap Replica greubel-forsey watches
Fake Discount greubel-forsey watches
Hot Replica greubel-forsey watches
Wholesales Fake greubel-forsey watches
Fake greubel-forsey tourbillon-24-seconds-incline watches
Cheap replica greubel-forsey tourbillon-24-seconds-incline watches
Cheap Replica greubel-forsey invention-piece-3 watches
Fake Cheap greubel-forsey invention-piece-3 watches
Cheap fake greubel-forsey double-tourbillon-technique watches
Replica greubel-forsey double-tourbillon-technique watches
greubel-forsey-double-tourbillon-technique-mens-wristwatch- rose.
Cheap greubel-forsey quadruple-tourbillon watches
Fake discount greubel-forsey quadruple-tourbillon watches
greubel-forsey-quadruple-tourbillon-mens-wristwatch -gf03or5cn
Fake greubel-forsey cheap invention-piece-1 watches
Cheap replica greubel-forsey cheap invention-piece-1 watches
New arrive Rolex cheap watches
Hot Rolex watches on sales
Replica Cheap Rolex watches
Fake Wholesales Rolex watches
Men Rolex Datejust Fake watches
Cheap Replica Rolex Datejust Wristwatches
Hot Wholesales Rolex Datejust men watches
Gold Rolex Day-Date Fake Watches
Diamond Replica Rolex Day-Date Watches
Wholesales Automatic Rolex Day-Date Fake watches
Men Cheap Hot Rolex Day-date watches
Cheap Rolex Lady Datejust watches
Gold Diamond Lady Rolex Datejust fake watches
New Gold Lady Rolex Datejust Replica watches on sales
Diamond Cheap Hot Rolex Lady Datejust watches
Replica Rolex Daytona Cosmograph Cheap watches
Fake Rolex Daytona Cosmograph Leather Gold watches
Cheap new Rolex Daytona Cosmograph Steel watches
Automatic Rolex Daytona Cosmograph men fake watches
Cheap rolex-yacht-master Lady Gold watches
Replica rolex-yacht-master Men Automatic watches
Fake hot new rolex-yacht-master watches
Steel Automatic rolex-yacht-master Wholesales watches
Wholesales Rolex Datejust Mid-size watches
Hot new replica Rolex Datejust Mid-size watches
Fake Rolex Datejust Mid-size Gold watches
Hot Rolex Air King Watches
Cheap Replica Rolex Air King Watches
Wholsaes Fake Men Rolex Air King Watches
Cheap Rolex Datejust steel watches
Fake Rolex Datejust watches for sales
Fake Lady Datejust Discount watches
Lady Datejust Cheap Diamond watches
Fake Lady Datejust Discount watches
Fake Rolex yachtmaster Men watches
Discount rolex-explorer fake watches
Replica Cheap rolex-explorer watches
Rolex Gold Daytona Fake Watches
Rolex Daytona Replica watches
Discount Fake Rolex Day-Date watches
Yellow Gold Rolex Pearlmaster watches
Lady Diamond Rolex Pearlmaster watches
Cheap Replica Rolex Pearlmaster watches
Discount Hot new Rolex Pearlmaster watches
Men Fake Rolex GMT Master
Discount Hot Replica Rolex GMT Master
Cheap rolex-lady-oyster-perpetual watches
Replica steel rolex-lady-oyster-perpetual
Fake Men Rolex Milgauss watches
Replica Discount Rolex Milgauss watches
replica-rolex-mens-milgauss watch 116400b
replica-rolex-mens-milgauss watch 116400w
replica-rolex-mens-milgauss watch 116400gv
Cheap Rolex President Watches
Gold Fake Rolex President Watches
replica-rolex-mens-wristwatch- 118238ygcd
Cheap Rolex Men Daytona watches
Hot new Replica Rolex Daytona watches
Wholesales Rolex Daytona watches on sales
Cheap Rolex Sea Dweller Fake watches
Discount Rolex sea dweller watches for sales
Hot New Replica Rolex sea dweller watches
replica-rolex-oyster-perpetual-sea-dweller 16600-bso
Cheap Rolex submariner Fake watches
Discount Rolex submariner watches for sales
Wholesale Replica Rolex submariner watches
Fake Rolex Diamond oyster-perpetual-datejust watches
replica-rolex-gold-pearlmaster-ladies-wristwatch 80298-74908
Cheap Rolex Cellini watches
Fake Rolex Cellini Discount watches
Wholesales Replica Rolex Cellini watches for sales
replica-rolex-Gold cellini-5440-8
Cheap Rolex datejust-turn-o-graph fake watches
Replica Hot Rolex datejust-turn-o-graph watches
New Arrival Rolex datejust-turn-o-graph Watches on sales
New Arrival Rolex datejust-turn-o-graph Watches on sales
Cheap rolex-oyster-perpetual-date watches for sales
Discount fake Rolex gmt-master watches
Replica Cheap Rolex gmt-master watches
replica-rolex-mens-wristwatch- 116713ln
replica-rolex-mens-wristwatch- 116718b
Hot new Replica rolex-gmt-ii watches
Fake Cheap rolex-gmt-ii watches
Cheap Rolex Milgauss Fake watches
Cheap Rolex Milgauss Fake watches
Replica New Rolex explorer-ii watches
New Hot Fake Rolex explorer-ii watches
replica-rolex-submariner-date-mens-wristwatch- 16618
Replica Wholesales Perrelet Eve Ceramic Watches
Fake cheap Perrelet Eve Ceramic Watches
Hot new cheap Perrelet Eve Ceramic Watches
Replica Perrelet Turbine Mens watches
Fake cheap Perrelet Turbine Mens watches
Hot new Perrelet Turbine XL Mens watches
Replica Perrelet Tourbillon Mens watches
Fake cheap Perrelet Tourbillon Mens watches
Hot wholesales Perrelet Tourbillon Mens watches
Replica Wholesales Perrelet Flying Tourbillon watches
Fake hot Perrelet Flying Tourbillon watches
Perrelet Moonphase Mens Fake Watches
Replica Cheap Perrelet Moonphase Mens Watches
perrelet-moonphase-mens- a3013-1
perrelet-turbine-xl-mens- a1051-2
perrelet-turbine-mens-wristwatch- a1047-3
perrelet-turbine-xl-mens-wristwatch- a3027-1
perrelet-turbine-xl-mens-wristwatch- a1051-3
replica-perrelet-turbine-mens-wristwatch- a1047-2
replica-perrelet-turbine-xl-mens-wristwatch- a1051-1
replica-perrelet-turbine-mens-wristwatch- a1047-1
ulysse-nardin-sonata-670-88-212 |
ulysse-nardin-executive-watches |
cheap Ulysee Nardin Quadrato watches |
fake Ulysee Nardin Quadrato watches |
Hot Ulysee Nardin Quadrato watches on slaes |
Ulysee Nardin Marine watches|
Cheap fake Ulysee Nardin Marine watches|
Hot Men Ulysee Nardin Marines watches|
Ulysee Nardin Sonata watches|

Replica Hot Ul

Back to Top