Add New package feh and supporting packages (#14013)
* Adding libid3tag package for supporting feh * Adding libexif package for supporting feh * Adding imlib2 package for supporting feh * Adding the feh package * Rewording the cleanup function for libid3tag * Fixing some flake8 issues for imlib2 and libid3tag * Adding sources for the patches and swapping rm for os.remove * Flake8 fixes * swapping md5sums for sha256sums
This commit is contained in:
parent
a9f6caf863
commit
1a662f428e
34
var/spack/repos/builtin/packages/feh/package.py
Normal file
34
var/spack/repos/builtin/packages/feh/package.py
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
from spack import *
|
||||
|
||||
|
||||
class Feh(MakefilePackage):
|
||||
"""
|
||||
feh is an X11 image viewer aimed mostly at console users. Unlike most
|
||||
other viewers, it does not have a fancy GUI, but simply displays images. It
|
||||
is controlled via commandline arguments and configurable key/mouse
|
||||
actions.
|
||||
"""
|
||||
|
||||
homepage = "https://feh.finalrewind.org/"
|
||||
url = "https://feh.finalrewind.org/feh-3.3.tar.bz2"
|
||||
|
||||
maintainers = ['TheQueasle']
|
||||
|
||||
version('3.3', sha256='f3959958258111d5f7c9fbe2e165c52b9d5987f07fd1f37540a4abf9f9638811')
|
||||
version('3.1.1', sha256='61d0242e3644cf7c5db74e644f0e8a8d9be49b7bd01034265cc1ebb2b3f9c8eb')
|
||||
|
||||
depends_on('imlib2')
|
||||
depends_on('curl')
|
||||
depends_on('libxinerama')
|
||||
depends_on('libexif')
|
||||
depends_on('libxt')
|
||||
|
||||
def build(self, spec, prefix):
|
||||
make('PREFIX={0}'.format(prefix), 'exif=1', 'help=1')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('install', 'PREFIX={0}'.format(prefix))
|
28
var/spack/repos/builtin/packages/imlib2/package.py
Normal file
28
var/spack/repos/builtin/packages/imlib2/package.py
Normal file
@ -0,0 +1,28 @@
|
||||
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
from spack import *
|
||||
|
||||
|
||||
class Imlib2(AutotoolsPackage):
|
||||
"""
|
||||
Library that does image file loading and saving as well as rendering,
|
||||
manipulation, arbitrary polygon support
|
||||
"""
|
||||
|
||||
homepage = "http://sourceforge.net/projects/enlightenment/"
|
||||
url = "http://downloads.sourceforge.net/enlightenment/imlib2-1.5.1.tar.bz2"
|
||||
|
||||
maintainers = ['TheQueasle']
|
||||
|
||||
version('1.5.1', 'fa4e57452b8843f4a70f70fd435c746ae2ace813250f8c65f977db5d7914baae')
|
||||
|
||||
depends_on('libtiff')
|
||||
depends_on('giflib')
|
||||
depends_on('bzip2')
|
||||
depends_on('freetype')
|
||||
depends_on('libxext')
|
||||
depends_on('libpng')
|
||||
depends_on('libid3tag')
|
||||
depends_on('libjpeg-turbo')
|
17
var/spack/repos/builtin/packages/libexif/package.py
Normal file
17
var/spack/repos/builtin/packages/libexif/package.py
Normal file
@ -0,0 +1,17 @@
|
||||
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
from spack import *
|
||||
|
||||
|
||||
class Libexif(AutotoolsPackage):
|
||||
"""A library to parse an EXIF file and read the data from those tags"""
|
||||
|
||||
homepage = "https://sourceforge.net/projects/libexif"
|
||||
url = "https://downloads.sourceforge.net/sourceforge/libexif/libexif-0.6.21.tar.bz2"
|
||||
|
||||
maintainers = ['TheQueasle']
|
||||
|
||||
version('0.6.21', sha256='16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a')
|
||||
depends_on('glib')
|
48
var/spack/repos/builtin/packages/libid3tag/10_utf16.diff
Normal file
48
var/spack/repos/builtin/packages/libid3tag/10_utf16.diff
Normal file
@ -0,0 +1,48 @@
|
||||
#! /bin/sh -e
|
||||
## 10_utf16.dpatch by <kurt@roeckx.be>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Handle bogus UTF16 sequences that have a length that is not
|
||||
## DP: an even number of 8 bit characters.
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch -p1 ${patch_opts} < $0;;
|
||||
-unpatch) patch -R -p1 ${patch_opts} < $0;;
|
||||
*)
|
||||
echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c
|
||||
--- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100
|
||||
+++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100
|
||||
@@ -282,5 +282,18 @@
|
||||
|
||||
free(utf16);
|
||||
|
||||
+ if (end == *ptr && length % 2 != 0)
|
||||
+ {
|
||||
+ /* We were called with a bogus length. It should always
|
||||
+ * be an even number. We can deal with this in a few ways:
|
||||
+ * - Always give an error.
|
||||
+ * - Try and parse as much as we can and
|
||||
+ * - return an error if we're called again when we
|
||||
+ * already tried to parse everything we can.
|
||||
+ * - tell that we parsed it, which is what we do here.
|
||||
+ */
|
||||
+ (*ptr)++;
|
||||
+ }
|
||||
+
|
||||
return ucs4;
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 11_unknown_encoding.dpatch by Andreas Henriksson <andreas@fatal.se>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: In case of an unknown/invalid encoding, id3_parse_string() will
|
||||
## DP: return NULL, but the return value wasn't checked resulting
|
||||
## DP: in segfault in id3_ucs4_length(). This is the only place
|
||||
## DP: the return value wasn't checked.
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf
|
||||
--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000
|
||||
+++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000
|
||||
@@ -236,6 +236,10 @@
|
||||
|
||||
encoding = id3_parse_uint(&data, 1);
|
||||
string = id3_parse_string(&data, end - data, encoding, 0);
|
||||
+ if (!string)
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
if (id3_ucs4_length(string) < 4) {
|
||||
free(string);
|
||||
diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c
|
||||
--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000
|
||||
+++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000
|
||||
@@ -165,6 +165,9 @@
|
||||
case ID3_FIELD_TEXTENCODING_UTF_8:
|
||||
ucs4 = id3_utf8_deserialize(ptr, length);
|
||||
break;
|
||||
+ default:
|
||||
+ /* FIXME: Unknown encoding! Print warning? */
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
if (ucs4 && !full) {
|
@ -0,0 +1,11 @@
|
||||
--- field.c.orig 2008-05-05 09:49:15.000000000 -0400
|
||||
+++ field.c 2008-05-05 09:49:25.000000000 -0400
|
||||
@@ -291,7 +291,7 @@
|
||||
|
||||
end = *ptr + length;
|
||||
|
||||
- while (end - *ptr > 0) {
|
||||
+ while (end - *ptr > 0 && **ptr != '\0') {
|
||||
ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0);
|
||||
if (ucs4 == 0)
|
||||
goto fail;
|
@ -0,0 +1,26 @@
|
||||
Index: libid3tag-0.15.1b/frametype.h
|
||||
===================================================================
|
||||
--- libid3tag-0.15.1b.orig/frametype.h
|
||||
+++ libid3tag-0.15.1b/frametype.h
|
||||
@@ -37,6 +37,6 @@ extern struct id3_frametype const id3_fr
|
||||
extern struct id3_frametype const id3_frametype_obsolete;
|
||||
|
||||
struct id3_frametype const *id3_frametype_lookup(register char const *,
|
||||
- register unsigned int);
|
||||
+ register size_t);
|
||||
|
||||
# endif
|
||||
Index: libid3tag-0.15.1b/compat.h
|
||||
===================================================================
|
||||
--- libid3tag-0.15.1b.orig/compat.h
|
||||
+++ libid3tag-0.15.1b/compat.h
|
||||
@@ -34,7 +34,7 @@ struct id3_compat {
|
||||
};
|
||||
|
||||
struct id3_compat const *id3_compat_lookup(register char const *,
|
||||
- register unsigned int);
|
||||
+ register size_t);
|
||||
|
||||
int id3_compat_fixup(struct id3_tag *);
|
||||
|
||||
|
39
var/spack/repos/builtin/packages/libid3tag/package.py
Normal file
39
var/spack/repos/builtin/packages/libid3tag/package.py
Normal file
@ -0,0 +1,39 @@
|
||||
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
from spack import *
|
||||
|
||||
import os
|
||||
|
||||
|
||||
class Libid3tag(AutotoolsPackage):
|
||||
"""library for id3 tagging"""
|
||||
|
||||
homepage = "https://www.underbit.com/products/mad/"
|
||||
url = "ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz"
|
||||
|
||||
maintainers = ['TheQueasle']
|
||||
|
||||
version('0.15.1b', '63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151')
|
||||
|
||||
depends_on('zlib')
|
||||
depends_on('gperf')
|
||||
|
||||
# source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/10_utf16.diff?h=packages/libid3tag
|
||||
patch('10_utf16.diff')
|
||||
# source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/11_unknown_encoding.diff?h=packages/libid3tag
|
||||
patch('11_unknown_encoding.dif')
|
||||
# source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/CVE-2008-2109.patch?h=packages/libid3tag
|
||||
patch('CVE-2008-2109.patch', level=0)
|
||||
# source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/libid3tag-gperf.patch?h=packages/libid3tag
|
||||
patch('libid3tag-gperf.patch', when="^gperf@3.1:")
|
||||
|
||||
@run_before('configure')
|
||||
def preclean(self):
|
||||
"""
|
||||
Remove compat.c and frametype.c in order to regenerate from gperf
|
||||
sources
|
||||
"""
|
||||
os.remove('compat.c')
|
||||
os.remove('frametype.c')
|
Loading…
Reference in New Issue
Block a user