added a bunch of packages and added submodule

This commit is contained in:
karenyyng 2015-10-03 18:47:36 -07:00
parent 1501786fd9
commit 79808da760
278 changed files with 491 additions and 688 deletions

1
.gitignore vendored
View file

@ -8,3 +8,4 @@
/etc/spackconfig /etc/spackconfig
/share/spack/dotkit /share/spack/dotkit
/share/spack/modules /share/spack/modules
*.ropeproject

4
.gitmodules vendored
View file

@ -1,3 +1,3 @@
[submodule "utils/python_recipe_parser"] [submodule "/lib/spack/spack/util/python_recipe_parser"]
path = utils/python_recipe_parser path = /lib/spack/spack/util/python_recipe_parser
url = https://github.com/karenyyng/spack_python_package_parser url = https://github.com/karenyyng/spack_python_package_parser

@ -1 +0,0 @@
Subproject commit 3158074a2d74f99aa72289dfcf093b1b0ba4474e

0
var/spack/packages/ImageMagick/package.py Normal file → Executable file
View file

0
var/spack/packages/Mitos/package.py Normal file → Executable file
View file

0
var/spack/packages/R/package.py Normal file → Executable file
View file

0
var/spack/packages/SAMRAI/no-tool-build.patch Normal file → Executable file
View file

0
var/spack/packages/SAMRAI/package.py Normal file → Executable file
View file

0
var/spack/packages/adept-utils/package.py Normal file → Executable file
View file

0
var/spack/packages/arpack/package.py Normal file → Executable file
View file

View file

@ -1,18 +0,0 @@
from spack import *
class Asciidoc(Package):
""" A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents."""
homepage = "http://asciidoc.org"
url = "http://downloads.sourceforge.net/project/asciidoc/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz"
version('8.6.9', 'c59018f105be8d022714b826b0be130a')
depends_on('libxml2')
depends_on('libxslt')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

0
var/spack/packages/atk/package.py Normal file → Executable file
View file

0
var/spack/packages/atlas/package.py Normal file → Executable file
View file

0
var/spack/packages/autoconf/package.py Normal file → Executable file
View file

0
var/spack/packages/automaded/package.py Normal file → Executable file
View file

0
var/spack/packages/automake/package.py Normal file → Executable file
View file

0
var/spack/packages/bear/package.py Normal file → Executable file
View file

0
var/spack/packages/bib2xhtml/package.py Normal file → Executable file
View file

0
var/spack/packages/binutils/package.py Normal file → Executable file
View file

0
var/spack/packages/bison/package.py Normal file → Executable file
View file

4
var/spack/packages/boost/package.py Normal file → Executable file
View file

@ -14,10 +14,6 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/" list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2 list_depth = 2
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
version('1.57.0', '1be49befbdd9a5ce9def2983ba3e7b76')
version('1.56.0', 'a744cf167b05d72335f27c88115f211d')
version('1.55.0', 'd6eef4b4cacb2183f2bf265a5a03a354') version('1.55.0', 'd6eef4b4cacb2183f2bf265a5a03a354')
version('1.54.0', '15cb8c0803064faef0c4ddf5bc5ca279') version('1.54.0', '15cb8c0803064faef0c4ddf5bc5ca279')
version('1.53.0', 'a00d22605d5dbcfb4c9936a9b35bc4c2') version('1.53.0', 'a00d22605d5dbcfb4c9936a9b35bc4c2')

View file

@ -1,16 +0,0 @@
--- Makefile 2015-02-26 10:50:00.000000000 -0800
+++ Makefile.new 2015-07-29 18:03:59.891357399 -0700
@@ -22,10 +22,10 @@
#
INC =
-GCC_PREFIX = $(shell dirname `which gcc`)
+GCC_PREFIX =
GCC_SUFFIX =
-CC = $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
-CPP = $(GCC_PREFIX)/g++$(GCC_SUFFIX)
+CC = cc
+CPP = c++
CXX = $(CPP)
HEADERS = $(wildcard *.h)
BOWTIE_MM = 1

View file

