Next revision
|
Previous revision
|
dev:contributing [2008/04/30 14:38] 127.0.0.1 external edit |
dev:contributing [2022/05/06 16:07] (current) |
| (still needs more editing, but I'm leaving it alone for now) |
| |
======HOWTO contribute bug fixes and feature enhancements to Rosegarden project====== | ======How to contribute bug fixes and feature enhancements to Rosegarden project====== |
| |
| **//OBSOLETE//** |
| |
| These instructions have been superseded by [[dev:Building Rosegarden from Source]]. |
| |
There are numerous ways to contribute into Rosegarden. You may | **//OBSOLETE//** |
| |
| There are numerous ways to contribute to Rosegarden. You may |
| |
* Create a patch (described in this page) | * Create a patch (described in this page) |
* [[http://rosegarden.sourceforge.net/tutorial/bug-guidelines.html|Report a bug]] | * [[http://rosegarden.sourceforge.net/tutorial/bug-guidelines.html|Report a bug]] |
| |
* [[http://sourceforge.net/tracker/?group_id=4932&atid=354932|Create a feature request]] | * [[http://sourceforge.net/tracker/?group_id=4932&atid=354932|Create a feature request]] (Please understand that some good requests everyone likes have still been on the waiting list for several years.) |
| |
* [[Add or update translation]] | * [[Add or update translation]] |
* [[http://sourceforge.net/mail/?group_id=4932|Discuss in Rosegarden's mailing lists]] | * [[http://sourceforge.net/mail/?group_id=4932|Discuss in Rosegarden's mailing lists]] |
| |
* Update documentation | * Update documentation (needs a page, but first we actually need to establish a new documentation structure) |
| |
| |
| Let's proceed on and follow steps on how to prepare a patch for Rosegarden... |
| |
Let's proceed on and follow steps on howto prepare a patch for Rosegarden... | |
| |
| ====1. Check out the current Subversion trunk==== |
| |
| $ svn checkout svn+ssh://userid@svn.code.sf.net/p/rosegarden/code/trunk/rosegarden |
| |
| Replace "userid" with your sourceforge user ID. For more checkout options, see the [[dev:subversion|subversion quick start]]. |
| |
====1. Check out the current Subversion trunk==== | ====2. Prepare the build environment==== |
| |
| Rosegarden has many dependencies. |
| |
| //This is a fresh attempt to write out a complete list. If you install everything listed here and are still unable to build Rosegarden, please get in touch with us or create an account and edit this list yourself to share your findings.// |
| |
| You will need the following programs and libraries available on your system: |
| |
| ^ Command/Library ^ Min. Version ^ From (.deb-based) ^ From (.rpm-based) ^ |
| | gcc | 6.3.0 | gcc | gcc | |
| | g++ | 6.3.0 | g++ | gcc-c++ | |
| | cmake | 3.1 | cmake | cmake | |
| | GNU make | 4.1 | make | make | |
| | makedepend (?) | 1.0.1 | xutils-dev | imake | |
| | pkg-config (?) | 0.22 | pkg-config | pkgconfig | |
| | qt5 | 5.1.0 | qtbase5-dev, qttools5-dev | qt5-qtbase-devel? | |
| | alsa | 1.0 | libasound2-dev | alsa-lib-devel | |
| | jack | 0.109 | libjack-dev | jack-audio-connection-kit-devel | |
| | ladspa | 1.1 | ladspa-sdk | ladspa-devel | |
| | dssi | 0.9 | dssi-dev | dssi-devel | |
| | lo | 0.23 | liblo0-dev | liblo-devel | |
| | lirc | 0.8 | liblircclient-dev | lirc-devel | |
| | liblrdf | | liblrdf-dev | liblrdf-devel | |
| | libfftw3 | | libfftw3-dev | fftw3-devel | |
| | lilypond | 2.6.0 | | lilypond | |
| | libsamplerate | 0.1.4 | libsamplerate-dev | libsamplerate-devel | |
| | libsndfile | 1.0.16 | libsndfile1-dev | libsndfile-devel | |
| | perl | | | perl | |
| | bash | | | bash | |
| | GNU tar | | | tar | |
| | GNU gzip | | | gzip | |
| | libsm-dev | | libsm-dev | libSM-devel | |
| |
| (Using Debian Lenny as the oldest supportable distro for this) |
| |
===1.A) As an anonymous user=== | |
<code bash> | |
svn co [[https://rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk|https://rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk/rosegarden]] | |
</code> | |
===1.B) As a sourceforge user=== | |
<code bash> | |
svn co [[https://user@rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk|https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk/rosegarden]] | |
</code> | |
====2. Compile source (be prepared to install missing dependencies in first compile)==== | ====2. Compile source (be prepared to install missing dependencies in first compile)==== |
| |
$ cmake . | $ sh ./bootstrap.sh |
| $ ./configure [options] |
| |
$ make all | Useful things to specify for ''[options]'' include: |
| * --prefix=[ ''desired installation path (typically /usr)'' ] |
| * QTDIR=[ ''location of Qt library files'' ] |
| * --enable-debug |
| |
$ sudo make install | $ make |
| $ sudo make install |
| |
| //NOTE: Rosegarden only installs a few files, and these will not overwrite or conflict with any version you may have installed from a distro package of Rosegarden "Classic"// |
| |
| //NOTE: On some Fedora installs, you may get an error "Failed to find Qt4 installation. QTDIR must be defined, or --with-qtdir option given" when you run ./configure . This is resolved by running "unset QTDIR" then re-running ./configure ((src: http://ccrma-mail.stanford.edu/pipermail/planetccrma/2010-February/016420.html))// |
| |
As an alternative to the first step, you can run "ccmake ." (note the extra "c") for a curses-based interactive way of adjusting the build parameters (installation prefix, build options etc). | |
| |
====3. Make changes and recompile==== | ====3. Make changes and recompile==== |
| |
edit files ... then | Edit files, paying attention to [[coding_style|coding style]]... If you made no changes to anything in data/ then you can simply: |
| |
| $ make && ./rosegarden |
| |
| If you did make changes to data, you should |
| |
| $ make qrc && make && ./rosegarden |
| |
$ make; sudo make install | //If you added any new icons, for example, they won't be picked up and added to the resource bundle until you svn add them to your local copy. Even though you're submitting a patch, you must still do this. Hopefully new files will get picked up and incorporated into the patch, although I don't think there's a precedent for this, and I'm not sure if it would work. If this becomes a problem, get in touch with us, and we'll work something out.// |
| |
====4. Create patch (against svn and source root)==== | ====4. Create patch (against svn and source root)==== |
| |
cd to the Rosegarden source root directory, then | cd to the Rosegarden source root directory, then: |
| |
$ svn update | $ svn update |
| $ svn diff >patch-user-[YEAR][MONTH][DAY] |
| |
$ svn diff > patch-user-20070623 | //For example// ''patch-egonzales-20090523'' //for a patch from Eduardo Gonzáles on the 23rd of May 2009.// |
| |
====5. Publish patch==== | ====5. Publish patch==== |
| |
===5.A) as a sourceforge user=== | ===5.A) as a fix to a bug=== |
| |
svn commit [ -m "What part of the program is patched: add/change/fix/enable/disable/(any verb) explanation of patch..." ] | Create a new [[http://sourceforge.net/p/rosegarden/bugs/|bug report]] (if there is not an existing one), and include the patch as a resolution to the bug. You will need to be logged in to SourceForge to create a ticket. |
| |
===5.B) as a fix to a bug, not being yet a RG developer=== | ===5.B) as an implementation of a feature request=== |
| |
Create new [[http://sourceforge.net/tracker/?group_id=4932&atid=104932|bug report]] (if there is not an existing one), and include the patch as a resulution to the bug. | Create a new [[http://sourceforge.net/p/rosegarden/feature-requests/|feature request]] (if there is not an existing one), and include the patch as a fulfillment of the request. You will need to be logged in to SourceForge to create a ticket. |
| |
===5.B) as an implementation of a feature request, not being yet a RG developer=== | ===5.C) as a patch=== |
| |
Create new [[http://sourceforge.net/tracker/?group_id=4932&atid=354932|feature request]] (if there is not an existing one), and include the patch as a fullfillment of the request. | Create a new [[http://sourceforge.net/p/rosegarden/patches/|patch ticket]] and include the patch. You will need to be logged in to SourceForge to create a ticket. |
| |
===5.B) as a follower of RG development discussion list: rosegarden-devel AT lists DOT sourceforge DOT net=== | ===5.D) as a follower of the Rosegarden development discussion list: rosegarden-devel AT lists DOT sourceforge DOT net=== |
| |
Describe your problem in a mail to the list and add the patch as an attachment. | Describe your problem in a mail to the list and add the patch as an attachment. If your patch is large, your post might be rejected by the list software, but the project administrators will attend to this if it should happen. |
| |
====6. Discuss==== | ====6. Discuss==== |
| |
| |
| ===See also: === |
| * [[Branching|Working with branches]] |
| |
===See also: [[Branching|Working with branches]]=== | * [[coding_style|Coding Style]] |
| |
===See also: [[Stable from svn|Installing the latest stable version from svn in different distributions]]=== | * [[layout_code|Qt Layouts]] |
| |
| * [[file_format_version|File Format Version]] |