2012-07-23 17 views
6

Mam pytanie dotyczące struktury kodu źródłowego z pakietu cygport.Jak zbudować src z CygPort?

Oto zawartość pliku źródłowego Cygports:

  • rzeczywisty pakiet źródłowy projektu (tar.gz, tar.bz2, etc.)
  • dowolnej liczbie plików * .patch .
  • plik .cygport

Staram się budować gedit-3.4.2 z cygports repozytorium.

W jaki sposób plik .cygport pomaga mi uruchomić odpowiednie opcje w pliku ./configure?

Na przykład w gedit, jeśli nie określiłem -disable-spell, nie będzie kontynuowane z powodu błędu. Jak uzyskać listę opcji ./configure, które zostały użyte do zbudowania projektu po zbudowaniu cygportu?

Czy jest jakiś sposób, aby użyć cygport do zbudowania cygport i zmienić prefiks?

Oto treść 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" 

EDIT Ktoś z Cygwin Porty liście dyskusyjnej powiedział:

„Opcje Konfiguracja są

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

Który z CYGCONF_ARGS. "

Odpowiedz

16

Oto zawartość pliku źródłowego Cygports:

Zrobiłbyś lepiej myśleć o nim jako o Cygwin pliku źródłowego pakietu.

cygport to po prostu narzędzie do automatyzacji tworzenia pakietów binarnych i źródłowych Cygwin. Jest to podstawowe narzędzie dostępne, ale w przeciwieństwie do innych systemów pakujących, naprawdę nic nie zmusza go do korzystania z niego. Jest całkiem możliwe, aby zbudować pakiet Cygwin całkowicie ręcznie, ponieważ jest to nic więcej niż plik archiwalny, który Cygwin's setup.exe może ślepo rozpakować do katalogu głównego Cygwin (zazwyczaj c:\cygwin) z oczekiwaniem, że spowoduje to umieszczenie plików pakietu w rozsądnych lokalizacjach .

Przed cygport istniały ludzie, którzy stworzyli własne systemy pakowania ad hoc. Wielu opiekunów pakietów Cygwin nadal używa tych narzędzi, które stworzyli. (Twój naprawdę dołączony, dwa z moich trzech pakietów używają cygport, ale trzeci nadal używa niestandardowego systemu kompilacji.)

Ostatecznie, chcesz przeczytać instrukcję cygport, w /usr/share/doc/cygport/manual.html.

(Tak, wiem, odpowiedzi "RTFM" są tu mile widziane.Ale, jak ten, który obecnie utrzymuje dwa cygport pakiety oparte w repozytorium oficjalny pakiet Cygwin, proszę mi wierzyć, kiedy mówię, że instrukcja jest nadal jeden z najlepszych dostępnych zasobów na ten temat.)

jaki sposób. plik cygport pomoże mi uruchomić odpowiednie opcje w ./configure?

Jak dowiedział się za pośrednictwem innych środków, to najpierw trzeba zmienić wartość CYGCONF_ARGS w pliku .cygport.

Najprostszym możliwym krokiem po tym jest cygport gedit-3.4.2-1.cygport all. To próbuje odbudować wszystkie pakiety binarne w jednym kroku. Tworzy także nowy pakiet źródłowy zawierający zaktualizowane pliki .cygport i poprawki.

Jeśli coś wybucha w procesie budowania all, to zwykle szybciej, aby przełączyć się za pomocą poleceń zawartych podrzędne przez all zamiast całkowicie ponowne uruchomienie procesu. Krok all po prostu działa dla Ciebie w tej kolejności: prep, i i finish. Na przykład, jeśli all ulegnie awarii podczas etapu kompilacji, prawdopodobnie nie będzie potrzeby powtarzania kroku prep.

(Jest wyjątkowo rzadkością cygport lub powszechny system budowania zniszczyć drzewo budowania, zmuszając do ponownego biegu prep. Znacznie częściej, skończyć się konieczności ponownego zrobić prep gdy ręcznie wrak z zbudować drzewo, starając się uzyskać nowy pakiet budować po raz pierwszy i trzeba zacząć od nowa.)

na przykład w gedit jeśli nie podasz --disable-zaklęcie to nie przejdzie z powodu do błędu.

Prawdopodobnie można naprawić poprzez zainstalowanie pakietu libaspell-devel z oficjalnego repozytorium pakietu Cygwin z setup.exe.

Osobiście nie wyłączałbym żadnej funkcji, chyba że chodziło o instalowanie nieoficjalnych pakietów, takich jak te z projektu Cygwin Ports. [*] Dobrze jest mieć repozytorium Cygwin Ports, ale ponieważ zawiera ono tak wiele pakietów, instalując jeden może w końcu stworzyć sytuację "zainstaluj świat": pakiet A zależy od pakietów B, C i D, a C zależy od E, F, G, H i G zależy od I, J, K i ... Zależności hierarchie w ramach repozytorium pakietów Cygwin wydają się być bardziej płaskie i węższe niż repozytorium Cygports.

Czy istnieje sposób, w jaki możemy wykorzystać plik wykonywalny cygport do zbudowania cygport i zmienić również prefiks?

się domyślić, że po prostu dodać --prefix=/my/private/program/tree do CYGCONF_ARGS, ufam.


[*] Jeśli czujesz się zagubiony "Cygwin Ports" i cygport, podobieństwo nazw nie jest przypadkowa. cygport to narzędzie stworzone przez Yaakova Selkowitza dla siebie podczas tworzenia repozytorium pakietów Cygwin Ports. Później stało się dość popularne wśród innych opiekunów pakietów Cygwin, że wypchnął większość konkurencyjnych systemów kompilacji.

+1

Naprawdę wspaniała odpowiedź.Użyłem go już 5 razy. –