You are not logged in.

#1 2011-04-20 18:23:19

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

PkgBrowser: A utility for browsing pacman databases and the AUR

greetings, fellow archers!

i have finally got around to completing "pkgbrowser", my pacman/aur package browser.

the purpose of pkgbrowser is to integrate several resources for searching and browsing arch packages into a single, consistent interface. the core of the application is a gui front-end for libalpm (the arch linux package management library), and provides searching and querying features similar to e.g. 'pacman -Q' or 'pacman -Ss'. in addition, as with tools like package-query, it is also possible to extend searches to the aur (arch unofficial repository).

further features are:

    dependency trees (similar to pacman's pactree tool)

    extended file searches (similar to the pkgfile tool)

    package categories (provided courtesy of pacnet)

pkgbrowser is written in python3 and pyqt5 (plus some cython bindings for libalpm).

the aur url for pkgbrowser is here: https://aur.archlinux.org/packages.php?ID=48372.

a screenshot and the source code can be found here: https://bitbucket.org/kachelaqa/pkgbrowser.

there is also a manual (accessed from the help menu) which has further details on how to use pkgbrowser.

finally:

please note that pkgbrowser is a purely informational application - it cannot be used for installing, removing or updating packages.

CHANGELOG
2016-03-22: version 0.20
  improved the performance of the files search (3x faster for non-regexp searches)
  changed the files search so that it is always case-sensitive by default
  added support for nested groups in the search syntax
  added the facility to search for empty fields (enables listing orphaned packages)
  changed to using the Arch Linux Archive for the cache page
  updated the aur apis to use rpc v5

2015-08-10: version 0.19
  added columns for votes and popularity in the package-pane
  made the package-pane columns configurable
  added support for aur 4
  ported to pyqt5
  improved performance of send-to-list command

2014-05-28: version 0.18
  added support for AUR 3.0
  fixed some compiler warnings

2013-12-13: version 0.17.1
  fixed fetching of aur package info so that max url length is not exceeded

2013-09-14: version 0.17
  fixed the formatting of exported package information
  added an information page for backup files
  reworked the url opener so that the BROWSER environment variable is given priority
  re-arranged the filters so that more package states are represented
  fixed the makefile so that python3 is explicitly set as the default

2013-09-03: version 0.16
  moved to a new source-code hosting site
  ported to python3
  added an aur category for fonts

2013-08-27: version 0.15
  fixed package update checking so that downgrades are ignored for vcs packages
  fixed the package cache lister so that it works with the new arm service
  fixed offline mode so that it includes the package cache arm service
  fixed the sig-level handling in the alpm bindings

2013-04-26: version 0.14.1
  fixed the matcher for package cache files
  fixed the logfile parser so that it works with the latest format

2013-04-22: version 0.14
  fixed package urls so that only official arch repositories are supported
  fixed the keyboard navigation in the information pane
  added support for history navigation with the extra mouse-buttons
  improved the formatting of the dependency tree
  added a handler for system palette changes
  unified the colour scheme for the information pages (based on the system palette)
  changed the package list so that installed size is always shown (where appropriate)
  added a command for sending linked items in the information pages to the package list
  added incremental text-search to the information pages
  added a validation field to the details page
  added an optional-for field to the details page
  added a new status for optional-for packages
  removed the (unsupported) plugins mechanism

2013-04-07: version 0.13
  updated the config parser for pacman-4.1
  ported the alpm bindings to libalpm-8.x

2012-12-07: version 0.12
  added an install-script field to the details page
  added a field to the details page for official package urls
  improved the method for identifying the system browser when opening links
  added a keyboard handler for deleting individual bookmarks
  reimplemented the search methods

2012-11-13: version 0.11.1
  fixed the alpm bindings so that string conversions are handled correctly

2012-11-04: version 0.11
  updated the backend to be compatible with aur-2.0
  fixed the wildcard method for aur searches
  fixed the alpm bindings so that listing package files does not crash on 64 bit systems

2012-10-31: version 0.10.2
  fixed the updating of the search-box list
  fixed and/or improved unicode support throughout the codebase
  fixed the retrieval of urls from arm so that plus-signs are handled correctly
  fixed the percent/character encoding of urls
  fixed maintainer search so that installed aur packages are included
  reimplemented the downloader so that aur search is restored
  ported the libalpm bindings to cython
  fixed package filtering so that cross-repo updates do not produce duplicates
  fixed the "requires" list so that aur items can be included

2012-07-07: version 0.10.1
  fixed a build issue caused by changes to the python2-pyqt package

2012-05-04: version 0.10
  added an information tab for listing package cache entries
  changed the display of information pages so that all tabs are enabled for every package
  fixed the about dialog so that links are accessible

2012-04-29: version 0.9.1
  fixed the category listing so that it works with the new pacnet api
  fixed the aur urls so that https logins are made easier

2012-03-10: version 0.9
  added the facility to bookmark packages
  added a package log information page
  added an 'optional' key to the search options (for reverse optdepends)
  improved the menu layout
  fixed the package files lists so that they are always correctly sorted
  fixed the statistics dialog so that it is a child of the main window
  fixed the application startup so that the main window is shown immediately
  changed the pkgbuild dependencies so that python-2.7 is required

2012-01-17: version 0.8
  ported the alpm bindings to libalpm-7.x

2011-10-08: version 0.7
  changed loading of categories so that it is done on demand rather than during initialization
  added a context menu command to export package information
  added a menu item for cancelling the current task
  added an option to use system colours for the information pages
  changed history buttons so that they use built-in arrows instead of icons

2011-08-30: version 0.6
  added a configuration option to include the aur in searches by default
  fixed the handling of aur urls
  fixed 'categories' filter so that it is disabled when working offline
 
2011-08-21: version 0.5.1
  fixed (temporarily) the breakage caused by the aur-1.9.0 upgrade

2011-08-05: version 0.5
  added some statistics fields to the dependency tree page
  added 'non-installed' indicators to the dependency tree
  added build dependencies to the dependency tree for aur packages
  added 'build requires' field to details page for aur packages
  fixed the dependency tree so that 'provides' are handled correctly
  added support for 'required by' for aur packages
  fixed details page so that it shows 'required by' for non-installed packages
  fixed search so that it handles versioned 'provides' correctly
  added a 'non-installed' status for the package details page
  removed the facility to retrieve package changelogs
  added a fallback mechanism for loading categories

2011-08-02: version 0.4.1
  fixed the loading of categories so that network errors are handled correctly

2011-06-24: version 0.4
  added a 'split packages' field to the aur details
  improved the reading of aur pkgbuild information
  fixed aur version details so that the release number is included
  fixed some issues with setting the icon of the search button
  added the facility to abort the application after an unhandled exception occurs
  improved the formatting of the package dependency tree
  fixed a rounding error when calculating the statistics
  re-ordered the fields of the details page so the dates are grouped together
  removed the redundant 'install reason' field from the details page

2011-06-19: version 0.3.1
  fixed a minor error when loading backend

2011-05-20: version 0.3
  fixed error handling when accessing aur package info
  fixed 'copy list' so that it works with both groups and packages
  added a search option for filtering the current package list
  moved the 'groups' filter into the repository filter group
  fixed the package list so that it does not scroll to top when expanding groups
  added a 'maintainer' key to the search options
  removed 'submitter' and 'contributors' from the details page
  fixed the details page so that unmaintained aur packages are correctly identified
  fixed the tree generator so that it can handle packages with no dependencies

2011-05-04: version 0.2
  added a size column to the packages list
  added a dialog to display high-level statistics about installed packages
  added an 'installed size' field to the details page for non-installed packages
  added a 'status' field to the details page
  removed 'foreign' as a status category and made it a filter group
  fixed plain-search so that both normal and aur searches have the same behaviour
  fixed the formatting of some error messages (e.g. regular expression syntax errors)
  fixed the error handling for online searches so that failed connections do not hang

2011-04-21: version 0.1.1
  amended the filter names
  fixed the 'non-installed' filter so that it includes updates

2011-04-20: version 0.1
  original release

Last edited by kachelaqa (2016-03-22 20:39:58)

Offline

#2 2011-04-20 18:55:06

SanskritFritz
Member
From: Budapest, Hungary
Registered: 2009-01-08
Posts: 1,616
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

I like this very much, thank you for that package!
The uninstalled category comes from pacman.log? It is a great idea really.

UPDATE: ah, sorry I misunderstood the name, it should be not installed rather?

Last edited by SanskritFritz (2011-04-20 18:58:07)


zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)

