From 5be21a93375e441c5e26e1608f74ad540d199c2b Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 10:29:04 -0800 Subject: [PATCH 01/14] Add notes for package maintainers Fixes #25905 --- README.md | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51076bab42fac..21fb7e82979f3 100644 --- a/README.md +++ b/README.md @@ -294,15 +294,15 @@ Building Julia requires that the following software be installed: Julia uses the following external libraries, which are automatically downloaded (or in a few cases, included in the Julia source repository) and then compiled from source the first time you run `make`: -- **[LLVM]** (3.9) — compiler infrastructure. +- **[LLVM]** (3.9 + patches) — compiler infrastructure (see [note below](#llvm)). - **[FemtoLisp]** — packaged with Julia source, and used to implement the compiler front-end. -- **[libuv]** — portable, high-performance event-based I/O library. +- **[libuv]** (custom fork) — portable, high-performance event-based I/O library. - **[OpenLibm]** — portable libm library containing elementary math functions. - **[DSFMT]** — fast Mersenne Twister pseudorandom number generator library. - **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2). - **[LAPACK]** (>= 3.5) — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. - **[MKL]** (optional) – OpenBLAS and LAPACK may be replaced by Intel's MKL library. -- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices. +- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse). - **[ARPACK]** — collection of subroutines designed to solve large, sparse eigenvalue problems. - **[PCRE]** (>= 10.00) — Perl-compatible regular expressions library. - **[GMP]** (>= 5.0) — GNU multiple precision arithmetic library, needed for `BigInt` support. @@ -347,12 +347,38 @@ Julia uses the following external libraries, which are automatically downloaded [mbedtls]: https://tls.mbed.org/ [pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/ +### Notes for distribution package maintainers + +Package maintaners will typically want to make use of system libraries where possible. Please refer to the abover version requirements and notes below. + +Currently community maintained packages are: +- Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) +- [Arch](https://www.archlinux.org/packages/community/x86_64/julia/) +- [Raspbian](https://github.com/JuliaBerry/julia-raspbian) + +Additionally, the following unmaintained packages may still be useful: +- [Homebrew](https://github.com/staticfloat/homebrew-julia) +- [Ubuntu](https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases) (0.5) +- [Debian](https://packages.debian.org/sid/julia) (0.4) + ### System Provided Libraries If you already have one or more of these packages installed on your system, you can prevent Julia from compiling duplicates of these libraries by passing `USE_SYSTEM_...=1` to `make` or adding the line to `Make.user`. The complete list of possible flags can be found in `Make.inc`. Please be aware that this procedure is not officially supported, as it introduces additional variability into the installation and versioning of the dependencies, and is recommended only for system package maintainers. Unexpected compile errors may result, as the build system will do no further checking to ensure the proper packages are installed. +### LLVM + +The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches (LLVM is not backward compatible). We recommend either: + - adding the patches to the LLVM 3.9 package of the distribution (note: these are backported upstream bug fixes, _not_ Julia-specific patches: all have been contributed into upstream LLVM), or + - bundling a Julia-only LLVM library inside the Julia package. + +Using an unpatched or different version of LLVM will result in errors and/or poor performance. + +### BLAS and LAPACK + +As the pupose of Julia is to be a high-performance numerical language, a multi-threaded BLAS and LAPACK, such as OpenBLAS should be used, and _not_ the reference implementations that are the default on some systems. + ### SuiteSparse SuiteSparse is a special case, since it is typically only installed as a static library, while `USE_SYSTEM_SUITESPARSE=1` requires that it is a shared library. Running the script `contrib/repackage_system_suitesparse4.make` will copy your static system SuiteSparse installation into the shared library format required by Julia. `make USE_SYSTEM_SUITESPARSE=1` will then use the SuiteSparse that has been copied into Julia's directory, but will not build a new SuiteSparse library from scratch. From a5c1d798ae7f6d4fd4ef4d56364eb061bdea0fa0 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 10:32:34 -0800 Subject: [PATCH 02/14] typo and link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 21fb7e82979f3..1624913d9e699 100644 --- a/README.md +++ b/README.md @@ -299,7 +299,7 @@ Julia uses the following external libraries, which are automatically downloaded - **[libuv]** (custom fork) — portable, high-performance event-based I/O library. - **[OpenLibm]** — portable libm library containing elementary math functions. - **[DSFMT]** — fast Mersenne Twister pseudorandom number generator library. -- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2). +- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2) (see [notes below](#blas-and-lapack)). - **[LAPACK]** (>= 3.5) — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. - **[MKL]** (optional) – OpenBLAS and LAPACK may be replaced by Intel's MKL library. - **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse). @@ -349,7 +349,7 @@ Julia uses the following external libraries, which are automatically downloaded ### Notes for distribution package maintainers -Package maintaners will typically want to make use of system libraries where possible. Please refer to the abover version requirements and notes below. +Package maintaners will typically want to make use of system libraries where possible. Please refer to the above version requirements and notes below. Currently community maintained packages are: - Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) From bc026a0943db2b18324caf03f59f927b2e93dd34 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 10:33:36 -0800 Subject: [PATCH 03/14] more typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1624913d9e699..96ea24acd5adf 100644 --- a/README.md +++ b/README.md @@ -299,10 +299,10 @@ Julia uses the following external libraries, which are automatically downloaded - **[libuv]** (custom fork) — portable, high-performance event-based I/O library. - **[OpenLibm]** — portable libm library containing elementary math functions. - **[DSFMT]** — fast Mersenne Twister pseudorandom number generator library. -- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2) (see [notes below](#blas-and-lapack)). +- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2) (see [note below](#blas-and-lapack)). - **[LAPACK]** (>= 3.5) — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. - **[MKL]** (optional) – OpenBLAS and LAPACK may be replaced by Intel's MKL library. -- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse). +- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse)). - **[ARPACK]** — collection of subroutines designed to solve large, sparse eigenvalue problems. - **[PCRE]** (>= 10.00) — Perl-compatible regular expressions library. - **[GMP]** (>= 5.0) — GNU multiple precision arithmetic library, needed for `BigInt` support. From ea24f5635b881f0a20c838c58367846ab75feb0a Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 10:35:42 -0800 Subject: [PATCH 04/14] rephrase sentence --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96ea24acd5adf..362dc21347641 100644 --- a/README.md +++ b/README.md @@ -377,7 +377,7 @@ Using an unpatched or different version of LLVM will result in errors and/or poo ### BLAS and LAPACK -As the pupose of Julia is to be a high-performance numerical language, a multi-threaded BLAS and LAPACK, such as OpenBLAS should be used, and _not_ the reference implementations that are the default on some systems. +As a high-performance numerical language, Julia should be linked to a multi-threaded BLAS and LAPACK, such as OpenBLAS, and _not_ the reference implementations which are the default on some systems. ### SuiteSparse From 7b0d0329a53f11e398414733b53d1878ac14aaf2 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 11:32:57 -0800 Subject: [PATCH 05/14] gentoo link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 362dc21347641..37a956b9524c1 100644 --- a/README.md +++ b/README.md @@ -354,11 +354,12 @@ Package maintaners will typically want to make use of system libraries where pos Currently community maintained packages are: - Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) - [Arch](https://www.archlinux.org/packages/community/x86_64/julia/) +- [Gentoo](https://packages.gentoo.org/packages/dev-lang/julia) - [Raspbian](https://github.com/JuliaBerry/julia-raspbian) Additionally, the following unmaintained packages may still be useful: - [Homebrew](https://github.com/staticfloat/homebrew-julia) -- [Ubuntu](https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases) (0.5) +- [Ubuntu PPA](https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases) (0.5) - [Debian](https://packages.debian.org/sid/julia) (0.4) ### System Provided Libraries From 501bff0df86ae474a5db48fd2f161c4a0ccc2a1b Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 13:30:57 -0800 Subject: [PATCH 06/14] Add comment re: newer LLVM versions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37a956b9524c1..ebc7c3d738ccb 100644 --- a/README.md +++ b/README.md @@ -374,7 +374,7 @@ The most complicated dependency is LLVM, for which we require version 3.9 with s - adding the patches to the LLVM 3.9 package of the distribution (note: these are backported upstream bug fixes, _not_ Julia-specific patches: all have been contributed into upstream LLVM), or - bundling a Julia-only LLVM library inside the Julia package. -Using an unpatched or different version of LLVM will result in errors and/or poor performance. +Using an unpatched or different version of LLVM will result in errors and/or poor performance. There are flags in the Makefiles for newer LLVM versions, but support for this should be regarded as experimental and not suitable for packaging. ### BLAS and LAPACK From 0e7526d8308c8ae3fa1500abe808b12aa2122e02 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 13:41:36 -0800 Subject: [PATCH 07/14] Add mention of LLVM makefile --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ebc7c3d738ccb..d5b8a0c86bdc3 100644 --- a/README.md +++ b/README.md @@ -349,7 +349,7 @@ Julia uses the following external libraries, which are automatically downloaded ### Notes for distribution package maintainers -Package maintaners will typically want to make use of system libraries where possible. Please refer to the above version requirements and notes below. +Package maintaners will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. Currently community maintained packages are: - Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) @@ -374,6 +374,8 @@ The most complicated dependency is LLVM, for which we require version 3.9 with s - adding the patches to the LLVM 3.9 package of the distribution (note: these are backported upstream bug fixes, _not_ Julia-specific patches: all have been contributed into upstream LLVM), or - bundling a Julia-only LLVM library inside the Julia package. +A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/ + Using an unpatched or different version of LLVM will result in errors and/or poor performance. There are flags in the Makefiles for newer LLVM versions, but support for this should be regarded as experimental and not suitable for packaging. ### BLAS and LAPACK From 9534d93c8d4fa652bc53befde57961d323f644fa Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 14:56:38 -0800 Subject: [PATCH 08/14] Add link to awk --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5b8a0c86bdc3..7c172b856d230 100644 --- a/README.md +++ b/README.md @@ -318,6 +318,7 @@ Julia uses the following external libraries, which are automatically downloaded [patch]: http://www.gnu.org/software/patch [wget]: http://www.gnu.org/software/wget [m4]: http://www.gnu.org/software/m4 +[awk]: http://www.gnu.org/software/gawk [gcc]: http://gcc.gnu.org [clang]: http://clang.llvm.org [python]: https://www.python.org/ From 3e10b439fcbb6d3e564af327eea84bf75b4fea49 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 15:38:06 -0800 Subject: [PATCH 09/14] Update based on @staticfloat's comments --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7c172b856d230..f63d9c885b92c 100644 --- a/README.md +++ b/README.md @@ -372,16 +372,17 @@ Please be aware that this procedure is not officially supported, as it introduce ### LLVM The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches (LLVM is not backward compatible). We recommend either: - - adding the patches to the LLVM 3.9 package of the distribution (note: these are backported upstream bug fixes, _not_ Julia-specific patches: all have been contributed into upstream LLVM), or - - bundling a Julia-only LLVM library inside the Julia package. - -A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/ + - bundling a Julia-only LLVM library inside the Julia package, or + - adding the patches to the LLVM 3.9 package of the distribution. + * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. + * The only Julia-specific patch is the lib renaming (`llvm-symver-jlprefix.patch`), which should _not_ be applied to a system LLVM. + * The remaining patches are all upstream bug fixes, and have been contributed into upstream LLVM. Using an unpatched or different version of LLVM will result in errors and/or poor performance. There are flags in the Makefiles for newer LLVM versions, but support for this should be regarded as experimental and not suitable for packaging. ### BLAS and LAPACK -As a high-performance numerical language, Julia should be linked to a multi-threaded BLAS and LAPACK, such as OpenBLAS, and _not_ the reference implementations which are the default on some systems. +As a high-performance numerical language, Julia should be linked to a multi-threaded BLAS and LAPACK, such as OpenBLAS or ATLAS, which will provide much better performance than the reference `libblas` implementations which may be default on some systems. ### SuiteSparse From a3f39c629ad8d65fa672e360ac9db53fca518967 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 15:40:06 -0800 Subject: [PATCH 10/14] Tweak text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f63d9c885b92c..cd16145d7a57e 100644 --- a/README.md +++ b/README.md @@ -378,7 +378,7 @@ The most complicated dependency is LLVM, for which we require version 3.9 with s * The only Julia-specific patch is the lib renaming (`llvm-symver-jlprefix.patch`), which should _not_ be applied to a system LLVM. * The remaining patches are all upstream bug fixes, and have been contributed into upstream LLVM. -Using an unpatched or different version of LLVM will result in errors and/or poor performance. There are flags in the Makefiles for newer LLVM versions, but support for this should be regarded as experimental and not suitable for packaging. +Using an unpatched or different version of LLVM will result in errors and/or poor performance. Though Julia can be built with newer LLVM versions, support for this should be regarded as experimental and not suitable for packaging. ### BLAS and LAPACK From 665035a2d555bf4e9fc7f9dfe6264b2053daa300 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 6 Feb 2018 16:28:51 -0800 Subject: [PATCH 11/14] Update based on @eli-schwartz's comments --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cd16145d7a57e..f49a96c14c5ad 100644 --- a/README.md +++ b/README.md @@ -350,7 +350,7 @@ Julia uses the following external libraries, which are automatically downloaded ### Notes for distribution package maintainers -Package maintaners will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. +Package maintainers will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. Currently community maintained packages are: - Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) @@ -374,9 +374,9 @@ Please be aware that this procedure is not officially supported, as it introduce The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches (LLVM is not backward compatible). We recommend either: - bundling a Julia-only LLVM library inside the Julia package, or - adding the patches to the LLVM 3.9 package of the distribution. - * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. - * The only Julia-specific patch is the lib renaming (`llvm-symver-jlprefix.patch`), which should _not_ be applied to a system LLVM. - * The remaining patches are all upstream bug fixes, and have been contributed into upstream LLVM. + * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. + * The only Julia-specific patch is the lib renaming (`llvm-symver-jlprefix.patch`), which should _not_ be applied to a system LLVM. + * The remaining patches are all upstream bug fixes, and have been contributed into upstream LLVM. Using an unpatched or different version of LLVM will result in errors and/or poor performance. Though Julia can be built with newer LLVM versions, support for this should be regarded as experimental and not suitable for packaging. From 0d1846e8ec92ce2481c8dcc23eda0e5bbb0b3549 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Wed, 7 Feb 2018 08:32:53 -0800 Subject: [PATCH 12/14] Add notes on libuv --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f49a96c14c5ad..be397d3febd0f 100644 --- a/README.md +++ b/README.md @@ -371,7 +371,7 @@ Please be aware that this procedure is not officially supported, as it introduce ### LLVM -The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches (LLVM is not backward compatible). We recommend either: +The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches from upstream (LLVM is not backward compatible). We recommend either: - bundling a Julia-only LLVM library inside the Julia package, or - adding the patches to the LLVM 3.9 package of the distribution. * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. @@ -380,6 +380,10 @@ The most complicated dependency is LLVM, for which we require version 3.9 with s Using an unpatched or different version of LLVM will result in errors and/or poor performance. Though Julia can be built with newer LLVM versions, support for this should be regarded as experimental and not suitable for packaging. +### libuv + +Julia uses a custom fork of libuv. It is a small dependency, and can be safely bundled in the same package as Julia, and will not conflict with the system library. Julia builds should _not_ try to use the system libuv. + ### BLAS and LAPACK As a high-performance numerical language, Julia should be linked to a multi-threaded BLAS and LAPACK, such as OpenBLAS or ATLAS, which will provide much better performance than the reference `libblas` implementations which may be default on some systems. From 5fa9587dec681d3496d4802b59d5b29282272820 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Wed, 7 Feb 2018 09:21:53 -0800 Subject: [PATCH 13/14] minor tweak to text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be397d3febd0f..77b8965e47939 100644 --- a/README.md +++ b/README.md @@ -371,7 +371,7 @@ Please be aware that this procedure is not officially supported, as it introduce ### LLVM -The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches from upstream (LLVM is not backward compatible). We recommend either: +The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches from upstream (LLVM is not backward compatible). For packaging Julia, we recommend either: - bundling a Julia-only LLVM library inside the Julia package, or - adding the patches to the LLVM 3.9 package of the distribution. * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. From 59c26e77794ae308cc7f29a990f41f4bc6c1df3f Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Sat, 10 Feb 2018 07:14:21 -0800 Subject: [PATCH 14/14] link to packages.html --- README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/README.md b/README.md index 77b8965e47939..3ba3f532ae8a4 100644 --- a/README.md +++ b/README.md @@ -350,18 +350,7 @@ Julia uses the following external libraries, which are automatically downloaded ### Notes for distribution package maintainers -Package maintainers will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. - -Currently community maintained packages are: -- Fedora: [official](https://src.fedoraproject.org/rpms/julia), [Copr (for backports)](https://copr.fedorainfracloud.org/coprs/nalimilan/julia/) -- [Arch](https://www.archlinux.org/packages/community/x86_64/julia/) -- [Gentoo](https://packages.gentoo.org/packages/dev-lang/julia) -- [Raspbian](https://github.com/JuliaBerry/julia-raspbian) - -Additionally, the following unmaintained packages may still be useful: -- [Homebrew](https://github.com/staticfloat/homebrew-julia) -- [Ubuntu PPA](https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases) (0.5) -- [Debian](https://packages.debian.org/sid/julia) (0.4) +Package maintainers will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. A list of maintained Julia packages for various platforms is available at https://julialang.org/downloads/platform.html. ### System Provided Libraries