[new-port] JDownloader

Bernhard Fröhlich decke at bluelife.at
Mon Jul 2 07:51:12 UTC 2012


On Sun, Jul 1, 2012 at 11:49 PM, Fernando Apesteguía
<fernando.apesteguia at gmail.com> wrote:
>
> El 01/07/2012 20:45, "Bernhard Fröhlich" <decke at bluelife.at> escribió:
>>
>> On So.,   1. Jul. 2012 20:09:09 CEST, Fernando Apesteguía
>> <fernando.apesteguia at gmail.com> wrote:
>>
>> > 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.
>>
>> FreeBSD portstree is exactly that nicer installer that you are talking
>> about.
>>
>> > 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).
>>
>> Yeah many projects implement their own update mechanism mostly because
>> windows has no package management. For a FreeBSD user and administrator it
>> should be an seamless integration so that he doesn't need to search for
>> update dialogs or buttons within installed programms. Even fully automated
>> updating is a problem in case of regressions and for major changes in
>> functionality.
>>
>> So what we need is a port that properly installs the few jar files into
>> system paths and a shellscript that launches a jvm with that jar files.
>> Additionally we should disable the automatic updating stuff. Have a look at
>> other java based ports on how to do that.
>
> Do you know of any ports doing something similar?

finance/jgnash and www/helma would be examples

-- 
Bernhard Fröhlich
http://www.bluelife.at/


More information about the freebsd-ports mailing list