PPM: GUI filtering

I have been wanting to do this for a long time. Some repositories are huge, for example the Ubuntu 'universe' repository, and looking through it for something useful to install can be a daunting task.

Now, the PPM (Puppy Package Manager) has a dropdown list:

Any types
GUI apps only
GTK+2 GUI apps only
GTK+3 GUI apps only
Qt4 GUI apps only
Qt5 GUI apps only


With the default set to 'GUI apps only', which is all GUI apps, that is, those with a Graphical User Interface.

The lower choices narrow it down. Today I wanted to explore what Qt apps are available in the Ubuntu repos, and that's when I decided that this new feature needs to be implemented now.
Now, I can quickly scan through and try out the Qt-based applications.

Here is a snapshot of the Ziggy UI of the PPM:


Great hey!

If you want to try it out, and you have a recent "5.5" pup or later, you can grab all the files. Woof commit:
http://bkhome.org/fossil/woof2.cgi/info/fd82fb8ad8

Or, I bet that pemasu will be doing a build very soon of Upup Raring from latest Woof, especially as he has a prior interest in a Qt-puppy.


Posted on 30 Mar 2013, 23:43


Comments:

Posted on 31 Mar 2013, 2:40 by mistfire
Use combo box for repositories selection in PPM
Hi Barry,

I noticed that you are using radio buttons for selecting repos in PPM. I suggest that you must use combo box instead of radio buttons on selecting repos for more flexibility and no need to rewrite the PPM GUI if one of the repos is down or depreciated. I hope that you learned a lesson on NLUUG incident.


Posted on 31 Mar 2013, 3:23 by Raffy
QtPy
Glad to hear that you remembered Qt apps (and QtPy).


Posted on 31 Mar 2013, 5:44 by linuxcbon
challenge
I give you a new challenge : merge racy and wary into one, that is : compile those modem drivers for the new kernels.
I can find other challenges...


Posted on 31 Mar 2013, 6:27 by 01micko
re woof plateau?
Yeah for about a day!

Remember that post? Anyway, nice developments, a bit frustrating that I'm uploading a pup (PHATSLacko-5.5.02, chock full @409MB!!!) built from an obsolete woof, about 36Hrs old. Never mind, I got the nice QT theming, which is what I wanted, plus I had to edit my geany package for the 96dpi, it was rendering fonts a bit too big. It looks like a cracking pup.. gtk3, VLC, QT-4.8.2, Libreoffice-4.0.1, Firefox, Kompozer, Gimp plus more.

I patched woof with Mavrothal's Adrive patches, just adds a drive like z-drive, so the adrive is built into the iso and is loaded on first boot. All the Fat apps are in there so it's very upgradeable. It laso has a bit of a manifest which I hope one day will help with integration of SFS files into PPM. See this script for how the adrive is built.

It's a bit of Easter fun.

PS: Oh soon ThinSlacko is out too, Adrive again so it's easy to fatten, both use f2fs, as they are k3.8x and I have a script to make installing to USB super easy, (with good feedback).


Posted on 31 Mar 2013, 6:30 by mistfire
Update issues on PPM
I wonder if the PPM can update an installed packages (if latest version of pet package is to be installed) or back-up an installed packages which is similar to android package management.


Posted on 31 Mar 2013, 7:45 by Ted Dog
Retirement Category Retired
Careful 01micko He might retire again, for at least a week :) and throw the puppylinux world into chaos, chasing its tail. Notice the Retirement Category on the left side of the blog has been removed, curious, its still on the old blog....





Posted on 31 Mar 2013, 7:49 by scsijon
repositries
I was wondering, while your working with ppm, how much trouble it would be to increase the number of visable repositries from 5. I've been looking at a few of the other linux's to help some people, and a lot of them seem to be spreading their quantity problems by splitting into tighter repositry groups relating to what they are for, such as multimedia and games being separated from the 'base' repositries. Maybe make it a scroll area to select what repositry you want to see rather than have a separate config pannel.

I know in the case of opensuse, where I came from to puppy, I have found that they now have 16 without duplicate appearances such as x86_32 and x86_64 being considered, and 27 all up.


