]> git.proxmox.com Git - cargo.git/log
cargo.git
7 years agoAuto merge of #3125 - mbrubeck:dev-deps, r=alexcrichton
bors [Tue, 27 Sep 2016 23:50:36 +0000 (16:50 -0700)]
Auto merge of #3125 - mbrubeck:dev-deps, r=alexcrichton

Build transitive dev-dependencies when needed

When running `cargo test -p foo` where `foo` is a crate in the current workspace, build and link `foo`'s dev-dependencies. Fixes #860.

7 years agoMerge pull request #3032 from brson/rust-installer
Alex Crichton [Tue, 27 Sep 2016 23:48:27 +0000 (08:48 +0900)]
Merge pull request #3032 from brson/rust-installer

Update rust-installer

7 years agoBuild transitive dev-dependencies when needed
Matt Brubeck [Mon, 26 Sep 2016 21:13:49 +0000 (14:13 -0700)]
Build transitive dev-dependencies when needed

When running `cargo test -p foo` where `foo` is a crate in the current
workspace, build and link `foo`'s dev-dependencies. Fixes #860.

7 years agoAuto merge of #3123 - wimh:platform_versions, r=alexcrichton
bors [Tue, 27 Sep 2016 20:03:32 +0000 (13:03 -0700)]
Auto merge of #3123 - wimh:platform_versions, r=alexcrichton

Don't download dependencies from other platforms

Having a Cargo.toml which looks like this:

            [package]
            name = "a"
            version = "0.0.1"
            authors = []

            [target.'cfg(unix)'.dependencies]
            foo = "0.1.0"

            [target.'cfg(windows)'.dependencies]
            foo = "0.2.0"

This would still download foo version 0.2.0 on unix. I think there is no need to do that, but please correct me if I'm wrong.

