Re: Linux and application installing

2010-09-15 Thread FlorianFesti
  While showing the user "applications" instead of packages might be a 
good idea for several use cases I think this approach misses the point 
here. The questions for redesigning the Updater dialog should be:

What's the user supposed to decide and what information does he need to 
do so?

The answer in 99.9% of the cases is either "Run the update now" or "Run 
the update later". Deselecting any packages for update is a rare corner 
case. If it would be an important case yum - or may be even rpm 
would/should/must support version pinning to ignore updates of given 
packages for ever (it's getting off topic here).

So there are two things for the user to weight up: The cost of the 
update and how urgent it is.

To decide how urgent the updates are it is probably sufficient to tell 
the use the most urgent level (bugfix, security fix, enhancement). 
Giving the number of updates and download size per level allows more 
fine grained decisions and whether further looking into the details 
might be worth.

The cost is basically the time, CPU, IO and bandwidth used. It is hard 
to give a good estimation about that, but just giving the download size 
(as a sum) should be good enough for us. Additionally the connectivity 
is important but not so easy to find out automatically. May be the user 
knows how he hooked up his computer - may be we remember the 
connectivity we had while downloading the meta data.

Another important cost is interruption of service. So you should state 
whether a reboot or new login is required or which (currently running) 
applications will require a restart.

So I would suggest an UI that gives a summery (Didn't we already have 
that in the past?) and offers 3 buttons:

[Show/Hide Details] [Do not install updates now] [Install updates now]

The first being a toggle button hiding/showing the current or to be list 
of updates or to be updated applications. Btw. sorting the updates by 
severity and offer a check box by severity (may be using a tree view 
instead of a list) may be another improvement.

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Linux and application installing

2010-09-16 Thread FlorianFesti
  On 09/15/2010 04:38 PM, FlorianFesti wrote:
>   [Show/Hide Details]
Btw: If you do that right and save the state of this button in the 
user's home you can make beginners and power users happy without much UI 
overhead. Power users would just have to push the button once to get 
their beloved interface back. Beginners have the chance to push it twice 
to learn that they really don't care. Guess it won't get better than that...

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Linux and application installing

2010-09-17 Thread FlorianFesti
  On 09/16/2010 09:05 PM, Colin Walters wrote:
> (I don't have a strong opinion on whether the data format is RPM or
> repodata myself; maybe just a slight preference for the latter; the
> most important thing in my mind is to come to rough consensus and
> working code, and actually ship something)
It is probably easier to add that information directly to the packages. 
Rpmbuild could inspect *.desktop file and produce Provides: from it or 
add a new tag. That way there'd be a distribution independent format and 
way to retrieve this data and the Fedora infrastructure doesn't have to 
deal with the generation on its own.

Can someone please elaborate a bit what pieces of information are really 
needed? The .desktop files as a whole?

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Linux and application installing

2010-09-17 Thread FlorianFesti
  On 09/17/2010 05:05 PM, Richard Hughes wrote:
> On 17 September 2010 13:36, Arthur Pemberton  wrote:
>> Wouldn't that require the tool to download every package just to get
>> the embedded information.
> Yes, that's what my generator tool does. Of course, it only downloads
> the packages that contain .desktop files (which we can tell from the
> metadata) otherwise that would take more than ages.
>
>
That could actually even done by createrepo - just in case it runs too 
fast already. It has to open all the binary rpms anyway and could just 
sweep through the file list and then - if there are files of interest - 
open the payload and unpack the content of the desktop files. I have 
some basic support for reading the pkg content in MY generator tool. May 
be that can go into the rpm Python binding or some of the yum helper 
modules.

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Linux and application installing - a second perspective

2010-09-23 Thread FlorianFesti
Sorry, for showing up late at the party. This mail should have been part 
of Richard's thread with the same topic but things took a while until 
they were ready enough to be presented here.

There is a long history of package installers in Fedora (and it's 
predecessors). It feels like roughly every two or three years we 
switched to a new application for installing, updating and removing 
packages - most of them introduced as the default tool way before they 
reached the necessary maturity and being replaced before fulfilling the 
promises made on introduction. I find it pretty hard to see any progress 
in that area over the last decade - expect the current updater; it's 
actually the first one that really works.

What has made the situation much worse is the insane (sorry) growth of 
Fedora during the last years. It puts every part of the distribution 
dealing with packages under stress. Design decisions that might have 
been reasonable (or at least not too relevant) turn out to be pretty 
stupid or at least insufficient. This is not only true for algorithms 
and data structures but also for user interfaces. Splitting the 
distribution up into a couple of groups and list the packages belonging 
to each group might have been a good idea while the distribution was 
still only 800 packages. Right now showing a list of packages won't work 
reasonably for the very most cases. Nevertheless this is the best we 
have to offer to the user right now...

But just blaming PackageKit (or any of the other package installers) for 
not just being better is not really helping. They can only operate on 
the data available. So I tried getting an overview of what we already 
got and to find out how it could be used. As the number of packages and 
applications (about 20k and 2k) is too big for manual processing it was 
pretty clear I had to write a little application for viewing and 
browsing the meta data sets and the matching packages. It was also clear 
that such an application would be pretty close to a new package 
installer and I really didn't wanted to be the next one to replace the 
installer of the year by it's even worse successor -  especially knowing 
that someone else will do that in a not too distant future anyway.

So I wrote a little GUI program[1] with several things intentionally 
unimplemented. Most other stuff is just a mock up implementation short 
circuiting the normal data flows through Fedora infrastructure and the 
repositories. So it's just above 300 lines and tries hard to look harmless.
Otoh it is also a mock up of a UI for browsing packages that - while not 
refined enough to be used in PK (or it's successor) as is - I consider a 
step to gain back control over the huge number of packages and 
applications. IMHO the goal is to allow the user filter down the list of 
packages of interest to one, at most three dozen packages. Typing in the 
right package name does not count as a solution!

Back to the application itself: You can add tags/groups to the filter by 
double clicking on the entries in the treeview on the left or by 
entering a search term into the text field on top. To remove them from 
the filter just press the button representing it on the row above the 
result list. The numbers behind the tags are the number of packages in 
the current result and total. Starting the first time can take a while 
for downloading the repo data.

The meta data it currently operates are:

1) Comps groups. Not even used by PK to the full extend. Nevertheless 
several groups are huge with over 100 packages (winner being "Games" 
with over 300). Sorry, 100 packages in one list view doesn't work for me.

2) PkgTags which are in the PackageDB but look like being in large parts 
autogenerated from the menu entry tags that are used to sort the 
applications into the menu entries. They look pretty outdated or 
incomplete, though. See [2] for a repo containing the data and the 
implementation in yum. You'll need the repo enabled to see those tags! 
PackageDB also allows to add tags by hand. Probably a good thing. Mixing 
them with auto generated ones - probably not.

