Jak zmusić MacPorts do odbudowania określonego portu? Ręcznie wprowadziłem zmianę do makefile MacPorts, aby utworzyć łącze do określonej biblioteki, ale brakującego symbolu nadal nie można znaleźć. Być może muszę przebudować, ale jak to zrobić bez czyszczenia portu (co usuwa zmodyfikowany przeze mnie plik)?
Motywacja
Używając MacPorts, próbuję zainstalować Qt (tj. qt4-mac-develPort) w Mac OS X Mountain Lion, ale kończy się niepowodzeniem z niezdefiniowanym symbolem ( _objc_msgSend_fixup). Bilet MacPorts z podobnym problemem doprowadziła mnie do wglądu naruszające QtWebKit.proplik pod:
QT4_SRC=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_aqua_qt4-mac-devel/qt4-mac-devel/work/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/WebKit/qt/
elsePredykatywnych on line 254 sprawdza Darwin 11 lub 10,7 SDK (z których oba są w Lion i niedostępne w Mountain Lion). Na if-elseliście nie ma predykatu dla zestawu Mountain Lion's WebKit.
254: } else: equals(DARWIN_MAJOR_VERSION, "11") | contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10.7.sdk") {
255: LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceLion.a
256: }
257:}
Jako brudną szybką poprawkę zmieniłem linię 254 na bezwarunkową else. Kiedy próbuję to przetestować ponownie uruchamiając port install
polecenie, widzę ten sam oryginalny błąd. Jestem prawie pewien, że MacPorts nawet nie patrzy na moją zmianę, ponieważ zmieniłem polecenie po wprowadzeniu tekstu śmieci do pliku i zmianie nazwy pliku. Teraz szukam sposobu na wymuszenie odbudowy.
Rzeczy, których próbowałem
- Przebuduj z
-sflagą (aby odbudować ze źródła):sudo port install -s qt4-mac-devel - Odbuduj po dotknięciu wszystkich plików źródłowych Qt:
find ${QT4_SRC} -name "*.cpp" -exec touch {} \; - Wyczyść port, a następnie przebuduj (no go ...
port cleanusuwaQtWebKit.proplik, który zawiera moje niezbędne zmiany)
Jakieś sugestie? Dzięki.