@ -1,24 +0,0 @@
from spack import *
from glob import glob
class Bowtie2(Package):
"""Description"""
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
version('2.2.5','51fa97a862d248d7ee660efc1147c75f', url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
patch('bowtie2-2.5.patch',when='@2.2.5', level=0)
def install(self, spec, prefix):
make()
mkdirp(prefix.bin)
for bow in glob("bowtie2*"):
install(bow, prefix.bin)
# install('bowtie2',prefix.bin)
# install('bowtie2-align-l',prefix.bin)
# install('bowtie2-align-s',prefix.bin)
# install('bowtie2-build',prefix.bin)
# install('bowtie2-build-l',prefix.bin)
# install('bowtie2-build-s',prefix.bin)
# install('bowtie2-inspect',prefix.bin)
# install('bowtie2-inspect-l',prefix.bin)
# install('bowtie2-inspect-s',prefix.bin)

0
var/spack/packages/boxlib/package.py Normal file → Executable file
View file

0
var/spack/packages/bzip2/package.py Normal file → Executable file
View file

0
var/spack/packages/cairo/package.py Normal file → Executable file
View file

0
var/spack/packages/callpath/package.py Normal file → Executable file
View file

0
var/spack/packages/cblas/package.py Normal file → Executable file
View file

0
var/spack/packages/cgm/package.py Normal file → Executable file
View file

0
var/spack/packages/clang/package.py Normal file → Executable file
View file

0
var/spack/packages/cloog/package.py Normal file → Executable file
View file

0
var/spack/packages/cmake/package.py Normal file → Executable file
View file

0
var/spack/packages/coreutils/package.py Normal file → Executable file
View file

0
var/spack/packages/cppcheck/package.py Normal file → Executable file
View file

0
var/spack/packages/cram/package.py Normal file → Executable file
View file

View file

@ -1,17 +0,0 @@
from spack import *
class Cscope(Package):
"""Cscope is a developer's tool for browsing source code."""
homepage = "http://http://cscope.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/cscope/cscope/15.8b/cscope-15.8b.tar.gz"
version('15.8b', '8f9409a238ee313a96f9f87fe0f3b176')
# Can be configured to use flex (not necessary)
# ./configure --with-flex
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

0
var/spack/packages/cube/package.py Normal file → Executable file
View file

View file

@ -1,19 +0,0 @@
from spack import *
class Czmq(Package):
""" A C interface to the ZMQ library """
homepage = "http://czmq.zeromq.org"
url = "https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz"
version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1', url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
depends_on('zeromq')
def install(self, spec, prefix):
bash = which("bash")
bash("./autogen.sh")
configure("--prefix=%s" % prefix)
make()
make("install")

0
var/spack/packages/dbus/package.py Normal file → Executable file
View file

View file

@ -1,19 +0,0 @@
import os
import glob
from spack import *
class DocbookXml(Package):
"""Docbook DTD XML files."""
homepage = "http://www.oasis-open.org/docbook"
url = "http://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip"
version('4.5', '03083e288e87a7e829e437358da7ef9e')
def install(self, spec, prefix):
cp = which('cp')
install_args = ['-a', '-t', prefix]
install_args.extend(glob.glob('*'))
cp(*install_args)

View file

@ -1,25 +0,0 @@
#------------------------------------------------------------------------------
# Author: Justin Too <justin@doubleotoo.com>
# Date: September 11, 2015
#------------------------------------------------------------------------------
from spack import *
class Doxygen(Package):
"""Doxygen is the de facto standard tool for generating documentation
from annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba,
Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D..
"""
homepage = "http://www.stack.nl/~dimitri/doxygen/"
url = "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.10.src.tar.gz"
version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
depends_on("cmake@2.8.12:")
def install(self, spec, prefix):
cmake('.', *std_cmake_args)
make()
make("install")

0
var/spack/packages/dri2proto/package.py Normal file → Executable file
View file

0
var/spack/packages/dtcmp/package.py Normal file → Executable file
View file

0
var/spack/packages/dyninst/package.py Normal file → Executable file
View file

View file

@ -0,0 +1,17 @@
from spack import *
class Eigen(Package):
"""Eigen is a C++ template library for linear algebra: matrices, vectors,
numerical solvers, and related algorithms.."""
homepage = "http://eigen.tuxfamily.org/"
url = "http://bitbucket.org/eigen/eigen/get/3.2.5.tar.gz"
version('3.2.5', '8cc513ac6ec687117acadddfcacf551b')
def install(self, spec, prefix):
import os
os.system("mkdir ./build_dir && cd ./build_dir")
cmake('../', *std_cmake_args)
make()
make("install")

View file

@ -1,26 +0,0 @@
from spack import *
class Elfutils(Package):
"""elfutils is a collection of various binary tools such as
eu-objdump, eu-readelf, and other utilities that allow you to
inspect and manipulate ELF files. Refer to Table 5.Tools Included
in elfutils for Red Hat Developer for a complete list of binary
tools that are distributed with the Red Hat Developer Toolset
version of elfutils."""
homepage = "https://fedorahosted.org/elfutils/"
version('0.163',
git='git://git.fedorahosted.org/git/elfutils.git',
tag='elfutils-0.163')
provides('elf')
def install(self, spec, prefix):
autoreconf = which('autoreconf')
autoreconf('-if')
configure('--prefix=%s' % prefix, '--enable-maintainer-mode')
make()
make("install")

0
var/spack/packages/extrae/package.py Normal file → Executable file
View file

0
var/spack/packages/exuberant-ctags/package.py Normal file → Executable file
View file

View file

@ -1,18 +0,0 @@
from spack import *
class Fish(Package):
"""fish is a smart and user-friendly command line shell for OS X, Linux, and
the rest of the family.
"""
homepage = "http://fishshell.com/"
url = "http://fishshell.com/files/2.2.0/fish-2.2.0.tar.gz"
list_url = homepage
version('2.2.0', 'a76339fd14ce2ec229283c53e805faac48c3e99d9e3ede9d82c0554acfc7b77a')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

0
var/spack/packages/flex/package.py Normal file → Executable file
View file

View file

@ -1,36 +0,0 @@
from spack import *
import os
class Flux(Package):
""" A next-generation resource manager (pre-alpha) """
homepage = "https://github.com/flux-framework/flux-core"
url = "https://github.com/flux-framework/flux-core"
version('master', branch='master', git='https://github.com/flux-framework/flux-core')
# Also needs autotools, but should use the system version if available
depends_on("zeromq@4.0.4:")
depends_on("czmq@2.2:")
depends_on("lua@5.1:5.1.99")
depends_on("munge")
depends_on("libjson-c")
depends_on("libxslt")
# TODO: This provides a catalog, hacked with environment below for now
depends_on("docbook-xml")
depends_on("asciidoc")
depends_on("python")
depends_on("py-cffi")
def install(self, spec, prefix):
# Bootstrap with autotools
bash = which('bash')
bash('./autogen.sh')
# Fix asciidoc dependency on xml style sheets and whatnot
os.environ['XML_CATALOG_FILES'] = os.path.join(spec['docbook-xml'].prefix,
'catalog.xml')
# Configure, compile & install
configure("--prefix=" + prefix)
make("install", "V=1")

0
var/spack/packages/fontconfig/package.py Normal file → Executable file
View file

0
var/spack/packages/freetype/package.py Normal file → Executable file
View file

0
var/spack/packages/gasnet/package.py Normal file → Executable file
View file

0
var/spack/packages/gcc/package.py Normal file → Executable file
View file

0
var/spack/packages/gdk-pixbuf/package.py Normal file → Executable file
View file

0
var/spack/packages/geos/package.py Normal file → Executable file
View file

View file

@ -1,21 +0,0 @@
import os
from spack import *
class Gflags(Package):
"""The gflags package contains a C++ library that implements
commandline flags processing. It includes built-in support for
standard types such as string and the ability to define flags
in the source file in which they are used. Online documentation
available at: https://gflags.github.io/gflags/"""
homepage = "https://gflags.github.io/gflags"
url = "https://github.com/gflags/gflags/archive/v2.1.2.tar.gz"
version('2.1.2', 'ac432de923f9de1e9780b5254884599f')
def install(self, spec, prefix):
cmake("-DCMAKE_INSTALL_PREFIX=" + prefix,
"-DBUILD_SHARED_LIBS=ON")
make()
make("test")
make("install")

View file

@ -1,17 +0,0 @@
from spack import *
class Ghostscript(Package):
"""an interpreter for the PostScript language and for PDF. """
homepage = "http://ghostscript.com/"
url = "http://downloads.ghostscript.com/public/ghostscript-9.16.tar.gz"
version('9.16', '829319325bbdb83f5c81379a8f86f38f')
parallel = False
def install(self, spec, prefix):
configure("--prefix=%s" %prefix, "--enable-shared")
make()
make("install")

0
var/spack/packages/git/package.py Normal file → Executable file
View file

0
var/spack/packages/glib/package.py Normal file → Executable file
View file

0
var/spack/packages/global/package.py Normal file → Executable file
View file

View file

@ -1,15 +0,0 @@
import os
from spack import *
class Glog(Package):
"""C++ implementation of the Google logging module."""
homepage = "https://github.com/google/glog"
url = "https://github.com/google/glog/archive/v0.3.3.tar.gz"
version('0.3.3', 'c1f86af27bd9c73186730aa957607ed0')
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
make("install")

0
var/spack/packages/gmp/package.py Normal file → Executable file
View file

0
var/spack/packages/gnutls/package.py Normal file → Executable file
View file

0
var/spack/packages/gperf/package.py Normal file → Executable file
View file

0
var/spack/packages/gperftools/package.py Normal file → Executable file
View file

0
var/spack/packages/graphlib/package.py Normal file → Executable file
View file

View file

@ -1,21 +1,24 @@
from spack import * from spack import *
class Graphviz(Package): class Graphviz(Package):
"""Graph Visualization Software""" """graph visualization software."""
homepage = "http://www.graphviz.org" homepage = "http://www.graphviz.org"
url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz" url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz"
version('2.38.0', '5b6a829b2ac94efcd5fa3c223ed6d3ae') version('2.38.0', '5b6a829b2ac94efcd5fa3c223ed6d3ae')
version('2.36.0', '1f41664dba0c93109ac8b71216bf2b57')
parallel = False depends_on("cairo@1.1.10")
depends_on("freetype@2.1.10")
depends_on("swig") depends_on("fontconfig")
depends_on("python") depends_on("zlib@1.2.3")
depends_on("ghostscript") # depends_on("libpng@1.2.10")
# depends_on("expat@2.0.0")
# depends_on("gd@2.0.34")
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=%s" %prefix) configure('--prefix=%s' % prefix)
# FIXME: Add logic to build and install here
make() make()
make("install") make("install")

0
var/spack/packages/gtkplus/package.py Normal file → Executable file
View file

0
var/spack/packages/harfbuzz/package.py Normal file → Executable file
View file

0
var/spack/packages/hdf5/package.py Normal file → Executable file
View file

0
var/spack/packages/hwloc/package.py Normal file → Executable file
View file

0
var/spack/packages/hypre/package.py Normal file → Executable file
View file

0
var/spack/packages/icu/package.py Normal file → Executable file
View file

0
var/spack/packages/icu4c/package.py Normal file → Executable file
View file

0
var/spack/packages/isl/package.py Normal file → Executable file
View file

0
var/spack/packages/jdk/package.py Normal file → Executable file
View file

0
var/spack/packages/jpeg/package.py Normal file → Executable file
View file

View file

@ -1,6 +1,6 @@
from spack import * from spack import *
class NetlibLapack(Package): class Lapack(Package):
""" """
LAPACK version 3.X is a comprehensive FORTRAN library that does LAPACK version 3.X is a comprehensive FORTRAN library that does
linear algebra operations including matrix inversions, least linear algebra operations including matrix inversions, least
@ -18,16 +18,9 @@ class NetlibLapack(Package):
version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70') version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70')
version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4') version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4')
variant('shared', default=False, description="Build shared library version")
# virtual dependency
provides('lapack')
# blas is a virtual dependency. # blas is a virtual dependency.
depends_on('blas') depends_on('blas')
depends_on('cmake')
# Doesn't always build correctly in parallel # Doesn't always build correctly in parallel
parallel = False parallel = False
@ -46,14 +39,7 @@ def get_blas_libs(self):
def install(self, spec, prefix): def install(self, spec, prefix):
blas_libs = ";".join(self.get_blas_libs()) blas_libs = ";".join(self.get_blas_libs())
cmake_args = [".", '-DBLAS_LIBRARIES=' + blas_libs] cmake(".", '-DBLAS_LIBRARIES=' + blas_libs, *std_cmake_args)
if '+shared' in spec:
cmake_args.append('-DBUILD_SHARED_LIBS=ON')
cmake_args += std_cmake_args
cmake(*cmake_args)
make() make()
make("install") make("install")

