145 Commits

Author SHA1 Message Date
Jan Beich
17006791eb lang/rust: don't hardcode manifest files after r489132
Approved by:	rust (tobik)
Differential Revision:	https://reviews.freebsd.org/D18737
2019-01-21 11:27:18 +00:00
Jan Beich
bea7824c1c lang/rust: oops, don't default to pre-releases
Differential Revision:	https://reviews.freebsd.org/D18858
2019-01-17 19:55:58 +00:00
Jan Beich
5da2437891 lang/rust: rename patches to match diff prefix
Git even with -M -C -C couldn't detect all renames in modified files,
so rename in a separate commit.

Approved by:	rust (tobik)
Differential Revision:	https://reviews.freebsd.org/D18858
2019-01-17 19:51:04 +00:00
Jan Beich
6f333b0b12 lang/rust: update to 1.32.0
- devel/racer no longer needs to dowgrade rustc-ap-syntax
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html
Approved by:	rust (tobik)
Differential Revision:	https://reviews.freebsd.org/D18858
2019-01-17 19:50:38 +00:00
Tobias Kortkamp
0d7fced0f2 lang/rust: Use ECHO_CMD not ECHO as per bsd.commands.mk 2019-01-16 13:20:45 +00:00
Jan Beich
701b2fb530 lang/rust: disclaim /proc fix 2019-01-02 16:37:02 +00:00
Tobias Kortkamp
d6cb3d9218 lang/rust: Update to 1.31.1
- Simplify .cargo-checksum.json handling [1].  Similar to USES=cargo
  we disable vendor checksum checking by clearing the list of files
  in all .cargo-checksum.json, so that cargo does not complain when
  we patch something.  The overall distfile is already checked by
  us which should be enough.
- Add an overridable CARGO_VENDOR_DIR variable to set the crate
  vendor directory which has moved location in nightly
- Add upstream openssl-sys patch to fix build with LibreSSL 2.9.0 [2]

Changes:	https://blog.rust-lang.org/2018/12/20/Rust-1.31.1.html
Submitted by:	mikael.urankar@gmail.com [1], ml@vishwin.info [2]
Differential Revision:	https://reviews.freebsd.org/D18610
2018-12-21 10:37:09 +00:00
Jan Beich
f3d3f56fa4 lang/rust: drop unused conflicts after r446815 2018-12-17 10:33:12 +00:00
Jan Beich
4c515ab8c0 lang/rust-nightly: update to 1.32.0.20181214 2018-12-14 18:20:51 +00:00
Jan Beich
7c64203f67 lang/rust: update to 1.31.0
- devel/racer no longer needs to dowgrade rustc-ap-syntax
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2018/12/06/Rust-1.31.0.html
Approved by:	rust (tobik)
Differential Revision:	https://reviews.freebsd.org/D18427
2018-12-06 17:11:14 +00:00
Dmitry Marakasov
ebea87491a - Specify LICENSE_FILEs uniformly
Approved by:	portmgr blanket
2018-12-04 09:01:26 +00:00
Jean-Sébastien Pédron
d53d5a0590 lang/rust: Update to 1.30.1
Release notes:
* https://blog.rust-lang.org/2018/11/08/Rust-1.30.1.html
2018-11-09 23:32:39 +00:00
Jan Beich
d12ed11522 lang/rust: update to 1.30.0
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2018/10/25/Rust-1.30.0.html
Approved by:	rust (tobik)
MFH:		2018Q4 (less rust versions to support)
Differential Revision:	https://reviews.freebsd.org/D17695
2018-10-25 21:59:37 +00:00
Jan Beich
2e8d729d62 lang/rust: update to 1.29.2
- Force rebuild all consumers in case some are affected by miscompilation

Changes:	https://blog.rust-lang.org/2018/10/12/Rust-1.29.2.html
PR:		229826 (follow up)
Approved by:	rust (tobik)
MFH:		2018Q4
Differential Revision:	https://reviews.freebsd.org/D17477
2018-10-12 19:01:02 +00:00
Jean-Sébastien Pédron
90b5c7eeb5 lang/rust: Add patches to support LibreSSL 2.8.1
PR:		230470
Reported by:	Charlie Li <ml+freebsd@vishwin.info>
2018-09-30 22:28:27 +00:00
Jan Beich
a9d287a5ea lang/rust: update to 1.29.1
- Force rebuild all consumers as standard library is statically linked

