You are not logged in.

#1 2010-09-22 15:01:54

SoleSoul
Member
From: Israel
Registered: 2009-06-29
Posts: 319

DownloadM - GTK2 download manager/accelerator using aria2 as a backend

EDIT: Now on AUR (http://aur.archlinux.org/packages.php?ID=41384)

Hello friends.

Since I couldn't find any good GUI download accelerators for Linux I thought that many people could benefit from aria2 if it had a nice GUI.
I started developing DownloadM for that purpose.
My brother (nick vbCrLf) helps me with it.

I use C++, gtkmm, xmlrpc-c, and the IDE is qtcreator hence the project uses qmake.

It is currently functional but not complete at all. Here is a screenshot:
DownloadM Screenshot

Current limitations:
1) No way to configure almost anything.
2) Always downloads to $HOME/Downloads
many more...

It has at least one nice feature. If you close it before a download is finished, the download will be resumed the next time you open DownloadM.

Here is the project page: https://sourceforge.net/p/downloadm/. You can download a tarball from there.
The git repo is there also.

git clone git://git.code.sf.net/p/downloadm/git.git

To build the project, one needs to run "make" in each directory. The build order is:
1) Entities
2) aria2c_com
3) DownloadM
4) GUI
The executable's name is "downloadm".

I'm not sure what the dependencies are smile. I guess it's something like:
aria2 xmlrpc-c gtkmm

Note: The program creates the folder $XDG_CONFIG_HOME/DownloadM

I know there is still a long way to go but since it's already functional I thought I would share it with you.
It is also my first real-world project so feel free to share from your experience.
Any thoughts are welcome.
Thanks.

---------

A PKGBUILD is in the making (below). My first try. I need help smile
EDIT: It works now. I'm pretty sure I did things in a weird way but it works.

# Maintainer: SoleSoul <j.lahav ta gmail tod com>
pkgname=downloadm
pkgver=0.1.1
pkgrel=1
pkgdesc="A download accelerator/manager which uses aria2c as a backend."
arch=('i686' 'x86_64')
url="http://sourceforge.net/p/downloadm/"
license=('GPL')
depends=('gtkmm' 'xmlrpc-c' 'aria2' 'libsigc++')
makedepends=('qt')
source=(http://downloads.sourceforge.net/project/downloadm/DownloadM-$pkgver.tar.gz)
md5sums=('cd9dc47c2095c1df2f4bf9ee9052145e')

build() {
    cd DownloadM    

    cd Entities
    qmake && make

    cd ../aria2c_com
    qmake && make
    
    cd ../DownloadM
    qmake && make

    cd ../GUI
    qmake && make
}

package() {
    mkdir -p $pkgdir/usr/bin/
    cp $srcdir/DownloadM/GUI/downloadm $pkgdir/usr/bin/

    mkdir -p $pkgdir/usr/share/downloadm/
    cp $srcdir/DownloadM/GUI/downloadm.glade $pkgdir/usr/share/downloadm/
}

Last edited by SoleSoul (2010-10-03 10:57:08)

Offline

#2 2010-09-23 01:11:14

sugardeath
Member
Registered: 2010-03-02
Posts: 82

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

Weird issue:
The progress bar won't update until AFTER the file has finished donwloading.  The progress bar and speed begin updating and it's as if it's downloading again, but the file has already been completed.

Offline

#3 2010-09-23 17:02:52

SoleSoul
Member
From: Israel
Registered: 2009-06-29
Posts: 319

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

Thank you for testing sugardeath.

I am trying to understand how what you say is possible. Please read this sentence from aria2's website:

By default, aria2 allocates files before download them to prevent possible fragmentation.

Are you sure the file is really complete before the download really "starts" or is it just allocated before?
You can check by stopping DownloadM when the progress bar starts moving and trying to run the file you downloaded. If the file is fine, then there is a problem. But if the file doesn't work, it means that the space was just allocated but the file wasn't downloaded yet.

Last edited by SoleSoul (2010-09-23 17:50:01)

Offline

#4 2010-09-23 18:21:42

sugardeath
Member
Registered: 2010-03-02
Posts: 82

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

Well, I was testing this on a remote machine downloading a video from my website (so I was unable to test the video in mplayer), but I was watching the filesize with "watch -n .05 ls ..." and the filesize was increasing at roughly the rate of my connection speed.

Does aria2 allocate the filesize instantly, or does it grow the filesize for whatever reason?  I'll give this a better test when I am able to be present at the machine.

Offline

#5 2010-09-29 11:37:47

SoleSoul
Member
From: Israel
Registered: 2009-06-29
Posts: 319

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

In order to make DownloadM easier to test I want to make a PKGBUILD for it and upload it to the AUR. I am starting to write one on the first post. Any help is welcome.
I think I need to sort out a few things before it would be possible to write a proper PKGBUILD. Lets do it one by one.

Is it a good practice to hard-code the location of the .glade file to "/usr/share/downloadm/downloadm.glade" ? If not, how should I specify it's location?

Right now the steps necessary to prepare a package are to compile it by running "make" in each directory by the order specified in the first post. Maybe qmake has to be invoked also to create a correct release makefile?
Then we need to move the executable to somewhere (/usr/bin/downloadm?) and the glade file also (/usr/share/downloadm/downloadm.glade?)

I think that's it. Am I right?

Offline

#6 2010-10-01 14:11:35

SoleSoul
Member
From: Israel
Registered: 2009-06-29
Posts: 319

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

It's ready now. The first usable version is in the AUR.
http://aur.archlinux.org/packages.php?ID=41384

As I said before, it's my first real-world application and first submission to the AUR so if I did something wrong your comments are very welcome.

Thank you.

Offline

#7 2010-10-06 15:16:45

SoleSoul
Member
From: Israel
Registered: 2009-06-29
Posts: 319

Re: DownloadM - GTK2 download manager/accelerator using aria2 as a backend

For some reason, DownloadM can't be built now. Maybe an update broke something.
I get the error message:
/usr/include/gtk-2.0/gdk/gdkpixbuf.h:37: error: gdk-pixbuf/gdk-pixbuf.h: No such file or directory

This file is somehow included when I include gtkmm.
I'm investigating it. Any ideas?

Offline

Board footer

Powered by FluxBB