Posted on 31 Mar 2013, 7:51 by scsijon
what about non-gui apps
I forgot to add, what about a non-gui group, there are quite a few out there still.


Posted on 31 Mar 2013, 8:21 by linuxcbon
challenge2
Barry, can you compile kernel and progs , in the future, only for 486, so that people with old cpus will be able to use puppy linux. Right now, a lot of people cannot even boot racy or wary 5.5, because of 686 choice.


Posted on 31 Mar 2013, 8:20 by BarryK
re challenge2
linuxcbon,
Wary 5.5 should work on i486.

scsijon,
The first option "Any types" lists everything.
I could add a non-GUI option.

I am just about to add "Qt4 GUI (not KDE)" and "Qt5 GUI (not KDE)".

01micko,
"Plateau" for Woof? Yes, there was a brief plateau

Ted Dog,
Retirement? It is still on the cards.



Posted on 31 Mar 2013, 8:58 by linuxcbon
re re challenge2
Remain racy, precise, slacko, and all the others...which makes 80% ? of puppies which cannot boot on old pcs ? Great.


Posted on 31 Mar 2013, 10:41 by BarryK
GUI filtering: more options
I fixed a couple of bugs in the filtering code.
Also, have increased the options:

Any type
GUI apps only
GTK+2 GUI apps only
GTK+3 GUI apps only
Qt4 GUI apps only
Qt4 GUI, not KDE
Qt5 GUI apps only
Qt5 GUI, not KDE
Any non-GUI type


Hmmm, I had to do this in filterpkgs.sh:
 if [ "$exclguiPTN" ];then #130331

#well well, news to me, this has to be done in two steps...
FLTRD_REPO1="$(echo "$FLTRD_REPO" | grep -i -v "$exclguiPTN")"
FLTRD_REPO="$FLTRD_REPO1"
fi

That is, this does not work properly:
FLTRD_REPO="$(echo "$FLTRD_REPO" | grep -i -v "$exclguiPTN")"


All the languages that I know of, specify that a variable can be assigned to itself.

I have done it in one line in the past, and I don't think there was any problem. One difference, I am now using bash 4.1, instead of 3.0.16 in all previous pups.

Unfortunately, I know that I have done it in one line in other scripts. Oh well, I will just have to keep my eyes open, fix if/when I come across it.
Note, it is probably ok for numeric and small text variables. My example above is a multi-line text variable.



Posted on 31 Mar 2013, 10:44 by BarryK
GUI filtering, more options
Woof commit:

http://bkhome.org/fossil/woof2.cgi/info/133176ff2f



Posted on 31 Mar 2013, 11:30 by BarryK
Old PETs
01micko,
Just while I think of it:

I noticed in Slacko 5.5 you have two packages (PETs) that are not needed:

hal
icons_puppy_app16


I left 'hal' out of my spup14 build.
I have removed 'icons_puppy_app16' from the noarch repo, so that it can no longer be selected.

Hey, while we are on the topic of "retirement", aren't you supposed to be a busy uni student now?



Posted on 31 Mar 2013, 12:32 by 01micko
busy..
Yes I am.. but I took the opportunity of mid semester break to update my puplets


Posted on 31 Mar 2013, 13:40 by 01micko
ThinSlacko
http://murga-linux.com/puppy/viewtopic.php?t=85348

The woof is a little older because I built it about a week ago. IIRC it was the 96dpi commit. It's aimed at older gear but for those who want a recent glibc which some new apps require. It's reasonably trimmed down.

Barry, you might want to take a look, if not for the Adrive stuff at least for possible inclusion of PPM recognition of SFS packages, so long as those sfs contain some kind of manifest. I reckon this direction could be the way of Puppy 6 series, which incidentally, Jemimah pioneered awhile back with Saluki. Unless of course you have other ideas.


Posted on 31 Mar 2013, 14:17 by pemasu
pupdial mono 12 font
While using 3g connection during Easter holiday...I noticed that dpi 96 and pupdial mono 12 font causes status log font to be too big.
Maybe I have patched my used woof wrongly. I will create new woof when I get back to civilisation.
Anyway for of a check.


