This is an automated email from the git hooks/post-receive script. rene pushed a commit to branch master in repository graphite2.
commit 50710b150f22e47799ad0fb6d0ee14208c0d29c5 Author: Rene Engelhard <[email protected]> Date: Tue Jan 5 17:12:01 2016 +0000 Imported Debian patch 1.3.4-2 --- debian/changelog | 13 +++ debian/control | 29 +---- debian/libgraphite2-3-dbg.substvars | 2 + debian/patches/reproducible-build.diff | 11 ++ ...ollision-info-refactoring-to-fix-alignment.diff | 121 +++++++++++++++++++++ debian/patches/series | 2 + debian/rules | 6 +- 7 files changed, 156 insertions(+), 28 deletions(-) diff --git a/debian/changelog b/debian/changelog index b4ab868..e23dcc7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +graphite2 (1.3.4-2) unstable; urgency=medium + + * debian/patches/revert-collision-info-refactoring-to-fix-alignment.diff: + add from upstream git, thanks Tim Eves (closes: #805323) + * debian/patches/reproducible-build.diff: tell dblatex to use a static + path to make build reproduceable, thanks Reiner Herrmann + (closes: #807838) + * use -DGRAPHITE2_NTRACING:BOOL=ON (instead of :bool=1) + * fix Maintainer: + * migrate from manual -dbg to ddeb + + -- Rene Engelhard <[email protected]> Tue, 05 Jan 2016 17:12:01 +0000 + graphite2 (1.3.4-1) unstable; urgency=medium * New upstream release diff --git a/debian/control b/debian/control index 91ec85d..5b50109 100644 --- a/debian/control +++ b/debian/control @@ -1,9 +1,9 @@ Source: graphite2 Priority: optional Section: libs -Maintainer: Debian LibreOffice Team <[email protected]> +Maintainer: Debian LibreOffice Maintainers <[email protected]> Uploaders: Rene Engelhard <[email protected]>, Daniel Glassey <[email protected]> -Build-Depends: debhelper (>= 9), dh-exec (>= 0.3), dpkg-dev (>= 1.16.1), cmake, python, fonttools +Build-Depends: debhelper (>= 9.20151219), dh-exec (>= 0.3), dpkg-dev (>= 1.18.2~), cmake, python, fonttools # perl: libmodule-build-perl # mono: mono-xbuild, mono-gmcs, mono-dmcs, libnunit-cil-dev Build-Depends-Indep: asciidoc, dblatex, doxygen, docbook-xsl, latex-xcolor, libxml2-utils, graphviz @@ -62,31 +62,6 @@ Description: Development files for libgraphite2 . This package contains the development libraries for libgraphite2 -Package: libgraphite2-3-dbg -Priority: extra -Section: debug -Architecture: any -Depends: libgraphite2-3 (= ${binary:Version}), ${misc:Depends} -Description: Debug symbols for libgraphite2 - Graphite is a system that can be used to create and use "smart fonts" capable - of displaying writing systems with various complex behaviors, such as: - contextual shaping, ligatures, reordering, split glyphs, bidirectionality, - stacking diacritics and complex positioning. - . - This library was designed and developed by the NRSI (Non-Roman Script - Initiative) within SIL International (www.sil.org) to act as a complement to - other smart font rendering technologies with limited practical local - extensibility. Its purpose is to help meet the needs of a very large number - of "minority language" communities for local extensibility of complex script - behaviors. - . - The behavior of the rendering engine for a given writing system is specified - through extra tables added to a TrueType font. These tables are generated by - compiling a GDL (Graphite Description Language) source file into a font using - grcompiler. - . - Debug symbols for libgraphite2 - Package: libgraphite2-doc Section: doc Architecture: all diff --git a/debian/libgraphite2-3-dbg.substvars b/debian/libgraphite2-3-dbg.substvars new file mode 100644 index 0000000..978fc8b --- /dev/null +++ b/debian/libgraphite2-3-dbg.substvars @@ -0,0 +1,2 @@ +misc:Depends= +misc:Pre-Depends= diff --git a/debian/patches/reproducible-build.diff b/debian/patches/reproducible-build.diff new file mode 100644 index 0000000..3b83c70 --- /dev/null +++ b/debian/patches/reproducible-build.diff @@ -0,0 +1,11 @@ +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -12,7 +12,7 @@ + if(DBLATEX) + add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/manual.pdf + DEPENDS ${PROJECT_SOURCE_DIR}/[a-z]*.txt +- COMMAND ${A2X} -D ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/manual.txt) ++ COMMAND ${A2X} -D ${PROJECT_BINARY_DIR} --dblatex-opts="--tmpdir=docbuild" ${PROJECT_SOURCE_DIR}/manual.txt) + add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/GTF.pdf + DEPENDS ${PROJECT_SOURCE_DIR}/GTF.txt + COMMAND ${A2X} -D ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/GTF.txt) diff --git a/debian/patches/revert-collision-info-refactoring-to-fix-alignment.diff b/debian/patches/revert-collision-info-refactoring-to-fix-alignment.diff new file mode 100644 index 0000000..b2e5519 --- /dev/null +++ b/debian/patches/revert-collision-info-refactoring-to-fix-alignment.diff @@ -0,0 +1,121 @@ +diff -u b/src/Segment.cpp b/src/Segment.cpp +--- b/src/Segment.cpp ++++ b/src/Segment.cpp +@@ -46,6 +46,7 @@ + : m_freeSlots(NULL), + m_freeJustifies(NULL), + m_charinfo(new CharInfo[numchars]), ++ m_collisions(NULL), + m_face(face), + m_silf(face->chooseSilf(script)), + m_first(NULL), +@@ -71,6 +72,7 @@ + for (JustifyRope::iterator i = m_justifies.begin(); i != m_justifies.end(); ++i) + free(*i); + delete[] m_charinfo; ++ free(m_collisions); + } + + #ifndef GRAPHITE2_NSEGCACHE +@@ -175,8 +177,7 @@ + if (m_face->logger()) ++numUser; + #endif + Slot *newSlots = grzeroalloc<Slot>(m_bufSize); +- int attrSize = numUser + (hasCollisionInfo() ? ((sizeof(SlotCollision) + 1) / 2) : 0); +- int16 *newAttrs = grzeroalloc<int16>(m_bufSize * attrSize); ++ int16 *newAttrs = grzeroalloc<int16>(m_bufSize * numUser); + if (!newSlots || !newAttrs) + { + free(newSlots); +@@ -185,7 +186,7 @@ + } + for (size_t i = 0; i < m_bufSize; i++) + { +- ::new (newSlots + i) Slot(newAttrs + i * attrSize); ++ ::new (newSlots + i) Slot(newAttrs + i * numUser); + newSlots[i].next(newSlots + i + 1); + } + newSlots[m_bufSize - 1].next(NULL); +@@ -214,8 +215,7 @@ + } + // reset the slot incase it is reused + ::new (aSlot) Slot(aSlot->userAttrs()); +- int attrSize = m_silf->numUser() + (hasCollisionInfo() ? ((sizeof(SlotCollision) + 1) / 2) : 0); +- memset(aSlot->userAttrs(), 0, attrSize * sizeof(int16)); ++ memset(aSlot->userAttrs(), 0, m_silf->numUser() * sizeof(int16)); + // Update generation counter for debug + #if !defined GRAPHITE2_NTRACING + if (m_face->logger()) +@@ -304,14 +304,13 @@ + assert(offset + numChars <= m_numCharinfo); + Slot * indexmap[eMaxSpliceSize*3]; + assert(numGlyphs < sizeof indexmap/sizeof *indexmap); +- int attrSize = m_silf->numUser() + (hasCollisionInfo() ? ((sizeof(SlotCollision) + 1) / 2) : 0); + Slot * slot = startSlot; + for (uint16 i=0; i < numGlyphs; slot = slot->next(), ++i) + indexmap[i] = slot; + + for (slot = startSlot; slot != endSlot; slot = slot->next(), srcSlot = srcSlot->next()) + { +- slot->set(*srcSlot, offset, attrSize, m_silf->numJustLevels(), numChars); ++ slot->set(*srcSlot, offset, m_silf->numUser(), m_silf->numJustLevels(), numChars); + if (srcSlot->attachedTo()) slot->attachTo(indexmap[srcSlot->attachedTo()->index()]); + if (srcSlot->nextSibling()) slot->m_sibling = indexmap[srcSlot->nextSibling()->index()]; + if (srcSlot->firstChild()) slot->m_child = indexmap[srcSlot->firstChild()->index()]; +@@ -523,6 +522,9 @@ + + bool Segment::initCollisions() + { ++ m_collisions = grzeroalloc<SlotCollision>(slotCount()); ++ if (!m_collisions) return false; ++ + for (Slot *p = m_first; p; p = p->next()) + ::new (collisionInfo(p)) SlotCollision(this, p); + return true; +diff -u b/src/inc/Segment.h b/src/inc/Segment.h +--- b/src/inc/Segment.h ++++ b/src/inc/Segment.h +@@ -160,8 +160,7 @@ + + bool isWhitespace(const int cid) const; + bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS); } +- SlotCollision *collisionInfo(const Slot *s) const { return hasCollisionInfo() ? reinterpret_cast<SlotCollision *>(s->userAttrs() + m_silf->numUser()) : 0; } +- ++ SlotCollision *collisionInfo(const Slot *s) const { return m_collisions ? m_collisions + s->index() : 0; } + CLASS_NEW_DELETE + + public: //only used by: GrSegment* makeAndInitialize(const GrFont *font, const GrFace *face, uint32 script, const FeaturesHandle& pFeats/*must not be IsNull*/, encform enc, const void* pStart, size_t nChars, int dir); +@@ -179,6 +178,7 @@ + Slot * m_freeSlots; // linked list of free slots + SlotJustify * m_freeJustifies; // Slot justification blocks free list + CharInfo * m_charinfo; // character info, one per input character ++ SlotCollision * m_collisions; + const Face * m_face; // GrFace + const Silf * m_silf; + Slot * m_first; // first slot in segment +only in patch2: +unchanged: +--- a/src/SegCacheEntry.cpp ++++ b/src/SegCacheEntry.cpp +@@ -61,8 +61,7 @@ SegCacheEntry::SegCacheEntry(const uint16* cmapGlyphs, size_t length, Segment * + } + const Slot * slot = seg->first(); + m_glyph = new Slot[glyphCount]; +- int attrSize = seg->numAttrs() + (seg->hasCollisionInfo() ? (sizeof(SlotCollision) + 1) / 2 : 0); +- m_attr = gralloc<int16>(glyphCount * attrSize); ++ m_attr = gralloc<int16>(glyphCount * seg->numAttrs()); + if (!m_glyph || (!m_attr && seg->numAttrs())) return; + m_glyphLength = glyphCount; + Slot * slotCopy = m_glyph; +@@ -71,9 +70,9 @@ SegCacheEntry::SegCacheEntry(const uint16* cmapGlyphs, size_t length, Segment * + uint16 pos = 0; + while (slot) + { +- slotCopy->userAttrs(m_attr + pos * attrSize); ++ slotCopy->userAttrs(m_attr + pos * seg->numAttrs()); + slotCopy->m_justs = m_justs ? reinterpret_cast<SlotJustify *>(m_justs + justs_pos++ * sizeof_sjust) : 0; +- slotCopy->set(*slot, -static_cast<int32>(charOffset), attrSize, seg->silf()->numJustLevels(), length); ++ slotCopy->set(*slot, -static_cast<int32>(charOffset), seg->numAttrs(), seg->silf()->numJustLevels(), length); + slotCopy->index(pos); + if (slot->firstChild()) + slotCopy->m_child = m_glyph + slot->firstChild()->index(); diff --git a/debian/patches/series b/debian/patches/series index d39cfd6..fc45f5a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,5 @@ non-linux.diff no-icons.diff test-timeout.diff +revert-collision-info-refactoring-to-fix-alignment.diff +reproducible-build.diff diff --git a/debian/rules b/debian/rules index f6c8d39..b83bbce 100755 --- a/debian/rules +++ b/debian/rules @@ -1,5 +1,6 @@ #!/usr/bin/make -f +export DPKG_EXPORT_BUILDFLAGS = 0 include /usr/share/dpkg/architecture.mk %: @@ -60,10 +61,13 @@ override_dh_auto_clean: dh_auto_clean override_dh_auto_configure: - dh_auto_configure -- -DCMAKE_BUILD_TYPE:STRING=Release -DGRAPHITE2_NTRACING:bool=1 -DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) + dh_auto_configure -- -DCMAKE_BUILD_TYPE:STRING=Release -DGRAPHITE2_NTRACING:BOOL=ON -DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) find . -type f ! -name "rules" ! -name "changelog" \ -exec sed -i -e 's/\-O3//g' {} \; override_dh_gencontrol: dh_gencontrol -Nlibtext-gr2-perl -O--builddirectory=build # dh_gencontrol -plibtext-gr2-perl -- -v`cat perl/META.yml | grep version: | tail -n 1 | awk '{ print $$2 }'`-`dpkg-parsechangelog | grep urgency | awk '{ print $$2 }' | sed -e 's/(//' | sed -e 's/)//' | cut -d- -f2` + +override_dh_strip: + dh_strip --ddeb-migration="libgraphite2-3-dbg (<= 1.3.4-1)" -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/graphite2.git

