Compare commits

..

17 Commits

Author SHA1 Message Date
David Abdurachmanov 0b5bca5ec4
Add changelog entry
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-06-08 21:27:59 +03:00
David Abdurachmanov 157cb77c6b
Disable bootstrap
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-06-08 21:27:10 +03:00
David Abdurachmanov 83f952c1e7
Enable bootstrap
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-06-08 17:01:55 +03:00
David Abdurachmanov a2a8c4ca47
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-06-08 15:57:59 +03:00
David Abdurachmanov 9e6e16fc15
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-03-27 09:26:51 +02:00
David Abdurachmanov 6b7830c4b7
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-01-18 16:39:30 +02:00
David Abdurachmanov 761e4761af
Merge commit 'b9d1edaff6e923ba21662a9c09f1ca0eb3993673' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-01-18 10:06:30 +02:00
David Abdurachmanov e8337857b3
Rebuild for new poppler (SOVERSION bump)
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-01-18 09:01:25 +02:00
David Abdurachmanov df34c67be2
Re-enable xindy
xindy depends on clisp which we finally have available.

Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-01-17 18:53:29 +02:00
David Abdurachmanov d2931c6ebd
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2020-01-17 18:49:21 +02:00
David Abdurachmanov cb6d2ccee2
Bring back xindex package
Removed by accident while reverting xindy_arches changes.

Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2019-08-19 07:01:28 -07:00
David Abdurachmanov 6c8fd2e1d0 Revert "add explicit Requires: clisp for texlive-xindy"
This reverts commit c067edef7a.
2019-08-18 20:36:53 -07:00
David Abdurachmanov ec1c7576b8
Revert "Fix xindy build by eliminating race to create latex.fmt."
This reverts commit b6f7cc9173.

Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2019-08-18 20:34:58 -07:00
David Abdurachmanov a8cd0656e7
Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2019-08-18 16:18:13 -07:00
David Abdurachmanov 2e0a15b64f
Merge remote-tracking branch 'up/f29' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2018-08-24 12:59:16 +03:00
David Abdurachmanov d6801eb745
Rebuild for poppler (SOVERSION bump)
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2018-06-26 13:14:31 +02:00
David Abdurachmanov 7ecef6ff58
Add support for RISC-V (riscv64)
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2018-06-23 07:51:18 +02:00
6 changed files with 330268 additions and 167 deletions

3
.gitignore vendored
View File

@ -395,6 +395,3 @@
/psutils.doc.tar.xz
/psutils.tar.xz
/xpdfopen.doc.tar.xz
/texlive.tlpdb
/optex.tar.xz
/optex.doc.tar.xz

View File

@ -383,6 +383,3 @@ SHA512 (texlive-scripts.doc.tar.xz) = 839e621da34395756da2b87c32146bfbd87790ad76
SHA512 (texlive-scripts.tar.xz) = 824dcfa175efa8d1d0d2196cac51afeed0ef81e5497c144d6101a3edb234261c118aeaef0716def828c7d576f36497e7faac0afa2646020a398aa78c99dcbbe2
SHA512 (texware.doc.tar.xz) = 21e62dfb6fff0924568c4942c0f442fb63c68e79e607a8cae34da917e2bc0192e3352c8a03c5dd5bb9338699e53a97c71878304a860b383e4d81f14dd80335e3
SHA512 (texware.tar.xz) = b464059887713458ff20b9d002b567eba21863501470b654f02e518f9a6f3e7ea1d40ecc321e9b6d7cc7687add76923e96411fd20426eaadfec6cf8a395336ec
SHA512 (texlive.tlpdb) = 9405238da7ef41b22a9d1b4f32305856b1fc6efcebdb0dc5a9fceca9017e0a4fdbda3df58a37d64a753c003682965c8f6ffe388627d8a663578ee2b2e52ee1a6
SHA512 (optex.tar.xz) = a418ee16b04ca307c623c5137c125a92dc098b0b3306e823e8e9e3e09db67b87d19b9afe18a213a36e80e3d94b1bf25b2926f715bfde962e9153e0ed8e0b84e1
SHA512 (optex.doc.tar.xz) = 906021f9a639e222912d989d8f062568918029b896bbf9611bf58d4223635441f2179f121785385ec5147f132d01bc01f980f724434e7020c0675399e09797e0

View File