Posted on 31 Mar 2013, 16:32 by Terryphi
Security updates
A major deficiency in PPM is that it is essentially a Puppy customisation program rather than a maintenance program. PPM has no mechanism for identifying and offering to the user security updates of already installed Ubuntu packages.

Ubuntu has a repository for security updates at http://security.ubuntu.com/ubuntu/ .


Posted on 31 Mar 2013, 20:28 by BarryK
Re pupdial 96 dpi
pemasu,
Thanks, I have changed "Mono 12" to "Mono 10" in 'pupdial' script.



Posted on 31 Mar 2013, 20:33 by L 18 L
old pet: didiwiki-gui
Apologies for not quite on topic.

I have been stumbled upon /usr/sbin/didiwiki-gui:
# Designed for use with Puppy Linux, www.puppylinux.com

#v411 dunno why, but no longer creates new pages, needs /root/spot/.didiwiki world-writable.

#v411 bug workaround, needs to be fixed properly sometime...
mkdir -p /root/spot/.didiwiki
chmod 777 /root/spot/.didiwiki

I know why: needs /root/spot/.didiwiki user-writable owned by spot.

chmod 755 /root/spot/.didiwiki root-skeleton
chown spot /root/spot/.didiwiki
# or just do it in root-skeleton

Happy Easter


Posted on 31 Mar 2013, 20:46 by BarryK
Re Mono 96 dpi
I have also change to "Mono 10" in 'partview' and 'pupscan'.

Woof has been uploaded.



Posted on 31 Mar 2013, 20:58 by BarryK
Re 'spot'
L18L,
The place to fix it is in file 'VCSMETADATA' in 'woof-code' directory in Woof.

Currently has:
rootfs-skeleton/root/spot:2755:spot:spot

rootfs-skeleton/root/spot/.didiwiki:2755:root:root
rootfs-skeleton/root/spot/.didiwiki/WikiHelp:644:spot:spot
rootfs-skeleton/root/spot/.didiwiki/WikiHome:644:spot:spot
rootfs-skeleton/root/spot/README.txt:644:spot:spot


OK, have changed this line:
rootfs-skeleton/root/spot/.didiwiki:2755:spot:spot





Posted on 31 Mar 2013, 22:38 by pemasu
fixed gtk font in woof
This hack has been introduces originally by Iguleder. I have used it in woof a long time.

Now it is handier than ever since font size 10 will be preferred. Gtk themes can have font size 12 in gtkrc.

In woof 3builddistro:
echo "# -- THEME AUTO-WRITTEN DO NOT EDIT

include \"/usr/share/themes/${GTKTHEME}/gtk-2.0/gtkrc\"
style \"user-font\" {
font_name = \"DejaVu Sans 10\"
}

widget_class \"*\" style \"user-font\"

gtk-font-name=\"DejaVu Sans 10\"
include \"/root/.gtkrc.mine\"

# -- THEME AUTO-WRITTEN DO NOT EDIT
gtk-theme-name=\"${GTKTHEME}\"" > rootfs-complete/root/.gtkrc-2.0


And how it looks like in Puppy /root/.gtkrc-2.0:

# -- THEME AUTO-WRITTEN DO NOT EDIT
include "/usr/share/themes/Polished-Blue/gtk-2.0/gtkrc"

style "user-font" {
font_name = "DejaVu Sans 10"
}

widget_class "*" style "user-font"

gtk-font-name="DejaVu Sans 10"

include "/root/.gtkrc.mine"

# -- THEME AUTO-WRITTEN DO NOT EDIT
gtk-theme-name="Polished-Blue"

And what you get: fixed DejaVu Sans 10 in gtk themes

Yeah. /usr/sbin/hackfontsize script do it also. When you run the script after installing font 12 configured theme.



Posted on 32 Mar 2013, 2:07 by BarryK
Re gtk font
pemasu,
If someone runs gtk-chtheme, the gtk theme setter, it completely rewrite /root/.gtkrc-2.0.

In the gtk-chtheme PET, I introduced 'gtk_chtheme_wrapper', which gets executed via the menu.
This is a script that executes the 'gtk-chtheme' binary, then afterward appends "gtk-theme-name="Polished-Blue"" to /root/.gtkrc-2.0.