Offline

#3 2011-04-20 19:02:25

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

SanskritFritz wrote:

I like this very much, thank you for that package!

you're welcome! glad you find it useful.

The uninstalled category comes from pacman.log? It is a great idea really.

UPDATE: ah, sorry I misunderstood the name, it should be not installed rather?

yes - "uninstalled" means "not installed".

Last edited by kachelaqa (2011-04-20 19:02:57)

Offline

#4 2011-04-20 19:50:22

Xyne
Moderator/TU
Registered: 2008-08-03
Posts: 5,699
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

This does indeed look good. Nice job!

kachelaqa wrote:

yes - "uninstalled" means "not installed".

You should probably change that. "Uninstall" means to remove something that is installed, so "uninstalled" means that those packages were previously installed.

I recommend using "Not Installed" instead.




Have you considered using checkboxes instead of the tree to filter packages?

Filters:
[] installed
[] upgradable
[] orphans

Repos:
[x] core
[x] extra
[x] community
[x] unknown (foreign)
...

That approach might be more versatile but organizing the panel could be difficult. It's just an idea though.

Offline

#5 2011-04-20 20:14:51

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Xyne wrote:

This does indeed look good. Nice job!

thanks!

kachelaqa wrote:

yes - "uninstalled" means "not installed".

You should probably change that. "Uninstall" means to remove something that is installed, so "uninstalled" means that those packages were previously installed.

