From owner-freebsd-ports@freebsd.org Wed Apr 19 16:27:07 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 0819AD3839F for ; Wed, 19 Apr 2017 16:27:07 +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 C44B390A for ; Wed, 19 Apr 2017 16:27:06 +0000 (UTC) (envelope-from xavi.garcia@gmail.com) Received: by mail-io0-x22c.google.com with SMTP id a103so27678777ioj.1 for ; Wed, 19 Apr 2017 09:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=P3oKDE8KNJypM211xVPS+reFRardNsVU8OQwNgYZRnk=; b=srGk81nBzyL6BVtVL/pug8wz6xd0HviDbL7FycxCn9EZJE3gor3jpyhkDbyUMdC0hg pVwCiX0IzF8LIU61B1DnQj+JVna7GKod8oo28xmT7mNYzloYX9qMloYZfVDwlbvaSsKU /euWNJNFk8sytGx408kr7gUvGfU+mRSF1O4OCKww23LvXZwRtYF+WlKXPgFCY08IT/g3 7Y/UC1u3lrFc8indfQCiUiGpIV9JqEtBa6L5LcUMzIX7RQk2gQJBcz4wAHB7dJJ/BGQ7 B4lW4wUtzUUJASkPhDqIvHMgv6Y6/fu2vGaBmJXzBwqMTejKabMjFDaqloBJDICsDPIG WMug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=P3oKDE8KNJypM211xVPS+reFRardNsVU8OQwNgYZRnk=; b=F3yUzLJgGc++pjN6HY/rNbv6ndbUVptPXCgBMLMXIzHOrxRs+jD16TmPOJUuXKfMmu OK4nbIbxR1j1F8fRhUaKJM4M77/B0AH8yyycpSNGAem4MkGN4JhJoJvl0r+ndWbMMmzQ d4BnoL44wdeQfGtMFa0MJPzrXwTxGTXX8SI/mKYGwmZBoBddDrmAMUhxpPfI0OXmbyoM zvZm/J64om9uCbij1ph3LcPmRbulGAWo+1aDK6oxKcS4tPkigMfkDjnmCqAq05jWzC/T wdVH/PuJ2tIBVegQ9WzD/VJh4oLrbM9wU9FFqqfBZzZVoBgqm0EzHDrUyKhr/GhG6Kl/ ZdXA== X-Gm-Message-State: AN3rC/5ny00Bgdg3F0tIbpDBCOXrFhKKbKWnDVyNt3ooeAGD8oUZrI1S pLwu2yMXpAZv0BgJt8DLSbOWoQTq74FLgsw= X-Received: by 10.36.73.155 with SMTP id e27mr10102240itd.6.1492619225282; Wed, 19 Apr 2017 09:27:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.118.205 with HTTP; Wed, 19 Apr 2017 09:27:04 -0700 (PDT) From: Xavi Garcia Date: Wed, 19 Apr 2017 18:27:04 +0200 Message-ID: Subject: Writing a port that needs to download a large number of files To: freebsd-ports@freebsd.org Content-Type: multipart/mixed; boundary=001a11c15496b5a7ce054d877e76 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: Wed, 19 Apr 2017 16:27:07 -0000 --001a11c15496b5a7ce054d877e76 Content-Type: text/plain; charset=UTF-8 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/), 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 --001a11c15496b5a7ce054d877e76 Content-Type: application/octet-stream; name=Makefile Content-Disposition: attachment; filename=Makefile Content-Transfer-Encoding: base64 X-Attachment-Id: f_j1p6ns7j0 IyAkRnJlZUJTRCQKClBPUlROQU1FPQlyZWFkb25seXJlc3QKUE9SVFZFUlNJT049CTEuMTQuMApD QVRFR09SSUVTPQl0ZXh0cHJvYwpQS0dOQU1FUFJFRklYPQllbGFzdGljc2VhcmNoLXBsdWdpbi0K Ck1BSU5UQUlORVI9CXhhdmkuZ2FyY2lhQGdtYWlsLmNvbQpDT01NRU5UPQlFbGFzdGljU2VhcmNo IFJlYWRvbmx5UkVTVCBQbHVnaW4KClJVTl9ERVBFTkRTOj0gICBlbGFzdGljc2VhcmNoNT01LjAu Mjp0ZXh0cHJvYy9lbGFzdGljc2VhcmNoNQpGRVRDSF9ERVBFTkRTPSAgamF2YTpqYXZhL29wZW5q ZGs4IFwKCQliYXNoOnNoZWxscy9iYXNoIFwKCQlnY2M6bGFuZy9nY2MKQlVJTERfREVQRU5EUz0g CXppcDphcmNoaXZlcnMvemlwIFwKCQlqYXZhOmphdmEvb3BlbmpkazggXAoJCWJhc2g6c2hlbGxz L2Jhc2ggXAoJCWdjYzpsYW5nL2djYwoKTElDRU5TRT0JR1BMdjMKTElDRU5TRV9GSUxFPSR7V1JL U1JDfS9SZWFkb25seVJFU1RMaWNlbnNlSGVhZGVyLnR4dAoKVVNFX0pBVkE9ICAgICAgIHllcwpK QVZBX1ZFUlNJT049ICAgMS44KwoKVVNFX0dJVEhVQj0JeWVzCkdIX0FDQ09VTlQ9CXNzY2FyZHV6 aW8KR0hfUFJPSkVDVD0JZWxhc3RpY3NlYXJjaC1yZWFkb25seXJlc3QtcGx1Z2luCkdIX1RBR05B TUU9CXYxLjE0LjBfZXM1LjAuMgpUTVBfRElSPQkke0RJU1RESVJ9LyR7UE9SVE5BTUV9CkZJTEVf RElSPQkke1BPUlRTRElSfS8ke0NBVEVHT1JJRVN9LyR7UEtHTkFNRVBSRUZJWH0ke1BPUlROQU1F fS9maWxlcwpQUk9KRUNUX1JPT1Q9CSR7V1JLRElSfS9lbGFzdGljc2VhcmNoLXJlYWRvbmx5cmVz dC1wbHVnaW4tMS4xNC4wX2VzNS4wLjIKUFJFRklYPQkJL3Vzci9sb2NhbApJTlNUQUxMX0RJUj0g ICAgJHtTVEFHRURJUn0ke1BSRUZJWH0vbGliL2VsYXN0aWNzZWFyY2gvcGx1Z2lucy9yZWFkb25s eXJlc3QKCnByZS1mZXRjaDoKIwoJJHtNS0RJUn0gICR7VE1QX0RJUn0KCWNwIC1ydiAke0ZJTEVf RElSfS8gJHtUTVBfRElSfS9wcm9qZWN0CgljaG1vZCA3NTUgJHtUTVBfRElSfS9wcm9qZWN0L2dy YWRsZXcgCgkoY2QgJHtUTVBfRElSfS9wcm9qZWN0IDsgJHtTRVRFTlZ9IEpBVkFfSE9NRT0vdXNy L2xvY2FsL29wZW5qZGs4IC4vZ3JhZGxldyAtZyAgJHtUTVBfRElSfSAtLXByb2plY3QtY2FjaGUt ZGlyICR7VE1QX0RJUn0gLS1uby1kYWVtb24gZGVwZW5kZW5jaWVzICkKCmRvLWJ1aWxkOgojCglA Y3AgJHtGSUxFX0RJUn0vYnVpbGQuZ3JhZGxlICR7UFJPSkVDVF9ST09UfQoJQChjZCAke1BST0pF Q1RfUk9PVH07ICAke1NFVEVOVn0gSkFWQV9IT01FPS91c3IvbG9jYWwvb3BlbmpkazggLi9ncmFk bGV3IC1nICAke1RNUF9ESVJ9IC0tcHJvamVjdC1jYWNoZS1kaXIgJHtUTVBfRElSfSAtLW5vLWRh ZW1vbiAtLW9mZmxpbmUgICBhc3NlbWJsZSAgLXggdGVzdCkKCmRvLWluc3RhbGw6CiMKCSR7TUtE SVJ9ICR7SU5TVEFMTF9ESVJ9Cgl1bnppcCAtZCAke0lOU1RBTExfRElSfSAtbyAgLWogICR7UFJP SkVDVF9ST09UfS9idWlsZC9kaXN0cmlidXRpb25zL3JlYWRvbmx5cmVzdC0xLjE0LjBfZXM1LjAu Mi56aXAKCi5pbmNsdWRlIDxic2QucG9ydC5taz4K --001a11c15496b5a7ce054d877e76--