[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-15 Thread Steve Langasek
rustc has been promoted without a need to promote cargo; and the tasks
on the other packages are marked incomplete (maybe they should be
closed?).  Nothing further here for ubuntu-archive to do at the moment,
so unsubscribing.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-11 Thread Steve Langasek
(binaries will be re-demoted as necessary)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-11 Thread Steve Langasek
Override component to main
rustc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy: universe/misc -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/libs/optional/100% -> main
libstd-rust-1.58 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/libs/optional/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/libdevel/extra/100% -> main
libstd-rust-dev 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/libdevel/extra/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/devel/optional/100% -> main
rust-all 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/devel/optional/100% -> main
rust-clippy 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/devel/optional/100% -> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: universe/doc/extra/100% 
-> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: universe/doc/extra/100% 
-> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: universe/doc/extra/100% 
-> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: universe/doc/extra/100% 
-> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/doc/extra/100% -> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/doc/extra/100% -> main
rust-doc 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: universe/doc/extra/100% 
-> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/devel/extra/100% -> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/devel/extra/100% -> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/devel/extra/100% -> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: universe/devel/extra/100% 
-> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/devel/extra/100% -> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/devel/extra/100% -> main
rust-gdb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy i386: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy ppc64el: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy riscv64: 
universe/devel/extra/100% -> main
rust-lldb 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy s390x: 
universe/devel/extra/100% -> main
rust-src 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy amd64: 
universe/devel/extra/100% -> main
rust-src 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy arm64: 
universe/devel/extra/100% -> main
rust-src 1.58.1+dfsg1~ubuntu1-0ubuntu2 in jammy armhf: 
universe/devel/extra/100% -> main

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-11 Thread Simon Chopin
The seed has been updated, we now need an AA to promote the following
binaries: libstd-rust-1.58 libstd-rust-dev rustc

** Changed in: rustc (Ubuntu)
   Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Re: [Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-04 Thread Steve Beattie
On Mon, Apr 04, 2022 at 09:31:39AM -, Simon Chopin wrote:
> We also have a provisional ACK from the security team (I'll keep working
> on surfacing the vendored deps data in a better way than Cargo.lock!).
> 
> The seed changes are in a MP at
> https://code.launchpad.net/~schopin/ubuntu-seeds/+git/ubuntu-
> seeds/+merge/416688
> 
> @paelzer could you confirm that we can move ahead, and perhaps review
> the seed change?

From the Ubuntu Security Team's perspective, ACK for moving ahead.

Thanks!

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-04 Thread Simon Chopin
Now that the new rustc has migrated from -proposed, I'd like to move
forward with the rustc MIR, as I believe all the issues raised during
its review (#3) have been addressed one way or the other, see #7 and
subsequent updates since.

We also have a provisional ACK from the security team (I'll keep working
on surfacing the vendored deps data in a better way than Cargo.lock!).

The seed changes are in a MP at
https://code.launchpad.net/~schopin/ubuntu-seeds/+git/ubuntu-
seeds/+merge/416688

@paelzer could you confirm that we can move ahead, and perhaps review
the seed change?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-04 Thread Simon Chopin
** Changed in: dh-cargo (Ubuntu)
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo, dh-cargo

2022-04-04 Thread Simon Chopin
** Description changed:

  [Availability]
  The packages rustc and cargo are already in Ubuntu universe.
  The packages build for the architectures they are designed to work on,
  and are also built on platform with lesser upstream support, see
  https://doc.rust-lang.org/nightly/rustc/platform-support.html for details.
  
  They currently build and works for architectures:
    * amd64
    * arm64
    * armhf
    * i386
    * ppc64el
    * riscv64
    * s390x
  
  Link to packages:
  
  https://launchpad.net/ubuntu/+source/rustc
  https://launchpad.net/ubuntu/+source/cargo
+ https://launchpad.net/ubuntu/+source/dh-cargo
  
  Upcoming version:
  
https://launchpad.net/~schopin/+archive/ubuntu/rustc-mir/+sourcepub/13264343/+listing-archive-extra
  
- 
  [Rationale]
  The packages rustc and cargo are required in Ubuntu main as the Rust 
programming
  language is gaining in popularity, and those two packages are, respectively, 
its
- main compiler implementation and its dedicated build tool (and dependency 
manager).
+ main compiler implementation and its dedicated build tool (and dependency 
manager). dh-cargo is the standard packaging helper for Rust-based packages.
  
  There are a few packages in main already that have partially switched to Rust
  as their implementation language, and so rustc and cargo will be needed to 
keep
  us in sync with their upstream. See for instance
  https://bugs.launchpad.net/ubuntu/+source/mdevctl/+bug/1942394 and
  https://lists.debian.org/debian-python/2021/12/msg0.html
  (python-cryptography is in main)
  
  Note that the huge majority of our users will not use these packages, their
  purpose is to be a build-dependency for other packages. In particular, it is
  not particularly expected at this stage that those of our users that are Rust
  developers, which usually rely on their toolchain being managed in their $HOME
  by the `rustup` tool.
  
  [Security]
  cargo and rustc had 19 recorded security issues in the past, mostly in the 
Rust standard library
  (1 affecting cargo):
  
  
https://nvd.nist.gov/vuln/search/results?form_type=Advanced_type=overview_type=all=false_vendor=cpe%3A%2F%3Arust-
  lang_product=cpe%3A%2F%3A%3Arust
  
  All issues are usually handled promptly by the Rust team. However, the fixes
  are rarely (if ever) backported to previous releases besides an occasional
  1.X.1 point release for the latest stable.
  
  There is an official Rust Security working group that curates a database of 
security
  issues within the Rust ecosystem, including rustc/cargo:
  
  https://github.com/rustsec/advisory-db
  
+ There are no history of known security issues with dh-cargo.
+ 
  - no `suid` or `sgid` binaries
  - no executables in `/sbin` and `/usr/sbin`
  - Package does not install services, timers or recurring jobs
  - Packages does not open privileged ports (ports < 1024)
  - Packages does not contain extensions to security-sensitive software
  (filters, scanners, plugins, UI skins, ...)
  
- Note however that in typical use, building a project with cargo+rustc involves
+ Note however that in typical use outside of packaging, building a project 
with cargo+rustc involves
  executing code that has been downloaded from crates.io: cargo builds and 
executes
  the `build.rs` file for any pre-compilation task (a bit like a Makefile), and 
any use
  of a proc macro dependency basically implies running arbitrary code (the 
macro) within
  the execution context of rustc.
  
  [Quality assurance - function/usage]
  The packages work well right after install, one can easily create a simple 
Rust project
  and run it.
  
  [Quality assurance - maintenance]
  The packages do not deal with exotic hardware we cannot support
  
  [Quality assurance - testing]
- The packages both run a test suite on build time. However, the rustc test 
suite
+ The cargo and rustc packages both run a test suite on build time. However, 
the rustc test suite
  does NOT make the build fail as of 1.57. The reason is that there are always 
a few tests that fail, and it was a tradeoff made due to limited resources. 
Please note that Debian has a strategy of only failing the build if there are 
*too many* errors. As the Foundations team commits more resources on this 
toolchain, we've reverted back to Debian's system and are planning to making 
the testing story more rigorous.
  
  Neither package has any autopkgtests in the versions currently in the
  release pocket. The upcoming rustc upload will have an autopkgtest
  consisting of rebuilding itself. Debian's cargo package now has a
  similar autopkgtest, that will be cherry-picked in the next cargo
  upload.
  
+ dh-cargo has neither build-time tests nor autopkgtests.
+ 
  [Quality assurance - packaging]
- debian/watch is present and works
+ debian/watch is present and works, dh-cargo is a native package.
  
  rustc yields quite a bit of lintian output, but they seem mostly harmless.
  https://lintian.debian.org/sources/rustc
  
  There are 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-04-04 Thread Simon Chopin
** Also affects: dh-cargo (Ubuntu)
   Importance: Undecided
   Status: New

** Summary changed:

- [MIR] rustc, cargo
+ [MIR] rustc, cargo, dh-cargo

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo, dh-cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-24 Thread Simon Chopin
Regarding the Suggests downgrade, I filed an FFe before uploading:
https://bugs.launchpad.net/ubuntu/+source/rustc/+bug/1966200

Regarding the Vendored-Copy field, I opened a discussion on the MIR
rules changes directly as I'd rather have the thing hashed out before
changing the rustc packaging. Be assured though that I will follow up on
it for rustc: https://github.com/cpaelzer/ubuntu-
mir/pull/3/files#r833109362

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-22 Thread Christian Ehrhardt 
> @paelzer, assuming rustc gets to main, do we need to downgrade the Recommends:
> cargo into a Suggests?

Yes if Cargo isn't ready for promotion to main yet you can't promote
anything that has a Recommends/Depends onto it.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-21 Thread Simon Chopin
I think the XS-Vendored-Copy or whatever should be split out onto a ML
thread so that we can work on something that's equally applicable for
the Go ecosystem, even if retroactively. I'll take care of it soon.

I'm preparing an upload for rustc that fixes the crossbeam-utils CVE in
*both* copies, this time. However, I'd rather not do multiple uploads,
so I need a clarification from paelzer:

@paelzer, assuming rustc gets to main, do we need to downgrade the
Recommends: cargo into a Suggests?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Re: [Bug 1957932] Re: [MIR] rustc, cargo

2022-03-15 Thread Steve Beattie
On Tue, Mar 15, 2022 at 05:14:00PM -, Simon Chopin wrote:
> Before even starting to address the various points further, I must ask
> whether they're showstopper for the *rustc* MIR.

> I ask because some of the concerns raised here are irrelevant for rustc
> itself. For instance, the X-Cargo-Built-Using is not only not used by
> the rustc packaging at all, it would also not be used by Rust packages
> entering main since, under the proposed amended rules, those packages
> would first vendor all their dependencies.

Ah, I had missed this piece from the conversation on the github
MR. That places more emphasis on making sure Cargo.lock at a minimum
is included. Long term, it would be ideal to have these in package
metadata as X-Embedded-Copies or whatever, but ultimately that's
a feature that would be generally useful across the distro and in
Debian, not just in the Rust portions of it.

For X-Cargo-Built-Using vs Built-Using in dh-cargo, the Security team
can compensate one way or the other, we just need to know that, no,
Built-Using not going to land in jammy. With the intent to fully vendor
things in main, it's less important (from our team's perspective)
that this gets resolved one way or the other, but I note that we are
not the only ones with an opinion here.

One other consideration is that organizations and governments are
pushing really strongly for Software Bills of Materials (SBOMs) so
the more proactive we are about collecting needed information in a
structured, easily consumable way, the more straightforward it will
be to satisfy those requirements.

> We intend to implement all tooling changes that are required for a
> wider Rust ecosystem support in main, but this starts with having the
> compiler!

The reason I ask about ecosystem supportability here is because this
is likely the sole point where it's even in bounds for an MIR security
audit. The 'dh-cargo' package as a "build-time only" tool means there
is no requirement for it to go into main, and thus will likely never
receive an MIR. When it comes time to review cargo, the argument will
then be "Of what use is having rustc in main without cargo?" Individual
applications or libraries will have reviews focused on themselves.

The reality is we accepted Go-lang into main with a hypothetical plan
to support its ecosystem security-wise, but has been difficult to
turn into something real. My concern is that we're about to do the
same for Rust, despite our broad general approval of the language.

[There are also other constraints within Canonical that cause me
to be thinking about the supportability of the ecosystem as a whole
beyond what gets integrated into main, but you are correct that they
are out of bounds for an MIR.]

Anyhow. I have concerns about supporting this ecosystem, but the
provisional ACK is already there.

Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Re: [Bug 1957932] Re: [MIR] rustc, cargo

2022-03-15 Thread Simon Chopin
Before even starting to address the various points further, I must ask
whether they're showstopper for the *rustc* MIR.

I ask because some of the concerns raised here are irrelevant for rustc
itself. For instance, the X-Cargo-Built-Using is not only not used by
the rustc packaging at all, it would also not be used by Rust packages
entering main since, under the proposed amended rules, those packages
would first vendor all their dependencies.

We intend to implement all tooling changes that are required for a
wider Rust ecosystem support in main, but this starts with having the
compiler!

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-15 Thread Steve Beattie
On Fri, Mar 11, 2022 at 10:17:47AM -, Simon Chopin wrote:
> @sbeattie there's some context on those various fields in
> https://github.com/cpaelzer/ubuntu-mir/pull/3

Thanks for this.

> Basically X-Cargo-Built-Using should be folded into Built-Using.

I agree with this, but is there a plan to land this in jammy?
If not, our tooling needs to compensate.

> There has been no talk of automating detection of packages that ought
> to have those fields, but that does sound like a good idea.

I think something needs to be in place, or there runs the risk of things
needing to pick up updates that don't get them applied.

> However, in the case of rustc and any future main package built using
> Rust, there are going to be vendored dependencies that are not packaged
> at all. It doesn't seem like a good idea to me to document those in the
> same fields as the dependencies that are separately packaged but
> statically linked, which is why I proposed shipping the Cargo.lock file.
> 
> If you'd prefer, we could instead ship it in another field, maybe
> X-Vendored-Sources (as mentioned before, Built-Using seems out of scope
> for that).

It would be great if we could get this information as a field in the
Packages info (modulo concerns about size explosion as the set of
packaged rust software expands). I agree that it is not appropriate
for Built-Using; X-Vendored-Sources sounds great (if only we could
get this incorporated across more language ecosystems!). It would
probably be beneficial to have both the field in the packages metadata
list as well as the Cargo.lock file, to be able to identify which
crate versions were incorporated in superseded versions, if need be.

> For instance, using this small Python snippet, I get this for
> the Cargo.lock file shipped in rustc (Jammy):
> 
> $ zcat Cargo.lock.gz | python3 -c "import toml; import sys; print(',
> '.join(f\"{p['name']}/{p['version']}\" for p in
> toml.load(sys.stdin)['package'] if 'source' in p))"

