Source: rustc-web
Section: devel
Priority: optional
Maintainer: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Uploaders:
 Ximin Luo <infinity0@debian.org>,
 Sylvestre Ledru <sylvestre@debian.org>,
 Fabian Grünbichler <debian@fabian.gruenbichler.email>
Rules-Requires-Root: no
# :native annotations are to support cross-compiling, see README.Debian
Build-Depends:
 debhelper (>= 9),
 debhelper-compat (= 13),
 dpkg-dev (>= 1.17.14),
 python3:native,
# cargo:native (>= 1.77.0+dfsg)      <!pkg.rustc.dlstage0>,
# rustc:native (>= 1.77.0+dfsg) <!pkg.rustc.dlstage0>,
# rustc:native (<= 1.78.0++)    <!pkg.rustc.dlstage0>,
 llvm-16-dev:native,
 llvm-16-tools:native,
 gcc-mingw-w64-x86-64-posix:native [amd64] <!nowindows>,
 gcc-mingw-w64-i686-posix:native [i386] <!nowindows>,
 libllvm16 (>= 1:16.0.0),
 libclang-rt-16-dev:native,
 libclang-rt-16-dev,
 cmake (>= 3.0),
# needed by some vendor crates
 pkg-config,
# this is sometimes needed by rustc_llvm
 zlib1g-dev:native,
 zlib1g-dev,
# used by rust-installer
 liblzma-dev:native,
# used by cargo
 bash-completion,
 libcurl4-openssl-dev | libcurl4-gnutls-dev,
 libssh2-1-dev,
 libssl-dev,
 libsqlite3-dev,
# libgit2-dev (>= 1.7.2),
# libgit2-dev (<< 1.8~~),
 libhttp-parser-dev,
# for libgit2
 libpcre3-dev,
# test dependencies:
 binutils (>= 2.26) <!nocheck> | binutils-2.26 <!nocheck>,
# temporarily disabled cause of #1066794 / t64 transition
 git <!nocheck>,
 procps <!nocheck>,
# below are optional tools even for 'make check'
 gdb (>= 7.12) <!nocheck>,
# Extra build-deps needed for x.py to download stuff in pkg.rustc.dlstage0.
 curl <pkg.rustc.dlstage0>,
 ca-certificates <pkg.rustc.dlstage0>,
Build-Depends-Indep:
 clang-16:native,
Build-Conflicts: gdb-minimal <!nocheck>
Standards-Version: 4.6.2
Homepage: http://www.rust-lang.org/
Vcs-Git: https://salsa.debian.org/rust-team/rust.git
Vcs-Browser: https://salsa.debian.org/rust-team/rust

Package: rustc-web
Architecture: any
Multi-Arch: allowed
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends},
 libstd-rust-web-dev (= ${binary:Version}),
 gcc, libc-dev, binutils (>= 2.26)
Recommends:
 cargo-web (= ${binary:Version}),
# llvm is needed for llvm-dwp for -C split-debuginfo=packed
 rust-web-llvm,
Conflicts: rustc, rustc-mozilla, rustup
Replaces: libstd-rust-dev (<< 1.25.0+dfsg1-2~~)
Breaks: libstd-rust-dev (<< 1.25.0+dfsg1-2~~)
Description: Rust systems programming language
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.

Package: libstd-rust-web-1.78
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Conflicts: libstd-rust-1.78
Replaces: libstd-rust-1.78
Provides: libstd-rust-1.78
Description: Rust standard libraries
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains the standard Rust libraries, built as dylibs,
 needed to run dynamically-linked Rust programs (-C prefer-dynamic).

Package: libstd-rust-web-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}, ${misc:Depends},
 libstd-rust-web-1.78 (= ${binary:Version}),
Conflicts: libstd-rust-dev, libstd-rust-mozilla-dev
Provides: libstd-rust-dev (= ${binary:Version})
Replaces: libstd-rust-dev, libstd-rust-mozilla-dev
Description: Rust standard libraries - development files
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains development files for the standard Rust libraries,
 needed to compile Rust programs. It may also be installed on a system
 of another host architecture, for cross-compiling to this architecture.

Package: libstd-rust-web-dev-windows
Section: libdevel
Architecture: amd64 i386
Multi-Arch: same
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends:
 gcc-mingw-w64-x86-64-posix [amd64],
 gcc-mingw-w64-i686-posix [i386],
Conflicts: libstd-rust-dev-windows, libstd-rust-mozilla-dev-windows
Replaces: libstd-rust-mozilla-dev-windows
Build-Profiles: <!nowindows>
Description: Rust standard libraries - development files
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains the standard Rust libraries including development files,
 needed to cross-compile Rust programs to the *-pc-windows-gnu target
 corresponding to the architecture of this package.

