Skip to main content

Precompiled dtach binary shipped as platform-specific Python wheels

Project description

dtach-bin

Precompiled dtach binary shipped as Python wheels for Linux and macOS. Install via pip / pipx and the dtach binary lands on PATH automatically — no compiler, no system package manager required.

This package exists so that Python projects can declare dtach as a runtime dependency the same way they declare any other Python package — and have it work across Linux x86_64, Linux aarch64, macOS Intel, and macOS Apple Silicon out of the box. The packaging pattern is the same one used by nodejs-bin (ships Node.js), cmake (ships CMake), and ninja (ships the Ninja build tool).

Install

pip install dtach-bin

— or in anything that wraps pip: pipx, uv, poetry, hatch, etc.

Use

After install, call dtach normally:

dtach -n /tmp/my-session.sock bash      # create a detached session
dtach -a /tmp/my-session.sock            # reattach to it

From Python, ask for the absolute path of the bundled binary:

import dtach_bin
print(dtach_bin.path())  # → '/.../venv/bin/dtach'

dtach_bin.path() is just shutil.which("dtach") with a clearer error message — useful when you want to log or display where the binary lives.

Supported platforms

Pre-built wheels are published for:

OS Architecture Wheel tag
Linux x86_64 manylinux2014_x86_64 (glibc ≥ 2.17)
Linux aarch64 manylinux2014_aarch64
macOS x86_64 macosx_11_0_x86_64 (macOS 11 Big Sur or later)
macOS arm64 macosx_11_0_arm64

If pip can't find a wheel for your platform (FreeBSD, Linux musl, exotic arches, etc.) it falls back to the sdist and builds from source — see Building from source. dtach is plain POSIX C using only libc and termios, so the build works anywhere a cc + make toolchain is available.

How it works

The wheel is not a Python C extension. It's a regular pure-Python package whose only Python content is the dtach_bin/__init__.py helper module, plus the compiled dtach binary placed in the wheel's scripts data location. At install time, pip lays the binary down at <prefix>/bin/dtach, which is on PATH for any tool that runs inside that environment.

Each platform wheel is built inside the standard pypa/manylinux2014 container (on Linux) or against MACOSX_DEPLOYMENT_TARGET=11.0 (on macOS), then re-tagged from cp310-cp310-<platform> to py3-none-<platform> — the binary doesn't depend on the Python version, so any Python 3 can install it.

The full CI pipeline lives in .github/workflows/build-wheels.yml: checkout → verify the vendored source SHA-256 → compile dtach inside the target environment → bundle into a wheel → upload to PyPI via Trusted Publisher OIDC (no API tokens stored anywhere).

Building from source

To build a wheel locally — useful when contributing or when no pre-built wheel exists for your platform:

git clone https://github.com/dev-aly3n/dtach-bin && cd dtach-bin

# Compile dtach into the package's binary slot
tar -xzf vendor/dtach-0.9.tar.gz -C /tmp
( cd /tmp/dtach-0.9 && ./configure && make )
cp /tmp/dtach-0.9/dtach src/dtach_bin/_bin/dtach
chmod +x src/dtach_bin/_bin/dtach

# Build the wheel
python3 -m build --wheel
ls dist/

The vendored source tarball is the upstream crigler/dtach v0.9 release; its SHA-256 is committed at vendor/dtach-0.9.tar.gz.sha256 and verified in CI before every build.

License

dtach itself is GPL-2.0-only (© 2004–2016 Ned T. Crigler). This package redistributes the unmodified dtach source plus a thin Python helper, and is therefore also licensed under GPL-2.0-only — see LICENSE for the full text.

You can depend on dtach-bin from a non-GPL project. Programs that invoke dtach as a separate process (via subprocess / exec) are not derivative works of dtach — see the FSF GPL FAQ on mere aggregation. This is the same arrangement that lets Debian and Homebrew ship dtach alongside non-GPL software. See THIRD-PARTY-NOTICES.md for upstream credits.

Reporting issues

For build problems specific to this package, open an issue at github.com/dev-aly3n/dtach-bin/issues.

For dtach bugs or behavior questions, see upstream: github.com/crigler/dtach.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dtach_bin-0.9.0-py3-none-manylinux2014_x86_64.whl (19.8 kB view details)

Uploaded Python 3

dtach_bin-0.9.0-py3-none-manylinux2014_aarch64.whl (20.3 kB view details)

Uploaded Python 3

dtach_bin-0.9.0-py3-none-macosx_11_0_arm64.whl (19.1 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file dtach_bin-0.9.0-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dtach_bin-0.9.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83c7ed7f8796a380d310d0b3d9c57e3adaa4562662988f44be89ce36e23005c8
MD5 c406abda24e62bf607894cad21e8a62b
BLAKE2b-256 73ec08a33a99e93159fb5f6e5d45b8a5ecd317c3d57dff4df05bde68e86925e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for dtach_bin-0.9.0-py3-none-manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on dev-aly3n/dtach-bin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dtach_bin-0.9.0-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dtach_bin-0.9.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 da6f766be41d6ba95121eff03a2fcf711f693515488b11b9a00d106e3aad6644
MD5 17d90fcf4ba6ce4b365e39a2ba3dd94a
BLAKE2b-256 dc8292dd8ad999afa8654a16eecc1a4380f1c7873519bc2f14c15bb765aa4132

See more details on using hashes here.

Provenance

The following attestation bundles were made for dtach_bin-0.9.0-py3-none-manylinux2014_aarch64.whl:

Publisher: build-wheels.yml on dev-aly3n/dtach-bin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dtach_bin-0.9.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dtach_bin-0.9.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f97963b72d2aadb3146bc49454d94e59a79bcf0831560abb5c5499f8f94adca
MD5 238fe1a08debfbe6d5bfcb6382c4454b
BLAKE2b-256 3d15063c5388aa1d45a2e5e92f6fd596dc785378c3b1cef9bd190033920b67ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for dtach_bin-0.9.0-py3-none-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on dev-aly3n/dtach-bin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page