Bug 235872 - lang/julia: Convert to metaport and add new port lang/julia11
Summary: lang/julia: Convert to metaport and add new port lang/julia11
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Li-Wen Hsu
URL:
Keywords: needs-patch, needs-qa
: 236514 236615 (view as bug list)
Depends on:
Blocks: 231286
  Show dependency treegraph
 
Reported: 2019-02-20 03:06 UTC by Iblis Lin
Modified: 2019-05-28 06:16 UTC (History)
4 users (show)

See Also:
iblis: maintainer-feedback+


Attachments
lang/julia, lang/julia06, lang/julia07, lang/julia10, lang/julia11 patch (312.46 KB, patch)
2019-02-20 03:06 UTC, Iblis Lin
no flags Details | Diff
Julia patches (312.46 KB, patch)
2019-05-13 03:12 UTC, Iblis Lin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Iblis Lin 2019-02-20 03:06:56 UTC
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
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2019-02-20 03:36:08 UTC
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
Comment 2 Iblis Lin 2019-02-20 05:05:50 UTC
I have tried `USES=metaport`, but it will set NO_INSTALL=yes.
In this case it still need to install symblink.
Comment 3 Iblis Lin 2019-02-20 05:20:37 UTC
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?
Comment 4 Brooks Davis freebsd_committer 2019-03-14 15:26:50 UTC
*** Bug 236514 has been marked as a duplicate of this bug. ***
Comment 5 wen 2019-03-18 12:02:02 UTC
*** Bug 236615 has been marked as a duplicate of this bug. ***
Comment 6 wen 2019-03-18 12:56:24 UTC
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.
Comment 7 Iblis Lin 2019-03-18 15:39:07 UTC
well, I still have some packages built on the top of Julia v0.6.
and maintaining it is okay for me.
Comment 8 wen 2019-04-03 03:16:05 UTC
ping...
Comment 9 Iblis Lin 2019-05-12 09:36:46 UTC
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
Comment 10 Li-Wen Hsu freebsd_committer 2019-05-12 21:11:55 UTC
(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)?
Comment 11 Iblis Lin 2019-05-13 03:12:50 UTC
Created attachment 204344 [details]
Julia patches

new patches
Comment 12 commit-hook freebsd_committer 2019-05-28 05:59:09 UTC
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
Comment 13 commit-hook freebsd_committer 2019-05-28 06:01:15 UTC
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
Comment 14 commit-hook freebsd_committer 2019-05-28 06:08:23 UTC
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
Comment 15 commit-hook freebsd_committer 2019-05-28 06:13:29 UTC
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