Thanks for this, lots to chew on here. Quite a few rust crates have
at least two versions of themselves in the list, which based on reading,
seems to be normal in the ecosystem, but then leads to issues like:

  crossbeam-utils/0.7.2
  crossbeam-utils/0.8.5

while the latter was patched to address CVE-2022-23639 in the current
jammy packaging, the former (in vendor/crossbeam-utils-0.7.2) was not.
While upstream crossbeam-utils yanked all of the 0.8.x versions < 0.8.7,
but there doesn't appear to be a fixed version of 0.7.x from upstream.
That's somewhat concerning about the ecosystem as a whole.

> The 'if source in p' statement filters out crates that are internal to
> rustc. Surprinsingly, the remaining rustc-* crates are separately
> packaged forks of existing crates.

That is also less than ideal.

> Would the security team feel more comfortable with this?

Yes, I think so.

Thanks!


** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2022-23639

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-11 Thread Simon Chopin
@sbeattie there's some context on those various fields in
https://github.com/cpaelzer/ubuntu-mir/pull/3

Basically X-Cargo-Built-Using should be folded into Built-Using. There
has been no talk of automating detection of packages that ought to have
those fields, but that does sound like a good idea.

However, in the case of rustc and any future main package built using
Rust, there are going to be vendored dependencies that are not packaged
at all. It doesn't seem like a good idea to me to document those in the
same fields as the dependencies that are separately packaged but
statically linked, which is why I proposed shipping the Cargo.lock file.

