9

cygportパッケージのソースコードの構造について質問があります。

Cygportsソースファイルの内容は次のとおりです。

  • プロジェクトの実際のソースバンドル(tar.gz、tar.bz2など)
  • 任意の数の*.patchファイル。
  • .cygportファイル

cygportsリポジトリからgedit-3.4.2をビルドしようとしています。

.cygportファイルは、。/ configureで適切なオプションを実行するのにどのように役立ちますか?

たとえば、geditで--disable-spellを指定しないと、エラーのために続行されません。cygportのビルド時にプロジェクトのビルドに使用された./configureオプションのリストを取得するにはどうすればよいですか?

cygport実行可能ファイルを使用してcygportを構築し、プレフィックスも変更する方法はありますか?

内容は次のgedit-3.4.2-1.cygportとおりです。

inherit python gnome2

DESCRIPTION="GNOME text editor"

PATCH_URI="3.4.2-cygwin.patch"

DEPEND="gnome-common gtk-doc
    girepository(Gtk-3.0)
    pkgconfig(enchant)
    pkgconfig(gtksourceview-3.0)
    pkgconfig(libpeas-gtk-1.0)"

PKG_NAMES="${PN} ${PN}-devel"
PKG_HINTS="setup devel"
gedit_CONTENTS="--exclude=gtk-doc --exclude=libgedit* etc/ usr/bin/ usr/lib/gedit/ ${PYTHON_SITELIB#/} usr/share/"
gedit_devel_CONTENTS="usr/include/ usr/lib/gedit/libgedit* usr/lib/pkgconfig/ usr/share/gtk-doc/"

DIFF_EXCLUDES="*.desktop.in *.schemas.in *-marshal.h"

CYGCONF_ARGS="--libexecdir=/usr/lib --enable-python"

KEEP_LA_FILES="none"

CygwinPortsメーリングリストの誰かが言った編集:

「設定オプションは

--libexecdir=/usr/lib --enable-python

これはCYGCONF_ARGSからのものです。」

4

1 に答える 1

18

Cygports ソース ファイルの内容は次のとおりです。

Cygwinパッケージのソース ファイルと考えた方がよいでしょう。

cygportCygwin バイナリおよびソース パッケージの作成を自動化するための単なるツールです。これは利用可能な主要なツールですが、他のパッケージング システムとは異なり、使用を強制するものは何もありません。Cygwin パッケージを完全に手動でビルドすることはかなり可能です。これは、Cygwinがパッケージのファイルを適切な場所に配置することを期待してsetup.exe、Cygwin ルート ディレクトリ (通常は ) にやみくもに展開できるtarball にすぎないためです。c:\cygwin

以前cygportは、人々は独自のアドホックパッケージング システムを構築していました。多くの Cygwin パッケージ メンテナーは、作成したこれらのツールを今でも使用しています。(あなたのものは本当に含まれています。私の 3 つのパッケージのうち 2 つは を使用cygportしていますが、3 つ目はまだカスタム ビルド システムを使用しています。)

cygport最終的には、マニュアルを読みたいと思います/usr/share/doc/cygport/manual.html

(はい、私は知っています。「RTFM」の回答はここでは眉をひそめています。しかし、現在cygport、Cygwin の公式パッケージ リポジトリで 2 つのベースのパッケージを管理している 1 人として、マニュアルが今でも Web サイトで入手できる唯一の最良のリソースであると言うとき、私を信じてください。このトピック。)

.cygport ファイルは、./configure で適切なオプションを実行するのにどのように役立ちますか?

他のリソースでわかったように、最初CYGCONF_ARGSにファイルの値を編集する必要があり.cygportます。

その後の最も簡単な手順はcygport gedit-3.4.2-1.cygport all. これにより、すべてのバイナリ パッケージを 1 つのステップで再構築しようとします。.cygportまた、更新されたファイルとパッチ ファイルを含む新しいソース パッケージをビルドします。

ビルド プロセスで問題が発生した場合は、通常、プロセスを完全に再起動するのではなく、all含まれているサブコマンドを使用するように切り替える方が高速です。ステップは 、、、、 、allの順に実行されます。たとえば、コンパイル手順で失敗した場合、おそらく手順を繰り返す必要はありません。allprepcompileinstallpackagefinishallprep

cygport(健全なビルド システムがビルド ツリーを破壊して、再実行を余儀なくされることは非常にまれですprep。より一般的には、新しいパッケージを取得しようとしてビルド ツリーを手動で破壊するprep再実行が必要になります。初めてビルドし、最初からやり直す必要があります。)

たとえば、gedit で --disable-spell を指定しないと、エラーが発生して続行されません。

libaspell-develおそらく、公式の Cygwin パッケージ リポジトリからパッケージをインストールすることで修正できますsetup.exe

個人的には、 Cygwin Portsプロジェクトなどの非公式パッケージをインストールすることを意味しない限り、どの機能も無効にしません。 「世界をインストールする」状況の作成: パッケージ A はパッケージ B、C、および D に依存し、C は E、F、G、H に依存し、G は I、J、K、および ... に依存します。 Cygwin パッケージ リポジトリは、Cygports リポジトリよりもフラットで狭い傾向があります。

cygport 実行可能ファイルを使用して cygport をビルドし、プレフィックスも変更する方法はありますか?

に足すだけだと思ったでしょ--prefix=/my/private/program/treeCYGCONF_ARGS、私は信じています。


[*] 「Cygwin Ports」と「Cygwin Ports」について混乱しているとしたらcygport、名前が似ているのは偶然ではありません。cygportCygwin Ports パッケージ リポジトリを作成する際に Yaakov Selkowitz によって作成されたツールです。その後、他の Cygwin パッケージ メンテナーの間で十分な人気を博し、競合するビルド システムのほとんどを押しのけました。

于 2012-07-26T22:18:58.260 に答える