Package Details: fontmatrix 0.6.0-6

Git Clone URL: https://aur.archlinux.org/fontmatrix.git (read-only)
Package Base: fontmatrix
Description: Font manager for Linux
Upstream URL: https://github.com/fontmatrix/fontmatrix
Licenses: GPL
Submitter: michalm
Maintainer: oberon2007
Last Packager: oberon2007
Votes: 126
Popularity: 0.198855
First Submitted: 2008-01-21 20:01
Last Updated: 2017-02-20 01:59

Latest Comments

krakn commented on 2017-02-20 14:22

An official tag has been made: https://github.com/fontmatrix/fontmatrix/issues/6#issuecomment-280970196

krakn commented on 2016-12-07 18:32

lgtm!

oberon2007 commented on 2016-12-07 11:22

Fixed the package. There hasn't been any substancial change in the code since years so I guess we can consider the last available commit stable even when they won't tag a new release. I've urged them again to do so in any case... ;)

krakn commented on 2016-08-08 19:08

https://github.com/fontmatrix/fontmatrix/issues/6

Opened a question upstream for possibly tagging a more recent source.

In the meantime: https://aur.archlinux.org/packages/fontmatrix-git/ works just fine.

JohnRobson commented on 2016-06-02 02:01

[ 79%] Building CXX object src/CMakeFiles/fontmatrix.dir/fmshaper.cpp.o
[ 80%] Building CXX object src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o
[ 80%] Building CXX object src/CMakeFiles/fontmatrix.dir/moc_aboutwidget.cxx.o
/tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.cpp: In constructor ‘IcuShaper::IcuShaper(FMOtf*, QString)’:
/tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.cpp:28:34: error: invalid new-expression of abstract class type ‘IcuFontImpl’
icuFont = new IcuFontImpl ( otf );
^
In file included from /tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.cpp:14:0:
/tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.h:23:7: note: because the following virtual functions are pure within ‘IcuFontImpl’:
class IcuFontImpl : public LEFontInstance
^~~~~~~~~~~
In file included from /tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.h:20:0,
from /tmp/yaourt-tmp-us/aur-fontmatrix/src/fontmatrix-0.6.0-Source/src/icushaper.cpp:14:
/usr/include/layout/LEFontInstance.h:165:25: note: virtual const void* icu_57::LEFontInstance::getFontTable(LETag, size_t&) const
virtual const void* getFontTable(LETag tableTag, size_t &length) const = 0;
^~~~~~~~~~~~
src/CMakeFiles/fontmatrix.dir/build.make:2001: recipe for target 'src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o' failed
make[2]: *** [src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:237: recipe for target 'src/CMakeFiles/fontmatrix.dir/all' failed
make[1]: *** [src/CMakeFiles/fontmatrix.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build fontmatrix.

Maelan commented on 2015-08-12 19:56

There is a compile-time error, apparently because of an incompatible change in ICU API.

<<<
[ 72%] Building CXX object src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o
src/fontmatrix-0.6.0-Source/src/icushaper.cpp: In constructor 'IcuShaper::IcuShaper(FMOtf*, QString)':
src/fontmatrix-0.6.0-Source/src/icushaper.cpp:28:34: error: invalid new-expression of abstract class type 'IcuFontImpl'
icuFont = new IcuFontImpl ( otf );
^
In file included from src/fontmatrix-0.6.0-Source/src/icushaper.cpp:14:0:
src/fontmatrix-0.6.0-Source/src/icushaper.h:23:7: note: because the following virtual functions are pure within 'IcuFontImpl':
class IcuFontImpl : public LEFontInstance
^
In file included from src/fontmatrix-0.6.0-Source/src/icushaper.h:20:0,
from src/fontmatrix-0.6.0-Source/src/icushaper.cpp:14:
/usr/include/layout/LEFontInstance.h:165:25: note: virtual const void* icu_55::LEFontInstance::getFontTable(LETag, size_t&) const
virtual const void* getFontTable(LETag tableTag, size_t &length) const = 0;
^
src/CMakeFiles/fontmatrix.dir/build.make:2001: recipe for target 'src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o' failed
make[2]: *** [src/CMakeFiles/fontmatrix.dir/icushaper.cpp.o] Error 1
CMakeFiles/Makefile2:200: recipe for target 'src/CMakeFiles/fontmatrix.dir/all' failed
>>>

More specifically, a (virtual) method defined in ‘/usr/include/layout/LEFontInstance.h’ now takes an additional parameter ‘length’. Here is a patch to fix this. I do not guarantee it works correctly (not sure what to do with ‘length’ so I simply ignore it), but at least it compiles.

<<<
diff -aur a/src/icushaper.cpp b/src/icushaper.cpp
--- a/src/icushaper.cpp 2015-08-12 19:25:11.243994493 +0200
+++ b/src/icushaper.cpp 2015-08-12 20:06:16.214099942 +0200
@@ -248,7 +248,7 @@

}

-const void * IcuFontImpl::getFontTable ( LETag tableTag ) const
+const void * IcuFontImpl::getFontTable ( LETag tableTag, size_t &length_foo ) const
{
// qDebug()<< "IcuFontImpl::getFontTable" << OTF_tag_name( tableTag );
FT_Face face ( otf->face() );
diff -aur a/src/icushaper.h b/src/icushaper.h
--- a/src/icushaper.h 2015-08-12 20:01:47.920755132 +0200
+++ b/src/icushaper.h 2015-08-12 20:06:33.224100670 +0200
@@ -27,7 +27,7 @@
~IcuFontImpl();
// implements pure virtual methods of LEFontInstance

- const void* getFontTable(LETag tableTag ) const;
+ const void* getFontTable(LETag tableTag, size_t &length) const;
le_bool canDisplay (LEUnicode32 ch) const {return true;}
le_int32 getUnitsPerEM () const;
LEGlyphID mapCharToGlyph (LEUnicode32 ch) const ;
>>>

However, it still fails at the linking stage, and since the CMakefile.txt seems to have changed quite a lot, the patch given by albfan does not apply anymore. Don’t know how to fix it.

<<<
[ 15%] Linking CXX executable fontmatrix
/usr/bin/ld: CMakeFiles/fontmatrix.dir/icushaper.cpp.o: undefined reference to symbol '_ZN6icu_557UMemorynwEj'
/usr/lib/libicuuc.so.55: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
src/CMakeFiles/fontmatrix.dir/build.make:3246: recipe for target 'src/fontmatrix' failed
>>>

kozaki commented on 2015-04-06 15:30

Tried to patch following albfan's post and [https://wiki.archlinux.org/index.php/Patching_in_ABS]. But makepkg -o exited as it was unable to find any *.patch
Here's the (same) error that prevented compiling fontmatrix:
---
-- WARNING: you are using the obsolete 'PKGCONFIG' macro, use FindPkgConfig
<SNIP SNIP>
Linking CXX executable fontmatrix
/usr/bin/ld: CMakeFiles/fontmatrix.dir/icushaper.cpp.o: référence au symbole non défini «_ZN6icu_547UMemorynwEm»
/usr/lib/libicuuc.so.54: error adding symbols: DSO missing from command line
collect2: erreur: ld a retourné 1 code d'état d'exécution
src/CMakeFiles/fontmatrix.dir/build.make:3190: recipe for target 'src/fontmatrix' failed
make[2]: *** [src/fontmatrix] Error 1
CMakeFiles/Makefile2:180: recipe for target 'src/CMakeFiles/fontmatrix.dir/all' failed
make[1]: *** [src/CMakeFiles/fontmatrix.dir/all] Error 2
Makefile:136: recipe for target 'all' failed
make: *** [all] Error 2
==> ERREUR : Une erreur s’est produite dans build().
---

albfan commented on 2014-11-30 20:56

Seems problem with

/usr/lib/libicuuc.so.53: error adding symbols: DSO missing from command line

is well know

There is a simple patch for it

bug_564904_fix-missing-DSO-icuuc.patch

I don't know how to contribute a patch so here it is

<<<
--- src/CMakeLists.txt.old 2009-08-11 09:58:39.000000000 +0530
+++ src/CMakeLists.txt 2010-02-16 11:26:43.000000000 +0530
@@ -120,6 +120,7 @@
SET(PYTHONQT_LIB PythonQt)
ENDIF(WANT_PYTHONQT)

+SET(LIBICUUC icuuc)

SET(fontmatrix_MOC_HDRS
aboutwidget.h
@@ -272,6 +273,7 @@
${SHAPERS_LIBRARIES}
${PYTHON_LIBRARIES}
${LIBPODOFO_LIBRARY}
+ ${LIBICUUC}
)

INSTALL(TARGETS fontmatrix

>>>

Due to copy/paste sha512sum maybe different for you. but basically PKGBUILD must be fixed with

<<<
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -20,6 +20,7 @@ prepare(){
patch -Np0 -i ${srcdir}/fmactivateH.patch
patch -Np0 -i ${srcdir}/typotek.patch
patch -Np0 -i ${srcdir}/fontmatrix.patch
+ patch -Np0 -i ${srcdir}/bug_564904_fix-missing-DSO-icuuc.patch
}

build() {
@@ -41,6 +42,7 @@ package() {
}

sha512sums=('20c91a17b27b1131017f3d5a264250b560b46cfa1d6939171811def530939d8e072f02c818a58e40604506a6520a30d20c27b234655329d8a16ce489e69bcf00'
+ 'c654b8edd4e322c90f67115664886a17de05d25c2de6b9bdbec5d97739e5d6e703ed405fd516e7b1d6c71e7798d92510496f674cb5fa7763b6122d7cbb3d87ff'
'cdc41672fb338cb9ba5077cbcae9163a870e12c1d65266f115f04563f37d04fb8caa14ca2b4e977b6cb9603d4106cceef84c91a16cc32728c9ffa107acd546f2'
'c4bff7918a7c43ca537dc902732a5d7e084a4d0b217c14d181a3251d386f292bf41042efd77d8a384e820d11e34d60130ce0536fe62ad36ae5241603079823c2'
'0b7cc215f6496792464ef3e948990cdb7314734656202b054993b7c4040400bf20a905d0a67c0cfc2797c0a5faeb3b03cf45bd3b8e869dcbadcc06d1f7bf7b87'
>>>

On many packages patch are keeped on a separate directory (like patchs)

After build with errors (this could be lack of knowlegde on my side) makepkg fails with

build dir already exists

That should be fixed too

nylocx commented on 2014-11-23 15:57

I added a patch libraries.patch:
http://dpaste.com/2DH4BSN
and adjusted the PKGBUILD file:
http://dpaste.com/22V1RSC

You may be have to adjust the checksum for the new patch.
With this build everything works as expected.

chrisberkhout commented on 2014-11-09 14:10

I got the same build error as sdothum.

All comments