You are not logged in.

#1 2010-02-23 23:42:25

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Clyde - A better libalpm/makepkg wrapper

What is clyde?
Clyde is a next-generation libalpm/makepkg wrapper with AUR support, multithreaded downloading, and colorized output.

Why create another package manager?
Existing AUR helpers such as yogurt, slurpy, and aurbuild are notoriously lacking in features, as well as the basic functionality of pacman itself. The more commonly used option, yaourt, supports the full pacman feature set but can be painfully slow as a result of being written in bash. Additionally, none of these options includes the ability to build a decent GUI around them, and the existing graphical interfaces to pacman and AUR are buggy at best.

What is clyde written in?
Clyde itself is written in Lua. The lualpm bindings to pacman's libalpm library are written in C. Why Lua? Because that's what our lead developer knows best (and because it's lightning fast).

How do you use clyde?
Clyde was designed to be an easy move from pure pacman or yaourt. As such, arguments are passed in the same form as one would pass arguments to either of those two programs. For further details, run `clyde -h` (or pacman/yaourt -h for that matter) from the command line.

Is clyde stable?
At this point in time clyde is in open beta. What does this mean to you? This means that we believe that we have ironed out the most obvious or critical bugs, but there may be a few issues that we haven't found yet. Clyde should be stable enough for day-to-day use (as our rapidly expanding user base can attest) but if it does break your system, fry your motherboard, or eat your babies we are not responsible in any way. You've been warned.

Notes...
Clyde should be perfectly safe, but it does lack a few features still... we're working on it.
Bugs can be posted to github. You may also contact the developers on freenode (DigitalKiwi or Ghost1227... start with DigitalKiwi for bugs, he'll probably fix them before I will).

Thank you for your interest in Clyde, we hope it serves you well.

    .--.          .---.       
   '-._ \ .-.  .-|O O  | ~~    
   .-'  / '-'  '-|~~~  |  ~~~  
    '--'         |.-.-.| ~~

Last edited by Ghost1227 (2010-04-02 07:40:35)

Offline

#2 2010-02-23 23:51:25

n0dix
Member
Registered: 2009-09-22
Posts: 956

Re: Clyde - A better libalpm/makepkg wrapper

great man!!! Thanks for the contribution and the effort.

Offline

#3 2010-02-23 23:57:43

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Re: Clyde - A better libalpm/makepkg wrapper

Thank Kiwi, he did the vast majority of the work. Sanooj and toofishes were also integral in getting lualpm to play nicely with libalpm.

Offline

#4 2010-02-24 00:35:45

Heller_Barde
Member
Registered: 2008-04-01
Posts: 245

Re: Clyde - A better libalpm/makepkg wrapper

holy moly, it IS lightning fast! This is totally awesome!

cheers
Barde

Offline

#5 2010-02-24 00:50:20

some-guy94
Member
Registered: 2009-08-15
Posts: 360

Re: Clyde - A better libalpm/makepkg wrapper

Does clyde have a config file and/or drop being root while building packages?
I don't want to run sudo clyde -S something and spread undeleteable junk everywhere?

Offline

#6 2010-02-24 00:52:59

nsf
Member
From: Yekaterinburg, Russia
Registered: 2007-09-15
Posts: 160
Website

Re: Clyde - A better libalpm/makepkg wrapper

Nice project! Works quite fast.. I'll try to use it on a daily basis instead of pacman/packer.


Bmpanel2 and obkey developer.

Offline

#7 2010-02-24 01:06:01

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Re: Clyde - A better libalpm/makepkg wrapper

some-guy94 wrote:

Does clyde have a config file and/or drop being root while building packages?
I don't want to run sudo clyde -S something and spread undeleteable junk everywhere?

It has both... the config file isn't complete yet, but it is there... and we only use root when absolutely necessary

Offline

#8 2010-02-24 01:11:52

nsf
Member
From: Yekaterinburg, Russia
Registered: 2007-09-15
Posts: 160
Website

Re: Clyde - A better libalpm/makepkg wrapper

Oh.. Ghost1227, one more thing. You've mentioned that clyde is somehow more suitable for creating GUIs around it. Any plans on documenting these features? I'd like to know more about it.


Bmpanel2 and obkey developer.

Offline

#9 2010-02-24 01:19:33

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Re: Clyde - A better libalpm/makepkg wrapper

nsf wrote:

Oh.. Ghost1227, one more thing. You've mentioned that clyde is somehow more suitable for creating GUIs around it. Any plans on documenting these features? I'd like to know more about it.

Officially, no, there aren't any plans. However I am toying with a few ideas and others are welcome to implement GUIs as they see fit.

Offline

#10 2010-02-24 03:29:23

melik
Member
Registered: 2009-10-11
Posts: 108

Re: Clyde - A better libalpm/makepkg wrapper

Thanks for the great script guys big_smile

Offline

#11 2010-02-24 04:39:54

milomouse
Member
Registered: 2009-03-24
Posts: 940
Website

Re: Clyde - A better libalpm/makepkg wrapper

Really swift, I like it so far (also glad someone's finally using Lua). I know it's just a wrapper but I was wondering if there'd be ABS support? Also, when I go to clyde -Syu the /etc/clyde.conf line makes it think [clydeoptions] is a repo.

:: Synchronizing package databases...
error: failed to update clydeoptions (no servers configured for repository)
  testing is up to date
  ..etc..

Is this normal or am I doing something wrong?

Offline

#12 2010-02-24 06:24:15

Kiwi
Member
Registered: 2008-02-24
Posts: 153

Re: Clyde - A better libalpm/makepkg wrapper

DigitalKiwi here.

You aren't doing anything wrong, but I was. Keyword there is was, it has been fixed. Thanks for pointing that out.

And just some clarification, so that people do not get the wrong idea. It really is not any more of a 'wrapper' than pacman is when it comes to standard packages. The only time it does anything of note that is not a direct C or Lua (or C via Lua) call is when it calls makepkg. So, while lualpm could be said to wrap libalpm it does not do so in the bad sense that most people associate the term wrapping. The proper jargon is that lualpm is a binding to libalpm with an API that is used by Clyde.

Just wanted to make that clear.

And yes, it is very fast, to anyone who does not believe me or the commenters I urge you to try it out and see. wink Most of my testing is for searching/querying speeds, as that is what seem to be done most, and the one thing that is done by all that I have tested. I have found it to be faster than most of them, and tied with 1-2, in that regard.

C is generally considered to be the fastest widely used compiled language, and Lua is one of the fastest (if not the fastest widely used) scrpting/interpreted languages on the market. They work very well together. People often rag on Lua for having a small stdlib, and thus see that Clyde has a few dependencies that other languages have by built in by default. This is actually a good thing (tm) as the footprint is as small as possible and I only introduce exactly what is needed. lua, luasocket, luafilesystem, yajl, lua-yajl-git, and lua-lzlib are the only deps Clyde currently has that I am not willing to guarantee you already have installed (and your system actually be functioning). Those and Clyde total less than 2 MB.

In response to ABS: There is a strong possibility.

Here are a few general guidlines about Clyde's goals. 1st, do everything Pacman can and more. This is mostly the case already. I have not gotten around to setting up Xfercommand and the cleancache/cleandatabase functions. It also does not display as many of the warnings/messages as it should/will. This weekend I plan on working on those. 2nd, and this actually answers the question...if Yaourt has a feature, Clyde will likely have it as well, if it does not already. I actually like Yaourts feature set most of the time, I do not like that a lot of the features are broken (el oh el at --stats, which clyde does afaik quite well), so I want them to be in Clyde only done in a way that is faster and more reliable. Clyde is getting there. Some of the other aur helpers have some cool things too, I like the idea of Powerpill and will eventually have something similiar in Clyde (most likely optional).

In response to GUIs: lualpm is a lua binding to libalpm which behaves almost exactly the same as libalpm in most cases except where a difference is necessary for operation. Eventually this may change so that it is easier to use than it is currently.

tl;dr
If you try Clyde and find a bug, or missing feature, please let me know so I can fix it/consider adding. It is not for everyone, but if Yaourt is/was your poison of choice, you will definitely appreciate Clyde.

Yes it is fast and light, you are welcome.


Thank you and good night!

Offline

#13 2010-02-24 07:18:53

milomouse
Member
Registered: 2009-03-24
Posts: 940
Website

Re: Clyde - A better libalpm/makepkg wrapper

Awesome. Thanks for clearing that up (jargon included). Also, are you el oh el'ing at yaourt's --stats or clyde's --stats? Sorry if I'm slow. yaourt --stats and when I do clyde --stats  Anyway, can't wait for the ABS stuff. That's the only thing I still have to do manually (which can be quite cumbersome if a package has 20 sum dependencies/sub-dependencies) for packages in the repos. Be nice to edit their PKGBUILDs on the fly.

Offline

#14 2010-02-24 07:31:31

Kiwi
Member
Registered: 2008-02-24
Posts: 153

Re: Clyde - A better libalpm/makepkg wrapper

Both apparently.

I was at yaourt's because it uses du in a way that causes it to count files multiple times, causing a huge variance in what it should be. It says, for instance, on my computer that it is using 160 GB of space. My root is 15 GB and only half full!

I've never seen clyde --stats do that recently in any terminal I have been testing with, which is like all of the major ones I can think of. It is specific issue with tmux only afaict. It works fine in screen/terminal/gnome-terminal/konsole/urxvt256color/tty/xterm/terminator...

Offline

#15 2010-02-24 07:36:52

milomouse
Member
Registered: 2009-03-24
Posts: 940
Website

Re: Clyde - A better libalpm/makepkg wrapper

Ok, you're right. For me it was tmux's fault. Where yaourt works regardless, clyde has difficulty outputting --stats to tmux. Not sure why and it's not really a big deal, but worth noting. But yes, it works outside of tmux. smile

EDIT: tmux also causes descriptions to have a white background color for me. Comparison of tmux and plain terminal output Sorry, I guess this is more tmux's fault than clydes, although my other programs output fine.

Last edited by milomouse (2010-02-24 07:51:15)

Offline

#16 2010-02-24 08:15:53

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

Re: Clyde - A better libalpm/makepkg wrapper

How would one compare this to bauerbill?


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

Offline

#17 2010-02-24 08:24:47

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Re: Clyde - A better libalpm/makepkg wrapper

Something like this will give you a quick benchmark...

time clyde -Qs
time bauerbill -Qs

Offline

#18 2010-02-24 09:10:38

Heller_Barde
Member
Registered: 2008-04-01
Posts: 245

Re: Clyde - A better libalpm/makepkg wrapper

one really tiny bug in clyde --stats. when you don't have any "src downloaded in cache" it displays this:

Space used by src downloaded in cache: null

maybe better display 0KB or similar but this should be low priority. I just thought you should know.

It's fun to use! finally pkg crawling the way it should be (fast)

cheers
Barde

Last edited by Heller_Barde (2010-02-24 09:11:16)

Offline

#19 2010-02-24 10:27:28

gohu
Member
From: France
Registered: 2010-01-17
Posts: 32

Re: Clyde - A better libalpm/makepkg wrapper

Would it be possible to implement two features from yaourt (I use them all the time):
First, the search-choose-install feature that, if you just type "yaourt pkgname", it would search and present you with a list of packages found in "-Ss pkgname" with numbers to choose which ones to install, then install them.
Second, being able to launch it without su privileges and clyde acquiring them as needed by prompting for a sudo password.
These two features would make

$ clyde -Ss pkgname
$ sudo clyde -S exactpkgname
    *password*

become

$ clyde pkgname
    42
    *password*

which saves a lot of keystrokes.

Offline

#20 2010-02-24 11:29:58

Zariel
Member
Registered: 2008-10-07
Posts: 446

Re: Clyde - A better libalpm/makepkg wrapper

lua <3 /hacks

Offline

#21 2010-02-24 12:11:07

Heller_Barde
Member
Registered: 2008-04-01
Posts: 245

Re: Clyde - A better libalpm/makepkg wrapper

gohu wrote:

Would it be possible to implement two features from yaourt (I use them all the time):
First, the search-choose-install feature that, if you just type "yaourt pkgname", it would search and present you with a list of packages found in "-Ss pkgname" with numbers to choose which ones to install, then install them.
Second, being able to launch it without su privileges and clyde acquiring them as needed by prompting for a sudo password.
These two features would make

$ clyde -Ss pkgname
$ sudo clyde -S exactpkgname
    *password*

become

$ clyde pkgname
    42
    *password*

which saves a lot of keystrokes.

seconded about the "search and install by numbers" feature. it's incredibly handy!.

the "being able to launch without su and it acquiring it when needed" feature on the other hand is already implemented.

cheers

Offline

#22 2010-02-24 13:14:49

Kiwi
Member
Registered: 2008-02-24
Posts: 153

Re: Clyde - A better libalpm/makepkg wrapper

the "being able to launch without su and it acquiring it when needed" feature on the other hand is already implemented.

That is news to me. smile

I am planning to work on the numerated list feature and clyde <package> sometime this/next week. I have a few other small things such as this (like color profiles, and ghost wants something like yaourt's -Qdt behavior) as well as wanting to do a big push on some callbacks this weekend. Hopefully I will have time.

As for when you type sudo...I have not quite decided which way it should be. It is inherently easier, simpler, and more reliable to just check at the beginning if it needs sudo, it also means there is no chance you have to reenter your password if it times out during a lengthy installation. (or maybe I am the only one who is annoyed by that?)

I am used to 's pacman -<operation that needs sudo>' so the current behavior does not bother me and I prefer it that way, but a few users are requesting the other way. Maybe I could make it a clyde.conf option?

Offline

#23 2010-02-24 21:03:45

Heller_Barde
Member
Registered: 2008-04-01
Posts: 245

Re: Clyde - A better libalpm/makepkg wrapper

Kiwi wrote:

the "being able to launch without su and it acquiring it when needed" feature on the other hand is already implemented.

That is news to me. smile

interesting... I thought I installed some packages from aur with clyde and it installed them without me giving it full root access. I must have misremembered.

mea culpa.

cheers
Barde

Last edited by Heller_Barde (2010-02-24 21:04:06)

Offline

#24 2010-02-25 20:49:27

faelar
Member
From: Amiens (FR)
Registered: 2007-12-18
Posts: 232
Website

Re: Clyde - A better libalpm/makepkg wrapper

[21:42 root /home/faelar] clyde -S aurcheck

...

==> Running makepkg as root is a bad idea! Continue anyway? [y/N] N
[21:43 root /home/faelar] exit
[21:43 faelar ~] clyde -S aurcheck
error: you cannot perform this operation unless you are root.

What am I supposed to do ? roll

BTW, is there a way to update all AUR packages ? I don't see anything about AUR with clyde -hS.

Offline

#25 2010-02-25 20:55:25

Ghost1227
Forum Fellow
From: Omaha, NE, USA
Registered: 2008-04-21
Posts: 1,418
Website

Re: Clyde - A better libalpm/makepkg wrapper

you're supposed to use sudo, and not yet but it's in the works

Offline

Board footer

Powered by FluxBB