**AURパッケージをレビューする手順**

1. **パッケージの検索**
   - `yay -Ss <package-name>` を実行するか、https://aur.archlinux.org/ にアクセスして手動で検索します。

2. **PKGBUILD の確認**
   - `PKGBUILD` ファイルを見て、ビルドスクリプトや依存関係、メンテナ情報を把握します。
   - ソース URL が信頼できる(例:公式プロジェクトサイト)かどうかもチェックしてください。

3. **コメント欄の確認**
   - ユーザーが投稿したコメントから報告されているバグや互換性問題を探ります。

4. **パッケージの状態を検証**
   - `Last updated`(最終更新日)を見て、メンテナンスが継続しているか確認します。
   - バージョン番号が上流リリースと一致しているかもチェック。

5. **依存関係の精査**
   - 必要なパッケージが公式リポジトリや信頼できる AUR ソースに存在するかを確認します。

6. **変更履歴(あれば)をレビュー**
   - 最近の変更点が記録されており、妥当であることを確認します。

7. **LICENSE ファイルの確認**
   - ライセンスがプロジェクトの要件に合致しているかどうかを検証します。

8. **ローカルテスト(任意ですが推奨)**
   - AUR リポジトリをクローンし、`makepkg -si` を実行した上でサンドボックス環境で機能確認を行います。

9. **問題の報告**
   - 不具合や懸念点が見つかった場合は、AUR ページに issue を投稿するか、メンテナへメールまたは Discord で連絡します。

2026/02/17 16:34

**AURパッケージをレビューする手順** 1. **パッケージの検索** - `yay -Ss <package-name>` を実行するか、https://aur.archlinux.org/ にアクセスして手動で検索します。 2. **PKGBUILD の確認** - `PKGBUILD` ファイルを見て、ビルドスクリプトや依存関係、メンテナ情報を把握します。 - ソース URL が信頼できる(例:公式プロジェクトサイト)かどうかもチェックしてください。 3. **コメント欄の確認** - ユーザーが投稿したコメントから報告されているバグや互換性問題を探ります。 4. **パッケージの状態を検証** - `Last updated`(最終更新日)を見て、メンテナンスが継続しているか確認します。 - バージョン番号が上流リリースと一致しているかもチェック。 5. **依存関係の精査** - 必要なパッケージが公式リポジトリや信頼できる AUR ソースに存在するかを確認します。 6. **変更履歴(あれば)をレビュー** - 最近の変更点が記録されており、妥当であることを確認します。 7. **LICENSE ファイルの確認** - ライセンスがプロジェクトの要件に合致しているかどうかを検証します。 8. **ローカルテスト(任意ですが推奨)** - AUR リポジトリをクローンし、`makepkg -si` を実行した上でサンドボックス環境で機能確認を行います。 9. **問題の報告** - 不具合や懸念点が見つかった場合は、AUR ページに issue を投稿するか、メンテナへメールまたは Discord で連絡します。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

概要:
2025年7月18日、Arch Linuxチームはマルウェアを含む3つのAURパッケージを削除しました。著者と他のメンテナーは悪意あるコードを削除し、将来のアップロードを防止するための安全策を追加しました。AURはコンパイル済みバイナリではなくユーザーが書いたPKGBUILDスクリプトをホストしているため、1つでも妥協されたスクリプトがインストール時にroot権限で有害なコマンドを実行する可能性があります。
現在のモデレーションは、パッケージの主要メンテナーを転送または削除できるボランティアモデレーターに依存していますが、このシステムは古いと見なされています。セキュリティ強化のため、コミュニティではプルリクエストワークフローやより厳格なライセンスチェックを検討しており、#archlinux-aur IRCチャンネルとフォーラムで議論が進行中です。これらの変更は、AURに依存するユーザーを保護し、メンテナーへのレビュー基準を厳格化し、Linuxパッケージエコシステム全体の品質期待値を向上させることを目的としています。

本文

