commit:     8a74b3274e79e045e12caccfe75b300f51bf0b7c
Author:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 30 16:24:08 2017 +0000
Commit:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
CommitDate: Wed Aug 30 16:24:08 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a74b327

app-text/coolreader: initial import
ebuild by  Sergey Torokhov <torokhov_s_a <AT> mail.ru>
Bug: 269110
Package-Manager: Portage-2.3.6, Repoman-2.3.3

 app-text/coolreader/Manifest                       |  1 +
 app-text/coolreader/coolreader-3.1.2.71.ebuild     | 87 +++++++++++++++++++
 .../coolreader/files/cr3.1.2.71-r1_qt5_wx.diff     | 94 ++++++++++++++++++++
 app-text/coolreader/files/cr3.1.2.71_wxGTK3.diff   | 99 ++++++++++++++++++++++
 app-text/coolreader/files/cr3ini.diff              | 35 ++++++++
 app-text/coolreader/metadata.xml                   | 14 +++
 6 files changed, 330 insertions(+)

diff --git a/app-text/coolreader/Manifest b/app-text/coolreader/Manifest
new file mode 100644
index 00000000000..fd45bc5155f
--- /dev/null
+++ b/app-text/coolreader/Manifest
@@ -0,0 +1 @@
+DIST coolreader-3.1.2.71.tar.bz2 10141514 SHA256 
746345984be549284713a450686f0c8b04f1485f9a28bedc457940ea1b52f7d1 SHA512 
2859eabfc8ba603d1cb09b07358887135b6968268a5f2fa7f874a1e8613d1b5ebe69d9b133f16e84321d1a460eae5088a7947433c6fb340a47bde9ceee415735
 WHIRLPOOL 
b8a8bb58c811592577dc4e1b9b1ae0ed0a3dd92e277b1501962d2c7683c0969b49f71fa147c445f7985cf82bea6431a818915bdf2387f48831fab70defdf42c7

diff --git a/app-text/coolreader/coolreader-3.1.2.71.ebuild 
b/app-text/coolreader/coolreader-3.1.2.71.ebuild
new file mode 100644
index 00000000000..6f89f96cfcc
--- /dev/null
+++ b/app-text/coolreader/coolreader-3.1.2.71.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+if [ "${PV}" == 9999 ]
+then
+       inherit git
+       
EGIT_REPO_URI="git://crengine.git.sourceforge.net/gitroot/crengine/crengine"
+       SRC_URI=""
+else
+       # git tag cr3.1.2-71
+       SRC_URI="https://dev.gentoo.org/~grozin/${P}.tar.bz2";
+fi
+
+DESCRIPTION="CoolReader - reader of eBook files (fb2,epub,htm,rtf,txt)"
+HOMEPAGE="https://sourceforge.net/projects/crengine/";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="qt4 qt5 wxwidgets"
+REQUIRED_USE="^^ ( qt4 qt5 wxwidgets )"
+
+DEPEND="sys-libs/zlib
+       media-libs/libpng
+       virtual/jpeg
+       media-libs/freetype
+       wxwidgets? (
+               >=x11-libs/wxGTK-2.8 )
+       qt4? ( dev-qt/qtcore:4
+               dev-qt/qtgui:4 )
+       qt5? ( dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5 )
+       "
+RDEPEND="${DEPEND}
+       media-fonts/corefonts"
+
+src_prepare() {
+       # setting patch to save cr3.ini to ~homedir
+       epatch "${FILESDIR}/cr3ini.diff"
+       # patch to build QT5 and WX GUI version of coolreader3
+       # and setting correct vesrion number and years of cr3qt/cr3wx
+       epatch "${FILESDIR}/cr3.1.2.71-r1_qt5_wx.diff"
+       if [ $(eselect wxwidgets list | grep '*' | cut -d ' ' -f 6) == 
"gtk2-unicode-3.0" ]; then
+               # patch if wxGTK3.0 (not wxGTK2.8) is active eselect profile
+               epatch "${FILESDIR}/cr3.1.2.71_wxGTK3.diff"
+       fi
+       eapply_user
+}
+
+src_configure() {
+       CMAKE_USE_DIR="${S}"
+       CMAKE_BUILD_TYPE="Release"
+       if use qt4; then
+               local mycmakeargs=(-D GUI=QT)
+       elif use qt5; then
+               local mycmakeargs=(-D GUI=QT5)
+       elif use wxwidgets; then
+               . "${ROOT}/var/lib/wxwidgets/current"
+               if [[ "${WXCONFIG}" -eq "none" ]]; then
+                       die "The wxGTK profile should be selected!"
+               fi
+               local mycmakeargs=(-D GUI=WX)
+       fi
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+       dosym ../fonts/corefonts /usr/share/crengine/fonts
+       elog
+}
+
+pkg_postinst() {
+if use wxwidgets; then
+       elog ""
+       elog "KNOWN ISSUE TO FIX:"
+       elog "With wxwidgets gui you can see a warning message \"iCCP: known 
incorrect sRGB profile\""
+       elog "that appears if \"Toolbar size\" is setting to \"Medium buttons\" 
in Options."
+       elog "To avoid appearing of this warning popup window you can change 
\"Toolbar size\" or set it to \"Hide Toolbar\"."
+       elog ""
+fi
+}