So, the gtk-chtheme PET will have to be modified to append that extra information.



Posted on 32 Mar 2013, 7:56 by 01micko
prelim GTK3 support
This is a rough addition to gtk_chtheme_wrapper. Probably need to wait a bit and see what gtk3 themes become available, I only have 2 that work! and only one of those has support for gtk2, so effectively, only 1 is usable, see the gtkdialog development thread where thunor has preliminary support for gtkdialog for gtk3, probably needs your input at an early stage Barry to establish a convention.

#!/bin/sh

#(c) Copyright Barry Kauler April 2013, bkhome.org
#license GPL3 (see /usr/share/doc/legal).
#130329 first release.

gtk-chtheme

#make Qt4 apps theme match gtk2...
#see also /etc/profile.d/pup_gtk and /root/.config/Trolltech.conf
#/root/.gtkrc-2.0 typically looks like this:
## -- THEME AUTO-WRITTEN DO NOT EDIT
#include "/usr/share/themes/Polished-Blue/gtk-2.0/gtkrc"
#
#include "/root/.gtkrc.mine"
#
## -- THEME AUTO-WRITTEN DO NOT EDIT
CURRGTKTHEME="$(grep '^include "/usr/share/themes/' /root/.gtkrc-2.0 | cut -f 5 -d '/')" #'geany ex: Polished-Blue
THEREBEFORE="$(grep '^gtk-theme-name' /root/.gtkrc-2.0)"
[ "$THEREBEFORE" = "" ] && echo "gtk-theme-name=\"${CURRGTKTHEME}\"" >> /root/.gtkrc-2.0
# gtk3 theme support thunor http://murga-linux.com/puppy/viewtopic.php?p=695722#695722 #130401
GTK3THEME=`find /usr/share/themes/${CURRGTKTHEME} -type d -name gtk-3.0`
if [ "$GTK3THEME" ];then
[ -d ${XDG_CONFIG_HOME}/gtk-3.0 ] || mkdir -p ${XDG_CONFIG_HOME}/gtk-3.0
[ -f ${GTK3THEME}/settings.ini ] && cp -af ${GTK3THEME}/settings.ini $XDG_CONFIG_HOME/gtk-3.0/ ||
echo -e "[Settings] \ngtk-theme-name = \"${CURRGTKTHEME}\" \ngtk-fallback-icon-theme = \"gnome\"" \
> $XDG_CONFIG_HOME/gtk-3.0/settings.ini
#[ -f ${GTK3THEME}/gtk.css ] && cp -af ${GTK3THEME}/gtk.css $XDG_CONFIG_HOME/gtk-3.0/ ||\# doesn't work
echo "" > $XDG_CONFIG_HOME/gtk-3.0/gtk.css
fi



Posted on 1 Apr 2013, 12:33 by aarf
lid close
raring-precise have the suspend on lid close which is fine except when it suspends the shutdown. so you have to wait until it is down before you can close the lid and pack away.
jemmimah had a fix for this too, so you could close the lid and shutdown would continue. go into woof?


Posted on 1 Apr 2013, 14:46 by aarf
lid close2
need to have resume=/dev/sda4 in kernel line where sda4 is a swap partition larger than you ram.
so when you unsuspend it keeps going but it seems to not remember anything past the suspend point when you eventually reboot. mention this because it is the same thing that happens when unload on the fly fails to complete. using ext3 partitions


Posted on 1 Apr 2013, 19:26 by Iguleder
GTK3 Migration
I say, let's avoid GTK3 until it proves to be stable (in terms of API and ABI) and not GNOME-centric anymore (phew, can't believe I just said that ... so naive!).

Seriously, look at all GTK apps these days - many of those ported to GTK3 still have a GTK2 interface. Facts speak for themselves - I guess third-party application developers (e.g those not under the GNOME umbrella) do not trust GTK3 (a GNOME library) the way they trusted GTK2 (a graphical toolkit used by GNOME).

