Coder Social home page Coder Social logo

kiwix / kiwix-desktop Goto Github PK

View Code? Open in Web Editor NEW
673.0 19.0 88.0 7.25 MB

Kiwix for Windows and GNU/Linux desktops

Home Page: https://download.kiwix.org/release/kiwix-desktop/

License: GNU General Public License v3.0

C++ 93.48% QMake 2.44% C 0.03% CSS 3.13% HTML 0.45% Python 0.47%
qt5 windows linux zim offline wikipedia

kiwix-desktop's Introduction

Download on Flathub

Kiwix Desktop

The Kiwix Desktop is a viewer/manager of ZIM files for GNU/Linux and Microsoft Windows OSes.

Release Repositories Build Status CodeFactor License: GPL v3

Disclaimer

This document assumes you have a little knowledge about software compilation. If you experience difficulties with the dependencies or with the Kiwix library compilation itself, we recommend to have a look at kiwix-build.

Dependencies

The Kiwix Desktop application relies on many third party software libraries. The following libraries need to be available:

These dependencies may or may not be packaged by your operating system. They may also be packaged but only in an older version. The compilation script will tell you if one of them is missing or too old. In the worst case, you will have to download and compile a bleeding edge version by hand.

Libkiwix has to be compiled dynamically, the best way to have it is to use kiwix-build.

Install needed packages (on Ubuntu 18.04+):

sudo apt-get install libqt5gui5 qtbase5-dev qtwebengine5-dev \
     libqt5svg5-dev qt5-image-formats-plugins aria2 \
     qttools5-dev-tools qtchooser qt5-qmake \
     qtbase5-dev-tools

Compilation

Once all dependencies are installed, you can compile Kiwix Desktop:

qmake .
make

qmake will use pkg-config to locate libraries. Depending on where you've installed libkiwix (and other libraries) you may have to update the env variable PKG_CONFIG_PATH. It can be set as follows, for example, for x86-64 native systems:

export PKG_CONFIG_PATH="<...>/BUILD_native_dyn/INSTALL/lib/x86_64-linux-gnu/pkgconfig"

You may want to simply open the kiwix-desktop project in QtCreator and then compile the project from there (don't forget to update PKG_CONFIG_PATH if necessary).

Compilation with Qt6

There is initial support for Qt6. Additional packages are needed:

sudo apt install qt6-base-dev qt6-base-dev-tools qt6-webengine-dev libqt6webenginecore6-bin libqt6svg6

And qmake needs to be configured to use Qt6. First confirm qmake is using the right version:

qtchooser -install qt6 $(which qmake6)   # run once
export QT_SELECT=qt6                     # set in environments where Qt6 builds are desired
qmake --version

produces this output:

$ qmake --version
QMake version 3.1
Using Qt version 6.2.4 in /usr/lib/aarch64-linux-gnu

then build as normal:

qmake .
make

Installation

To install Kiwix Desktop on the system:

sudo make install

Run

To run Kiwix Desktop

kiwix-desktop

You might have to refresh the ld database before:

sudo ldconfig

If you face problems such as library not found..., add the following environment variable:

LD_LIBRARY_PATH="<...>/BUILD_native_dyn/INSTALL/lib/x86_64-linux-gnu"

Communication

Available communication channels:

For more information, please refer to https://wiki.kiwix.org/wiki/Communication.

License

GPLv3 or later, see LICENSE for more details.

kiwix-desktop's People

Contributors

abijeet avatar ambrevar avatar amire80 avatar asashnov avatar goutte avatar hanyoung-uwu avatar hashworks avatar jetownfeve21 avatar juuz0 avatar kelson42 avatar ksc3899 avatar legoktm avatar mananjethwani avatar maneeshpm avatar mgautierfr avatar popolechien avatar psypherium avatar quentin-hsk avatar rgaudin avatar rishabh-soni avatar saket-07 avatar sgourdas avatar shaopenglin avatar translatewiki avatar veloman-yunkan avatar vinurk avatar vishal-1408 avatar xvitaly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kiwix-desktop's Issues

Alpha4 on Ubuntu 18.04 crash at start

$ ./kiwix-desktop_x86_64_2.0-alpha4.appimage 
"/home/kelson/.local/share/kiwix"
0
terminate called after throwing an instance of 'std::runtime_error'
  what():  Cannot connect to aria2c rpc
Aborted (core dumped)

Kiwix Doesn't Work

Latest Kiwix Linux Version doesn't work on Ubuntu 18.04 and Linux Mint 19.

Here is the terminal outputs:

okan@okan-Inspiron-3542:~$ /home/okan/Genel/kiwix/kiwix
XPCOMGlueLoad error for file /home/okan/Genel/kiwix/xulrunner/libxul.so:
/home/okan/Genel/kiwix/xulrunner/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16)
Couldn't load XPCOM.