If you'd prefer, we could instead ship it in another field, maybe
X-Vendored-Sources (as mentioned before, Built-Using seems out of scope
for that). For instance, using this small Python snippet, I get this for
the Cargo.lock file shipped in rustc (Jammy):

$ zcat Cargo.lock.gz | python3 -c "import toml; import sys; print(',
'.join(f\"{p['name']}/{p['version']}\" for p in
toml.load(sys.stdin)['package'] if 'source' in p))"

addr2line/0.16.0, adler/1.0.2, aho-corasick/0.7.18, ammonia/3.1.0,
annotate-snippets/0.8.0, ansi_term/0.11.0, ansi_term/0.12.1,
anyhow/1.0.45, array_tool/1.0.3, arrayvec/0.7.2, atty/0.2.14,
autocfg/1.0.1, bitflags/1.3.2, block-buffer/0.7.3, block-buffer/0.9.0,
block-padding/0.1.5, bstr/0.2.13, byte-tools/0.3.1, bytecount/0.6.2,
byteorder/1.3.4, camino/1.0.5, cargo-platform/0.1.2,
cargo_metadata/0.12.0, cargo_metadata/0.14.1, cc/1.0.71, cfg-if/0.1.10,
cfg-if/1.0.0, chalk-derive/0.55.0, chalk-engine/0.55.0, chalk-ir/0.55.0,
chalk-solve/0.55.0, chrono/0.4.19, clap/2.33.3, cmake/0.1.44,
colored/2.0.0, compiler_builtins/0.1.53, compiletest_rs/0.7.1, cpuid-
bool/0.1.2, crc32fast/1.2.1, crossbeam-channel/0.5.1, crossbeam-
deque/0.7.4, crossbeam-deque/0.8.1, crossbeam-epoch/0.8.2, crossbeam-
epoch/0.9.5, crossbeam-queue/0.2.3, crossbeam-utils/0.7.2, crossbeam-
utils/0.8.5, cstr/0.2.8, ctor/0.1.15, datafrog/2.0.1, derive-new/0.5.8,
diff/0.1.12, difference/2.0.0, digest/0.8.1, digest/0.9.0, dirs/2.0.2,
dirs-next/2.0.0, dirs-sys/0.3.6, dirs-sys-next/0.1.2, dlmalloc/0.2.3,
either/1.6.1, elasticlunr-rs/2.3.9, ena/0.14.0, env_logger/0.7.1,
env_logger/0.8.4, expect-test/1.0.1, fake-simd/0.1.2, filetime/0.2.15,
fixedbitset/0.2.0, flate2/1.0.22, fnv/1.0.7, form_urlencoded/1.0.1,
fortanix-sgx-abi/0.3.3, fs-err/2.5.0, futf/0.1.4, generic-array/0.12.4,
generic-array/0.14.4, getopts/0.2.21, getrandom/0.1.14, getrandom/0.2.0,
gimli/0.25.0, glob/0.3.0, globset/0.4.5, globwalk/0.8.1, gsgdt/0.1.2,
handlebars/4.1.0, hashbrown/0.11.2, heck/0.3.3, hermit-abi/0.1.19,
hex/0.4.2, html5ever/0.25.1, humantime/1.3.0, humantime/2.0.1,
idna/0.2.3, if_chain/1.0.0, ignore/0.4.17, indexmap/1.7.0, indoc/1.0.3,
instant/0.1.12, itertools/0.9.0, itertools/0.10.1, itoa/0.4.8,
jobserver/0.1.24, jsonpath_lib/0.2.6, lazy_static/1.4.0, libc/0.2.107,
libm/0.1.4, lock_api/0.4.5, log/0.4.14, lzma-sys/0.1.16, mac/0.1.1,
macro-utils/0.1.3, maplit/1.0.2, markup5ever/0.10.0,
markup5ever_rcdom/0.1.0, matchers/0.0.1, matches/0.1.9, maybe-
uninit/2.0.0, md-5/0.9.1, mdbook/0.4.12, measureme/10.0.0, memchr/2.4.1,
memmap2/0.2.1, memoffset/0.5.5, memoffset/0.6.4, merge/0.1.0,
merge_derive/0.1.0, minifier/0.0.41, miniz_oxide/0.4.4, miow/0.3.7,
new_debug_unreachable/1.0.4, num-integer/0.1.43, num-traits/0.2.12,
num_cpus/1.13.0, object/0.26.2, odht/0.3.1, once_cell/1.8.0, opaque-
debug/0.2.3, opaque-debug/0.3.0, open/1.4.0, opener/0.5.0,
output_vt100/0.1.2, packed_simd_2/0.3.4, parking_lot/0.11.2,
parking_lot_core/0.8.5, pathdiff/0.2.0, percent-encoding/2.1.0, perf-
event-open-sys/1.0.1, pest/2.1.3, pest_derive/2.1.0,
pest_generator/2.1.3, pest_meta/2.1.3, petgraph/0.5.1, phf/0.8.0,
phf_codegen/0.8.0, phf_generator/0.8.0, phf_shared/0.8.0, pin-project-
lite/0.2.7, pkg-config/0.3.18, polonius-engine/0.13.0, ppv-lite86/0.2.8,
precomputed-hash/0.1.1, pretty_assertions/0.6.1, proc-macro-error/1.0.4,
proc-macro-error-attr/1.0.4, proc-macro2/1.0.32, psm/0.1.16, pulldown-
cmark/0.7.2, pulldown-cmark/0.8.0, punycode/0.4.1, quick-error/1.2.3,
quick-error/2.0.0, quine-mc_cluskey/0.2.4, quote/1.0.10, rand/0.7.3,
rand/0.8.4, rand_chacha/0.2.2, rand_chacha/0.3.0, rand_core/0.5.1,
rand_core/0.6.2, rand_hc/0.2.0, rand_hc/0.3.0, rand_pcg/0.2.1,
rand_xorshift/0.2.0, rand_xoshiro/0.6.0, rayon/1.5.1, rayon-core/1.9.1,
redox_syscall/0.2.10, redox_users/0.4.0, regex/1.5.4, regex-
automata/0.1.10, regex-syntax/0.6.25, remove_dir_all/0.5.3, rls-
data/0.19.1, rls-span/0.5.3, rustc-demangle/0.1.21, rustc-hash/1.1.0,
rustc-rayon/0.3.1, rustc-rayon-core/0.3.1, rustc-semver/1.1.0,
rustfix/0.5.1, rustfix/0.6.0, rustversion/1.0.5, ryu/1.0.5, same-
file/1.0.6, scoped-tls/1.0.0, scopeguard/1.1.0, semver/0.11.0,
semver/1.0.4, semver-parser/0.10.2, serde/1.0.130, serde_derive/1.0.130,
serde_json/1.0.69, sha-1/0.8.2, sha-1/0.9.1, sha2/0.9.1, sharded-
slab/0.1.4, shell-escape/0.1.5, shlex/1.0.0, siphasher/0.3.3,
smallvec/1.7.0, snap/1.0.5, 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-10 Thread Steve Beattie
> 'Built-Using' vs 'X-Cargo-Built-Using' dh-cargo behavior

