[thunderbird-lightning] Initial import
Orion Poplawski
orion at fedoraproject.org
Thu Apr 21 14:50:44 UTC 2011
commit 51e67de2d10ca17e2681112162cdb8faa5eda6c3
Author: Orion Poplawski <orion at cora.nwra.com>
Date: Thu Apr 21 08:50:34 2011 -0600
Initial import
.gitignore | 1 +
find-external-requires | 23 +++++
mozilla-build-s390.patch | 11 +++
mozilla-jemalloc.patch | 47 ++++++++++
mozilla-libjpeg-turbo.patch | 54 +++++++++++
mozilla-missing-cflags.patch | 9 ++
mozilla-notify.patch | 12 +++
sources | 1 +
thunderbird-lightning.spec | 196 +++++++++++++++++++++++++++++++++++++++++
thunderbird-mozconfig | 40 +++++++++
thunderbird-version.patch | 12 +++
xulrunner-1.9.2.1-build.patch | 16 ++++
xulrunner-2.0-os2cc.patch | 21 +++++
13 files changed, 443 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..65383a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/thunderbird-3.1.9.source.tar.bz2
diff --git a/find-external-requires b/find-external-requires
new file mode 100755
index 0000000..d79db1d
--- /dev/null
+++ b/find-external-requires
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Finds requirements provided outside of the current file set
+
+filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
+
+provides=`echo $filelist | /usr/lib/rpm/find-provides`
+
+{
+for f in $filelist ; do
+ echo $f | /usr/lib/rpm/find-requires | while read req ; do
+ found=0
+ for p in $provides ; do
+ if [ "$req" = "$p" ]; then
+ found=1
+ fi
+ done
+ if [ "$found" = "0" ]; then
+ echo $req
+ fi
+ done
+done
+} | sort -u
\ No newline at end of file
diff --git a/mozilla-build-s390.patch b/mozilla-build-s390.patch
new file mode 100644
index 0000000..2bfe1d5
--- /dev/null
+++ b/mozilla-build-s390.patch
@@ -0,0 +1,11 @@
+diff -up mozilla-1.9.2/js/src/jstl.h.s390 mozilla-1.9.2/js/src/jstl.h
+--- mozilla-1.9.2/js/src/jstl.h.s390 2011-02-18 19:33:24.000000000 +0100
++++ mozilla-1.9.2/js/src/jstl.h 2011-03-07 08:41:29.000000000 +0100
+@@ -195,7 +195,6 @@ class ReentrancyGuard
+ JS_ALWAYS_INLINE size_t
+ RoundUpPow2(size_t x)
+ {
+- typedef tl::StaticAssert<tl::IsSameType<size_t,JSUword>::result>::result _;
+ size_t log2 = JS_CEILING_LOG2W(x);
+ JS_ASSERT(log2 < tl::BitSize<size_t>::result);
+ size_t result = size_t(1) << log2;
diff --git a/mozilla-jemalloc.patch b/mozilla-jemalloc.patch
new file mode 100644
index 0000000..ed255c0
--- /dev/null
+++ b/mozilla-jemalloc.patch
@@ -0,0 +1,47 @@
+# HG changeset patch
+# User Takanori MATSUURA <t.matsuu at gmail.com>
+# Date 1267955626 -3600
+# Node ID 7a2802932585e73f9fc817497b1d323f820d8fc9
+# Parent c2630edd612be6e301616c5219327560ea3955f5
+Bug 526389 - Skip redefinition of memory allocation functions for MacOS X and Linux. r=jasone
+
+diff --git mozilla/memory/jemalloc/jemalloc.h mozilla/memory/jemalloc/jemalloc.h
+--- mozilla/memory/jemalloc/jemalloc.h
++++ mozilla/memory/jemalloc/jemalloc.h
+@@ -74,26 +74,31 @@ typedef struct {
+ * Current memory usage statistics.
+ */
+ size_t mapped; /* Bytes mapped (not necessarily committed). */
+ size_t committed; /* Bytes committed (readable/writable). */
+ size_t allocated; /* Bytes allocted (in use by application). */
+ size_t dirty; /* Bytes dirty (committed unused pages). */
+ } jemalloc_stats_t;
+
+-#ifndef MOZ_MEMORY_DARWIN
++/* Darwin and Linux already have memory allocation functions */
++#if (!defined(MOZ_MEMORY_DARWIN) && !defined(MOZ_MEMORY_LINUX))
+ void *malloc(size_t size);
+ void *valloc(size_t size);
+ void *calloc(size_t num, size_t size);
+ void *realloc(void *ptr, size_t size);
+ void free(void *ptr);
+-#endif
++int posix_memalign(void **memptr, size_t alignment, size_t size);
++#endif /* MOZ_MEMORY_DARWIN, MOZ_MEMORY_LINUX */
+
+-int posix_memalign(void **memptr, size_t alignment, size_t size);
++/* Linux has memalign */
++#if !defined(MOZ_MEMORY_LINUX)
+ void *memalign(size_t alignment, size_t size);
++#endif /* MOZ_MEMORY_LINUX */
++
+ size_t malloc_usable_size(const void *ptr);
+ void jemalloc_stats(jemalloc_stats_t *stats);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
+ #endif /* _JEMALLOC_H_ */
+
+
diff --git a/mozilla-libjpeg-turbo.patch b/mozilla-libjpeg-turbo.patch
new file mode 100644
index 0000000..43783de
--- /dev/null
+++ b/mozilla-libjpeg-turbo.patch
@@ -0,0 +1,54 @@
+diff -up xulrunner-1.9.2.7/mozilla-1.9.2/modules/libpr0n/decoders/jpeg/nsJPEGDecoder.cpp.old xulrunner-1.9.2.7/mozilla-1.9.2/modules/libpr0n/decoders/jpeg/nsJPEGDecoder.cpp
+--- xulrunner-1.9.2.7/mozilla/modules/libpr0n/decoders/jpeg/nsJPEGDecoder.cpp.old 2010-07-13 21:10:28.000000000 +0200
++++ xulrunner-1.9.2.7/mozilla/modules/libpr0n/decoders/jpeg/nsJPEGDecoder.cpp 2010-07-22 12:33:21.000000000 +0200
+@@ -57,19 +57,6 @@
+
+ extern "C" {
+ #include "iccjpeg.h"
+-
+-/* Colorspace conversion (copied from jpegint.h) */
+-struct jpeg_color_deconverter {
+- JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
+- JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
+- JSAMPIMAGE input_buf, JDIMENSION input_row,
+- JSAMPARRAY output_buf, int num_rows));
+-};
+-
+-METHODDEF(void)
+-ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+- JSAMPIMAGE input_buf, JDIMENSION input_row,
+- JSAMPARRAY output_buf, int num_rows);
+ }
+
+ NS_IMPL_ISUPPORTS1(nsJPEGDecoder, imgIDecoder)
+@@ -514,14 +501,6 @@ nsresult nsJPEGDecoder::ProcessData(cons
+ return NS_OK; /* I/O suspension */
+ }
+
+- /* Force to use our YCbCr to Packed RGB converter when possible */
+- if (!mTransform && (gfxPlatform::GetCMSMode() == eCMSMode_Off) &&
+- mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) {
+- /* Special case for the most common case: transform from YCbCr direct into packed ARGB */
+- mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/
+- mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+- }
+-
+ /* If this is a progressive JPEG ... */
+ mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
+ }
+@@ -678,15 +657,6 @@ nsJPEGDecoder::OutputScanlines(PRBool* s
+ PRUint32 *imageRow = ((PRUint32*)mImageData) +
+ (mInfo.output_scanline * mInfo.output_width);
+
+- if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
+- /* Special case: scanline will be directly converted into packed ARGB */
+- if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
+- *suspend = PR_TRUE; /* suspend */
+- break;
+- }
+- continue; /* all done for this row! */
+- }
+-
+ JSAMPROW sampleRow = (JSAMPROW)imageRow;
+ if (mInfo.output_components == 3) {
+ /* Put the pixels at end of row to enable in-place expansion */
diff --git a/mozilla-missing-cflags.patch b/mozilla-missing-cflags.patch
new file mode 100644
index 0000000..fcef959
--- /dev/null
+++ b/mozilla-missing-cflags.patch
@@ -0,0 +1,9 @@
+diff -up comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in.mozcflags comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in
+--- comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in.mozcflags 2010-07-26 12:52:38.000000000 +0200
++++ comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in 2010-07-26 12:39:34.000000000 +0200
+@@ -93,4 +93,5 @@ CXXFLAGS += \
+ $(MOZ_GNOMEVFS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(MOZ_LIBNOTIFY_CFLAGS) \
++ $(MOZ_GTK2_CFLAGS) \
+ $(NULL)
diff --git a/mozilla-notify.patch b/mozilla-notify.patch
new file mode 100644
index 0000000..952567b
--- /dev/null
+++ b/mozilla-notify.patch
@@ -0,0 +1,12 @@
+diff -up comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp
+--- comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify 2010-10-27 09:05:36.000000000 +0200
++++ comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp 2010-11-08 13:28:04.564002379 +0100
+@@ -204,7 +204,7 @@ nsAlertsIconListener::ShowAlert(GdkPixbu
+ {
+ NotifyNotification* notify = notify_notification_new(mAlertTitle.get(),
+ mAlertText.get(),
+- NULL, NULL);
++ NULL);
+ if (!notify)
+ return NS_ERROR_OUT_OF_MEMORY;
+
diff --git a/sources b/sources
index e69de29..c8728d6 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+e6917c419d3aaa8083a1d4b53fb80d8c thunderbird-3.1.9.source.tar.bz2
diff --git a/thunderbird-lightning.spec b/thunderbird-lightning.spec
new file mode 100644
index 0000000..1d6c030
--- /dev/null
+++ b/thunderbird-lightning.spec
@@ -0,0 +1,196 @@
+%global nspr_version 4.8
+%global nss_version 3.12.8
+%global cairo_version 1.8.8
+%global freetype_version 2.1.9
+%global sqlite_version 3.6.14
+%global libnotify_version 0.4
+%global thunderbird_version 3.1.9
+%global moz_objdir objdir-tb
+%global thunderbird_app_id \{3550f703-e582-4d05-9a08-453d09bdfdc6\}
+%global lightning_release 0.39.b3pre
+%global lightning_extname %{_libdir}/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}/{e2fda1a4-762b-4020-b5ad-a41df1933103}
+%global gdata_extname %{_libdir}/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}
+
+# The tarball is pretty inconsistent with directory structure.
+# Sometimes there is a top level directory. That goes here.
+#
+# IMPORTANT: If there is no top level directory, this should be
+# set to the cwd, ie: '.'
+#define tarballdir .
+%global tarballdir comm-1.9.2
+
+%global version_internal 3.1
+%global mozappdir %{_libdir}/%{name}-%{version_internal}
+
+Name: thunderbird-lightning
+Summary: The calendar extension to Thunderbird
+Version: 1.0
+Release: 0.41.b3pre%{?dist}
+URL: http://www.mozilla.org/projects/calendar/lightning/
+License: MPLv1.1 or GPLv2+ or LGPLv2+
+Group: Applications/Productivity
+#Someday lightning will produce a release we can use
+#Source0: http://releases.mozilla.org/pub/mozilla.org/calendar/lightning/releases/1.0b2rc3/source/lightning-1.0b2.source.tar.bz2
+Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{thunderbird_version}/source/thunderbird-%{thunderbird_version}.source.tar.bz2
+# Config file for compilation
+Source10: thunderbird-mozconfig
+# Finds requirements provided outside of the current file set
+Source100: find-external-requires
+
+# Mozilla (XULRunner) patches
+Patch0: thunderbird-version.patch
+Patch2: mozilla-jemalloc.patch
+Patch3: xulrunner-1.9.2.1-build.patch
+Patch4: mozilla-libjpeg-turbo.patch
+Patch5: mozilla-missing-cflags.patch
+Patch6: mozilla-build-s390.patch
+Patch8: mozilla-notify.patch
+Patch9: xulrunner-2.0-os2cc.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: nspr-devel >= %{nspr_version}
+BuildRequires: nss-devel >= %{nss_version}
+BuildRequires: cairo-devel >= %{cairo_version}
+BuildRequires: libnotify-devel >= %{libnotify_version}
+BuildRequires: libpng-devel
+BuildRequires: libjpeg-devel
+BuildRequires: zip
+BuildRequires: bzip2-devel
+BuildRequires: zlib-devel
+BuildRequires: libIDL-devel
+BuildRequires: gtk2-devel
+BuildRequires: gnome-vfs2-devel
+BuildRequires: libgnome-devel
+BuildRequires: libgnomeui-devel
+BuildRequires: krb5-devel
+BuildRequires: pango-devel
+BuildRequires: freetype-devel >= %{freetype_version}
+BuildRequires: libXt-devel
+BuildRequires: libXrender-devel
+BuildRequires: hunspell-devel
+BuildRequires: sqlite-devel >= %{sqlite_version}
+BuildRequires: startup-notification-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: autoconf213
+BuildRequires: desktop-file-utils
+BuildRequires: libcurl-devel
+Requires: thunderbird >= %{thunderbird_version}
+Obsoletes: thunderbird-lightning-wcap <= 0.8
+Provides: thunderbird-lightning-wcap = %{version}-%{release}
+AutoProv: 0
+%global _use_internal_dependency_generator 0
+%global __find_requires %{SOURCE100}
+
+
+%description
+Lightning brings the Sunbird calendar to the popular email client,
+Mozilla Thunderbird. Since it's an extension, Lightning is tightly
+integrated with Thunderbird, allowing it to easily perform email-related
+calendaring tasks.
+
+
+%prep
+%setup -q -c
+cd %{tarballdir}
+
+sed -e 's/__RPM_VERSION_INTERNAL__/%{version_internal}/' %{P:%%PATCH0} \
+ > version.patch
+%{__patch} -p1 -b --suffix .version --fuzz=0 < version.patch
+
+# Mozilla (XULRunner) patches
+cd mozilla
+%patch2 -p1 -b .jemalloc
+%patch3 -p2 -b .protected
+%patch4 -p2 -b .turbo
+%patch5 -p2 -b .mozcflags
+%patch6 -p1 -b .s390
+%patch8 -p2 -b .libnotify
+%patch9 -p1 -b .os2cc
+cd ..
+
+%{__rm} -f .mozconfig
+%{__cp} %{SOURCE10} .mozconfig
+
+# Fix permissions
+find -name \*.js | xargs chmod -x
+
+#===============================================================================
+
+%build
+cd %{tarballdir}
+
+INTERNAL_GECKO=%{version_internal}
+MOZ_APP_DIR=%{mozappdir}
+
+# -fpermissive is needed to build with gcc 4.6+ which has become stricter
+#
+# Mozilla builds with -Wall with exception of a few warnings which show up
+# everywhere in the code; so, don't override that.
+#
+# Disable C++ exceptions since Mozilla code is not exception-safe
+#
+MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | \
+ %{__sed} -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')
+export CFLAGS=$MOZ_OPT_FLAGS
+export CXXFLAGS=$MOZ_OPT_FLAGS
+
+export PREFIX='%{_prefix}'
+export LIBDIR='%{_libdir}'
+
+%global moz_make_flags -j1
+%ifarch ppc ppc64 s390 s390x
+%global moz_make_flags -j1
+%else
+%global moz_make_flags %{?_smp_mflags}
+%endif
+
+export LDFLAGS="-Wl,-rpath,%{mozappdir}"
+export MAKE="gmake %{moz_make_flags}"
+make -f client.mk build STRIP=/bin/true
+
+#===============================================================================
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd %{tarballdir}
+
+# Avoid "Chrome Registration Failed" message on first startup and extension installation
+mkdir -p $RPM_BUILD_ROOT%{lightning_extname}
+touch $RPM_BUILD_ROOT%{lightning_extname}/chrome.manifest
+mkdir -p $RPM_BUILD_ROOT%{gdata_extname}
+touch $RPM_BUILD_ROOT%{gdata_extname}/chrome.manifest
+
+# Lightning and GData provider for it
+unzip -qod $RPM_BUILD_ROOT%{lightning_extname} objdir-tb/mozilla/dist/xpi-stage/lightning.xpi
+unzip -qod $RPM_BUILD_ROOT%{gdata_extname} objdir-tb/mozilla/dist/xpi-stage/gdata-provider.xpi
+
+# Fix up permissions
+find $RPM_BUILD_ROOT -name \*.so | xargs chmod 0755
+
+#===============================================================================
+
+%clean
+%{__rm} -rf $RPM_BUILD_ROOT
+
+#===============================================================================
+
+%files
+%defattr(-,root,root,-)
+%doc %{tarballdir}/mozilla/LEGAL %{tarballdir}/mozilla/LICENSE %{tarballdir}/mozilla/README.txt
+%{lightning_extname}
+%{gdata_extname}
+
+#===============================================================================
+
+%changelog
+* Mon Apr 11 2011 Orion Poplawski <orion at cora.nwra.com> 1.0-0.41.b3pre
+- Fix debuginfo builds
+- Remove official branding sections
+- Don't unpack the .xpi
+
+* Wed Apr 6 2011 Orion Poplawski <orion at cora.nwra.com> 1.0-0.40.b3pre
+- Fixup some file permissions
+- Minor review cleanups
+
+* Mon Apr 4 2011 Orion Poplawski <orion at cora.nwra.com> 1.0-0.39.b3pre
+- Initial packaging, based on thunderbird 3.1.9
diff --git a/thunderbird-mozconfig b/thunderbird-mozconfig
new file mode 100644
index 0000000..d88a1c2
--- /dev/null
+++ b/thunderbird-mozconfig
@@ -0,0 +1,40 @@
+mk_add_options MOZ_CO_PROJECT=mail
+ac_add_options --enable-application=mail
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-tb/
+mk_add_options AUTOCONF=autoconf-2.13
+
+#ac_add_options --with-system-png
+
+ac_add_options --prefix="$PREFIX"
+ac_add_options --libdir="$LIBDIR"
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-pthreads
+ac_add_options --enable-calendar
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --enable-optimize
+ac_add_options --enable-xinerama
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --disable-xprint
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --enable-pango
+ac_add_options --enable-system-cairo
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-system-hunspell
+ac_add_options --disable-crashreporter
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-updater
+ac_add_options --enable-static
+ac_add_options --enable-static-mail
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+
diff --git a/thunderbird-version.patch b/thunderbird-version.patch
new file mode 100644
index 0000000..fa3096f
--- /dev/null
+++ b/thunderbird-version.patch
@@ -0,0 +1,12 @@
+diff -up comm-1.9.2/mail/installer/Makefile.in.version comm-1.9.2/mail/installer/Makefile.in
+--- comm-1.9.2/mail/installer/Makefile.in.version 2010-05-21 11:42:45.000000000 -0700
++++ comm-1.9.2/mail/installer/Makefile.in 2010-05-25 15:16:18.446197181 -0700
+@@ -44,6 +44,8 @@ include $(DEPTH)/config/autoconf.mk
+
+ include $(topsrcdir)/config/rules.mk
+
++MOZ_APP_VERSION="__RPM_VERSION_INTERNAL__"
++
+ MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
+
+ MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in
diff --git a/xulrunner-1.9.2.1-build.patch b/xulrunner-1.9.2.1-build.patch
new file mode 100644
index 0000000..1d32a0c
--- /dev/null
+++ b/xulrunner-1.9.2.1-build.patch
@@ -0,0 +1,16 @@
+XXX FIXME
+GCC complains that nsFrame::delete is protected
+..but this really needs to get solved a better way...
+
+diff -up xulrunner-1.9.2.1/mozilla-1.9.2/layout/generic/nsFrame.h.old xulrunner-1.9.2.1/mozilla-1.9.2/layout/generic/nsFrame.h
+--- xulrunner-1.9.2.1/mozilla/layout/generic/nsFrame.h.old 2009-11-11 15:34:51.000000000 +0100
++++ xulrunner-1.9.2.1/mozilla/layout/generic/nsFrame.h 2009-11-11 15:33:09.000000000 +0100
+@@ -157,7 +157,7 @@ private:
+ // Left undefined; nsFrame objects are never allocated from the heap.
+ void* operator new(size_t sz) CPP_THROW_NEW;
+
+-protected:
++public:
+ // Overridden to prevent the global delete from being called, since
+ // the memory came out of an arena instead of the heap.
+ //
diff --git a/xulrunner-2.0-os2cc.patch b/xulrunner-2.0-os2cc.patch
new file mode 100644
index 0000000..3aa5286
--- /dev/null
+++ b/xulrunner-2.0-os2cc.patch
@@ -0,0 +1,21 @@
+https://bugzilla.mozilla.org/show_bug.cgi?id=628252
+
+diff -r b5ee327bf536 gfx/ots/src/os2.cc
+--- a/gfx/ots/src/os2.cc Fri Jan 28 19:59:59 2011 +0100
++++ b/gfx/ots/src/os2.cc Sat Jan 29 10:56:30 2011 -0800
+@@ -1,12 +1,14 @@
+ // Copyright (c) 2009 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <cstddef>
++
+ #include "os2.h"
+
+ #include "head.h"
+
+ // OS/2 - OS/2 and Windows Metrics
+ // http://www.microsoft.com/opentype/otspec/os2.htm
+
+ namespace ots {
+
More information about the scm-commits
mailing list