From owner-freebsd-ports@FreeBSD.ORG Sun Jul 1 18:45:31 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83D4A106564A for ; Sun, 1 Jul 2012 18:45:31 +0000 (UTC) (envelope-from decke@bluelife.at) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id F2C8D8FC0A for ; Sun, 1 Jul 2012 18:45:30 +0000 (UTC) Received: by bkwj5 with SMTP id j5so2855477bkw.13 for ; Sun, 01 Jul 2012 11:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bluelife.at; s=google; h=from:reply-to:to:cc:subject:x-mailer:references:in-reply-to :content-type:content-id:date:message-id:mime-version :content-transfer-encoding; bh=Kbx8bnRwp46rlhkn9Img1OvUF9k6LIxh4gGW2GV0lgo=; b=PYZlNZZX5Xx5NBMqlNqgp7H2Vk1eURoaTurjl9ktBwcFJi1hNZT20Sgx0DzHl0EkZC 4R7toRN56pQqzMC1OCM1Nopm9kWnt0ED05Vlc6R6ObVQY+iX4f/sf4rxhVgXZgUVxGHS 0tjL9gt6p8XkJ5kf1uibf6GsL4wAkiwXAvppM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:reply-to:to:cc:subject:x-mailer:references:in-reply-to :content-type:content-id:date:message-id:mime-version :content-transfer-encoding:x-gm-message-state; bh=Kbx8bnRwp46rlhkn9Img1OvUF9k6LIxh4gGW2GV0lgo=; b=jJ1OX1+7pv6fH9a1TTJJVfQ7EAZoQYkV2yboudtupUotWLwww5YFnpiqevBRngyMWO FHaz10GAdp1w3IL9ncK+SiiNG7zSJ2Yo/mJqu9r+TQKsyTPPdm0O94vz9atSOR+SQXKm ac77AdUmYCkT/xALmhcGfmnQU5+5FK/3BsYTKWTvrORoZo9Ssyg2lh7WI8TIVNL9c0zv myt11Yoq9prX0fLY9gYBRJf3boGtU9xMe1Y2QgKz29AkL1jmfE5hPPtTlOrqK7f/RM9E zAqYbKtrDOB3jSU5KbmsRKG4QMaOA6R+aB09TZJZa0Nw1d+gPLk7sMnc8pvFmocMkiBX 3Z4g== Received: by 10.204.148.79 with SMTP id o15mr5516911bkv.87.1341168329837; Sun, 01 Jul 2012 11:45:29 -0700 (PDT) Received: from [10.41.57.212] (089144192077.atnat0001.highway.a1.net. [89.144.192.77]) by mx.google.com with ESMTPS id o4sm10416077bkv.15.2012.07.01.11.45.28 (version=SSLv3 cipher=OTHER); Sun, 01 Jul 2012 11:45:29 -0700 (PDT) From: Bernhard =?ISO-8859-1?Q?Fr=F6hlich?= To: Fernando =?ISO-8859-1?Q?Apestegu=ED?= X-Mailer: Modest 3.90.7 References: <1341164678.10569.2.camel@Nokia-N900-42-11> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-ID: <1341168063.10742.1.camel@Nokia-N900-42-11> Date: Sun, 01 Jul 2012 20:41:04 +0200 Message-Id: <1341168064.10742.2.camel@Nokia-N900-42-11> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Gm-Message-State: ALoCoQkjwbEijlwS0GvMD70C3fLnkLVHi6NtFcxDkHhb96NOda1wcCYF2FXQ+WvtHWgukRM9dTjG Cc: freebsd-ports@freebsd.org Subject: Re: [new-port] JDownloader X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Bernhard =?ISO-8859-1?Q?Fr=F6hlich?= List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Jul 2012 18:45:31 -0000 On So.,  1. Jul. 2012 20:09:09 CEST, Fernando Apesteguía wrote: > On Sun, Jul 1, 2012 at 7:44 PM, Bernhard Fröhlich > wrote: > > On So.,    1. Jul. 2012 19:32:58 CEST, Fernando Apesteguía > > 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 > > > # > > > # $FreeBSD$ > > > > > > PORTNAME=      jdownloader > > > PORTVERSION=      1.0 > > > CATEGORIES=      java ftp > > > MASTER_SITES=      http://212.117.163.148/ > > > DISTNAME=      jd.sh > > > EXTRACT_SUFX= > > > > > > MAINTAINER=      fernando.apesteguia@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 > > > ----------------------------------------------------------------------- > > > > > > 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@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. > I checked the Fedora 16(?) package for JDownloader and does pretty > much the same thing. Yeah, bad habits are spreading easily.