1. Co z patchami? Jak spatchować źródła? Użyj funkcji apply_patch (apply_patch plik [poziom [źródło]]). Na przykład: apply_patch fix_destdir.patch.gz 1 2 poziom nie jest obowiązkowy. Jeśli nie podany, domyślnie jest 0. Aby załatać inne źródło niż pierwsze, użyj trzeciego argumentu. Jeśli chcesz to zrobić, musisz najpierw podać poziom (choćby ""). W powyższym przykładzie, łatka będzie zaaplikowana do źródeł rozpakowanych w katalogu $src2. Plik z patchem nie musi być zgzipowany, ani nawet skompresowany. Łatki bzip2 są również obsługiwane. 2. Chcę automatycznie wykonać skrypt .builder, ale zamiast domyślnych wartości, które są ustawiane przez funkcję yes_or_no, powinny być inne. Jak przekazać skryptowi .builder inne wartości domyślne? Czy ma to coś wpólnego z opcją --scheme dla buildpkg? Tak, ma. Jeśli chcesz zmienić domyślną wartość zmiennej, np. with_pop3 w mutt.builder, stwórz plik scheme.no-pop3 w /usr/src/tgz/sources/mutt. Wpisz tam następującę linię: export def_with_pop3=n Funkcja 'yes_or_no ZMIENNA' szuka zmiennej def_ZMIENNA i jeśli jest taka, robi 'ZMIENNA=$def_ZMIENNA'. Nie zapomnij o 'export' i 'def_'. Wtedy, jeśli plik to scheme.no-pop3, możesz z tego skorzystać pisząc: buildpkg --scheme no-pop3 --auto mutt Możesz użyć dowolnej liczby opcji --scheme. 3. Mój program potrzbeuje użytkownika/grupy innej niż root. 'make install' instaluje plik dla tego użytkownika/grupy, ale otrzymuję błąd. Jak temu zapobiec? Jeśli budujesz program na koncie zwykłego użytkownika, to normalne, że nie może zostać zmienione posiadanie. Popraw Makefile aby nie zmieniał właściciela i użyj funkcji change_own w skrypcie .builder, jak tutaj: change_own main usr/sbin/popa3d popa3d.popa3d Zamiast 'main' możesz wpisać nazwę podpakietu który zawiera ten plik. Jest jeszcze inna funkcja: change_mod. Ma tą samą składnię, ale zamiast włąściciela podajesz prawa, np. 700 (format jest taki sam jak w poleceniu chmod). 4. Jak mogę zbudować pakiet dla innej architektury? Chcę i686, a nie i386, które jest domyslną. Użyj opcji --target dla buildpkg, na przykład: buildpkg --target i686 mutt Możesz również budować dla wielu architektur: buildpkg --target "i586 i686" mutt Wtedy pakiet będzie budowany dwa razy. Zauważ, że nie wszystkie źródła mogą być budowane w ten sposób. Jeśli źródła są oparte o autoconf (skrypt ./configure), to działa. Inne muszą być poprawione. Będzie to rozwiązane w przyszłości (jakoś). 5. Co to za dziwny komunikat o --host kiedy skrypt ./configure startuje? pwbuilder przekazuje parametr --host do skryptu ./configure aby powiedzieć mu o docelowej architekturze. Niektóre programy polegają na tej informacji. Jeśli nie chcesz tego, użyj funkcji build_host_off przed wywołaniem do_configure. 6. Jest jakaś funkcja, która pozwala na podmianę danego ciągu w pliku? Tak. Jest funkcja replace_regexp: replace_regexp plik wyrazenie_regularne ciag Na przykład: replace_regexp $src1/Makefile "^CFLAGS=-O2$" "CFLAGS=-O2 -Wall" .