diff --git a/app-text/coolreader/files/cr3.1.2.71-r1_qt5_wx.diff 
b/app-text/coolreader/files/cr3.1.2.71-r1_qt5_wx.diff
new file mode 100644
index 00000000000..2acbd4512e0
--- /dev/null
+++ b/app-text/coolreader/files/cr3.1.2.71-r1_qt5_wx.diff
@@ -0,0 +1,94 @@
+# Patch that allows to build Coolreader3 with Qt5 or wxWindgets GUI.
+# Qt5 build related bug : https://sourceforge.net/p/crengine/bugs/370
+# => absence of "-std=c++11 -fPIC" options in ../cr3qt/CMakeLIsts.txt
+# and absence of Qt5 libraries in linking library list of 
../cr3qt/CMakeLIsts.txt;
+# wxWidgets build related bug : https://sourceforge.net/p/crengine/bugs/371
+# => absence of "fonconfig" in linking library list of ../cr3wx/CMakeLIsts.txt
+# Add chages to years of cr3wx about dialog and merge with cr3qt about dialog 
patch.
+
+diff -Naur old/CMakeLists.txt new/CMakeLists.txt
+--- old/CMakeLists.txt 2015-07-13 11:23:37.000000000 +0300
++++ new/CMakeLists.txt 2017-08-28 00:34:39.000000000 +0300
+@@ -29,7 +29,7 @@
+   endif()
+ elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+   # Update if necessary
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
++  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic 
-std=c++11 -fPIC")
+ endif()
+ 
+ if (NOT DEFINED GUI)
+@@ -323,7 +323,7 @@
+   message("Will make CR3/WX")
+   ADD_DEFINITIONS( ${DESKTOP_DEFS} -DCR_WX_SUPPORT=1 )
+   SET(wxWidgets_USE_LIBS base core )
+-  FIND_PACKAGE(wxWidgets)
++  FIND_PACKAGE(wxWidgets 2.8)
+   IF (wxWidgets_FOUND)
+     INCLUDE(${wxWidgets_USE_FILE})
+     include_directories( ${wxWidgets_INCLUDE_DIRS} )
+diff -Naur old/cr3qt/CMakeLists.txt new/cr3qt/CMakeLists.txt
+--- old/cr3qt/CMakeLists.txt   2015-07-13 11:23:37.000000000 +0300
++++ new/cr3qt/CMakeLists.txt   2017-08-26 03:25:55.000000000 +0300
+@@ -173,7 +173,11 @@
+     SET (EXTRA_LIBS ${QT_LIBRARIES} ${STD_LIBS} )
+ #${QT_LIBRARIES} 
+ ELSEIF (UNIX)
+-    SET (EXTRA_LIBS ${QT_LIBRARIES} fontconfig ${STD_LIBS} )
++    IF( ${GUI} STREQUAL QT )
++      SET (EXTRA_LIBS ${QT_LIBRARIES} fontconfig ${STD_LIBS} )
++    ELSE()
++        SET (EXTRA_LIBS fontconfig ${STD_LIBS} ${Qt5Core_LIBRARIES} 
${Qt5Widgets_LIBRARIES})
++    ENDIF()
+ ELSE()
+     SET (EXTRA_LIBS ${STD_LIBS} ${QT_LIBRARIES} ${Qt5Core_LIBRARIES} 
${Qt5Widgets_LIBRARIES} )
+ ENDIF(MAC)
+diff -Naur old/cr3wx/CMakeLists.txt new/cr3wx/CMakeLists.txt
+--- old/cr3wx/CMakeLists.txt   2015-07-13 11:23:37.000000000 +0300
++++ new/cr3wx/CMakeLists.txt   2017-08-26 01:22:53.000000000 +0300
+@@ -10,7 +10,7 @@
+ )
+ LINK_DIRECTORIES(${wxWidgets_LIBRARY_DIRS})
+ ADD_EXECUTABLE(cr3 ${CR3_SOURCES})
+-SET (EXTRA_LIBS  ${wxWidgets_LIBRARIES} ${STD_LIBS})
++SET (EXTRA_LIBS  ${wxWidgets_LIBRARIES} fontconfig ${STD_LIBS})
+ TARGET_LINK_LIBRARIES(cr3 crengine tinydict ${EXTRA_LIBS})
+ 
+ IF (UNIX)
+@@ -22,6 +22,9 @@
+   INSTALL( DIRECTORY ../cr3qt/data/hyph DESTINATION share/cr3 
+   FILES_MATCHING PATTERN "*.pattern" )
+   INSTALL( DIRECTORY ../cr3qt/data/skins DESTINATION share/cr3/skins )
++  INSTALL( FILES ../cr3qt/src/desktop/cr3.desktop DESTINATION 
share/applications )
++  INSTALL( FILES ../cr3qt/src/desktop/cr3.png DESTINATION share/pixmaps )
++  INSTALL( FILES ../cr3qt/src/desktop/cr3.xpm DESTINATION share/pixmaps )
+ ELSE()
+   INSTALL( TARGETS cr3 RUNTIME DESTINATION . )
+   INSTALL( DIRECTORY ../cr3qt/data/ DESTINATION . 
+
+# Change the dates in About program dialogs:
+--- a/crengine/include/cr3version.h    2015-07-13 11:23:37.000000000 +0300
++++ b/crengine/include/cr3version.h    2017-07-12 11:09:49.000000000 +0300
+@@ -1,2 +1,2 @@
+-#define CR_ENGINE_VERSION "3.1.2-52"
+-#define CR_ENGINE_BUILD_DATE "2014-11-19"
++#define CR_ENGINE_VERSION "3.1.2-71"
++#define CR_ENGINE_BUILD_DATE "2015-07-02"
+
+--- a/cr3qt/src/aboutdlg.ui
++++ b/cr3qt/src/aboutdlg.ui
+@@ -59 +59 @@
+-        <string notr="true">(c) 1998-2010 Vadim Lopatin</string>
++        <string notr="true">(c) 1998-2015 Vadim Lopatin</string>
+
+--- old/cr3wx/src/cr3.cpp      2015-07-13 11:23:37.000000000 +0300
++++ new/cr3wx/src/cr3.cpp      2017-08-28 02:29:32.000000000 +0300
+@@ -1479,7 +1479,7 @@
+ void 
+ cr3Frame::OnAbout( wxCommandEvent& WXUNUSED( event ) )
+ {
+-    wxMessageBox( wxT( "Cool Reader " wxT(CR3_VERSION) wxT("\n(c) 1998-2007 
Vadim Lopatin\nwxWidgets version\n") )
++    wxMessageBox( wxT( "Cool Reader " wxT(CR3_VERSION) wxT("\n(c) 1998-2015 
Vadim Lopatin\nwxWidgets version\n") )
+     wxT("\nBased on CREngine library " wxT(CR_ENGINE_VERSION) )
+     wxT("\nThird party libraries used:")
+     wxT("\nzlib, libpng, libjpeg, freetype2,")

diff --git a/app-text/coolreader/files/cr3.1.2.71_wxGTK3.diff 
b/app-text/coolreader/files/cr3.1.2.71_wxGTK3.diff
new file mode 100644
index 00000000000..1a0f1659592
--- /dev/null
+++ b/app-text/coolreader/files/cr3.1.2.71_wxGTK3.diff
@@ -0,0 +1,99 @@
+# Patch to build CoolReader3 with active wxGTK-3.0 profile 
+# (eselect wxwidgets is set to "gtk2-unicode-3.0" instead of 
"gtk2-inicode-release-2.8")
+diff -Naur old/cr3wx/src/cr3.cpp new/cr3wx/src/cr3.cpp
+--- old/cr3wx/src/cr3.cpp      2015-07-13 11:23:37.000000000 +0300
++++ new/cr3wx/src/cr3.cpp      2017-08-28 12:54:13.000000000 +0300
+@@ -395,7 +395,7 @@
+ 
+ lString16 GetConfigFileName()
+ {
+-    lString16 cfgdir( wxStandardPaths::Get().GetUserDataDir().c_str() );
++    lString16 cfgdir( wxStandardPaths::Get().GetUserDataDir().wx_str() );
+     if ( !wxDirExists( cfgdir.c_str() ) )
+         ::wxMkdir( wxString( cfgdir.c_str() ) );
+     lChar16 slash = detectSlash( cfgdir );
+@@ -622,7 +622,7 @@
+     wxImage::AddHandler(new wxPNGHandler);
+     resources = new ResourceContainer();
+ 
+-    lString16 appname( argv[0] );
++    lString16 appname( argv[0].wx_str() );
+     int lastSlash=-1;
+     lChar16 slashChar = '/';
+     for ( int p=0; p<(int)appname.length(); p++ ) {
+@@ -777,7 +777,7 @@
+     int argc = wxGetApp().argc;
+     lString16 fnameToOpen;
+     for ( int i=1; i<argc; i++ ) {
+-        lString16 param = lString16( wxGetApp().argv[1] );
++        lString16 param = lString16( wxGetApp().argv[1].wx_str() );
+         if ( param[0]!='-' )
+             fnameToOpen = param;
+     }
+@@ -1193,7 +1193,7 @@
+     lString16 outFile;
+     bool convert = false;
+     for ( int i=1; i<argc; i++ ) {
+-        lString16 param = lString16( wxGetApp().argv[i] );
++        lString16 param = lString16( wxGetApp().argv[i].wx_str() );
+         if ( param[0]!='-' )
+             fnameToOpen = param;
+         else if (param.startsWith("--convert"))
+@@ -1470,7 +1470,7 @@
+         wxCursor hg( wxCURSOR_WAIT );
+         this->SetCursor( hg );
+         wxSetCursor( hg );
+-        _view->getDocView()->exportWolFile( dlg.GetPath(), opts.getMode()==0, 
opts.getLevels() );
++        _view->getDocView()->exportWolFile( dlg.GetPath().wx_str(), 
opts.getMode()==0, opts.getLevels() );
+         wxSetCursor( wxNullCursor );
+         this->SetCursor( wxNullCursor );
+     }
+diff -Naur old/cr3wx/src/optdlg.cpp new/cr3wx/src/optdlg.cpp
+--- old/cr3wx/src/optdlg.cpp   2015-07-13 11:23:37.000000000 +0300
++++ new/cr3wx/src/optdlg.cpp   2017-08-28 11:38:06.000000000 +0300
+@@ -41,7 +41,7 @@
+             if ( v==_choices[i] )
+                 tb = i;
+         if ( _storeStringValues ) {
+-            props->setString( _option, lString16(_choices[tb]) );
++            props->setString( _option, lString16(_choices[tb].wx_str()) );
+         } else {
+             props->setInt( _option, tb );
+         }
+@@ -50,7 +50,7 @@
+     {
+         unsigned tb = _defvalue;
+         if ( _storeStringValues ) {
+-            lString8 s8 = UnicodeToUtf8( lString16(_choices[_defvalue]) );
++            lString8 s8 = UnicodeToUtf8( 
lString16(_choices[_defvalue].wx_str()) );
+             lString16 s16 = props->getStringDef( _option, s8.c_str() );
+             wxString v = s16.c_str();
+             for ( unsigned i=0; i<_choices.GetCount(); i++ )
+diff -Naur old/cr3wx/src/view.cpp new/cr3wx/src/view.cpp
+--- old/cr3wx/src/view.cpp     2015-07-13 11:23:37.000000000 +0300
++++ new/cr3wx/src/view.cpp     2017-08-28 12:57:55.000000000 +0300
+@@ -353,7 +353,7 @@
+ 
+ lString16 cr3view::GetHistoryFileName()
+ {
+-    lString16 cfgdir( wxStandardPaths::Get().GetUserDataDir().c_str() );
++    lString16 cfgdir( wxStandardPaths::Get().GetUserDataDir().wx_str() );
+     if ( !wxDirExists( cfgdir.c_str() ) )
+         ::wxMkdir( wxString( cfgdir.c_str() ) );
+     lChar16 slash = detectSlash( cfgdir );
+@@ -667,13 +667,13 @@
+     //===========================================
+     GetParent()->Update();
+     //printf("   loading...  ");
+-    bool res = getDocView()->LoadDocument( fname.c_str() );
++    bool res = getDocView()->LoadDocument( fname.wx_str() );
+     //printf("   done. \n");
+       //DEBUG
+       //_docview->exportWolFile( "test.wol", true );
+       //_docview->SetPos(0);
+     if ( !res )
+-        getDocView()->createDefaultDocument(lString16("File open error"), 
lString16("Cannot open file ") + fname.c_str() );
++        getDocView()->createDefaultDocument(lString16("File open error"), 
lString16("Cannot open file ") + fname.wx_str() );
+     lString16 title = getDocView()->getAuthors();
+     if ( !title.empty() && !getDocView()->getTitle().empty() )
+         title << L". ";

diff --git a/app-text/coolreader/files/cr3ini.diff 
b/app-text/coolreader/files/cr3ini.diff
new file mode 100644
index 00000000000..66562aa836a
--- /dev/null
+++ b/app-text/coolreader/files/cr3ini.diff
@@ -0,0 +1,35 @@
+# Patch to allow creating cr3.ini file in the home directory of user
+# instead to trying save it in /usr/share/cr3/cr3.ini
+# Bug: https://sourceforge.net/p/crengine/bugs/179/
+# Patch was proposed by "Olexandr" (see bug report)
+diff --git a/cr3qt/src/mainwindow.cpp b/cr3qt/src/mainwindow.cpp
+index 142242a..0401f71 100644
+--- a/cr3qt/src/mainwindow.cpp
++++ b/cr3qt/src/mainwindow.cpp
+@@ -77,8 +77,8 @@ MainWindow::MainWindow(QWidget *parent)
+ #endif
+     QString cacheDir = homeDir + "cache";
+     QString bookmarksDir = homeDir + "bookmarks";
+-    QString histFile = exeDir + "cr3hist.bmk";
+-    QString histFile2 = homeDir + "cr3hist.bmk";
++    QString histFile2 = exeDir + "cr3hist.bmk";
++    QString histFile = homeDir + "cr3hist.bmk";
+     QString iniFile2 = exeDir + "cr3.ini";
+     QString iniFile = homeDir + "cr3.ini";
+     QString cssFile = homeDir + "fb2.css";
+@@ -92,9 +92,13 @@ MainWindow::MainWindow(QWidget *parent)
+     ldomDocCache::init( qt2cr( cacheDir ), DOC_CACHE_SIZE );
+     ui->view->setPropsChangeCallback( this );
+     if ( !ui->view->loadSettings( iniFile ) )
+-        ui->view->loadSettings( iniFile2 );
++        if ( !ui->view->loadSettings( iniFile2 ) )
++          ui->view->saveSettings( iniFile );
++
+     if ( !ui->view->loadHistory( histFile ) )
+-        ui->view->loadHistory( histFile2 );
++        if ( !ui->view->loadHistory( histFile2 ) )
++          ui->view->saveHistory( histFile );
++
+     if ( !ui->view->loadCSS( cssFile ) )
+         ui->view->loadCSS( cssFile2 );
+ #if ENABLE_BOOKMARKS_DIR==1

diff --git a/app-text/coolreader/metadata.xml b/app-text/coolreader/metadata.xml
new file mode 100644
index 00000000000..afd1b4bc9da
--- /dev/null
+++ b/app-text/coolreader/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>gro...@gentoo.org</email>
+  </maintainer>
+  <longdescription lang="en">
+    A fast and small cross-platform XML/CSS based eBook reader for desktops 
and handheld devices.
+    Supported formats: FB2, TXT, RTF, DOC, TCR, HTML, EPUB, CHM, PDB, MOBI.
+  </longdescription>
+  <upstream>
+    <remote-id type="sourceforge">crengine</remote-id>
+  </upstream>
+</pkgmetadata>

Reply via email to