Compilazione fcitx
Moderatore: Staff
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
Codice: Seleziona tutto
sed -e 's|/usr/lib${LIBDIRSUFFIX}/qt|/opt/qt4|g' qt.SlackBuild > qt-opt.SlackBuild
Codice: Seleziona tutto
# Add profile scripts
mkdir -p $PKG/etc/profile.d
sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.sh \
> $PKG/etc/profile.d/qt4.sh
sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.csh \
> $PKG/etc/profile.d/qt4.csh
chmod 0755 $PKG/etc/profile.d/*
Codice: Seleziona tutto
# Add profile scripts
mkdir -p $PKG/etc/profile.d
sed -e "s#usr/lib/#PERCORSO IN /opt SOSTITUITO DA REGEX/#g" $CWD/profile.d/qt4.sh \
> $PKG/etc/profile.d/qt4-opt.sh
sed -e "s#usr/lib/#PERCORSO IN /opt SOSTITUITO DA REGEX/#g" $CWD/profile.d/qt4.csh \
> $PKG/etc/profile.d/qt4-opt.csh
chmod 0644 $PKG/etc/profile.d/*
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
alcune parti dello slackbuild no mi convincono più di tanto, ad esempio
Codice: Seleziona tutto
# The infamous qt -> qt-${VERSION} link that keeps the full path out of .la files:
( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf qt qt-${VERSION} )
Stessa cosa qui:
Codice: Seleziona tutto
# Link the shared libraries into /usr/lib:
( cd $PKG/usr/lib${LIBDIRSUFFIX}
for file in qt/lib/*.so* ; do
ln -sf $file .
done
)
Codice: Seleziona tutto
# Link the shared libraries into /usr/lib:
( cd $PKG/usr/lib${LIBDIRSUFFIX}
for file in qt/lib/*.so* ; do
ln -sf $file .
done
)
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
Mea culpa
Riprova usando come pattern di sostituzione /usr/lib${LIBDIRSUFFIX}.
PS: ti consiglio di impostare il compilatore c e c++ di sistema a ccache nel fare queste prove, in modo da minimizzare i tempi di ricompilazione nel caso di errori.
Per farlo, ti basta esportare nella shell che usi per lanciare lo SlackBuild:
Codice: Seleziona tutto
export CC="ccache cc" CXX="ccache g++"
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
Allora usando come pattern di sostituzione /usr/lib${LIBDIRSUFFIX} lo slackbuild mi sembra corretto, l'unica incertezza è qui:414N ha scritto:Hai ragione, nella regex che ho riportato si vanno a sostituire solo le occorrenze di /usr/lib${LIBDIRSUFFIX}/qt e non di /usr/lib${LIBDIRSUFFIX}.
Mea culpa
Riprova usando come pattern di sostituzione /usr/lib${LIBDIRSUFFIX}.
PS: ti consiglio di impostare il compilatore c e c++ di sistema a ccache nel fare queste prove, in modo da minimizzare i tempi di ricompilazione nel caso di errori.
Per farlo, ti basta esportare nella shell che usi per lanciare lo SlackBuild:Alcuni programmi hanno problemi nel gestire un compilatore contenente uno spazio all'interno del proprio percorso, ma non credo che cmake si spaventi per così poco.Codice: Seleziona tutto
export CC="ccache cc" CXX="ccache g++"
Codice: Seleziona tutto
# Put a ton of links to more "normal" places. I'd just use a prefix of /usr, but it
# creates a ton of new (and ambiguously named) /usr directories...
mkdir -p $PKG/usr/bin
( cd $PKG/opt/qt4/qt/bin
for file in * ; do
( cd $PKG/usr/bin ; ln -sf /opt/qt4/qt/bin/$file . )
done
)
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
Allora, in realtà la directory bin/ si trova esattamente sotto /tmp/package-qt/usr/ quindi va bene, adesso l'unico errore che si presenta (senza uscire però) è414N ha scritto:Sì, mi pare sensato. Se lo SlackBuild dovesse uscire per errore proprio in quel frangente lì, controlla dove si trova la directory bin/ sotto /tmp/package-qt e sostituisci di conseguenza prima di rilanciare l'impacchettamento.
Codice: Seleziona tutto
make[1]: Leaving directory `/tmp/qt-4.7.0_7abde40/translations'
cp -f -r /tmp/qt-4.7.0_7abde40/doc/html /tmp/package-qt/opt/qt4/qt/doc/html
cp: cannot stat `/tmp/qt-4.7.0_7abde40/doc/html': No such file or directory
make: [install_htmldocs] Error 1 (ignored)
cp -f -r /tmp/qt-4.7.0_7abde40/doc/qch /tmp/package-qt/opt/qt4/qt/doc/qch
cp: cannot stat `/tmp/qt-4.7.0_7abde40/doc/qch': No such file or directory
make: [install_qchdocs] Error 1 (ignored)
Poi ho notato di sfuggita qualche altro file che non trova, ma pensado qualche file di log lo creasse di default, non sono in grado di dire che roba sia, mi pare che sia legato alle patch, ma non ne sono certo. Dopo farò qualche altra prova, ancora grazie 414N.
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
Ho fatto qualche prova e guardato per bene lo SlackBuild e mi sono resto conto che alcune modifiche sono comunque necessarie, al di là delle banali sostituzioni:
- Usa come comando per la sostituzione il seguente:
In questo modo, in un colpo solo risolviamo il problema del PREFIX nel quale andranno ad installarsi le qt.
Codice: Seleziona tutto
sed -e 's|usr/lib${LIBDIRSUFFIX}|opt/qt4|g' qt.SlackBuild > qt-opt.SlackBuild
- Gli script per la modifica del profilo vanno bene in generale ma hanno un problema col PATH. Nello specifico, all'interno di questi script il PATH viene così modificato:
che va bene per l'installazione "standard" delle qt, ma non va bene per un'installazione "affiancata", dato che i binari delle qt "originali" in /usr/bin avranno la precedenza rispetto ai binari delle qt in /opt. Visto che questi script di profilo li richiamerai solo quando necessario (ovvero quando vorrai compilare qualcosa con le nuove qt), sarebbe bene invertire questo ordine. Puoi farlo a mano oppure sempre tramite l'amico sed (supponendo di essere nella directory dello SlackBuild):
Codice: Seleziona tutto
PATH="$PATH:$QT4DIR/bin"
Codice: Seleziona tutto
sed -i 's|$PATH:$QT4DIR/bin|$QT4DIR/bin:$PATH|' profile.d/qt4.sh sed -i 's|$path $QT4DIR/bin|$QT4DIR/bin $path|' profile.d/qt4.csh
- Tornando allo SlackBuild, ricordati di applicare le modifiche riguardanti i file di profilo riportate qualche post fa (cambio nome del file di destinazione e modifica dei permessi da 755 a 644).
- Rimuovi il blocco riguardante la creazione dei link in $PKG/usr/bin, che si trova proprio dopo il pezzetto che si occupa degli script di profilo. Diventa inutile visto che userai lo script in profile.d per impostare il PATH.
- Lascia il pezzetto relativo a pkgconfig subito dopo il blocco di $PKG/usr/bin, visto che qualche programma potrebbe averne bisogno.
- Rimuovi tutto il resto (icone, documentazione e file desktop) fino ad arrivare alla riga "mkdir -p $PKG/install"
Ovviamente, prima di installare (con installpkg, mi raccomando) verifica che questo sia vero.
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
Non so che dire, mi dispiace averti fatto lavorare e perdere del tempo... Davvero grazie, faccio un test e posto il risultato.414N ha scritto:Figurati
Ho fatto qualche prova e guardato per bene lo SlackBuild e mi sono resto conto che alcune modifiche sono comunque necessarie, al di là delle banali sostituzioni:Con lo SlackBuild così modificato dovresti ottenere un pacchetto con tutto il contenuto in /opt (tranne i due script in /etc/profile.d).
- Usa come comando per la sostituzione il seguente:
In questo modo, in un colpo solo risolviamo il problema del PREFIX nel quale andranno ad installarsi le qt.Codice: Seleziona tutto
sed -e 's|usr/lib${LIBDIRSUFFIX}|opt/qt4|g' qt.SlackBuild > qt-opt.SlackBuild
- Gli script per la modifica del profilo vanno bene in generale ma hanno un problema col PATH. Nello specifico, all'interno di questi script il PATH viene così modificato:
che va bene per l'installazione "standard" delle qt, ma non va bene per un'installazione "affiancata", dato che i binari delle qt "originali" in /usr/bin avranno la precedenza rispetto ai binari delle qt in /opt. Visto che questi script di profilo li richiamerai solo quando necessario (ovvero quando vorrai compilare qualcosa con le nuove qt), sarebbe bene invertire questo ordine. Puoi farlo a mano oppure sempre tramite l'amico sed (supponendo di essere nella directory dello SlackBuild):Codice: Seleziona tutto
PATH="$PATH:$QT4DIR/bin"
Codice: Seleziona tutto
sed -i 's|$PATH:$QT4DIR/bin|$QT4DIR/bin:$PATH|' profile.d/qt4.sh sed -i 's|$path $QT4DIR/bin|$QT4DIR/bin $path|' profile.d/qt4.csh
- Tornando allo SlackBuild, ricordati di applicare le modifiche riguardanti i file di profilo riportate qualche post fa (cambio nome del file di destinazione e modifica dei permessi da 755 a 644).
- Rimuovi il blocco riguardante la creazione dei link in $PKG/usr/bin, che si trova proprio dopo il pezzetto che si occupa degli script di profilo. Diventa inutile visto che userai lo script in profile.d per impostare il PATH.
- Lascia il pezzetto relativo a pkgconfig subito dopo il blocco di $PKG/usr/bin, visto che qualche programma potrebbe averne bisogno.
- Rimuovi tutto il resto (icone, documentazione e file desktop) fino ad arrivare alla riga "mkdir -p $PKG/install"
Ovviamente, prima di installare (con installpkg, mi raccomando) verifica che questo sia vero.
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
Codice: Seleziona tutto
. /etc/profile.d/qt4-new.sh
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
si,me ne sono ricordato, ho provato anche a laciarlo a mano prima dell'esecuzione dello slackbuild, ma non cambia nulla.414N ha scritto:Ti sei ricordato di inserire questa riga prima di iniziare il processo di build all'interno dello SlackBuild di fcitx?Codice: Seleziona tutto
. /etc/profile.d/qt4-new.sh
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Compilazione fcitx
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Compilazione fcitx
414N ha scritto:Potresti riportare l'output del solo cmake, dopo aver caricato lo script qt4-new.sh?
Codice: Seleziona tutto
fcitx-4.2.1/cmake/
fcitx-4.2.1/cmake/CMakeLists.txt
fcitx-4.2.1/cmake/COPYING-CMAKE-SCRIPTS
fcitx-4.2.1/cmake/FcitxConfig.cmake
fcitx-4.2.1/cmake/FcitxConfigVersion.cmake.in
fcitx-4.2.1/cmake/FcitxMacro.cmake
fcitx-4.2.1/cmake/FindDL.cmake
fcitx-4.2.1/cmake/FindICU.cmake
fcitx-4.2.1/cmake/FindLibexecinfo.cmake
fcitx-4.2.1/cmake/FindLibiconv.cmake
fcitx-4.2.1/cmake/FindLibintl.cmake
fcitx-4.2.1/cmake/FindLibkvm.cmake
fcitx-4.2.1/cmake/FindPthread.cmake
fcitx-4.2.1/cmake/UseDoxygen.cmake
fcitx-4.2.1/cmake/cmake_uninstall.cmake.in
...
Codice: Seleziona tutto
...
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for doxygen...
-- Looking for doxygen... - found /usr/bin/doxygen
-- Looking for dot tool...
-- Looking for dot tool... - NOT found
-- Found DOXYFILE_IN: /tmp/SBo/fcitx-4.2.1/Doxyfile.in
-- Looking for include files HAVE_UNISTD_H
-- Looking for include files HAVE_UNISTD_H - found
-- Looking for include files HAVE_MALLOC_H
-- Looking for include files HAVE_MALLOC_H - found
-- Looking for include files HAVE_STDBOOL_H
-- Looking for include files HAVE_STDBOOL_H - found
-- Looking for asprintf
-- Looking for asprintf - found
-- Looking for dgettext
-- Looking for dgettext - found
-- Found Libintl: /usr/include
-- Looking for iconv_open
-- Looking for iconv_open - found
-- Performing Test ICONV_HAVE_WERROR
-- Performing Test ICONV_HAVE_WERROR - Success
-- Performing Test LIBICONV_SECOND_ARGUMENT_IS_CONST
-- Performing Test LIBICONV_SECOND_ARGUMENT_IS_CONST - Failed
-- Found Libiconv: /usr/include
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Found Pthread: /usr/include
-- Looking for backtrace
-- Looking for backtrace - found
-- Found LibExecinfo: /usr/include
-- Could NOT find Libkvm (missing: LIBKVM_INCLUDE_DIR LIBKVM_FOUND)
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/libX11.so
-- checking for module 'cairo-xlib >= 1.0'
-- found cairo-xlib , version 1.8.8
-- checking for module 'pangocairo >= 1.0'
-- found pangocairo , version 1.22.4
-- checking for module 'dbus-1 >= 1.1.0'
-- found dbus-1 , version 1.2.14
-- checking for module 'glib-2.0'
-- found glib-2.0, version 2.18.4
-- checking for module 'dbus-glib-1'
-- found dbus-glib-1, version 0.80
-- checking for module 'gtk+-2.0'
-- found gtk+-2.0, version 2.14.7
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.7.0
-- Found OpenSSL: /usr/lib/libssl.so
-- Looking for _POSIX_TIMERS
-- Looking for _POSIX_TIMERS - found
-- Found ICU header files in /usr/include
-- Found ICU libraries: /usr/lib/libicuuc.so
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/SBo/fcitx-4.2.1/build