You are not logged in.

#1 2008-04-05 11:38:01

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Shaman - libalpm frontend in Qt4

Many of you might already have heard about it, but I'm posting this thread now just because I wanted it to reach a semi-stable status before showing it to the whole community.

I'm introducing you Shaman, a Qt4 frontend to libalpm, Pacman's library.

Before telling you more, here comes the obligatory screenshot.

dbimage.php?id=166908

Our trac website, where you can find some informations and report bugs is: http://shaman.iskrembilen.com/trac.cgi/wiki

Currently released version is 1.0 Beta 1.

Since Shaman is based upon libalpm, it is not simply a program that calls pacman and shows output in a terminal: Shaman is an alternative frontend. This means you get progress bar, GUI notifications and everything you envied in the Synaptic-like thing.

This does not mean Shaman is more dangerous/more anything than pacman. Shaman does exactly what pacman does in terms of results, it simply shows it in a different manner.

Some of the features you'll surely love in it are:

* Fast and advanced searches: refine your search on the fly throughout groups or repositories, name or description filter, and package status, and find anything in a matter of seconds.

* Configure everything: our parser has been throughout many hard tests and rewrites, and it can now safely edit your pacman.conf, abs.conf and mkinitcpio.conf, without stripping out comments or anything. Add/remove repositories, change your configuration through the Preferences dialog, hit OK and you're done.

* Compile your packages from source: Thanks to ABS, you can rebuild your packages from source. Shaman also features a PKGBUILD editor. Please note that this is not unsafe!!! Shaman can build only from ABS and **NOT** from AUR!! This is because packages from AUR can be dangerous, while in ABS there are only official and tested PKGBUILDS.

* Keep yourself up-to-date: Shaman has a simple RSS reader from Arch Linux frontpage news. Not only: if there is an unread news about a package you're about to process, Shaman will warn you. So you won't hit dangerous updates anymore.

* Review your Logs easily: Shaman's log viewer is able to search through your logs in a fast and easy manner. Also, log actions are shown in the Package Information dialog.

* Updates on the go: When reduced to tray, Shaman will update your databases and notify you upon available upgrades.

* More stuff!!

Shaman is **NOT** linked against kdelibs4, so you just need a copy of qt4 to have it working. Anyway, guys testing KDE4 can have some nice addons. First of all, a krunner that will let you do most basic things just by pressing ALT+F2. Here comes some screenshots:

dbimage.php?id=166992
dbimage.php?id=166994

Shaman also features a Plasmoid, that will be implemented later, since we're waiting for WoC to be ready. Those 2 components are optional and will be installed only if you have KDE4 running.

Shaman is internationalized, and it's already available in other languages. Please check here the status of your language: http://www.kdemod.ath.cx/bbs/viewtopic.php?id=576 , if you want to translate Shaman to your language please reply here on in the linked thread.


Ok, so, do you want to give it a spin? You have several ways to get Shaman, both from binary and source.

shaman PKGBUILD in AUR: http://aur.archlinux.org/packages.php?ID=15422
shaman-svn PKGBUILD in AUR: http://aur.archlinux.org/packages.php?ID=15382
SourceForge project page: http://sourceforge.net/projects/shaman-arch

These repos include a binary copy of Shaman:

[kdemod-unstable]
Server=http://kdemod.ath.cx/repo/unstable/i686

[gui]
Server = http://pkg.eth-os.org/gui/i686
# or Server = http://pkg.eth-os.org/gui/x86_64

Thanks for reading and testing!! smile

Offline

#2 2008-04-05 12:26:57

Pierre
Developer
From: Bonn
Registered: 2004-07-05
Posts: 1,961
Website

Re: Shaman - libalpm frontend in Qt4

