Browse Source

update toolchain

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@12020 ec354946-7b23-47d6-9f5a-488ba84defc7
tomop 5 years ago
parent
commit
f83c3c5f67

+ 257 - 40
b/binutils/binutils-vl.spec

@@ -3,15 +3,39 @@
 # --without testsuite: Do not run the testsuite.  Default is to run it.
 # --with testsuite: Run the testsuite.  Default --with debug is not to run it.
 
+# Enable support for GCC LTO compilation.
+%define enable_lto 1
+
+# Disable the default generation of compressed debug sections.
+%define default_compress_debug 0
+
+# Default to read-only-relocations (relro) in shared binaries.
+%define default_relro 1
+
+# Disable the default generation of GNU Build notes by the assembler.
+# This has turned out to be problematic for the i686 architecture.
+# although the exact reason has not been determined.  (See BZ 1572485)
+# It also breaks building EFI binaries on AArch64, as these cannot have
+# relocations against absolute symbols.
+%define default_generate_notes 0
+
+# Enable thread support in the GOLD linker.  This is particularly
+# important if plugins to the linker intend to use threads themselves.
+# See BZ 1636479 for more details.  This option is made configurable
+# in case there is ever a need to disable thread support.
+%define enable_threading 1
+
 %define binutils_target %{_target_platform}
 %define isnative 1
 %define enable_shared 1
 
+%bcond_without docs
+
 Summary: A GNU collection of binary utilities.
 Summary(ja): GNU 版バイナリユーティリティ集
 Name: binutils
-Version: 2.26
-Release: 4%{?_dist_release}
+Version: 2.31.1
+Release: 1%{?_dist_release}
 License: GPLv3+
 Group: Development/Tools
 URL: http://sources.redhat.com/binutils
@@ -24,15 +48,145 @@ Packager:       kenta, shaolin, inagaki
 # The ftp.kernel.org/pub/linux/devel/binutils/ page is (temporarily) unavailable
 # so we use the GNU site instead.
 # Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2
-Source: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
+Source: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
 Source2: binutils-2.19.50.0.1-output-format.sed
-Patch01: binutils-2.20.51.0.12-libtool-lib64.patch
-Patch03: binutils-2.20.51.0.2-ia64-lib64.patch
-Patch04: binutils-2.26-version.patch
-Patch05: binutils-2.26-set-long-long.patch
-Patch07: binutils-2.26-copy-osabi.patch
-Patch08: binutils-2.26-sec-merge-emit.patch
-Patch09: binutils-2.26-symbol-version.patch
+
+#----------------------------------------------------------------------------
+
+# Purpose:  Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
+#           default library search path of 64-bit targets.
+# Lifetime: Permanent, but it should not be.  This is a bug in the libtool
+#           sources used in both binutils and gcc, (specifically the
+#           libtool.m4 file).  These are based on a version released in 2009
+#           (2.2.6?) rather than the latest version.  (Definitely fixed in
+#           libtool version 2.4.6).
+Patch01: binutils-2.20.51.0.2-libtool-lib64.patch
+
+# Purpose:  Appends a RHEL or Fedora release string to the generic binutils
+#           version string.
+# Lifetime: Permanent.  This is a RHEL/Fedora specific patch.
+Patch02: binutils-2.25-version.patch
+
+# Purpose:  Exports the demangle.h header file (associated with the libiberty
+#           sources) with the binutils-devel rpm.
+# Lifetime: Permanent.  This is a RHEL/Fedora specific patch.
+Patch03: binutils-2.31-export-demangle.h.patch
+
+# Purpose:  Disables the check in the BFD library's bfd.h header file that
+#           config.h has been included before the bfd.h header.  See BZ
+#           #845084 for more details.
+# Lifetime: Permanent - but it should not be.  The bfd.h header defines
+#           various types that are dependent upon configuration options, so
+#           the order of inclusion is important.
+# FIXME:    It would be better if the packages using the bfd.h header were
+#           fixed so that they do include the header files in the correct
+#           order.
+Patch04: binutils-2.22.52.0.4-no-config-h-check.patch
+
+# Purpose:  Import H.J.Lu's Kernel LTO patch.
+# Lifetime: Permanent, but needs continual updating.
+# FIXME:    Try removing....
+# Patch05: binutils-2.26-lto.patch
+
+# Purpose:  Include the filename concerned in readelf error messages.  This
+#           makes readelf's output more helpful when it is run on multiple
+#           input files.
+# Lifetime: Permanent.  This patch changes the format of readelf's output,
+#           making it better (IMHO) but also potentially breaking tools that
+#           depend upon readelf's current format.  Hence it remains a local
+#           patch.
+Patch06: binutils-2.29-filename-in-error-messages.patch
+
+# Purpose:  Disable an x86/x86_64 optimization that moves functions from the
+#           PLT into the GOTPLT for faster access.  This optimization is
+#           problematic for tools that want to intercept PLT entries, such
+#           as ltrace and LD_AUDIT.  See BZs 1452111 and 1333481.
+# Lifetime: Permanent.  But it should not be.
+# FIXME:    Replace with a configure time option.
+Patch07: binutils-2.29-revert-PLT-elision.patch
+
+# Purpose:  Changes readelf so that when it displays extra information about
+#           a symbol, this information is placed at the end of the line.
+# Lifetime: Permanent.
+# FIXME:    The proper fix would be to update the scripts that are expecting
+#           a fixed output from readelf.  But it seems that some of them are
+#           no longer being maintained.
+Patch08: binutils-readelf-other-sym-info.patch
+
+# Purpose:  Do not create PLT entries for AARCH64 IFUNC symbols referenced in
+#           debug sections.
+# Lifetime: Permanent.
+# FIXME:    Find related bug.  Decide on permanency.
+Patch09: binutils-2.27-aarch64-ifunc.patch
+
+# Purpose:  Fix linker testsuite failures
+# Lifetime: Fixed in 2.32 (probably)
+Patch10: binutils-fix-testsuite-failures.patch
+
+# Purpose:  Revert fix for PR 23161 which was placing unversioned section
+#           symbols (_edata, _end, __bss_start) into shared libraries.
+#           See also PR 23499 and BZ 1614920
+# Lifetime: Fixed in 2.32
+# Patch11: binutils-do-not-provide-shared-section-symbols.patch
+Patch11: binutils-clear-version-info.patch
+
+# Purpose:  Stop gold from complaining about relocs in the .gnu.build.attribute
+#           section that reference symbols in discarded sections.
+# Lifetime: Fixed in 2.32 (maybe)
+Patch12: binutils-gold-ignore-discarded-note-relocs.patch
+
+# Purpose:  Improve partial relro support for 64-bit s/390.
+# Lifetime: Fixed in 2.32 
+Patch13: binutils-s390-partial-relro.patch
+
+# Purpose:  Merge .gnu.build.attribute sections into a single section.
+# Lifetime: Fixed in 2.32 
+Patch14: binutils-merge-attribute-sections.patch
+
+# Purpose:  Improve objcopy's --merge-notes option.
+# Lifetime: Fixed in 2.32
+Patch15: binutils-note-merge-improvements.patch
+
+# Purpose:  Detect and report corrupt symbol version information.
+# Lifetime: Fixed in 2.32
+Patch16: binutils-detect-corrupt-sym-version-info.patch
+
+# Purpose:  Delay the evaluation of linker script constants until
+#            after the configuration options have been set.
+# Lifetime: Fixed in 2.32
+Patch17: binutils-delay-ld-script-constant-eval.patch
+
+# Purpose:  Stop readelf's reports of gaps in build notes - they are unreliable.
+# Lifetime: Unknown.
+Patch18: binutils-disable-readelf-gap-reports.patch
+
+# Purpose:  Stop the binutils from statically linking with libstdc++.
+# Lifetime: Permanent.
+Patch20: binutils-do-not-link-with-static-libstdc++.patch
+
+# Purpose:  Add a .attach_to_group pseudo-op to the assembler for
+#           use by the annobin gcc plugin.
+# Lifetime: Permanent.
+Patch21: binutils-attach-to-group.patch
+
+# Purpose:  Fix a potential buffer overrun when parsing a corrupt ELF file.
+# Lifetime: Fixed in 2.32.
+Patch22: binutils-CVE-2018-17358.patch
+
+# Purpose:  Allow OS specific sections in section groups.
+# Lifetime: Might be fixed in 2.32
+Patch23: binutils-special-sections-in-groups.patch
+
+# Purpose:  Stop gold from issuing warnings about dropped version
+#            information, unless explicitly requested otherwise.
+# Lifetime: Fixed in 2.32
+Patch24: binutils-gold-discard-version-info.patch
+
+# Purpose:  Fix a memory leak reading minisymbols.
+# Lifetime: Fixed in 2.32
+Patch25: binutils-CVE-2018-20002.patch
+
+#----------------------------------------------------------------------------
 
 Patch1001: binutils-2.26-uio-vine.patch
 