2025年7月18日(金)に発覚したAURのマルウェア事件

2025年7月18日(金)、Arch Linuxチームは、AURに3つのマルウェアを含むパッケージがアップロードされたことを通知されました。数名のメンテナ―(私も含め)でこれらのパッケージを削除し、悪意あるコードを完全に取り除き、将来同様の不正アップロードから守る対策を講じました。

既にクエント・ミシュード氏が「マルウェアの仕組み」を丁寧に解説しているので、ここでは詳細は省略します。興味があれば彼のブログをご覧ください。代わりに、パッケージングスクリプト(PKGBUILD)の基本的な構造と自分でレビューする方法を短くまとめます。


AURとは何か?

Arch User Repository(AUR)は、ユーザーが作成したパッケージングスクリプト(PKGBUILDファイル)を集めたリポジトリです。

aur.archlinux.org
にアカウントを持つ者なら誰でも、同名のパッケージが既に存在しない限り、Arch Linux用のスクリプトをアップロードできます。提出できる内容には「公式パッケージや他のAURパッケージと重複しないこと」などのルールがありますが、基本的には何でもOKです。

各パッケージはデフォルトで「最初にスクリプトをアップロードした人」がメインメンテナ―ですが、責任移譲やモデレーターによる削除などで変更されます。民主主義ではなく、功績主義でもありませんが、うまく機能しており、多数の有用なソフトウェアが揃っています。

AURからインストールする場合は、単にメインリポジトリからインストールするよりも手間が増します。

makepkg
でPKGBUILDをビルドし、その結果得られるパッケージをインストールできますが、ビルド時にAURにしか存在しない依存パッケージが必要になることがあります。そのため、多くの人は「AURヘルパー」を使い、pacmanのような操作感で管理します。ただし、ヘルパーにも欠点があります。

誰でもPKGBUILDをアップロードできる仕組みは、参加障壁を下げてくれる一方で、悪意ある人物がマルウェアを公開するリスクも伴います。したがって、インストールする前にPKGBUILDを検証することが重要です。


PKGBUILDの構造

Arch LinuxのPKGBUILDは、あるパターンに従ったbashスクリプトです。以下は典型的な例です。

# Maintainer: John Doe <john@example.org>
pkgname=example
pkgver=1.0
pkgrel=1
pkgdesc="An example package"
arch=(x86_64)
url="https://example.org/"
license=('WTFPL')
install="example.install"
source=("https://example.org/$pkgname-$pkgver.tar.gz"
        "$pkgname-$pkgver.patch::https://git.example.org/example/pull/42.patch")
sha256sums=("de4bba005e86b4fbf0399e2cb492b1e941099b951a45137212507c2cbc8fae63"
            "b6dc933311bc2357cc5fc636a4dbe41a01b7a33b583d043a7f870f3440697e27")

prepare() {
    cd "$pkgname-$pkgver"
    patch -p1 -i "$srcdir/$pkgname-$pkgver.patch"
}

build() {
    cd "$pkgname-$pkgver"
    ./configure --prefix=/usr
    make
}

check() {
    cd "$pkgname-$pkgver"
    make -k check
}

package() {
    cd "$pkgname-$pkgver"
    make DESTDIR="$pkgdir/" install
}
  • メンテナ―行
    プログラム上は使われませんが、ユーザーが問題発生時に連絡できるよう情報を載せます。前任者のメールアドレスも併記すると貢献者への感謝になります。

  • その後に続くメタデータ変数

