Discussion:
improvements for testing and reporting bugs
Liviu Andronic
2012-06-01 07:29:04 UTC
Permalink
Hello Tom
I would like to suggest several switches that, if implemented, would
much improve the testing experience and potentially raise the
usefulness of bug reports.

First, introduce a '--vanilla' CLI option. This would allow to run
emel with factory defaults, while upon exit it would not attempt to
save its config. This would allow ruling out (or not) configuration
differences when testing for a particular issue. To give an example, R
[1] comes with a '--vanilla' and bug reports are accepted only when
the issue can be reproduced in a vanilla session: this rules out
messed up user configs, or code errors when using default options.
This is how the option is described in 'man R':
--vanilla
Combine --no-save, --no-restore, --no-site-file, --no-init-file
and --no-environ


Second, add a '--buildopts' CLI option. For any given binary, this
option would be able to provide the user with the list of options
originally used to build the app. This can be useful when you have
several versions of R spread around---one installed via the package
manager, and considering that I'm also a packager, then I can have
several versions using the same prefix but built with different
options, making it hard to know which one is installed at any given
moment; and another one built from source---or when, as a user, you
simply don't know how the binary was built since you installed it from
your distro. In any case this info is useful when reporting bugs, and
I'm systematically unsure of what were the compile-time options of my
current build. Similar info is provided in Midori's [2]
'about:version' page.

And third, add a '--builddeps' CLI option. For any given binary, this
option would report the actual libraries used at compilation time.
Again, potentially useful for debugging and quickly understanding the
differences between two systems. This info is provided in Midori's
'about:version' page, but even better: it contains the info on
build-time and run-time libraries and versions. Below is an example of
such output.

What do you think about adding such functionality? Regards
Liviu

[1] http://www.r-project.org/
[2] http://twotoasts.de/index.php/midori/


### Midori output ###
Midori 0.4.6 (de.twotoasts.midori_986f8b3ab180c759ab5db95cc6f00d33__0)
GTK+ 2.20.1 (2.20.1)
Glib 2.24.1 (2.24.1)
WebKitGTK+ 1.2.7 (1.2.7)
libsoup 2.30.2
cairo 1.8.10 (1.8.10)
granite No
libnotify 0.4.5
single instance
libunique 1.1.6
Platform X11; Linux x86_64
t***@onepost.net
2012-06-01 10:34:50 UTC
Permalink
On Fri, 1 Jun 2012 09:29:04 +0200
Post by Liviu Andronic
I would like to suggest several switches that, if implemented, would
much improve the testing experience and potentially raise the
usefulness of bug reports.
First, introduce a '--vanilla' CLI option. This would allow to run
emel with factory defaults, while upon exit it would not attempt to
save its config. This would allow ruling out (or not) configuration
differences when testing for a particular issue. To give an example, R
[1] comes with a '--vanilla' and bug reports are accepted only when
the issue can be reproduced in a vanilla session: this rules out
messed up user configs, or code errors when using default options.
--vanilla
Combine --no-save, --no-restore, --no-site-file, --no-init-file
and --no-environ
It's possible that something about emelFM2's operation really depends on selected options and in a way that would facilitate debugging, though I'm yet to be convinced that in practice, this is so.

Since -v|--version is taken already, added, for now at least, -o|--original
Post by Liviu Andronic
Second, add a '--buildopts' CLI option. For any given binary, this
option would be able to provide the user with the list of options
originally used to build the app. This can be useful when you have
several versions of R spread around---one installed via the package
manager, and considering that I'm also a packager, then I can have
several versions using the same prefix but built with different
options, making it hard to know which one is installed at any given
moment; and another one built from source---or when, as a user, you
simply don't know how the binary was built since you installed it from
your distro. In any case this info is useful when reporting bugs, and
I'm systematically unsure of what were the compile-time options of my
current build. Similar info is provided in Midori's [2]
'about:version' page.
Added -b|--build
Post by Liviu Andronic
And third, add a '--builddeps' CLI option. For any given binary, this
option would report the actual libraries used at compilation time.
Again, potentially useful for debugging and quickly understanding the
differences between two systems. This info is provided in Midori's
'about:version' page, but even better: it contains the info on
build-time and run-time libraries and versions. Below is an example of
such output.
The only direct and hard runtime dependency is libgtk, and the build-version of that is already reported.