@@ -66,8 +220,8 @@ Obsoletes: gnupro
 %endif
 
 # The higher of these two numbers determines the default ld.
-%{!?ld_bfd_priority: %define ld_bfd_priority	50}
-%{!?ld_gold_priority:%define ld_gold_priority	30}
+%{!?ld_bfd_priority: %global ld_bfd_priority    50}
+%{!?ld_gold_priority:%global ld_gold_priority   30}
 
 %ifarch %gold_arches
 Requires(post): coreutils
@@ -120,25 +274,15 @@ to consider using libelf instead of BFD.
 
 
 %prep
-%setup -q
-%patch01 -p0 -b .libtool-lib64~
-%ifarch ia64
-%if "%{_lib}" == "lib64"
-%patch03 -p0 -b .ia64-lib64~
-%endif
-%endif
-%patch04 -p1 -b .version~
-%patch05 -p1 -b .set-long-long~
-%patch07 -p1 -b .copy-osabi~
-%patch08 -p1 -b .sec-merge-emit~
-%patch09 -p1 -b .symbol-version
-
-%patch1001 -p1 -b .vine
+%autosetup -p1
 
 # We cannot run autotools as there is an exact requirement of autoconf-2.59.
 
-# On ppc64 we might use 64KiB pages
+# On ppc64 and aarch64, we might use 64KiB pages
 sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
+sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*aarch64.c
+sed -i -e '/common_pagesize/s/4 /64 /' gold/powerpc.cc
+sed -i -e '/pagesize/s/0x1000,/0x10000,/' gold/aarch64.cc
 # LTP sucks
 perl -pi -e 's/i\[3-7\]86/i[34567]86/g' */conf*
 sed -i -e 's/%''{release}/%{release}/g' bfd/Makefile{.am,.in}
@@ -148,7 +292,8 @@ if gcc %{optflags} -v --help 2>&1 | grep -q -- -Bsymbolic-functions; then
 sed -i -e 's/^libbfd_la_LDFLAGS = /&-Wl,-Bsymbolic-functions /' bfd/Makefile.{am,in}
 sed -i -e 's/^libopcodes_la_LDFLAGS = /&-Wl,-Bsymbolic-functions /' opcodes/Makefile.{am,in}
 fi
-
+# $PACKAGE is used for the gettext catalog name.
+sed -i -e 's/^ PACKAGE=/ PACKAGE=%{?cross}/' */configure
 # Undo the name change to run the testsuite.
 for tool in binutils gas ld
 do
@@ -156,6 +301,13 @@ do
   sed -i -e "s/^DEJATOOL = .*/DEJATOOL = $tool/" $tool/Makefile.in
 done
 touch */configure
+# Touch the .info files so that they are newer then the .texi files and
+# hence do not need to be rebuilt.  This eliminates the need for makeinfo.
+# The -print is there just to confirm that the command is working.
+%if %{without docs}
+  find . -name *.info -print -exec touch {} \;
+%endif
+
 
 %build
 echo target is %{binutils_target}
@@ -177,6 +329,12 @@ case %{binutils_target} in ppc*|ppc64*)
   ;;
 esac
 
+%if %{default_relro}
+  CARGS="$CARGS --enable-relro=yes"
+%else
+  CARGS="$CARGS --enable-relro=no"
+%endif
+
 %if 0%{?_with_debug:1}
 CFLAGS="$CFLAGS -O0 -ggdb2"
 %define enable_shared 0
@@ -192,17 +350,47 @@ CFLAGS="$CFLAGS -O0 -ggdb2"
 %else
   --enable-gold=no \
 %endif
+%if %{isnative}
+  --with-sysroot=/ \
+%else
+  --enable-targets=%{_host} \
+  --with-sysroot=%{_prefix}/%{binutils_target}/sys-root \
+  --program-prefix=%{cross} \
+%endif
 %if %{enable_shared}
   --enable-shared \
 %else
   --disable-shared \
+%endif
+%if %{enable_lto}
+  --enable-lto \
+%endif
+%if %{default_compress_debug}
+  --enable-compressed-debug-sections=all \
+%else
+  --enable-compressed-debug-sections=none \
+%endif
+%if %{default_generate_notes}
+  --enable-generate-build-notes=yes \
+%else
+  --enable-generate-build-notes=no \
+%endif
+%if %{enable_threading}
+  --enable-threads=yes \
+%else
+  --enable-threads=no \
 %endif
   $CARGS \
   --enable-plugins \
   --disable-werror \
   --with-bugurl=http://bugzilla.redhat.com/bugzilla/
+
+%if %{with docs}
 make %{_smp_mflags} tooldir=%{_prefix} all
 make %{_smp_mflags} tooldir=%{_prefix} info
+%else
+%make_build %{_smp_mflags} tooldir=%{_prefix} MAKEINFO=true all
+%endif
 
 # Do not use %%check as it is run after %%install where libbfd.so is rebuild
 # with -fvisibility=hidden no longer being usable in its shared form.
@@ -212,21 +400,39 @@ echo ====================TESTSUITE DISABLED=========================
 make -k check < /dev/null || :
 echo ====================TESTING=========================
 cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
+if [ -f gold/test-suite.log ]; then
+    cat gold/test-suite.log
+fi
+if [ -f gold/testsuite/test-suite.log ]; then
+    cat gold/testsuite/*.log
+fi
 echo ====================TESTING END=====================
 for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log}
 do
   ln $file binutils-%{_target_platform}-$(basename $file) || :
 done
-tar cjf binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
-uuencode binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}.tar.bz2
-rm -f binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
+tar cjf binutils-%{_target_platform}.tar.xz  binutils-%{_target_platform}-*.{sum,log}
+uuencode binutils-%{_target_platform}.tar.xz binutils-%{_target_platform}.tar.xz
+rm -f binutils-%{_target_platform}.tar.xz    binutils-%{_target_platform}-*.{sum,log}
+if [ -f gold/testsuite/test-suite.log ]; then
+  tar cjf  binutils-%{_target_platform}-gold.log.tar.xz gold/testsuite/*.log
+  uuencode binutils-%{_target_platform}-gold.log.tar.xz binutils-%{_target_platform}-gold.log.tar.xz
+  rm -f    binutils-%{_target_platform}-gold.log.tar.xz
+fi
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT
+%if %{with docs}
+%make_install DESTDIR=%{buildroot}
+%else
+%make_install DESTDIR=%{buildroot} MAKEINFO=true
+%endif
 
-make prefix=$RPM_BUILD_ROOT%{_prefix} infodir=$RPM_BUILD_ROOT%{_infodir} install-info
+%if %{isnative}
+%if %{with docs}
+make prefix=%{buildroot}%{_prefix} infodir=%{buildroot}%{_infodir} install-info
+%endif
 
 # Rebuild libiberty.a with -fPIC.
 # Future: Remove it together with its header file, projects should bundle it.
@@ -248,7 +454,11 @@ install -m 644 libiberty/libiberty.a $RPM_BUILD_ROOT%{_libdir}
 install -m 644 include/libiberty.h $RPM_BUILD_ROOT%{_prefix}/include
 install -m 644 opcodes/libopcodes.a %{buildroot}%{_libdir}
 # Remove Windows/Novell only man pages
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/{dlltool,nlmconv,windres}*
+rm -f %{buildroot}%{_mandir}/man1/{dlltool,nlmconv,windres,windmc}*
+%if %{without docs}
+rm -f %{buildroot}%{_mandir}/man1/{addr2line,ar,as,c++filt,elfedit,gprof,ld,nm,objcopy,objdump,ranlib,readelf,size,strings,strip}*
+rm -f %{buildroot}%{_infodir}/{as,bfd,binutils,gprof,ld}*
+%endif
 
 %if %{enable_shared}
 chmod +x $RPM_BUILD_ROOT%{_libdir}/lib*.so*
@@ -262,9 +472,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.so
 rm -f $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.la
 
 # Sanity check --enable-64-bit-bfd really works.
-grep '^#define BFD_ARCH_SIZE 64$' $RPM_BUILD_ROOT%{_prefix}/include/bfd.h
+grep '^#define BFD_ARCH_SIZE 64$' %{buildroot}%{_prefix}/include/bfd.h
 # Fix multilib conflicts of generated values by __WORDSIZE-based expressions.
-%ifarch %{ix86} x86_64 ppc ppc64 s390 s390x sh3 sh4 sparc sparc64
+%ifarch %{ix86} x86_64 ppc %{power64} s390 s390x sh3 sh4 sparc sparc64 arm
 sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$~#include <bits/wordsize.h>~;}' \
     -e 's/^#define BFD_DEFAULT_TARGET_SIZE \(32\|64\) *$/#define BFD_DEFAULT_TARGET_SIZE __WORDSIZE/' \
     -e 's/^#define BFD_HOST_64BIT_LONG [01] *$/#define BFD_HOST_64BIT_LONG (__WORDSIZE == 64)/' \
@@ -274,9 +484,9 @@ sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$~#include <bits/wordsize.h>~;}' \
 #define BFD_HOST_64_BIT long\
 #endif/' \
     -e 's/^#define BFD_HOST_U_64_BIT unsigned \(long \)\?long *$/#define BFD_HOST_U_64_BIT unsigned BFD_HOST_64_BIT/' \
-    $RPM_BUILD_ROOT%{_prefix}/include/bfd.h
+    %{buildroot}%{_prefix}/include/bfd.h
 %endif
-touch -r bfd/bfd-in2.h $RPM_BUILD_ROOT%{_prefix}/include/bfd.h
+touch -r bfd/bfd-in2.h %{buildroot}%{_prefix}/include/bfd.h
 
 # Generate .so linker scripts for dependencies; imported from glibc/Makerules:
 
@@ -293,16 +503,18 @@ tee $RPM_BUILD_ROOT%{_libdir}/libbfd.so <<EOH
 $OUTPUT_FORMAT
 
 /* The libz dependency is unexpected by legacy build scripts.  */
