Code Monkey home page Code Monkey logo

kiwix-android-custom's Introduction

Kiwix

Kiwix is an offline reader for Web content. It's especially thought to make Wikipedia available offline. This is done by reading the content of the project stored in a file format ZIM, a high compressed open format with additional meta-data.

COMPILATION INSTRUCTIONS

Take care, the paragraphs are about the target platforms. If you want to build Kiwix for Android on a GNU/Linux system, you should follow the instructions of the "Android" paragraph.

GNU/Linux

Install pre-requisties in your distro, eg, in Debian based:

sudo apt-get install zip pkg-config aptitude
sudo apt-get install libmagic-dev
sudo aptitude install libtool automake

Static (Probably what you need to do if you don't know)

Kiwix uses shared libraries only. A static build of Kiwix is a build which packages the dependencies. Command line tools (indexer, server, etc) are compiled statically.

Run automake

./autogen.sh

Run autoconf

./configure --enable-compileall --enable-staticbins --disable-android;

Download all dependencies

cd src/dependencies;
make;
cd ../..;

Reconfigure with dependencies (Gecko version)

./configure --enable-compileall --enable-staticbins --disable-android;

Compile

make;

Creates tarbal suitable for distribution (no deps)

make diststatic
  • If you want to be able to run directly from your dev repository copy the "xulrunner" directory in the distributation tarball to the "kiwix" sub-directory of your developement tree.

  • Don't try to install with "make install", if you want to have kiwix install on your system just copy the directory in a /usr/local/bin directory.

Dynamic

GNU/Linux build uses shared libraries by default. You will need the following dependencies (also -dev packages) to compile Kiwix for Linux (this list can vary a little bit depending of the GNU/Linux distribution):

  • g++
  • gcc
  • autoconf
  • automake
  • libtool
  • pkg-config
  • liblzma
  • libicu
  • libmicrohttpd
  • zlib
  • libcrypto++
  • cmake
  • wget
  • aria2
  • libuuid
  • libssl
  • libzim
  • libpugixml
  • libctpp2
  • xulrunner

Debian is the only distribution providing natively all these packages. Ubuntu provides most of them, excluding xulrunner and zimlib. You will have to download and install them separatly or run configure --with-static-dep=SELF. Then run the following commands:

Run automake

./autogen.sh;

Configure the compilation check --help for options. Most dependencies accept --with-dep=XX and with-static-dep=XX.a. Static version of libraries are used for building static binaries (server, indexer, etc) Use --with-dep=SELF or --with-static-dep=SELF to trigger fetch and build for the dependency.

./configure;

Compile

make;

Optionaly install on the filesystem

sudo make install;

Mac OSX Universal

WARNING: To build the Mac OS version you will have to install proprietary software which are free of charge. You will also need to build on an Apple Mac computer.

Configure Macports

Install the following tools and libraries

sudo port install autogen +universal pkgconfig +universal wget +universal gmake +universal coreutils +universal libidl +universal autoconf213 +universal icu +universal;

NOTE: the following commands seem to work better on OS X Yosemite, apparently 'universal' is less relevant and various packages are no longer available as universal options.

sudo port  install autogen pkgconfig  wget  gmake  coreutils  libidl  autoconf213  icu;
sudo port -v install aclocal automake libtool autoconf cmake imagemagick
./autogen.sh alt && ./configure --enable-compileall;
cd src/dependencies && make;
make clean;
./autogen.sh alt && ./configure --enable-compileall --enable-compileall --disable-dependency-tracking --with-target-arch=i386;
make;
make distmac;
make clean;
./autogen.sh alt && ./configure --enable-compileall --enable-compileall --disable-dependency-tracking --with-target-arch=x86_64;
make;
make distmac;
make universal;
Debugging tips:
  • components file type can be either Mach-O dynamically linked shared library or Mach-O bundle but above instructions will create dynamic libraries.
  • Shared Object (.so files on Linux) have .dylib extension on OSX.
  • use dtruss to inspect program execution like strace.
  • dyldinfo -lazy_bind | dyldinfo -bind components/zimAccessor.dylib |grep zim
  • nm -gm components/zimAccessor.dylib | nm -u | nm -g
  • otool -L libzim.dylib
  • install_name_tool -change @executable_path/../libicuuc.dylib libicuuc.dylib kiwix-serve
  • lldb

Android

Look at android/README

Windows

  • Install Windows XP SP2+

  • Install Visual Studio Express 2010

  • Install 7-zip

  • Install MozillaBuild 1.6

  • Install ActivePerl

  • Install Ruby

  • Install NSIS 2.46

  • Install nsis_locate

  • Install nsis_uac

  • Replace installed UAC.dll by new one.

  • Install all software in default locations.

  • Change your Windows PATH environment variable:

    • 7zip
    • NSIS
    • ruby
    • Perl
    • mozilla-build\msys\bin\
  • Get shell from c:\mozilla-build\start-msvc10.bat

mkdir -p /c/slave/windows-32b
git clone git://git.code.sf.net/p/kiwix/kiwix kiwix
cd kiwix
./autogen.sh alt
./configure --disable-indexer --enable-jar
make win
make windist
make wininstaller

Contact

Email: [email protected] or [email protected]

Jabber: [email protected]

IRC: #kiwix on irc.freenode.net

You can use IRC web interface on http://chat.kiwix.org/

More... http://www.kiwix.org/wiki/Communication

LEGAL & DISCLAIMER

Read 'COPYING' file

kiwix-android-custom's People

Contributors

borisfba avatar eladkishon avatar gouri-panda avatar gremid avatar julianharty avatar kelson42 avatar macgills avatar mgautierfr avatar mhutti1 avatar mohitmalideveloper avatar mohitmaliftechiz avatar popolechien avatar rashiq avatar rgaudin avatar utkarshmttl avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kiwix-android-custom's Issues

Remove "caption" string from Minimed infobox

(maybe this should go to mwoffliner/issues - let me know)
Wikimed mini removes images but keeps captions, which is kind of weird (see image).

caption

The infobox string is
| image =
|caption = xyz
|nextfield = blablabla

I'd surmise a simple regexp would do the trick?

Update arabic Wikimed app

Last zim is from January and the content on the app is probably older. We have many pings on that on the Arabic FB page. Thank you.

Impossible to build custom apps with Kiwix Android 2.4

The CI fails to go through because the install version of NDK is not the right one (the same as in kiwix/kiwix-android). See https://github.com/kiwix/kiwix-android-custom/runs/2296262609?check_suite_focus=true

Execution failed for task ':custom:stripWikispeciesReleaseDebugSymbols'.
> No version of NDK matched the requested version 22.0.7026061. Versions available locally: 21.4.7075529, 21.4.7075529, 21.4.7075529

I believe the problem is that we should in kiwix-android-custom request to install the same NDK as for kiwix/kiwix-android... for the moment it just have the default version

Update tagging release methodology

Currently we push a tag of a name eg phet to trigger a release of a custom app against master of kiwix-android

This leads to some confusion about what version of the app is published for a custom app.

We should update our workflow and tagging procedure so that we push the tag phet:3.3.4 on this repo to do a release of phet with 3.3.4 of kiwix-android

Publish custom apps “Wikivoyage” and “Chemistry & Physics simulations” in F-Droid

@4tip commented on Sep 23, 2019, 8:17 PM UTC:

A app called Kiwix, created by “Kiwix Team” is available in F-Droid and I wonder if someone could get two other apps by “Kiwix Team” to the F-Droid repo?? Or release the source code, that F-Droid workers can use to include the apps in F-Droid?
The names of the apps are “Wikivoyage” and “Chemistry & Physics simulations”.

App-Link: https://play.google.com/store/apps/details?id=org.kiwix.kiwixcustomwikivoyage 2

App-Link:https://play.google.com/store/apps/details?id=org.kiwix.kiwixcustomphet

This issue was moved by kelson42 from kiwix/overview#21.

Which format works best for layout design files?

We've concluded the design contest for the Wiktionary app, and the designer asks if is it okay if she sends the XD file of these screens instead of PSD or Sketch.

@macgills Is there any significant difference for us between these file formats?

Typo in this project's description

I don't have permission to edit the description otherwise I'd edit it directly. It currently says tols and should probably say tools.

Necessary data/tols for the Android custom apps

Update Arabic Wikimed app

Hello,

Last zim is from September 2018 and the content on the app is probably older. We have many pings on that on Arabic Wikipedia WikiProject Medicine and on Arabic Wikipedia official Facebook page. Thank you.

Remove images from WikiVoyage apps

As discussed in recent Foundation research, file size is paramount to user acceptance: images currently bring little value as they are not maps, and removing them could help gain a few hundred megabytes on the app's size.

How can I build an android custom app for offline deployment

Users who have no internet connection can not get to the Google playstore, so Internet in a Box provides kiwix apks with embedded zims that can be loaded to an android phone directly from the server. In previous versions of the custom app builder the json file could be passed as an argument and this json file could have embed_zim: true. It could also have other parameters set to custom values. It looks like this is no longer supported.

The two wiki pages for this repo describe building apks for the Google playstore either with Travis or without using the json files in https://github.com/kiwix/kiwix-android-custom, all of which have embed_zim false.

What are the parameters to pass to build_custom_app.py to get an embedded zim, either built locally or built on Travis for upload to a public site or for download and not to upload to Google? Or is there an alternate method of obtaining an apk with embedded zim?

Wikimed mini opens on empty/blank screen

The issue remains when I close/ reopen the app. Clicking on Home does not take me anywhere. Closing the currently open article brings me back to a blank screen as well.
Version 2018-08 build 1182421. Other than that the app works fine as far as I can tell.

Update Phet Play store images

The Phet play store images are outdated. A few other apps might be as well. Maybe look into doing this automatically on release.

WikiMed app- Credits#Contributors color on night mode

Hello,

On Android WikiMed app (I tired EN. & AR.), the blue color of (Contributors) links on Credits section on night mode appear painful for eyes and can't be read easily.

I notice that personally and from another friends (3) who using the app.

Thanks.
Screenshot_2020-02-08-16-52-47

Fixes for build-custom-app

@kelson42 commented on Jun 26, 2017, 6:51 PM UTC:

  • Explain how to install ruby
  • Explain how to install travis (the travis doc is big)
  • Talk about "hash -r"
  • Put a word about "kiwix-android-custom" that people know where to modify things
  • zim_url and zim_content should be merged (in zim?)
  • remove version_code fron info.json
  • add httpslib2 in the deps
  • add google-api-python-client in the deps
  • add space before "if you found it"

This issue was moved by kelson42 from kiwix/kiwix-android#1218.

Custom app should be able to download zim from external URL

Here is the scenario:

  • We want to produce an app with an extremely large zim file (e.g. more than 2 Gb), so much so that going through the playstore is not a viable option;
  • User would therefore download a "shell app" (ie Kiwix-custom") which would in turn download and install the target zim file after it's been installed;
  • (maybe a separate ticket?): the app would check when there's a new zim available and flag it to the user one way or the other (for instance with an "update content" button in the settings that would be greyed out when no such new content is available; I'd be wary of automated updates as users often are in atypical connectivity configurations).

@macgills 1. Would that be possible? and 2. How many days of dev work do you reckon it would take to implement the "separate download" approach?

Update WikiVoyage apps

Both Wikivoyage apps (the regular one and the Europe one) were last updated in January 2020 and seem to describe Ukraine as a pleasant and funky destination o_0

Is it OK to submit the Wikivoyage app to F-Droid?

Many Android users don't have access to Google Play, for instance in China or LineageOS users.
Making the app available on F-Droid would allow these people to use the app.
The Wikivoyage community is also asking for this.

We could just take the source code and build/publish it, but F-Droid has a principle of asking app developers before doing it, so you just need to write "OK" here :-)

Thanks!

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.