List open tabs for the search

Firefox shows the existing tabs matching the search. You can also restrict the search to the open tabs by adding a "%" character (which makes it faster).

Full-text index for finding articles via search phrases

When there is no wikipedia article on a subject, the wikipedia may still contain articles with information on the subject - an index that covers a wikipedia's full text would make it possible to identify such articles via appropriate search terms and search phrases. E.g., in kiwix 0.9 (Windows) it is possible to find information on a person for whom there is no article in the wikipedia, by entering their "first name last name" in quotation marks and any articles with the exact search phrase are then listed in the result window

German Wikipedia missing

German Wikipedia appears to be missing, at least it cannot be found by searching "wiki" and choosing "Deutsch" from the language menu.

german

Kiwix download GUI unreadable when using dark GTK+ theme

I have a light-on-dark GTK+ (and Qt is set to use the GTK+ theme, if that matters for Kiwix) theme configured on my computer. Kiwix download view is extremely hard to read (light on light as well as dark on dark). This needs to be handled more gracefully, for example using an algorithm to select a good contrasting colour (see this stack overflow post) or by selecting a suitable colour from the system theme.
unreadable_kiwix

I have not yet tested to see if reading articles still looks okay.

Library pagination seems to be wrong

My language is English and "All Files" tells me that I have 44 pages, but if I click on "Last", I get no content. Page number 43 seems OK.

An other problem (probably related) with pagination is that, if I just start Kiwix and click on last and then click on previous, then even page 43, 42, 41, etc... are empty.

Default library does not match language settings

There are too many zim files available for comfortable or relevant browsing. When in the library, the application should by default offer content in the language Kiwix is set in (e.g. Kiwix is in French -> files shown in download library are in French)
language setting

Nightly does not run on Ubuntu 16.06

$ ./kiwix-desktop_x86_64_2018-06-22 
./kiwix-desktop_x86_64_2018-06-22: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.23' not found (required by /tmp/.mount_kiwix-GtaCwg/usr/bin/../lib/libxapian.so.30)
./kiwix-desktop_x86_64_2018-06-22: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/.mount_kiwix-GtaCwg/usr/bin/../lib/libaria2.so.0)
./kiwix-desktop_x86_64_2018-06-22: /lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /tmp/.mount_kiwix-GtaCwg/usr/bin/../lib/libpng16.so.16)
./kiwix-desktop_x86_64_2018-06-22: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/.mount_kiwix-GtaCwg/usr/bin/../lib/libsystemd.so.0)

Kiwix-Desktop 2.0 alpha not able to read big ZIM file on Windows

From @Kelgot on August 3, 2018 17:31

I have windows 10 OS and downloaded the most recent versions of kiwix and also of the Wikipedia zim file that has pictures and no videos (around 70-80GB). I have tried opening the zim file but it just says that is can not open and asks whether I'm sure if it is a zim file. The Wikipedia zim was downloaded through utorrent, so I wouldn't think it would be corrupted. Get back to me if you need any more information.

Copied from original issue: kiwix/overview#9

Put kiwix-desktop on USB/DVD drive

How to do that and allow Kiwix-desktop to automatically load the content on device?

I see two approaches which are not exclusives:

  • If there is a library.xml in the same directory (as the kiwix-desktop binary) then load it
  • If we have *.zim files in the same directory then load them

Missing (up-to-date) dependencies on debian 9.5 (stable)

On debian 9.5 (stable), kiwix's appimage fail to start :

$ ./kiwix-desktop_x86_64_2018-10-05.appimage 
./kiwix-desktop_x86_64_2018-10-05.appimage: /lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /tmp/.mount_kiwix-OwhChD/usr/bin/../lib/libpng16.so.16)
./kiwix-desktop_x86_64_2018-10-05.appimage: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/.mount_kiwix-OwhChD/usr/bin/../lib/libsystemd.so.0)

Debian version zlib : 1.2.8
Debian version glibc : 2.24-11+deb9u1

Please provide an AppImage for Linux

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

alpha6 appimage does not start on my ubuntu 18.04