@ -1,20 +0,0 @@
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler090 texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler090 2020-07-14 13:13:31.620607263 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc 2020-07-14 13:16:01.530248309 -0400
@@ -766,7 +766,7 @@ read_pdf_info(char *image_name, char *pa
if (page_name) {
// get page by name
GString name(page_name);
- LinkDest *link = pdf_doc->doc->findDest(&name);
+ std::unique_ptr<LinkDest> link = pdf_doc->doc->findDest(&name);
if (link == 0 || !link->isOk())
pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
Ref ref = link->getPageRef();
@@ -774,7 +774,6 @@ read_pdf_info(char *image_name, char *pa
if (page_num == 0)
pdftex_fail("PDF inclusion: destination is not a page <%s>",
page_name);
- delete link;
} else {
// get page by number
if (page_num <= 0 || page_num > epdf_num_pages)

View File

@ -1,12 +0,0 @@
diff -up texlive-base-20200327/source/texk/kpathsea/texmf.cnf.me texlive-base-20200327/source/texk/kpathsea/texmf.cnf
--- texlive-base-20200327/source/texk/kpathsea/texmf.cnf.me 2020-09-23 09:35:26.729192291 +0200
+++ texlive-base-20200327/source/texk/kpathsea/texmf.cnf 2020-09-23 09:36:01.849651692 +0200
@@ -786,7 +786,7 @@ texmf_casefold_search = 1
% For some xy-pic samples, you may need as much as 700000 words of memory.
% For the vast majority of documents, 60000 or less will do.
%
-main_memory = 5000000 % words of inimemory available; also applies to inimf&mp
+main_memory = 6000000 % words of inimemory available; also applies to inimf&mp
extra_mem_top = 0 % extra high memory for chars, tokens, etc.
extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.

View File

@ -20,8 +20,8 @@
Name: %{shortname}-base
Version: %{source_date}
Release: 22%{?dist}
Epoch: 9
Release: 6.1.riscv64%{?dist}
Epoch: 7
Summary: TeX formatting system
# The only files in the base package are directories, cache, and license texts
# So we'll just list the license texts. This is also a bit of a lie, since most of these license texts do not apply to themselves.
@ -417,8 +417,6 @@ Source384: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xmltex.ta
Source385: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xpdfopen.doc.tar.xz
Source386: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/yplan.doc.tar.xz
Source387: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/yplan.tar.xz
Source388: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/optex.tar.xz
Source389: http://ctan.math.illinois.edu/systems/texlive/tlnet/archive/optex.doc.tar.xz
Patch1: tl-kpfix.patch
Patch2: tl-format.patch
Patch5: texlive-2016-kpathsea-texlive-path.patch
@ -446,10 +444,6 @@ Patch21: texlive-20190410-tlmgr-ignore-warning.patch
Patch23: texlive-20200327-poppler-0.84.patch
# bz#1798119, buffer overflow, CVE-2019-19601
Patch28: texlive-base-20190410-CVE-2019-19601.patch
# Fixes for poppler 0.90 (f33+)
Patch29: texlive-20200327-poppler-0.90.patch
# Fix pdflatex run out of memory
Patch30: texlive-base-20200327-out-of-memory.patch
# Can't do this because it causes everything else to be noarch
# BuildArch: noarch
@ -1143,10 +1137,8 @@ Requires: texlive-base
Requires: texlive-kpathsea
Requires(post,postun): coreutils
Requires: texlive-metapost
%if %{without bootstrap}
Requires: texlive-pdftex
Requires: texlive-xetex
%endif
Requires: texlive-luatex
Requires: texlive-lm
Requires: texlive-lm-math
@ -2878,7 +2870,8 @@ Obsoletes: texlive-kpathsea-doc < 7:20170520
Requires: coreutils, grep
Requires: texlive-base
# We absolutely need this to go in first, since the trigger needs it
Requires(post): texlive-texlive-scripts = %{epoch}:%{source_date}-%{release}
Requires(post): texlive-texlive-scripts
Requires(post): texlive-context
Provides: tex(fmtutil.cnf) = %{epoch}:%{source_date}-%{release}
Provides: tex(mktex.cnf) = %{epoch}:%{source_date}-%{release}
Provides: tex(texmf.cnf) = %{epoch}:%{source_date}-%{release}
@ -2946,11 +2939,6 @@ Requires: texlive-luatex
Requires: texlive-pdftex
Requires: texlive-latexconfig
Requires: texlive-latex-fonts
# As a result of changes in textcomp, it requests TS1 fonts for some things
# most notably, \textbullet. Since people probably want a working itemize
# even on rather minimal installs, we add an explicit Requires on texlive-cm-super
# here. (bz1867927)
Requires: texlive-cm-super
Requires(post,postun): coreutils
Requires: tex(multicol.sty)
Requires: tex(url.sty)
@ -4445,24 +4433,6 @@ Requires: texlive-kpathsea
%description -n %{shortname}-omegaware
Omegaware package.
%package -n %{shortname}-optex
License: Public Domain
Summary: LuaTeX format based on Plain TeX and OPmac
Requires: texlive-base
Requires: texlive-kpathsea
Requires: texlive-amsfonts
Requires: texlive-cm
Requires: texlive-ec
Requires: texlive-hyphen-base
Requires: texlive-lm
Requires: texlive-luatex
Requires: texlive-rsfs
%description -n %{shortname}-optex
OpTeX is a LuaTeX format based on Plain TeX macros with power
from OPmac (fonts selection system, colors, external graphics,
references, hyperlinks, ...) with unicode fonts.
%package -n %{shortname}-patgen
Provides: tex-patgen = %{epoch}:%{source_date}-%{release}
Provides: texlive-patgen-bin = %{epoch}:%{source_date}-%{release}
@ -5032,6 +5002,7 @@ Requires: texlive-etex
Requires: texlive-hyphen-base
Requires: texlive-hyph-utf8
Requires: texlive-ipaex
Requires: texlive-japanese
Requires: texlive-japanese-otf
Requires: texlive-knuth-lib
Requires: texlive-kpathsea
@ -5666,10 +5637,8 @@ Obsoletes: texlive-texlive-scripts-bin < 7:20170520
License: LPPL
Summary: TeX Live infrastructure programs
Requires: texlive-base
Requires: texlive-kpathsea = %{epoch}:%{source_date}-%{release}
Requires: texlive-kpathsea
Requires: texlive-texlive.infra
Provides: texlive-tetex = %{epoch}:%{source_date}-%{release}
Obsoletes: texlive-tetex < 7:20200327
# perl
BuildArch: noarch
@ -5685,9 +5654,6 @@ Summary: TeX Live scripts
Requires: texlive-base
Requires: texlive-kpathsea
Requires: texlive-texlive.infra
Obsoletes: texlive-texconfig < 7:20200327
Obsoletes: texlive-pstools < 7:20200327
Obsoletes: texlive-pdftools < 7:20200327
# perl and shell
BuildArch: noarch
@ -6029,17 +5995,12 @@ License: BSD
Summary: Binaries for uptex
Requires: texlive-base
Requires: texlive-convbkmk
Requires: texlive-etex
Requires: texlive-hyphen-base
Requires: texlive-hyph-utf8
Requires: texlive-ipaex
Requires: texlive-japanese
Requires: texlive-japanese-otf
Requires: texlive-knuth-lib
Requires: texlive-kpathsea
Requires: texlive-plain
Requires: texlive-ptex-base
Requires: texlive-uptex-base
Requires: texlive-uptex-fonts
Requires: texlive-ptex
%description -n %{shortname}-uptex
upTeX is an extension of pTeX, using UTF-8 input and producing UTF-8
@ -6574,10 +6535,6 @@ xz -dc %{SOURCE0} | tar x
%patch23 -p1 -b .poppler-0.84
%endif
%patch28 -p1 -b .CVE-2019-19601
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
%patch29 -p1 -b .poppler090
%endif
%patch30 -p1 -b .out_of_memory
# Setup copies of the licenses
for l in `unxz -c %{SOURCE3} | tar t`; do
@ -6590,8 +6547,6 @@ done
%global mysources %{lua: for index,value in ipairs(sources) do if index >= 16 then print(value.." ") end end}
%build
%define _lto_cflags %{nil}
%if %{without bootstrap}
cat /usr/share/texlive/kpathsea.log || :
# DEBUG
@ -6646,7 +6601,7 @@ cd work
--with-system-libpaper --with-system-potrace --with-pic --with-xdvi-x-toolkit=xaw --with-system-mpfr --with-system-gmp \
--enable-shared --enable-compiler-warnings=max --without-cxx-runtime-hack \
--disable-native-texlive-build --disable-t1utils --enable-psutils --disable-biber --disable-ptexenc --disable-largefile \
%ifarch %{power64} s390 s390x
%ifarch %{power64} s390 s390x riscv64
--disable-luajittex --disable-mfluajit --disable-luajithbtex --disable-mfluajit-nowin \
%endif
%if %{without bootstrap}
@ -6663,7 +6618,7 @@ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $i
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $i
done
%make_build world STRIPPROG=/bin/true STRIP=/bin/true
make world %{?_smp_mflags} STRIPPROG=/bin/true STRIP=/bin/true
%install
# make directories
@ -6999,9 +6954,6 @@ if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
fi
:
%transfiletriggerin -n %{shortname}-context -- %{_texdir}
%{_bindir}/mtxrun --generate &> /dev/null || :
%transfiletriggerin -n %{shortname}-kpathsea -- %{_texdir}
# Commented lines are DEBUG mode
# touch /usr/share/texlive/kpathsea.log
@ -7012,7 +6964,9 @@ fi
export TEXMF=/usr/share/texlive/texmf-dist
export TEXMFCNF=/usr/share/texlive/texmf-dist/web2c
export TEXMFCACHE=/var/lib/texmf
# %{_bindir}/mtxrun --generate 2>&1 | tee -a /usr/share/texlive/kpathsea.log || :
# %{_bindir}/fmtutil-sys --all 2>&1 | tee -a /usr/share/texlive/kpathsea.log || :
%{_bindir}/mtxrun --generate &> /dev/null || :
%{_bindir}/fmtutil-sys --all &> /dev/null || :
%transfiletriggerpostun -n %{shortname}-kpathsea -- %{_texdir}
@ -7425,10 +7379,8 @@ done <<< "$list"
%{_texdir}/texmf-dist/fonts/tfm/hoekwater/context/
%{_texdir}/texmf-dist/fonts/type1/hoekwater/context/
%{_texdir}/texmf-dist/metapost/context/
%exclude %{_texdir}/texmf-dist/scripts/context/perl/mptopdf.pl
%{_texdir}/texmf-dist/scripts/context/
%{_texdir}/texmf-dist/tex/context/
%exclude %{_texdir}/texmf-dist/tex/generic/context/mptopdf
%{_texdir}/texmf-dist/tex/generic/context/
%{_texdir}/texmf-dist/tex/latex/context/
%{fmtutil_cnf_d}/context
@ -8039,7 +7991,7 @@ done <<< "$list"
%{_includedir}/kpathsea/*
%{_includedir}/synctex/
%{_includedir}/texlua53/
%ifnarch %{power64} s390 s390x
%ifnarch %{power64} s390 s390x riscv64
%{_includedir}/texluajit/
%endif
%{_libdir}/*.so
@ -8109,7 +8061,7 @@ done <<< "$list"
%files -n %{shortname}-luajittex
%license gpl2.txt
%ifnarch %{power64} s390 s390x
%ifnarch %{power64} s390 s390x riscv64
%{_bindir}/luajittex
%{_bindir}/luajithbtex
%{_bindir}/texluajit
@ -8124,6 +8076,7 @@ done <<< "$list"
%{_bindir}/dvilualatex-dev
%{_bindir}/luacsplain
%{_bindir}/luatex
%{_bindir}/optex
%{_bindir}/texlua
%{_bindir}/texluac
%{_mandir}/man1/dvilualatex-dev.1*
@ -8135,6 +8088,7 @@ done <<< "$list"
%{_texdir}/texmf-dist/tex/generic/config/luatexiniconfig.tex
%{_texdir}/texmf-dist/web2c/texmfcnf.lua
%{fmtutil_cnf_d}/luatex
%{fmtutil_cnf_d}/optex
%doc %{_texdir}/texmf-dist/doc/luatex/base/
%files -n %{shortname}-lwarp
@ -8167,7 +8121,6 @@ done <<< "$list"
%{_bindir}/mkindex
%{_mandir}/man1/makeindex.1*
%{_mandir}/man1/mkindex.1*
%exclude %{_texdir}/texmf-dist/makeindex/latex/
%{_texdir}/texmf-dist/makeindex/
%{_texdir}/texmf-dist/tex/plain/makeindex/
%doc %{_texdir}/texmf-dist/doc/support/makeindex/
@ -8210,7 +8163,6 @@ done <<< "$list"
%{_texdir}/texmf-dist/fonts/map/dvips/metapost/
%{_texdir}/texmf-dist/fonts/tfm/metapost/
%{_texdir}/texmf-dist/fonts/type1/metapost/
%exclude %{_texdir}/texmf-dist/metapost/context/
%{_texdir}/texmf-dist/metapost/
%{_texdir}/texmf-dist/tex/generic/metapost/
%doc %{_texdir}/texmf-dist/doc/metapost/
@ -8228,7 +8180,7 @@ done <<< "$list"
%license gpl2.txt
%{_bindir}/mflua
%{_bindir}/mflua-nowin
%ifnarch %{power64} s390 s390x
%ifnarch %{power64} s390 s390x riscv64
%{_bindir}/mfluajit
%{_bindir}/mfluajit-nowin
%endif
@ -8368,13 +8320,6 @@ done <<< "$list"
%{_mandir}/man1/ovf2ovp.1*
%{_mandir}/man1/ovp2ovf.1*
%files -n %{shortname}-optex
%{_bindir}/optex
%{fmtutil_cnf_d}/optex
%{_mandir}/man1/optex.1*
%{_texdir}/texmf-dist/tex/luatex/optex/
%doc %{_texdir}/texmf-dist/doc/luatex/optex/
%files -n %{shortname}-patgen
%license knuth.txt
%{_bindir}/patgen
@ -9142,64 +9087,11 @@ done <<< "$list"
%doc %{_texdir}/texmf-dist/doc/latex/yplan/
%changelog
* Mon Nov 16 2020 Tom Callaway <spot@fedoraproject.org> - 9:20200327-22
- make proper texlive-optex subpackage by moving it here
- bump epoch to 9 so this texlive-optex package replaces the one that used to live in texlive
* Mon Jun 08 2020 David Abdurachmanov <david.abdurachmanov@sifive.com> - 7:20200327-6.1.riscv64
- Disable bootstrap
* Thu Nov 12 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-21
- obsolete texlive-texconfig, texlive-pdftools, texlive-pstools (in texlive-texlive-scripts-extra)
* Tue Nov 10 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-20
- fix issues with file ownership duplication
- fix issue with obsoleting texlive-tetex
- turn LTO back off, as it was assuming code needed libcrypto for some unknown reason
* Thu Oct 29 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-19
- fix dependencies of texlive-ptex and texlive-uptex
* Sun Oct 11 2020 Jeff Law <law@redhat.com> - 7:20200327-18
- Re-enable LTO
* Wed Sep 23 2020 Than Ngo <than@redhat.com> - 7:20200327-17
- Fix pdflatex run out of memory
* Mon Sep 21 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-16
- move "mtxrun --generate" call from -kpathsea transfiletriggerin to -context
- drop Requires(post): texlive-context from -kpathsea
- add an explicit versioning on the dependency of texlive-texlive-scripts in -kpathsea (and vice versa)
* Thu Aug 13 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-15
- make texlive-latex have an explicit Requires on texlive-cm-super (bz1867927)
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7:20200327-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 22 2020 Tom Stellard <tstellar@redhat.com> - 7:20200327-13
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue Jul 21 2020 Marek Kasik <mkasik@redhat.com> - 7:20200327-12
- rebuild for poppler 0.90.0
- bodhi needs latest build
* Tue Jul 14 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-11
- disable bootstrap
* Tue Jul 14 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-10.1
- unbootstrapped build (TEMPORARY, when -11 comes out of the side tag, it will replace this)
* Tue Jul 14 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-10
- bootstrap again again
* Tue Jul 14 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-9
- bootstrap again
* Tue Jul 14 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-8
- rebuild for poppler 0.90.0
- bootstrap on
* Wed Jul 01 2020 Jeff Law <law@redhat.com> - 7:20200327-7
- Disable LTO
* Mon Jun 08 2020 David Abdurachmanov <david.abdurachmanov@sifive.com> - 7:20200327-6.0.riscv64
- Add support for RISC-V (riscv64)
* Wed May 27 2020 Tom Callaway <spot@fedoraproject.org> - 7:20200327-6
- split off context-doc (bz1839593)

330247
texlive.tlpdb Normal file

File diff suppressed because it is too large Load Diff