DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: rust-recursive 0.1.1-1

Package Information

Descriptionrecursions in Rust secured from stack overflows - Rust source code

Rust has a problematic relationship with recursive functions, because functions that recurse deeply can overflow the stack, crashing your program. This crate makes it easy to remedy this problem by marking (indirectly) recursive functions as such:

use recursive::recursive;

#[recursive] fn sum(nums: &[u64]) -> u64 { if let Some((head, tail)) = nums.split_first() { head + sum(tail) } else { 0 } }

The way this prevents stack overflows is by checking the size of the remaining stack at the start of each call to your function. If this size is under a boundary set by set_minimum_stack_size (by default 128 KiB), a new stack is allocated and execution continues on that stack. This new stack’s size is set using set_stack_allocation_size, which is 2 MiB by default.

This crate works by wrapping your function body in a call to stacker::maybe_grow. If this crate is not flexible enough for your needs consider using stacker directly yourself. Source code for Debianized Rust crate "recursive"

MaintainerDebian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed BySteffen Moeller <moeller@debian.org>
Sponsormoeller@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/rust-team/debcargo-conf.git [src/recursive] (browse)
Closes#1147488
Trackerhttps://tracker.debian.org/pkg/rust-recursive
Uploaded8 days ago

New Package Report

.changes
Version0.1.1-1
Changed-BySteffen Moeller
Architecturesource amd64
Distributionunstable
DateSat, 12 Sep 2026 13:02:04 +0200
Sourcerust-recursive
Changelog
rust-recursive (0.1.1-1) unstable; urgency=medium
 .
   * Initial upload (Closes: #1147488)
   * Package recursive 0.1.1 from crates.io using debcargo 2.8.4
.dsc
Componentmain
Package-Listlibrust-recursive-dev deb rust optional arch=any
Sectionrust
Priorityoptional
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: recursive
Upstream-Contact: Orson Peters <orsonpeters@gmail.com>
Source: https://github.com/orlp/recursive

Files: *
Copyright:
 2024 Orson R. L. Peters <orsonpeters@gmail.com>
License: MIT

Files: debian/*
Copyright:
 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
 2026 Steffen Moeller <moeller@debian.org>
License: MIT

License: MIT
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

Review Information

accepted — allocated to eamanu 8 days ago, started 8 days ago, completed 8 days ago.

Final Comment

Thanks for your contributions to Debian!

Please improve the source package description

Public Notes

8 days ago ● public

licensecheck

Command: licensecheck -r --deb-machine .
Exit code: 0

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: FIXME
Upstream-Contact: FIXME
Source: FIXME
Disclaimer: Autogenerated by licensecheck

Files: ./.cargo_vcs_info.json
 ./Cargo.toml
 ./Cargo.toml.orig
 ./debian/cargo-checksum.json
 ./debian/changelog
 ./debian/control
 ./debian/debcargo.toml
 ./debian/rules
 ./debian/source/format
 ./debian/tests/control
 ./debian/upstream/metadata
 ./debian/watch
 ./src/lib.rs
 ./tests/test.rs
Copyright: NONE
License: UNKNOWN
 FIXME

Files: ./README.md
Copyright: NONE
License: Expat
 FIXME

Files: ./debian/copyright
Copyright: 2024, Orson R. L. Peters <orsonpeters@gmail.com>
  2026, Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
License: Expat
 FIXME

Files: ./debian/copyright.debcargo.hint
Copyright: FIXME (overlay) UNKNOWN-YEARS Orson Peters <orsonpeters@gmail.com>
License: Expat
 FIXME

Files: ./LICENSE
Copyright: 2024, Orson R. L. Peters
License: Expat
 FIXME

8 days ago ● public

debian/copyright check

Command: cme check dpkg-copyright
Exit code: 0

Warning in 'Files:"*" License short_name': value is "MIT". There are many versions of the MIT license. Please use Expat instead, when it matches. See L<Debian copyright format|https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/#license-specification> and L<wikipedia|https://en.wikipedia.org/wiki/MIT_License#Various_versions>for details.
Offending value: 'MIT'
Warning in 'Files:"debian/*" License short_name': value is "MIT". There are many versions of the MIT license. Please use Expat instead, when it matches. See L<Debian copyright format|https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/#license-specification> and L<wikipedia|https://en.wikipedia.org/wiki/MIT_License#Various_versions>for details.
Offending value: 'MIT'
you can try 'cme fix dpkg-copyright' to fix the warnings shown above
8 days ago ● public

licenserecon

Command: licenserecon
Exit code: 0

en: Versions: licenserecon '17.0'  licensecheck '3.3.9-1'

Parsing Source Tree  ....
Reading d/copyright  ....
Running licensecheck ....

No significant differences found
8 days ago ● public

Look for SPDX

Command: grep -r -B1 'SPDX-'
Exit code: 1

(no output)

8 days ago ● public

Lintian

Command: lintian -i -I -v --pedantic
Exit code: 0

N:
I: librust-recursive-dev: package-contains-documentation-outside-usr-share-doc [usr/share/cargo/registry/recursive-0.1.1/LICENSE]
N: 
N:   This package ships a documentation file outside /usr/share/doc
N:   Documentation files are normally installed inside /usr/share/doc.
N:   
N:   If this file doesn't describe the contents or purpose of the directory it
N:   is in, please consider moving this file to /usr/share/doc/ or maybe even
N:   removing it. If this file does describe the contents or purpose of the
N:   directory it is in, please add a lintian override.
N: 
N:   Visibility: info
N:   Show-Always: no
N:   Check: documentation
N: 
N:   Screen: python/egg/metadata
N:     Advocates: "Scott Kitterman" <debian@kitterman.com>
N:     Reason: The folders XXX.dist-info/ and XXX.egg-info/ hold metadata for
N:             Python modules. Those files are not documentation even though
N:             some of their names carry the .txt file extension.
N:             
N:             Python modules can be both public and private.
N:             
N:             Read more in
N:             https://www.python.org/dev/peps/pep-0427/#the-dist-info-directory,
N:             https://www.python.org/dev/peps/pep-0376/#id16,
N:             https://www.python.org/dev/peps/pep-0610/,
N:             https://www.python.org/dev/peps/pep-0639/,
N:             https://setuptools.pypa.io/en/latest/deprecated/python_eggs.html,
N:             and Bug#1003913.
N: 
N:
I: librust-recursive-dev: package-contains-documentation-outside-usr-share-doc [usr/share/cargo/registry/recursive-0.1.1/README.md]
N:
I: rust-recursive source: upstream-metadata-missing-bug-tracking [debian/upstream/metadata]
N: 
N:   The DEP 12 metadata file does not specify any upstream bug tracking
N:   information (ie. the Bug-Database or Bug-Submit fields are missing).
N:   
N:   The upstream metadata can be found in the source package in the file
N:   debian/upstream/metadata.
N: 
N:   Please refer to https://dep-team.pages.debian.net/deps/dep12/ for details.
N: 
N:   Visibility: info
N:   Show-Always: no
N:   Check: debian/upstream/metadata
N: 
N:
P: rust-recursive source: package-uses-old-debhelper-compat-version 13
N: 
N:   This package uses a debhelper compatibility level that is no longer
N:   recommended. Please consider using the recommended level.
N:   
N:   For most packages, the best way to set the compatibility level is to
N:   specify debhelper-compat (= X) as a Build-Depends in debian/control. You
N:   can also use the debian/compat file or export DH_COMPAT in debian/rules.
N:   
N:   If no level is selected debhelper defaults to level 1, which is
N:   deprecated.
N: 
N:   Please refer to the debhelper(7) manual page for details.
N: 
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: debhelper
N: 
8 days ago ● public

duck

Command: duck
Exit code: 0

(no output)

8 days ago ● public

look for copyright

Command: egrep -R -i copyright
Exit code: 0

LICENSE:Copyright 2024, Orson R. L. Peters
LICENSE:The above copyright notice and this permission notice shall be included in all
LICENSE:COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
debian/copyright.debcargo.hint:Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
debian/copyright.debcargo.hint:Copyright: FIXME (overlay) UNKNOWN-YEARS Orson Peters <orsonpeters@gmail.com>
debian/copyright.debcargo.hint: FIXME (overlay): Since upstream copyright years are not available in
debian/copyright.debcargo.hint:Copyright: 2024, Orson R. L. Peters
debian/copyright.debcargo.hint:Copyright:
debian/copyright.debcargo.hint: The above copyright notice and this permission notice shall be included in all
debian/copyright.debcargo.hint: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
debian/copyright:Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
debian/copyright:Copyright:
debian/copyright:Copyright:
debian/copyright: The above copyright notice and this permission notice shall be included in all
debian/copyright: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
8 days ago ● public

look for license

Command: egrep -R -i license
Exit code: 0

Cargo.toml.orig:license = "MIT"
Cargo.toml:license = "MIT"
LICENSE:use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
debian/copyright.debcargo.hint:License: MIT
debian/copyright.debcargo.hint:Files: LICENSE
debian/copyright.debcargo.hint:License: UNKNOWN-LICENSE; FIXME (overlay)
debian/copyright.debcargo.hint:License: MIT
debian/copyright.debcargo.hint:License: MIT
debian/copyright.debcargo.hint: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
debian/copyright:License: MIT
debian/copyright:License: MIT
debian/copyright:License: MIT
debian/copyright: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
README.md:## License
README.md:`recursive` is licensed under the MIT license.
8 days ago ● public

Author check: rust-recursive 0.1.1-1

Scanned 7 files. 3 author(s) declared in debian/copyright.

All source-file authors appear in debian/copyright.

8 days ago ● public

License check: rust-recursive 0.1.1-1

Archive component: main

COMPATIBLE:

  • MIT

Back to Dashboard | View all reviews for this package