Changes:	https://blog.rust-lang.org/2018/09/25/Rust-1.29.1.html
PR:		229826 (follow up)
Approved by:	dumbbell
Differential Revision:	https://reviews.freebsd.org/D17337
2018-09-28 17:59:24 +00:00
Jan Beich
5f4b386da8 lang/rust: sort LIB_DEPENDS by library name instead of origin
Requested by:	dumbbell (maintainer)
2018-09-21 11:24:21 +00:00
Jan Beich
49c8598e32 lang/rust: unbundle libgit2/libssh2
- libgit2 in ports is nowadays newer than bundled version
- libssh2 was already unbundled until 1.29.0 update
- Unbundle libssh2 for USES=cargo (unused atm)

PR:		231411
Approved by:	rust (dumbbell, tobik)
2018-09-21 11:16:08 +00:00
Jan Beich
38ed2724f9 lang/rust: unbreak if ssl != base
[ 13%] Building C object src/CMakeFiles/libssh2.dir/channel.c.o
  /usr/bin/cc -DLIBSSH2_CLEAR_MEMORY -DLIBSSH2_DH_GEX_NEW=1 -DLIBSSH2_HAVE_ZLIB=1 -DLIBSSH2_OPENSSL -I/usr/local/include -Isrc/vendor/libssh2-sys/libssh2/include -Ibuild/x86_64-unknown-freebsd/stage2-tools/x86_64-unknown-freebsd/release/build/libssh2-sys-149db94635ec1367/out/build/src  -ffunction-sections -fdata-sections -fPIC -ffunction-sections -fdata-sections -fPIC -m64 -m64 -O3 -DNDEBUG   -std=gnu90 -o CMakeFiles/libssh2.dir/channel.c.o   -c src/vendor/libssh2-sys/libssh2/src/channel.c
  src/vendor/libssh2-sys/libssh2/src/channel.c:2262:44: error: use of undeclared identifier 'LIBSSH2_ERROR_CHANNEL_WINDOW_FULL'
	      return _libssh2_error(session, LIBSSH2_ERROR_CHANNEL_WINDOW_FULL,
					     ^

PR:		231411
Reported by:	many
Obtained from:	upstream (libssh2)
Approved by:	portmgr blanket
2018-09-20 10:07:37 +00:00
Jean-Sébastien Pédron
aa8061d1c1 lang/rust: Update to 1.29.0
Release notes:
* https://blog.rust-lang.org/2018/07/20/Rust-1.27.2.html
* https://blog.rust-lang.org/2018/08/02/Rust-1.28.html
* https://blog.rust-lang.org/2018/09/13/Rust-1.29.html

Up to and including Rust 1.27.x, the Rust build system shelled out to
a configure script to detect the presence and usability of libunwind.
Since Rust 1.28.0, it's using a static result in a `build.rs` file and
expects libunwind to be used. It was not the case on FreeBSD so far, so
we need a patch to this `build.rs` to disable that. We still need to
study if the FreeBSD port should use libunwind and what to do with this
patch. But this problem prevented the update to Rust 1.28.0 already, so
enough delay.

The update also comes with a patch to a few `USE_GECKO`-based ports such
as Firefox [1]. Their configure script has some asumptions on the output
of `rustc --print target-list` which are not true anymore. The patch was
already committed upstream.

The aarch64 version is still marked as BROKEN because I didn't find the
time to work on it. As a consequence, there is also no aarch64 bootstrap
for Rust 1.29.0.

PR:		229826
Approved by:	jbeich [1]
Obtained from:	https://bugzilla.mozilla.org/show_bug.cgi?id=1479540 [1]
Differential Revision:	https://reviews.freebsd.org/D17178
2018-09-16 07:57:08 +00:00
Sunpoet Po-Chuan Hsieh
d6acd4f262 Update WWW
Approved by:	portmgr (blanket)
2018-09-09 16:59:26 +00:00
Jean-Sébastien Pédron
6d4a3088ba lang/rust: Udpate checksums in libgit2-sys/.cargo-checksum.json
It was part of the initial patch from Charlie Li to support LibreSSL
2.7. However, I misread it and though he was only removing bits
which were not needed anymore (updating checksums for openssl and
openssl-sys).

Now, we update all three: libgit2-sys, openssl and openssl-sys.

PR:		226955
Submitted by:	Charlie Li <ml+freebsd@vishwin.info>
Reported by:	Charlie Li <ml+freebsd@vishwin.info>
2018-07-23 07:32:23 +00:00
Jean-Sébastien Pédron
813370b342 lang/rust: Add patches to fix the build with LibreSSL 2.7
PR:		226955
Submitted by:	Charlie Li <ml+freebsd@vishwin.info>
2018-07-21 15:04:14 +00:00
Jean-Sébastien Pédron
80e30d6133 lang/rust: Update to 1.27.1
Release notes:
* https://blog.rust-lang.org/2018/06/21/Rust-1.27.html
* https://blog.rust-lang.org/2018/07/10/Rust-1.27.1.html

Rust is marked as broken on aarch64. The reason is the bootstrap
compiler crashes currently. See PR 228892 which tracks the issue.

A patch for aarch64 is still included. It fixes the sign for unqualified
C char. This patch still needs to be upstream, but for that, the
compiler needs to work again first.

PR:		228892
2018-07-19 20:57:09 +00:00
Jean-Sébastien Pédron
4f60577fd4 lang/rust: Update to 1.26.2
Release notes:
* https://blog.rust-lang.org/2018/05/29/Rust-1.26.1.html
* https://blog.rust-lang.org/2018/06/05/Rust-1.26.2.html
2018-06-09 09:28:57 +00:00
Jean-Sébastien Pédron
8a62f1221e lang/rust: Add make makesum-all-archs target
It is a helper to ease the generation of the `distinfo` file for all the
architectures we support. It avoids the manual commands.
2018-06-08 23:31:35 +00:00
Jean-Sébastien Pédron
12721bb2ad lang/rust: Update to 1.26.0
The announcement is available on Rust blog:
https://blog.rust-lang.org/2018/05/10/Rust-1.26.html

Rust 1.25.0, used as the bootstrap compiler, contains the patch from
bdrewery@ to use the compat (non-ino64) symbols on FreeBSD 12-CURRENT.
Therefore, we don't need `old_fstat.c` and the associated machinery in
the `Makefile` anymore.
2018-05-15 13:43:34 +00:00
Bryan Drewery
18dac0b76c Update to 1.25.0.
- The ABI patch is no longer needed on head due to fixes being upstreamed
  to use the pre-ino64 symbols.  The ABI patch is still needed for the
  bootstrap but should be removable for 1.26.0 if it uses beta 2018-03-18.

PR:		227130 [based on]
Tested by:	dumbbell, Charlie Li
Submitted by:	riggs [based on]
Differential Revision:	https://reviews.freebsd.org/D14921 [based on]
2018-04-16 21:35:26 +00:00
Jean-Sébastien Pédron
9882c6b366 lang/rust: Update to 1.24.1
The announcement is available on Rust blog:
https://blog.rust-lang.org/2018/03/01/Rust-1.24.1.html

There is a compilation error when it builds `clippy-driver` and `miri`
but it apparently doesn't affect the result. There are probably optional
tools/dependencies.
2018-03-22 18:14:21 +00:00
Bryan Drewery
6e03832857 Update rust-nightly to 2018-03-21.
The ABI patch and bootstrap patching are no longer needed on head after
fixes fully upstreamed in https://github.com/rust-lang/rust/issues/42681.
2018-03-21 16:20:51 +00:00
Bryan Drewery
6f39fa8fca Fix WITH_CCACHE_BUILD when using Poudriere's ccache-memcached support. 2018-03-09 21:35:49 +00:00
Bryan Drewery
dd76289525 - Fix kevent on head by binding to the old ABI symbol version.
- Add some context in the patches for where they came from.  They need to be
  in 1 patch due to needing to use the .orig file for fixing up checksums.

Obtained from:	rust upstream
2018-03-09 02:54:10 +00:00
Bryan Drewery
0d3244c26e Support WITH_CCACHE_BUILD for bundled LLVM 2018-02-25 03:10:33 +00:00
Bryan Drewery
01b60efd6f Unbreak on i386/amd64 and update to 1.25.0-2018-02-19
- Stop using git to build as it is unmaintainable due to submodules,
  but more importantly because src/vendor is no longer bundled.  Just
  fetch the source already generated that has all dependencies bundled.
  It may be a bit slower to get updates but is far more maintainable.
- Copy all patches to lang/rust-nightly/files since they may not always
  apply exactly between both versions.
- Add in patch for llvm-config getting -lexecinfo wrong, this is in
  review with LLVM at https://reviews.llvm.org/D42702.
- Bring in other random updates from lang/rust.
2018-02-24 06:17:17 +00:00
Bryan Drewery
d1c499f952 No need to actually recompress rust-std, libarchive does the right thing 2018-02-24 05:57:52 +00:00
Bryan Drewery
19e547ff22 Newer versions (rust-nightly 2018-02-19) pack multiple .o files into
libstd.  We only need to patch one of them.
2018-02-23 22:14:12 +00:00
Jan Beich
d4cd41d698 lang/rust: unbreak on aarch64 after r459911
gmake: Leaving directory '.../aarch64-unknown-freebsd/release/build/rustc_binaryen-cfb76adb9420e94c/out/build'
--- stderr
c++: error: the clang compiler does not support '-march=native'
c++: error: the clang compiler does not support '-march=native'

PR:		225600
Reported by:	Gergely Czuczy, pkg-fallout
Obtained from:	upstream (binaryen 1.37.35)
Approved by:	portmgr blanket
2018-02-22 22:05:21 +00:00
Bryan Drewery
be58f70a63 Use https for fetching bootstrap packages 2018-02-21 23:26:40 +00:00
Jean-Sébastien Pédron
989f546e02 lang/rust: Update to 1.24.0
The announcement is available on Rust blog:
https://blog.rust-lang.org/2018/02/15/Rust-1.24.html

PR:		225582
2018-02-19 21:53:01 +00:00
Jean-Sébastien Pédron
ea45925117 lang/rust: Grep std-$hash.*.o name from libstd-*.rlib
The suffix of that file changed in recent versions of Rust and it's
changing again between Rust 1.23.0 and 1.24.0. So let's grep the
filename from the list of files contained in the ar archive.
2018-02-17 11:11:50 +00:00
Jean-Sébastien Pédron
860708a57a lang/rust: Add manifest-rustfmt-preview to PLIST
This wasn't reported by a simple `poudriere bulk`, but a `poudriere
testport` revealed the problem:

    ====> Running Q/A tests (stage-qa)
    Error: 'lib/rustlib/manifest-rustfmt-preview' is referring to /wrkdirs/usr/ports/lang/rust/work/stage
    Warning: 'bin/rustfmt' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
    ...
    ===> Checking for items in STAGEDIR missing from pkg-plist
    Error: Orphaned: bin/rustfmt
    Error: Orphaned: lib/rustlib/manifest-rustfmt-preview

PR:		225445
Reported by:	jbeich@
2018-01-25 13:59:23 +00:00
Jean-Sébastien Pédron
9d417de57c lang/rust: Update to 1.23.0
Firefox 57.0 failed to build with Rust 1.23.0 with the following error:

    error: unused import: `std::ascii::AsciiExt`
      --> /wrkdirs/usr/ports/www/firefox/work/firefox-57.0.4/servo/components/style/gecko_string_cache/mod.rs:16:5
       |
    16 | use std::ascii::AsciiExt;
       |     ^^^^^^^^^^^^^^^^^^^^
       |
    note: lint level defined here
      --> /wrkdirs/usr/ports/www/firefox/work/firefox-57.0.4/servo/components/style/lib.rs:26:9
       |
    26 | #![deny(warnings)]
       |         ^^^^^^^^
       = note: #[deny(unused_imports)] implied by #[deny(warnings)]

Now that Firefox is updated to 58.0, the build succeeds.
2018-01-25 08:07:58 +00:00
Jean-Sébastien Pédron
3f6cb8de16 lang/rust: Skip .cargo-checksum.json update when it's missing
Currently we need to update `.cargo-checksum.json` in several patched
crates. But those crates are missing from the sources if they come from
GitHub instead of a proper released source archive. This change makes
`post-patch` and `do-configure` recipes fine in both cases.
2018-01-05 23:33:42 +00:00
Jean-Sébastien Pédron
a5fce162f8 lang/rust: Always replace bootstrap versions in stage0.txt
This simplifies the `Makefile`. The condition was fragile anyway because
it was based solely on the Makefile and not the actual content of
`stage0.txt`.
2018-01-05 23:28:16 +00:00
Jean-Sébastien Pédron
f29ef5baf9 lang/rust: Find libstd's suffix at runtime
... instead of hard-coding all values in the Makefile.

This eases the update of Rust.
2018-01-05 23:20:50 +00:00
Jean-Sébastien Pédron
c988c24319 lang/rust: Disable "omit frame pointers"
Before the patch, the default behavior of the compiler was to omit frame
pointers. However, even though it looks fine for the code produced
by the compiler, the compiler itself was broken. When there was a
compilation error, rustc panics to report that error. While handling
that panic, it tries to unwind the stack but fails to do so, which
results in an abort(3).

Here is an example:

    $ rustc hello.rs
    error: invalid reference to argument `0` (no arguments given)
     --> hello.rs:2:5
      |
    2 |     println!("Hello {}")
      |     ^^^^^^^^^^^^^^^^^^^^
      |
      = note: this error originates in a macro outside of the current crate

    error: aborting due to previous error

    fatal runtime error: failed to initiate panic, error 5
    Abort trap (core dumped)

The problem also exists on other systems such as OpenBSD and
i686-unknown-linux-musl. "omit frame pointers" was already disabled for
i686-unknown-linux-musl:
88a28ff602/src/librustc_back/target/i686_unknown_linux_musl.rs (L22)

The patch does the same for *-unknown-freebsd.

See the upstream bug for more informations:
https://github.com/rust-lang/rust/issues/43575
2017-11-30 13:33:05 +00:00
Jan Beich
d65b2886b1 lang/rust: avoid LLVM targeting SSE2 on i386 by default
This may help ports like textproc/ripgrep to run on old hardware.
Rust itself still requires SSE2 until bootstrap is regenerated.

PR:		223415
Approved by:	rust (dumbbell)
2017-11-27 22:02:29 +00:00
Jean-Sébastien Pédron
fefc322b07 lang/rust: Remove the LLVM_PORT option
FTR, this option allowed to used LLVM from ports instead of building the
bundled copy.

The problem is that this combination isn't really tested upstream. This
led to regressions which are difficult to diagnose. For instance, in
Rust 1.21.0, the bundled LLVM provided a new API to query the features
supported by the target arch. The equivalent code inside Rust was
removed to use that new API. Unfortunately, building Rust 1.21.0+ with a
copy of LLVM not providing this API didn't failed but instead made that
list of CPU features empty. This resulted in the following obscure build
failure in Firefox:

    error[E0432]: unresolved import `x86::sse2`

To avoid future pain for both end users and maintainers, we decided to
remove that option. Yes, it will increase the (already long) time to
build Rust, but it should save time wasted on debugging what is not
really supported anyway.

PR:		223342, 223300
Reported by:	Many users
2017-11-27 18:16:15 +00:00
Jean-Sébastien Pédron
ba01899161 lang/rust: Update to 1.22.1
Support for LibreSSL up-to 2.6.3 is now included, thus we can remove the
patches to the `openssl` and `openssl-sys` crates.

The renewed bootstrap for aarch64 was created on 11.0-RELEASE, instead
of 11.1-STABLE. It should allow it to run on all 11.x and thus fix the
build on 11.0-RELEASE. [1]

PR:		223009 [1]
2017-11-27 08:20:32 +00:00
Jean-Sébastien Pédron
3130d6b687 lang/rust: Add support for LibreSSL 2.6.3
Patches come from upstream:
    https://github.com/sfackler/rust-openssl

PR:		223500
Reported by:	Charlie Li <ml+freebsd-bugs@vishwin.info>
2017-11-09 14:14:59 +00:00