pkg.soopen package index

brew / 順位 9647

unifdef を Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper でインストール

unifdef のインストール経路、実行ファイル、メタデータ、AI エージェント向けセキュリティノートを確認します。

インストール

追加のインストールコマンド

macOS

Homebrew確認済み · 100%
brew install unifdef

local Homebrew formula metadata

MacPorts確認済み · 94%
sudo port install unifdef

MacPorts ports tree · devel/unifdef/Portfile · ソース: api.github.com

Linux

Alpine Linux apk確認済み · 92%
sudo apk add unifdef

Alpine Linux edge package indexes · unifdef · ソース: dl-cdn.alpinelinux.org

Debian apt確認済み · 92%
sudo apt install unifdef

Debian stable package indexes · unifdef · ソース: deb.debian.org

Fedora dnf確認済み · 92%
sudo dnf install unifdef

Fedora Rawhide package metadata · unifdef · ソース: dl.fedoraproject.org

Nix確認済み · 92%
nix profile install nixpkgs#unifdef

nixpkgs package indexes · pkgs/by-name/un/unifdef/package.nix · ソース: api.github.com

Arch Linux pacman確認済み · 92%
sudo pacman -S unifdef

Arch Linux sync databases · unifdef · ソース: geo.mirror.pkgbuild.com

openSUSE zypper確認済み · 92%
sudo zypper install unifdef

openSUSE Tumbleweed package metadata · unifdef · ソース: download.opensuse.org

概要

パッケージ概要

Selectively process conditional C preprocessor directives

コマンドとエイリアス

  • unifdef
  • unifdefall

履歴

プロジェクトの歴史と使われ方

unifdef is a source-filtering utility that selectively removes C preprocessor conditionals. The official manual says it processes `#if`, `#ifdef`, `#ifndef`, `#elif`, `#else`, and `#endif` lines when command-line macro definitions are sufficient to decide whether a block should be kept or removed.

プロジェクトの歴史

unifdef is much older than its GitHub mirror. The official manual states that the command appeared in 2.9BSD, and that ANSI C support was added in FreeBSD 4.7. It also credits the original implementation to Dave Yost and Tony Finch's rewrite for ANSI C support.

Tony Finch's official project page explains the modern motivation: understanding `xterm`'s heavily conditionalized pty-handling code. That places unifdef in the Unix source-reading and source-cleanup tradition rather than in general-purpose preprocessing.

The current project page publishes release archives, manual documentation, a browsable source repository, and a GitHub collaboration mirror. The GitHub README warns that GitHub release downloads are incomplete and points users back to the official dotat.at release files, which is useful context for packagers.

採用の歴史

The official homepage gives a concrete high-profile adoption example: the Linux kernel uses unifdef to strip `#ifdef __KERNEL__` sections from headers exported to userland. It also notes use outside C, including LaTeX workflows.

The supplied package facts show broad distribution packaging across Homebrew, Debian/Ubuntu, Fedora/DNF, Alpine, Arch, MacPorts, Nix, openSUSE, and others. That matches the tool's age and purpose: it is small, portable, and useful in build and source-export pipelines.

使われ方

unifdef is used by specifying macros with `-D`, `-U`, or a definitions file, then filtering input files so known conditional branches are removed while unknown conditionals are preserved. It can operate on stdin/stdout or modify files in place.

The manual also documents `unifdefall`, a script that uses `unifdef -s` and `cpp -dM` to derive macro information and remove all conditional directives from a file. This shows the tool's role as a controlled partial preprocessor rather than a full C preprocessor replacement.

パッケージ好きにとっての重要性

unifdef is important in the package-nerd niche because it is both tiny and historically deep: a BSD-era tool still used for practical source filtering. It belongs in base-system and package-manager collections because build scripts and source-export tasks can depend on it without pulling in a large toolchain beyond normal C build support.

Its Linux-kernel header-export use case is exactly the kind of quiet infrastructure job package maintainers care about: remove implementation-only conditional sections, preserve line-oriented source structure, and keep generated user-facing source understandable.

タイムライン

  • 2.9BSD: Manual says the `unifdef` command appeared.
  • FreeBSD 4.7: Manual says ANSI C support was added.
  • 2015: Official manual page is dated December 3, 2015.
  • Current project page: Release 2.12 archives are published on dotat.at.
  • Current README: GitHub is maintained as a collaboration mirror, while release downloads remain on dotat.at.

Related projects

  • The manual lists `cpp(1)` and `diff(1)` as related tools.
  • The official page cites Linux kernel header export as a real-world use.
  • The official page also mentions use with LaTeX, showing text-mode uses outside C.

セキュリティ状態

保護ツール対応はまだ見つかっていません