Regards
Tom
Liviu Andronic
2012-06-01 10:44:49 UTC
Permalink
Hello Tom
Looks very interesting.
Post by t***@onepost.net
It's possible that something about emelFM2's operation really depends on selected options and in a way that would facilitate debugging, though I'm yet to be convinced that in practice, this is so.
Since -v|--version is taken already, added, for now at least, -o|--original
make WITH_KERNELFAM=1 NEW_COMMAND=1 EDITOR_SPELLCHECK=1 WITH_LATEST=1 WITH_GTK2=1 WITH_THUMBS=1 WITH_THUMBLIB=0 WITH_TRACKER=1 WITH_ACL=1 WITH_POLKIT=1 WITH_UDISKS=1 WITH_OUTPUTSTYLES=1 DEBUG=1 (29348)
generating 'objs/src/config/e2_option.deps'
generating 'objs/src/config/e2_cl_option.deps'
generating 'objs/src/config/e2_cache.deps'
generating 'objs/src/e2_main.deps'
generating 'objs/src/e2_fileview.deps'
compiling 'src/e2_fileview.c'
compiling 'src/e2_main.c'
compiling 'src/config/e2_cache.c'
compiling 'src/config/e2_cl_option.c'
src/config/e2_cl_option.c: In function ‘_e2_cl_option_print_build’:
src/config/e2_cl_option.c:52: error: ‘BUILDOPTS’ undeclared (first use
in this function)
src/config/e2_cl_option.c:52: error: (Each undeclared identifier is
reported only once
src/config/e2_cl_option.c:52: error: for each function it appears in.)
make: *** [objs/src/config/e2_cl_option.o] Error 1
Post by t***@onepost.net
make WITH_KERNELFAM=1 NEW_COMMAND=1 ... OUTPUTSTYLES=1 DEBUG=1 (29348) returned '2'
Liviu
Post by t***@onepost.net
Post by Liviu Andronic
Second, add a '--buildopts' CLI option. For any given binary, this
option would be able to provide the user with the list of options
originally used to build the app. This can be useful when you have
several versions of R spread around---one installed via the package
manager, and considering that I'm also a packager, then I can have
several versions using the same prefix but built with different
options, making it hard to know which one is installed at any given
moment; and another one built from source---or when, as a user, you
simply don't know how the binary was built since you installed it from
your distro. In any case this info is useful when reporting bugs, and
I'm systematically unsure of what were the compile-time options of my
current build. Similar info is provided in Midori's [2]
'about:version' page.
Added -b|--build
Post by Liviu Andronic
And third, add a '--builddeps' CLI option. For any given binary, this
option would report the actual libraries used at compilation time.
Again, potentially useful for debugging and quickly understanding the
differences between two systems. This info is provided in Midori's
'about:version' page, but even better: it contains the info on
build-time and run-time libraries and versions. Below is an example of
such output.
The only direct and hard runtime dependency is libgtk, and the build-version of that is already reported.
Regards
Tom
--
--
Do you know how to read?
http://www.alienetworks.com/srtest.cfm
http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader
Do you know how to write?
http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail
Charles A Edwards
2012-06-01 11:25:11 UTC
Permalink
On Fri, 1 Jun 2012 12:44:49 +0200
Post by t***@onepost.net
make WITH_KERNELFAM=1 NEW_COMMAND=1 EDITOR_SPELLCHECK=1
WITH_LATEST=1 WITH_GTK2=1 WITH_THUMBS=1 WITH_THUMBLIB=0
WITH_TRACKER=1 WITH_ACL=1 WITH_POLKIT=1 WITH_UDISKS=1
WITH_OUTPUTSTYLES=1 DEBUG=1 (29348)
It builds and works for me.

