You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The registry has no netcat package (socat is available). A tester reported this during a bug bash, and the decision was to add one. There is no existing issue.
Fix
Adds three new packages. The OpenBSD nc is the only one that is user-facing.
netcat 1.239: OpenBSD nc, built from Debian's netcat-openbsd source. The upstream tarball is OpenBSD source and does not build on Linux. Debian's patch series (applied in build.sh) ports it to libbsd and drops TLS. Installs /usr/bin/nc, a netcat symlink, and the man page. There is no -e/-c and no TLS in this build.
libbsd 0.12.2 (new): runtime dependency of nc.
libmd 1.3.0 (new): dependency of libbsd.
Both netcat source hashes are the ones in Debian's signed .dsc. A comment in build.ncl notes that this pin can go stale silently, because version checks follow the upstream version rather than the Debian revision.
Tests in the package: smoketest (/usr/bin/nc -h) and loopback (listener on 127.0.0.1 receives a client's data).
Test plan
bash -n on the three new build.sh files: syntax OK (run).
No other command was run. The repo's min config check and package build are provided by the in-sandbox helper, which was not available in the environment this PR was prepared in. The nickel binary was not available either.
Needed before merge: the config check on netcat, libbsd and libmd, a build of netcat, and the smoketest and loopback tests, plus CI.
Not verified
Nothing was evaluated or built: the Nickel specs, the build, output globs, and both tests are unverified.
The loopback test uses a fixed port (39817) and a sleep 1. Whether that is reliable in the test sandbox is unconfirmed.
-march=x86-64-v3 flags for libmd/libbsd/netcat follow other packages' convention but were not checked against a build.
Whether Debian's current patch series differs from the pinned 1.239-1 was not checked.
Summary by CodeRabbit
New Features
Added OpenBSD netcat, providing the nc and netcat commands for basic network connections and loopback testing.
Added the libbsd and libmd libraries and their development files.
This netcat build does not support -e/-c options or TLS.
The catalog had no package shipping `nc`; socat and inetutils do not
provide it. This adds OpenBSD netcat as Debian packages it, plus the
libbsd and libmd it needs on Linux.
No -e/-c and no TLS in this build: Debian's series drops TLS.
libbsd.so is a linker script, so its libs output sets allow_data.
Extraction loses the tarballs' mtimes, so libmd and libbsd give the
tree one mtime before configure or make reruns the autotools.
Sources use the upstream and Debian pool https URLs, not the gs://
mirror. Debian drops superseded revisions from the pool, so mirroring
the netcat pair is a follow-up.
The change adds build specifications and scripts for libmd 1.3.0, libbsd 0.12.2, and OpenBSD netcat 1.239-1. It also adds netcat smoke and loopback tests.
Adds the libmd build specification and script. They define the source archive and checksum, dependencies, package outputs, architecture flags, build steps, and installation behavior.
Adds the libbsd build specification and script. They define the source archive and checksum, dependencies, package outputs, architecture flags, build steps, and installation behavior.
Adds a Debian-patched netcat build with pinned sources, package outputs, and a build script that applies the patch series. Adds nc -h and loopback tests. The package comments state that this Linux build omits -e/-c and TLS.
No confirmed issue blocks merging after normal package-build and test checks.
Pre-merge checks: 5
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title identifies OpenBSD netcat and its two new dependencies.
Docstring Coverage
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 3 files. (3 skipped: 3 unsupported.)
Finishing Touches
Generate docstrings
Commit to this branch
Create a new PR
Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
The reason will be displayed to describe this comment to others. Learn more.
Approving. Provenance and the port look right:
Both netcat sha256s match Debian's PGP-signed netcat-openbsd_1.239-1.dsc, and 1.239-1 is Debian's newest revision.
The patched Makefile sets CFLAGS with a plain assignment and links pkg-config --libs libbsd, so overriding CFLAGS on the make line is safe. Debian's rules do the same.
The output globs are narrow, so these packages avoid the usr/lib64 trap fixed in #1341.
One fix before merge: the man page is never installed.outputs.mans is usr/share/man/** and the body says the man page is installed, but build.sh only installs nc and the netcat symlink. As it stands the mans output matches nothing. nc.1 is in the source tree:
Two things to watch on the first build, not blocking:
loopback uses a fixed port (39817) and sleep 1, and standalone tests run with network_plan=isolated. If it flakes, polling for the listener would be sturdier than the fixed sleep.
libbsd installs libbsd-ctor.a despite --disable-static. ARFLAGS=Drc on its make would keep that archive byte-reproducible.
The reason will be displayed to describe this comment to others. Learn more.
Additional comments: 1
packages/netcat/build.ncl-43-43: 1
43-43: Major · Maintainability & Code Quality · Quick win
Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.
Add detbuild to the build dependencies.
The build runs make without staging or preloading detbuild. Add detbuild here, then preload only the offline make command in packages/netcat/build.sh. The repository rule requires: “Add detbuild to build_deps” and “Preload one command.” Without the dependency, the build can succeed without the required pinned build environment. (raw.githubusercontent.com)
As per coding guidelines, every package must build byte-reproducibly, and the preload must apply to one command rather than the whole script.
Reviewing files that changed from the base of the PR and between b79dd65 and cb1f74f.
Files selected for processing: 6
packages/libbsd/build.ncl
packages/libbsd/build.sh
packages/libmd/build.ncl
packages/libmd/build.sh
packages/netcat/build.ncl
packages/netcat/build.sh
Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Root cause
The registry has no
netcatpackage (socatis available). A tester reported this during a bug bash, and the decision was to add one. There is no existing issue.Fix
Adds three new packages. The OpenBSD
ncis the only one that is user-facing.netcat1.239: OpenBSDnc, built from Debian'snetcat-openbsdsource. The upstream tarball is OpenBSD source and does not build on Linux. Debian's patch series (applied inbuild.sh) ports it to libbsd and drops TLS. Installs/usr/bin/nc, anetcatsymlink, and the man page. There is no-e/-cand no TLS in this build.libbsd0.12.2 (new): runtime dependency ofnc.libmd1.3.0 (new): dependency oflibbsd.Both netcat source hashes are the ones in Debian's signed
.dsc. A comment inbuild.nclnotes that this pin can go stale silently, because version checks follow the upstream version rather than the Debian revision.Tests in the package:
smoketest(/usr/bin/nc -h) andloopback(listener on 127.0.0.1 receives a client's data).Test plan
bash -non the three newbuild.shfiles: syntax OK (run).minconfig check and package build are provided by the in-sandbox helper, which was not available in the environment this PR was prepared in. Thenickelbinary was not available either.netcat,libbsdandlibmd, a build ofnetcat, and thesmoketestandloopbacktests, plus CI.Not verified
sleep 1. Whether that is reliable in the test sandbox is unconfirmed.-march=x86-64-v3flags forlibmd/libbsd/netcatfollow other packages' convention but were not checked against a build.1.239-1was not checked.Summary by CodeRabbit
ncandnetcatcommands for basic network connections and loopback testing.-e/-coptions or TLS.