Nice work! A good graphical package manager would be a nice addition. Esspecially for searching or just having an overview of packages. But I have a suggestion: Don't add features that have nothing to do with package management. Features like building with ABS, RSS-Reader etc. are completly different tasks. You should write separate apps for doing this. Just keep it simple. Have a look at pacman and try to implement its features using a GUI, but nothing more. Remeber the uix principle.

Offline

#3 2008-04-05 12:33:05

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

Pierre wrote:

Nice work! A good graphical package manager would be a nice addition. Esspecially for searching or just having an overview of packages. But I have a suggestion: Don't add features that have nothing to do with package management. Features like building with ABS, RSS-Reader etc. are completly different tasks. You should write separate apps for doing this. Just keep it simple. Have a look at pacman and try to implement its features using a GUI, but nothing more. Remeber the uix principle.

Hey, thanks! smile
What you say is right indeed, but every "addon" we implemented is strictly integrated with pacman, the RSS reader has a reason (and can be disabled), exactly like ABS integration and the Log viewer.

Anyway, when we'll definitely stabilize it, we'll rewrite it making it plugin-based. This means that anything non-pacman related will turn into a plugin that can be enabled/disabled.

Offline

#4 2008-04-05 12:41:08

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: Shaman - libalpm frontend in Qt4

drf wrote:

Shaman also features a PKGBUILD editor. Please note that this is not unsafe!!! Shaman can build only from ABS and **NOT** from AUR!!

A minor, slightly pedantic point - editing any PKGBUILD, regardless of where it comes from, can be dangerous, if the user does not know what he's doing.

Offline

#5 2008-04-05 12:43:24

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

tomk wrote:
drf wrote:

Shaman also features a PKGBUILD editor. Please note that this is not unsafe!!! Shaman can build only from ABS and **NOT** from AUR!!

A minor, slightly pedantic point - editing any PKGBUILD, regardless of where it comes from, can be dangerous, if the user does not know what he's doing.

Yeah, in fact you don't have to - you have the option, but it's not required, so users can, and are not forced to edit the PKGBUILD.

Offline

#6 2008-04-05 13:17:01

raymano
Member
Registered: 2006-10-13
Posts: 357
Website

Re: Shaman - libalpm frontend in Qt4

drf,

I for one think that you are doing a great job. Once Shaman has matured, I will make it available in FaunOS.

Keep up the good work.
Raymano

smile

P.S. And it perfectly adheres to Arch's KISS principal. Here's how: If you don't like it, don't use it. Simple.

Last edited by raymano (2008-04-05 13:19:29)


FaunOS: Live USB/DVD Linux Distro: http://www.faunos.com

Offline

#7 2008-04-05 13:20:25

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

raymano wrote:

drf,

I for one think that you are doing a great job. Once Shaman has matured, I will make it available in FaunOS.

Keep up the good work.
Raymano

Thanks a lot, it would really be an honour. You got mail in a few minutes.

raymano wrote:

smile

P.S. And it perfectly adheres to Arch's KISS principal. Here's how: If you don't like it, don't use it. Simple.

big_smile That's really KISS

Offline

#8 2008-04-05 13:46:29

FenDanT
Member
From: Chamoson- Wallis - Switzerland
Registered: 2007-11-13
Posts: 58

Re: Shaman - libalpm frontend in Qt4

Hey drf tongue

Nice to see you here  lol

Offline

#9 2008-04-05 15:08:29

SpookyET
Member
Registered: 2008-01-27
Posts: 410

Re: Shaman - libalpm frontend in Qt4

AUR integration would be useful, but since it is dangerous, it should be disabled by default. I would also like the ability to create packages, not just consuming them.

For example, I have /home/sorin/Packages/abs/<pkgname> where I store packages I create.
I have to go in, edit the PKGBUILD, change out of the directory to ../abs/.
Run autarchy <pkgname> to make the AUR pkgname.tar.gz.
Run aurup <pkgname> categroy to upload the AUR package.
Move the created .pkg.tar.gz to my local repository.
Run a crappy update-local-repository script that calls repo-add.
Run pacman -Syu.

