Em Fri, Dec 06, 2013 at 02:21:34PM +0100, Jiri Kastner escreveu:
ok, what about this:
instead of split oscilloscope from tuna, we can abandon 'oscilloscope' subpackage
and merge it to tuna, so next version should have "Provides : oscilloscope =
%{version}-%{release}" and "Obsoletes: oscilloscope <
%{version}-%{release}", instead of oscilloscope subpackage in spec file.
this 'spec' solution should resolve base/optional channel struggles.
Nope, splitting it up is the best thing to do.
The oscilloscope is not tuna specific or tied to tuna, it just started
there.
But it can be used completely independently, i.e. one can use any other
way to tune its system and use it to check visually for spikes.
And apart from that, it addresses the "optional" being required by a
"standard" package in RHEL channels.
There is another gotcha here:
The oscilloscope needs the GUI packages to work, but tuna doesn't...
I.e. if, say, pygtk2 is not installed, the command line tuna can be
used, its just its GUI that won't be available, so tuna has code to
handle that:
[root@ssdandy ~]# rpm -e --nodeps pygtk2
[root@ssdandy ~]# tuna
tuna: packages needed for the GUI missing.
Make sure xauth, pygtk2-libglade are installed.
Usage: tuna [OPTIONS]
-h, --help Give this help list
-a, --config_file_apply=profilename Apply changes described in profile
-l, --config_file_list List preloaded profiles
-g, --gui Start the GUI
-G, --cgroup Display the processes with the type of cgroups
they are in
-c, --cpus=CPU-LIST CPU-LIST affected by commands
-C, --affect_children Operation will affect children threads
-f, --filter Display filter the selected entities
-i, --isolate Move all threads away from CPU-LIST
-I, --include Allow all threads to run on CPU-LIST
-K, --no_kthreads Operations will not affect kernel threads
-m, --move Move selected entities to CPU-LIST
-p, --priority=[POLICY:]RTPRIO Set thread scheduler tunables: POLICY and
RTPRIO
-P, --show_threads Show thread list
-Q, --show_irqs Show IRQ list
-q, --irqs=IRQ-LIST IRQ-LIST affected by commands
-s, --save=FILENAME Save kthreads sched tunables to FILENAME
-S, --sockets=CPU-SOCKET-LIST CPU-SOCKET-LIST affected by commands
-t, --threads=THREAD-LIST THREAD-LIST affected by commands
-U, --no_uthreads Operations will not affect user threads
-v, --version Show version
-W, --what_is Provides help about selected entities
-x, --spread Spread selected entities over CPU-LIST
[root@ssdandy ~]# tuna --gui
tuna: packages needed for the GUI missing.
Make sure xauth, pygtk2-libglade are installed.
I.e. if you call it without any arguments or with --gui it will try to start
the GUI and if the required packages are not installed, it will fail and state
which packages needs to be installed.
Now it may be the case that the 'tuna' rpm package doesn't requires the GUI
packages needed to run --gui, and installing the oscilloscope will bring those
packages. That may be why the oscilloscope ended up being a tuna req.
What I think should be done is to have a new, virtual package: "tuna-gui", that
basically has just requires for (tuna, xauth, pygtk2-libglade), then the GUI will
be enabled.
- Arnaldo
On Thu, Dec 05, 2013 at 10:21:12PM -0200, Arnaldo Carvalho de Melo
wrote:
...
> > The reason for suggesting this split is also primarily packaging wise.
> > Especially for RHEL packaging where tuna is now a "standard" package
> > while oscilloscope is "optional". In addition, there's quite
some
> > aversion among the "management layer" for packages which have an
> > explicit dependency between packages in "standard" and
"optional". So
> > it's just to get resolve these issues, without introducing too many
> > other challenges.