0
var/spack/packages/launchmon/package.py Normal file → Executable file
View file

0
var/spack/packages/launchmon/patch.lmon_install_dir Normal file → Executable file
View file

0
var/spack/packages/lcms/package.py Normal file → Executable file
View file

View file

@ -1,29 +0,0 @@
import os
import glob
from spack import *
class Leveldb(Package):
"""LevelDB is a fast key-value storage library written at Google
that provides an ordered mapping from string keys to string values."""
homepage = "https://github.com/google/leveldb"
url = "https://github.com/google/leveldb/archive/v1.18.tar.gz"
version('1.18', '73770de34a2a5ab34498d2e05b2b7fa0')
depends_on("snappy")
def install(self, spec, prefix):
make()
mkdirp(prefix.include)
mkdirp(prefix.lib)
cp = which('cp')
# cp --preserve=links libleveldb.* prefix/lib
args = glob.glob('libleveldb.*')
args.append(prefix + '/lib')
cp('--preserve=links', *args)
cp('-r', 'include/leveldb', prefix + '/include')

0
var/spack/packages/libNBC/package.py Normal file → Executable file
View file

0
var/spack/packages/libarchive/package.py Normal file → Executable file
View file

0
var/spack/packages/libcircle/package.py Normal file → Executable file
View file