%make OPTIMIZE="${RPM_OPT_FLAGS}" \
CFLAGS="${RPM_OPT_FLAGS}" \
WITH_KERNELFAM=1 \
USE_INOTIFY=1 \
WITH_LATEST=1 \
PREFIX="%{_prefix}" \
WITH_THUMBS=1 \
WITH_TRACKER=1 \
WITH_CUSTOMMOUSE=1 \
WITH_HAL=0 \
EDITOR_SPELLCHECK=1 \
WITH_UDISK=1 \
WITH_TRANSPARENCY=1 \
WITH_POLKIT=1 \
WITH_GTK2=1 \
WITH_OUTPUTSTYLES=1 \
WITH_ACL=1 \
DEBUG=1


Charles
--
The more specific a title is, the less you will be able to apply it
later. -- Rominger's Rules for Students n°2
----------------------
Mageia release 3 (Cauldron) for x86_64$
On SuperSize....http://www.eslrahc.com
Registered Linux user #182463
3.3.6-tmb-server-2.mga2 x86_64
----------------------
Liviu Andronic
2012-06-01 11:46:00 UTC
Permalink
Post by Charles A Edwards
On Fri, 1 Jun 2012 12:44:49 +0200
Post by t***@onepost.net
make WITH_KERNELFAM=1 NEW_COMMAND=1 EDITOR_SPELLCHECK=1
WITH_LATEST=1 WITH_GTK2=1 WITH_THUMBS=1 WITH_THUMBLIB=0
WITH_TRACKER=1 WITH_ACL=1 WITH_POLKIT=1 WITH_UDISKS=1
WITH_OUTPUTSTYLES=1 DEBUG=1  (29348)
It builds and works for me.
You're right. I had to make clean first for the compilation to succeed.

All new options seem to work as expected. Thanks Tom.

Liviu
Charles A Edwards
2012-06-01 14:43:06 UTC
Permalink
On Fri, 1 Jun 2012 13:46:00 +0200
Post by Liviu Andronic
Post by Charles A Edwards
It builds and works for me.
You're right. I had to make clean first for the compilation to
succeed.
All new options seem to work as expected.
If you run emelfm2 -b
What does it show for udisk support?

I'm building WITH_UDISKS=1
but -b shows:
WITH_UDISKS=0


Charles
--
I don't care for the Sugar Smacks commercial. I don't like the idea of
a frog jumping on my Breakfast.
-- Lowell, Chicago Reader 10/15/82
----------------------
Mageia release 3 (Cauldron) for x86_64$
On SuperSize....http://www.eslrahc.com
Registered Linux user #182463
3.3.6-tmb-server-2.mga2 x86_64
----------------------
Liviu Andronic
2012-06-01 14:57:25 UTC
Permalink
Post by Charles A Edwards
If you run emelfm2 -b
What does it show for udisk support?
I'm building WITH_UDISKS=1
 WITH_UDISKS=0
I get:
WITH_UDISKS=1


Liviu
Charles A Edwards
2012-06-01 15:10:54 UTC
Permalink
On Fri, 1 Jun 2012 16:57:25 +0200
Post by t***@onepost.net
Post by Charles A Edwards
I'm building WITH_UDISKS=1
 WITH_UDISKS=0
WITH_UDISKS=1
Thanks

Had a dumb Ass EBKC here....

Now suitably chastised and corrected.


Charles
--
When I was a boy I was told that anybody could become President. Now
I'm beginning to believe it.
-- Clarence Darrow
----------------------
Mageia release 3 (Cauldron) for x86_64$
On SuperSize....http://www.eslrahc.com
Registered Linux user #182463
3.3.6-tmb-server-2.mga2 x86_64
----------------------
Loading...