Package: rust-web-gdb
Architecture: all
Depends: gdb, ${misc:Depends}
Suggests: gdb-doc
Conflicts: rust-gdb, rust-mozilla-gdb
Replaces: rustc (<< 1.1.0+dfsg1-1), rust-mozilla-gdb
Description: Rust debugger (gdb)
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains pretty printers and a wrapper script for
 invoking gdb on rust binaries.

Package: rust-web-lldb
Architecture: all
# When updating, also update rust-web-lldb.links
Depends: lldb-16, ${misc:Depends}, python3-lldb-16
Conflicts: rust-lldb, rust-mozilla-lldb
Replaces: rustc (<< 1.1.0+dfsg1-1), rust-mozilla-lldb
Description: Rust debugger (lldb)
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains pretty printers and a wrapper script for
 invoking lldb on rust binaries.

Package: rust-web-doc
Section: doc
Architecture: all
Build-Profiles: <!nodoc>
Depends: ${misc:Depends},
 libjs-jquery, libjs-highlight.js, libjs-mathjax,
 fonts-open-sans, fonts-font-awesome
Recommends: cargo-web-doc
Conflicts: rust-doc, rust-mozilla-doc
Description: Rust systems programming language - Documentation
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains the Rust tutorial, language reference and
 standard library documentation.

Package: rust-web-src
Architecture: all
Depends: ${misc:Depends}
Conflicts: rust-src, rust-mozilla-src
Replaces: rust-mozilla-src
Description: Rust systems programming language - source code
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains sources of the Rust compiler and standard
 libraries, useful for IDEs and code analysis tools such as Racer.

Package: rust-web-clippy
Architecture: any
Multi-Arch: allowed
Depends: ${misc:Depends}, ${shlibs:Depends},
 libstd-rust-web-1.78 (= ${binary:Version})
Recommends: cargo-web
Conflicts: rust-clippy
Description: Rust linter
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains 'clippy', a linter to catch common mistakes and improve
 your Rust code as well a collection of over 400 compatible lints.
 .
 Lints are divided into categories, each with a default lint level. You can
 choose how much Clippy is supposed to annoy help you by changing the lint
 level by category.
 .
 Clippy is integrated into the 'cargo' build tool, available via 'cargo clippy'.

Package: rustfmt-web
Architecture: any
Multi-Arch: allowed
Depends: ${misc:Depends}, ${shlibs:Depends},
Recommends: cargo-web
Conflicts: rustfmt
Description: Rust formatting helper
 Rust is a curly-brace, block-structured expression language.  It
 visually resembles the C language family, but differs significantly
 in syntactic and semantic details.  Its design is oriented toward
 concerns of "programming in the large", that is, of creating and
 maintaining boundaries - both abstract and operational - that
 preserve large-system integrity, availability and concurrency.
 .
 It supports a mixture of imperative procedural, concurrent actor,
 object-oriented and pure functional styles.  Rust also supports
 generic programming and meta-programming, in both static and dynamic
 styles.
 .
 This package contains 'rustfmt', a tool for formatting Rust code according to
 style guidelines, as well as 'cargo-fmt', a helper enabling running rustfmt
 directly with 'cargo fmt'.

# Cargo binaries
Package: cargo-web
Architecture: any
Multi-Arch: allowed
Depends: ${shlibs:Depends}, ${misc:Depends},
         rustc-web (= ${binary:Version}),
         binutils,
         gcc | clang | c-compiler
Suggests: cargo-web-doc, python3
Conflicts: cargo, cargo-mozilla
Description: Rust package manager
 Cargo is a tool that allows Rust projects to declare their various
 dependencies, and ensure that you'll always get a repeatable build.
 .
 To accomplish this goal, Cargo does four things:
  * Introduces two metadata files with various bits of project information.
  * Fetches and builds your project's dependencies.
  * Invokes rustc or another build tool with the correct parameters to build
    your project.
  * Introduces conventions, making working with Rust projects easier.
 .
 Cargo downloads your Rust project's dependencies and compiles your
 project.

Package: cargo-web-doc
Section: doc
Architecture: all
Build-Profiles: <!nodoc>
Recommends: rust-web-doc
Depends: ${misc:Depends}
Conflicts: cargo-doc
Description: Rust package manager, documentation
 Cargo is a tool that allows Rust projects to declare their various
 dependencies, and ensure that you'll always get a repeatable build.
 .
 To accomplish this goal, Cargo does four things:
  * Introduces two metadata files with various bits of project information.
  * Fetches and builds your project's dependencies.
  * Invokes rustc or another build tool with the correct parameters to build
    your project.
  * Introduces conventions, making working with Rust projects easier.
 .
 Cargo downloads your Rust project's dependencies and compiles your
 project.
 .
 This package contains the documentation.

# TODO: add a cargo-src package