3
var/spack/packages/libdrm/package.py Normal file → Executable file
View file

@ -11,8 +11,11 @@ class Libdrm(Package):
version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6') version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6')
version('2.4.33', '86e4e3debe7087d5404461e0032231c8') version('2.4.33', '86e4e3debe7087d5404461e0032231c8')
depends_on("libpciaccess")
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)
make("clean")
make() make()
make("install") make("install")

0
var/spack/packages/libdwarf/package.py Normal file → Executable file
View file

2
var/spack/packages/libelf/package.py Normal file → Executable file
View file

@ -36,8 +36,6 @@ class Libelf(Package):
version('0.8.13', '4136d7b4c04df68b686570afa26988ac') version('0.8.13', '4136d7b4c04df68b686570afa26988ac')
version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7') version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7')
provides('elf')
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=" + prefix, configure("--prefix=" + prefix,
"--enable-shared", "--enable-shared",

0
var/spack/packages/libevent/package.py Normal file → Executable file
View file

4
var/spack/packages/libffi/package.py Normal file → Executable file
View file

@ -6,9 +6,9 @@ class Libffi(Package):
to call any function specified by a call interface description at to call any function specified by a call interface description at
run time.""" run time."""
homepage = "https://sourceware.org/libffi/" homepage = "https://sourceware.org/libffi/"
url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz"
version('3.2.1','83b89587607e3eb65c70d361f13bab43',url = "ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") version('3.1', 'f5898b29bbfd70502831a212d9249d10')
#version('3.1', 'f5898b29bbfd70502831a212d9249d10',url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz") # Has a bug $(lib64) instead of ${lib64} in libffi.pc
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)