$ wget https://download.kiwix.org/release/kiwix-desktop/kiwix-desktop_x86_64_2.0-alpha6.appimage
--2018-11-03 14:56:58--  https://download.kiwix.org/release/kiwix-desktop/kiwix-desktop_x86_64_2.0-alpha6.appimage
Resolving download.kiwix.org (download.kiwix.org)... 62.210.143.55
Connecting to download.kiwix.org (download.kiwix.org)|62.210.143.55|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125242760 (119M)
Saving to: ‘kiwix-desktop_x86_64_2.0-alpha6.appimage’

kiwix-desktop_x86_64_2.0-alpha6.appimage           100%[================================================================================================================>] 119.44M  55.7MB/s    in 2.1s    

2018-11-03 14:57:01 (55.7 MB/s) - ‘kiwix-desktop_x86_64_2.0-alpha6.appimage’ saved [125242760/125242760]

kelson@camber:/tmp$ chmod +x kiwix-desktop_x86_64_2.0-alpha6.appimage 
kelson@camber:/tmp$ ./kiwix-desktop_x86_64_2.0-alpha6.appimage 
"/home/kelson/.local/share/kiwix"
0
Cannot create downloader Cannot connect to aria2c rpc
Cannot create downloader Cannot connect to aria2c rpc
Cannot create downloader Cannot connect to aria2c rpc
Cannot create downloader Invalid return code from aria
Cannot create downloader Invalid return code from aria
add widget
Unknown property icon
kelson@camber:/tmp$

Search is way too slow

I use Stackoverflow zim file (2018 version)

It works: I can see pages and search works but is way too slow because:

It starts searching as soon as I type ONE Character! This is useless behaviour! It should only start to search when I have not typed any character for say 1 second. If I immediatly type antoher character... wich most people do if they type a search. So if I search for "Postman" it will

search for "p" this takes about 20 seconds
search for "po" this takes another 10 seconds
search for "pos" this takes another 5 seconds

etc..

The keyword search takes minutes this way!

I just want it to search for "Postman" and not all the intermediate stuff

Please add a manual search button or start searching after i am done typing.

FTBFS on Debian "testing"

