środa, 23 grudnia 2015

ClamAV-GUI - nakładka na clamav i freshclam w Qt

Od jakiegoś czasu udostępniam skrypty umożliwiające budowę aplikacji ClamAV-GUI, która jest dość wygodną w obsłudze nakładką na clamav oraz freshclam. Obecna wersja 0.4 doczekała się właśnie niewielkiej poprawki znalezionych błędów. Dodano również nowe tłumaczenia. A propos tłumaczeń - od pewnego czasu próbuję przetłumaczyć interfejs programu, ale przyznam, że idzie mi to jak po grudzie - cóż, pewnie jak nie czuję potrzeby (rzadko używam programu a wersja angielska wystarcza mi w zupełności), to nie ma jakiegoś wewnętrznego przymusu. Obecnie przetłumaczone jest ok. 60% menu. Jeśli zatem ktoś chciałby się przyłączyć i pomóc w tym tłumaczeniu, to zapraszam.
Kod programu umożliwia kompilację z wykorzystaniem zarówno Qt4 jak i Qt5. Tak też przygotowany jest PKGBUILD, który tworzy obie wersje aplikacji. Oczywiście nie można ich obu mieć zainstalowanych w tym samym czasie, że o potrzebie takiego rozwiązania nie wspomnę. Dlatego też albo budujemy je w "tradycyjny" dla Archa sposób, potem zaś instalujemy wybrany pakiet za pomocą pacman -U nazwa_pakietu, albo już podczas budowy dokonujemy odpowiedniego wyboru i zbudowana (ewentualnie również zainstalowana) zostanie wyłącznie ta paczka, którą chcemy. Aplikacje, które są budowane na podstawie poniższych skryptów nazywają się clamav-gui-qt4 oraz clamav-gui-qt5, zatem łatwo domyślić się, która z nich używa której wersji Qt. Jeśli zatem podczas budowania zdecydowalibyście się na jeden z nich, to należy użyć komendy:
makepkg -sirc --pkg clamav-gui-qt4
lub
makepkg -sirc --pkg clamav-gui-qt5
odpowiednio dla qt4 lub qt5.
makepkg -sirc --pkg clamav-gui-qt4
PKGBUILD
# Maintainer: pavbaranov
# Contributor: marcin82

pkgbase=clamav-gui
pkgname=('clamav-gui-qt5' 'clamav-gui-qt4')
pkgver=0.4.1
pkgrel=1
pkgdesc="Qt GUI for ClamAV"
arch=("i686" "x86_64")
url="http://kde-apps.org/content/show.php/ClamAV-GUI?content=170782"
license=('GPL3')
depends=("clamav")
makedepends=("qt4" "qt5-base")
conflicts=("clamav-gui")
install=("${pkgbase}.install")
source=("http://kde-apps.org/CONTENT/content-files/170782-ClamAV-GUI-${pkgver}.tgz"
"${pkgbase}.install"
)

md5sums=('5d6989cd6847a75b7a4540ce9c19723a'
         '8be0cd5bbfd11da70b83fc63af8c81e7')

prepare() {
    mkdir -p build{-qt4,-qt5}
    }
    
build() {
    cd build-qt4
    qmake-qt4 ../ClamAV-GUI
    make 
    
    cd ../build-qt5
    qmake-qt5 ../ClamAV-GUI
    make
    }
   
package_clamav-gui-qt4() {
    depends=('clamav' 'qt4')
    conflicts=('clamav-gui-qt5')
    
    cd build-qt4
    install -Dm755 ${pkgbase} ${pkgdir}/usr/bin/${pkgbase}
    make DESTDIR="$pkgdir/" install
    }

package_clamav-gui-qt5() {
    depends=('clamav' 'qt5-base')
    conflicts=('clamav-gui-qt4')
    
    cd build-qt5
    install -Dm755 ${pkgbase} ${pkgdir}/usr/bin/${pkgbase}    
    make DESTDIR="$pkgdir/" install
    }
clamav-gui.install
post_install() {
  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
  update-desktop-database -q
}

post_upgrade() {
  post_install $1
}


post_remove() {
  post_install $1
}
 Przy okazji zwracam się do Was z pytaniem. Kod programu umożliwia jego kompilację z użyciem zarówno Qt4, jak i Qt5. Ostatnio w Archu porzucone zostało wsparcie dla KDE4, a zatem odeszło chyba ostatnie środowisko budowane z użyciem Qt4. Jest zatem jeszcze sens utrzymywania PKGBUILDu, który umożliwia budowę obu wersji?