This was triggered by [this](http://stackoverflow.com/questions/39709542/why-does-the-last-platform-specific-dependency-take-precedence-in-cargo) stackoverflow question, but that situation is more complicated, as the version is the same, just the features are different. This PR will not solve that bug. If you want me to include that too, I would have to debug a bit more first....

7 years agoAuto merge of #3089 - carols10cents:crates-io-registry-url, r=alexcrichton
bors [Tue, 27 Sep 2016 00:02:55 +0000 (17:02 -0700)]
Auto merge of #3089 - carols10cents:crates-io-registry-url, r=alexcrichton

Make crates-io registry URL optional in config; ignore all changes to source.crates-io

Hi! When I was working on the instructions for source replacement [in this crates.io PR](https://github.com/rust-lang/crates.io/pull/440), I found that when I'm replacing `source.crates-io`, [I still have to specify some value for `registry`](https://github.com/rust-lang/crates.io/pull/440/files#diff-04c6e90faac2675aa89e2176d2eec7d8R177), or else I get this:

```
error: no source URL specified for `source.crates-io`, need either `registry` or `local-registry` defined
```

This seems weird and annoying to me: cargo definitely knows the registry URL for crates-io, and I'm trying to replace it anyway.

So the first commit in this PR makes it optional, so that you don't have to specify a registry url for crates-io: it uses `SourceId::crates_io`, like it would if we didn't have any source configs at all.

~~The second commit in this PR might go too far, and/or might break existing uses of cargo, I'm not sure. In my opinion, `source.crates-io` should only be able to be replaced and never changed directly-- crates-io should always be crates-io, and I should be able to assume that in any project. So the second commit ignores all modifications to `source.crates-io`'s `registry`, `local-registry`, and `directory`, and warns that they're being ignored.~~

~~I tried to search github to see if anyone was using these keys with `source.crates-io`, but since github's search ignores `.` (ARE YOU LISTENING GITHUB? I WOULD LIKE TO SEARCH WITH PUNCTUATION PLEASE), there's a lot of false positives to wade through. I didn't see anything in the first few pages though.~~

I'm happy to make whatever modifications to this!

7 years agoDo not download dependencies from other platforms
Wim Hueskes [Mon, 26 Sep 2016 22:55:58 +0000 (00:55 +0200)]
Do not download dependencies from other platforms

7 years agoadd test cfg/ignore_version_from_other_platform
Wim Hueskes [Mon, 26 Sep 2016 22:46:10 +0000 (00:46 +0200)]
add test cfg/ignore_version_from_other_platform

if different platforms have a dependency to a different
version of a crate, only the correct dependency should
be downloaded and used

7 years agoAuto merge of #3110 - jsgf:topic-license-metadata, r=alexcrichton
bors [Mon, 26 Sep 2016 22:51:22 +0000 (15:51 -0700)]
Auto merge of #3110 - jsgf:topic-license-metadata, r=alexcrichton

cargo: add license and license_file to cargo metadata output

Proposed fix for #3108

7 years agoAuto merge of #3122 - shepmaster:patch-1, r=steveklabnik
bors [Mon, 26 Sep 2016 19:36:04 +0000 (12:36 -0700)]
Auto merge of #3122 - shepmaster:patch-1, r=steveklabnik

Add missing quotation mark

7 years agoAdd missing quotation mark
Jake Goulding [Mon, 26 Sep 2016 19:11:36 +0000 (15:11 -0400)]
Add missing quotation mark

7 years agoAuto merge of #3091 - matklad:move-exec-streamed, r=alexcrichton
bors [Mon, 26 Sep 2016 17:48:18 +0000 (10:48 -0700)]
Auto merge of #3091 - matklad:move-exec-streamed, r=alexcrichton

Move stream_output to ProcessBuilder

Make `stream_output` method more reusable (I intend to use it in #3000).

Unrelated question: what is that `ExecEngine` thing? Looks like it does nothing at the moment and can be removed.

7 years agoAuto merge of #3118 - cbiffle:master, r=alexcrichton
bors [Mon, 26 Sep 2016 17:10:18 +0000 (10:10 -0700)]
Auto merge of #3118 - cbiffle:master, r=alexcrichton

Fall back to fs::copy when hard_link fails.

Some filesystems don't allow hard links.  Since Cargo's use of hard
links is an optimization, and not necessary for correctness, it can fall
back to a file copy when hard linking is not available.

This is one possible solution to #3098.

Caveat: this will try to copy if the hard link fails *for any reason*.
It's not clear that there's a more surgical way of handling this; Unix
tends to indicate the condition as "permission denied," not with a
granular "links not supported by filesystem" error.

7 years agoAuto merge of #3121 - alexcrichton:bump-openssl, r=alexcrichton
bors [Mon, 26 Sep 2016 16:15:33 +0000 (09:15 -0700)]
Auto merge of #3121 - alexcrichton:bump-openssl, r=alexcrichton

Update OpenSSL again to 1.0.2j

7 years agoUpdate OpenSSL again to 1.0.2j
Alex Crichton [Mon, 26 Sep 2016 16:15:08 +0000 (09:15 -0700)]
Update OpenSSL again to 1.0.2j

7 years agoShould not have to specify crates-io registry URL to replace-with
Carol (Nichols || Goulding) [Tue, 13 Sep 2016 02:26:16 +0000 (22:26 -0400)]
Should not have to specify crates-io registry URL to replace-with

Since cargo knows crates-io's registry URL and, anyway, you're trying to
say that you don't want to use crates-io.

7 years agocargo: add license and license_file to cargo metadata output
Jeremy Fitzhardinge [Sun, 25 Sep 2016 21:57:51 +0000 (14:57 -0700)]
cargo: add license and license_file to cargo metadata output

7 years agoAuto merge of #3104 - jturner314:fix-publish-man-page, r=alexcrichton
bors [Sun, 25 Sep 2016 21:13:58 +0000 (14:13 -0700)]
Auto merge of #3104 - jturner314:fix-publish-man-page, r=alexcrichton

Remove duplicate option in cargo-publish man page

The `--host` option was listed twice; this commit removes one of the duplicates.

7 years agoFall back to fs::copy when hard_link fails.
Cliff L. Biffle [Sun, 25 Sep 2016 20:53:07 +0000 (13:53 -0700)]
Fall back to fs::copy when hard_link fails.

Some filesystems don't allow hard links.  Since Cargo's use of hard
links is an optimization, and not necessary for correctness, it can fall
back to a file copy when hard linking is not available.

This is one possible solution to #3098.

Caveat: this will try to copy if the hard link fails *for any reason*.
It's not clear that there's a more surgical way of handling this; Unix
tends to indicate the condition as "permission denied," not with a
granular "links not supported by filesystem" error.

7 years agoAuto merge of #3117 - alexcrichton:bump-openssl, r=alexcrichton
bors [Sun, 25 Sep 2016 19:30:50 +0000 (12:30 -0700)]
Auto merge of #3117 - alexcrichton:bump-openssl, r=alexcrichton

Update OpenSSL used by Cargo

7 years agoUpdate OpenSSL used by Cargo
Alex Crichton [Sun, 25 Sep 2016 19:29:51 +0000 (12:29 -0700)]
Update OpenSSL used by Cargo

8 years agoRemove duplicate option in cargo-publish man page
Jim Turner [Tue, 20 Sep 2016 05:57:10 +0000 (01:57 -0400)]
Remove duplicate option in cargo-publish man page

The `--host` option was listed twice; this commit removes one of the
duplicates.

8 years agoMove stream_output to ProcessBuilder
Aleksey Kladov [Wed, 14 Sep 2016 18:10:30 +0000 (21:10 +0300)]
Move stream_output to ProcessBuilder

8 years agoAuto merge of #3092 - jhbabon:fix/dont-panic-on-workspaces, r=alexcrichton
bors [Wed, 14 Sep 2016 20:27:39 +0000 (13:27 -0700)]
Auto merge of #3092 - jhbabon:fix/dont-panic-on-workspaces, r=alexcrichton

FIX: Don't try to generate Gargo.lock on empty workspaces.

There was a `panic!` when the command `cargo update` was executed in a workspace like this:

    mkdir ws
    cd ws
    echo '[workspace]' > Cargo.toml
    cargo new p1
    cargo new p2
    cargo update

The problem is that cargo tries to generate the `Cargo.lock` file even if there aren't any members on the workspace.

This fix checks the existence of members in the workspace before trying to do anything so at least we report an error instead of throwing a `panic!`.

Issue related https://github.com/rust-lang/cargo/issues/3080

8 years agoFIX: Don't try to generate Gargo.lock on empty workspaces.
Juan Hernández [Wed, 14 Sep 2016 19:02:47 +0000 (15:02 -0400)]
FIX: Don't try to generate Gargo.lock on empty workspaces.

There was a panic! when the command `cargo update` was
executed in a workspace like this:

    mkdir ws
    cd ws
    echo '[workspace]' > Cargo.toml
    cargo new p1
    cargo new p2
    cargo update

The problem is that cargo tries to generate the Cargo.lock file
even if there aren't any members on the workspace.

This fix checks the existence of members in the workspace before trying
to do anything so at least we report an error instead of throwing a
panic!

8 years agoAuto merge of #3087 - carols10cents:test-instructions-in-readme, r=alexcrichton
bors [Tue, 13 Sep 2016 04:11:45 +0000 (21:11 -0700)]
Auto merge of #3087 - carols10cents:test-instructions-in-readme, r=alexcrichton

Document recommended way for running tests

Fixes #3084.

8 years agoDocument recommended way for running tests
Carol (Nichols || Goulding) [Tue, 13 Sep 2016 01:45:29 +0000 (21:45 -0400)]
Document recommended way for running tests

Fixes #3084.

8 years agoAuto merge of #3083 - jhbabon:fix-warning-in-feature-tests, r=alexcrichton
bors [Sun, 11 Sep 2016 18:14:34 +0000 (11:14 -0700)]
Auto merge of #3083 - jhbabon:fix-warning-in-feature-tests, r=alexcrichton

FIX: Properly close dep_feature_in_cmd_line test.

It was including the test `all_features_flag_enables_all_features` inside its function body and it was causing this warning when executing `cargo test`:

```
   Compiling cargo v0.13.0 (file:///home/jhbabon/Code/cargo)
tests/features.rs:965:1: 1006:2 warning: function is never used: `all_features_flag_enables_all_features`, #[warn(dead_code)] on by default
tests/features.rs:965 fn all_features_flag_enables_all_features() {
                      ^
tests/features.rs:964:1: 964:8 warning: unused attribute, #[warn(unused_attributes)] on by default
tests/features.rs:964 #[test]
                      ^~~~~~~
     Running target/debug/features-e37991fdf417989c
```

8 years agoProperly close dep_feature_in_cmd_line test.
Juan Hernández [Sat, 10 Sep 2016 21:25:23 +0000 (17:25 -0400)]
Properly close dep_feature_in_cmd_line test.

It was including the test all_features_flag_enables_all_features
inside its function body.

8 years agoAuto merge of #3078 - jhbabon:fix/parse-home-config-once, r=alexcrichton
bors [Fri, 9 Sep 2016 16:16:01 +0000 (09:16 -0700)]
Auto merge of #3078 - jhbabon:fix/parse-home-config-once, r=alexcrichton

Fix: Don't parse the home directory more than once

This PR tries to resolve this issue https://github.com/rust-lang/cargo/issues/3070. The problem is that the `walk_tree` method in the `src/util/config.rs` module was parsing more than once the contents of the config file in the home directory (the file `~/.cargo/config`). The biggest problem with this is with options that can accept multiple values, like `build.rustflags`. If you parse the file twice, the same option can end with duplicated values (e.g: `rustflags=["-Z", "foo", "-Z", "foo"]`).

I made the fix following the comments in the issue. In the fix I keep track of all the parsed config files in a `HashSet` so I can know if a file has been parsed already. ~~I'm also using `std::fs::canonicalize`, as suggested in the issue, to prevent parsing files behind symbolic links more than once.~~

**UPDATE:** I removed the call to `fs::canonicalize` as suggested in the comments. Now the fix is way simpler, which means less code and less possibilities to add a new bug.

8 years agoRemove fs::canonicalize in walk_tree fix.
Juan Hernández [Fri, 9 Sep 2016 00:35:13 +0000 (20:35 -0400)]
Remove fs::canonicalize in walk_tree fix.

* Remove ConfiFile struct, it is not needed without the fs::canonicalize
  call.
* Don't check if the file is in the stash when walking the tree,
  without "canonicalization" it is not necessary.

8 years agoAdd ConfigFile struct to handle config file paths.
Juan Hernández [Thu, 8 Sep 2016 20:20:36 +0000 (16:20 -0400)]
Add ConfigFile struct to handle config file paths.

8 years agoDon't parse the config in home if it was parsed already.
Juan Hernández [Thu, 8 Sep 2016 19:58:53 +0000 (15:58 -0400)]
Don't parse the config in home if it was parsed already.

This is the first version of the fix. It needs clean up.

8 years agoAdd a test that reproduces the error of parsing home config twice.
Juan Hernández [Thu, 8 Sep 2016 19:13:31 +0000 (15:13 -0400)]
Add a test that reproduces the error of parsing home config twice.

8 years agoAuto merge of #3064 - dtolnay:rustc-macro, r=alexcrichton
bors [Tue, 6 Sep 2016 17:46:41 +0000 (10:46 -0700)]
Auto merge of #3064 - dtolnay:rustc-macro, r=alexcrichton

Macros 1.1

Tested with https://github.com/serde-rs/serde/pull/530. This should be able to merge independently of https://github.com/rust-lang/rust/pull/35957.

r? @alexcrichton

8 years agoBump rustcversion to pick up rustc-macro support
David Tolnay [Tue, 6 Sep 2016 17:34:35 +0000 (10:34 -0700)]
Bump rustcversion to pick up rustc-macro support

8 years agoAuto merge of #3073 - pnkfelix:clarify-lib.name-in-Cargo.toml, r=alexcrichton
bors [Tue, 6 Sep 2016 05:52:29 +0000 (22:52 -0700)]
Auto merge of #3073 - pnkfelix:clarify-lib.name-in-Cargo.toml, r=alexcrichton

doc fix: clarify lib.name property

doc fix: clarify lib.name property

`extern crate` uses `lib.name`; default is post '-' => '_' substitution.

8 years agoAuto merge of #3071 - japaric:moar-cargo, r=alexcrichton
bors [Tue, 6 Sep 2016 04:48:16 +0000 (21:48 -0700)]
Auto merge of #3071 - japaric:moar-cargo, r=alexcrichton

prepare for cargo for mips and powerpc

with these changes I can cross compile Cargo for these targets:

- mips-unknown-linux-gnu
- mipsel-unknown-linux-gnu
- powerpc-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- powerpc64el-unknown-linux-gnu

using these commands:

```
$ ./.travis.install.deps.sh
$ ./configure --local-rust-root=$(pwd)/rustc --enable-nightly --target=$TARGET
$ make
```

in Ubuntu 16.04 using the standard cross toolchains

r? @alexcrichton
cross compiling Cargo for the mips targets requires rust-lang/libc#378

8 years agodocfix: `extern crate` uses `lib.name`; default is post '-' => '_' substitution
Felix S. Klock II [Mon, 5 Sep 2016 12:22:30 +0000 (14:22 +0200)]
docfix: `extern crate` uses `lib.name`; default is post '-' => '_' substitution

8 years agoAuto merge of #3072 - pietroalbini:fix-faq, r=steveklabnik
bors [Sun, 4 Sep 2016 20:31:38 +0000 (13:31 -0700)]
Auto merge of #3072 - pietroalbini:fix-faq, r=steveklabnik

Remove reference of Rust 1.11.0 release date in the FAQ

In the `--frozen` section of the FAQ, there is a reference to the Rust 1.11.0 release date (probably because it was added in June), which is now in the past. In this pull request I removed that reference, since it's not useful anymore.

I also reflowed the text to 80 chars, to be consistent with the rest of the document :)

8 years agoRemove reference of Rust 1.11.0 release date in the FAQ
Pietro Albini [Sun, 4 Sep 2016 19:56:05 +0000 (21:56 +0200)]
Remove reference of Rust 1.11.0 release date in the FAQ

This commit also reflows the text after removing the reference.

8 years agoEmpty commit to trigger Travis build of rustc-macro
David Tolnay [Sun, 4 Sep 2016 15:25:30 +0000 (08:25 -0700)]
Empty commit to trigger Travis build of rustc-macro

8 years agoprepare for cargo for mips and powerpc
Jorge Aparicio [Sun, 4 Sep 2016 00:45:18 +0000 (19:45 -0500)]
prepare for cargo for mips and powerpc

with these changes I can cross compile Cargo for these targets:

- mips-unknown-linux-gnu
- mipsel-unknown-linux-gnu
- powerpc-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- powerpc64el-unknown-linux-gnu

using these commands:

```
$ ./.travis.install.deps.sh
$ ./configure --local-rust-root=$(pwd)/rustc --enable-nightly --target=$TARGET
$ make
```

in Ubuntu 16.04 using the standard cross toolchains

8 years agoAuto merge of #3068 - binarybirchtree:generalize-error-message, r=alexcrichton
bors [Sat, 3 Sep 2016 17:29:20 +0000 (10:29 -0700)]
Auto merge of #3068 - binarybirchtree:generalize-error-message, r=alexcrichton

Generalize error message used by both `cargo package` and `cargo publish`.

Resolves issue #3061.

This pull request updates the wording of the error message in question to be applicable to both `cargo package` and `cargo publish`, and adds a test case for the example in the issue description.

8 years agoGeneralize error message used by both `cargo package` and `cargo publish`.
Binary Birch Tree [Sat, 3 Sep 2016 01:05:26 +0000 (21:05 -0400)]
Generalize error message used by both `cargo package` and `cargo publish`.

8 years agoExplicitly bind Some(false)
David Tolnay [Thu, 1 Sep 2016 21:17:42 +0000 (14:17 -0700)]
Explicitly bind Some(false)

8 years agoAuto merge of #3060 - rillian:package_path_deps, r=alexcrichton
bors [Thu, 1 Sep 2016 19:51:44 +0000 (12:51 -0700)]
Auto merge of #3060 - rillian:package_path_deps, r=alexcrichton

Reject path-based dependencies in `cargo package`

`cargo publish` will complain if a package manifest contains a path, rather than registry+version-based dependency. Make `cargo package` do the same so that issue is caught sooner in developer workflow.

8 years agoAuto merge of #3063 - Wilfred:patch-1, r=alexcrichton
bors [Thu, 1 Sep 2016 18:49:31 +0000 (11:49 -0700)]
Auto merge of #3063 - Wilfred:patch-1, r=alexcrichton

Clarify wording: this restriction is not just libraries

I found the previous wording a little confusing (see [discussion on users.rust-lang.org](https://users.rust-lang.org/t/uploading-binary-packages-not-libraries-to-crates-io/7072)).

Since the section heading specifically refers to libraries, I was puzzled that crates.io rejected my binary package with wildcard dependencies (plus a Cargo.lock file). I think this wording is clearer, let me know what you think.

Ideally we'd also say the reasoning behind rejecting wildcard dependencies for binary crates, but I don't know what the reasoning is.

8 years agoTest a crate that is both a plugin and a proc macro
David Tolnay [Thu, 1 Sep 2016 17:42:23 +0000 (10:42 -0700)]
Test a crate that is both a plugin and a proc macro

8 years agoTest for rustc-macro
David Tolnay [Thu, 1 Sep 2016 17:29:24 +0000 (10:29 -0700)]
Test for rustc-macro

8 years agoAuto merge of #3065 - mbrock:master, r=alexcrichton
bors [Thu, 1 Sep 2016 17:12:15 +0000 (10:12 -0700)]
Auto merge of #3065 - mbrock:master, r=alexcrichton

doc: mention feature toggling in "Specifying deps"

Basically copies info that was already on another page.

8 years agodoc: mention feature toggling in "Specifying deps"
Mikael Brockman [Thu, 1 Sep 2016 15:53:45 +0000 (18:53 +0300)]
doc: mention feature toggling in "Specifying deps"

8 years agoLinewrap the error message from check_metadata.
Ralph Giles [Thu, 1 Sep 2016 00:04:29 +0000 (17:04 -0700)]
Linewrap the error message from check_metadata.

This lets test result expected output pass the long-line style check.

8 years agoMacros 1.1
David Tolnay [Thu, 1 Sep 2016 04:01:36 +0000 (21:01 -0700)]
Macros 1.1

8 years agoClarify wording: this restriction is not just libraries
Wilfred Hughes [Thu, 1 Sep 2016 03:25:07 +0000 (23:25 -0400)]
Clarify wording: this restriction is not just libraries

8 years agoVerify `cargo package` rejects path dependencies.
Ralph Giles [Wed, 31 Aug 2016 23:13:26 +0000 (16:13 -0700)]
Verify `cargo package` rejects path dependencies.

Port of the equivalent test from the `cargo publish` command.

8 years agoCheck for path dependencies.
Ralph Giles [Wed, 31 Aug 2016 23:11:33 +0000 (16:11 -0700)]
Check for path dependencies.

Port registry::verify_dependencies to the `cargo package`
command to perform the local portion of that check. It
looks like the package operation doesn't generally make
reference to the registry, so skip variant-origin checks
until publish time.

8 years agoAuto merge of #3038 - esclear:master, r=alexcrichton
bors [Wed, 31 Aug 2016 18:34:48 +0000 (11:34 -0700)]
Auto merge of #3038 - esclear:master, r=alexcrichton

Add --all-features flag to cargo

As (more or less) requested in #1173 I added a `--all-features` flag to cargo that builds all available features.

I hope I documented it in all the right places.

If there's something weird or wrong, please give me a heads up.

8 years agoAdd --all-features flag to cargo
Daniel Albert [Wed, 31 Aug 2016 17:03:26 +0000 (19:03 +0200)]
Add --all-features flag to cargo

8 years agoMerge pull request #3055 from rust-lang/revert-3054-simplify
Alex Crichton [Mon, 29 Aug 2016 16:30:37 +0000 (09:30 -0700)]
Merge pull request #3055 from rust-lang/revert-3054-simplify

Revert "Replace for loop with iterators"

8 years agoRevert "Replace for loop with iterators"
Alex Crichton [Mon, 29 Aug 2016 16:30:14 +0000 (09:30 -0700)]
Revert "Replace for loop with iterators"

8 years agoMerge pull request #3054 from matklad/simplify
Alex Crichton [Mon, 29 Aug 2016 16:29:58 +0000 (09:29 -0700)]
Merge pull request #3054 from matklad/simplify

Replace for loop with iterators

8 years agoReplace for loop with iterators
Aleksey Kladov [Mon, 29 Aug 2016 07:34:32 +0000 (10:34 +0300)]
Replace for loop with iterators

8 years agoAuto merge of #3050 - nbaksalyar:configure-fix, r=alexcrichton
bors [Sun, 28 Aug 2016 19:02:39 +0000 (12:02 -0700)]
Auto merge of #3050 - nbaksalyar:configure-fix, r=alexcrichton

Fix POSIX shell in configure script (support Illumos & Solaris)

This patch provides the same fix that is applied for the `configure` script in rustc:
https://github.com/rust-lang/rust/blob/master/configure#L3-L9. It is required because `#!/bin/sh` is not Bash/POSIX-compatible on Solaris and its derivatives by default.

This change was previously discussed there: https://github.com/rust-lang/rust/pull/28589.

8 years agoAuto merge of #3051 - matklad:ws-metadata, r=alexcrichton
bors [Sun, 28 Aug 2016 18:01:30 +0000 (11:01 -0700)]
Auto merge of #3051 - matklad:ws-metadata, r=alexcrichton

`cargo metadata` works with workspaces

Closes #3003

8 years ago`cargo metadata` works with workspaces
Aleksey Kladov [Sun, 28 Aug 2016 12:10:27 +0000 (15:10 +0300)]
`cargo metadata` works with workspaces

8 years agoFix POSIX shell in the configure script
Nikita Baksalyar [Thu, 16 Jun 2016 05:25:18 +0000 (05:25 +0000)]
Fix POSIX shell in the configure script

8 years agoAuto merge of #3047 - alexcrichton:update-libz, r=alexcrichton
bors [Fri, 26 Aug 2016 21:43:13 +0000 (14:43 -0700)]
Auto merge of #3047 - alexcrichton:update-libz, r=alexcrichton

Update libz-sys to 1.0.6

Fixes a build error on OSX

Closes #3037

8 years agoUpdate libz-sys to 1.0.6
Alex Crichton [Fri, 26 Aug 2016 21:42:40 +0000 (14:42 -0700)]
Update libz-sys to 1.0.6

Fixes a build error on OSX

Closes #3037

8 years agoAuto merge of #3040 - matklad:rootless-readlockfile, r=alexcrichton
bors [Fri, 26 Aug 2016 19:48:17 +0000 (12:48 -0700)]
Auto merge of #3040 - matklad:rootless-readlockfile, r=alexcrichton

Don't use current package when reading lockfile

Looks like this `default` thing is basically a hack, which is fired when the lockfile references some package which is no longer present. That is, if I remove `default` and just `unwrap` source id, the only test which fails is `git_with_lockfile` because it has a typo in the lockfile.

So I've just changed the `default` to some dummy path. Perhaps a more correct solution would be to ignore such packages completely when loading lockfile.

8 years agoAuto merge of #3044 - jeandudey:unused-code, r=alexcrichton
bors [Fri, 26 Aug 2016 15:56:44 +0000 (08:56 -0700)]
Auto merge of #3044 - jeandudey:unused-code, r=alexcrichton

Remove unused macro (configure_shell)

Also i've removed some unused lints on sha256.rs

8 years agoRemove unused macro (configure_shell)
Jean Pierre Dudey [Fri, 26 Aug 2016 12:01:07 +0000 (08:01 -0400)]
Remove unused macro (configure_shell)

Also i've removed some unused lints on sha256.rs

8 years agoRefactor EncodableResolve::into_resolve
Aleksey Kladov [Fri, 26 Aug 2016 09:34:17 +0000 (12:34 +0300)]
Refactor EncodableResolve::into_resolve

8 years agoAuto merge of #3039 - matklad:test-lockfiles, r=alexcrichton
bors [Thu, 25 Aug 2016 17:44:25 +0000 (10:44 -0700)]
Auto merge of #3039 - matklad:test-lockfiles, r=alexcrichton

Simplify lockfile tests

Use project builder to create a file and an extension function to read it.

8 years agoSimplify lockfile tests
Aleksey Kladov [Thu, 25 Aug 2016 08:34:25 +0000 (11:34 +0300)]
Simplify lockfile tests

8 years agoDon't use current package when reading lockfile
Aleksey Kladov [Thu, 25 Aug 2016 10:10:45 +0000 (13:10 +0300)]
Don't use current package when reading lockfile

8 years agoAuto merge of #3021 - alexcrichton:test-release-panic-abort, r=brson
bors [Tue, 23 Aug 2016 22:02:37 +0000 (15:02 -0700)]
Auto merge of #3021 - alexcrichton:test-release-panic-abort, r=brson

Fix transitive doctests panic=abort

Ensure that when we compile doctested libraries or examples we use the same
panic mode as the rest of the tests, namely ignoring panic=abort b/c libtest
isn't compiled with panic=abort.

Closes #3017

8 years agoAuto merge of #3031 - matklad:lockfile-test, r=alexcrichton
bors [Tue, 23 Aug 2016 20:57:48 +0000 (13:57 -0700)]
Auto merge of #3031 - matklad:lockfile-test, r=alexcrichton

Lockfile test

8 years agoRegression test for lockfile format
Aleksey Kladov [Mon, 22 Aug 2016 23:59:31 +0000 (02:59 +0300)]
Regression test for lockfile format

8 years agoUpdate rust-installer
Brian Anderson [Tue, 23 Aug 2016 00:40:49 +0000 (00:40 +0000)]
Update rust-installer

8 years agoAuto merge of #3029 - matklad:workspace-overrides, r=alexcrichton
bors [Mon, 22 Aug 2016 16:07:04 +0000 (09:07 -0700)]
Auto merge of #3029 - matklad:workspace-overrides, r=alexcrichton

Don't special case root package for overrides

Hi! What is the expected behavior of path overrides and workspaces? There are some [tests] for this, but looks like they don't actually test the behavior: this commit removes special casing of the root package, but `override_self` still passes. I see two options:

1. Allow overriding of the workspace members as usual. This amounts to removing that `filter`

2. Ignore overriding of the workspace members.

In any case, I think it would be nice to add a test which overrides local package to some other package to make sure that test does not pass simply because the package and its override are in fact the same.

[tests]: https://github.com/rust-lang/cargo/blob/master/tests/path.rs#L599-L679

8 years agoDon't special case root package for overrides
Aleksey Kladov [Mon, 22 Aug 2016 12:07:18 +0000 (15:07 +0300)]
Don't special case root package for overrides

8 years agoAuto merge of #3026 - whitequark:patch-1, r=alexcrichton
bors [Sun, 21 Aug 2016 17:37:40 +0000 (10:37 -0700)]
Auto merge of #3026 - whitequark:patch-1, r=alexcrichton

doc: fix platform-specific definitions section

Right now the section seems to imply that using cfg(target_pointer_width = "32")
is an acceptable way to detect whether the crate should be built for x86.

8 years agoForward compatibility with rootless lockfiles
Aleksey Kladov [Sat, 20 Aug 2016 21:27:06 +0000 (00:27 +0300)]
Forward compatibility with rootless lockfiles

8 years agodoc: fix platform-specific definitions section
whitequark [Sat, 20 Aug 2016 17:41:37 +0000 (17:41 +0000)]
doc: fix platform-specific definitions section

Right now the section seems to imply that using cfg(target_pointer_width = "32")
is an acceptable way to detect whether the crate is built for x86.

8 years agoAuto merge of #3022 - alexcrichton:add-more-metadata, r=brson
bors [Fri, 19 Aug 2016 21:24:29 +0000 (14:24 -0700)]
Auto merge of #3022 - alexcrichton:add-more-metadata, r=brson

Add a temporary env var to enable hashes in filenames

For rustbuild we need the hashes to exist for all deps, even if they're path
deps, because we care about the actual file names. For example we don't want to
install /usr/lib/libstd.so!

This adds a "secret" environment variable, `__CARGO_DEFAULT_LIB_METADATA` which
re-enables the old behavior of just putting hashes in filenames.

Closes #3005

8 years agoAdd a temporary env var to enable hashes in filenames
Alex Crichton [Fri, 19 Aug 2016 20:36:32 +0000 (13:36 -0700)]
Add a temporary env var to enable hashes in filenames

For rustbuild we need the hashes to exist for all deps, even if they're path
deps, because we care about the actual file names. For example we don't want to
install /usr/lib/libstd.so!

This adds a "secret" environment variable, `__CARGO_DEFAULT_LIB_METADATA` which
re-enables the old behavior of just putting hashes in filenames.

Closes #3005

8 years agoAuto merge of #3020 - tshepang:rustfmt-cargo_doc, r=alexcrichton
bors [Fri, 19 Aug 2016 20:44:26 +0000 (13:44 -0700)]
Auto merge of #3020 - tshepang:rustfmt-cargo_doc, r=alexcrichton

rustfmt cargo_doc.rs

8 years agoFix transitive doctests panic=abort
Alex Crichton [Fri, 19 Aug 2016 20:25:13 +0000 (13:25 -0700)]
Fix transitive doctests panic=abort

Ensure that when we compile doctested libraries or examples we use the same
panic mode as the rest of the tests, namely ignoring panic=abort b/c libtest
isn't compiled with panic=abort.

Closes #3017

8 years agorustfmt cargo_doc.rs
Tshepang Lekhonkhobe [Fri, 19 Aug 2016 20:18:57 +0000 (22:18 +0200)]
rustfmt cargo_doc.rs

8 years agoAuto merge of #3019 - matklad:rootless-resolve_ws, r=alexcrichton
bors [Fri, 19 Aug 2016 19:02:25 +0000 (12:02 -0700)]
Auto merge of #3019 - matklad:rootless-resolve_ws, r=alexcrichton

Don't require current package in resolve_ws

8 years agoDon't require current package in resolve_ws
Aleksey Kladov [Fri, 19 Aug 2016 18:00:21 +0000 (21:00 +0300)]
Don't require current package in resolve_ws

8 years agoAuto merge of #3018 - Jake-Shadle:master, r=steveklabnik
bors [Fri, 19 Aug 2016 16:35:26 +0000 (09:35 -0700)]
Auto merge of #3018 - Jake-Shadle:master, r=steveklabnik

docs(manifest): Update crate-types with `cdylib`

Rust 1.11 now supports the `cdylib` crate-type, so added it to the list of options.

Also added a link to the [Linkage](https://doc.rust-lang.org/reference.html#linkage) section in the Rust Reference manual which explains what the different crate types actually mean in practice....though right now it actually doesn't explain what a `cdylib` is, specifically. ;)

8 years agodocs(manifest): Remove 1.11 reference
Jake Shadle [Fri, 19 Aug 2016 16:32:22 +0000 (18:32 +0200)]
docs(manifest): Remove 1.11 reference

8 years agodocs(manifest): Update crate-types with `cdylib`
Jake Shadle [Fri, 19 Aug 2016 16:21:43 +0000 (18:21 +0200)]
docs(manifest): Update crate-types with `cdylib`

Rust 1.11 now supports the `cdylib` crate-type, so added it to the
list of options. Also added a link to the
[Linkage](https://doc.rust-lang.org/reference.html#linkage) section
in the Rust Reference manual which explains what the different
crate types actually mean in practice....though right now it actually
doesn't explain what a `cdylib` is, specifically. ;)

8 years agoAuto merge of #3013 - matklad:rootless-resolve, r=alexcrichton
bors [Thu, 18 Aug 2016 19:54:46 +0000 (12:54 -0700)]
Auto merge of #3013 - matklad:rootless-resolve, r=alexcrichton

Rootless resolve

This should help to make more commands applicable to the whole workspace. Though there is apparently a ton of work to make `cargo metadata` work with workspaces.

This does not support rootless lockfiles. Will do this in a separate PR.

8 years agoRemove root field from Resolve.
Aleksey Kladov [Wed, 17 Aug 2016 22:01:19 +0000 (01:01 +0300)]
Remove root field from Resolve.

8 years agoDon't use Resolve.root when checking for cycles
Aleksey Kladov [Wed, 17 Aug 2016 20:31:29 +0000 (23:31 +0300)]
Don't use Resolve.root when checking for cycles

8 years agoDon't use Resolve.root in cargo metadata
Aleksey Kladov [Wed, 17 Aug 2016 23:34:20 +0000 (02:34 +0300)]
Don't use Resolve.root in cargo metadata

8 years agoAdd current_package to the Context
Aleksey Kladov [Wed, 17 Aug 2016 19:20:09 +0000 (22:20 +0300)]
Add current_package to the Context

8 years agoAuto merge of #3015 - tshepang:match-block-not-needed, r=alexcrichton
bors [Thu, 18 Aug 2016 15:47:35 +0000 (08:47 -0700)]
Auto merge of #3015 - tshepang:match-block-not-needed, r=alexcrichton

match block not needed