Created attachment 202173 [details] lang/julia, lang/julia06, lang/julia07, lang/julia10, lang/julia11 patch - lang/julia is a meta port like lang/python now. User can select the default Julia version and desired versions via make config. This meta port will make symbolic link for bin/julia and manpage. - lang/julia06, lang/julia07, lang/julia10, lang/julia11 can be installed simultaneously now. - New port for lang/julia11. julia v1.0 (lang/julia10) is the long-term support branch, and the v1.1 (lang/julia11) only add new feature, no breaking changes from v1.0. Release Note is here: https://github.com/JuliaLang/julia/releases/tag/v1.1.0 Poudriere testport (It took me several days to test them all. here is my testing script and option set: - https://github.com/lwhsu/freebsd-ports-lang-julia/blob/46dc62b6852f2b8035df824158423931854467f1/Makefile#L25-L31 - https://github.com/lwhsu/freebsd-ports-lang-julia/tree/master/options ) lang/julia11 [v] 12.0-RELEASE amd64 with DEFAULT OPTIONS [v] 12.0-RELEASE i386 with DEFAULT OPTIONS [v] 11.2-RELEASE amd64 with DEFAULT OPTIONS [v] 11.2-RELEASE i386 with DEFAULT OPTIONS [v] 12.0-RELEASE amd64 with OPENBLAS [v] 12.0-RELEASE i386 with OPENBLAS [v] 11.2-RELEASE amd64 with OPENBLAS [v] 11.2-RELEASE i386 with OPENBLAS [v] 12.0-RELEASE amd64 with SYSLIBM [v] 12.0-RELEASE i386 with SYSLIBM [v] 11.2-RELEASE amd64 with SYSLIBM [v] 11.2-RELEASE i386 with SYSLIBM [v] 12.0-RELEASE amd64 with ALL [v] 12.0-RELEASE i386 with ALL [v] 11.2-RELEASE amd64 with ALL [v] 11.2-RELEASE i386 with ALL lang/julia10 [v] 12.0-RELEASE amd64 with DEFAULT OPTIONS [v] 12.0-RELEASE i386 with DEFAULT OPTIONS [v] 11.2-RELEASE amd64 with DEFAULT OPTIONS [v] 11.2-RELEASE i386 with DEFAULT OPTIONS [v] 12.0-RELEASE amd64 with OPENBLAS [v] 12.0-RELEASE i386 with OPENBLAS [v] 11.2-RELEASE amd64 with OPENBLAS [v] 11.2-RELEASE i386 with OPENBLAS [v] 12.0-RELEASE amd64 with SYSLIBM [v] 12.0-RELEASE i386 with SYSLIBM [v] 11.2-RELEASE amd64 with SYSLIBM [v] 11.2-RELEASE i386 with SYSLIBM [v] 12.0-RELEASE amd64 with ALL [v] 12.0-RELEASE i386 with ALL [v] 11.2-RELEASE amd64 with ALL [v] 11.2-RELEASE i386 with ALL lang/julia07 [v] 12.0-RELEASE amd64 with DEFAULT OPTIONS [v] 12.0-RELEASE i386 with DEFAULT OPTIONS [v] 11.2-RELEASE amd64 with DEFAULT OPTIONS [v] 11.2-RELEASE i386 with DEFAULT OPTIONS [v] 12.0-RELEASE amd64 with OPENBLAS [v] 12.0-RELEASE i386 with OPENBLAS [v] 11.2-RELEASE amd64 with OPENBLAS [v] 11.2-RELEASE i386 with OPENBLAS [v] 12.0-RELEASE amd64 with SYSLIBM [v] 12.0-RELEASE i386 with SYSLIBM [v] 11.2-RELEASE amd64 with SYSLIBM [v] 11.2-RELEASE i386 with SYSLIBM [v] 12.0-RELEASE amd64 with ALL [v] 12.0-RELEASE i386 with ALL [v] 11.2-RELEASE amd64 with ALL [v] 11.2-RELEASE i386 with ALL lang/julia06 [v] 12.0-RELEASE amd64 with DEFAULT OPTIONS [v] 12.0-RELEASE i386 with DEFAULT OPTIONS [v] 11.2-RELEASE amd64 with DEFAULT OPTIONS [v] 11.2-RELEASE i386 with DEFAULT OPTIONS [v] 12.0-RELEASE amd64 with OPENBLAS [v] 12.0-RELEASE i386 with OPENBLAS [v] 11.2-RELEASE amd64 with OPENBLAS [v] 11.2-RELEASE i386 with OPENBLAS [v] 12.0-RELEASE amd64 with SYSLIBM [v] 12.0-RELEASE i386 with SYSLIBM [v] 11.2-RELEASE amd64 with SYSLIBM [v] 11.2-RELEASE i386 with SYSLIBM [v] 12.0-RELEASE amd64 with ALL [v] 12.0-RELEASE i386 with ALL [v] 11.2-RELEASE amd64 with ALL [v] 11.2-RELEASE i386 with ALL lang/julia [v] 12.0-RELEASE amd64 with DEFAULT OPTIONS [v] 12.0-RELEASE i386 with DEFAULT OPTIONS [v] 11.2-RELEASE amd64 with DEFAULT OPTIONS [v] 11.2-RELEASE i386 with DEFAULT OPTIONS
One may want to consider a Uses/julia.mk with DEFAULT_VERSIONS support in the future for proper/complete framework integration. Also, this should likely use USES=metaport [1] [1] https://www.freebsd.org/doc/en/books/porters-handbook/book.html#uses-metaport
I have tried `USES=metaport`, but it will set NO_INSTALL=yes. In this case it still need to install symblink.
At this moment, I do not think a `Uses/julia.mk` is desired, since Julia's 3rd-party packages are always installed in user's home dir by default. Are there other benefits from making Uses/julia.mk?
*** Bug 236514 has been marked as a duplicate of this bug. ***
*** Bug 236615 has been marked as a duplicate of this bug. ***
Shall we just keep lang/julia-lts(1.0.x) and lang/julia(1.1.0)? then it would be easier to maintain the julia port.
well, I still have some packages built on the top of Julia v0.6. and maintaining it is okay for me.
ping...
Additional patches for DEFAULT_VERSIONS integration ---- diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 6028acc1dd70..2ddeec1c3964 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -47,6 +47,8 @@ FPC_DEFAULT?= 3.0.4 GCC_DEFAULT?= 8 # Possible values: 7, 8, 9, agpl GHOSTSCRIPT_DEFAULT?= agpl +# Possible values: 0.6, 0.7, 1.0, 1.1 +JULIA_DEFAULT?= 1.0 # Possible values: 2.0.0 LAZARUS_DEFAULT?= 2.0.0 .if ${ARCH} == amd64 diff --git a/julia/Makefile b/julia/Makefile index 158b7b8..4ec1f37 100644 --- a/julia/Makefile +++ b/julia/Makefile @@ -23,7 +23,7 @@ PLIST_FILES= bin/julia \ etc/julia OPTIONS_DEFINE= V06 V07 V10 V11 -OPTIONS_DEFAULT= V11 D11 +OPTIONS_DEFAULT= V${JULIA_DEFAULT:S/.//} D${JULIA_DEFAULT:S/.//} OPTIONS_SINGLE= DEFAULTVER OPTIONS_SINGLE_DEFAULTVER= D06 D07 D10 D11 # D stands for default
(In reply to Iblis Lin from comment #9) Thanks and I'll back to work on this soon. In the mean time, can you help rebase this patch (most conflicts are PORTREVISION) and use `git format-patch` to generate the complete patch which is easier to apply with patch(1)?
Created attachment 204344 [details] Julia patches new patches
A commit references this bug: Author: lwhsu Date: Tue May 28 05:59:02 UTC 2019 New revision: 502854 URL: https://svnweb.freebsd.org/changeset/ports/502854 Log: Copy lang/julia to lang/julia10 This is preparing for turning lang/julia to a meta port PR: 235872 Submitted by: Iblis Lin <iblis@hs.ntnu.edu.tw> (maintainer) Changes: head/lang/Makefile head/lang/julia10/ head/lang/julia10/Makefile head/lang/julia10/files/extra-patch-openblas-fix-arch.patch head/lang/julia10/files/patch-Make.inc head/lang/julia10/files/patch-Make.user head/lang/julia10/files/patch-deps_blas.mk head/lang/julia10/files/patch-src_Makefile head/lang/julia10/files/patch-stdlib_Makefile head/lang/julia10/pkg-message head/lang/julia10/pkg-plist
A commit references this bug: Author: lwhsu Date: Tue May 28 06:01:01 UTC 2019 New revision: 502855 URL: https://svnweb.freebsd.org/changeset/ports/502855 Log: Copy lang/julia10 to lang/julia11 and update to 1.1.0 PR: 235872 Submitted by: Iblis Lin <iblis@hs.ntnu.edu.tw> (maintainer) Changes: head/lang/Makefile head/lang/julia11/ head/lang/julia11/Makefile head/lang/julia11/distinfo head/lang/julia11/files/patch-Make.inc head/lang/julia11/files/patch-Makefile head/lang/julia11/files/patch-deps_blas.mk head/lang/julia11/files/patch-src_Makefile head/lang/julia11/pkg-plist
A commit references this bug: Author: lwhsu Date: Tue May 28 06:08:13 UTC 2019 New revision: 502856 URL: https://svnweb.freebsd.org/changeset/ports/502856 Log: Enable lang/julia06, lang/julia07 to be installed simultaneously PR: 235872 Submitted by: Iblis Lin <iblis@hs.ntnu.edu.tw> (maintainer) Changes: head/lang/julia06/Makefile head/lang/julia06/files/extra-patch-openblas-fix-arch.patch head/lang/julia06/files/patch-Make.user head/lang/julia06/files/patch-deps_blas.mk head/lang/julia06/pkg-message head/lang/julia06/pkg-plist head/lang/julia07/Makefile head/lang/julia07/files/extra-patch-openblas-fix-arch.patch head/lang/julia07/files/patch-Make.user head/lang/julia07/files/patch-deps_blas.mk head/lang/julia07/pkg-message head/lang/julia07/pkg-plist
A commit references this bug: Author: lwhsu Date: Tue May 28 06:12:47 UTC 2019 New revision: 502857 URL: https://svnweb.freebsd.org/changeset/ports/502857 Log: Turn lang/julia to metaport & introduce JULIA_DEFAULT to bsd.default-versions.mk PR: 235872 Submitted by: Iblis Lin <iblis@hs.ntnu.edu.tw> (maintainer) Changes: head/Mk/bsd.default-versions.mk head/lang/julia/Makefile head/lang/julia/distinfo head/lang/julia/files/ head/lang/julia/pkg-message head/lang/julia/pkg-plist