I recommend using "Not Installed" instead.

aesthetically speaking, i feel it has to be a single word. so what other single-word synonyms are there for "not installed"?

Have you considered using checkboxes instead of the tree to filter packages?

Filters:
[] installed
[] upgradable
[] orphans

Repos:
[x] core
[x] extra
[x] community
[x] unknown (foreign)
...

That approach might be more versatile but organizing the panel could be difficult. It's just an idea though.

and it would require a very substantial rewrite of the backend...

my design is package-focused.

everything is a kind of filter (or view) of "all" packages. repositories don't really have a special status. after all, a package could move from one repository to another (or appear in more than one repository), and package groups can include packages from several different repositories.

Offline

#6 2011-04-20 21:13:07

Xyne
Moderator/TU
Registered: 2008-08-03
Posts: 5,699
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

kachelaqa wrote:

aesthetically speaking, i feel it has to be a single word. so what other single-word synonyms are there for "not installed"?

Hmmm...
Installable?
Other?



kachelaqa wrote:

and it would require a very substantial rewrite of the backend...

my design is package-focused.

everything is a kind of filter (or view) of "all" packages. repositories don't really have a special status. after all, a package could move from one repository to another (or appear in more than one repository), and package groups can include packages from several different repositories.

Ok

I had one other idea, but I don't know if it would be easy to code: "New"
Maybe you could create a list or database snapshot of known packages and then check for new packages against that. I think it would be useful if the user could see exactly which packages have been added since the last time they checked.

Offline

#7 2011-04-20 21:33:57

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Xyne wrote:

I had one other idea, but I don't know if it would be easy to code: "New"
Maybe you could create a list or database snapshot of known packages and then check for new packages against that. I think it would be useful if the user could see exactly which packages have been added since the last time they checked.

i've already thought of that smile

my solution is to format the installation date in the package list in such a way that it sorts alphabetically.

to discover the sequence in which packages were installed, filter by All / Installed and then click on the date column header to sort them in either ascending or descending order.

Offline

#8 2011-04-20 21:43:23

lula
Member
Registered: 2009-07-16
Posts: 31

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Nice tool, thanks kachelaqa

Xyne wrote:

Hmmm...
Installable?
Other?

What about "Available"

Offline

#9 2011-04-20 22:30:12

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

lula wrote:

Nice tool, thanks kachelaqa

glad you like it, thanks

lula wrote:
Xyne wrote:

Hmmm...
Installable?
Other?

What about "Available"

"available" is quite good (in the sense of "unused" or "unutilized")

i'm thinking that maybe:

    Installed
    Orphans
    Updates
    Available (or Unused or Other)

would be a better arrangement.

and this has also exposed a small bug:

"updates" should appear in the list of "available" packages, just as "orphans" currently appear in the list of "installed" packages.