It's a hassle.

Offline

#10 2008-04-05 19:53:49

DonVla
Member
From: Bonn, Germany
Registered: 2007-06-07
Posts: 997

Re: Shaman - libalpm frontend in Qt4

hi drf,

nice work!

here is one serious issue:
i tried to uninstall "abook" through "Mark for complete removal". i got this:

"Uninstall package: abook"
"abook"
"extra"
Complete Remove Package
"abook"
"Uninstall package: readline"
"readline"
"core"
"Uninstall package: abook"
"abook"
"extra"
"Uninstall package: atftp"
"atftp"
"local"
"Uninstall package: bash"
"bash"
"core"
"Uninstall package: abs"
"abs"
"core"
"Uninstall package: anacron"
"anacron"
"community"
"Uninstall package: aurvote"
"aurvote"
.
.
.

and so one... i had to ctrl-c to stop shaman.
obviously shaman tries to uninstall everything recursively with "-Rcs". not good.

further stuff:
* shaman reminds me a of synaptic. it has a similar look-and-feel.

* it also has a similiar senseless feature: right-click on package-> "package information" shows detailed informations about the pakage (but actually not much more). why don't you show this directly in the field below and omit this right-click entry.

* you don´t need the right-click menu at all. the same options are below....

* "Actions performed" simply greps the package name out of pacman.log. this does not make much sense for packages like "bc" or "at" or similar.

* the package file display is way too complicate. you have to click yourself bumb. a simple list is totally sufficient. (fight the senseless clicking!)

* prmissions of ~/.config/shaman are

drwxr-xr-x 2 root vlad 80 2008-04-05 09:04 shaman/
-rw------- 1 root vlad 546 2008-04-05 21:10 shaman.conf

heh? why?

however, great work! i really like the rss feature!
i would make shaman more modular. the main program supports only the binary package stuff, then there is a module (smth like shaman-abs-support) for abs and further a module for AUR (shaman-AUR-support) only available through AUR. so shaman gets into extra, but also can support whole arch features.

vlad

Last edited by DonVla (2008-04-05 22:41:52)

Offline

#11 2008-04-05 21:57:46

fed359
Member
Registered: 2007-11-21
Posts: 46

Re: Shaman - libalpm frontend in Qt4

Hey drf, this project is looking really good.

I found some behaviour that seems a little unexpected. Upon starting Shaman it adds upgradable packages to the package queue.

Upgradeable packages: 
"xf86-video-radeonhd"

I have a git version of this package installed, so I do not want this package upgraded.

This is a bit unexpected when installing other packages. For example, installing ncmpc would list ncmpc as well as it's dependencies in the "To be Installed" section, but it also lists "xf86-video-radeonhd" in the "To be Upgraded" section although the package was never explicitly added to the queue. Furthermore if you continue with "xf86-video-radeonhd" in the "To be Upgraded" section, Shaman will prompt:

xf86-video-radeonhd conflicts with xf86-video-radeonhd-git.
Remove xf86-video-radeonhd-git?

Answering no causes the operation to fail (as expected), answering yes causes Shaman to hang at:

Executing "pre_remove" scriptlet for package  "xf86-video-radeonhd-git" 
Extracting: "/var/cache/pacman/pkg/xf86-video-radeonhd-git-20080405-1.pkg.tar.gz" 
Couldn't extract package! Executing Scriptlet failed. 
Releasing Queue Lock 
Alpm Thread awake. 
sh: /tmp/alpm_S88Brc/.INSTALL: Permission denied
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
  Major opcode: 53 (X_CreatePixmap)
  Resource id:  0x1c01752
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
  Extension:    154 (RENDER)
  Minor opcode: 4 (RenderCreatePicture)
  Resource id:  0x1c01753
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 59 (X_SetClipRectangles)
  Resource id:  0x1c01750
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 59 (X_SetClipRectangles)
  Resource id:  0x1c01751
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 59 (X_SetClipRectangles)
  Resource id:  0x1c01750
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 59 (X_SetClipRectangles)
  Resource id:  0x1c01751
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 60 (X_FreeGC)
  Resource id:  0x1c01751