-INPUT ( %{_libdir}/libbfd.a -liberty -lz )
+/* The libdl dependency is for plugin support.  (BZ 889134)  */
+INPUT ( %{_libdir}/libbfd.a -liberty -lz -ldl )
 EOH
 
-tee $RPM_BUILD_ROOT%{_libdir}/libopcodes.so <<EOH
+tee %{buildroot}%{_libdir}/libopcodes.so <<EOH
 /* GNU ld script */
 
 $OUTPUT_FORMAT
 
 INPUT ( %{_libdir}/libopcodes.a -lbfd )
 EOH
+%endif # !isnative
 
 # This one comes from gcc
 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
@@ -411,6 +623,11 @@ fi
 
 
 %changelog
+* Tue Jan 15 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 2.31.1-1
+- updated to 2.31.1.
+- dropped Patch1-9.
+- imported Patch01-25 from rawhide.
+
 * Sun Jun 26 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 2.26-4
 - rebuild with gcc-5.4.0
 

File diff suppressed because it is too large
+ 274 - 480
g/gcc/gcc-vl.spec


+ 13 - 6
g/gdb/gdb-vl.spec

@@ -1,7 +1,7 @@
 Summary: A GNU source-level debugger for C, C++ and other languages.
 Summary(ja): C, C++ その他の言語用 GNU ソースレベルデバッガ
 Name: gdb
-Version: 7.11.1
+Version: 8.2.1
 Release: 1%{?_dist_release}
 License: GPL
 Group: Development/Debuggers
@@ -9,13 +9,12 @@ Source: ftp://sources.redhat.com/pub/gdb/releases/gdb-%{version}.tar.xz
 Buildroot: %{_tmppath}/%{name}-%{version}-root
 URL: http://sources.redhat.com/gdb/
 BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo expat-devel
-BuildRequires: python-devel
+BuildRequires: python3-devel python3-rpm-macros
 BuildRequires: zlib-devel
 Requires: install-info
 
 Vendor: Project Vine
 Distribution: Vine Linux
-Packager: Takemikaduchi
 
 %description
 GDB, the GNU debugger, allows you to debug programs written in C, C++,
@@ -37,10 +36,11 @@ rm -fr dejagnu tcl expect
 	--sysconfdir=%{_sysconfdir} \
 	--mandir=%{_mandir} \
     --infodir=%{_infodir} \
+    --with-python=%{__python3} \
 	%{_target_platform}
 
-make
-make info
+make %{?_smp_mflags}
+make %{?_smp_mflags} info
 cp gdb/NEWS .
 
 %install
@@ -89,11 +89,15 @@ fi
 
 %files
 %defattr(-,root,root)
-%doc COPYING COPYING.LIB README NEWS
+%license COPYING COPYING.LIB
+%doc README NEWS
 %{_bindir}/*
 %{_mandir}/*/*
+%dir %{_datadir}/gdb
 %{_datadir}/gdb/syscalls
+%dir %{_datadir}/gdb/python
 %{_datadir}/gdb/python/gdb
+%dir %{_datadir}/gdb/system-gdbinit
 %{_datadir}/gdb/system-gdbinit/elinos.py
 %{_datadir}/gdb/system-gdbinit/wrs-linux.py
 %{_infodir}/annotate.info*
@@ -114,6 +118,9 @@ fi
 
 
 %changelog
+* Wed Jan 23 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 8.2.1-1
+- new upstream release.
+
 * Fri Jul 22 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 7.11.1-1
 - new upstream release
 

File diff suppressed because it is too large
+ 461 - 482
g/glibc/glibc-vl.spec


+ 35 - 6
i/isl/isl-vl.spec

@@ -1,13 +1,17 @@
 Summary: Integer point manipulation library
 Name: isl
-Version: 0.14.1
+Version: 0.16.1
 License: MIT
 Group: System Environment/Libraries
 URL: http://isl.gforge.inria.fr/
 
-%global libmajor 13
+%global libmajor 15
 %global libversion %{libmajor}.1.1
 
+%global oldversion 0.14.1
+%global oldlibmajor 13
+%global oldlibversion %{oldlibmajor}.1.1
+
 # Please set buildid below when building a private version of this rpm to
 # differentiate it from the stock rpm.
 #
@@ -20,11 +24,13 @@ BuildRequires: pkgconfig
 
 Source0: http://isl.gforge.inria.fr/isl-%{version}.tar.xz
 
+# Current gcc requires exactly 0.14.1
+Source1: http://isl.gforge.inria.fr/isl-%{oldversion}.tar.xz
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-root
 
 Vendor: Project Vine
 Distribution: Vine Linux
-Packager: Takemikaduchi
 
 %description
 isl is a library for manipulating sets and relations of integer points
@@ -53,13 +59,25 @@ basis reduction, transitive closures on maps (which may encode infinite
 graphs), dependence analysis and bounds on piecewise step-polynomials.
 
 %prep
-%setup -q
+%global docdir isl-%{version}
+%setup -a 1 -q -n isl -c
 
 %build
+cd isl-%{oldversion}
+%configure
+make %{?_smp_mflags} V=1
+cd ..
+
+cd isl-%{version}
 %configure
 make %{?_smp_mflags} V=1
 
 %install
+cd isl-%{oldversion}
+%make_install INSTALL="install -p" install-libLTLIBRARIES
+cd ..
+
+cd isl-%{version}
 %make_install INSTALL="install -p"
 rm -f %{buildroot}/%{_libdir}/libisl.a
 rm -f %{buildroot}/%{_libdir}/libisl.la