UPDATE:

after a bit of googling, it seems "non-installed" is the most common term for "packages that are not installed", so that is what i shall use.

a new version that fixes the two issues mentioned above will be submitted sometime today.

thanks to everyone for the feedback!

Last edited by kachelaqa (2011-04-21 14:35:45)

Offline

#10 2011-04-25 11:02:14

jeff story
Member
Registered: 2009-05-31
Posts: 237
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

I just installed pkgbrowser to check it out.

My first impression....    Very nice job kachelaqa !    

Thank you for your contribution for this much needed tool.  I have a feeling this will quickly rise to the top of the list of pacman helpers/accessories tools.

PkgBrowser is a much improved replacement for the recently somewhat dysfunctional gtkpacman I used for package browsing on my Arch installs.

Hope you don't mind I added info to wiki, please edit as you see fit.
https://wiki.archlinux.org/index.php/Pa … ge_Browser

Last edited by jeff story (2011-04-26 21:34:03)


Check out my website for info on the Arch Linux Installer

Offline

#11 2011-04-26 21:35:24

unikum
Member
From: Russia
Registered: 2010-09-04
Posts: 151
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

This program support AUR? It will be in future?

Offline

#12 2011-04-26 21:40:29

jeff story
Member
Registered: 2009-05-31
Posts: 237
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

unikum wrote:

This program support AUR? It will be in future?

Yes,  it currently supports the AUR.

@ karol.... we must of crossed up during my edit!

Last edited by jeff story (2011-04-26 21:49:09)


Check out my website for info on the Arch Linux Installer

Offline

#13 2011-04-26 21:42:07

karol
Archivist
Registered: 2009-05-06
Posts: 25,431

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

jeff story wrote:
unikum wrote:

This program support AUR? It will be in future?

Actually, it's currently in the AUR: https://aur.archlinux.org/packages.php?ID=48372

I think he wants to use PkgBrowser to browse AUR like you can browse the repos.

Offline

#14 2011-04-26 22:24:27

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

jeff story wrote:

I just installed pkgbrowser to check it out.

My first impression....    Very nice job kachelaqa !    

Thank you for your contribution for this much needed tool.  I have a feeling this will quickly rise to the top of the list of pacman helpers/accessories tools.

PkgBrowser is a much improved replacement for the recently somewhat dysfunctional gtkpacman I used for package browsing on my Arch installs.

thanks, jeff - hope it lives up to your expectations!

Hope you don't mind I added info to wiki, please edit as you see fit.
https://wiki.archlinux.org/index.php/Pa … ge_Browser

i hadn't thought to do that - thanks, it looks fine to me smile

Offline

#15 2011-04-27 07:36:23

semeion
Member
From: Brazil
Registered: 2008-10-20
Posts: 56

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

I am using here!

Congratulations nice program!

Thanks!

Offline

#16 2011-04-27 08:49:13

unikum
Member
From: Russia
Registered: 2010-09-04
Posts: 151
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Nice program.  It would be well if could install and remove packages.

Offline

#17 2011-04-27 11:04:24

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

unikum wrote:

It would be well if could install and remove packages.

sorry, but this will never happen sad

it would add a lot more complexity to pkgbrowser and make it much more difficult for me to maintain. there are other projects i want to work on, and a complete gui front-end to libalpm would take up far too much of my precious programming time.

and in any case, personally, i don't want a gui to install and remove packages (i think the CLI is the best interface for that) - so it would be very hard for me commit myself to the long-term maintenance of such a project.

but all is not lost!

fortunately, there are several existing (or proposed) projects out there that may do what you want. see the wiki page: Pacman GUI Frontends.

Offline

#18 2011-04-27 11:15:09

SanskritFritz
Member
From: Budapest, Hungary
Registered: 2009-01-08
Posts: 1,616
Website

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

kachelaqa wrote:

fortunately, there are several existing (or proposed) projects out there that may do what you want. see the wiki page: Pacman GUI Frontends.

unfortunately, almost none of them is working atm, except for Wakka. The wiki needs some overhaul I think, /me is rolling his sleeves...


zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)

Offline

#19 2011-05-01 18:16:25

aluser
Member
Registered: 2011-01-16
Posts: 119

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

can we have an option to sort packages by installed size? that would make this 10x better.