0
var/spack/packages/libgcrypt/package.py Normal file → Executable file
View file

0
var/spack/packages/libgpg-error/package.py Normal file → Executable file
View file

0
var/spack/packages/libjpeg-turbo/package.py Normal file → Executable file
View file

View file

@ -1,14 +0,0 @@
from spack import *
class LibjsonC(Package):
""" A JSON implementation in C """
homepage = "https://github.com/json-c/json-c/wiki"
url = "https://s3.amazonaws.com/json-c_releases/releases/json-c-0.11.tar.gz"
version('0.11', 'aa02367d2f7a830bf1e3376f77881e98')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

0
var/spack/packages/libmng/package.py Normal file → Executable file
View file

0
var/spack/packages/libmonitor/package.py Normal file → Executable file
View file

17
var/spack/packages/libpciaccess/package.py Normal file → Executable file
View file

@ -1,21 +1,16 @@
from spack import * from spack import *
class Libpciaccess(Package): class Libpciaccess(Package):
"""Generic PCI access library.""" """Generic PCI access library"""
homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/" homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
url = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/" url = "http://pkgs.fedoraproject.org/repo/pkgs/libpciaccess/libpciaccess-0.13.2.tar.bz2/b7c0d3afce14eedca57312a3141ec13a/libpciaccess-0.13.2.tar.bz2"
version('0.13.4', git='http://anongit.freedesktop.org/git/xorg/lib/libpciaccess.git', version('0.13.2', 'b7c0d3afce14eedca57312a3141ec13a')
tag='libpciaccess-0.13.4')
depends_on('autoconf')
depends_on('libtool')
def install(self, spec, prefix): def install(self, spec, prefix):
from subprocess import call import os
call(["./autogen.sh"]) os.system("autoconf")
configure("--prefix=%s" % prefix) configure('--prefix=%s' % prefix)
make() make()
make("install") make("install")

0
var/spack/packages/libpng/package.py Normal file → Executable file
View file

Some files were not shown because too many files have changed in this diff Show more