3) Data found in the *.desktop files representing entries in the 
application menu. While I extracted them on my own the data set is 
basically the same as that used in PK. But here they are used to 
tag/group packages and not to make packages look more beautiful and less 
confusing - what seems to be the goal of the recent development in PK. 
There are two ways this data is used:
3.1) Attaching tags used to sort the applications into the menu to the 
packages. These allow different "views" on the packages, sorting them by 
different tags/aspects. Making a the tags available allows creating 
queries that are more narrow that the application menu itself.
3.2) Use the application menu (with additional *-menus packages) to sort 
the packages in. This is more easy to use but not as powerful as the 
tags. Every package/application is located where the user 

Re: Linux and application installing - a second perspective

2010-09-23 Thread FlorianFesti
  On 09/23/2010 06:09 PM, Bruno Wolff III wrote:
> On Thu, Sep 23, 2010 at 15:51:37 +0200,
>FlorianFesti  wrote:
>> 1) Comps groups. Not even used by PK to the full extend. Nevertheless
>> several groups are huge with over 100 packages (winner being "Games"
>> with over 300). Sorry, 100 packages in one list view doesn't work for me.
> Games have meta data that allows them to be further subdivided in their
> desktop files. This should up in the part of you app that takes that
> data into account.
>
If you read on you'll see that I actually use exactly this data. When 
showing the packages in the Application menu tree the games are already 
subdivided. Try it out and see yourself!

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Linux and application installing - screen shots of UI mock up

