Re: [ft-devel] FreeType Engine

2012-01-17 Thread Werner LEMBERG

 1- What compiler(s) would you say FreeType is compatible with?  We
are flexible enough to change compilers.

FreeType is written in ANSI C, so basically all compilers should work.
The problem is with compilers which are less than ANSI C...

 2- Aside from scaling fonts at run time, what other capabilities
FreeType has?

None :-)  FreeType's job is to render a glyph, nothing more.

 3- Does the library have API calls to display texts, or draw
graphical components, such as lines, boxes, filled boxes, etc?

No.  You need a higher-level library to do that because display of
text strings can get extremely convoluted as soon as OpenType features
are used.  Look at Pango, Qt, or ICU.

 4- Would the library work on any True Type Font?

Essentially, yes.

 5- What are the limits of how small or large the fonts can be scaled
to?

How large... Never tested that actually due to lack of memory :-) Tell
me what you need and I tell you whether it works.

How small... This depends on the font.  However, any scalable font
becomes illegible below 6ppem (pixels per EM) normally.

 6- What is the cost of getting the library?

It's unclear to me what you mean.  In case you mean money: FreeType is
freely available.

 7- Is there a demo you can share, or setup a meeting to see the
capabilities of FreeType, or give us a temporary version of the
library to play with?

FreeType comes with a bundle of demo programs, like ftview, which
should compile on all major platforms.  The latest tarballs are

  http://download.savannah.gnu.org/releases/freetype/freetype-2.4.8.tar.gz
  http://download.savannah.gnu.org/releases/freetype/freetype-doc-2.4.8.tar.gz
  http://download.savannah.gnu.org/releases/freetype/ft2demos-2.4.8.tar.gz

For compilation on Windows (using non-GNU tools), however, you need
zipped archives which have CR/LF line endings:

  http://download.savannah.gnu.org/releases/freetype/ft248.zip
  http://download.savannah.gnu.org/releases/freetype/ftdoc248.zip
  http://download.savannah.gnu.org/releases/freetype/ftdmo248.zip

Note that we don't develop on Windows; this means that some project
files might be out of date.

BTW, if you need to see real-life usage of FreeType on ARM and similar
chips, simply look at your favourite smartphone: Almost all of them
use FreeType for rendering fonts, in particular everything using
Android or iOS.


Werner

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] FreeType License and patents

2012-01-17 Thread Werner LEMBERG

 Are you willing to do the work to make sure no FreeType contributor
 currently has a patent on code they have contributed?

This should be doable, given that there are just a handful of
contributors who added longer, non-trivial stuff.


 Werner

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] [ft] FreeType License and patents

2012-01-17 Thread David Turner
Hello,

Just to make it clear, I'm too in favor of adding an Apache2-like patent
clause to the license.
And for the sake of full-disclosure, my employer does releases quite a
large amount http://source.android.com of Apache-2 licensed code.

On Fri, Jan 13, 2012 at 8:34 PM, Eric Rannaud eric.rann...@gmail.comwrote:

 On Fri, Jan 13, 2012 at 11:16 AM, Dave Crossland d...@lab6.com wrote:
  On 13 January 2012 20:13, Werner LEMBERG w...@gnu.org wrote:
  I would like to add something similar, with the exception that code
  especially marked as patented within the FreeType source code is not
  covered.
 
  Comments?
 
  Why not just switch to Apache?

 Switching to Apache2 is an interesting possibility, but such a license
change means getting the approval of all contributors to the project. Given
FreeType's age, that might be challenging and/or time-consuming (e.g. what
are the chances that all email addresses in our copyright disclaimers are
still valid).

An easier approach would be to ask for all future contributions to be
covered by FreeType License 1.1, which would be equal to the actual one,
plus a patent clause. This allows us to keep the existing code just as-is
in case we don't have a contact or agreement with the original author of
some piece of code. Also makes explaining the change easier.

We can still continue to contact contributors to ask them their
opinion/agreement on switching their existing code to Apache 2 though, and
maybe later switch to it.


 Apache2 is not compatible with GPLv2 notably because of this
 particular patent clause (that's the general agreement anyway -- some
 see GPLv2 as already having an equivalent clause, albeit less
 explicit). Apache2 is compatible with GPLv3, however.


GPL is already not an issue since the original FreeType license is not
compatible either (due to the credit clause). That's why we dual-license
the library by the way. I don't see why anything would change with the
proposed license update.


 So you want to be careful adding that kind of exception, you may
 create a number of new license compatibility questions.

 If you want such a patent grant clause, you might as well have
 Freetype released under Apache2 and continue to make it available
 under GPLv2. At least license compatibility is then clear.

 However, by switching to Apache2, or by adding such a clause, you will
 likely make Freetype harder to use for some projects that may have
 liked the current license better. (e.g. OpenBSD: they don't like
 Apache2, and maybe would reject Freetype license + patent grant.)


I'm ok with OpenBSD rejecting an updated license (you can't please all
people in the world after all). I still can't find any official reason why
they're opposed to Apache2, but they can still use the existing FreeType
code and back-port security fixes manually if they want. They've been doing
it with Apache 1 for years and nobody's been greatly impacted by it as far
as I understand.