変数用途
pkgname
ビルド対象パッケージ名
pkgver
アップストリームのリリース番号。必ず増加させることでpacmanが更新判定します。
pkgrel
パッケージリリース番号。
pkgver
を変えない限り、PKGBUILDを修正するたびにインクリメントし、新しいアップストリームでは1にリセット。
pkgdesc
ユーザー向けの短い説明。検索や一覧表示で使用されます。
arch
ビルド可能なCPUアーキテクチャのリスト。
('any')
はアーキテクチャ非依存(Pythonパッケージなど)を示します。
url
追加情報へのリンク。使われない場合もあります。
license
SPDX形式で表記する配布ライセンス。1つだけ指定してください。
install
パッケージインストール・アップグレード・削除時にroot権限で実行されるスクリプト(任意)。
source
URL、VCS URL、またはファイル名の配列。
sha256sums
source
と同じ長さで、それぞれのSHA‑256チェックサムを指定。
SKIP
で検証スキップ(PGP署名など)。

ビルド関数

PKGBUILDには4つの段階があり、bash関数として実装されます。

  1. prepare() – パッチ適用やsedによる編集を行う。ここ以降はネットワークアクセスを避けるべきです(ただしGo・Node.js・Rust等では例外があります)。
  2. build() – ソフトウェアのコンパイル(
    configure
    ,
    make
    等)。最も時間がかかります。
  3. check() – 可能なら単体テストやスモークチェックを実行。
  4. package() – ビルドしたファイルを
    $pkgdir
    配下に配置。必須関数です。

PKGBUILDレビューで注目すべきポイント

以下はPKGBUILDを検証する際の重要項目です。網羅的ではありませんが、よくある落とし穴をカバーしています。

1.
source
配列の確認

  • ソースが悪意あるものでないかを最優先でチェックします。
  • アップストリームプロジェクトに信頼できるか、公式Gitタグや公式サイトから取得しているかを確認。
  • 著者のPGP署名があればさらに安心です。
  • RFCで定義されている「trusted source」ガイドライン(AUR独自より厳しい)を参考にしてください。
  • パッチもソースとして扱われますので、マルウェアコードや不要な変更が入っていないか必ず確認します。

2. ビルドステップの検証

  • build()
    ,
    check()
    ,
    package()
    でネットワークダウンロードは行わない。
    prepare()
    もできれば避けるべきです(例外あり)。
  • コマンドは標準的なパッケージングコマンドに限定し、カスタムスクリプトは必ずアップストリームリポジトリから入手してください。
  • sudo
    や類似権限昇格を実行していないか確認します。ビルドは非対話型のchroot環境で行われるため、こうした操作はエラーになります。

3. インストールスクリプト(
install
)の精査

  • install
    ファイルが存在する場合は特に注意。インストール・アップグレード・削除時にroot権限で実行されます。
  • 新しいpacmanフック (
    /usr/share/libalpm/hooks
    ) が追加されているかどうかも確認します。無害なもの(フォントキャッシュ再生成など)を除き、何をしているか把握できない場合は疑わしく見えます。

4. 理解できないコードは使わない

  • AURはCAPTCHA回避が可能であれば誰でもアップロードできます。善意のパッケージでもバグや隠しマルウェアが混入するリスクがあります。
  • 疑わしい点がある場合はまず質問を投げ、説明を求めてください。

パッケージが悪意あると疑ったら

  1. 相談
    #archlinux-aur
    IRCチャンネル(Libera)やAURフォーラム、メールリストで情報共有。
  2. 報告 – 本当にマルウェアが含まれている場合は、パッケージメンテナ―が削除・ブロックを行います。繰り返し違反者にはエスカレーション手順があります。

最後に

AURはかつて「FTPサーバーとして始めた小さな仕組み」で設計されたもので、協調的で敵対的ではない時代のために作られました。現在でもユーザー間の信頼が前提です。改善点としては、より厳格なモデレーション、Pull‑Requestワークフロー、PKGBUILDファイル自体の明確なライセンス付与などがあります。コミュニティがこれらを実装してくれれば、もっと安全に利用できるようになります。

それまでは、パッケージをレビューする際は慎重になり、常に警戒心を持ち続けてください。

同じ日のほかのニュース

一覧に戻る →

2026/02/21 2:58

「Androidをオープンに保つ」

## 日本語訳: F‑Droidは、GoogleのAndroidポリシーの変化についてコメントしながら、新しい **Basic 2.0‑alpha3** ビルドを公開しました。 - **FOSDEM26** でユーザーは、GoogleがAndroidをロックダウンする計画を中止したと聞き安心しましたが、8月の発表ではその計画がまだ有効であることが示されています。 - 記事は、Google の「advanced flow」主張の曖昧さと、Android 16 QPR2/3 や Android 17 Beta 1 の明確なリリース日が設定されていない点を批判しています。 - **バナー警告** は、Google がゲートキーパーになる前に時間がなくなることをユーザーに知らせ、IzzyOnDroid、Obtainium、および他のダウンローダーでも同様のバナーが表示されます。 - 新しい Basic リリースには、更新された翻訳、インストール済みアプリの CSV エクスポート、インストール履歴、ミラー選択器、スクリーンショット防止機能、ツールチップ、新しいオーバーフローメニュー、永続的な並べ替え順序、Material 3 スタイル、およびさまざまなバグ修正が含まれています。 Basic 1.23.x を使用しているユーザーは、このアルファを受け取るために「Allow beta updates」を手動で有効にする必要があります。 - **いくつかのアプリが更新されました**:Buses 1.10、Conversations/Quicksy 2.19.10+、Dolphin Emulator 2512、Image Toolbox 3.6.1(AIツール)、Luanti 5.15.1、Nextcloud ファミリー(Nextcloud 33.0.0、Cookbook 0.27.0、Dev 20260219、Notes 33.0.0、Talk 23.0.0)、ProtonVPN 5.15.70.0(WireGuard のみ)、Offi 14.0、QUIK SMS 4.3.4、および SimpleEmail 1.5.4。 - **5 つのアプリが削除されました**:Chord Shift、OpenAthena™ for Android、Tibetan Keyboard、Tibetan Pad、Tomdroid。 - **新しいアプリが追加されました**:NeoDB You(Material 3/You を採用した NeoDB のネイティブ Android アプリ)。 - 280 件を超えるアプリが更新され、注目すべきものとして Aurora Store 4.8.1、Bando.js Gadgetbridge 0.89.1‑banglejs、DuckDuckGo Privacy Browser 5.266.0、Element X 26.02.0、OpenTracks v4.26.0、Proton Pass 1.37.2 などがあります。 - F‑Droid は読者に RSS フィードの購読、TWIF フォーラムスレッドへの参加、および寄付ページでの寄付を促しています。 この改訂された概要はリストから主要なポイントをすべて保持し、不必要な推測を避け、明確なメインメッセージを提示し、曖昧または混乱する表現を除去しています。

2026/02/21 6:25

Dependabot をオフにします。

## Japanese Translation: ## 要約 DependabotはGoプロジェクトで細かいパッケージフィルタリングが不足しているため、頻繁に無関係なセキュリティアラートを生成します。著者はDependabotを停止し、最新の依存関係に対して`govulncheck`とテストスイートを実行するスケジュール済みGitHub Actionで置き換えることで、ノイズを劇的に減らしながらも実際の脆弱性は検出できることを示しています。 重要な例として、`filippo.io/edwards25519`(v1.1.1)の修正が挙げられます。このパッチはDependabotのデフォルト動作により、関連しないリポジトリ―例えばWycheproof―でも何千件ものPRを生成しました。対照的に、`govulncheck`は静的解析後に脆弱なシンボルが到達不能であると判断し、著者のプロジェクトでは「脆弱性なし」と報告します。 Go Vulnerability Database はモジュール、バージョン、シンボル、CVE参照などの詳細メタデータを提供しており、こうした精密なフィルタリングを可能にしています。著者は毎日実行されるワークフロー(`go get -u -t ./...`)と10:22 UTCに実行される`govulncheck`を組み合わせ、真の脅威に対してのみアラートが上がるようにしています。 CI環境を潜在的なサプライチェーン攻撃から保護するため、ワークフローではgVisorを使用したサンドボックス化ステップ`geomys/sandboxed-step`を採用しています。この手法は、各依存関係のスケジュールではなくプロジェクト自身のリリースサイクルに合わせて依存関係を更新することを推奨し、継続的なバンプなしで早期検出を実現します。 この戦略は、Go Security Team が2020–21年にデータベース品質と静的解析フィルタの改善に焦点を当てたものと一致しており、Geomys のリテーナー契約(Ava Labs、Teleport、Tailscale、Sentry)によって支援されています。著者は他の開発者にも同様のワークフローを採用するよう促し、Bluesky(@filippo.abyssdomain.expert)または Mastodon(@filippo@abyssdomain.expert)でフォローしてもらうことを読者に呼びかけています