2010-09-27 Thread FlorianFesti
  Ok, I made some screen shots. It's a bit easier to understand if you 
see it actually working. They should still give you a idea.

Looking at the PackageDB tags, filtering for the "Office" and "Qt" tags:
http://fedorapeople.org/~ffesti/screenshots/PackageDBTags.gif

Filtering for the "GNOME" menu tag and looking at the results found with 
the "Audio" tag.
http://fedorapeople.org/~ffesti/screenshots/MenuTags.gif

Still filtering for "GNOME" but looking at the stripped down 
Applications menu, showing the results in Applications->Games->Board:
http://fedorapeople.org/~ffesti/screenshots/Applications.gif

Searching for "circuit" and look at the results found in the comps 
groups - wondering why we found some games:
http://fedorapeople.org/~ffesti/screenshots/Search.gif

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Making Fedora work with laptops on docking station with external monitor

2010-10-05 Thread FlorianFesti
  On 10/05/2010 10:35 AM, Richard Hughes wrote:
> No, I think what we need to do is to teach GPM how to turn off the
> internal panel when docked and with the lid closed. The only missing
> piece is for the kernel to export some kind of sysfs boolean saying
> "in-dock". From talks with mjg59, detecting a dock is pretty hard.
Sorry for my may be naive question: Why do we need to know if we are 
docked or not. Isn't there exactly the same situation if the external 
Monitor is directly connected to the laptop? If there is an external 
monitor and the lid is closed don't we want to switch off the display 
regardless whether there is a docking station involved or not?

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Making Fedora work with laptops on docking station with external monitor

2010-10-05 Thread FlorianFesti
  On 10/05/2010 03:15 PM, Nathaniel McCallum wrote:
> If the lid is open, both output should be enabled by default (you are
> free to manually disable one).  If the lid is closed on battery power
> the system should suspend (unless you choose otherwise in GPM prefs).
>
I wonder if there are latops that can be booted with lid closed and that 
make a subtle sematic difference between the lid was just being closed 
and is lid was already closed when we booted up.

Florian
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Showing packages installed on the system: show-installed

2010-12-07 Thread FlorianFesti
Hi everyone!

During Richard Hughes' "Linux and application installing" thread[1] I 
had argued that just showing a list of packages won't cut it for most 
use cases around package handling. One of those use cases is showing 
which packages are installed on a system. For getting an idea about a 
machine a list of about 1500 packages is not really helping. In a side 
note I came up with the following idea [2]:

> Generate a packages section as found in a kickstart file and showthis as
> "Installed Packages". Remove all packages required by others and reduce
> packages to groups whenever possible. May be even to a group with some
> packages missing. Minimizing the number of lines should get pretty good
> results."

This is now implemented as "show-installed" which is part of 
yum-utils-1.1.29-2.fc15 found in Fedora devel. It supports three 
different output formats: kickstart %packages, yum cli and human 
readable. It also supports a number of options for controlling the 
output and whether it should consider excludes to make use of even more 
groups. See "man show-installed" or "show-installed --help" for details. 
As the script also takes a list of package names it can be used to 
create a package list on/for a newer release. As it has not seen too 
many real world use suggestions and bug reports are welcome.

While show-installed might be a useful tool I primarily see it as part 
of the package handing UI discussion. Tools like gpk-application or 
yumex could offer this as a condensed view. May be even the list of 
available packages could presented like this. I separated the logic from 
the actual formatting code so it should be easy to toy around with the 
Python class or to translate the pretty simple algorithm to another 
programming language. Feel free to ask me on #yum if you have question 
or need help with that.