X Error: BadGC (invalid GC parameter) 13
  Major opcode: 60 (X_FreeGC)
  Resource id:  0x1c01750
shaman: xcb_io.c:182: process_responses: Assertion `((int) (((dpy->last_request_read)) - ((dpy->request))) <= 0)' failed.
Aborted

After moving the package to /var/cache/pacman/pkg, Shaman hangs again, with the output:

Executing "pre_remove" scriptlet for package  "xf86-video-radeonhd-git" 
Extracting: "/var/cache/pacman/pkg/xf86-video-radeonhd-git-20080405-1-i686.pkg.tar.gz" 
Ok, running the scriptlet... 
"xf86-video-radeonhd-git" doesn't have "pre_remove" scriptlet 
Releasing Queue Lock 
Alpm Thread awake. 
sh: /tmp/alpm_hFfxF5/.INSTALL: Permission denied

Permissions are

drwx------  2 root users 4096 2008-04-05 18:33 .
-rw-r--r--  1 root users  303 2008-04-05 18:30 .INSTALL

Great job, this looks like it'll be a great gui alternative to pacman that some users have been looking for, keep up the good work!

EDIT: I should add that I'm running the svn version, and "When Upgrading System" option is set to "Ask"

Last edited by fed359 (2008-04-05 22:30:09)

Offline

#12 2008-04-06 04:06:12

McQueen
Member
From: Arizona
Registered: 2006-03-20
Posts: 387

Re: Shaman - libalpm frontend in Qt4

Nice work....thanks.


/path/to/Truth

Offline

#13 2008-04-06 11:06:23

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

Hey everyone smile, ok, let me answer.

DonVla wrote:

hi drf,

nice work!

Thanks!

DonVla wrote:

here is one serious issue:
i tried to uninstall "abook" through "Mark for complete removal". i got this:
obviously shaman tries to uninstall everything recursively with "-Rcs". not good.

This is known, will be fixed.

further stuff:
* shaman reminds me a of synaptic. it has a similar look-and-feel.

Yeah, definitely smile

* it also has a similiar senseless feature: right-click on package-> "package information" shows detailed informations about the pakage (but actually not much more). why don't you show this directly in the field below and omit this right-click entry.

Because some informations are pretty... useless. Such as changelog, packager and so on. I'd like to keep the view below essential, with all basic information, and if you're really paranoid about a package, you can see anything in that dialog.

* you don´t need the right-click menu at all. the same options are below....

Of course, but since some people are used to the right-click menu, we provide it.

* "Actions performed" simply greps the package name out of pacman.log. this does not make much sense for packages like "bc" or "at" or similar.

This is true. I'll make it grep for " bc " so that it will make sense.

* the package file display is way too complicate. you have to click yourself bumb. a simple list is totally sufficient. (fight the senseless clicking!)

Uhm... this is a discussion that came up also with other package managers. Some people like it this way, some people like this the other. Maybe we can make everyone happy by giving you the choice on how to display that list smile

* prmissions of ~/.config/shaman are

drwxr-xr-x 2 root vlad 80 2008-04-05 09:04 shaman/
-rw------- 1 root vlad 546 2008-04-05 21:10 shaman.conf

heh? why?

Fixed in svn wink

however, great work! i really like the rss feature!
i would make shaman more modular. the main program supports only the binary package stuff, then there is a module (smth like shaman-abs-support) for abs and further a module for AUR (shaman-AUR-support) only available through AUR. so shaman gets into extra, but also can support whole arch features.

vlad

Thanks a lot for the feedback smile About the modular structure, is in our plans for post-1.0. We want to make everything a module (maybe even the package backend) so that anything non strictly-package-related will be a plugin you can plug and remove.

fed359 wrote:

Hey drf, this project is looking really good.

Thanks smile

I found some behaviour that seems a little unexpected. Upon starting Shaman it adds upgradable packages to the package queue.

Correct, will be fixed.

This is a bit unexpected when installing other packages. For example, installing ncmpc would list ncmpc as well as it's dependencies in the "To be Installed" section, but it also lists "xf86-video-radeonhd" in the "To be Upgraded" section although the package was never explicitly added to the queue. Furthermore if you continue with "xf86-video-radeonhd" in the "To be Upgraded" section, Shaman will prompt:

Answering no causes the operation to fail (as expected), answering yes causes Shaman to hang at:

Looks like it could not find the package...

After moving the package to /var/cache/pacman/pkg, Shaman hangs again, with the output:

Code:

Executing "pre_remove" scriptlet for package  "xf86-video-radeonhd-git"
Extracting: "/var/cache/pacman/pkg/xf86-video-radeonhd-git-20080405-1-i686.pkg.tar.gz"
Ok, running the scriptlet...
"xf86-video-radeonhd-git" doesn't have "pre_remove" scriptlet
Releasing Queue Lock
Alpm Thread awake.
sh: /tmp/alpm_hFfxF5/.INSTALL: Permission denied

Uhm... maybe the scriptlet doesn't have execution permissions?

Great job, this looks like it'll be a great gui alternative to pacman that some users have been looking for, keep up the good work!

EDIT: I should add that I'm running the svn version, and "When Upgrading System" option is set to "Ask"

Thanks a lot smile

P.S.: Use svn with confidence, I use to keep it as clean as possible and most of the times it's even more stable than latest release.

Offline

#14 2008-04-06 13:13:21

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: Shaman - libalpm frontend in Qt4

DonVla wrote:

i would make shaman more modular.. <snip> ..so shaman gets into extra, but also can support whole arch features.

To ensure everyone's expectations are correct - shaman, or any other pacman gui, will not be included in the extra repo. It is possible that a TU would consider adding shaman to the community repo, but that is by no means guaranteed.

Offline

#15 2008-04-06 13:18:30

Mikko777
Member
From: Suomi, Finland
Registered: 2006-10-30
Posts: 837

Re: Shaman - libalpm frontend in Qt4

tomk wrote:
DonVla wrote:

i would make shaman more modular.. <snip> ..so shaman gets into extra, but also can support whole arch features.

To ensure everyone's expectations are correct - shaman, or any other pacman gui, will not be included in the extra repo. It is possible that a TU would consider adding shaman to the community repo, but that is by no means guaranteed.

Doesn't even matter since its in kdemod repo anyways.

Great work drf, but shaman will be pretty useless for me without aur support, ah it would be great if it enabled same kind of functionality as yaourt, ie a aur pkgbuild customization voting and even uploading. smile

Offline

#16 2008-04-06 13:58:56

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

tomk wrote:

To ensure everyone's expectations are correct - shaman, or any other pacman gui, will not be included in the extra repo. It is possible that a TU would consider adding shaman to the community repo, but that is by no means guaranteed.

I know - I would have replied that myself, I just have missed that part.

Mikko777 wrote:

Doesn't even matter since its in kdemod repo anyways.

lol.

Mikko777 wrote:

Great work drf, but shaman will be pretty useless for me without aur support, ah it would be great if it enabled same kind of functionality as yaourt, ie a aur pkgbuild customization voting and even uploading. smile

Just wait until 1.0+ wink we're discussing about design of plugin architecture by now. When plugin support will be ready, I hope also somebody will step up and help us in creating plugins.

We're trying to design it in a way that any other feature can be added... I hope in the future we'll also support scripting languages, don't know if that's possible.

Last edited by drf (2008-04-06 14:02:28)

Offline

#17 2008-04-06 16:13:51

Shaika-Dzari
Member
From: Québec, Canada
Registered: 2006-04-14
Posts: 436
Website

Re: Shaman - libalpm frontend in Qt4

Great work! big_smile

I will test it and provide feedback wink

Offline

#18 2008-04-06 17:16:35

schivmeister
Developer/TU
From: Singapore
Registered: 2007-05-17
Posts: 971
Website

Re: Shaman - libalpm frontend in Qt4

Even though I'll have a very small use for it (to the extent it's overkill) like what Pierre mentioned, I have to say this is a job well done. Kudos!

Last edited by schivmeister (2008-04-06 17:17:29)


I need real, proper pen and paper for this.

Offline

#19 2008-04-06 22:13:33

mutlu_inek
Member
From: all over the place
Registered: 2006-11-18
Posts: 681

Re: Shaman - libalpm frontend in Qt4

I said it before, but I'll repeat myself anyways: you are doing an amazing job with this. Thanks for all that work! And keep it up. tongue

Offline

#20 2008-04-07 06:02:18

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

Thanks everyone smile

Offline

#21 2008-04-11 05:48:10

Shirakawasuna
Member
Registered: 2007-03-09
Posts: 94

Re: Shaman - libalpm frontend in Qt4

This app is great, but how does it store passwords if I tell it to stop asking?  Since it asks for the root password, I'd like to know that it's safe!

Offline

#22 2008-04-11 10:56:43

FeatherMonkey
Member
Registered: 2007-02-26
Posts: 313

Re: Shaman - libalpm frontend in Qt4

Another thumbs up great piece of work not encountered any problems nice to have the packages to browse.

Thanks for the time and effort put into never really had a need for one but when it does the job so well I see little reason for the cli.

Offline

#23 2008-04-11 12:46:07

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

Shirakawasuna wrote:

This app is great, but how does it store passwords if I tell it to stop asking?  Since it asks for the root password, I'd like to know that it's safe!

The password isn't stored at all, so it's pretty safe to check that box.

Offline

#24 2008-04-11 22:54:12

Shirakawasuna
Member
Registered: 2007-03-09
Posts: 94

Re: Shaman - libalpm frontend in Qt4

drf wrote:
Shirakawasuna wrote:

This app is great, but how does it store passwords if I tell it to stop asking?  Since it asks for the root password, I'd like to know that it's safe!

The password isn't stored at all, so it's pretty safe to check that box.

Cool!  How does that work, exactly?  I asked in IRC last night and no one was aware that libalpm could be accessed/do stuff without root access and one can only get root access with a password, right?

I haven't tested it yet, so maybe I need to put the password in once every time Shaman starts?

Offline

#25 2008-04-12 10:45:00

drf
Member
From: Milano, Italy
Registered: 2008-01-13
Posts: 113

Re: Shaman - libalpm frontend in Qt4

Shirakawasuna wrote:
drf wrote:
Shirakawasuna wrote:

This app is great, but how does it store passwords if I tell it to stop asking?  Since it asks for the root password, I'd like to know that it's safe!

The password isn't stored at all, so it's pretty safe to check that box.

Cool!  How does that work, exactly?  I asked in IRC last night and no one was aware that libalpm could be accessed/do stuff without root access and one can only get root access with a password, right?

I haven't tested it yet, so maybe I need to put the password in once every time Shaman starts?

Because of SUID. We don't need to ask the root password to gain root privileges, but we ask it for security reasons. So, triggering that box just notifies shaman that asking the password is no longer needed. And one of the nicest features in Shaman is that it runs as unprivileged user most of the time, taking/releasing root privileges when needed.

For anybody who is scared of SUID: http://shaman.iskrembilen.com/trac/wiki … ged%20user or join #shaman-arch on freenode, I've already had a pair of talks about SUID lol

Last edited by drf (2008-04-12 10:45:47)

Offline

Board footer

Powered by FluxBB