Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Apr 2017 11:33:56 +0200
From:      Xavi Garcia <xavi.garcia@gmail.com>
To:        Dmytro Bilokha <dmytro@posteo.net>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Writing a port that needs to download a large number of files
Message-ID:  <CAPonemyY8Xxq3PfKw7ZUb1Az1-iGq4R0%2BCmZR1CM8cXyNQpdBw@mail.gmail.com>
In-Reply-To: <8a87f1414c9f09e3d5023adbf0b8aba0@posteo.net>
References:  <CAPonemzuMLP5CdBzkTp__1GGarm%2Bocda5TiCmjYp7tQ1Bk1KVg@mail.gmail.com> <39470c3e111a92fd41ad183a77ccc2ac@posteo.net> <CAPonemzVBczKZ8yATABJ6skHSLB4yffE4u4-NGLqOBR9yVXb3w@mail.gmail.com> <8a87f1414c9f09e3d5023adbf0b8aba0@posteo.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <dmytro@posteo.net>:

> 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 <dmytro@posteo.net>:
>>
>> 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
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPonemyY8Xxq3PfKw7ZUb1Az1-iGq4R0%2BCmZR1CM8cXyNQpdBw>