Offline

#20 2011-05-01 18:26:56

karol
Archivist
Registered: 2009-05-06
Posts: 25,431

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

aluser wrote:

can we have an option to sort packages by installed size? that would make this 10x better.

How about a one-liner:

expac -s "%-30n %m" | sort -rhk 2 | less

You need expac package for this to run.

Offline

#21 2011-05-01 21:02:06

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

aluser wrote:

can we have an option to sort packages by installed size? that would make this 10x better.

it just so happens that i have recently finished implementing this for the next version of pkgbrowser.

i will be releasing the new version sometime next week.

Offline

#22 2011-05-20 00:33:50

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

version 0.3 has been released today.

please see the changelog for further details.

Offline

#23 2011-05-20 16:00:14

Daenyth
Forum Fellow
From: Boston, MA
Registered: 2008-02-24
Posts: 1,244

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Do you have any plans to make a curses version like aptitude? I've been toying with the idea myself. I'd be willing to do some work on it now and then. If you have the functions properly set up it should actually be pretty easy, you just need to change the gui code and make the event handlers for curses. Maybe I'll see if I could get something started...

Also, I can't install this.

$ sudo packer -S pkgbrowser

Aur Targets    (1): pkgbrowser

Proceed with installation? [Y/n]
Edit pkgbrowser PKGBUILD with $EDITOR? [Y/n] n
Edit pkgbrowser.install with $EDITOR? [Y/n]

==> Making package: pkgbrowser 0.3-1 (Fri May 20 12:03:10 EDT 2011)
==> Checking runtime dependencies...
==> Missing Dependencies:
  -> python2-pyqt
==> Checking buildtime dependencies...
==> ERROR: Could not resolve all dependencies.
The build failed.

The python2-pyqt doesn't seem to exist. There's python26-pyqt, but that's the wrong version.

Last edited by Daenyth (2011-05-20 16:04:47)

Offline

#24 2011-05-20 23:12:42

kachelaqa
Member
Registered: 2010-09-26
Posts: 215

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

Daenyth wrote:

Do you have any plans to make a curses version like aptitude? I've been toying with the idea myself. I'd be willing to do some work on it now and then. If you have the functions properly set up it should actually be pretty easy, you just need to change the gui code and make the event handlers for curses. Maybe I'll see if I could get something started...

i haven't thought much about other interfaces, but i have tried hard to keep the core functionality separate from the gui as it makes testing much easier. the only significant functionality which is currently handled by the front-end mostly generates the html which is used in the info pages and statistics dialog. (i will try to move that functionality into the back-end for the next release). the back-end was not really designed as a public api, but it is probably usable as one. i don't think it would be necessary to add curses event handlers - the backend has optional callbacks for calling some of its methods asynchronously. so with a bit of luck, it may be possible to just import the backend modules and add a different front-end to taste (if i'm not being wildly optimistic).

i'm afraid creating a curses interface would be entirely up to you, as i have zero experience of using it wink

Also, I can't install this.

$ sudo packer -S pkgbrowser

Aur Targets    (1): pkgbrowser

Proceed with installation? [Y/n]
Edit pkgbrowser PKGBUILD with $EDITOR? [Y/n] n
Edit pkgbrowser.install with $EDITOR? [Y/n]

==> Making package: pkgbrowser 0.3-1 (Fri May 20 12:03:10 EDT 2011)
==> Checking runtime dependencies...
==> Missing Dependencies:
  -> python2-pyqt
==> Checking buildtime dependencies...
==> ERROR: Could not resolve all dependencies.
The build failed.

The python2-pyqt doesn't seem to exist. There's python26-pyqt, but that's the wrong version.

python2-pyqt is in extra: http://www.archlinux.org/packages/?q=python2-pyqt.

not sure why packer can't install it. the only thing i can think of is that python2-pyqt was recently renamed (it used to be 'python2-qt').

installation works fine for me with both makepkg/pacman and yaourt.

Offline

#25 2011-05-21 00:18:30

Daenyth
Forum Fellow
From: Boston, MA
Registered: 2008-02-24
Posts: 1,244

Re: PkgBrowser: A utility for browsing pacman databases and the AUR

I may or may not have missed a pacman -Sy beforehand...

Offline

Board footer

Powered by FluxBB