g++ -Wl,-rpath,'$ORIGIN/../lib64\ ' -Wl,-z,relro -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu -o kiwix-desktop main.o mainwindow.o kiwixschemehandler.o kiwixapp.o blobbuffer.o kiwixrequestinterceptor.o kiwixwebview.o moc_mainwindow.o moc_kiwixwebview.o   -lQt5WebEngineWidgets -lQt5WebEngineCore -lQt5Quick -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5WebChannel -lQt5Qml -lQt5Network -lQt5Positioning -lQt5Core -lGL -lpthread
kiwixschemehandler.o: In function `KiwixSchemeHandler::requestStarted(QWebEngineUrlRequestJob*)':
./kiwixschemehandler.cpp:23: undefined reference to `kiwix::Reader::getArticleObjectByDecodedUrl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, zim::Article&) const'
./kiwixschemehandler.cpp:26: undefined reference to `kiwix::Reader::getArticleObjectByDecodedUrl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, zim::Article&) const'
kiwixschemehandler.o: In function `KiwixSchemeHandler::requestStarted(QWebEngineUrlRequestJob*)':
/usr/include/zim/file.h:50: undefined reference to `zim::FileImpl::getDirent(unsigned int)'
/usr/include/zim/file.h:50: undefined reference to `zim::FileImpl::getDirent(unsigned int)'
/usr/include/zim/file.h:96: undefined reference to zim::FileImpl::getMimeType[abi:cxx11](unsigned] short) const'
/usr/include/zim/file.h:50: undefined reference to `zim::FileImpl::getDirent(unsigned int)'
/usr/include/zim/file.h:96: undefined reference to zim::FileImpl::getMimeType[abi:cxx11](unsigned] short) const'
/usr/include/zim/file.h:50: undefined reference to `zim::FileImpl::getDirent(unsigned int)'
/usr/include/zim/file.h:96: undefined reference to zim::FileImpl::getMimeType[abi:cxx11](unsigned] short) const'
/usr/include/zim/file.h:60: undefined reference to `zim::FileImpl::getCluster(unsigned int)'
/usr/include/zim/file.h:65: undefined reference to `zim::Cluster::getBlob(unsigned int) const'
kiwixapp.o: In function `KiwixApp::~KiwixApp()':
./kiwixapp.cpp:12: undefined reference to `kiwix::Reader::~Reader()'
kiwixapp.o: In function `KiwixApp::openZimFile(QString const&)':
./kiwixapp.cpp:19: undefined reference to `kiwix::Reader::~Reader()'
./kiwixapp.cpp:22: undefined reference to `kiwix::Reader::Reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
collect2: error: ld returned 1 exit status
Makefile:178: recipe for target 'kiwix-desktop' failed

Search engine does not work well with Debian unstable and Ml

Reported by kelson42 on 2011-03-13 09:26 UTC
file: http://tmp.kiwix.org/tmp/ml-collection.zim
pattern: വ്യാകരണഗ്രന്ഥങ്ങളിൽ
title: കേരളപാണിനീയം/നാമാധികാരം/വിഭക്തിപ്രകരണം
text snippet: [...] ദ്വിതീയ എന്ന ക്രമത്തിലുള്ള പേരാണു് മറ്റുള്ള വ്യാകരണഗ്രന്ഥങ്ങളിൽ
കാണുന്നതു്. [...]

Search the give pattern dives "no result"

Black screen on videos

The videos contained in certains ZIM files do not play, black screen instead, in some version sounds works with black screen :
-Windows 7 Ultimate 64 bits with kiwix 0.9, no sound no videos
-Windows 7 ultimate 64 bits with kiwix 2.0 alpha, sound but still no video
-Edubuntu 14 no sound no videos
-edubuntu in kiwix-serve works fine

zim file 'c'est pas sorcier'

hope I gave enough details to solve that issue

The address bar should be connected to the tab bar.

From (@schoenbaechler)

The address bar and the tab bar should be connected. In a sense that when users switch to another tab, the address bar reflects it. Typing a new search term into the address bar and hitting enter should open the page in the already open tab. This is also the behavior in all major web browsers.

Otherwise it’s going be difficult to add an article to the reading list (has we will use the button in the address bar to add to reading list)

Aborted downloads are not cleared from storage folder

I suspect Kiwix crashed when I started several concurrent downloads (tbc): when reopening it, two of the files I had been downloading were listed as "local", yet obviously not downloaded
image
Admittedly the download restarted where it left, so I'm not entirely sure if it is a bug or a feature.

Internship C++ / Qt to build new Kiwix for desktop (6 months)

== Our goal ==

Kiwix is a 10 years old software suite developed to give access to Web content to people with no Internet access. It works a bit like a digital offline library.

Its older piece, Kiwix desktop, is a classic desktop application for Windows and Linux which reads data files with the extension *.zim. It displays the content like a Web browser would do.

Based on the deprecated Xulrunner framework of Mozilla, Kiwix desktop has now reached it end of lifecycle and also urgently needs a full revamping of its user interface, using the Qt windowing library.

As far as features go, the new version of kiwix-desktop should more or less offer the same functionalities as the older version:

  • Portable on Windows/Linux
  • Internationalization and localization support
  • Remote and local library management
  • Loading, displaying an searching in the ZIM files
  • Tabulations
  • Bookmarking/reading list

Most of the application’s “core” already exists as a software library called Kiwix library. Most of the work is about binding it with a new – and yet to be created – user interface.

You would work in close collaboration with a UX expert/UI designer and with the C++ developer of the core library kiwix-lib. This work is part of a more global effort to improve the Kiwix software as a whole.

== Your profile ==

You are a developer committed to (or at least familiar with) open source software, and familiar with GNU/Linux. You already have a small working experience with Qt and C++ (on personal projects for example). Ideally you will to share, explain, and demonstrate a past project (for example on Github).

== Logistics ==

This internship is paid ~1000€/month and takes place in Lyon, France. The work will be organised and framed by an experienced developer familiar with the project.

http://www.kiwix.org/internship-c-qt-6-months/

Cannot Open a ZIM File

Hello,I have got amaybe a bug on my laptop.

  • windows version: 10.0.17134 Windows 10 Pro
  • kiwix version: Kiwix 0.9

when I want to cpen a ZIM,the Kiwix will close automatically.

I try these solusion but the problem is still in there

  • try another version ZIM file
  • use Compatibility Mode

Compiling issues under Arch (gcc8)

I had some issues with building kiwix-desktop under Arch Linux.
First $$QMAKE_LUPDATE and $$QMAKE_LRELEASE were not set. But this was an easy fix.

It only builds with qmake QMAKE_CFLAGS_ISYSTEM= because -isystem works differently in gcc8.

Scaling is wrong on my machine and QT_AUTO_SCREEN_SCALE_FACTOR=0 helps with that.

Now it works and it's looking a lot better than the old version.

aria2c leaves tmp data at the end of download

Reported by kelson42 on 2013-03-29 18:01 UTC
New version of aria2c can fix that using --rpc-save-upload-metadata=falsehttp://aria2.sourceforge.net/manual/en/html/aria2c.html#cmdoption--save-session

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.