Como eu forço o MacPorts a reconstruir uma porta específica? Eu fiz manualmente uma alteração em um makefile do MacPorts para vincular em uma biblioteca específica, mas o símbolo ausente ainda não pode ser encontrado. Talvez eu precise reconstruir, mas como faço isso sem limpar a porta (o que exclui o arquivo que eu modifiquei)?
Motivação
Usando o MacPorts, estou tentando instalar o Qt (ou seja, a qt4-mac-devel
port) no Mac OS X Mountain Lion,
mas falha com um símbolo indefinido ( _objc_msgSend_fixup
). Um tíquete MacPorts com um problema semelhante
me levou a inspecionar o arquivo QtWebKit.pro
ofensivo em:
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/
O predicado else
na linha 254 verifica o Darwin 11 ou o 10.7 SDK (ambos estão no Lion e não estão disponíveis no Mountain Lion).
Não há predicado na lista if-else
do WebKit da Mountain Lion.
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:}
Como uma correção rápida suja , eu mudei a linha 254 para ser uma else
incondicional. Quando tento testar isso re-executando o port install
comando, vejo o mesmo erro original. Tenho certeza que o MacPorts não está nem olhando para a minha alteração porque eu reran o comando depois de inserir o texto lixo no arquivo e renomear o arquivo. Então, estou procurando uma maneira de forçar a reconstrução.
Coisas que eu tentei
- Reconstrua com o sinalizador
-s
(para reconstruir a partir da origem): sudo port install -s qt4-mac-devel
- Reconstrua depois de tocar em todos os arquivos de origem do Qt:
find ${QT4_SRC} -name "*.cpp" -exec touch {} \;
- Limpe a porta e, em seguida, reconstrua (sem ir ...
port clean
exclui o arquivo QtWebKit.pro
, que contém minhas alterações necessárias)
Alguma sugestão? Obrigado.