unifdef に一致するローカルシークレット処理マニフェストは見つかりませんでした。将来の対応で安定したパッケージ URL を使えるよう、Nucleus パッケージメタデータはここに公開されています。

インストール挙動

  • Homebrew bottle メタデータは記録されていません。

推奨レビュー

エージェントに無人実行させる前に、このツールが平文の認証情報を読むか、リモート状態を書き込むか、成果物を公開するか、プラグインを起動するかを確認してください。

実行可能ファイル

インストールされる実行可能ファイル

コマンド種類公開範囲メモ
unifdef実行可能ファイルインデックス済み実行可能ファイルローカル実行可能ファイルインデックスから検出されました。
unifdefall実行可能ファイルインデックス済み実行可能ファイルローカル実行可能ファイルインデックスから検出されました。

鮮度

バージョンと鮮度

これらの信号は、ページ生成時期、パッケージマネージャの活動、上流リリース比較を分けて示します。バージョン遅れは、証拠 URL と比較可能なバージョンがある場合だけ警告されます。

ページ生成日2026-08-03
マネージャ版2.12
マネージャ更新日
ローカルデータ不明
上流利用不可
検出された最新未検出
  • OK鮮度警告は生成されていません。

インストールメタデータ

パッケージメタデータ

パッケージキーbrew:unifdef
バージョン2.12
パッケージマネージャHomebrew
ホームページhttps://dotat.at/prog/unifdef/
リポジトリhttps://github.com/fanf2/unifdef
Bottle未記録
サービス宣言なし

ソースデータベース一致

他のパッケージマネージャ記録

一致は外部パッケージマネージャインデックスから取得され、ローカルの Automic Vault パッケージリンクとは分けて表示されます。

Debian apt95%

unifdef 2.12-1

Remove cpp '#ifdef' lines from files

http://dotat.at/prog/unifdef/

sudo apt install unifdef
  • Section: devel
  • Architecture: amd64
  • 2 依存関係
  • normalized package name match
  • 一致条件: Unifdef
Debian stable package indexes · deb.debian.org · Debian stable package indexes: unifdef from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

unifdef

nix profile install nixpkgs#unifdef
  • normalized package name match
  • 一致条件: Unifdef
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/un/unifdef/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

unifdef 2.12-1

Remove cpp '#ifdef' lines from files

http://dotat.at/prog/unifdef/

sudo apt install unifdef
  • Section: universe/devel
  • Architecture: amd64
  • 2 依存関係
  • normalized package name match
  • 一致条件: Unifdef
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: unifdef from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
apk95%

unifdef 2.12-r4

Selectively remove C preprocessor conditionals

https://github.com/fanf2/unifdef

sudo apk add unifdef
  • License: BSD-2-Clause AND BSD-3-Clause
  • Architecture: x86_64
  • Source Package: unifdef
  • 1 依存関係
  • 1 提供
  • normalized package name match
  • 一致条件: Unifdef
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: unifdef from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

unifdef-doc 2.12-r4

Selectively remove C preprocessor conditionals (documentation)

https://github.com/fanf2/unifdef

sudo apk add unifdef-doc
  • License: BSD-2-Clause AND BSD-3-Clause
  • Architecture: x86_64
  • Source Package: unifdef
  • normalized package name match
  • 一致条件: Unifdef
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: unifdef-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
dnf95%

unifdef 2.12-9.fc45

Selectively remove C preprocessor conditionals

https://dotat.at/prog/unifdef/

sudo dnf install unifdef
  • License: BSD-2-Clause AND BSD-3-Clause
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: unifdef
  • 3 依存関係
  • 1 提供
  • normalized package name match
  • 一致条件: Unifdef
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: unifdef from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst
pacman95%

unifdef 2.12-4

Remove #ifdef'ed lines

https://dotat.at/prog/unifdef/

sudo pacman -S unifdef
  • License: GPL
  • Architecture: x86_64
  • normalized package name match
  • 一致条件: Unifdef
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: unifdef from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

unifdef 2.12-3.5

Removes ifdefs from C files

https://dotat.at/prog/unifdef/

sudo zypper install unifdef
  • License: BSD-2-Clause
  • Category: Development/Libraries/C and C++
  • Architecture: x86_64
  • Source Package: unifdef
  • 2 依存関係
  • 1 提供
  • normalized package name match
  • 一致条件: Unifdef
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: unifdef from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst
MacPorts95%

unifdef

sudo port install unifdef
  • normalized package name match
  • 一致条件: Unifdef
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/unifdef/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

ソース経路

リポジトリデータから生成

このページは scripts/generate-pkg-sqlite.py が生成した非公開のパッケージ SQLite アーティファクトから av-web によって提供されます。

使用ソース

  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • pkg.so package database
  • pkgdb category and tag curation