It might be a good thing to bump the library's minor version number for the
license change to make this back-tracking easier.

- David
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] [ft] FreeType License and patents

2012-01-17 Thread Dave Crossland
On 17 January 2012 09:25, David Turner di...@google.com wrote:
 An easier approach would be to ask for all future contributions to be
 covered by FreeType License 1.1,
 ...
 Apache2 is not compatible with GPLv2 notably because of this
 particular patent clause (that's the general agreement anyway -- some
 see GPLv2 as already having an equivalent clause, albeit less
 explicit). Apache2 is compatible with GPLv3, however.

 GPL is already not an issue since the original FreeType license is not
 compatible either (due to the credit clause). That's why we dual-license the
 library by the way. I don't see why anything would change with the proposed
 license update.

But its GPLv2 only :-(

Apache 2 is GPLv3 compatible.

So I'd suggest either using Apache 2, or using FreeType License 1.1
and GPLv2-or-later.

-- 
Cheers
Dave

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] [ft] FreeType License and patents

2012-01-17 Thread David Turner
On Tue, Jan 17, 2012 at 3:53 PM, Dave Crossland d...@lab6.com wrote:


 But its GPLv2 only :-(

 Apache 2 is GPLv3 compatible.

 So I'd suggest either using Apache 2, or using FreeType License 1.1
 and GPLv2-or-later.


Apache 2 or GPLv2-or-later have the same problems: they require changing
the license of existing code, i.e. contacting all copyright holders for
permission, getting permissions from all of them or rewrite their
contribution from scratch.

I think it's easier/faster/simpler to start adding a new clause to cover
any future contribution. The resulting package in its entirety would be
covered by the 1.1 license, because the 1.0 one doesn't mandate
restrictions on what you can do with the rest of the code (unlike the GPL).

One option doesn't prevent the other, they just require different time
frames.


 --
 Cheers
 Dave

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Testing PIC mode code (Re: Fixes for some compile and link errors when using FT_CONFIG_OPTION_PIC)

2012-01-17 Thread Erik Dahlstrom

Hi,
after I submitted my first patches I found a bunch of other PIC issues. I  
see that you have fixed some of the same things I found too, mostly  
missing includes to the various error-headerfiles, and a bunch of  
unitialized variables for clazz and the various PIC modules, and pointer  
dereferences of the same.


One example of that, there are plenty more:

diff --git a/modules/libfreetype/include/freetype/internal/ftdriver.h  
b/modules/libfreetype/include/freetype/internal/ftdriver.h

index bbb9ddd..333f908 100644
--- a/modules/libfreetype/include/freetype/internal/ftdriver.h
+++ b/modules/libfreetype/include/freetype/internal/ftdriver.h
@@ -366,11 +366,11 @@ FT_BEGIN_HEADER
   FT_Create_Class_##class_( FT_Library 
library,   \
 FT_Module_Class**  output_class  
)\
   {   
\
-FT_Driver_Class   
clazz;  \
+FT_Driver_Class  clazz =  
NULL;   \
 FT_Error  
error;  \
 FT_Memorymemory =  
library-memory;   \

  \
-if ( FT_ALLOC( clazz, sizeof(*clazz) )  
) \
+if ( FT_ALLOC( clazz, sizeof(FT_Driver_ClassRec) )  
) \
   return  
error;  \

  \
 error = class_##_pic_init( library  
);\



If you prefer I can send another patch with those changes.

Regarding testing of the PIC mode, yes you can test it on Linux even  
though PIC isn't normally required there. The linker that has issues with  
strings and array initializations like in ftobjs.c is for the Brew  
platform.



On Tue, 17 Jan 2012 07:54:40 +0100, suzuki toshiya  
mpsuz...@hiroshima-u.ac.jp wrote:



During the overhaul for PIC build, I found that cache subsystem
of FreeType2 is not ready for PIC build, thus the demo programs
doing rasterization (e.g. ftview, ftbench) cannot be built.
Thus I can check if the code is compilable, but cannot check
if the code is working. Maybe most expected direction is the
porting of the cache subsystem for PIC build (even if there is
no real user of it on embedded system), but extending some demo
programs for FreeType2 without cache subsystem would be easier
first step.

# I assume FreeType2 built in PIC mode will work in the operating
# system that PIC mode is NOT required (e.g. Linux). If it's
# misunderstanding, please let me know.

Any comments?

Regards,
mpsuzuki

suzuki toshiya wrote:

Dear Erik,

I have made some overhaul for PIC build, and, your patch to
modify resource fork support for PIC build is applied with
some coding style changing. Please check whether GIT head
works on your platform.

BTW,

diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 1a5a327..fc687f5 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -4533,7 +4533,9 @@
  */
 {
   FT_UInt  m, n;
-  const char*  driver_name[] = { type42, NULL };
+  const char*  driver_name[2];
+ driver_name[0] = type42;
+ driver_name[1] = NULL;


   for ( m = 0;

is not committed yet, because I want to know which linker complains
about such initialization. If possible, please let me know 1 example
to be documented in ChangeLog. I'm not saying there should not be
such linker, just I want to know 1 example, for good documentation.
Sorry for troubling you.

Regards,
mpsuzuki

suzuki toshiya wrote:

Dear Erik,

Sorry for your trouble and thank you for providing a patch,
I will check it in this weekend. Please give me a few days.

Regards,
mpsuzuki

Werner LEMBERG wrote:

The commits in question are both dealing with compilation of
'complex' structures and static globals.

Thanks for the patch.  Toshiya-san, can you have a look and take care
of it, please?


Werner



--
Erik Dahlstrom, Core Technology Developer, Opera Software
Co-Chair, W3C SVG Working Group
Personal blog: http://my.opera.com/macdev_ed

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Testing PIC mode code (Re: Fixes for some compile and link errors when using FT_CONFIG_OPTION_PIC)

2012-01-17 Thread suzuki toshiya
Dear Erik,

Of course, I want to receive the patch to improve (rather,
I should call restore) PIC build. I wish if my overhaul
have not made you troubled.

Erik Dahlstrom wrote:
 diff --git a/modules/libfreetype/include/freetype/internal/ftdriver.h 
 b/modules/libfreetype/include/freetype/internal/ftdriver.h
 index bbb9ddd..333f908 100644
 --- a/modules/libfreetype/include/freetype/internal/ftdriver.h
 +++ b/modules/libfreetype/include/freetype/internal/ftdriver.h
 @@ -366,11 +366,11 @@ FT_BEGIN_HEADER
FT_Create_Class_##class_( FT_Library
 library,   \
  FT_Module_Class**  output_class 
 )\

 {  
 \
 -FT_Driver_Class  
 clazz;  \
 +FT_Driver_Class  clazz = 
 NULL;   \
  FT_Error 
 error;  \
  FT_Memorymemory = 
 library-memory;   \
   
 \
 -if ( FT_ALLOC( clazz, sizeof(*clazz) ) 
 ) \
 +if ( FT_ALLOC( clazz, sizeof(FT_Driver_ClassRec) ) 
 ) \
return 
 error;  \
   
 \
  error = class_##_pic_init( library 
 );\
 
 
 If you prefer I can send another patch with those changes.

Ahhh... although I'm not sure whether ANSI C requests that
sizeof(*xxx_p) works as sizeof(xxx), I think such modification
is not bad idea. BTW, sizeof(*xxx_p) style coding is refused
by the compiler? or linker?

 Regarding testing of the PIC mode, yes you can test it on Linux even 
 though PIC isn't normally required there. The linker that has issues 
 with strings and array initializations like in ftobjs.c is for the Brew 
 platform.

Thanks. I heard that BREW's official SDK is based on ARM RVCT
compiler in Microsoft Visual C++ IDE. I don't have MSVC IDE,
but I will check if there is any free-charged version of RVCT
compiler.

Regards,
mpsuzuki

 
 On Tue, 17 Jan 2012 07:54:40 +0100, suzuki toshiya 
 mpsuz...@hiroshima-u.ac.jp wrote:
 
 During the overhaul for PIC build, I found that cache subsystem
 of FreeType2 is not ready for PIC build, thus the demo programs
 doing rasterization (e.g. ftview, ftbench) cannot be built.
 Thus I can check if the code is compilable, but cannot check
 if the code is working. Maybe most expected direction is the
 porting of the cache subsystem for PIC build (even if there is
 no real user of it on embedded system), but extending some demo
 programs for FreeType2 without cache subsystem would be easier
 first step.

 # I assume FreeType2 built in PIC mode will work in the operating
 # system that PIC mode is NOT required (e.g. Linux). If it's
 # misunderstanding, please let me know.

 Any comments?

 Regards,
 mpsuzuki

 suzuki toshiya wrote:
 Dear Erik,

 I have made some overhaul for PIC build, and, your patch to
 modify resource fork support for PIC build is applied with
 some coding style changing. Please check whether GIT head
 works on your platform.

 BTW,

 diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
 index 1a5a327..fc687f5 100644
 --- a/src/base/ftobjs.c
 +++ b/src/base/ftobjs.c
 @@ -4533,7 +4533,9 @@
   */
  {
FT_UInt  m, n;
 -  const char*  driver_name[] = { type42, NULL };
 +  const char*  driver_name[2];
 + driver_name[0] = type42;
 + driver_name[1] = NULL;


for ( m = 0;

 is not committed yet, because I want to know which linker complains
 about such initialization. If possible, please let me know 1 example
 to be documented in ChangeLog. I'm not saying there should not be
 such linker, just I want to know 1 example, for good documentation.
 Sorry for troubling you.

 Regards,
 mpsuzuki

 suzuki toshiya wrote:
 Dear Erik,

 Sorry for your trouble and thank you for providing a patch,
 I will check it in this weekend. Please give me a few days.

 Regards,
 mpsuzuki

 Werner LEMBERG wrote:
 The commits in question are both dealing with compilation of
 'complex' structures and static globals.
 Thanks for the patch.  Toshiya-san, can you have a look and take care
 of it, please?


 Werner
 
 


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel