= The Frugalware Bug Reporting HOWTO
== Introduction
The aim of this HOWTO is to explain how to choose a task name and what to
include in a feature request/bugreport to help Frugalware developers speed up
the process of fixing a bug or fulfilling a feature request.
== Where
The URL of our Bug tracking system is:
---------------------------
https://github.com/frugalware/frugalware-current/issues
---------------------------
== General
Use the search function before opening a task, as there may be a task for your
bug/feature. In that case just add a comment such as "I can reproduce this, too."
or "I would enjoy this feature, too."
There are a few topics which are often requested/reported but we have a good
reason not fixing/implementing them.
If you'd like to report an outdated package, first check that it is not already
listed on http://frugalware.org/~repo/stats/chkworld.html[this site]. If the
package is listed, please do *not* report it as we know there is a new version.
We will update it as soon as possible in this case.
Write bugreports in English, please. This is the only language all developers
speak.
== Bug reports
Please include the following things, unless you know what you are doing:
. Description of Problem - never say "does not work", quote the error message
. Steps to reproduce the problem
. Actual Results
. Expected Results
. How often does this happen?
. Additional Information
If you report an installer bug, then -current is probably not enough,
please specify the snapshot date.
If you found a security bug, then use the [SEC] prefix in the task name.
== Feature Requests
Please don't request more than one package in a feature request. Open a task
for every package. (Of course you don't have to open task for dependencies if
they are also missing from our packages, but please list them if you can.)
If you request a package, please include:
. The name of the application (yes, "more games" is not enough!)
. The URL of the application
. Optionally a short note about why you think this package would be
interesting for others, too
If you have a FrugalBuild for the package already, then upload it as an
attachment after opening the task. In this case, please prefix your task name
with `[FB]`, because this way it will be reviewed sooner.
Alternatively, you can post your FrugalBuild to the `frugalware-devel` mailing
list for review, that can be handy if you want to submit more and more
buildscripts - finally to become a developer if possible. Opening a task for
your FrugalBuild is still fine if you want us to maintain it after the initial
version is accepted.
Please don't link other distribution's buildscripts when you request a package.
That information is useless for us in most cases and if you don't include such
links, you make our life easier.
=== Do not request
Please don't request custom kernels. We try to use as few patches as possible.
See `man kernel.sh` as a reference on building your own kernel using various
patchsets. A
http://wiki.frugalware.org/index.php/How_to_build_a_custom_kernel[tutorial] is
available as well. Really, building such a kernel usually requires a
buildscript of only 5 (five) lines!
== Pacman-g2 problems
If you get a crash from our package manager, then we need a backtrace from gdb.
Here are the instructions to get a backtrace:
- Find the command line that triggers the crash. For example:
pacman-g2 -Sy
- Get the pacman-g2 git repo and compile it with debug symbols enabled:
+
--------------------------------------------------------------
$ git clone http://frugalware.org/git/pub/other/pacman-g2/pacman-g2
$ cd pacman-g2
$ sh autogen.sh
$ ./configure --enable-debug
$ make
--------------------------------------------------------------
- Then run pacman-g2 in gdb and get the trace:
+
----------------------------
$ cd src/pacman-g2
$ sudo libtool gdb ./pacman-g2
> run -Sy
----------------------------
- When pacman-g2 crashes, get the trace by typing 'bt'. Here is an example:
+
----------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
0x0805035e in pacman_sync (targets=0x0) at sync.c:354
354 *p = 1;
(gdb) bt
#0 0x0805035e in pacman_sync (targets=0x0) at sync.c:354
#1 0x08054594 in main (argc=2, argv=0xbfee1844) at pacman.c:609
----------------------------------------------------------------
- Attach the output of 'bt' to your bugreport.
== Fixed in git
Your feature request/bugreport may be closed with a "Fixed in git ..."
message. Git is our source control management software (just like CVS/SVN). If
your task is not considered to be critical, then it will be fixed/implemented
only in git, without increasing the package release. This means that it will
be automatically included in the next release.