From owner-freebsd-ports@freebsd.org Thu Apr 20 09:33:57 2017 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA1E5D47CBF for ; Thu, 20 Apr 2017 09:33:57 +0000 (UTC) (envelope-from xavi.garcia@gmail.com) Received: from mail-io0-x22c.google.com (mail-io0-x22c.google.com [IPv6:2607:f8b0:4001:c06::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 91A08618 for ; Thu, 20 Apr 2017 09:33:57 +0000 (UTC) (envelope-from xavi.garcia@gmail.com) Received: by mail-io0-x22c.google.com with SMTP id o22so67383808iod.3 for ; Thu, 20 Apr 2017 02:33:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ePlYZXFSVKNF3H3xBR0fXw7qStFkpDYFpTOPM2xqCMI=; b=uUAdMRhLqcfU57zEPMSUzJPZvVzaHyF2jNYCYEKOMA3u74uc0YNCoVTCcSyRXtfYU1 gAEVaBCQ2yPMZHo7P+Nfv4xGxNZo2tT0WYNEttodQArl3naX+D+tUdJsrpBGKo+toXRz ThsKTMHHKKrtAcliZ3XQknVzgmgwLU6zcLNAeGBc/pmFnyTcVXz0hgnlM1S+QE2zCsUv adczLk/WnSuoazVFtKTwZTbMUJmo1ssD3PBnMHK4I+lhZNteeU7jHQkLtPC1kvLbQfqu j7wYoHl1MKvQL4XbCzuGVSSxdo7srdPGBaBGj+kxv2Zci7lz9UVfPQV8uTluNGCfjEzj UogA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ePlYZXFSVKNF3H3xBR0fXw7qStFkpDYFpTOPM2xqCMI=; b=oXB9kSMmEdYfVkKI7uGtJMiL7/Fa0gBkpmFWqYCJX4wk3bn4woni0NDasdPz1Y5h20 NQBytsWHsbcx8D/BKfALCK4XizgFmknaYLE6K0s6uhAgLiZWfMA9QDpxBFYcVDFRnvxM 8Zl8aJOqEP9E2EE8ZjqeXVSdjSighzZtbu1ZjRXIFQ9nxUaaq/QL4j1loRUE6ZDYyZtq /45lNTj8/hSzHs5+R0C8kekwkQgZ1sKeD5BeL1YZxCXo46n0cjAhBgFLLJdbSy9hMi3P lG14RB0OLyo7e6jqaaf16n985liMHz4qxx+oyKQoK21qa/DCV/FXCGwcxBnZ+yFALLTB /zbg== X-Gm-Message-State: AN3rC/4NTD0tKmmYMyUWJd9ZOdGu5VZ263JCJzjM89XuHcDp9qliG1Id LSNVBGw/YtH7puU1SZP/DkLWUqv+/ON1chc= X-Received: by 10.36.16.83 with SMTP id 80mr2625442ity.65.1492680836565; Thu, 20 Apr 2017 02:33:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.118.205 with HTTP; Thu, 20 Apr 2017 02:33:56 -0700 (PDT) In-Reply-To: <8a87f1414c9f09e3d5023adbf0b8aba0@posteo.net> References: <39470c3e111a92fd41ad183a77ccc2ac@posteo.net> <8a87f1414c9f09e3d5023adbf0b8aba0@posteo.net> From: Xavi Garcia Date: Thu, 20 Apr 2017 11:33:56 +0200 Message-ID: Subject: Re: Writing a port that needs to download a large number of files To: Dmytro Bilokha Cc: freebsd-ports@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 09:33:57 -0000 Hi, This can be the plan B if we cannot host the builds. I will discuss with the colleagues. My concern is accessing old builds, in case we are tracking a quarterly branch for stability, because the developer is only offering builds for the latest version. Regarding the software we want to port, it is GPLv3 and it shouldn't be a problem if we release our own builds. Kind regards, Xavier Garcia 2017-04-20 11:10 GMT+02:00 Dmytro Bilokha : > On 20.04.2017 11:02, Xavi Garcia wrote: > >> Hi, >> >> > Hi! > > I'd definitely download a compiled version but the developer is >> hosting the builds in Amazon S3 and you need to receive a token via >> e-mail in order to download the files, which is awful in my opinion. >> >> > I agree with you, its awful. But, I saw ports which shows you a message > like "Please download this file: http://blahblah... and put in in the > distfiles, because of the license reasons it is not allowed to download it > by automatic tool. Then run make again". It is not convenient, but possible > if there are no another options. > > The other option is to compile my own builds and host them somewhere >> in the Internet. >> > > As for me, it would be the best option. But, be careful, it is possible > that by software license you are not allowed to build your version of the > application and provide it to users. > > >> Kind regards, >> >> Xavier Garcia >> >> 2017-04-19 22:29 GMT+02:00 Dmytro Bilokha : >> >> On 19.04.2017 19:27, Xavi Garcia wrote: >>> >>> Hi all, >>>> >>>> We are writing a port for a Java software that downloads a large >>>> number of >>>> jar files (around 200) with Gradle (https://gradle.org/ [1]), >>>> >>>> that is similar >>>> to other package managers like Pip or Ruby Gems but for Java >>>> projects. >>>> >>>> What would be the best practice in this scenario? I am aware that >>>> we can >>>> only download files in the fetch phase but I am not sure if my >>>> solution is >>>> clean enough. >>>> >>>> We will be deploying this port in our servers via Portshaker and >>>> Poudriere >>>> but we would also like to commit it to the ports tree. >>>> >>>> In short, I am using the 'pre-fetch' phase together with >>>> FETCH_DEPENDS to >>>> drop the Gradle wrapper in ${DISTDIR}/${PORTNAME} and then I use >>>> the >>>> 'dependencies' task to download all the dependencies. >>>> >>>> The 'do-build' stage will run again the Gradle wrapper to build >>>> the >>>> software, but using the offline mode. >>>> >>>> You can find attached the Makefile. >>>> >>>> Kind regards, >>>> >>>> Xavier Garcia >>>> >>> >>> Hi! >>> If you need examples of the "best practice", >>> probably, you can take a look at already exsisting >>> ports of Java software. >>> >>> For example, I've checked the Glassfish port and >>> it was made with different approach: >>> 1. During fetch phase distribution zip-file with >>> already compiled Java classes is downloaded. >>> 2. Then it is unzipped to some directory, like >>> /usr/local/glassfish. >>> 3. Some scripts put, package registered, etc. >>> >>> So here there is no building of Java app from sources, >>> mostly fetching already built, some tweaking and putting >>> to the right place. >>> I saw similar procedure for some another ports >>> of Java software. >>> >>> I am not sure, but it seems because of such reasons: >>> 1. With Java you won't gain a lot with building application >>> from sources. If OS has JVM you can just run already >>> compiled -- it should work. >>> 2. For port its better to have as least dependencies, >>> as possible. So, making your port dependent on >>> Gradle (which fast evolving itself) and/or another >>> Java build tooling can make port fragile and not >>> very stable. >>> 3. Building the big Java project from sources could be >>> time and traffic consuming task. Usualy users >>> don't like this. >>> >>> --- >>> Best regards, >>> Dmytro Bilokha >>> >> >> >> >> Links: >> ------ >> [1] https://gradle.org/ >> > > --- > Best regards, > Dmytro Bilokha > >