@@ -69,7 +87,12 @@ mkdir -p %{buildroot}/%{gdbprettydir}
 mv %{buildroot}/%{_libdir}/*-gdb.py* %{buildroot}/%{gdbprettydir}
 
 %check
-make check
+cd isl-%{oldversion}
+#make check
+cd ..
+
+cd isl-%{version}
+#make check
 
 %post -p /sbin/ldconfig
 %postun -p /sbin/ldconfig
@@ -77,8 +100,11 @@ make check
 %files
 %{_libdir}/libisl.so.%{libmajor}
 %{_libdir}/libisl.so.%{libversion}
+%{_libdir}/libisl.so.%{oldlibmajor}
+%{_libdir}/libisl.so.%{oldlibversion}
 %{gdbprettydir}/*
-%doc AUTHORS ChangeLog LICENSE README
+%license %{docdir}/LICENSE
+%doc %{docdir}/AUTHORS %{docdir}/ChangeLog %{docdir}/README
 
 %files devel
 %{_includedir}/*
@@ -88,6 +114,9 @@ make check
 
 
 %changelog
+* Sun Jan 20 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.16.1-1
+- new upstream rekease.
+
 * Sat Jun 25 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.14.1-1
 - initial build for Vine Linux
 

+ 7 - 3
lib/libt/libtool/libtool-vl.spec

@@ -1,12 +1,12 @@
 %define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
 
-%define gcc_version 5.4.0
+%define gcc_version 8.2.0
 
 Summary: The GNU Portable Library Tool
 Summary(ja): GNU ポータブルライブラリツール
 Name:    libtool
 Version: 2.4.6
-Release: 2%{?_dist_release}
+Release: 3%{?_dist_release}
 License: GPLv2+ and LGPLv2+ and GFDL
 Group:   Development/Tools
 URL:     http://www.gnu.org/software/libtool/
@@ -179,7 +179,8 @@ fi
 
 %files
 %defattr(-,root,root)
-%doc AUTHORS COPYING NEWS README THANKS TODO ChangeLog
+%license COPYING
+%doc AUTHORS NEWS README THANKS TODO ChangeLog
 %{_bindir}/libtool
 %{_bindir}/libtoolize
 %{_datadir}/aclocal/*.m4
@@ -212,6 +213,9 @@ fi
 
 
 %changelog
+* Mon Jan 21 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.4.6-3
+- rebuilt with gcc-8.2.0.
+
 * Sun Jun 26 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.4.6-2
 - rebuild with gcc-5.4.0
 

+ 626 - 0
lib/libx/libxcrypt/libxcrypt-vl.spec

@@ -0,0 +1,626 @@
+%bcond_with fipstest
+
+%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
+
+# Build with new api?
+%if 0%{?fedora} >= 30 || 0%{?rhel} >= 9
+%bcond_without new_api
+%else
+%bcond_with    new_api
+%endif
+
+# Build the compat package?
+%if 0%{?fedora} >= 999 || 0%{?rhel} >= 99
+%bcond_with    compat_pkg
+%else
+%bcond_without compat_pkg
+%endif
+
+# Run memcheck?
+# Valgrind does not work well on %%{power64} arches.
+%ifnarch %{power64}
+%bcond_without memcheck
+%else
+%bcond_with    memcheck
+%endif
+
+
+# Shared object version of libcrypt.
+%if %{with new_api}
+%global soc  2
+%global sol  0
+%global sof  0
+%global sov  %{soc}.%{sol}.%{sof}
+%if %{with compat_pkg}
+%global csoc 1
+%global csol 1
+%global csof 0
+%global csov %{csoc}.%{csol}.%{csof}
+%endif
+%else
+%global soc  1
+%global sol  1
+%global sof  0
+%global sov  %{soc}.%{sol}.%{sof}
+%endif
+
+
+# Hash methods and API supported by libcrypt.
+# NEVER EVER touch this, if you do NOT know what you are doing!
+%if %{with new_api}
+%global hash_methods   fedora,glibc,strong
+%global obsolete_api   no
+%if %{with compat_pkg}
+%global compat_methods glibc
+%global compat_api     glibc
+%endif
+%else
+%global hash_methods   all
+%global obsolete_api   glibc
+%endif
+
+
+# Needed for the distribution README file.
+%if 0%{?fedora}
+%global distname .fedora
+%else
+%if 0%{?rhel}
+%global distname .rhel
+%else
+%global distname .distribution
+%endif
+%endif
+
+# Needed for out-of-tree builds.
+%global _configure ../"configure"
+
+
+# Common configure options.
+%global common_configure_options           \\\
+  --libdir=/%{_lib}                        \\\
+  --disable-failure-tokens                 \\\
+  --disable-silent-rules                   \\\
+  --enable-shared                          \\\
+  --enable-static                          \\\
+%if %{with memcheck}                       \
+  --enable-valgrind                        \\\
+%else                                      \
+  --disable-valgrind                       \\\
+%endif                                     \
+  --srcdir=..                              \\\
+  --with-pkgconfigdir=%{_libdir}/pkgconfig
+
+
+%if %{with fipstest}
+# Add generation of HMAC checksums of the final stripped
+# binaries.  %%define with lazy globbing is used here
+# intentionally, because using %%global does not work.
+BuildRequires:  fipscheck
+
+%define __spec_install_post                                    \
+%{?__debug_package:%{__debug_install_post}}                    \
+%{__arch_install_post}                                         \
+%{__os_install_post}                                           \
+%{_bindir}/fipshmac %{buildroot}/%{_lib}/libcrypt.a            \
+%{__ln_s} .libcrypt.a.hmac                                     \\\
+  %{buildroot}/%{_lib}/.libxcrypt.a.hmac                       \
+%{_bindir}/fipshmac %{buildroot}/%{_lib}/libcrypt.so.%{sov}    \
+%{__ln_s} .libcrypt.so.%{sov}.hmac                             \\\
+  %{buildroot}/%{_lib}/.libcrypt.so.%{soc}.hmac                \
+if [[ %{with new_api} == 1 && %{with compat_pkg} == 1 ]]; then \
+  %{_bindir}/fipshmac %{buildroot}/%{_lib}/libcrypt.so.%{csov} \
+  %{__ln_s} .libcrypt.so.%{csov}.hmac                          \\\
+    %{buildroot}/%{_lib}/.libcrypt.so.%{csoc}.hmac             \
+fi                                                             \
+%{nil}
+%endif
+
+Name:           libxcrypt
+Version:        4.4.2
+Release:        6%{?_dist_release}
+Summary:        Extended crypt library for descrypt, md5crypt, bcrypt, and others
+
+Group:          System Environment/Libraries
+Vendor:         Project Vine
+Distribution:   Vine Linux
+
+# For explicit license breakdown, see the
+# LICENSING file in the source tarball.
+License:        LGPLv2+ and BSD and Public Domain
+URL:            https://github.com/besser82/%{name}
+Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+
+# Patch 0000 - 2999: Backported patches from upstream.
+
+# Patch 3000 - 5999: Backported patches from pull requests.
+
+# Patch 6000 - 9999: Downstream patches.
+
+BuildRequires:  libtool
+%if %{with memcheck}
+BuildRequires:  valgrind
+%endif
+
+# We do not need to keep this forever.
+# We need a version of glibc, that doesn't build libcrypt anymore.
+Requires:       glibc%{?_isa}           >= 2.26.9000-46
+
+%if 0%{?fedora} >= 30
+Recommends:     mkpasswd
+%endif
+
+%description
+libxcrypt is a modern library for one-way hashing of passwords.  It
+supports a wide variety of both modern and historical hashing methods:
+yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt,
+%if %{with new_api}
+md5crypt, and descrypt.
+%else
+md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.
+%endif
+It provides the traditional Unix crypt and crypt_r interfaces, as well
+as a set of extended interfaces pioneered by Openwall Linux, crypt_rn,
+crypt_ra, crypt_gensalt, crypt_gensalt_rn, and crypt_gensalt_ra.
+
+libxcrypt is intended to be used by login(1), passwd(1), and other
+similar programs; that is, to hash a small number of passwords during
+an interactive authentication dialogue with a human. It is not suitable
+for use in bulk password-cracking applications, or in any other situation
+where speed is more important than careful handling of sensitive data.
+However, it is intended to be fast and lightweight enough for use in
+servers that must field thousands of login attempts per minute.
+%if %{with new_api}
+
+This version of the library does not provide the legacy API functions
+that have been provided by glibc's libcrypt.so.1.
+%endif
+
+
+%if %{with new_api} && %{with compat_pkg}
+%package        compat
+Summary:        Compatibility library providing legacy API functions
+
+Requires:       %{name}%{?_isa}         == %{version}-%{release}
+
+%description    compat
+This package contains the library providing the compatibility API
+for applications that are linked against glibc's libxcrypt, or that
+are still using the unsafe and deprecated, encrypt, encrypt_r,
+setkey, setkey_r, and fcrypt functions, which are still required by
+recent versions of POSIX, the Single UNIX Specification, and various
+other standards.
+
+All existing binary executables linked against glibc's libcrypt should
+work unmodified with the library supplied by this package.
+%endif
+
+
+%package        devel
+Summary:        Development files for %{name}
+Group:          Development/Libraries
+
+Conflicts:      man-pages               < 4.15-3
+
+Requires:       %{name}%{?_isa}        == %{version}-%{release}
+Requires:       glibc-devel%{?_isa}
+
+%description    devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+
+%package        static
+Summary:        Static library for -static linking with %{name}
+Group:          Development/Libraries
+
+Requires:       %{name}-devel%{?_isa}  == %{version}-%{release}
+Requires:       glibc-static%{?_isa}
+
+%description    static
+This package contains the libxcrypt static library for -static
+linking.
+
+You don't need this, unless you link statically, which is highly
+discouraged.
+
+
+%package -n     compat32-%{name}
+Summary:        Extended crypt library for descrypt, md5crypt, bcrypt, and others
+
+Group:          System Environment/Libraries
+
+%description -n compat32-%{name}
+libxcrypt is a modern library for one-way hashing of passwords.  It
+supports a wide variety of both modern and historical hashing methods:
+yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt,
+%if %{with new_api}
+md5crypt, and descrypt.
+%else
+md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.
+%endif
+It provides the traditional Unix crypt and crypt_r interfaces, as well
+as a set of extended interfaces pioneered by Openwall Linux, crypt_rn,
+crypt_ra, crypt_gensalt, crypt_gensalt_rn, and crypt_gensalt_ra.
+
+libxcrypt is intended to be used by login(1), passwd(1), and other
+similar programs; that is, to hash a small number of passwords during
+an interactive authentication dialogue with a human. It is not suitable
+for use in bulk password-cracking applications, or in any other situation
+where speed is more important than careful handling of sensitive data.
+However, it is intended to be fast and lightweight enough for use in
+servers that must field thousands of login attempts per minute.
+%if %{with new_api}
+
+This version of the library does not provide the legacy API functions
+that have been provided by glibc's libcrypt.so.1.
+%endif
+
+
+%package -n     compat32-%{name}-devel
+Summary:        Development files for cpmpat32-%{name}
+Group:          Development/Libraries
+
+Requires:       %{name}-devel        == %{version}-%{release}
+Requires:       compat32-glibc-devel
+
+%description -n compat32-%{name}-devel
+The compat32-%{name}-devel package contains libraries and header files for
+developing applications that use compat32-%{name}.
+
+
+%prep
+%autosetup -p 1
+./bootstrap
+%if %{with new_api}
+%{__cat} << EOF >> README%{distname}
+This version of the %{name} package ships the libcrypt.so2
+library and does not provide the legacy API functions that have
+been provided by glibc's libcrypt.so.1.  The removed functions
+by name are encrypt, encrypt_r, setkey, setkey_r, and fcrypt.
+%if %{with compat_pkg}
+
+If you are using a third-party application that links against
+those functions, or that is linked against glibc's libcrypt,
+you may need to install the %{name}-compat package manually.
+
+All existing binary executables linked against glibc's libcrypt
+should work unmodified with the libcrypt.so.1 library supplied
+by the %{name}-compat package.
+%endif
+EOF
+%endif
+%{__mkdir_p} %{_vpath_builddir}{,-compat}
+
+
+%build
+# Build the default system library.
+pushd %{_vpath_builddir}
+%configure                              \
+  %{common_configure_options}           \
+  --enable-hashes=%{hash_methods}       \
+  --enable-obsolete-api=%{obsolete_api}
+%make_build
+popd
+
+%if %{with new_api} && %{with compat_pkg}
+# Build the compatibility library.
+pushd %{_vpath_builddir}-compat
+%configure                              \
+  %{common_configure_options}           \
+  --enable-hashes=%{compat_methods}     \
+  --enable-obsolete-api=%{compat_api}
+%make_build
+popd
+%endif
+
+
+%install
+rm -rf %{buildroot}
+%if %{with new_api} && %{with compat_pkg}
+# Install the compatibility library.
+%make_install -C %{_vpath_builddir}-compat
+
+# Cleanup everything we do not need from the compatibility library.
+%{__rm} -fr %{buildroot}%{_bindir}                   \
+            %{buildroot}%{_includedir}               \
+            %{buildroot}/%{_lib}/lib{,x}crypt.{a,so} \
+            %{buildroot}%{_libdir}/pkgconfig         \
+            %{buildroot}%{_mandir}                   \
+            %{buildroot}%{_sbindir}
+%endif
+
+# Install the default system library.
+%make_install -C %{_vpath_builddir}
+
+# Get rid of libtool crap.
+%{_bindir}/find %{buildroot} -name '*.la' -print -delete
+
+
+%check
+%if %{with new_api} && %{with compat_pkg}
+for dir in %{_vpath_builddir} %{_vpath_builddir}-compat; do
+%else
+for dir in %{_vpath_builddir}; do
+%endif
+  %make_build -C ${dir} check || \
+    {
+      rc=$?;
+      echo "-----BEGIN TESTLOG: ${dir}-----";
+      %{__cat} ${dir}/test-suite.log;
+      echo "-----END TESTLOG: ${dir}-----";
+      exit $rc;
+    }
+%if %{with memcheck}
+  %make_build -C ${dir} check-valgrind-memcheck || \
+    {
+      rc=$?;
+      echo "-----BEGIN TESTLOG: ${dir}-----";
+      %{__cat} ${dir}/test-suite-memcheck.log;
+      echo "-----END TESTLOG: ${dir}-----";
+      exit $rc;
+    }
+%endif
+done
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%if %{with new_api} && %{with compat_pkg}
+%post compat -p /sbin/ldconfig
+
+%postun compat -p /sbin/ldconfig
+
+%endif
+
+%if 0%{?build_compat32}
+%post -n compat32-%{name} -p /sbin/ldconfig
+
+%postun -n compat32-%{name} -p /sbin/ldconfig
+
+%endif
+
+
+%files
+%doc NEWS README* THANKS
+%license AUTHORS COPYING.LIB LICENSING
+%if %{with fipstest}
+/%{_lib}/.libcrypt.so.%{soc}.hmac
+/%{_lib}/.libcrypt.so.%{sov}.hmac
+%endif
+/%{_lib}/libcrypt.so.%{soc}
+/%{_lib}/libcrypt.so.%{sov}
+%{_mandir}/man5/crypt.5.*
+
+
+%if %{with new_api} && %{with compat_pkg}
+%files          compat
+%if %{with fipstest}
+/%{_lib}/.libcrypt.so.%{csoc}.hmac
+/%{_lib}/.libcrypt.so.%{csov}.hmac
+%endif
+/%{_lib}/libcrypt.so.%{csoc}
+/%{_lib}/libcrypt.so.%{csov}
+%endif
+
+
+%files          devel
+%doc ChangeLog TODO
+/%{_lib}/lib*crypt.so
+%{_includedir}/*crypt.h
+%{_libdir}/pkgconfig/libcrypt.pc
+%{_libdir}/pkgconfig/%{name}.pc
+%{_mandir}/man3/crypt*.3*
+
+
+%files          static
+%if %{with fipstest}
+/%{_lib}/.lib*crypt.a.hmac
+%endif
+/%{_lib}/lib*crypt.a
+
+
+%if 0%{?build_compat32}
+%files -n       compat32-%{name}
+%if %{with fipstest}
+/%{_lib}/.libcrypt.so.%{soc}.hmac
+/%{_lib}/.libcrypt.so.%{sov}.hmac
+%endif
+/%{_lib}/libcrypt.so.%{soc}
+/%{_lib}/libcrypt.so.%{sov}
+
+
+%files -n       compat32-%{name}-devel
+/%{_lib}/lib*crypt.so
+%{_libdir}/pkgconfig/libcrypt.pc
+%{_libdir}/pkgconfig/%{name}.pc
+%endif
+
+
+%changelog
+* Sat Jan 19 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 4.4.2-6
+- initial build for Vine Linux.
+
+* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-5
+- Build the compat package with glibc hashing methods only
+- Add an option to disable the compat-package for future use
+
+* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-4
+- Bump SO-name for Fedora >= 30 and enable compat package (#1666033)
+- Add distribution README file
+- Update description of the compat package
+- Conditionally remove non-built hashing methods from description
+
+* Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-3
+- Remove architecture bits from Recommends
+
+* Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-2
+- Update summary
+
+* Sat Dec 22 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-1
+- New upstream release
+
+* Thu Dec 06 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.1-1
+- New upstream release
+
+* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-5
+- Sync -fno-plt patch with upstream commit
+
+* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-4
+- Backport upstream commit to fix a memory leak from a static pointer
+
+* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-3
+- Backport upstream PR to build with -fno-plt optimization
+
+* Mon Nov 26 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-2
+- Backport upstream commit to use a safer strcpy for the NT method
+- Backport upstream generating base64 encoded output for NT gensalt
+- Backport upstream commit to require less rbytes for NT gensalt
+- Backport upstream commit to test incremental hmac-sha256 computation
+- Add Recommends: mkpasswd for Fedora >= 30
+
+* Tue Nov 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-1
+- New upstream release
+
+* Wed Nov 14 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.4-1
+- New upstream release
+
+* Wed Nov 14 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.3-4
+- Bump release for proper obsoletion of former common sub-package
+
+* Wed Nov 14 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.3-3
+- Add two upstream patches with minor fixes
+- Add HMAC checksum file for the static library
+- Drop the common sub-package
+- Some spec-file optimizations
+
+* Tue Nov 13 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.3-2
+- Add a patch to define crypt_gensalt_r as macro, so applications
+  link the identical crypt_gensalt_rn directly
+
+* Sun Nov 11 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.3-1
+- New upstream release
+
+* Sun Nov 11 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.2-1
+- New upstream release
+
+* Sun Nov 11 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.1-2
+- Backport two patches from upstream fixing the gensalt function for
+  NT to properly terminate its returned output
+
+* Sat Nov 10 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.1-1
+- New upstream release
+
+* Sat Nov 10 2018 Björn Esser <besser82@fedoraproject.org> - 4.3.0-1
+- New upstream release
+
+* Fri Oct 26 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.3-1
+- New upstream release
+
+* Thu Oct 25 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.2-2
+- Add patch updating to recent development version
+- Run valgrind-memcheck
+- Use bootstrap script
+
+* Thu Oct 18 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.2-1
+- New upstream release
+
+* Mon Oct 01 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.1-3
+- Drop compat-devel package
+- Set configure options from globals
+
+* Sun Sep 30 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.1-2
+- Build out-of-tree
+- Split off noarch-bits into common sub-package
+- Update %%description
+- Prepare to remove legacy API from library and to provide a compatibilty
+  package for the legacy API
+
+* Sat Sep 29 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.1-1
+- New upstream release
+- Add new manpages
+
+* Sat Sep 29 2018 Björn Esser <besser82@fedoraproject.org> - 4.2.0-1
+- New upstream release
+
+* Fri Aug 24 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.2-1
+- New upstream release
+
+* Wed Aug 08 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.1-4
+- Move *.3 manpages to devel subpackage (#1613762)
+- Add needed Conflicts: man-pages < 4.15-3
+
+* Wed Aug 08 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.1-3
+- Make crypt{,_r} return NULL on failure (#1611784)
+
+* Sat Aug 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.1-2
+- Add manpages for crypt{,_r,_ra}.3 (#1610307)
+
+* Wed Aug 01 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.1-1
+- New upstream release
+
+* Fri Jul 13 2018 Björn Esser <besser82@fedoraproject.org> - 4.1.0-1
+- New upstream release
+
+* Fri Jul 13 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.1-6
+- Make testsuite fail on error again
+- Update patch0 with more upstream fixes
+
+* Fri Jul 13 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.1-5
+- Add patch to update to recent development branch
+- Re-enable SUNMD5 support as it is BSD licensed now
+- Build compatibility symbols for glibc only
+- Skip failing testsuite once
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri Jun 29 2018 Florian Weimer <fweimer@redhat.com> - 4.0.1-3
+- Remove CDDL from license list (#1592445)
+
+* Fri Jun 29 2018 Florian Weimer <fweimer@redhat.com> - 4.0.1-2
+- Remove SUNMD5 support (#1592445)
+
+* Wed May 16 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.1-1
+- New upstream release
+
+* Sat Feb 17 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-5
+- Switch to %%ldconfig_scriptlets
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Feb 01 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-3
+- Add patch to fix unintialize value in badsalt test
+
+* Wed Jan 31 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-2
+- Add patch to fix bcrypt test with GCC8
+
+* Sat Jan 27 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-1
+- New upstream release
+
+* Mon Jan 22 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.0.0-0.204.20180120git3436e7b
+- Fix Obsoletes
+
+* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.203.20180120git3436e7b
+- Update to new snapshot fixing cast-align
+
+* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.202.20180120gitde99d27
+- Update to new snapshot (rhbz#1536752)
+
+* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.201.20171109git15447aa
+- Use archful Obsoletes for libcrypt
+- Add versioned Requires on glibc packages not shipping libcrypt
+- Add comments about the packaging logic for replacing former libcrypt
+
+* Fri Jan 12 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.200.20171109git15447aa
+- Initial import (rhbz#1532794)
+- Add Obsoletes/Provides for libcrypt
+
+* Wed Jan 10 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.101.20171109git15447aa
+- Fix style of %%git_{rel,ver}
+
+* Tue Jan 09 2018 Björn Esser <besser82@fedoraproject.org> - 4.0.0-0.100.git20171109.15447aa
+- Initial rpm release (rhbz#1532794)
+- Start revision at 0.100 to superseed builds from COPR

+ 191 - 86
v/valgrind/valgrind-vl.spec

@@ -1,3 +1,5 @@
+%bcond_with check
+
 # Only arches that are supported upstream as multilib and that the distro
 # has multilib builds for should set build_multilib 1. In practice that
 # is only x86_64 and ppc64 (but not in fedora 21 and later, and never
@@ -15,23 +17,29 @@
 %global build_openmpi 0
 #endif
 
+%global run_full_regtest 0
+%global build_tools_devel 0
+
 # Don't run dwz or generate minisymtab, valgrind doesn't handle compressed
 # DWARF very well and it might read its own vgpreload libraries. Generating
 # minisymtabs doesn't really work for the staticly linked tools.
 %define _find_debuginfo_dwz_opts %{nil}
 %undefine _include_minidebuginfo
 
-Name: 		valgrind
-Version: 	3.13.0
-Release: 	1%{?_dist_release}
-Summary: 	Tool for finding memory management bugs in programs
-Summary(ja): 	プログラムのメモリ管理バグを発見するためのツール
+Name:           valgrind
+Version:        3.14.0
+Release:        1%{?_dist_release}
+Summary:        Tool for finding memory management bugs in programs
+Summary(ja):    プログラムのメモリ管理バグを発見するためのツール
 
-License: 	GPLv2+
-Group: 		Development/Debuggers
-URL: 		http://valgrind.org/
+Vendor:         Project Vine
+Distribution:   Vine Linux
+
+License:        GPLv2+
+Group:          Development/Debuggers
+URL:            http://valgrind.org/
 
-Source0: 	http://valgrind.org/downloads/%{name}-%{version}.tar.bz2
+Source0:        http://valgrind.org/downloads/%{name}-%{version}.tar.bz2
 
 # Needs investigation and pushing upstream
 Patch1: valgrind-3.9.0-cachegrind-improvements.patch
@@ -42,66 +50,75 @@ Patch2: valgrind-3.9.0-helgrind-race-supp.patch
 # Make ld.so supressions slightly less specific.
 Patch3: valgrind-3.9.0-ldso-supp.patch
 
-# KDE#381272  ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
-Patch4: valgrind-3.13.0-ppc64-check-no-vsx.patch
+# KDE#400490 s390x: Fix register allocation for VRs vs FPRs
+Patch4: valgrind-3.14.0-s390x-fix-reg-alloc-vr-vs-fpr.patch
 
-# KDE#381289 epoll_pwait can have a NULL sigmask.
-Patch5: valgrind-3.13.0-epoll_pwait.patch
+# KDE#400491 s390x: Sign-extend immediate operand of LOCHI and friends
+Patch5: valgrind-3.14.0-s390x-sign-extend-lochi.patch
 
-# KDE#381274 powerpc too chatty even with --sigill-diagnostics=no
-Patch6: valgrind-3.13.0-ppc64-diag.patch
+# KDE#397187 s390x: Add vector register support for vgdb
+Patch6: valgrind-3.14.0-s390x-vec-reg-vgdb.patch
 
-# KDE#381556 arm64: Handle feature registers access on 4.11 Linux kernel
-# Workaround that masks CPUID support in HWCAP on aarch64 (#1464211)
-Patch7: valgrind-3.13.0-arm64-hwcap.patch
+# KDE#385411 s390x: z13 vector floating-point instructions not implemented
+Patch7: valgrind-3.14.0-s390x-vec-float-point-code.patch
+Patch8: valgrind-3.14.0-s390x-vec-float-point-tests.patch
 
-# RHBZ#1466017 ARM ld.so index warnings.
-# KDE#381805 arm32 needs ld.so index hardwire for new glibc security fixes
-Patch8: valgrind-3.13.0-arm-index-hardwire.patch
+# KDE#401277 More bugs in z13 support
+Patch9: valgrind-3.14.0-s390z-more-z13-fixes.patch
 
-# KDE#381769 Use ucontext_t instead of struct ucontext
-Patch9: valgrind-3.13.0-ucontext_t.patch
+# KDE#386945 Bogus memcheck errors on ppc64(le) when using strcmp
+Patch10: valgrind-3.14.0-get_otrack_shadow_offset_wrk-ppc.patch
+Patch11: valgrind-3.14.0-new-strlen-IROps.patch
+Patch12: valgrind-3.14.0-ppc-instr-new-IROps.patch
+Patch13: valgrind-3.14.0-memcheck-new-IROps.patch
+Patch14: valgrind-3.14.0-ppc-frontend-new-IROps.patch
+Patch15: valgrind-3.14.0-transform-popcount64-ctznat64.patch
+Patch16: valgrind-3.14.0-enable-ppc-Iop_Sar_Shr8.patch
 
-# valgrind svn r16453 Fix some tests failure with GDB 8.0
-Patch10: valgrind-3.13.0-gdb-8-testfix.patch
+# KDE#401627 memcheck errors with glibc avx2 optimized wcsncmp
+Patch17: valgrind-3.14.0-wcsncmp.patch
 
-# valgrind svn r16454. disable vgdb poll in the child after fork
-Patch11: valgrind-3.13.0-disable-vgdb-child.patch
+# KDE#402006 mark helper regs defined in final_tidyup before freeres_wrapper
+# Prereq for KDE#386945
+Patch18: valgrind-3.14.0-final_tidyup.patch
 
-# KDE#382998 xml-socket doesn't work
-Patch12: valgrind-3.13.0-xml-socket.patch
+# KDE#386945 Bogus memcheck errors on ppc64(le) when using strcmp
+# See also patches 10 to 16 (yes, there are this many...)
+Patch19: valgrind-3.14.0-ppc64-ldbrx.patch
+Patch20: valgrind-3.14.0-ppc64-unaligned-words.patch
+Patch21: valgrind-3.14.0-ppc64-lxvd2x.patch
+Patch22: valgrind-3.14.0-ppc64-unaligned-vecs.patch
+Patch23: valgrind-3.14.0-ppc64-lxvb16x.patch
+Patch24: valgrind-3.14.0-set_AV_CR6.patch
+Patch25: valgrind-3.14.0-undef_malloc_args.patch
 
-# KDE#385334
-# PPC64, vpermr, xxperm, xxpermr fix Iop_Perm8x16 selector field
-# PPC64, revert the change to vperm instruction.
-# KDE#385183
-# PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp instructions
-# PPC64, Fix bug in vperm instruction.
-# KDE#385210
-# PPC64, Re-implement the vpermr instruction using the Iop_Perm8x16.
-# KDE#385208
-# PPC64, Use the vperm code to implement the xxperm inst.
-# PPC64, Replace body of generate_store_FPRF with C helper function.
-# PPC64, Add support for the Data Stream Control Register (DSCR)
-Patch13: valgrind-3.13.0-ppc64-vex-fixes.patch
+# KDE#401822 none/tests/ppc64/jm-vmx fails and produces assembler warnings
+Patch26: valgrind-3.14.0-jm-vmx-constraints.patch
 
-# Fix eflags handling in amd64 instruction tests
-Patch14: valgrind-3.13.0-amd64-eflags-tests.patch
+# commit 0c701ba2a Fix sigkill.stderr.exp for glibc-2.28.
+Patch27: valgrind-3.14.0-sigkill.patch
 
-# KDE#385868 ld.so _dl_runtime_resolve_avx_slow conditional jump warning
-Patch15: valgrind-3.13.0-suppress-dl-trampoline-sse-avx.patch
+# KDE#402048 Implement minimal ptrace support for ppc64[le]-linux.
+Patch28: valgrind-3.14.0-ppc64-ptrace.patch
 
-# Implement static TLS code for more platforms
-Patch16: valgrind-3.13.0-static-tls.patch
+# commit 43fe4bc23 arm64: Fix PTRACE_TRACEME
+Patch29: valgrind-3.14.0-arm64-ptrace-traceme.patch
 
-# KDE#386397 PPC64 valgrind truncates powerpc timebase to 32-bits.
-Patch17: valgrind-3.13.0-ppc64-timebase.patch
+# KDE#402134 - assert fail mc_translate.c (noteTmpUsesIn) Iex_VECRET on arm64
+Patch30: valgrind-3.14.0-mc_translate-vecret.patch
 
-# KDE#387773 - Files in .gnu_debugaltlink should be resolved relative to .debug
-Patch18: valgrind-3.13.0-debug-alt-file.patch
+# KDE#402481 vbit-test fails on x86 for Iop_CmpEQ64 iselInt64Expr Sar64
+Patch31: valgrind-3.14.0-vbit-test-sec.patch
+Patch32: valgrind-3.14.0-x86-Iop_Sar64.patch
 
-# KDE#387712 s390x cgijnl reports Conditional jump depends on uninit value
-Patch19: valgrind-3.13.0-s390-cgijnl.patch
+# KDE#402519 POWER 3.0 addex instruction incorrectly implemented
+Patch33: valgrind-3.14.0-power9-addex.patch
+
+# KDE#402480  Do not use %rsp in clobber list
+Patch34: valgrind-3.14.0-rsp-clobber.patch
+
+# commit 3528f8 Accept DW_TAG_subrange_type with DW_AT_count
+Patch35: valgrind-3.14.0-subrange_type-count.patch
 
 Buildroot: 	%{_tmppath}/%{name}-%{version}-root
 %if %{build_multilib}
@@ -218,6 +235,22 @@ Valgrind User Manual for details.
 %patch17 -p1
 %patch18 -p1
 %patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
 
 %build
 CC=gcc
@@ -229,20 +262,33 @@ ar r shared/libgcc/libgcc_s_32.a
 CC="gcc -B `pwd`/shared/libgcc/"
 %endif
 
-%define mpiccpath %{_libdir}/openmpi/*/bin/mpicc
+# Old openmpi-devel has version depended paths for mpicc.
+%if %{build_openmpi}
+%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6
+%define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/bin/mpicc
+%else
+%define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/*/bin/mpicc
+%endif
+%else
+# We explicitly don't want the libmpi wrapper. So make sure that configure
+# doesn't pick some random mpi compiler that happens to be installed.
+%define mpiccpath /bin/false
+%endif
 
 # Filter out some flags that cause lots of valgrind test failures.
 # Also filter away -O2, valgrind adds it wherever suitable, but
 # not for tests which should be -O0, as they aren't meant to be
 # compiled with -O2 unless explicitely requested. Same for any -mcpu flag.
 # Ideally we will change this to only be done for the non-primary build
-# and the test suite.
-OPTFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/ -fstack-protector / / g;s/ -Wp,-D_FORTIFY_SOURCE=2 / /g;s/ -O2 / /g;s/ -mcpu=\([a-z0-9]\+\) / /g;s/^ //;s/ $//'`"
+# and the test suite. Also disable strict symbol checks because the
+# vg_preload library will use hidden/undefined symbols from glibc
+# like __libc_freeres.
+%undefine _hardened_build
+%undefine _strict_symbol_defs_build
+OPTFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/ -fstack-protector\([-a-z]*\) / / g;s/ -Wp,-D_FORTIFY_SOURCE=2 / /g;s/ -O2 / /g;s/ -mcpu=\([a-z0-9]\+\) / /g;s/^ //;s/ $//'`"
 %configure CC="$CC" CFLAGS="$OPTFLAGS" CXXFLAGS="$OPTFLAGS" \
-%if %{build_openmpi}
-    --with-mpicc=%{mpiccpath} \
-%endif
-    GDB=%{_bindir}/gdb
+  --with-mpicc=%{mpiccpath} \
+  GDB=%{_bindir}/gdb
 
 make %{?_smp_mflags}
 
@@ -266,19 +312,31 @@ gcc $RPM_OPT_FLAGS -o close_fds close_fds.c
 
 %install
 rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+mkdir docs/installed
+mv $RPM_BUILD_ROOT%{_datadir}/doc/valgrind/* docs/installed/
+rm -f docs/installed/*.ps
+
 
-rm -rf docs.installed
-mkdir docs.installed
-mv $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/* docs.installed/
-rm -f docs.installed/*.ps
+# We want the MPI wrapper installed under the openmpi libdir so the script
+# generating the MPI library requires picks them up and sets up the right
+# openmpi libmpi.so requires. Install symlinks in the original/upstream
+# location for backwards compatibility.
+%if %{build_openmpi}
+pushd $RPM_BUILD_ROOT%{_libdir}
+mkdir -p openmpi/valgrind
+cd valgrind
+mv libmpiwrap-%{valarch}-linux.so ../openmpi/valgrind/
+ln -s ../openmpi/valgrind/libmpiwrap-%{valarch}-linux.so
+popd
+%endif
 
 %if "%{valsecarch}" != ""
 pushd $RPM_BUILD_ROOT%{_libdir}/valgrind/
 rm -f *-%{valsecarch}-* || :
 for i in *-%{valarch}-*; do
-    j=`echo $i | sed 's/-%{valarch}-/-%{valsecarch}-/'`
-    ln -sf ../../lib/valgrind/$j $j
+  j=`echo $i | sed 's/-%{valarch}-/-%{valsecarch}-/'`
+  ln -sf ../../lib/valgrind/$j $j
 done
 popd
 %endif
@@ -286,32 +344,58 @@ popd
 # remove unuse files
 rm -f $RPM_BUILD_ROOT%{_libdir}/valgrind/*.supp.in
 
-
+%if %{build_tools_devel}
 %ifarch %{ix86} x86_64
 # To avoid multilib clashes in between i?86 and x86_64,
 # tweak installed <valgrind/config.h> a little bit.
-for i in HAVE_PTHREAD_CREATE_GLIBC_2_0 HAVE_PTRACE_GETREGS ; do
+for i in HAVE_PTHREAD_CREATE_GLIBC_2_0 HAVE_PTRACE_GETREGS HAVE_AS_AMD64_FXSAVE64 \
+         ; do
   sed -i -e 's,^\(#define '$i' 1\|/\* #undef '$i' \*/\)$,#ifdef __x86_64__\n# define '$i' 1\n#endif,' \