2026/02/20 22:51

**Ggml.ai、Hugging Faceと提携しローカルAIの長期的進展を確保** - 軽量機械学習モデルのリーディングプロバイダーであるGgml.aiが、Hugging Faceとパートナーシップを結びました。 - 本協業は、世界中におけるローカルAIソリューションの継続的な開発・展開を確実にすることを目的としています。 - 両社は資源やベストプラクティス、コミュニティサポートを共有し、デバイス上で動作するインテリジェンスのイノベーションを加速させていきます。

## 日本語訳: > ggml.ai の創設者は、AI を真にオープンに保ちつつ、ggml/llama.cpp スタックのメンテナンスに専念するため、Hugging Face に参加します。このパートナーシップはプロジェクトの長期的な持続可能性を保証し、ユーザーと貢献者に新たな機会を提供します。これまでの 3 年間の協力により、コア機能・ユーザーインターフェース・マルチモーダルサポート・GGUF 対応が追加されました。Llama.cpp は多くのコンシューマー ハードウェア上で動作するプライベート AI プロジェクトに不可欠となっており、コミュニティは依然として独自に構成設計を行い、Hugging Face はリソースを提供しつつコードを 100 % オープンソースのまま保ちます。今後、チームはユーザー体験を優先し、ggml/llama.cpp を Hugging Face の Transformers ライブラリに「ワンクリック」で統合し、ローカル推論がクラウドソリューションと競合できるようパッケージングを改善します。これらの取り組みは、使いやすいエッジ推論スタックを構築し、開発者に日常デバイス上でプライベート AI を構築するための安定した基盤を提供するとともに、世界中でオープンソーススーパインテリジェンス エコシステムを拡大することを目的としています。

**AURパッケージをレビューする手順** 1. **パッケージの検索** - `yay -Ss <package-name>` を実行するか、https://aur.archlinux.org/ にアクセスして手動で検索します。 2. **PKGBUILD の確認** - `PKGBUILD` ファイルを見て、ビルドスクリプトや依存関係、メンテナ情報を把握します。 - ソース URL が信頼できる(例:公式プロジェクトサイト)かどうかもチェックしてください。 3. **コメント欄の確認** - ユーザーが投稿したコメントから報告されているバグや互換性問題を探ります。 4. **パッケージの状態を検証** - `Last updated`(最終更新日)を見て、メンテナンスが継続しているか確認します。 - バージョン番号が上流リリースと一致しているかもチェック。 5. **依存関係の精査** - 必要なパッケージが公式リポジトリや信頼できる AUR ソースに存在するかを確認します。 6. **変更履歴(あれば)をレビュー** - 最近の変更点が記録されており、妥当であることを確認します。 7. **LICENSE ファイルの確認** - ライセンスがプロジェクトの要件に合致しているかどうかを検証します。 8. **ローカルテスト(任意ですが推奨)** - AUR リポジトリをクローンし、`makepkg -si` を実行した上でサンドボックス環境で機能確認を行います。 9. **問題の報告** - 不具合や懸念点が見つかった場合は、AUR ページに issue を投稿するか、メンテナへメールまたは Discord で連絡します。 | そっか~ニュース