At the moment, here's what I see:
- GTK3 is bigger and heavier.
- GTK3 is a maintenance burden because of the constantly breaking API. C'mon, we're a community project! The main weakness of community projects is lack of man power and maintenance is a huge burden for us, even when it's nothing but a GTK theme.
- The only killer feature I see in GTK3 is Wayland support. IMHO, we benefit nothing from using it now.
- Correct me if I'm wrong - GTK2 satisfies all Puppy's needs and it's still early to work on Wayland migration, so we don't have to to make the switch to GTK3, at least until Wayland becomes the de-facto display server and we no longer have a choice.

I think we should stick with GTK2 until Wayland deployment in major distros begins and focus on a major Qt5/GTK3 porting effort in parallel with Wayland integration in Puppy.

Comments, objection, agreement, anyone?

2c


Posted on 1 Apr 2013, 19:58 by BarryK
Re gtk3 migration
Iguleder,
Yes, I have been thinking similar thoughts. Stay with GTK2 as much as possible.

A problem though, is that apps such as Gnumeric and Abiword are now GTK3, from the major distros, such as Ubuntu.

But, we might think in terms of our next step up to be Qt5 apps rather than GTK3. So, if we can find Qt replacements for apps like Gnumeric and Abiword, that would be good.

Just a thought anyway.



Posted on 1 Apr 2013, 20:02 by 01micko
re ! gtk3 migration
Nah.. no one wants to migrate. The fact is that it's there, and downloadable (as a probable dependency) if a user wants whatever program, a good example is guvcview, from ubuntu, debian or salix repos. We are only at the stage of basic theme support, nothing more, just to get a unified look.


Posted on 1 Apr 2013, 20:25 by disciple
Re GTK3/QT migration
> - The only killer feature I see in GTK3 is Wayland support. IMHO, we benefit nothing from using it now.

The html backend seems pretty cool...
And vector screenshots ;)

- Correct me if I'm wrong - GTK2 satisfies all Puppy's needs and it's still early to work on Wayland migration, so we don't have to to make the switch to GTK3, at least until Wayland becomes the de-facto display server and we no longer have a choice.

Perhaps I am ignorant and stupid, but at the moment I'm hoping that day never comes... Wayland does away with all the awesomeness of X

---------------------
BarryK wrote:
> So, if we can find Qt replacements for apps like Gnumeric and Abiword, that would be good.

That's the main problem. There are some great QT niche apps (speedcrunch, QGIS). But it is still impossible to put much of a desktop system together with plain QT (non KDE) apps. There are a few new filers and things that look quite promising and might help things along though.

You said in another comment that Qt seems to be pulling ahead of GTK. This may be the case in terms of number of commits, but I think there are some around here who would actually say it is a good thing for GTK, since the most common complaint seems to be that GTK changes too much. Similarly, I think if GNOME died that could potentially be a good thing for GTK.


Posted on 1 Apr 2013, 20:29 by pemasu
gtk3 support
There are several apps nowadays which have gtk3 dependency, at least in ubuntu repos when using PPM.
Audacious, Abiword, Gnumeric, Guvcview ans surely more...

People will download and use them anyway.
It wont hurt those users if those PPM downloaded apps have decent outlook.
I hope the decent outlook support will not be shot down.
I dont even need unified outlook !
I surely sound naive.


Posted on 1 Apr 2013, 24:12 by noryb009
Re re GTK3/QT migration
"Wayland does away with all the awesomeness of X"
But X isn't awesome.


Posted on 2 Apr 2013, 19:05 by disciple
X
Well, I can't comment on videos I'm not in a position to watch, but what I can say is that some of us actually still care about things like network transparency.
I guess it is quite possible that in the end the Wayland stack will have sufficient functionality and be lighter than the current X stack, and I hope that's the case, but at the moment I don't like the idea of things like running X on top of Wayland when I could just run X by itself.


Posted on 3 Apr 2013, 8:44 by noryb009
Re X
I'm not expecting you (or anyone else) to watch the whole video, but it does mention (around 18:40) that X is not network transparent (anymore).

Currently, running X on Wayland is a waste - it's only for proof-of-concept. However, in the future, if everybody moves to Wayland, X on Wayland would only be needed for a few legacy programs which don't use a toolkit. Wayland is faster, smaller and better then X, it's just not ready for everybody to use it - yet.