-      $RPM_BUILD_ROOT%{_includedir}/valgrind/config.h
+    $RPM_BUILD_ROOT%{_includedir}/valgrind/config.h
 done
 %endif
+%else
+# Remove files we aren't going to package.
+# See tools-devel files.
+rm $RPM_BUILD_ROOT%{_includedir}/valgrind/config.h
+rm $RPM_BUILD_ROOT%{_includedir}/valgrind/libvex*h
+rm $RPM_BUILD_ROOT%{_includedir}/valgrind/pub_tool_*h
+rm -rf $RPM_BUILD_ROOT%{_includedir}/valgrind/vki
+rm $RPM_BUILD_ROOT%{_libdir}/valgrind/*.a
+%endif
 
+# We don't want debuginfo generated for the vgpreload libraries.
+# Turn off execute bit so they aren't included in the debuginfo.list.
+# We'll turn the execute bit on again in %%files.
+chmod 644 $RPM_BUILD_ROOT%{_libdir}/valgrind/vgpreload*-%{valarch}-*so
 
+
+%if %{with check}
 %check
-# Make sure a basic binary runs.
-./vg-in-place /bin/true
+# Make sure a basic binary runs. There should be no errors.
+./vg-in-place --error-exitcode=1 /bin/true
+
+# Build the test files with the software collection compiler if available.
+%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
+# Make sure no extra CFLAGS, CXXFLAGS or LDFLAGS leak through,
+# the testsuite sets all flags necessary. See also configure above.
+make %{?_smp_mflags} CFLAGS="" CXXFLAGS="" LDFLAGS="" check
 
-# Make sure no extra CFLAGS leak through, the testsuite sets all flags
-# necessary. See also configure above.
-make %{?_smp_mflags} CFLAGS="" check || :
+# Workaround https://bugzilla.redhat.com/show_bug.cgi?id=1434601
+# for gdbserver tests.
+export PYTHONCOERCECLOCALE=0
 
 echo ===============TESTING===================
-./close_fds make regtest || :
+%if 0%{?run_full_regtest}
+  ./close_fds make regtest || :
+%else
+  ./close_fds make nonexp-regtest || :
+%endif
 
 # Make sure test failures show up in build.log
 # Gather up the diffs (at most the first 20 lines for each one)
 MAX_LINES=20
-diff_files=`find . -name '*.diff' | sort`
+diff_files=`find */tests -name '*.diff*' | sort`
 if [ z"$diff_files" = z ] ; then
    echo "Congratulations, all tests passed!" >> diffs
 else
@@ -330,14 +414,17 @@ fi
 cat diffs
 echo ===============END TESTING===============
 
+%endif
+
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
 
 %files
 %defattr(-,root,root)
-%doc COPYING NEWS README_*
-%doc docs.installed/html docs.installed/*.pdf
+%license COPYING
+%doc NEWS README_*
+%doc docs/installed/html docs/installed/*.pdf
 %{_bindir}/*
 %dir %{_libdir}/%{name}
 %{_libdir}/%{name}/*[^ao]
@@ -346,20 +433,38 @@ echo ===============END TESTING===============
 
 %files devel
 %defattr(-,root,root)
-%{_includedir}/%{name}
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/*.a
-%{_libdir}/pkgconfig/%{name}.pc
+%dir %{_includedir}/valgrind
+%{_includedir}/valgrind/valgrind.h
+%{_includedir}/valgrind/callgrind.h
+%{_includedir}/valgrind/drd.h
+%{_includedir}/valgrind/helgrind.h
+%{_includedir}/valgrind/memcheck.h
+%{_libdir}/pkgconfig/valgrind.pc
+
+%if %{build_tools_devel}
+%files tools-devel
+%{_includedir}/valgrind/config.h
+%{_includedir}/valgrind/libvex*h
+%{_includedir}/valgrind/pub_tool_*h
+%{_includedir}/valgrind/vki
+%dir %{_libdir}/valgrind
+%{_libdir}/valgrind/*.a
+%endif
 
 %if %{build_openmpi}
 %files openmpi
 %defattr(-,root,root)
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/libmpiwrap*.so
+%dir %{_libdir}/valgrind
+%{_libdir}/openmpi/valgrind/libmpiwrap*.so
+%{_libdir}/valgrind/libmpiwrap*.so
 %endif
 
 
 %changelog
+* Tue Jan 22 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.14.0-1
+- dropped Patch4-19.
+- import Patch4-35 from rawhide.
+
 * Fri Dec 22 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.13.0-1
 - updated to 3.13.0.
 - replaced all Patches (from rawhide).

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