So there is no plan to change this in dh-cargo? The tool the security
team has that queries Built-Using can be modified to use the alternate
field, if necessary, but we need to know if that's what we need to do.
Are the tools that help with library transitions in Ubuntu going to cope
with this?

> non-users of dh-cargo not emitting 'X-Cargo-Built-Using'

Is there a plan to deal with this? Some sort of britney / autopkgtest
check that could be added to flag these as needing to be addressed?
Otherewise, this makes it more difficult to discern what might need to
be rebuilt given an update to a given rust library.

I do appreciate the Cargo.lock packaging, that is helpful, though it
means neediing to unpack binary debs to gain access to them, rather than
merely accessing archive metadata for 'Built-Using' or 'X-Cargo-Built-
Using'.

Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-10 Thread Simon Chopin
@paelzer I'm not exactly sure of where we are in the status diagram for
rustc in the MIR. I put it as "In Progress" by default.

Given the conclusion in bug #1964098 as well as the various answers
brought in comments #7 and #10 I think I've addressed all comments. As I
believe rustc to be useful in the archive even in the absence of cargo,
as some build systems actually use it directly (e.g. meson), I've posted
a MP for the seed changes. I'll toggle it as up for reviews if you agree
with this: https://code.launchpad.net/~schopin/ubuntu-seeds/+git/ubuntu-
seeds/+merge/416688

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-10 Thread Launchpad Bug Tracker
** Merge proposal linked:
   
https://code.launchpad.net/~schopin/ubuntu-seeds/+git/ubuntu-seeds/+merge/416688

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-10 Thread Simon Chopin
** Changed in: rustc (Ubuntu)
   Status: Incomplete => Confirmed

** Changed in: rustc (Ubuntu)
   Status: Confirmed => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-08 Thread Simon Chopin
For reference:

https://bugs.launchpad.net/ubuntu/+source/rustc/+bug/1964098

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-03-01 Thread Simon Chopin
After sitting down with some members of the MIR team and an archive
admin, here's our plan for future rustc releases:

We'll go for versioned source packages, so that packages that are stuck
depending on older rustc versions for some reason can still work. To
avoid having too many versions entering the main archive though, we'll
upload all the releases to a PPA and will binary-copy the versions that
are required by one of the packages, e.g. Firefox. Once that version
hits the archive, we 'll upload a no-change version to ensure that the
package in the archive is reproducible. Essentially, we're doing a sort
of bootstrap for each version.

I still need to figure out the details of how to implement this without
breaking existing code, that'll likely be tomorrow's update.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-24 Thread Matthieu Clemenceau
@Steve Beattie,

I concur with Simon, the foundations team will backport llvm to 22.04 if
an updated rustc requires it.

Matthieu

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-24 Thread Simon Chopin
Built-Using is already used in all pure-Rust binaries, e.g. ripgrep.
However, it only stores the version of rustc itself. The non-vendored
libraries are currently recorded using the non-standard field 'X-Cargo-
Built-Using'. Sadly, this doesn't apply to all packages that currently
Build-Depend on rustc, only those that use the dh-cargo helper. src:0ad
for instance doesn't seem to record anything for that, nor does
src:cargo, ironically.

Furthermore, in the case of vendored dependencies, we've settled for
storing the "Cargo.lock" file which is a manifest of all the
dependencies of a given project with precise versioning. Currently for
rustc we ship it in /usr/share/doc/rustc/Cargo.lock

Regarding version bumps, it is worth noting that they already happen in
our other LTS versions. rustc 1.57 is indeed available in focal-updates
and bionic-updates. AIUI it's because of Firefox regularly needing a
newer version of rustc. Similarly, newer versions of LLVM are available
on older releases because of kernel and mesa requirements.

However, the versioned source name is a good point. On one hand it would
make sense because even though the rustc upstream tries their best not
to break existing code, breakage does occur from time to time, so
versioned rustc would make transitions easier. OTOH, rustc requires the
N-1 version to build (or itself), which would mean that we would have
the whole integer suite in the archive, which doesn't seem particularly
appealing to me given their 6-week cadence. I'll put it on Foundation's
agenda for the sprint next week.

I honestly cannot give you any expectations of how our handling of the
toolchain for 24.04 would be, as it will be shaped by the requirements
of the projects that will use it. I personally have some doubts that
we'll see *production* Rust code in our kernels for 24.04. I also
suspect that as the ecosystem matures we'll see less and less breaking
changes in rustc, as the long trail of unmaintained crates in crates.io
will calcify things a bit (they compile and run the tests for each crate
there for each release).

Thanks for the heads-up on the crossbeam issue, I'll update the affected
vendored version before uploading.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-23 Thread Steve Beattie
I reviewed rustc 1.57.0+dfsg1+llvm-0ubuntu2 as checked into jammy
(but also peeked briefly at 1.58.1+dfsg1~ubuntu1-0ubuntu1~ppa5
in Simon's ppa). This shouldn't be considered a full audit but
rather a quick gauge of maintainability, and this is a bit more
streamlined review than normal due to the nature of Rust.

Rust is a programming language and runtime environment that is
intended to be a modern systems language. In general, the Ubuntu
Security team views more widespread usage of Rust as a positive
thing; the primary drawback being, like Go before it, the choice
to static link everything makes security updates more challenging
for both the deliverer and users on limited bandwidth.

The Built-Using: mechanism at least gives us a chance to determine
what needs to be rebuilt when a rust library has a security
vulnerability that needs addressing. In order to get Built-Using:
applied to Rust applications in jammy, does this mean that every
Rust application needs at a minimum a no-change rebuild before
jammy is released? If so, is there a plan for that?

I'd like to ask what is the support expectation and commitment
from the Foundations team for the rust toolchain and the separated
out LLVM:

 - Is the expectation that version bumps of rust, possibly along
   with version bumps of LLVM necessary, will be brought back to
   22.04 LTS?

 - If so, does the source package need a versioned name, as done
   for other toolchains?

 - As more thing depend on rust either wholly or partially
   (e.g. the ongoing work on the Linux kernel), is there an
   expectation this will change for 24.04 LTS?

For CVE history, there are 21 CVEs in the security team's tracker
that affect Rust, 20 in the standard library. (There is also a
very recent additional issue that affects the vendored copy of
rust-crossbeam in the rustc source package.) Generally, upstream
looks responsive to security issues.

Given all the above, the Ubuntu Security provisionally acks rustc
for main, assuming the questions above can be answered.

** Changed in: rustc (Ubuntu)
 Assignee: Ubuntu Security Team (ubuntu-security) => (unassigned)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-23 Thread Simon Chopin
Rustc update: I plan on uploading rustc 1.58.1 to the archive tomorrow
before feature freeze, as I've identified the failing tests as being
failing ever since Impish, and not "mission-critical", as they are
related to debug info, which is IMO mostly for developers, making it out
of scope for this MIR :)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-16 Thread Simon Chopin
** Changed in: rustc (Ubuntu)
 Assignee: Simon Chopin (schopin) => Ubuntu Security Team (ubuntu-security)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-15 Thread Simon Chopin