Florian

[1] 
http://lists.fedoraproject.org/pipermail/devel/2010-September/thread.html#142599
[2] 
http://lists.fedoraproject.org/pipermail/devel/2010-September/143349.html

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


App Installer Miniconf

2011-01-27 Thread FlorianFesti
As you already may have read there was a cross distro meeting in Nürnberg about 
a shared app installer effort.

For me  - who didn't even know about the meeting two weeks in advance - the 
main concern was what kind of people would be there and how we ever could get 
to an agreement on anything. And even if we did how could this ever be 
transformed into something working. It turned out that the people from the 
different distribution have pretty much the same mind set and a very fine sense 
on what they don't want to have forced onto their own and onto everybody elses' 
distribution. So although there is a lot of actual (meta) data that we all 
considerd a) difficult to create and b) worth sharing we all very quickly came 
to a - not even spoken out - agreement not to share any actual data or 
infrastructure. Instead shared data should either live upstream or every one 
has it's own copy and we think - and talk - about sharing or syncing later. So 
for now this is basically about sharing code and formats.

The second thing that became clear very soon was that if the whole project 
should come to life soon it needs to be build out of existing part. Sure there 
would be a lot of glue missing but writing things from scratch would not get us 
anywhere. Using a existing projects and infrastructure hopefully would make it 
easier to get the overall plan accepted. As a result each distribution is 
contributing a few pieces.

So the overall plan has 4 parts:

Static meta data that can be shiped within the repository and also works 
offline from a CD/DVD. This is not completely unlike the optional packages in 
comps but with a bit more data about the applications. The idea is to 
autocreate this data from desktop files - which may be enhanced a bit. We'll 
see how far this really works and if we need to add manually created data or 
not. So there is a mid term perspective to also add non GUI stuff to this but 
we'll go for desktop apps only in the first step.

For fancy new things like comments and ratings there will be servers where this 
data is stored and can be maintained by a user community online. There already 
is an API that covers this. The Social Desktop API "Open Collaboration Server" 
(OCS) has a module for "content" - applications in our case. How exactly the 
OCS will be used is still to be determined. This is really not my area of 
expertise. As far as I understood you can have per user account and friends and 
suggestions and what ever or just comments and ratings. This is probably up to 
whoever is going to actually run the service.

Screen shots will be stored on a different (http) server but linked from the 
OCS. As there already is screenshots.debian.net we might use that (via proxy) 
for the start before we setup something like that on our own. (Elite diplomats 
looking for a challenge can also go for an agreement for a shared server.)

These three data sources are then brought together within the client. The idea 
is that as there are different repositories there also are different OCS 
servers - either providing information for different applications or different 
information on the same applications. This way comments or ratings could be 
shared between distributions without any of them loosing control over their own 
data. Details being determined by the per distro or even per user configuration.
The client can be an GUI application or a server offering a web interface (IIRC 
one of the Mageia guys said he's going to write one). To get a GUI client there 
will be some steroids added to the Ubuntu Software Center which already has a 
similar functionality using it's own data formats and protocols.


Ok, this is the overall plan. There already is an announcement containing more 
technical details and further pointers:

http://lists.freedesktop.org/archives/distributions/2011-January/000411.html

Be aware that there are still a lot of people to convince (including you) and 
technical issues to solve to really make that happen. Take the technical 
details with a grain of salt. Also there will need to get more people involved. 
I'll give a talk on the upcoming FudCon to help with that.


Florian


PS: There are two side project that I personally consider as interesting: The 
first is a way to match packages between different distros. I could imagine 
that the package db offers links to the specs and patches of the other 
distributions. May be someone in this area wants to pick that up.

Second thing may be adapting the Debian tagging system (Debtags) for Fedora. 
With the package matching in place we could start with a quite big data set 
instead of zero. But there probably also is quite some work to do - and be it 
just porting their tools from dpkg to rpm...


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel