[new-port] JDownloader

Fernando Apesteguía fernando.apesteguia at gmail.com
Sun Jul 1 18:09:11 UTC 2012


On Sun, Jul 1, 2012 at 7:44 PM, Bernhard Fröhlich <decke at bluelife.at> wrote:
> On So.,   1. Jul. 2012 19:32:58 CEST, Fernando Apesteguía <fernando.apesteguia at gmail.com> wrote:
>
>> Hi all,
>>
>> I have a preliminary version of a port for JDownloader[1] since it
>> seems to be a wanted port[2]
>>
>> Here is the Makefile:
>>
>> -----------------------------------------------------------------------
>> # New ports collection makefile for:    jdownloader
>> # Date created:                                       Sun Jul 1 2012
>> # Whom:                    Fernando Apesteguia <fernando.apesteguia at gmail.com>
>> #
>> # $FreeBSD$
>>
>> PORTNAME=    jdownloader
>> PORTVERSION=    1.0
>> CATEGORIES=    java ftp
>> MASTER_SITES=    http://212.117.163.148/
>> DISTNAME=    jd.sh
>> EXTRACT_SUFX=
>>
>> MAINTAINER=    fernando.apesteguia at gmail.com
>> COMMENT=    Download management for one-click-hosters
>>
>> RUN_DEPENDS=    ${LOCALBASE}/bin/java:${PORTSDIR}/java/diablo-jdk16
>> RUN_DEPENDS+=    ${LOCALBASE}/bin/wget:${PORTSDIR}/ftp/wget
>>
>> USE_JAVA=    yes
>> JAVA_VERSION=    1.6+
>> NO_BUILD=    yes
>>
>> WRKSRC=        ${WRKDIR}
>>
>> do-extract:
>>     @${MKDIR} ${WRKDIR}
>>     @${CP} ${DISTDIR}/jd.sh ${WRKSRC}
>>
>> do-install:
>>     @${MKDIR} ${PREFIX}/${PORTNAME}
>>     @${INSTALL_SCRIPT} ${WRKSRC}/jd.sh ${PREFIX}/bin
>>
>> post-install:
>>     @${ECHO_MSG} ""
>>     @${ECHO_MSG}
>> "*************************************************************************"
>>     @${ECHO_MSG} JDownloader will update itself to the latest version when
>> it runs for the    @${ECHO_MSG} first time. Please run
>> ${LOCALBASE}/bin/jd.sh    @${ECHO_MSG} to complete the installation
>>     @${ECHO_MSG}
>> "*************************************************************************"
>>     @${ECHO_MSG} ""    @${CAT} ${PKGMESSAGE}
>>
>> .include <bsd.port.mk>
>> -----------------------------------------------------------------------
>>
>> The port just needs a simple patch file (patch-jd.sh):
>>
>> -----------------------------------------------------------------------
>> --- jd.sh.orig    2012-07-01 14:23:07.000000000 +0200
>> +++ jd.sh    2012-07-01 14:24:15.000000000 +0200
>> @@ -1,4 +1,4 @@
>> -#!/bin/bash
>> +#!/bin/sh
>>   #JD Installer/Starter Version 0.2
>>   #by Jiaz(JD-Team), jiaz at jdownloader.org
>>   #You need at least:
>> -----------------------------------------------------------------------
>>
>> The jd.sh runs fine with sh(1) so there is no need for a new run
>> dependency for bash(1).
>>
>> The port installs one single file (jd.sh). This script when executed,
>> checks for the presence of the JDownloader jar files under the ~/.jd
>> directory. If they don't exist it starts the uploader application and
>> downloads the latest files. If the files were already present, it
>> launches the installation and if the installation is already present,
>> it launches the program.
>> Uninstalling the port uninstalls the jd.sh file but _not_ the actual
>> application that might be installed by the users in their respective
>> home directories. Taking into account that JDownloader can be
>> installed anyway just by downloading the source I don't suppose this
>> is a concern. Since the program can act as a server (it installs a
>> plugin for remote controlling the application similarly to what
>> transmission torrent does), it shows a message after the installation.
>>
>> I haven't submitted a PR yet, so any suggestions are welcomed.
>>
>> Thanks in advance.
>>
>> [1] http://jdownloader.org/
>> [2] http://wiki.freebsd.org/WantedPorts
>
> Is there a reason why you explicitly add diablo-jdk16 as runtime dependency? The use_java stuff should be sufficient.

You're right, doesn't seem to be necessary.

>
> Why have you decided to download and install the jar files on first run of the shellscript? That doesn't sound like a good idea to me because it breaks proper updates, deinstall and creates useless binary packages.

I haven't. jd.sh is provided by the upstream project. The alternative
is another "nicer" installation program.

Since this is just a wrapper to do several things and the actual
software is installed in the user's home directory, I agree we could
have two different users with two different versions of JDownloader.
By the way, the jd.sh script tries to update _just the first time_ but
after that, the user can always look for new versions from inside
JDownloader (in fact, it checks for new versions from the java code
every time it runs).

I checked the Fedora 16(?) package for JDownloader and does pretty
much the same thing.


More information about the freebsd-ports mailing list