** Description changed:

  [Availability]
  The packages rustc and cargo are already in Ubuntu universe.
  The packages build for the architectures they are designed to work on,
  and are also built on platform with lesser upstream support, see
  https://doc.rust-lang.org/nightly/rustc/platform-support.html for details.
  
  They currently build and works for architectures:
    * amd64
    * arm64
    * armhf
    * i386
    * ppc64el
    * riscv64
    * s390x
  
  Link to packages:
+ 
  https://launchpad.net/ubuntu/+source/rustc
  https://launchpad.net/ubuntu/+source/cargo
+ 
+ Upcoming version:
+ 
https://launchpad.net/~schopin/+archive/ubuntu/rustc-mir/+sourcepub/13264343/+listing-archive-extra
+ 
  
  [Rationale]
  The packages rustc and cargo are required in Ubuntu main as the Rust 
programming
  language is gaining in popularity, and those two packages are, respectively, 
its
  main compiler implementation and its dedicated build tool (and dependency 
manager).
  
  There are a few packages in main already that have partially switched to Rust
  as their implementation language, and so rustc and cargo will be needed to 
keep
  us in sync with their upstream. See for instance
  https://bugs.launchpad.net/ubuntu/+source/mdevctl/+bug/1942394 and
  https://lists.debian.org/debian-python/2021/12/msg0.html
  (python-cryptography is in main)
  
  Note that the huge majority of our users will not use these packages, their
  purpose is to be a build-dependency for other packages. In particular, it is
  not particularly expected at this stage that those of our users that are Rust
  developers, which usually rely on their toolchain being managed in their $HOME
  by the `rustup` tool.
  
  [Security]
  cargo and rustc had 19 recorded security issues in the past, mostly in the 
Rust standard library
  (1 affecting cargo):
  
  
https://nvd.nist.gov/vuln/search/results?form_type=Advanced_type=overview_type=all=false_vendor=cpe%3A%2F%3Arust-
  lang_product=cpe%3A%2F%3A%3Arust
  
  All issues are usually handled promptly by the Rust team. However, the fixes
  are rarely (if ever) backported to previous releases besides an occasional
  1.X.1 point release for the latest stable.
  
  There is an official Rust Security working group that curates a database of 
security
  issues within the Rust ecosystem, including rustc/cargo:
  
  https://github.com/rustsec/advisory-db
  
  - no `suid` or `sgid` binaries
  - no executables in `/sbin` and `/usr/sbin`
  - Package does not install services, timers or recurring jobs
  - Packages does not open privileged ports (ports < 1024)
  - Packages does not contain extensions to security-sensitive software
  (filters, scanners, plugins, UI skins, ...)
  
  Note however that in typical use, building a project with cargo+rustc involves
  executing code that has been downloaded from crates.io: cargo builds and 
executes
  the `build.rs` file for any pre-compilation task (a bit like a Makefile), and 
any use
  of a proc macro dependency basically implies running arbitrary code (the 
macro) within
  the execution context of rustc.
  
  [Quality assurance - function/usage]
  The packages work well right after install, one can easily create a simple 
Rust project
  and run it.
  
  [Quality assurance - maintenance]
  The packages do not deal with exotic hardware we cannot support
  
  [Quality assurance - testing]
  The packages both run a test suite on build time. However, the rustc test 
suite
- does NOT make the build fail. The reason is that there are always a few tests 
that fail, and it was a tradeoff made due to limited resources. Please note 
that Debian has a strategy of only failing the build if there are *too many* 
errors. As the Foundations team commits more resources on this toolchain, this 
policy will probably be revisited.
+ does NOT make the build fail as of 1.57. The reason is that there are always 
a few tests that fail, and it was a tradeoff made due to limited resources. 
Please note that Debian has a strategy of only failing the build if there are 
*too many* errors. As the Foundations team commits more resources on this 
toolchain, we've reverted back to Debian's system and are planning to making 
the testing story more rigorous.
  
- Neither package has any autopkgtests.
- 
- TODO: cargo autopkgtest that creates a new crate, adds a simple dependency
- (anyhow is a good candidate, no transitive deps), vendors it, builds the 
binary
- from the vendored crate, and runs it.
+ Neither package has any autopkgtests in the versions currently in the
+ release pocket. The upcoming rustc upload will have an autopkgtest
+ consisting of rebuilding itself. Debian's cargo package now has a
+ similar autopkgtest, that will be cherry-picked in the next cargo
+ upload.
  
  [Quality assurance - packaging]
  debian/watch is present and works
  
  rustc yields quite a bit of lintian output, but they seem mostly harmless.
  https://lintian.debian.org/sources/rustc
  
  There are 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-15 Thread Simon Chopin
Status of the rustc part of the MIR:

There's a package available at
https://launchpad.net/~schopin/+archive/ubuntu/rustc-mir/+packages
(still building...). I'm aware that there are issues with the armhf
build and am still investigating them. Barring that, I feel the package
is ready for security review.

I'll walk through the items from cpaelzer review.

I'll leave #1 for a later date (and MIR :D), but I do have the issue in
mind.

#2 has been resolved by reverting the bundling of LLVM. We expect to be
more proactive in the Foundations team regarding rustc and LLVM, and the
latter needs regular upgrades for other components of our releases as
well (kernel and mesa)

#3: I've shipped Cargo.lock in /usr/share/doc/rustc/Cargo.lock, the
exact location can be revisited. I've checked, it is indeed generated at
build time and so is up to date. Note that src:rustc does *not* use dh-
cargo so the related points aren't applicable.

#4: Still no action on MIRing dh-cargo at this time.

#5: I've added a self-build autopkgtest to rustc. It actually already
caught a small regression in their linkchecker tool that impacts us
because we de-bundle the JS and fonts from the doc.

#6: The testsuite is run on s390x, it "just" has a higher failure
tolerance than other architectures, with 40 failures allowed (8 for
amd64)

#7, #8: I still don't know how to do the exclude definition :-/. As
stated earlier, I think the scope of the MIR should be for the rustc and
libstd-rust-* packages, with the -doc and all ancillary tooling
remaining in universe as they're not essential to the packaging of Rust
applications.

#9: LTO has been explicitly disabled in d/rules, with a comment to
actually revisit this decision to see if it's still needed.

#10: We'll go with separate LLVM, I'll update the bug description.

#11: Tests have been re-enabled using Debian's "not too many errors"
rules as a first step, and I plan on cataloging failures to narrow the
policy, but it won't be possible in the near future.

#12: foundations-bugs is now subscribed to both src:rustc and src:cargo

#13: I worked on 1.58.1 directly, as I needed to do some repacking
anyway to remove some vendored dependencies that didn't need to be in
there (e.g. the curl and openssl crates)


Regarding the MANY warnings during the build, those warnings are
basically linting for constructs that used to be necessary but aren't
anymore as the compiler gets smarter, and, at least when compiling with
the "right" rustc version (meaning the N-1 version), are all explicitly
allowed. However, since we need to be able to compile with the *current*
version, we've had to lift the blanket deny instruction for all *other*
warnings, as new warnings introduced by the version compiled won't be in
this allowed list, as we've experienced when working on 1.57. Going
forward, an axis of improvement would be to see if it would be possible
to actually suppress all the benign warnings to make the new ones stand
out.


Regarding armhf:

When mentioning on IRC that the armhf build had some issue, a question
was raised of whether we should enable rustc on this architecture at
all, especially since rustc tends towards heavy memory consumption.

