Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 704508

Summary: Install bundled font for games-engines/devilutionx
Product: Gentoo Linux Reporter: Meik Frischke <meik.frischke>
Component: Current packagesAssignee: Lars Wendler (Polynomial-C) <polynomial-c>
Status: RESOLVED FIXED    
Severity: normal CC: toffanin.mauro
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Proposed patch for devilution-1.0.0.ebuild
Revised proposed patch for devilution-1.0.0.ebuild

Description Meik Frischke 2020-01-01 21:30:30 UTC
Created attachment 602248 [details, diff]
Proposed patch for devilution-1.0.0.ebuild

Devilution requires the "CharisSILB.ttf" font file which is bundled in the source package and the git tree: Packaging/resources/CharisSILB.ttf (OFL-1.1 licensed)
One possibility would be system-wide installation, since a bug [1] preventing that has been fixed. (As opposed to requiring symlinking the file from e.g. /usr/share/games/devilution to the directory containing the diabdat.mpq in post-install)

Additionally, a .desktop file and icons are also provided in the sources.

I've attached a proposed patch for the current devilutionx-1.0.0.ebuild adding the font and icons.

[1] https://github.com/diasurgical/devilutionX/issues/333
Comment 1 Lars Wendler (Polynomial-C) gentoo-dev 2020-01-01 21:49:26 UTC
I'd rather make the ebuild RDEPEND on media-fonts/sil-charis package to be honest... is there any compelling reason to use the bundled fonts instead? What about file collisions with media-fonts/sil-charis package?
Comment 2 Meik Frischke 2020-01-02 10:05:40 UTC
Created attachment 602288 [details, diff]
Revised proposed patch for devilution-1.0.0.ebuild

TBH, I didn't see the existing ebuild for the font. There are however no collisions, since the font is installed in a subfolder.
Devilution is looking for "CharisSILB.ttf" whereas the font ebuild provides "CharisSIL-B.ttf" (additional dash).
I think it is cleaner to patch the sources and add the font dependency
Comment 3 Larry the Git Cow gentoo-dev 2020-01-02 11:49:15 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a1e8a4363f135e88b95d2f0d080e85fe878b76d

commit 0a1e8a4363f135e88b95d2f0d080e85fe878b76d
Author:     Meik Frischke <meik.frischke@gmail.com>
AuthorDate: 2020-01-02 11:47:32 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2020-01-02 11:49:08 +0000

    games-engines/devilutionx: Use CharisSIL-B.ttf font
    
    Install desktop icons and improved .desktop entry
    
    Closes: https://bugs.gentoo.org/704508
    Package-Manager: Portage-2.3.84, Repoman-2.3.20
    Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

 games-engines/devilutionx/devilutionx-1.0.0-r1.ebuild | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
Comment 4 MT 2021-01-17 11:48:17 UTC
During the bump of v1.1.0, the patch from commit 0a1e8a4363f135e88b95d2f0d080e85fe878b76d was missing and the new ebuild installs its copy of Charis fontset into /usr/share/fonts/truetype/CharisSILB.ttf instead of pulling in media-fonts/sil-charis.

Mind you, the game works fine and all, but the bundled Charis fontset triggers all sort of funny sandbox violations for any Portage ebuilds that invoke fontconfig utils. Example:

>>> Source compiled.
 * --------------------------- ACCESS VIOLATION SUMMARY ---------------------------
 * LOG FILE: "/var/tmp/portage/media-gfx/gimp-2.10.20-r3/temp/sandbox.log"
 * 
VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-error.png -o 64/gimp-error.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-info.png -o 64/gimp-info.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-question.png -o 64/gimp-question.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-warning.png -o 64/gimp-warning.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-frame.png -o 64/gimp-frame.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-texture.png -o 64/gimp-texture.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-error.png -o 64/gimp-error.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-info.png -o 64/gimp-info.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-question.png -o 64/gimp-question.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-warning.png -o 64/gimp-warning.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-frame.png -o 64/gimp-frame.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-texture.png -o 64/gimp-texture.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-error.png -o 64/gimp-error.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-info.png -o 64/gimp-info.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-warning.png -o 64/gimp-warning.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-question.png -o 64/gimp-question.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-frame.png -o 64/gimp-frame.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 

F: mkostemp
S: deny
P: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
A: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
R: /usr/share/fonts/truetype/.uuid.TMP-XXXXXX
C: /usr/bin/gegl-0.4 ../../icons/Symbolic/64/gimp-texture.png -o 64/gimp-texture.png -- cast-format input-format=R'G'B'A float output-format=RGBA float brightness-contrast contrast=-1.5 cast-format input-format=RGBA float output-format=R'G'B'A float 
 * --------------------------------------------------------------------------------

Unmerging games-engines/devilutionx avoided the sandbox violations.
Comment 5 Larry the Git Cow gentoo-dev 2021-01-17 23:20:18 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c10ee37782c5045e949a2758cdb5fd0e6dbe8aa2

commit c10ee37782c5045e949a2758cdb5fd0e6dbe8aa2
Author:     Lars Wendler <polynomial-c@gentoo.org>
AuthorDate: 2021-01-17 23:18:08 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2021-01-17 23:20:15 +0000

    games-engines/devilutionx: Avoid bundled font again
    
    Bug: https://bugs.gentoo.org/704508
    Package-Manager: Portage-3.0.13, Repoman-3.0.2
    Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

 .../devilutionx/devilutionx-1.1.0-r1.ebuild        | 65 ++++++++++++++++++++++
 .../files/devilutionx-1.1.0-no_bundled_font.patch  | 51 +++++++++++++++++
 2 files changed, 116 insertions(+)