The armhf platform is currently considered upstream as "Tier 2 with host
tools", which means that we should be able to build *and* use rustc and
cargo on the platform.

Also, while I understand the sentiment, not having a native rustc on
armhf means we'd need to have rock-solid cross-build support for quite a
few packages in the archive. I'm not familiar with this particular part
of the packaging experience, but I'd wager it's not trivial to set up?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-09 Thread Didier Roche
Review for package: cargo

List of specific binary packages to be promoted to main was proposed
only cargo, but cargo-doc could go as well IMHO.

MIR team ACK given the constaint of having the security-review processed as it 
downloads crate from the Internet and acked and the Required TODOs processed
Notes:
Required TODOs:
- There is no autopkgtests and the bug description has a "TODO: cargo 
autopkgtest that creates a new crate, adds a simple dependency
(anyhow is a good candidate, no transitive deps), vendors it, builds the binary 
from the vendored crate, and runs it."
I suggest either proceeding with this plan OR write a manual tests before 
release. I think the autopkgtest has a benefit impact as it will validate rdeps.
- debian/copyright is not correct. For instance  vendor/libgit2-sys/ is listed 
as Apache2/MIT, but it’s distributed under the GNU GPL v2 with a Linking 
Exception. The linking exception does not mention Apache2/MIT explicitly but 
give you unlimited permission to link the compiled version of this library into 
combinations with other programs, and to distribute those combinations without 
any restriction coming from the use of this file. I do not think Apache2/MIT is 
completely accurate and debian/copyright should reflect GPL2 + Linking 
exception.
A lot of other files are in a similar situation and I suggest you to refresh 
the debian/copyright file. Maybe I’m wrong and this is a valid "relicensing" in 
that case, but I would prefer that to be stated explicitly.


Recommended TODOs:
- Ubuntu does carry a delta since November 2020, which could be large. It would 
be good to either resync or decide that we diverged from it forever (and so, 
considering remerging rustc and cargo together)
- One lintian error is about a malformed override. It would be good looking 
into this.
- the vendor directory has 2 files which were due to patch failure:
W: cargo source: debian-adds-patch-failure-file 
vendor/libnghttp2-sys/build.rs.orig
W: cargo source: debian-adds-patch-failure-file 
vendor/openssl-sys/Cargo.toml.rej
Would be good to fix those.
- Have a look if the numerous warnings are reported usptream and if they are 
worked on.

[Duplication]
There is no other package in main providing the same functionality.

[Dependencies]
OK:
- no other Dependencies to MIR due to this outside rustc, which is part of the 
MIR
   - checked with check-mir
   - not listed in seeded-in-ubuntu
   - none of the (potentially auto-generated) dependencies (Depends
 and Recommends) that are present after build are not in main
  - no -dev/-debug/-doc packages that need exclusion
  - No dependencies in main that are only superficially tested requiring more 
tests now.

[Embedded sources and static linking]
OK:
- no embedded source present
- some static linking, but it’s rustc as part of rust synced source.
- does not have odd Built-Using entries

OK:
- not a go package, no extra constraints to consider in that regard
- vendoring is used, but the reasoning is obvious due to rustc being split as a 
separate package by debian.

[Security]
OK:
- history of CVEs does not look concerning
- does not run a daemon as root
- does not use webkit1,2
- does not use lib*v8 directly
- does not parse data formats
- does not open a port/socket
- does not process arbitrary web content
- does not use centralized online accounts
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not deal with security attestation (secure boot, tpm, signatures)

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
- test suite fails will fail the build upon error.
- no new python2 dependency

Problems:
- There is no autopkgtests and the bug description has a "TODO: cargo 
autopkgtest that creates a new crate, adds a simple dependency
(anyhow is a good candidate, no transitive deps), vendors it, builds the binary 
from the vendored crate, and runs it."
I suggest either proceeding with this plan OR write a manual tests before 
release. I think the autopkgtest has a benefit impact as it will validate 
rdeps.TODO-A: - TBD

[Packaging red flags]
OK:
- symbols tracking not applicable for this kind of code.
- d/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good
- Debian/Ubuntu update history is good
- we are one release behind, but the release cycle is very quick, so ok
- promoting this does not seem to cause issues for MOTUs that so far  
maintained the package
TODO: - no massive Lintian warnings not explained in the description
- d/rules is complex but rather clean
- It is not on the lto-disabled list
)

Problems:
- Ubuntu does carry a delta since November 2020, which could be large. It would 
be good to either resync or decide that we diverged from it forever (and so, 
considering remerging rustc and cargo together)
- One lintian error is about a malformed override. It would be good looking 
into 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-08 Thread Simon Chopin
Hi,

This is just a partial update while I'm working on the rustc packaging.
We're still debating the LLVM situation (item #10), but once that's done
I'll upload the newer 1.58.1 which comes with the security fix for
CVE-2022-21658 (item #13). I'm also looking into the test suite issue
(items #5, #11)

Regarding #3a the new package will ship with the Cargo.lock file in 
/usr/share/doc/rustc (I've confirmed that it is regenerated at build time so 
the dependencies are the correct ones).
I don't really understand the point of #3b and #3c in the context of src:rustc, 
as packaged dependencies aren't statically linked, and the rustc packaging 
isn't using dh-cargo, which is the component that generates the mentioned 
fields in the first place.

For #7 and #8, I wasn't really aware that I could exclude binaries! For
src:rustc, I'd only ship in main rustc, rustdoc, and their dependencies.
As mentioned in the MIR, I don't expect Rust developers to actually use
the packaged tools at this point.

Items with no action so far: #4, #6, #9, #12
I'll update the bug description once the LLVM issue is resolved.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-03 Thread Christian Ehrhardt 
Back to incomplete until at least the open questions e.g. if you want to
go with embedded or system llvm are answered.

Once you have answered those please set rustc back to "New" and assign 
"ubuntu-security".
It can be in their queue for reviews at the same time that you are then working 
on the remaining required and recommended tasks.

** Changed in: rustc (Ubuntu)
 Assignee: Christian Ehrhardt  (paelzer) => Simon Chopin (schopin)

** Changed in: rustc (Ubuntu)
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-03 Thread Christian Ehrhardt 
Review for Package: rustc

[Summary]
MIR team ACK under the constraint to resolve the below listed
required TODOs and as much as possible having a look at the
recommended TODOs.

This does need a security review, so I'll assign ubuntu-security
In addition security has to check and state if keeping the embeeded
llvm is ok for them.

List of specific binary packages to be promoted to main:
  rustc, libstd-rust-dev, libstd-rust-1.57
Specific binary packages built, but NOT to be promoted to main:
  rust-doc, rust-src, rust-all
Specific binary packages built yet unsure if they will be promoted,
@Foundations please clarify if you plan to seed any of those in main as well:
  rust-gdb, rust-lldb, rust-clippy, rustfmt

This qas quite a complex case (as expected), I hope I didn't miss too much.
In any case if there are comments by others in regard to the case that you think
need to be done for full support that I missed to mention feel free to speak up
please and add a comment.

This case has rather many notes, required and recommended todos.
For a better reference to them as you are going to anser/implement them
I'm numbering them. Please when fixin/answering them refer to them by that
number so that we can more easily check later if all got adressed.

## Notes:

#1 - libstd-rust is known to be very light and almost whatever you do you need
  further libs. We have in the context of this done an evaluation and identified
  some very common libs (log, serde, tempfile, structopt  -open for suggstions)
  of almost always used libraries which I'd highly recommend to eventually MIR
  as part of the base rust support to make sense overall and to provide support
  for commonly used bits.
  OTOH the current draft [1] of MIR rules for other rust using packages suggests
  to vendor everything - until that changes the current situation is ok. But
  when this ever changes the general rust support will need a set of the most
  common libraries in main as the stdlib never is enough.

#2 - llvm-13 is needed in main which should soon happen anyway, not an extra 
task
  here. The one potential problem there is that so far never lldb-$ver was in
  main but with rustc it will be needed. I didn't see an issue as the source is
  in main and the further deps as well, but I have no deep insight into llvm,
  there might be issues if one goes down that path in more detail.


## Required TODOs:

#3 - As part of the rules draft for later MIR of rust based packages [1] a few
  structural requirements were identified which aren't part of rustc but the
  rustc ecosystem. In particular that would include the following two tasks
  that would need to be compleded to support rustc in a useful way for the
  distribution overall. Those likely need to happen in dh-cargo:
  #3a - the proper creation of a post-build .lock file and providing it in a
standard path like /usr/share/doc/$pkg/
  #3b - Current build environments create X-Cargo-Built-Using but for plenty of
Ubuntu mechanisms it would be required to put that data in Built-Using
e.g. Component mismatch checks
  #3c - Even rustc itself has 288 vendored rust sources, so we will need both of
the above .lock and built-using for rustc itself as well, not just other
packages using rust.
  Both need to be implemented OR the rules need to be changed to end up in a
  state that a developer can upload and support a rust based package without
  re-inventing the wheel over and over again.

#4 - dh-cargo in general should be added to the MIR as an extra task as it is
  part of the build environment just as much as cargo itself.

#5 - Such toolchains are prone to break if the underlying libs are changed e.g.
  libc or binutils updates. So if no other tests are available, at least
  leveraging the self-tests ran at build time should be promoted to also
  run as autopkgtest to spot these kind of issues early on and avoid spreading
  potential issues especially since in the rust ecosystem you can't just
  rebuild the lib, you have to rebuild anyone using it.

#6 - as part of fixing/improving the tests please re-check bug 1688120 as for
  full support no architecture should be left behind (maybe it is closed anyway
  nowadays?)

#7 - define an exclude for rust-doc to avoid js dependencies in component
  mismatches

#8 - rustc itself and dependencies are obvious to go to main; some others are
  obvious to not go to main - like -doc, but to be sure are you planning
  to also seed rust-gdb, rust-lldb, rust-clippy, rustfmt ?
  Please state that clearly so that we can adapt the list of binary packages we
  expect to be promoted when this is complete.

#9 - rustc is on the lto-disable-list but per request by doko/foundations and
  thereby the MIR rules to be in main it has to do the LTO disabling in the
  package. That shall remind and encourage the maintainer to actively try to
  get it supported.

#10 - So far the statement in the MIR request about the embedded llvm lists 
options
  but was not 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-01 Thread Simon Chopin
** Description changed:

  [Availability]
  The packages rustc and cargo are already in Ubuntu universe.
  The packages build for the architectures they are designed to work on,
  and are also built on platform with lesser upstream support, see
  https://doc.rust-lang.org/nightly/rustc/platform-support.html for details.
  
  They currently build and works for architectures:
    * amd64
    * arm64
    * armhf
    * i386
    * ppc64el
    * riscv64
    * s390x
  
  Link to packages:
  https://launchpad.net/ubuntu/+source/rustc
  https://launchpad.net/ubuntu/+source/cargo
  
  [Rationale]
  The packages rustc and cargo are required in Ubuntu main as the Rust 
programming
  language is gaining in popularity, and those two packages are, respectively, 
its
  main compiler implementation and its dedicated build tool (and dependency 
manager).
  
  There are a few packages in main already that have partially switched to Rust
  as their implementation language, and so rustc and cargo will be needed to 
keep
  us in sync with their upstream. See for instance
  https://bugs.launchpad.net/ubuntu/+source/mdevctl/+bug/1942394 and
  https://lists.debian.org/debian-python/2021/12/msg0.html
  (python-cryptography is in main)
  
  Note that the huge majority of our users will not use these packages, their
  purpose is to be a build-dependency for other packages. In particular, it is
  not particularly expected at this stage that those of our users that are Rust
  developers, which usually rely on their toolchain being managed in their $HOME
  by the `rustup` tool.
  
  [Security]
  cargo and rustc had 19 recorded security issues in the past, mostly in the 
Rust standard library
  (1 affecting cargo):
  
  
https://nvd.nist.gov/vuln/search/results?form_type=Advanced_type=overview_type=all=false_vendor=cpe%3A%2F%3Arust-
  lang_product=cpe%3A%2F%3A%3Arust
  
  All issues are usually handled promptly by the Rust team. However, the fixes
  are rarely (if ever) backported to previous releases besides an occasional
  1.X.1 point release for the latest stable.
  
  There is an official Rust Security working group that curates a database of 
security
  issues within the Rust ecosystem, including rustc/cargo:
  
  https://github.com/rustsec/advisory-db
  
  - no `suid` or `sgid` binaries
  - no executables in `/sbin` and `/usr/sbin`
  - Package does not install services, timers or recurring jobs
  - Packages does not open privileged ports (ports < 1024)
  - Packages does not contain extensions to security-sensitive software
  (filters, scanners, plugins, UI skins, ...)
  
  Note however that in typical use, building a project with cargo+rustc involves
  executing code that has been downloaded from crates.io: cargo builds and 
executes
  the `build.rs` file for any pre-compilation task (a bit like a Makefile), and 
any use
  of a proc macro dependency basically implies running arbitrary code (the 
macro) within
  the execution context of rustc.
  
  [Quality assurance - function/usage]
  The packages work well right after install, one can easily create a simple 
Rust project
  and run it.
  
  [Quality assurance - maintenance]
  The packages do not deal with exotic hardware we cannot support
  
  [Quality assurance - testing]
  The packages both run a test suite on build time. However, the rustc test 
suite
- does NOT make the build fail.
- 
- TODO: check with mwhudson *why*?
+ does NOT make the build fail. The reason is that there are always a few tests 
that fail, and it was a tradeoff made due to limited resources. Please note 
that Debian has a strategy of only failing the build if there are *too many* 
errors. As the Foundations team commits more resources on this toolchain, this 
policy will probably be revisited.
  
  Neither package has any autopkgtests.
  
  TODO: cargo autopkgtest that creates a new crate, adds a simple dependency
  (anyhow is a good candidate, no transitive deps), vendors it, builds the 
binary
  from the vendored crate, and runs it.
  
  [Quality assurance - packaging]
  debian/watch is present and works
  
  rustc yields quite a bit of lintian output, but they seem mostly harmless.
  https://lintian.debian.org/sources/rustc
  
  There are lintian overrides present, but those are usually justified in the 
override
  files themselves.
  
  cargo is a bit more tame on the warning fronts
  https://lintian.debian.org/sources/cargo
  
  It has an override file for the source package, for relatively minor
  warnings.
  
  These packages does not rely on obsolete or about to be demoted
  packages.
  
  The packages will not be installed by default
  
  The packaging is fairly complex, especially in the case of rustc. The crux of
  the complexity can be attributed to the boostrapping issue, as well as the 
need
  to deal with vendored dependencies. There is extensive documentation within 
the
  debian/ directories to help with the difficulties, and a lot of things have 
been
  automated in scripts living in 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-02-01 Thread Christian Ehrhardt 
** Changed in: rustc (Ubuntu)
 Assignee: (unassigned) => Christian Ehrhardt  (paelzer)

** Changed in: cargo (Ubuntu)
 Assignee: (unassigned) => Didier Roche (didrocks)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-01-26 Thread Lukas Märdian
Setting review priorities and milestones and moving status to "New" as I
have been told this is now ready for review.

** Changed in: rustc (Ubuntu)
   Status: Incomplete => New

** Changed in: cargo (Ubuntu)
   Status: Incomplete => New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-01-26 Thread Lukas Märdian
** Changed in: rustc (Ubuntu)
Milestone: None => ubuntu-22.04-beta

** Changed in: cargo (Ubuntu)
Milestone: None => ubuntu-22.04-beta

** Changed in: rustc (Ubuntu)
   Importance: Undecided => Critical

** Changed in: cargo (Ubuntu)
   Importance: Undecided => Critical

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-01-25 Thread Simon Chopin
** Description changed:

  [Availability]
  The packages rustc and cargo are already in Ubuntu universe.
  The packages build for the architectures they are designed to work on,
  and are also built on platform with lesser upstream support, see
  https://doc.rust-lang.org/nightly/rustc/platform-support.html for details.
  
  They currently build and works for architectures:
    * amd64
    * arm64
    * armhf
    * i386
    * ppc64el
    * riscv64
    * s390x
  
  Link to packages:
  https://launchpad.net/ubuntu/+source/rustc
  https://launchpad.net/ubuntu/+source/cargo
  
  [Rationale]
  The packages rustc and cargo are required in Ubuntu main as the Rust 
programming
  language is gaining in popularity, and those two packages are, respectively, 
its
  main compiler implementation and its dedicated build tool (and dependency 
manager).
  
  There are a few packages in main already that have partially switched to Rust
  as their implementation language, and so rustc and cargo will be needed to 
keep
  us in sync with their upstream. See for instance
  https://bugs.launchpad.net/ubuntu/+source/mdevctl/+bug/1942394 and
  https://lists.debian.org/debian-python/2021/12/msg0.html
  (python-cryptography is in main)
  
  Note that the huge majority of our users will not use these packages, their
  purpose is to be a build-dependency for other packages. In particular, it is
  not particularly expected at this stage that those of our users that are Rust
  developers, which usually rely on their toolchain being managed in their $HOME
  by the `rustup` tool.
  
  [Security]
  cargo and rustc had 19 recorded security issues in the past, mostly in the 
Rust standard library
  (1 affecting cargo):
  
  
https://nvd.nist.gov/vuln/search/results?form_type=Advanced_type=overview_type=all=false_vendor=cpe%3A%2F%3Arust-
  lang_product=cpe%3A%2F%3A%3Arust
  
  All issues are usually handled promptly by the Rust team. However, the fixes
  are rarely (if ever) backported to previous releases besides an occasional
  1.X.1 point release for the latest stable.
  
  There is an official Rust Security working group that curates a database of 
security
  issues within the Rust ecosystem, including rustc/cargo:
  
  https://github.com/rustsec/advisory-db
  
  - no `suid` or `sgid` binaries
  - no executables in `/sbin` and `/usr/sbin`
  - Package does not install services, timers or recurring jobs
  - Packages does not open privileged ports (ports < 1024)
  - Packages does not contain extensions to security-sensitive software
  (filters, scanners, plugins, UI skins, ...)
  
  Note however that in typical use, building a project with cargo+rustc involves
  executing code that has been downloaded from crates.io: cargo builds and 
executes
  the `build.rs` file for any pre-compilation task (a bit like a Makefile), and 
any use
  of a proc macro dependency basically implies running arbitrary code (the 
macro) within
  the execution context of rustc.
  
  [Quality assurance - function/usage]
  The packages work well right after install, one can easily create a simple 
Rust project
  and run it.
  
  [Quality assurance - maintenance]
  The packages do not deal with exotic hardware we cannot support
  
  [Quality assurance - testing]
  The packages both run a test suite on build time. However, the rustc test 
suite
  does NOT make the build fail.
  
  TODO: check with mwhudson *why*?
  
  Neither package has any autopkgtests.
  
  TODO: cargo autopkgtest that creates a new crate, adds a simple dependency
  (anyhow is a good candidate, no transitive deps), vendors it, builds the 
binary
  from the vendored crate, and runs it.
  
  [Quality assurance - packaging]
  debian/watch is present and works
  
  rustc yields quite a bit of lintian output, but they seem mostly harmless.
  https://lintian.debian.org/sources/rustc
  
  There are lintian overrides present, but those are usually justified in the 
override
  files themselves.
  
  cargo is a bit more tame on the warning fronts
  https://lintian.debian.org/sources/cargo
  
  It has an override file for the source package, for relatively minor
  warnings.
  
  These packages does not rely on obsolete or about to be demoted
  packages.
  
  The packages will not be installed by default
  
  The packaging is fairly complex, especially in the case of rustc. The crux of
  the complexity can be attributed to the boostrapping issue, as well as the 
need
  to deal with vendored dependencies. There is extensive documentation within 
the
  debian/ directories to help with the difficulties, and a lot of things have 
been
  automated in scripts living in debian/scripts/*
  
  Note that originally, the upstream tarball for rustc includes the sources for
  cargo as well as its vendored dependencies, but the Debian Rust team chose to
  split it out in its own package.
  
  [UI standards]
  I do not believe there's a need for translation for these applications given 
the
  stated purpose for having them 

[Bug 1957932] Re: [MIR] rustc, cargo

2022-01-19 Thread Michael Hudson-Doyle
Thanks for working on this Simon!

On the testing front, I think this is just pragmatism. There are always
a few failing tests for not very interesting reasons, and a few more on
!amd64. Debian does something slightly different and asserts no more
than a certain (per-architecture) number of test cases fail. If we have
the resources to look into these and patch out the tests we don't care
about and try to file bugs upstream and generally stay on top of the
situation, I think this would be a good thing. But the long turnaround
in build times for rustc would make this a very tedious process. Maybe
we can set up some CI or something.

Another point that's worth bearing in mind is that up to now the main
point of maintaining the packages at all has been to deliver updates to
firefox in LTS releases, so they have always been maintained with more
of an eye to an easy stable update than being a good citizen in the
devel series (this is what motivates the bundling of llvm, in
particular). It would be reasonably easy to not vendor llvm in the devel
series I think (although this would require us to be more aggressive
about moving new versions of llvm to main I suspect).

I don't really understand why Debian separates the rustc and cargo
source packages. I think we should consider not doing that, and in
general doing things more the upstream way and not the Debian way
(although not completely: I think upstream bundles the openssl source
for example!).

A rustc autopkgtest that ensures rustc can build itself would be a good
thing to have. We had a bug that prevented rustc from building itself on
s390x get through to release once and re-bootstrapping to get out of
this situation is painful.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: [MIR] rustc, cargo

2022-01-18 Thread Lukas Märdian
** Summary changed:

- MIR: rustc, cargo
+ [MIR] rustc, cargo

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  [MIR] rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1957932] Re: MIR: rustc, cargo

2022-01-14 Thread Simon Chopin
** Changed in: cargo (Ubuntu)
   Status: New => Incomplete

** Changed in: rustc (Ubuntu)
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1957932

Title:
  MIR: rustc, cargo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cargo/+bug/1957932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs