--- /dev/null
+--- rpm-4.16.0/installplatform.orig 2020-10-24 21:48:07.586493242 +0200
++++ rpm-4.16.0/installplatform 2020-10-24 21:48:23.069703643 +0200
+@@ -207,6 +207,10 @@
+ LIB=${LIB}x32
+ fi
+
++ if [ "$OS" = "linux" ] && [ "$CANONARCH" = "aarch64" ]; then
++ LIB=${LIB}64
++ fi
++
+ PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
+ [ -d $PPD ] || mkdir -p $PPD
+
#!/bin/sh
#
-# bug reports send to pzurowski@pld-linux.org or pld-devel-* lists
+# Please send bug reports to pzurowski@pld-linux.org or pld-devel-* lists
#
# 2004, GPL 2+
#
####################################################### CONFIG ########
-# default paramaters
+# default parameters
##########################
BANNERDIR="/var/lib/banner/"
STDOUT="1" # stdout by default
#STDOUT="2" # stderr by default
-# config paramaeters
+# config parameters
##########################
if [ -r $CONFIG ]; then
#################################################### FUNCTIONS ########
-Usage()
-{
+Usage() {
cat << EOF
-Usage: $(basename $0) [opitions] [banners]
+Usage: $(basename $0) [options] [banners]
EOF
}
-Help()
-{
+
+Help() {
Usage
cat << EOF
--a
---all - all banners
---delete - delete wanted banners
--e
---exclude - exclude following banners (useful with -a)
--h
---help - show this help
--i
---include - cancel effect of -e (EXCLUDED banners will remain excluded)
--m
---make - make a brand-new banner named as following parameter [1] (from stdin)
--M - same as above, but append if file exists
--n
---names - show names of the banners
---newer - all choosen banners should be newer than following parameter in seconds
---older - all choosen banners should be older than following parameter in seconds
--s
---show - show wanted banners
---stderr - send banner to stderr instead of stdout (or other)
---stdout - send banner to stdout instead of stderr (or other)
--u
---usage - show short help
+-a, --all - all banners
+-d, --delete - delete specified banners
+-e, --exclude - exclude following banners (useful with -a)
+-h, --help - show this help
+-i, --include - cancel effect of -e (EXCLUDED banners will remain excluded)
+-m, --make - make a brand-new banner named as following parameter [1] (from stdin)
+-M - same as above, but append if file exists
+-n, --names - show names of the banners
+--newer - all choosen banners should be newer than following parameter in seconds
+--older - all choosen banners should be older than following parameter in seconds
+-s, --show - show specified banners
+--stderr - send banner to stderr instead of stdout (or other)
+--stdout - send banner to stdout instead of stderr (or other)
+-u, --usage - show short help
-[1] - if there will be no slash ('/') in name then config dir will be used,
- else -- specified.
+[1] if there is no slash ('/') in the given name default dir ($BANNERDIR) is used,
+ otherwise the one that's specified
EOF
}
-Unknown_para()
-{
+
+Unknown_para() {
cat << EOF
Unknown parameter $1
EOF
Help
}
-check_banners_mtime()
-{
+check_banners_mtime() {
BANNERS="$1"
OLDER="$2"
NEWER="$3"
echo $BANNER
done
}
-delete_banners()
-{
+
+delete_banners() {
BANNERS="$1"
rm -rf $(get_banner_location_list "$BANNER")
}
-get_all_banner_list()
-{
+
+get_all_banner_list() {
ls "$BANNERDIR" | grep -E -v "$EXCLUDEFILES"
}
-get_banner_list()
-{
+
+get_banner_list() {
BANNERS="$1"
NOBANNERS="$2"
for BANNER in $BANNERS; do
- if [ -r "$BANNERDIR/$BANNER" ];then
+ if [ -r "$BANNERDIR/$BANNER" ]; then
echo $NOBANNERS | grep -q $BANNER || echo $BANNER
fi
done
}
-get_banner_location_list()
-{
+
+get_banner_location_list() {
BANNERS="$1"
for BANNER in $BANNERS; do
echo "$BANNERDIR/$BANNER"
done
}
-make_banner()
-{
+
+make_banner() {
BANNER="$1"
SHOW="$2"
if [ ! -d "${BANNER%/*}" ]; then
else
echo "$data" >> $BANNER
fi
- if [ $SHOW -eq 1 ];then
+ if [ $SHOW -eq 1 ]; then
echo "$data"
fi
}
-show_banner()
-{
- cat $BANNERDIR/$1 >&$STDOUT
+
+show_banner() {
+ cat "$BANNERDIR/$1" >&$STDOUT
}
-show_banners()
-{
+
+show_banners() {
for BANNER in $*; do
show_banner $BANNER
done
}
-######################################################## MAIN ########
-while [ ! -z $1 ]; do
- case $1 in
+
+######################################################### MAIN ########
+while [ -n "$1" ]; do
+ case "$1" in
-a|--all)
ALL_BANNERS=1
;;
- --delete)
+ -d|--delete)
NEED_BANNER_LIST=1
ACTION="delete"
;;
;;
-m|--make|-M)
NEED_BANNER_LIST=0
- if [[ $2 != */* ]]; then
+ if [[ "$2" != */* ]]; then
NEW_BANNER="$BANNERDIR/${2##*/}"
else
NEW_BANNER="$2"
fi
ACTION="make"
- if [ "$1" == "-M" ];then
+ if [ "$1" = "-M" ]; then
NEW_APPEND=1
else
NEW_APPEND=0
fi
- if [ -z "$NEW_BANNER" ];then
+ if [ -z "$NEW_BANNER" ]; then
Help
exit 2
fi
--newer)
NEED_MTIME_CHECK=1
CHOOSE_NEWER="$2"
- if [ -z "$CHOOSE_NEWER" ];then
+ if [ -z "$CHOOSE_NEWER" ]; then
Help
exit 2
fi
--older)
NEED_MTIME_CHECK=1
CHOOSE_OLDER="$2"
- if [ -z "$CHOOSE_OLDER" ];then
+ if [ -z "$CHOOSE_OLDER" ]; then
Help
exit 2
fi
exit 1
;;
*)
- if [ $EXCLUDE_FLAG -eq 0 ];then
+ if [ $EXCLUDE_FLAG -eq 0 ]; then
BANNERS="$BANNERS ${1##*/}"
else
NOBANNERS="$NOBANNERS ${1##*/}"
if [ $ALL_BANNERS -ne 0 ]; then
BANNERS=`get_all_banner_list`
fi
-if [ $NEED_BANNER_LIST -ne 0 ];then
+if [ $NEED_BANNER_LIST -ne 0 ]; then
BANNER_LIST=`get_banner_list "$BANNERS" "$NOBANNERS"`
fi
-if [ $NEED_MTIME_CHECK -ne 0 ];then
+if [ $NEED_MTIME_CHECK -ne 0 ]; then
BANNER_LIST=`check_banners_mtime "$BANNER_LIST" "$CHOOSE_OLDER" "$CHOOSE_NEWER"`
fi
case $ACTION in
"delete")
- delete_banners $BANNER_LIST;
+ delete_banners $BANNER_LIST
;;
"make")
- make_banner $NEW_BANNER $NEW_SHOW;
+ make_banner $NEW_BANNER $NEW_SHOW
;;
"names")
- echo $BANNER_LIST;
+ echo $BANNER_LIST
;;
"show")
- show_banners $BANNER_LIST;
+ show_banners $BANNER_LIST
+ ;;
+ "")
+ Help
;;
esac
-
-
-
--- /dev/null
+#!/bin/sh
+
+ROOTDIR=
+if [ "$1" = "-r" ]; then
+ shift
+ ROOTDIR="$1"
+
+ if [ ! -d "$ROOTDIR" ]; then
+ echo "Specified root directory ($ROOTDIR) does not exist!"
+ echo "Bailing out!"
+ exit
+ fi
+fi
+
+if ! /usr/lib/rpm/rpmdb_reset -r lsn "$ROOTDIR"/var/lib/rpm/Packages ; then
+ echo
+ echo "rpm database conversion failed!"
+ echo
+ echo "You have to run:"
+ echo
+ echo " /usr/lib/rpm/rpmdb_reset -r lsn /var/lib/rpm/Packages"
+ echo " /bin/rm -f /var/lib/rpm/__db.00*"
+ echo " /bin/rm -rf /var/lib/rpm/log"
+ echo " /usr/bin/rpmdb --rebuilddb"
+ echo
+else
+ /bin/rm --interactive=never -f "$ROOTDIR"/var/lib/rpm/__db.00* >/dev/null 2>/dev/null || :
+ /bin/rm --interactive=never -rf "$ROOTDIR"/var/lib/rpm/log >/dev/null 2>/dev/null || :
+ /bin/rm --interactive=never -rf "$ROOTDIR"/var/lib/rpm/tmp >/dev/null 2>/dev/null || :
+
+ if ! /usr/bin/rpmdb --rebuilddb ${ROOTDIR:+--root="$ROOTDIR"}; then
+ echo
+ echo "rpm database conversion failed!"
+ echo "You have to run /usr/bin/rpmdb manually"
+ echo
+ fi
+fi
+++ /dev/null
-#!/usr/bin/ruby
-#--
-# Copyright 2010 Per Øyvind Karlsen <peroyvind@mandriva.org>
-# This program is free software. It may be redistributed and/or modified under
-# the terms of the LGPL version 2.1 (or later).
-#++
-
-require 'optparse'
-require 'rubygems'
-
-# Write the .gemspec specification (in Ruby)
-def writespec(spec)
- file_name = spec.full_name.untaint + '.gemspec'
- File.open(file_name, "w") do |file|
- file.puts spec.to_ruby_for_cache
- end
- print "Wrote: %s\n" % file_name
-end
-
-# make gemspec self-contained
-if ARGV[0] == "spec-dump"
- spec = eval(File.read(ARGV[1]))
- writespec(spec)
- exit(0)
-end
-
-if ARGV[0] == "build" or ARGV[0] == "install" or ARGV[0] == "spec"
- require 'yaml'
- require 'zlib'
-
- filter = nil
- opts = nil
- keepcache = false
- fixperms = false
- gemdir = nil
- dry_run = false
- files = []
- argv = ARGV[1..-1]
- # Push this into some environment variables as the modified classes doesn't
- # seem to be able to access our global variables.. </lameworkaround>
- ENV['GEM_MODE'] = ARGV[0]
- if ARGV[0] == "build"
- opts = OptionParser.new("#{$0} <--filter PATTERN>")
- opts.on("-f", "--filter PATTERN", "Filter pattern to use for gem files") do |val|
- filter = val
- end
- opts.on("-j", "--jobs JOBS", "Number of jobs to run simultaneously.") do |val|
- ENV['jobs'] = "-j"+val
- end
- opts.on("--dry-run", "Only show the files the gem will include") do
- ARGV.delete("--dry-run")
- dry_run = true
- end
- elsif ARGV[0] == "install"
- opts = OptionParser.new("#{$0} <--keep-cache>")
- opts.on("--keep-cache", "Don't delete gem copy from cache") do
- ARGV.delete("--keep-cache")
- keepcache = true
- end
- opts.on("--fix-permissions", "Force standard permissions for files installed") do
- ARGV.delete("--fix-permissions")
- fixperms = true
- end
- opts.on("-i", "--install-dir GEMDIR", "Gem repository directory") do |val|
- gemdir = val
- end
- end
- while argv.length > 0
- begin
- opts.parse!(argv)
- rescue OptionParser::InvalidOption => e
- e.recover(argv)
- end
- argv.delete_at(0)
- end
-
- file_data = Zlib::GzipReader.open("metadata.gz") {|io| io.read}
- header = YAML::load(file_data)
- body = {}
- # I don't know any better.. :/
- header.instance_variables.each do |iv|
- body[iv.to_s.sub(/^@/,'')] = header.instance_variable_get(iv)
- end
-
- spec = Gem::Specification.from_yaml(YAML.dump(header))
-
- if ARGV[0] == "spec"
- writespec(spec)
- exit(0)
- end
-
- if ARGV[0] == "install"
- system("gem %s %s.gem" % [ARGV.join(' '), spec.full_name])
- if !keepcache
- require 'fileutils'
- FileUtils.rm_rf("%s/cache" % gemdir)
- end
- if fixperms
- chmod = "chmod u+r,u+w,g-w,g+r,o+r -R %s" % gemdir
- print "\nFixing permissions:\n\n%s\n" % chmod
- system("%s" % chmod)
- print "\n"
- end
- end
-
- if body['extensions'].size > 0
- require 'rubygems/ext'
- module Gem::Ext
- class Builder
- def self.make(dest_path, results)
- make_program = ENV['make']
- unless make_program then
- make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
- end
- cmd = make_program
- if ENV['GEM_MODE'] == "build"
- cmd += " %s" % ENV['jobs']
- elsif ENV['GEM_MODE'] == "install"
- cmd += " DESTDIR='%s' install" % ENV['DESTDIR']
- end
- results << cmd
- results << `#{cmd} #{redirector}`
-
- raise Gem::ExtensionBuildError, "make failed:\n\n#{results}" unless
- $?.success?
- end
- end
- end
-
- require 'rubygems/installer'
- module Gem
- class Installer
- def initialize(spec, options={})
- @gem_dir = Dir.pwd
- @spec = spec
- end
- end
- class ConfigFile
- def really_verbose
- true
- end
- end
- end
-
- unless dry_run
- Gem::Installer.new(spec).build_extensions
- else
- for ext in body['extensions']
- files.push(ext[0..ext.rindex("/")-1]+".so")
- end
- end
-
- body['extensions'].clear()
- end
- if ARGV[0] == "build"
- body['test_files'].clear()
-
- # We don't want ext/ in require_paths, it will only contain content for
- # building extensions which needs to be installed in sitearchdir anyways..
- idx = 0
- for i in 0..body['require_paths'].size()-1
- if body['require_paths'][idx].match("^ext(/|$)")
- body['require_paths'].delete_at(idx)
- else
- idx += 1
- end
- end
-
- # We'll get rid of all the files we don't really need to install
- idx = 0
- for i in 0..body['files'].size()-1
- if filter and body['files'][idx].match(filter)
- match = true
- else
- match = false
- for path in body['require_paths']
- if body['files'][idx].match("^%s/" % path)
- match = true
- end
- end
- end
- if !match
- body['files'].delete_at(idx)
- else
- idx += 1
- end
- end
-
- spec = Gem::Specification.from_yaml(YAML.dump(header))
- unless dry_run
- Gem::Builder.new(spec).build
- else
- files.concat(spec.files)
- print "%s\n" % files.join("\n")
- end
- end
-end
-diff -urN rpm.org/rpmrc.in rpm/rpmrc.in
---- rpm.org/rpmrc.in 2004-06-14 11:41:06.654241680 +0200
-+++ rpm/rpmrc.in 2004-06-14 11:42:26.617085480 +0200
-@@ -186,12 +186,12 @@
+--- rpm-4.16.0/installplatform.orig 2020-10-27 00:28:54.592595565 +0100
++++ rpm-4.16.0/installplatform 2020-10-27 00:31:27.676694730 +0100
+@@ -76,7 +76,7 @@
+ i?86|pentium?|athlon|geode)
+ ISANAME=x86
+ ISABITS=32
+- CANONARCH=i386
++ CANONARCH=${ARCH}
+ CANONCOLOR=0
+ ;;
+ x86_64|amd64|ia32e)
+--- rpm-4.16.0/rpmrc.in~ 2020-10-27 22:14:37.000000000 +0100
++++ rpm-4.16.0/rpmrc.in 2020-10-27 22:37:49.273277848 +0100
+@@ -302,13 +302,13 @@
buildarchtranslate: osfmach3_i486: i386
buildarchtranslate: osfmach3_i386: i386
-buildarchtranslate: athlon: i386
+-buildarchtranslate: geode: i386
-buildarchtranslate: pentium4: i386
-buildarchtranslate: pentium3: i386
-buildarchtranslate: i686: i386
-buildarchtranslate: i586: i386
-buildarchtranslate: i486: i386
+buildarchtranslate: athlon: athlon
++buildarchtranslate: geode: geode
+buildarchtranslate: pentium4: pentium4
+buildarchtranslate: pentium3: pentium3
+buildarchtranslate: i686: i686
buildarchtranslate: i386: i386
buildarchtranslate: alphaev5: alpha
-@@ -206,8 +206,9 @@
- buildarchtranslate: sun4d: sparc
- buildarchtranslate: sun4m: sparc
- buildarchtranslate: sparcv8: sparc
--buildarchtranslate: sparcv9: sparc
-+buildarchtranslate: sparcv9: sparcv9
- buildarchtranslate: sun4u: sparc64
-+buildarchtranslate: sparc64: sparc64
-
- buildarchtranslate: osfmach3_ppc: ppc
- buildarchtranslate: powerpc: ppc
--- /dev/null
+# Customized rpm macros - global for host
+#
+# A colon separated list of desired locales to be installed;
+# "all" means install all locale specific files.
+#
+#%%_install_langs pl_PL:en_US
--- /dev/null
+# customized rpm macros - global for host
+#
+# remove or replace with file_contexts path if you want to use custom
+# SELinux file contexts policy instead of one stored in packages payload
+%_install_file_context_path %{nil}
+%_verify_file_context_path %{nil}
+
+# If non-zero (default), all erasures will be automagically repackaged.
+#%_repackage_all_erasures 0
+
+# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
+# marked as %doc should be installed.
+#%_excludedocs 1
+#
+# A colon separated list of paths where files should *not* be installed.
+# Usually, these are (network) file system mount points.
+# For static /dev not to update perms if upgraded and tmpfs mounted
+#%_netsharedpath /dev/shm:/proc:/dev:/sys
+++ /dev/null
-%define __php_provides /usr/lib/rpm/php.prov
-# define 'php_req_new' in ~/.rpmmacros to use php version of req finder
-%define __php_requires env PHP_MIN_VERSION=%{?php_min_version} /usr/lib/rpm/php.req%{?php_req_new:.php}
+++ /dev/null
-backport --nopretrans, --noposttrans options
-
---- rpm-4.5/lib/poptI.c~ 2016-12-26 23:05:38.000000000 +0200
-+++ rpm-4.5/lib/poptI.c 2016-12-26 23:07:43.315470552 +0200
-@@ -303,6 +303,10 @@
- { "noscripts", '\0', 0, NULL, RPMCLI_POPT_NOSCRIPTS,
- N_("do not execute package scriptlet(s)"), NULL },
-
-+ { "nopretrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
-+ &rpmIArgs.transFlags, RPMTRANS_FLAG_NOPRETRANS,
-+ N_("do not execute %%pretrans scriptlet (if any)"), NULL },
-+
- { "nopre", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
- RPMTRANS_FLAG_NOPRE,
- N_("do not execute %%pre scriptlet (if any)"), NULL },
-@@ -315,6 +319,9 @@
- { "nopostun", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
- RPMTRANS_FLAG_NOPOSTUN,
- N_("do not execute %%postun scriptlet (if any)"), NULL },
-+ { "noposttrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
-+ &rpmIArgs.transFlags, RPMTRANS_FLAG_NOPOSTTRANS,
-+ N_("do not execute %%postrans scriptlet (if any)"), NULL },
-
- { "nodigest", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_NODIGEST,
- N_("don't verify package digest(s)"), NULL },
---- rpm-4.5/lib/rpmlib.h~ 2016-12-26 23:24:14.000000000 +0200
-+++ rpm-4.5/lib/rpmlib.h 2016-12-26 23:27:26.960081925 +0200
-@@ -943,7 +943,8 @@
-
- /* 26 unused */
- RPMTRANS_FLAG_NOFDIGESTS = (1 << 27), /*!< from --nofdigests */
-- /* 28-29 unused */
-+ RPMTRANS_FLAG_NOPRETRANS = (1 << 28), /*!< from --nopretrans */
-+ RPMTRANS_FLAG_NOPOSTTRANS = (1 << 29), /*!< from --noposttrans */
- RPMTRANS_FLAG_NOCONFIGS = (1 << 30), /*!< from --noconfigs */
- /* 31 unused */
- } rpmtransFlags;
--- /dev/null
+--- rpm-4.16.0/rpm.pc.in.orig 2020-05-28 12:04:25.000000000 +0200
++++ rpm-4.16.0/rpm.pc.in 2020-10-18 23:32:46.339081527 +0200
+@@ -11,6 +11,6 @@
+ URL: http://rpm.org
+ Requires.private: @ZSTD_REQUIRES@
+ # Conflicts:
+-Cflags: -I${includedir}
+-Libs: -L${libdir} -lrpm -lrpmio
++Cflags: -I${includedir}/rpm
++Libs: -L${libdir} -lrpm -lrpmio -lrpmbuild
+ Libs.private: -lpopt -lrt -lpthread @WITH_LZMA_LIB@ @WITH_DB_LIB@ @WITH_BZ2_LIB@ @WITH_ZLIB_LIB@ @WITH_BEECRYPT_LIB@ @WITH_NSS_LIB@ @LUA_LIBS@
--- /dev/null
+--- rpm-4.15.1/python/setup.py.in.orig 2019-06-26 23:17:31.000000000 +0900
++++ rpm-4.15.1/python/setup.py.in 2020-01-01 01:58:28.121517896 +0900
+@@ -12,17 +12,8 @@
+ out.append(token[2:])
+ return out
+
+-cflags = ['-std=c99', '-Wno-strict-aliasing']
+-additional_link_args = []
+-
+-# See if we're building in-tree
+-if os.access('Makefile.am', os.F_OK):
+- cflags.append('-I../include')
+- additional_link_args.extend(['-Wl,-L../rpmio/.libs',
+- '-Wl,-L../lib/.libs',
+- '-Wl,-L../build/.libs',
+- '-Wl,-L../sign/.libs'])
+- os.environ['PKG_CONFIG_PATH'] = '..'
++cflags = ['-std=c99', '-Wno-strict-aliasing', '-I../include']
++os.environ['PKG_CONFIG_PATH'] = '..'
+
+ rpmmod = Extension('rpm._rpm',
+ sources = ['header-py.c', 'rpmds-py.c', 'rpmfd-py.c',
+@@ -33,11 +24,9 @@
+ 'rpmte-py.c', 'rpmts-py.c', 'rpmver-py.c',
+ 'spec-py.c',
+ 'rpmmodule.c'],
+- include_dirs = pkgconfig('--cflags'),
+- library_dirs = pkgconfig('--libs-only-L'),
++ library_dirs = ['../rpmio/.libs', '../lib/.libs', '../build/.libs', '../sign/.libs'],
+ libraries = pkgconfig('--libs-only-l') + ['rpmbuild', 'rpmsign'],
+ extra_compile_args = cflags,
+- extra_link_args = additional_link_args
+ )
+
+ setup(name='@PACKAGE_NAME@',
+++ /dev/null
---- rpm-4.5/scripts/pythondeps.sh 2007-05-25 20:36:39.000000000 +0300
-+++ rpm-4.5/scripts/pythondeps.sh 2010-03-21 14:07:18.049336515 +0200
-@@ -5,7 +5,8 @@
- exit 0
- }
-
--PYVER=`python -c "import sys; v=sys.version_info[:2]; print '%d.%d'%v"`
-+# $PYVER is exported by rpm macro
-+PYVER=${PYVER:-$(python -c "import sys; print '%d.%d' % sys.version_info[:2]")}
- case $1 in
- -P|--provides)
- shift
---- rpm-4.5/macros.in~ 2010-03-21 14:03:42.559283734 +0200
-+++ rpm-4.5/macros.in 2010-03-21 14:05:18.419287370 +0200
-@@ -1401,8 +1401,8 @@
- #
- # Note: Used iff _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--%__python_provides %{_rpmhome}/pythondeps.sh --provides
--%__python_requires %{_rpmhome}/pythondeps.sh --requires
-+%__python_provides /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --provides
-+%__python_requires /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --requires
-
- # Useful macros for building *.rpm python packages (for python > 1.6).
- #
+++ /dev/null
-diff -ur rpm-4.5/Makefile.am rpm-4.5-ac/Makefile.am
---- rpm-4.5/Makefile.am 2012-01-26 22:11:55.875577134 +0100
-+++ rpm-4.5-ac/Makefile.am 2012-01-26 22:10:47.855842412 +0100
-@@ -45,7 +45,8 @@
- bin_PROGRAMS = rpm rpmbuild
-
- pkglibdir = @USRLIBRPM@
--pkglib_DATA = rpmpopt macros
-+pkgdatadir = @USRLIBRPM@
-+pkgdata_DATA = rpmpopt macros
-
- noinst_HEADERS = build.h debug.h system.h
-
-diff -ur rpm-4.5/scripts/Makefile.am rpm-4.5-ac/scripts/Makefile.am
---- rpm-4.5/scripts/Makefile.am 2012-01-26 22:11:55.752244281 +0100
-+++ rpm-4.5-ac/scripts/Makefile.am 2012-01-26 22:07:08.238669872 +0100
-@@ -27,7 +27,8 @@
- bin_SCRIPTS = gendiff rpm2cpio
-
- pkglibdir = @USRLIBRPM@
--pkglib_SCRIPTS = \
-+pkgbindir = @USRLIBRPM@
-+pkgbin_SCRIPTS = \
- brp-compress brp-python-bytecompile brp-java-gcjcompile \
- brp-strip brp-strip-comment-note brp-nobuildrootpath \
- brp-strip-shared brp-strip-static-archive brp-sparc64-linux \
-diff -ur rpm-4.5/tools/Makefile.am rpm-4.5-ac/tools/Makefile.am
---- rpm-4.5/tools/Makefile.am 2012-01-26 22:11:55.748910960 +0100
-+++ rpm-4.5-ac/tools/Makefile.am 2012-01-26 22:11:02.329119298 +0100
-@@ -23,7 +23,8 @@
- bin_PROGRAMS = rpmdigest rpmmtree rpmrepo
-
- pkglibdir = @USRLIBRPM@
--pkglib_PROGRAMS = rpmdeps @WITH_LIBDWARF_DEBUGEDIT@
-+pkgbindir = @USRLIBRPM@
-+pkgbin_PROGRAMS = rpmdeps @WITH_LIBDWARF_DEBUGEDIT@
-
- convertdb1_SOURCES = convertdb1.c
-
+++ /dev/null
---- rpm/installplatform.org 2006-10-17 22:52:24.253936250 +0200
-+++ rpm/installplatform 2006-10-17 22:52:29.542266750 +0200
-@@ -35,7 +35,7 @@
- sparc*) SUBSTS='s_sparc\(64\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;;
- powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;;
- s390*) SUBSTS='s_s390x_s390_ s_s390\([^x]\|$\)_s390x\1_' ;;
-- x86_64|amd64|ia32e) SUBSTS='s,x86_64,ia32e, s,x86_64,amd64,' ;;
-+ x86_64|amd64|ia32e) SUBSTS='s,x86_64,x86_64, s,x86_64,ia32e, s,x86_64,amd64,' ;;
- *) SUBSTS=y___ ;;
- esac
-
+++ /dev/null
-diff -urN rpm-4.4.9.org/build/Makefile.am rpm-4.4.9/build/Makefile.am
---- rpm-4.4.9.org/build/Makefile.am 2007-05-19 14:44:43.000000000 +0200
-+++ rpm-4.4.9/build/Makefile.am 2007-11-15 01:51:35.501378544 +0100
-@@ -37,6 +37,7 @@
- $(top_builddir)/lib/librpm.la \
- $(top_builddir)/rpmdb/librpmdb.la \
- $(top_builddir)/rpmio/librpmio.la \
-+ @WITH_MAGIC_LIB@ \
- @WITH_LIBELF_LIB@
-
- if HAVE_LD_VERSION_SCRIPT
-diff -urN rpm-4.4.9.org/lib/Makefile.am rpm-4.4.9/lib/Makefile.am
---- rpm-4.4.9.org/lib/Makefile.am 2007-05-19 13:54:06.000000000 +0200
-+++ rpm-4.4.9/lib/Makefile.am 2007-11-15 01:52:19.806906700 +0100
-@@ -46,6 +46,7 @@
- librpm_la_LDFLAGS = -no-undefined -release $(LT_CURRENT).$(LT_REVISION) $(LDFLAGS) \
- $(top_builddir)/rpmdb/librpmdb.la \
- $(top_builddir)/rpmio/librpmio.la \
-+ @WITH_MAGIC_LIB@ \
- @WITH_POPT_LIB@ \
- @WITH_SELINUX_LIB@ \
- @LTLIBINTL@
+++ /dev/null
-diff -dur rpm-4.5.orig/configure.ac rpm-4.5/configure.ac
---- rpm-4.5.orig/configure.ac 2012-06-19 15:52:36.000000000 +0200
-+++ rpm-4.5/configure.ac 2012-06-19 15:54:29.000000000 +0200
-@@ -211,7 +211,6 @@
- dnl This test must precede tests of compiler characteristics like
- dnl that for the inline keyword, since it may change the degree to
- dnl which the compiler supports such features.
--AM_C_PROTOTYPES
- AC_C_INLINE
- AC_C_BIGENDIAN
-
-Only in rpm-4.5.orig: configure.ac.orig
--- rpm-4.5/scripts/find-debuginfo.sh~ 2010-01-27 19:25:48.000000000 +0200
+++ rpm-4.5/scripts/find-debuginfo.sh 2010-01-27 20:23:37.279516094 +0200
-@@ -24,6 +24,11 @@
- # Barf on missing build IDs.
- strict=false
-
-+# canon RPM_BUILD_DIR, the DW_AT_comp_dir in ELF objects is real a real path
+@@ -385,6 +385,9 @@
+ debug_base_name="$BUILDDIR"
+ debug_dest_name="/usr/src/debug/${unique_debug_src_base}"
+ fi
++# canon debug_base_name, the DW_AT_comp_dir in ELF objects is real a real path
+# and debugedit will ignore them as they are out of build dir.
-+RPM_BUILD_DIR=$(readlink -f "$RPM_BUILD_DIR")
-+echo "RPM_BUILD_DIR=$RPM_BUILD_DIR"
-+
- BUILDDIR=.
- out=debugfiles.list
- nout=0
-@@ -201,6 +203,11 @@
++ debug_base_name=$(readlink -f "$debug_base_name")
+ no_recompute=
+ if [ "$no_recompute_build_id" = "true" ]; then
+ no_recompute="-n"
+@@ -398,6 +400,11 @@
$strict && exit 2
fi
+ $strict && exit 2
+ fi
+
- # A binary already copied into /usr/lib/debug doesn't get stripped,
- # just has its file names collected and adjusted.
- case "$dn" in
+ # Add .gdb_index if requested.
+ if $include_gdb_index; then
+ if type gdb-add-index >/dev/null 2>&1; then
--- rpm-4.5/build/parseChangelog.c.orig 2012-07-24 14:46:12.856158625 +0200
+++ rpm-4.5/build/parseChangelog.c 2012-07-24 14:47:55.293158624 +0200
@@ -181,9 +181,8 @@
- return RPMERR_BADSPEC;
+ trimtime = firstTime - trimage;
}
if (lastTime && lastTime < time) {
-- rpmError(RPMERR_BADSPEC,
-+ rpmMessage(RPMMESS_WARNING,
+- rpmlog(RPMLOG_ERR,
++ rpmlog(RPMLOG_WARNING,
_("%%changelog not in descending chronological order\n"));
-- return RPMERR_BADSPEC;
+- goto exit;
}
- lastTime = time;
-
+ for (i = 0; i < date_words; i++) {
+ SKIPSPACE(s);
+++ /dev/null
---- rpm-4.5/rpmio/rpmrpc.c~ 2009-10-16 01:18:18.566743349 +0300
-+++ rpm-4.5/rpmio/rpmrpc.c 2009-10-16 01:18:21.863999841 +0300
-@@ -179,5 +179,6 @@
- {
- const char * lpath;
- int ut = urlPath(path, &lpath);
-+ int fdno;
-
- if (_rpmio_debug)
-@@ -212,7 +213,17 @@
- if (mode == 0)
- mode = 0644;
- #endif
-- return open(path, flags, mode);
-+ fdno = open(path, flags, mode);
-+ /* XXX if the open(2) fails, try to strip a possible chroot(2) prefix. */
-+ if (fdno < 0 && errno == ENOENT) {
-+ const char *dbpath = rpmExpand("%{_dbpath}", "/", NULL);
-+ const char *fn = strstr(path + 1, dbpath);
-+ if (fn)
-+ fdno = open(fn, flags, mode);
-+ if (dbpath)
-+ dbpath = _free(dbpath);
-+ }
-+ return fdno;
- }
-
- /* XXX rpmdb.c: analogue to rename(2). */
--- /dev/null
+--- rpm-5.4.10/build/files.c~ 2013-01-24 14:24:39.161982722 +0100
++++ rpm-5.4.10/build/files.c 2013-01-24 14:27:50.620325354 +0100
+@@ -2363,6 +2363,11 @@
+ appendLineStringBuf(docScript, "export LC_ALL=C");
+ appendStringBuf(docScript, "export ");
+ appendLineStringBuf(docScript, sdenv);
++ appendStringBuf(docScript, "if test -d \"$");
++ appendStringBuf(docScript, sdenv);
++ appendStringBuf(docScript, "\" ; then rmdir \"$");
++ appendStringBuf(docScript, sdenv);
++ appendLineStringBuf(docScript, "\" ; fi");
+ appendLineStringBuf(docScript, mkdocdir);
+
+ for (ARGV_const_t fn = sd->files; fn && *fn; fn++) {
+++ /dev/null
---- rpm-4.4.9/build/parseBuildInstallClean.c 2008-01-30 23:16:55.347346942 +0200
-+++ rpm-4.4.9/build/parseBuildInstallClean.c 2008-01-30 23:22:24.241459876 +0200
-@@ -51,7 +51,6 @@
- if (s && *s)
- appendStringBuf(*sbp, s);
- s = _free(s);
-- sbp = NULL; /* XXX skip %clean from spec file. */
- }
-
- /* There are no options to %build, %install, %check, or %clean */
+++ /dev/null
---- rpm-4.4.2/rpmio/Makefile.am.orig 2005-10-07 13:52:53.000000000 +0200
-+++ rpm-4.4.2/rpmio/Makefile.am 2005-11-08 15:56:58.000000000 +0100
-@@ -26,8 +26,6 @@
-
- BEECRYPTLOBJS = $(shell test X"@WITH_BEECRYPT_SUBDIR@" != X && cat $(top_builddir)/@WITH_BEECTYPT_SUBDIR@/listobjs)
-
--LDFLAGS = -L$(RPM_BUILD_ROOT)$(usrlibdir) -L$(DESTDIR)$(usrlibdir)
--
- usrlibdir = $(libdir)@MARK64@
- usrlib_LTLIBRARIES = librpmio.la
- librpmio_la_SOURCES = \
---- rpm-4.4.2/rpmdb/Makefile.am.orig 2005-10-07 13:52:53.000000000 +0200
-+++ rpm-4.4.2/rpmdb/Makefile.am 2005-11-08 15:56:49.000000000 +0100
-@@ -37,9 +37,6 @@
- # XXX watchout, ../db3/libdb.la created by this Makefile may surprise
- libdb_la =
-
--# XXX grrr, RPM_BUILD_ROOT prevents build pollution if/when -lrpm different
--LDFLAGS = -L$(RPM_BUILD_ROOT)$(usrlibdir) -L$(DESTDIR)$(usrlibdir)
--
- usrlibdir = $(libdir)@MARK64@
- usrlib_LTLIBRARIES = librpmdb.la
- librpmdb_la_SOURCES = \
---- rpm-4.4.2/lib/Makefile.am.orig 2005-10-07 13:52:53.000000000 +0200
-+++ rpm-4.4.2/lib/Makefile.am 2005-11-08 15:56:22.000000000 +0100
-@@ -29,8 +29,6 @@
- mylibs = librpm.la
- LIBS =
-
--LDFLAGS = -L$(RPM_BUILD_ROOT)$(usrlibdir) -L$(DESTDIR)$(usrlibdir)
--
- usrlibdir = $(libdir)@MARK64@
- usrlib_LTLIBRARIES = librpm.la
- librpm_la_SOURCES = \
---- rpm-4.4.2/build/Makefile.am.orig 2005-03-14 11:03:48.000000000 +0100
-+++ rpm-4.4.2/build/Makefile.am 2005-11-08 15:56:12.000000000 +0100
-@@ -22,8 +22,6 @@
- pkginc_HEADERS = rpmbuild.h rpmfc.h rpmfile.h rpmspec.h
- noinst_HEADERS = buildio.h
-
--LDFLAGS = -L$(RPM_BUILD_ROOT)$(usrlibdir) -L$(DESTDIR)$(usrlibdir)
--
- usrlibdir = $(libdir)@MARK64@
- usrlib_LTLIBRARIES = librpmbuild.la
- librpmbuild_la_SOURCES = \
+++ /dev/null
---- rpm-4.4.8/build/files.c.orig 2007-02-01 23:21:51.000000000 +0100
-+++ rpm-4.4.8/build/files.c 2007-04-08 16:10:27.849202243 +0200
-@@ -1044,6 +1044,16 @@
- appendStringBuf(pkg->specialDoc, "cp -pr ");
- appendStringBuf(pkg->specialDoc, specialDocBuf);
- appendLineStringBuf(pkg->specialDoc, " \"$DOCDIR\"");
-+
-+ {
-+ char *compress_doc;
-+
-+ compress_doc = rpmExpand("%{__compress_doc}", NULL);
-+ if (compress_doc && *compress_doc != '%')
-+ appendLineStringBuf(pkg->specialDoc, compress_doc);
-+ if (compress_doc)
-+ free(compress_doc);
-+ }
- }
- }
-
---- rpm-4.5/platform.in~ 2008-04-13 02:54:35.000000000 +0300
-+++ rpm-4.5/platform.in 2008-10-27 09:10:32.381772729 +0200
-@@ -67,7 +67,7 @@
- %{nil}
-
- # Executed after copying %doc to DOCDIR, with $DOCDIR set
--#%__compress_doc @prefix@/lib/rpm/compress-doc%{?_noautocompressdoc: --noautocompressdoc='%{_noautocompressdoc}'}
-+%__compress_doc @prefix@/lib/rpm/compress-doc%{?_noautocompressdoc: --noautocompressdoc='%{_noautocompressdoc}'}
-
- @redhat@#---------------------------------------------------------------------
- @redhat@# Expanded at end of %prep
+++ /dev/null
---- rpm-4.5/db/dist/Makefile.in~ 2008-06-11 10:42:04.000000000 +0300
-+++ rpm-4.5/db/dist/Makefile.in 2008-09-04 16:44:51.112521915 +0300
-@@ -52,7 +52,7 @@
- # C API.
- ##################################################
- CFLAGS= -c $(CPPFLAGS) @CFLAGS@
--CC= @MAKEFILE_CC@
-+COMPILE= @MAKEFILE_CC@
- CCLINK= @MAKEFILE_CCLINK@ @CFLAGS@
-
- LDFLAGS= @LDFLAGS@
-@@ -831,27 +831,27 @@
- # Multi-threaded testers, benchmarks.
- ##################################################
- dbs@o@: $(srcdir)/test_server/dbs.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_am@o@: $(srcdir)/test_server/dbs_am.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_checkpoint@o@: $(srcdir)/test_server/dbs_checkpoint.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_debug@o@: $(srcdir)/test_server/dbs_debug.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_handles@o@: $(srcdir)/test_server/dbs_handles.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_log@o@: $(srcdir)/test_server/dbs_log.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_qam@o@: $(srcdir)/test_server/dbs_qam.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_spawn@o@: $(srcdir)/test_server/dbs_spawn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_trickle@o@: $(srcdir)/test_server/dbs_trickle.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_util@o@: $(srcdir)/test_server/dbs_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbs_yield@o@: $(srcdir)/test_server/dbs_yield.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- DBS_OBJS=\
- dbs@o@ dbs_am@o@ dbs_checkpoint@o@ dbs_debug@o@ dbs_handles@o@ \
- dbs_log@o@ dbs_qam@o@ dbs_spawn@o@ dbs_trickle@o@ dbs_util@o@ \
-@@ -862,47 +862,47 @@
- $(POSTLINK) $@
-
- db_perf@o@: $(srcdir)/test_perf/db_perf.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_checkpoint@o@: $(srcdir)/test_perf/perf_checkpoint.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_config@o@: $(srcdir)/test_perf/perf_config.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_dbs@o@: $(srcdir)/test_perf/perf_dbs.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_dead@o@: $(srcdir)/test_perf/perf_dead.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_debug@o@: $(srcdir)/test_perf/perf_debug.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_file@o@: $(srcdir)/test_perf/perf_file.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_key@o@: $(srcdir)/test_perf/perf_key.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_log@o@: $(srcdir)/test_perf/perf_log.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_misc@o@: $(srcdir)/test_perf/perf_misc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_op@o@: $(srcdir)/test_perf/perf_op.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_parse@o@: $(srcdir)/test_perf/perf_parse.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_rand@o@: $(srcdir)/test_perf/perf_rand.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_spawn@o@: $(srcdir)/test_perf/perf_spawn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_stat@o@: $(srcdir)/test_perf/perf_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_sync@o@: $(srcdir)/test_perf/perf_sync.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_thread@o@: $(srcdir)/test_perf/perf_thread.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_trickle@o@: $(srcdir)/test_perf/perf_trickle.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_txn@o@: $(srcdir)/test_perf/perf_txn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_util@o@: $(srcdir)/test_perf/perf_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- perf_vx@o@: $(srcdir)/test_perf/perf_vx.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- DBPERF_OBJS=\
- db_perf@o@ perf_checkpoint@o@ perf_config@o@ perf_dbs@o@ \
- perf_dead@o@ perf_debug@o@ perf_file@o@ perf_key@o@ perf_log@o@ \
-@@ -916,51 +916,51 @@
- $(POSTLINK) $@
-
- db_reptest@o@: $(srcdir)/test_rep/db_reptest.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_accept@o@: $(srcdir)/test_rep/reptest_accept.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_client@o@: $(srcdir)/test_rep/reptest_client.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_config@o@: $(srcdir)/test_rep/reptest_config.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_dbs@o@: $(srcdir)/test_rep/reptest_dbs.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_debug@o@: $(srcdir)/test_rep/reptest_debug.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_elect@o@: $(srcdir)/test_rep/reptest_elect.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_env@o@: $(srcdir)/test_rep/reptest_env.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_exec@o@: $(srcdir)/test_rep/reptest_exec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_file@o@: $(srcdir)/test_rep/reptest_file.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_key@o@: $(srcdir)/test_rep/reptest_key.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_master@o@: $(srcdir)/test_rep/reptest_master.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_misc@o@: $(srcdir)/test_rep/reptest_misc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_msg_thread@o@: $(srcdir)/test_rep/reptest_msg_thread.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_op@o@: $(srcdir)/test_rep/reptest_op.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_parse@o@: $(srcdir)/test_rep/reptest_parse.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_send@o@: $(srcdir)/test_rep/reptest_send.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_site@o@: $(srcdir)/test_rep/reptest_site.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_socket@o@: $(srcdir)/test_rep/reptest_socket.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_spawn@o@: $(srcdir)/test_rep/reptest_spawn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_thread@o@: $(srcdir)/test_rep/reptest_thread.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_txn@o@: $(srcdir)/test_rep/reptest_txn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- reptest_util@o@: $(srcdir)/test_rep/reptest_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- DBREPTEST_OBJS=\
- db_reptest@o@ perf_rand@o@ reptest_accept@o@ reptest_client@o@ \
- reptest_config@o@ reptest_dbs@o@ reptest_debug@o@ \
-@@ -977,7 +977,7 @@
- $(POSTLINK) $@
-
- tm@o@: $(srcdir)/mutex/tm.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- tm: tm@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) tm@o@ $(DEF_LIB) $(TEST_LIBS) $(LIBS)
- $(POSTLINK) $@
-@@ -986,25 +986,25 @@
- # Example programs for C.
- ##################################################
- bench_001@o@: $(srcdir)/examples_c/bench_001.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bench_001: bench_001@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) bench_001@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_access@o@: $(srcdir)/examples_c/ex_access.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_access: ex_access@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_access@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_apprec@o@: $(srcdir)/examples_c/ex_apprec/ex_apprec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_apprec_auto@o@: $(srcdir)/examples_c/ex_apprec/ex_apprec_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_apprec_autop@o@: $(srcdir)/examples_c/ex_apprec/ex_apprec_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_apprec_rec@o@: $(srcdir)/examples_c/ex_apprec/ex_apprec_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- EX_APPREC_OBJS=\
- ex_apprec@o@ ex_apprec_auto@o@ ex_apprec_autop@o@ ex_apprec_rec@o@
- ex_apprec: $(EX_APPREC_OBJS) $(DEF_LIB)
-@@ -1012,43 +1012,43 @@
- $(LDFLAGS) $(EX_APPREC_OBJS) $(DEF_LIB) $(TEST_LIBS) $(LIBS)
-
- ex_btrec@o@: $(srcdir)/examples_c/ex_btrec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_btrec: ex_btrec@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_btrec@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_dbclient@o@: $(srcdir)/examples_c/ex_dbclient.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_dbclient: ex_dbclient@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_dbclient@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_env@o@: $(srcdir)/examples_c/ex_env.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_env: ex_env@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_env@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_lock@o@: $(srcdir)/examples_c/ex_lock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_lock: ex_lock@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_lock@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_mpool@o@: $(srcdir)/examples_c/ex_mpool.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_mpool: ex_mpool@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_mpool@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- rep_base@o@: $(srcdir)/examples_c/ex_rep/base/rep_base.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_common@o@: $(srcdir)/examples_c/ex_rep/common/rep_common.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_msg@o@: $(srcdir)/examples_c/ex_rep/base/rep_msg.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_net@o@: $(srcdir)/examples_c/ex_rep/base/rep_net.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- EX_REP_BASE_OBJS=\
- rep_base@o@ rep_common@o@ rep_msg@o@ rep_net@o@
- ex_rep_base: $(EX_REP_BASE_OBJS) $(DEF_LIB)
-@@ -1057,7 +1057,7 @@
- $(POSTLINK) $@
-
- rep_mgr@o@: $(srcdir)/examples_c/ex_rep/mgr/rep_mgr.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- EX_REP_MGR_OBJS=\
- rep_common@o@ rep_mgr@o@
- ex_rep_mgr: $(EX_REP_MGR_OBJS) $(DEF_LIB)
-@@ -1066,33 +1066,33 @@
- $(POSTLINK) $@
-
- ex_sequence@o@: $(srcdir)/examples_c/ex_sequence.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_sequence: ex_sequence@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_sequence@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- ex_thread@o@: $(srcdir)/examples_c/ex_thread.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_thread: ex_thread@o@ $(DEF_LIB)
- $(CCLINK) -o $@ \
- $(LDFLAGS) ex_thread@o@ $(DEF_LIB) $(TEST_LIBS) $(LIBS)
- $(POSTLINK) $@
-
- ex_tpcb@o@: $(srcdir)/examples_c/ex_tpcb.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ex_tpcb: ex_tpcb@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) ex_tpcb@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- gettingstarted_common@o@: \
- $(srcdir)/examples_c/getting_started/gettingstarted_common.c
-- $(CC) -I $(srcdir)/examples_c/getting_started $(CFLAGS) $?
-+ $(COMPILE) -I $(srcdir)/examples_c/getting_started $(CFLAGS) $?
- example_database_load@o@: \
- $(srcdir)/examples_c/getting_started/example_database_load.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- example_database_read@o@: \
- $(srcdir)/examples_c/getting_started/example_database_read.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- example_database_load: example_database_load@o@ gettingstarted_common@o@ \
- $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) \
-@@ -1105,13 +1105,13 @@
- $(POSTLINK) $@
-
- txn_guide_inmemory@o@: $(srcdir)/examples_c/txn_guide/txn_guide_inmemory.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_guide_inmemory: txn_guide_inmemory@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) txn_guide_inmemory@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-
- txn_guide@o@: $(srcdir)/examples_c/txn_guide/txn_guide.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_guide: txn_guide@o@ $(DEF_LIB)
- $(CCLINK) -o $@ $(LDFLAGS) txn_guide@o@ $(DEF_LIB) $(LIBS)
- $(POSTLINK) $@
-@@ -1205,479 +1205,479 @@
- # C API build rules.
- ##################################################
- aes_method@o@: $(srcdir)/crypto/aes_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_compare@o@: $(srcdir)/btree/bt_compare.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_conv@o@: $(srcdir)/btree/bt_conv.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_curadj@o@: $(srcdir)/btree/bt_curadj.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_cursor@o@: $(srcdir)/btree/bt_cursor.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_delete@o@: $(srcdir)/btree/bt_delete.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_method@o@: $(srcdir)/btree/bt_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_open@o@: $(srcdir)/btree/bt_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_put@o@: $(srcdir)/btree/bt_put.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_rec@o@: $(srcdir)/btree/bt_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_reclaim@o@: $(srcdir)/btree/bt_reclaim.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_recno@o@: $(srcdir)/btree/bt_recno.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_rsearch@o@: $(srcdir)/btree/bt_rsearch.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_search@o@: $(srcdir)/btree/bt_search.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_split@o@: $(srcdir)/btree/bt_split.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_stat@o@: $(srcdir)/btree/bt_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_compact@o@: $(srcdir)/btree/bt_compact.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_upgrade@o@: $(srcdir)/btree/bt_upgrade.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- bt_verify@o@: $(srcdir)/btree/bt_verify.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- btree_auto@o@: $(srcdir)/btree/btree_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- btree_autop@o@: $(srcdir)/btree/btree_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- crdel_auto@o@: $(srcdir)/db/crdel_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- crdel_autop@o@: $(srcdir)/db/crdel_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- crdel_rec@o@: $(srcdir)/db/crdel_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- crypto@o@: $(srcdir)/crypto/crypto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- crypto_stub@o@: $(srcdir)/common/crypto_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db185@o@: $(srcdir)/db185/db185.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db@o@: $(srcdir)/db/db.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_am@o@: $(srcdir)/db/db_am.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_auto@o@: $(srcdir)/db/db_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_autop@o@: $(srcdir)/db/db_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_byteorder@o@: $(srcdir)/common/db_byteorder.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_cam@o@: $(srcdir)/db/db_cam.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_cds@o@: $(srcdir)/db/db_cds.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_clock@o@: $(srcdir)/common/db_clock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_conv@o@: $(srcdir)/db/db_conv.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_dispatch@o@: $(srcdir)/db/db_dispatch.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_dup@o@: $(srcdir)/db/db_dup.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_err@o@: $(srcdir)/common/db_err.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_getlong@o@: $(srcdir)/common/db_getlong.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_idspace@o@: $(srcdir)/common/db_idspace.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_iface@o@: $(srcdir)/db/db_iface.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_join@o@: $(srcdir)/db/db_join.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_log2@o@: $(srcdir)/common/db_log2.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_meta@o@: $(srcdir)/db/db_meta.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_method@o@: $(srcdir)/db/db_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_open@o@: $(srcdir)/db/db_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_overflow@o@: $(srcdir)/db/db_overflow.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_ovfl_vrfy@o@: $(srcdir)/db/db_ovfl_vrfy.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_pr@o@: $(srcdir)/db/db_pr.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_rec@o@: $(srcdir)/db/db_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_reclaim@o@: $(srcdir)/db/db_reclaim.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_rename@o@: $(srcdir)/db/db_rename.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_remove@o@: $(srcdir)/db/db_remove.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_ret@o@: $(srcdir)/db/db_ret.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_setid@o@: $(srcdir)/db/db_setid.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_setlsn@o@: $(srcdir)/db/db_setlsn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_salloc@o@: $(srcdir)/env/db_salloc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_shash@o@: $(srcdir)/env/db_shash.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_stati@o@: $(srcdir)/db/db_stati.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_truncate@o@: $(srcdir)/db/db_truncate.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_upg@o@: $(srcdir)/db/db_upg.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_upg_opd@o@: $(srcdir)/db/db_upg_opd.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_vrfy@o@: $(srcdir)/db/db_vrfy.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_vrfyutil@o@: $(srcdir)/db/db_vrfyutil.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_vrfy_stub@o@: $(srcdir)/db/db_vrfy_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbm@o@: $(srcdir)/dbm/dbm.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg@o@: $(srcdir)/dbreg/dbreg.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg_auto@o@: $(srcdir)/dbreg/dbreg_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg_autop@o@: $(srcdir)/dbreg/dbreg_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg_rec@o@: $(srcdir)/dbreg/dbreg_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg_stat@o@: $(srcdir)/dbreg/dbreg_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- dbreg_util@o@: $(srcdir)/dbreg/dbreg_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_config@o@: $(srcdir)/env/env_config.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_failchk@o@: $(srcdir)/env/env_failchk.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_file@o@: $(srcdir)/env/env_file.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_method@o@: $(srcdir)/env/env_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_open@o@: $(srcdir)/env/env_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_recover@o@: $(srcdir)/env/env_recover.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_region@o@: $(srcdir)/env/env_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_register@o@: $(srcdir)/env/env_register.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- env_stat@o@: $(srcdir)/env/env_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- fileops_auto@o@: $(srcdir)/fileops/fileops_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- fileops_autop@o@: $(srcdir)/fileops/fileops_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- fop_basic@o@: $(srcdir)/fileops/fop_basic.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- fop_rec@o@: $(srcdir)/fileops/fop_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- fop_util@o@: $(srcdir)/fileops/fop_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash@o@: $(srcdir)/hash/hash.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_auto@o@: $(srcdir)/hash/hash_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_autop@o@: $(srcdir)/hash/hash_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_conv@o@: $(srcdir)/hash/hash_conv.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_dup@o@: $(srcdir)/hash/hash_dup.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_func@o@: $(srcdir)/hash/hash_func.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_meta@o@: $(srcdir)/hash/hash_meta.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_method@o@: $(srcdir)/hash/hash_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_open@o@: $(srcdir)/hash/hash_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_page@o@: $(srcdir)/hash/hash_page.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_rec@o@: $(srcdir)/hash/hash_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_reclaim@o@: $(srcdir)/hash/hash_reclaim.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_stat@o@: $(srcdir)/hash/hash_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_stub@o@: $(srcdir)/hash/hash_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_upgrade@o@: $(srcdir)/hash/hash_upgrade.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hash_verify@o@: $(srcdir)/hash/hash_verify.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hmac@o@: $(srcdir)/hmac/hmac.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- hsearch@o@: $(srcdir)/hsearch/hsearch.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock@o@: $(srcdir)/lock/lock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_deadlock@o@:$(srcdir)/lock/lock_deadlock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_failchk@o@:$(srcdir)/lock/lock_failchk.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_id@o@:$(srcdir)/lock/lock_id.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_list@o@:$(srcdir)/lock/lock_list.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_method@o@:$(srcdir)/lock/lock_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_region@o@:$(srcdir)/lock/lock_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_stat@o@:$(srcdir)/lock/lock_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_timer@o@:$(srcdir)/lock/lock_timer.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- lock_util@o@:$(srcdir)/lock/lock_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log@o@: $(srcdir)/log/log.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_archive@o@: $(srcdir)/log/log_archive.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_compare@o@: $(srcdir)/log/log_compare.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_debug@o@: $(srcdir)/log/log_debug.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_get@o@: $(srcdir)/log/log_get.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_method@o@: $(srcdir)/log/log_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_put@o@: $(srcdir)/log/log_put.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- log_stat@o@: $(srcdir)/log/log_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mkpath@o@: $(srcdir)/common/mkpath.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_alloc@o@: $(srcdir)/mp/mp_alloc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_bh@o@: $(srcdir)/mp/mp_bh.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_fget@o@: $(srcdir)/mp/mp_fget.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_fmethod@o@: $(srcdir)/mp/mp_fmethod.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_fopen@o@: $(srcdir)/mp/mp_fopen.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_fput@o@: $(srcdir)/mp/mp_fput.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_fset@o@: $(srcdir)/mp/mp_fset.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_method@o@: $(srcdir)/mp/mp_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_mvcc@o@: $(srcdir)/mp/mp_mvcc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_region@o@: $(srcdir)/mp/mp_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_register@o@: $(srcdir)/mp/mp_register.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_stat@o@: $(srcdir)/mp/mp_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_sync@o@: $(srcdir)/mp/mp_sync.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mp_trickle@o@: $(srcdir)/mp/mp_trickle.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mt19937db@o@: $(srcdir)/crypto/mersenne/mt19937db.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_alloc@o@: $(srcdir)/mutex/mut_alloc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_failchk@o@: $(srcdir)/mutex/mut_failchk.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_fcntl@o@: $(srcdir)/mutex/mut_fcntl.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_method@o@: $(srcdir)/mutex/mut_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_pthread@o@: $(srcdir)/mutex/mut_pthread.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_region@o@: $(srcdir)/mutex/mut_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_stat@o@: $(srcdir)/mutex/mut_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_tas@o@: $(srcdir)/mutex/mut_tas.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- mut_win32@o@: $(srcdir)/mutex/mut_win32.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_abs@o@: $(srcdir)/@OSDIR@/os_abs.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_alloc@o@: $(srcdir)/os/os_alloc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_clock@o@: $(srcdir)/@OSDIR@/os_clock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_config@o@: $(srcdir)/@OSDIR@/os_config.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_dir@o@: $(srcdir)/@OSDIR@/os_dir.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_errno@o@: $(srcdir)/@OSDIR@/os_errno.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_fid@o@: $(srcdir)/@OSDIR@/os_fid.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_flock@o@: $(srcdir)/@OSDIR@/os_flock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_fsync@o@: $(srcdir)/@OSDIR@/os_fsync.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_fzero@o@: $(srcdir)/os/os_fzero.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_getenv@o@: $(srcdir)/@OSDIR@/os_getenv.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_handle@o@: $(srcdir)/@OSDIR@/os_handle.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_map@o@: $(srcdir)/@OSDIR@/os_map.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_method@o@: $(srcdir)/os/os_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_mkdir@o@: $(srcdir)/os/os_mkdir.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_oflags@o@: $(srcdir)/os/os_oflags.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_open@o@: $(srcdir)/@OSDIR@/os_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_pid@o@: $(srcdir)/os/os_pid.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_region@o@: $(srcdir)/os/os_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_rename@o@: $(srcdir)/@OSDIR@/os_rename.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_root@o@: $(srcdir)/os/os_root.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_rpath@o@: $(srcdir)/os/os_rpath.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_rw@o@: $(srcdir)/@OSDIR@/os_rw.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_seek@o@: $(srcdir)/@OSDIR@/os_seek.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_sleep@o@: $(srcdir)/@OSDIR@/os_sleep.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_spin@o@: $(srcdir)/@OSDIR@/os_spin.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_stat@o@: $(srcdir)/@OSDIR@/os_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_tmpdir@o@: $(srcdir)/os/os_tmpdir.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_truncate@o@: $(srcdir)/@OSDIR@/os_truncate.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_uid@o@: $(srcdir)/os/os_uid.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_unlink@o@: $(srcdir)/os/os_unlink.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- os_yield@o@: $(srcdir)/os/os_yield.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam@o@: $(srcdir)/qam/qam.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_auto@o@: $(srcdir)/qam/qam_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_autop@o@: $(srcdir)/qam/qam_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_conv@o@: $(srcdir)/qam/qam_conv.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_files@o@: $(srcdir)/qam/qam_files.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_method@o@: $(srcdir)/qam/qam_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_open@o@: $(srcdir)/qam/qam_open.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_rec@o@: $(srcdir)/qam/qam_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_stat@o@: $(srcdir)/qam/qam_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_stub@o@: $(srcdir)/qam/qam_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_upgrade@o@: $(srcdir)/qam/qam_upgrade.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- qam_verify@o@: $(srcdir)/qam/qam_verify.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_auto@o@: $(srcdir)/rep/rep_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_autop@o@: $(srcdir)/rep/rep_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_backup@o@: $(srcdir)/rep/rep_backup.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_elect@o@: $(srcdir)/rep/rep_elect.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_log@o@: $(srcdir)/rep/rep_log.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_method@o@: $(srcdir)/rep/rep_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_record@o@: $(srcdir)/rep/rep_record.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_region@o@: $(srcdir)/rep/rep_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_stub@o@: $(srcdir)/rep/rep_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_stat@o@: $(srcdir)/rep/rep_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_util@o@: $(srcdir)/rep/rep_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rep_verify@o@: $(srcdir)/rep/rep_verify.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_elect@o@: $(srcdir)/repmgr/repmgr_elect.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_method@o@: $(srcdir)/repmgr/repmgr_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_msg@o@: $(srcdir)/repmgr/repmgr_msg.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_net@o@: $(srcdir)/repmgr/repmgr_net.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_posix@o@: $(srcdir)/repmgr/repmgr_posix.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_queue@o@: $(srcdir)/repmgr/repmgr_queue.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_sel@o@: $(srcdir)/repmgr/repmgr_sel.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_stat@o@: $(srcdir)/repmgr/repmgr_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- repmgr_util@o@: $(srcdir)/repmgr/repmgr_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rijndael-alg-fst@o@: $(srcdir)/crypto/rijndael/rijndael-alg-fst.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rijndael-api-fst@o@: $(srcdir)/crypto/rijndael/rijndael-api-fst.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- seq_stat@o@: $(srcdir)/sequence/seq_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- sequence@o@: $(srcdir)/sequence/sequence.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- sha1@o@: $(srcdir)/hmac/sha1.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- stat_stub@o@: $(srcdir)/common/stat_stub.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn@o@: $(srcdir)/txn/txn.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_auto@o@: $(srcdir)/txn/txn_auto.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_autop@o@: $(srcdir)/txn/txn_autop.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_chkpt@o@: $(srcdir)/txn/txn_chkpt.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_failchk@o@: $(srcdir)/txn/txn_failchk.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_method@o@: $(srcdir)/txn/txn_method.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_rec@o@: $(srcdir)/txn/txn_rec.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_recover@o@: $(srcdir)/txn/txn_recover.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_region@o@: $(srcdir)/txn/txn_region.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_stat@o@: $(srcdir)/txn/txn_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- txn_util@o@: $(srcdir)/txn/txn_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- util_cache@o@: $(srcdir)/common/util_cache.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- util_log@o@: $(srcdir)/common/util_log.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- util_sig@o@: $(srcdir)/common/util_sig.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- uts4_cc@o@: $(srcdir)/mutex/uts4_cc.s
- $(AS) $(ASFLAGS) -o $@ $?
- xa@o@: $(srcdir)/xa/xa.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- xa_db@o@: $(srcdir)/xa/xa_db.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- xa_map@o@: $(srcdir)/xa/xa_map.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
-
- ##################################################
- # C++ API build rules.
-@@ -1709,62 +1709,62 @@
- # Java API build rules.
- ##################################################
- db_java_wrap@o@: $(srcdir)/libdb_java/db_java_wrap.c
-- $(CC) $(CFLAGS) $(SWIGCFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $(SWIGCFLAGS) $?
-
- ##################################################
- # Tcl API build rules.
- ##################################################
- tcl_compat@o@: $(srcdir)/tcl/tcl_compat.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_db@o@: $(srcdir)/tcl/tcl_db.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_db_pkg@o@: $(srcdir)/tcl/tcl_db_pkg.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_dbcursor@o@: $(srcdir)/tcl/tcl_dbcursor.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_env@o@: $(srcdir)/tcl/tcl_env.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_internal@o@: $(srcdir)/tcl/tcl_internal.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_lock@o@: $(srcdir)/tcl/tcl_lock.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_log@o@: $(srcdir)/tcl/tcl_log.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_mp@o@: $(srcdir)/tcl/tcl_mp.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_rep@o@: $(srcdir)/tcl/tcl_rep.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_seq@o@: $(srcdir)/tcl/tcl_seq.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_txn@o@: $(srcdir)/tcl/tcl_txn.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
- tcl_util@o@: $(srcdir)/tcl/tcl_util.c
-- $(CC) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-+ $(COMPILE) $(CFLAGS) $(TCL_INCLUDE_SPEC) $?
-
- ##################################################
- # RPC build rules.
- ##################################################
- # RPC client files
- client@o@: $(srcdir)/rpc_client/client.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_server_clnt@o@: db_server_clnt.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- gen_client@o@: $(srcdir)/rpc_client/gen_client.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- gen_client_ret@o@: $(srcdir)/rpc_client/gen_client_ret.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
-
- # RPC server files
- db_server_proc@o@: $(srcdir)/rpc_server/c/db_server_proc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_server_svc@o@: db_server_svc.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_server_util@o@: $(srcdir)/rpc_server/c/db_server_util.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_server_xdr@o@: db_server_xdr.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- gen_db_server@o@: gen_db_server.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_server_cxxproc@o@: $(srcdir)/rpc_server/cxx/db_server_cxxproc.cpp
- $(CXX) $(CXXFLAGS) $?
- db_server_cxxutil@o@: $(srcdir)/rpc_server/cxx/db_server_cxxutil.cpp
-@@ -1774,86 +1774,86 @@
- # Utility build rules.
- ##################################################
- db_archive@o@: $(srcdir)/db_archive/db_archive.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_checkpoint@o@: $(srcdir)/db_checkpoint/db_checkpoint.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_deadlock@o@: $(srcdir)/db_deadlock/db_deadlock.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_dump@o@: $(srcdir)/db_dump/db_dump.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_dump185@o@: $(srcdir)/db_dump185/db_dump185.c
-- $(CC) $(DB185INC) $?
-+ $(COMPILE) $(DB185INC) $?
- db_hotbackup@o@: $(srcdir)/db_hotbackup/db_hotbackup.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_load@o@: $(srcdir)/db_load/db_load.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_printlog@o@: $(srcdir)/db_printlog/db_printlog.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_recover@o@: $(srcdir)/db_recover/db_recover.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_stat@o@: $(srcdir)/db_stat/db_stat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_upgrade@o@: $(srcdir)/db_upgrade/db_upgrade.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- db_verify@o@: $(srcdir)/db_verify/db_verify.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
-
- ##################################################
- # C library replacement files.
- ##################################################
- atoi@o@: $(srcdir)/clib/atoi.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- atol@o@: $(srcdir)/clib/atol.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- ctime@o@: $(srcdir)/clib/ctime.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- getaddrinfo@o@: $(srcdir)/clib/getaddrinfo.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- getcwd@o@: $(srcdir)/clib/getcwd.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- getopt@o@: $(srcdir)/clib/getopt.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- isalpha@o@: $(srcdir)/clib/isalpha.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- isdigit@o@: $(srcdir)/clib/isdigit.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- isprint@o@: $(srcdir)/clib/isprint.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- isspace@o@: $(srcdir)/clib/isspace.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- memcmp@o@: $(srcdir)/clib/memcmp.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- memcpy@o@: $(srcdir)/clib/memmove.c
-- $(CC) -DMEMCOPY $(CFLAGS) $? -o $@
-+ $(COMPILE) -DMEMCOPY $(CFLAGS) $? -o $@
- memmove@o@: $(srcdir)/clib/memmove.c
-- $(CC) -DMEMMOVE $(CFLAGS) $?
-+ $(COMPILE) -DMEMMOVE $(CFLAGS) $?
- printf@o@: $(srcdir)/clib/printf.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- raise@o@: $(srcdir)/clib/raise.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- rand@o@: $(srcdir)/clib/rand.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strcasecmp@o@: $(srcdir)/clib/strcasecmp.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strdup@o@: $(srcdir)/clib/strdup.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- snprintf@o@: $(srcdir)/clib/snprintf.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strcat@o@: $(srcdir)/clib/strcat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strchr@o@: $(srcdir)/clib/strchr.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strerror@o@: $(srcdir)/clib/strerror.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strncat@o@: $(srcdir)/clib/strncat.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strncmp@o@: $(srcdir)/clib/strncmp.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strrchr@o@: $(srcdir)/clib/strrchr.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strsep@o@: $(srcdir)/clib/strsep.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strtol@o@: $(srcdir)/clib/strtol.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
- strtoul@o@: $(srcdir)/clib/strtoul.c
-- $(CC) $(CFLAGS) $?
-+ $(COMPILE) $(CFLAGS) $?
---- rpm-4.5/rpmdb/Makefile.am~ 2008-09-04 16:48:01.000000000 +0300
-+++ rpm-4.5/rpmdb/Makefile.am 2008-09-04 17:00:08.797533944 +0300
-@@ -94,7 +94,7 @@
-
- # XXX grrr, force noinst libdb.la for db3.
- $(libdb_la):
-- sed -e"/^libdir=/s/^.*$$/libdir=''/" < $(top_builddir)/$(WITH_DB_SUBDIR)/libdb-4.7.la > $(libdb_la)
-+ sed -e"/^libdir=/s/^.*$$/libdir=''/" < $(top_builddir)/$(WITH_DB_SUBDIR)/libdb-4.5.la > $(libdb_la)
-
- db_archive_SOURCES =
- db_archive_LDADD = \
+++ /dev/null
---- rpm-4.5/rpmdb/dbconfig.c~ 2007-07-27 20:51:24.000000000 +0200
-+++ rpm-4.5/rpmdb/dbconfig.c 2009-09-20 21:29:10.437004649 +0200
-@@ -46,8 +46,10 @@
- NULL, NULL },
- #endif
-
-+#ifdef DB_XA_CREATE
- { "xa_create", 0,POPT_BIT_SET, &db3dbi.dbi_cflags, DB_XA_CREATE,
- NULL, NULL },
-+#endif
-
- /* DB_ENV->open and DB->open */
- #if defined(DB_AUTO_COMMIT)
+++ /dev/null
---- rpm-4.5/db3/configure 2007-05-25 20:35:57.000000000 +0300
-+++ trunk/db3/configure 2007-07-01 21:45:10.000000000 +0300
-@@ -7,22 +7,45 @@
-
- rm -f config.cache
-
--# XXX edit CFLAGS= ... out of invocation args ???
--ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's% --param=[^ ]*%%g' -e 's%--cache-file=.*$%%'`"
--
--CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \
-- --enable-shared --enable-static --enable-rpc \
-- --with-uniquename=_rpmdb --srcdir=$db_dist
-+# We iterate over the argument list. Processing the arguments using
-+# echo "$*" can fail with the sed chopping out parts of unrelated
-+# arguments
-+set -- "$@" eoa_marker
-+while [ "$1" != "eoa_marker" ]; do
-+ ARG=`echo "$1" | \
-+ sed -e 's%CFLAGS=.*%%' \
-+ -e 's%--param=.*%%g' \
-+ -e 's%--cache-file=.*$%%' \
-+ -e 's%--with-db-rpc=\(.*\)%--enable-rpc=\1%' \
-+ -e 's%--with-db-rpc%--enable-rpc%' \
-+ -e 's%--without-db-rpc%--disable-rpc%' \
-+ -e 's%--with-db-largefile=\(.*\)%--enable-largefile=\1%' \
-+ -e 's%--with-db-largefile%--enable-largefile%' \
-+ -e 's%--without-db-largefile%--disable-largefile%' \
-+ -e 's%--with-db-mutex=\(.*\)%--with-mutex=\1%' \
-+ -e 's%--with-db-mutex%%' \
-+ -e 's%--without-db-mutex%%' \
-+ `
-+ shift
-+ set -- "$@" "$ARG"
-+done
-+shift
-+
-+
-+# NOTICE:
-+# 1. "--enable-shared" is there for enforcing GNU libtool usage only
-+# as Berkeley-DB "configure" else would not use GNU libtool at all.
-+# 2. "--enable-static" is there for enforcing the building of a static
-+# version of the libdb objects RPM actually is interested in.
-+
-+CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure "$@" \
-+ --enable-shared --enable-static \
-+ --with-uniquename=_rpmdb --srcdir=$db_dist || exit 1
-
- mv Makefile Makefile.orig
- cat Makefile.orig | sed -e '/^install[:-]/c\
--.PHONY: listobjs\
--listobjs:\
--\ @echo $(OBJS) $(C_OBJS) \
--\
- distdir install check:\
--\
--db4_install: all install_setip' > Makefile
-+' -e 's/^\(SOFLAGS=\).*$/\1/' > Makefile
-
- mv db.h db.h.orig
- cat db.h.orig | sed \
-@@ -35,5 +58,3 @@
- -e '/^int txn_commit __P((/a\
- /*@=declundef =noparams =fcnuse =fielduse =enummemuse =typeuse @*/' > db.h
-
--# Generate manifest for rpmdb.
--make -s listobjs > db3lobjs
+++ /dev/null
---- rpm-4.5/scripts/find-debuginfo.sh~ 2009-06-08 23:57:15.000000000 +0300
-+++ rpm-4.5/scripts/find-debuginfo.sh 2009-06-09 00:10:21.603343056 +0300
-@@ -306,6 +306,9 @@
- sed -n -r "\#^$ptn #s/ .*\$//p" "$LINKSFILE" | append_uniq "$out"
- }
-
-+# get rid of top level dir, we want it be only in filesystem-debuginfo package
-+sed -i -e '/^%dir \/usr\/lib\/debug$/d' "$LISTFILE"
-+
- #
- # When given multiple -o switches, split up the output as directed.
- #
+++ /dev/null
---- rpm-4.5/tools/debugedit.c.orig 2012-06-23 20:54:51.748542754 +0200
-+++ rpm-4.5/tools/debugedit.c 2012-06-23 20:56:12.045612104 +0200
-@@ -70,6 +70,10 @@
- #include "hashtab.h"
-
- #define DW_TAG_partial_unit 0x3c
-+#define DW_FORM_sec_offset 0x17
-+#define DW_FORM_exprloc 0x18
-+#define DW_FORM_flag_present 0x19
-+#define DW_FORM_ref_sig8 0x20
-
- char *base_dir = NULL;
- char *dest_dir = NULL;
-@@ -250,6 +254,7 @@ static struct
- #define DEBUG_STR 8
- #define DEBUG_FRAME 9
- #define DEBUG_RANGES 10
-+#define DEBUG_TYPES 11
- { ".debug_info", NULL, NULL, 0, 0, 0 },
- { ".debug_abbrev", NULL, NULL, 0, 0, 0 },
- { ".debug_line", NULL, NULL, 0, 0, 0 },
-@@ -261,6 +266,7 @@ static struct
- { ".debug_str", NULL, NULL, 0, 0, 0 },
- { ".debug_frame", NULL, NULL, 0, 0, 0 },
- { ".debug_ranges", NULL, NULL, 0, 0, 0 },
-+ { ".debug_types", NULL, NULL, 0, 0, 0 },
- { NULL, NULL, NULL, 0, 0, 0 }
- };
-
-@@ -353,7 +359,8 @@ no_memory:
- goto no_memory;
- }
- form = read_uleb128 (ptr);
-- if (form == 2 || form > DW_FORM_indirect)
-+ if (form == 2
-+ || (form > DW_FORM_flag_present && form != DW_FORM_ref_sig8))
- {
- error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename, form);
- htab_delete (h);
-@@ -382,7 +389,6 @@ static char *
- canonicalize_path (const char *s, char *d)
- {
- char *rv = d;
-- const char *sroot;
- char *droot;
-
- if (IS_DIR_SEPARATOR (*s))
-@@ -398,7 +404,6 @@ canonicalize_path (const char *s, char *
- s++;
- }
- droot = d;
-- sroot = s;
-
- while (*s)
- {
-@@ -517,7 +522,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
- }
-
- value = read_16 (ptr);
-- if (value != 2 && value != 3)
-+ if (value != 2 && value != 3 && value != 4)
- {
- error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
- value);
-@@ -533,8 +538,8 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
- return 1;
- }
-
-- opcode_base = ptr[4];
-- ptr = dir = ptr + 4 + opcode_base;
-+ opcode_base = ptr[4 + (value >= 4)];
-+ ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
-
- /* dir table: */
- value = 1;
-@@ -762,7 +767,8 @@ edit_attributes (DSO *dso, unsigned char
- {
- if (t->attr[i].attr == DW_AT_stmt_list)
- {
-- if (form == DW_FORM_data4)
-+ if (form == DW_FORM_data4
-+ || form == DW_FORM_sec_offset)
- {
- list_offs = do_read_32_relocated (ptr);
- found_list_offs = 1;
-@@ -868,6 +874,8 @@ edit_attributes (DSO *dso, unsigned char
- else
- ptr += 4;
- break;
-+ case DW_FORM_flag_present:
-+ break;
- case DW_FORM_addr:
- ptr += ptr_size;
- break;
-@@ -882,10 +890,12 @@ edit_attributes (DSO *dso, unsigned char
- break;
- case DW_FORM_ref4:
- case DW_FORM_data4:
-+ case DW_FORM_sec_offset:
- ptr += 4;
- break;
- case DW_FORM_ref8:
- case DW_FORM_data8:
-+ case DW_FORM_ref_sig8:
- ptr += 8;
- break;
- case DW_FORM_sdata:
-@@ -914,6 +924,7 @@ edit_attributes (DSO *dso, unsigned char
- form = DW_FORM_block1;
- break;
- case DW_FORM_block:
-+ case DW_FORM_exprloc:
- len = read_uleb128 (ptr);
- form = DW_FORM_block1;
- assert (len < UINT_MAX);
-@@ -1217,7 +1228,7 @@ edit_dwarf2 (DSO *dso)
- }
-
- cu_version = read_16 (ptr);
-- if (cu_version != 2 && cu_version != 3)
-+ if (cu_version != 2 && cu_version != 3 && cu_version != 4)
- {
- error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
- cu_version);
+++ /dev/null
-diff -urN rpm-4.5/doc/rpmbuild.8 rpm-4.5.new/doc/rpmbuild.8
---- rpm-4.5/doc/rpmbuild.8 2009-04-12 11:29:27.449408696 +0200
-+++ rpm-4.5.new/doc/rpmbuild.8 2009-04-12 12:04:02.462534640 +0200
-@@ -252,6 +252,13 @@
- .SS "Temporary"
- .PP
- \fI/var/tmp/rpm*\fR
-+.SH "BUGS"
-+Extraction of the debugging data may fail if the source refer to files
-+with "//" in their path. In that case, the tool "debugedit" used by rpmbuild
-+to extract the debugging information will fail with a message "canonicalization
-+unexpectedly shrank by one character" but the binary package will be built
-+nevertheless.
-+
- .SH "SEE ALSO"
-
- .nf
-diff -urN rpm-4.5/scripts/find-debuginfo.sh rpm-4.5.new/scripts/find-debuginfo.sh
---- rpm-4.5/scripts/find-debuginfo.sh 2009-04-12 11:29:27.006092294 +0200
-+++ rpm-4.5.new/scripts/find-debuginfo.sh 2009-04-12 11:59:26.240060976 +0200
-@@ -200,7 +200,7 @@
-
- echo "extracting debug info from $f"
- id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-- -i -l "$SOURCEFILE" "$f") || exit
-+ -i -l "$SOURCEFILE" "$f")
- if [ -z "$id" ]; then
- echo >&2 "*** ${strict_error}: No build ID note found in $f"
- $strict && exit 2
---- rpm-4.4.9.orig/macros.in 2008-01-31 19:20:08.798315963 +0200
-+++ rpm-4.4.9/macros.in 2008-01-31 19:20:50.850567944 +0200
-@@ -188,15 +188,21 @@
- %debug_package \
- %ifnarch noarch\
- %global __debug_package 1\
--%package debug\
-+%package debuginfo\
- Summary: Debug information for package %{name}\
-+Summary(pl.UTF-8): Informacje dla debuggera dla pakietu %{name}\
- Group: Development/Debug\
-+Requires: filesystem-debuginfo >= 3.0-16\
- AutoReqProv: 0\
--%description debug\
-+%description debuginfo\
- This package provides debug information for package %{name}.\
- Debug information is useful when developing applications that use this\
- package or when debugging this package.\
--%files debug -f debugfiles.list\
-+%description debuginfo -l pl.UTF-8\
-+Ten pakiet dostarcza informacje dla debuggera dla pakietu %{name}.\
-+Informacje te są przydatne przy rozwijaniu aplikacji używających tego\
-+pakietu oraz przy odpluskwianiu samego pakietu.\
-+%files debuginfo -f debugfiles.list\
- %defattr(-,root,root)\
- %endif\
- %{nil}
-@@ -1046,7 +1052,7 @@
- %{?buildroot:%{__rm} -rf '%{buildroot}'}
- %__spec_install_body %{___build_body}
- %__spec_install_post\
--%{?__debug_package:%{__debug_install_post}}\
-+%{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\
- %{__arch_install_post}\
- %{__os_install_post}\
- %{nil}
---- rpm-4.4.9.orig/platform.in 2008-01-31 19:20:08.676303626 +0200
-+++ rpm-4.4.9/platform.in 2008-01-31 19:20:50.844567337 +0200
-@@ -61,7 +61,7 @@
- %{nil}
+--- rpm-5.3.1/scripts/find-debuginfo.sh.wiget 2009-09-10 03:52:13.000000000 +0200
++++ rpm-5.3.1/scripts/find-debuginfo.sh 2010-05-30 16:53:33.275994510 +0200
+@@ -254,7 +254,10 @@ strip_to_debug()
+ $strip_glibs && case "$(file -bi "$2")" in
+ application/x-sharedlib*) g=-g ;;
+ esac
+- eu-strip --remove-comment $r $g ${keep_remove_args} -f "$1" "$2" || exit
++ local t=$(mktemp "/tmp/rpm.stripped.XXXXXX")
++ objcopy --compress-debug-sections "$2" || exit
++ eu-strip --remove-comment $r -f "$1" "$2" -o "$t" || exit
++ rm -f "$t"
+ chmod 444 "$1" || exit
+ }
- %__spec_install_post\
-- %{?__debug_package:%{__debug_install_post}}\
-+ %{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\
- %{__arch_install_post}\
- %{__os_install_post}\
- %{nil}
+++ /dev/null
-Index: lib/depends.c
-===================================================================
-RCS file: /v/rpm/cvs/rpm/lib/depends.c,v
-retrieving revision 1.404
-retrieving revision 1.405
-diff -w -u -r1.404 -r1.405
---- lib/depends.c 3 Jul 2008 15:08:05 -0000 1.404
-+++ lib/depends.c 17 Jul 2008 13:57:42 -0000 1.405
-@@ -1462,6 +1462,8 @@
- int terminate = 2; /* XXX terminate if rc >= terminate */
- int rc;
- int ourrc = 0;
-+ int dirname_deps;
-+ int symlink_deps;
-
- requires = rpmdsInit(requires);
- if (requires != NULL)
-@@ -1537,6 +1539,8 @@
- }
- }
-
-+ dirname_deps = rpmExpandNumeric("%{?_check_dirname_deps}%{?!_check_dirname_deps:1}");
-+ if (dirname_deps) {
- dirnames = rpmdsInit(dirnames);
- if (dirnames != NULL)
- while (ourrc < terminate && rpmdsNext(dirnames) >= 0) {
-@@ -1577,7 +1581,10 @@
- /*@switchbreak@*/ break;
- }
- }
-+ }
-
-+ symlink_deps = rpmExpandNumeric("%{?_check_symlink_deps}%{?!_check_symlink_deps:1}");
-+ if (symlink_deps) {
- linktos = rpmdsInit(linktos);
- if (linktos != NULL)
- while (ourrc < terminate && rpmdsNext(linktos) >= 0) {
-@@ -1595,6 +1602,7 @@
- dscolor = rpmdsColor(linktos);
- if (tscolor && dscolor && !(tscolor & dscolor))
- continue;
-+ }
-
- rc = unsatisfiedDepend(ts, linktos, adding);
-
+++ /dev/null
---- rpm-4.5/macros.in~ 2008-10-26 23:13:47.000000000 +0200
-+++ rpm-4.5/macros.in 2008-10-26 23:14:17.862069247 +0200
-@@ -811,7 +811,7 @@
- %_repackage_root %{nil}
-
- # If non-zero, all erasures will be automagically repackaged.
--%_repackage_all_erasures 1
-+%_repackage_all_erasures 0
-
- # Prevent pure erasure transactions with --rollback. Pure
- # erasure rollback transactions will undo an anaconda install,
-@@ -1476,7 +1476,7 @@
- #%__scriptlet_requires /bin/bash --rpm-requires
-
- # TLD rpm macros
--%_enable_debug_packages 1
-+%_enable_debug_packages 0
-
- #-----------------------------------------------------------------
- # CFLAGS and LDFLAGS used to build
+++ /dev/null
---- rpm-4.5/macros.in~ 2009-06-05 00:50:12.000000000 +0300
-+++ rpm-4.5/macros.in 2009-06-05 01:25:32.648494029 +0300
-@@ -746,8 +746,8 @@
-
- # Horowitz Key Protocol server configuration
- #
--%_hkp_keyserver hkp://subkeys.pgp.net
--%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
-+#%_hkp_keyserver hkp://subkeys.pgp.net
-+#%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
-
- #==============================================================================
- # ---- Transaction macros.
+++ /dev/null
-diff -ur rpm-4.5.orig/lib/rpmds.c rpm-4.5/lib/rpmds.c
---- rpm-4.5.orig/lib/rpmds.c 2019-06-01 18:55:39.433000000 +0200
-+++ rpm-4.5/lib/rpmds.c 2019-08-16 10:50:36.274000000 +0200
-@@ -3008,6 +3008,8 @@
- case SHT_DYNAMIC:
- data = NULL;
- while ((data = elf_getdata (scn, data)) != NULL) {
-+ if (shdr->sh_entsize == 0)
-+ continue;
- /*@-boundswrite@*/
- for (cnt = 0; cnt < (shdr->sh_size / shdr->sh_entsize); ++cnt) {
- dyn = gelf_getdyn (data, cnt, &dyn_mem);
-diff -ur rpm-4.5.orig/rpmdb/legacy.c rpm-4.5/rpmdb/legacy.c
---- rpm-4.5.orig/rpmdb/legacy.c 2007-07-30 04:28:13.000000000 +0200
-+++ rpm-4.5/rpmdb/legacy.c 2019-08-16 10:35:01.076000000 +0200
-@@ -99,7 +99,7 @@
- /*@-branchstate -uniondef @*/
- while (!bingo && (scn = elf_nextscn(elf, scn)) != NULL) {
- (void) gelf_getshdr(scn, &shdr);
-- if (shdr.sh_type != SHT_DYNAMIC)
-+ if (shdr.sh_type != SHT_DYNAMIC || shdr.sh_entsize == 0)
- continue;
- while (!bingo && (data = elf_getdata (scn, data)) != NULL) {
- int maxndx = data->d_size / shdr.sh_entsize;
+++ /dev/null
---- rpm-4.4.9/Doxyfile.in.orig 2007-05-13 05:20:43.000000000 +0200
-+++ rpm-4.4.9/Doxyfile.in 2007-05-22 17:41:12.107028314 +0200
-@@ -504,23 +504,6 @@
- @top_srcdir@/doc/manual/spec \
- @top_srcdir@/doc/manual/triggers \
- @top_srcdir@/doc/manual/tsort \
-- @top_srcdir@/file/src/apprentice.c \
-- @top_srcdir@/file/src/apptype.c \
-- @top_srcdir@/file/src/ascmagic.c \
-- @top_srcdir@/file/src/compress.c \
-- @top_srcdir@/file/src/file.c \
-- @top_srcdir@/file/src/file.h \
-- @top_srcdir@/file/src/fsmagic.c \
-- @top_srcdir@/file/src/funcs.c \
-- @top_srcdir@/file/src/is_tar.c \
-- @top_srcdir@/file/src/magic.c \
-- @top_srcdir@/file/src/magic.h \
-- @top_srcdir@/file/src/names.h \
-- @top_srcdir@/file/src/print.c \
-- @top_srcdir@/file/src/readelf.c \
-- @top_srcdir@/file/src/readelf.h \
-- @top_srcdir@/file/src/softmagic.c \
-- @top_srcdir@/file/src/tar.h \
- @top_srcdir@/lib/cpio.c \
- @top_srcdir@/lib/cpio.h \
- @top_srcdir@/lib/depends.c \
+++ /dev/null
---- rpm-4.3.orig/build/parsePreamble.c 2003-11-16 13:47:23.000000000 +0100
-+++ rpm-4.3/build/parsePreamble.c 2004-02-29 15:40:58.466804704 +0100
-@@ -942,6 +943,12 @@
- headerCopyTags(spec->packages->header, pkg->header,
- (int_32 *)copyTagsDuringParse);
-
-+ if (headerGetEntry(pkg->header, RPMTAG_EPOCH, NULL, NULL, NULL) == 0) {
-+ int num = 0;
-+ headerAddEntry(pkg->header, RPMTAG_EPOCH, RPM_INT32_TYPE, &num, 1);
-+ addMacro(spec->macros, "epoch", NULL, "0", RMIL_SPEC);
-+ }
-+
- if (checkForRequired(pkg->header, NVR))
- return RPMERR_BADSPEC;
-
+++ /dev/null
-diff -Nru rpm-4.1/lib/rpmrc.c rpm-4.1.new/lib/rpmrc.c
---- rpm-4.1/lib/rpmrc.c Tue Aug 20 16:53:44 2002
-+++ rpm-4.1.new/lib/rpmrc.c Tue Mar 11 18:41:48 2003
-@@ -1820,23 +1820,37 @@
- /* Expand ~/ to $HOME/ */
- fn[0] = '\0';
- if (r[0] == '~' && r[1] == '/') {
-+ const char * etc_dir = getenv("HOME_ETC");
- const char * home = getenv("HOME");
-- if (home == NULL) {
-- /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
-- if (rcfiles == rpmRcfiles && myrcfiles != r)
-- continue;
-- rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
-- rc = 1;
-- break;
-- }
-- if (strlen(home) > (sizeof(fn) - strlen(r))) {
-- rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
-- r);
-- rc = 1;
-- break;
-+ if (etc_dir) {
-+ if (strlen(etc_dir) > (sizeof(fn) - strlen(r))) {
-+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME_ETC is too large.\n"),r);
-+ rc = 1;
-+ break;
-+ }
-+ strcpy(fn, etc_dir);
-+ strncat(fn, "/", sizeof(fn) - strlen(fn));
-+ r+=2;
-+ } else {
-+ if (home == NULL) {
-+ /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
-+ if (rcfiles == rpmRcfiles && myrcfiles != r)
-+ continue;
-+ rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
-+ rc = 1;
-+ break;
-+ }
-+ if (strlen(home) > (sizeof(fn) - strlen(r))) {
-+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
-+ r);
-+ rc = 1;
-+ break;
-+ }
-+ strcpy(fn, home);
-+ r++;
- }
-- strcpy(fn, home);
-- r++;
-+
-+
- }
- strncat(fn, r, sizeof(fn) - (strlen(fn) + 1));
- fn[sizeof(fn)-1] = '\0';
---- rpm-4.5/po/pl.po~ 2008-04-13 03:27:17.000000000 +0300
-+++ rpm-4.5/po/pl.po 2008-04-13 03:27:53.561742210 +0300
-@@ -3088,6 +3088,10 @@
- msgid "Cannot read %s, HOME is too large.\n"
- msgstr "Nie mo¿na odczytaæ %s, HOME jest zbyt du¿e.\n"
-
-+#: lib/rpmrc.c:1935
-+msgid "Cannot read %s, HOME_ETC is too large.\n"
-+msgstr "Nie mo¿na odczytaæ %s, HOME_ETC jest zbyt du¿e.\n"
-+
- #: lib/rpmrc.c:1961
- #, c-format
- msgid "Unable to open %s for reading: %s.\n"
+++ /dev/null
---- ./scripts/gendiff.org 2008-04-06 10:48:23.000000000 +0200
-+++ ./scripts/gendiff 2009-02-11 15:44:23.070120721 +0100
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
-
- function usage () {
- echo "usage: $0 <directory> <diff-extension>" 1>&2
+++ /dev/null
---- rpm-4.1/rpmdb/header.c.wiget2 Thu Sep 19 00:47:29 2002
-+++ rpm-4.1/rpmdb/header.c Thu Sep 19 00:52:10 2002
-@@ -1645,7 +1645,8 @@
- }
- /*@=boundsread@*/
-
-- return entry->data;
-+/* when everything fail, try gettext */
-+ return ((entry->data != NULL) && *(char*)(entry->data)) ? _(entry->data) : entry->data;
- }
-
- /**
+++ /dev/null
---- rpm-4.5/rpmio/ugid.c 2009-06-05 00:46:30.450894061 +0300
-+++ rpm-4.5/rpmio/ugid.c 2009-06-19 19:35:42.374530092 +0300
-@@ -101,10 +101,10 @@
- /*@=internalglobs@*/
- grent = getgrnam(thisGname);
- if (grent == NULL) {
-- /* XXX The filesystem package needs group/lock w/o getgrnam. */
-- if (strcmp(thisGname, "lock") == 0) {
-+ /* XXX The FHS package needs group/uucp w/o getgrnam, filesystem needs adm */
-+ if (strcmp(thisGname, "uucp") == 0) {
- /*@-boundswrite@*/
-- *gid = lastGid = 54;
-+ *gid = lastGid = 14;
- /*@=boundswrite@*/
- return 0;
- } else
-@@ -114,6 +114,12 @@
- /*@=boundswrite@*/
- return 0;
- } else
-+ if (strcmp(thisGname, "adm") == 0) {
-+/*@-boundswrite@*/
-+ *gid = lastGid = 4;
-+/*@=boundswrite@*/
-+ return 0;
-+ } else
- return -1;
- }
- }
+++ /dev/null
-diff -urp rpm-4.5.orig/rpmio/rpmio.c rpm-4.5/rpmio/rpmio.c
---- rpm-4.5.orig/rpmio/rpmio.c 2018-10-23 10:42:28.780416609 +0000
-+++ rpm-4.5/rpmio/rpmio.c 2018-10-23 10:46:39.497416609 +0000
-@@ -422,7 +422,7 @@ static inline int fdSeek(void * cookie,
- /*@modifies fileSystem, internalState @*/
- {
- #ifdef USE_COOKIE_SEEK_POINTER
-- _IO_off64_t p = *pos;
-+ off64_t p = *pos;
- #else
- off_t p = pos;
- #endif
-@@ -2432,7 +2432,7 @@ static inline int gzdSeek(void * cookie,
- /*@modifies fileSystem, internalState @*/
- {
- #ifdef USE_COOKIE_SEEK_POINTER
-- _IO_off64_t p = *pos;
-+ off64_t p = *pos;
- #else
- off_t p = pos;
- #endif
-@@ -2804,7 +2804,7 @@ DBGIO(fd, (stderr, "==> Fwrite(%p,%u,%u,
- int Fseek(FD_t fd, _libio_off_t offset, int whence) {
- fdio_seek_function_t _seek;
- #ifdef USE_COOKIE_SEEK_POINTER
-- _IO_off64_t o64 = offset;
-+ off64_t o64 = offset;
- _libio_pos_t pos = &o64;
- #else
- _libio_pos_t pos = offset;
-@@ -2989,13 +2989,6 @@ static inline void cvtfmode (const char
- }
- /*@=boundswrite@*/
-
--#if _USE_LIBIO
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0
--/* XXX retrofit glibc-2.1.x typedef on glibc-2.0.x systems */
--typedef _IO_cookie_io_functions_t cookie_io_functions_t;
--#endif
--#endif
--
- /*@-boundswrite@*/
- FD_t Fdopen(FD_t ofd, const char *fmode)
- {
-diff -urp rpm-4.5.orig/rpmio/rpmio.h rpm-4.5/rpmio/rpmio.h
---- rpm-4.5.orig/rpmio/rpmio.h 2018-10-23 10:42:28.788416609 +0000
-+++ rpm-4.5/rpmio/rpmio.h 2018-10-23 10:43:19.413416609 +0000
-@@ -34,7 +34,7 @@ typedef /*@abstract@*/ struct pgpDigPara
- #if !defined(__LCLINT__) && defined(__GLIBC__) && \
- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2))
- #define USE_COOKIE_SEEK_POINTER 1
--typedef _IO_off64_t _libio_off_t;
-+typedef off64_t _libio_off_t;
- typedef _libio_off_t * _libio_pos_t;
- #else
- typedef off_t _libio_off_t;
+++ /dev/null
---- rpm-4.5/rpmio/rpmrpc.c~ 2010-12-19 14:19:57.678043380 +0100
-+++ rpm-4.5/rpmio/rpmrpc.c 2010-12-19 14:20:39.353812967 +0100
-@@ -1711,6 +1711,17 @@
- if (_rpmio_debug)
- fprintf(stderr, "*** Glob(%s,0x%x,%p,%p)\n", pattern, (unsigned)flags, (void *)errfunc, pglob);
- /*@=castfcnptr@*/
-+
-+ /* same as upstream glob with difference that gl_stat is Lstat now */
-+ pglob->gl_closedir = closedir;
-+ pglob->gl_readdir = readdir;
-+ pglob->gl_opendir = opendir;
-+ pglob->gl_lstat = Lstat;
-+ pglob->gl_stat = Lstat;
-+
-+/*@=type@*/
-+ flags |= GLOB_ALTDIRFUNC;
-+
- switch (ut) {
- case URL_IS_HTTPS:
- case URL_IS_HTTP:
---- rpm-4.5/configure.ac~ 2010-12-19 13:46:37.917863585 +0100
-+++ rpm-4.5/configure.ac 2010-12-19 13:50:49.826071048 +0100
-@@ -1004,8 +1004,8 @@
- #fi
- #
- #if test "$rpm_cv_glob" = yes; then
-- AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
-- AC_LIBOBJ(glob)
-+# AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
-+# AC_LIBOBJ(glob)
- AC_LIBOBJ(fnmatch)
- #fi
-
-
+++ /dev/null
-diff -urN rpm/lib/rpmfc.c rpm.new/lib/rpmfc.c
---- rpm/lib/rpmfc.c 2008-12-28 13:38:03.000000000 +0100
-+++ rpm.new/lib/rpmfc.c 2008-12-31 22:20:54.000000000 +0100
-@@ -960,13 +960,15 @@
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
- {
- const char * fn = fc->fn[fc->ix];
-- int flags = 0;
-+ int flags = 0, xx;
-
- if (fc->skipProv)
- flags |= RPMELF_FLAG_SKIPPROVIDES;
- if (fc->skipReq)
- flags |= RPMELF_FLAG_SKIPREQUIRES;
-
-+ xx = rpmfcHelper(fc, 'P', "gstreamer");
-+
- return rpmdsELF(fn, flags, rpmfcMergePR, fc);
- }
-
-diff -urN rpm/macros.in rpm.new/macros.in
---- rpm/macros.in 2008-12-28 13:38:02.000000000 +0100
-+++ rpm.new/macros.in 2008-12-28 15:18:46.000000000 +0100
-@@ -1505,5 +1505,7 @@
- # helper is also used by %{_rpmhome}/rpmdeps --provides
- %__mimetype_provides %{_rpmhome}/mimetypedeps.sh --provides
-
-+%__gstreamer_provides %{nil}
-+
- # \endverbatim
- #*/
+++ /dev/null
---- rpm-4.3/build/files.c.orig 2003-11-24 19:10:54.000000000 +0100
-+++ rpm-4.3/build/files.c 2003-11-24 19:20:05.827568008 +0100
-@@ -2119,7 +2119,7 @@
- goto exit;
-
- /* Verify that file attributes scope over hardlinks correctly. */
-- if (checkHardLinks(&fl))
-+ if (checkHardLinks(&fl) && !rpmExpandNumeric("%{_hack_dontneed_PartialHardlinkSets}"))
- (void) rpmlibNeedsFeature(pkg->header,
- "PartialHardlinkSets", "4.0.4-1");
-
+++ /dev/null
---- rpm-4.5/lib/rpmfc.c.orig 2012-02-13 20:28:52.564758176 +0100
-+++ rpm-4.5/lib/rpmfc.c 2012-02-14 19:01:50.810809655 +0100
-@@ -472,7 +472,10 @@
- }
- i++;
- EVR = pav[i];
--assert(EVR != NULL);
-+ if(EVR == NULL) {
-+ rpmMessage(RPMMESS_ERROR, _("%s helper returned empty version info for %s, omitting\n"), nsdep, N);
-+ continue;
-+ }
- }
- /*@=branchstate@*/
-
+++ /dev/null
---- rpm-4.5/rpmdb/rpmdb.c~ 2008-10-26 21:16:40.000000000 +0200
-+++ rpm-4.5/rpmdb/rpmdb.c 2008-10-26 22:30:16.229630486 +0200
-@@ -846,7 +846,7 @@
- if (fd != NULL) {
- xx = Fclose(fd);
- fd = NULL;
-- if (headerGetEntry(h, RPMTAG_INSTALLTID, NULL, &iidp, NULL)) {
-+ if (headerGetEntry(h, RPMTAG_INSTALLTIME, NULL, &iidp, NULL)) {
- struct utimbuf stamp;
- stamp.actime = *iidp;
- stamp.modtime = *iidp;
--- /dev/null
+--- rpm-5.4.15/rpmio/macro.c~ 2014-12-07 20:24:53.000000000 +0100
++++ rpm-5.4.15/rpmio/macro.c 2014-12-07 20:44:45.739944044 +0100
+@@ -1795,6 +1795,7 @@
+ for (path = files; *path; path++) {
+ if (rpmFileHasSuffix(*path, ".rpmnew") ||
+ rpmFileHasSuffix(*path, ".rpmsave") ||
++ rpmFileHasSuffix(*path, "~") ||
+ rpmFileHasSuffix(*path, ".rpmorig")) {
+ continue;
+ }
+++ /dev/null
- 4.4.9 -> 4.5:
-+ - jbj: add a relation to to force install-before-erase.
-+ - jbj: display dependency loops as an error for now.
- - glen: do not skip %clean from spec file
- - robert: install rpmdeps and debugedit to pkglibdir as on HEAD
- - jbj: fix: python ts.hdrFromFdno(fdno) segfault.
---- rpm-4.5/lib/depends.c~ 2008/10/26 18:29:50 1.327.2.10
-+++ rpm-4.5/lib/depends.c 2008-10-27 14:42:52.984295775 +0200
-@@ -1936,7 +1936,7 @@
- return 0;
-
- /* Avoid certain dependency relations. */
-- if (teType == TR_ADDED && ignoreDep(ts, p, q))
-+ if (ignoreDep(ts, p, q))
- return 0;
-
- /* Avoid redundant relations. */
-@@ -2191,6 +2191,25 @@
- }
- }
-
-+
-+ /* Ensure that erasures follow installs during upgrades. */
-+ if (rpmteType(p) == TR_REMOVED && p->flink.Pkgid && p->flink.Pkgid[0]) {
-+
-+ qi = rpmtsiInit(ts);
-+ while ((q = rpmtsiNext(qi, TR_ADDED)) != NULL) {
-+ if (strcmp(q->pkgid, p->flink.Pkgid[0]))
-+ continue;
-+ requires = rpmdsFromPRCO(q->PRCO, RPMTAG_NAME);
-+ if (requires != NULL) {
-+ /* XXX disable erased arrow reversal. */
-+ p->type = TR_ADDED;
-+ (void) addRelation(ts, p, selected, requires);
-+ p->type = TR_REMOVED;
-+ }
-+ }
-+ qi = rpmtsiFree(qi);
-+ }
-+
- if (_autobits != 0xffffffff)
- {
-
-@@ -2401,7 +2420,7 @@
- const char * dp;
- char buf[4096];
- int msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS))
-- ? RPMMESS_WARNING : RPMMESS_DEBUG;
-+ ? RPMMESS_WARNING : RPMMESS_ERROR;
- ;
-
- /* Unchain predecessor loop. */
+++ /dev/null
---- rpm-4.5/installplatform.orig 2013-07-17 10:01:04.000000000 +0000
-+++ rpm-4.5/installplatform 2013-07-17 10:18:26.094178797 +0000
-@@ -35,7 +35,7 @@
- sparc*) SUBSTS='s_sparc\(64\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;;
- powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;;
- s390*) SUBSTS='s_s390x_s390_ s_s390\([^x]\|$\)_s390x\1_' ;;
-- x86_64|amd64|ia32e) SUBSTS='s,x86_64,x86_64, s,x86_64,ia32e, s,x86_64,amd64,' ;;
-+ x86_64|amd64|ia32e) SUBSTS='s|x86_64|x86_64| s|x86_64|amd64|' ;;
- *) SUBSTS=y___ ;;
- esac
-
-@@ -50,7 +50,7 @@
- [ -d $PPD ] || mkdir $PPD
-
- RPMRC_OPTFLAGS="`sed -n 's/^optflags: '$ARCH' //p' $RPMRC`"
-- RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e 's, ,\ ,g'`"
-+ RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e 's| |\ |g'`"
- case $RPMRC_OPTFLAGS in
- *-g*) ;;
- *) RPMRC_OPTFLAGS="$RPMRC_OPTFLAGS -g" ;;
-@@ -71,45 +71,45 @@
- esac
-
- if [ -n "$MULTILIBNO" ]; then
-- MULTILIBSED='-e /^@MULTILIB/d -e s,@MULTILIBNO@,'$MULTILIBNO,
-+ MULTILIBSED='-e /^@MULTILIB/d -e s|@MULTILIBNO@|'$MULTILIBNO'|'
- else
- MULTILIBSED='-e /^@MULTILIBSTART@/,/^@MULTILIBEND@/d'
- fi
-
- case $VENDOR in
- yellowdog)
-- VENDORSED='-e s,^@yellowdog@,,'
-+ VENDORSED='-e s|^@yellowdog@||'
- ;;
- tld)
-- VENDORSED='-e s,^@tld@,,'
-+ VENDORSED='-e s|^@tld@||'
- RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e "s/ -g/ /"`"
- ;;
- mandrake)
-- VENDORSED='-e s,^@mandrake@,,'
-+ VENDORSED='-e s|^@mandrake@||'
- RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e s/i386/i686/`"
- ;;
- conectiva)
-- VENDORSED='-e s,^@conectiva@,,'
-+ VENDORSED='-e s|^@conectiva@||'
- ;;
- redhat)
-- VENDORSED='-e s,^@redhat@,,'
-+ VENDORSED='-e s|^@redhat@||'
- ;;
- apple)
-- VENDORSED='-e s,^@apple@,,'
-+ VENDORSED='-e s|^@apple@||'
- ;;
- crux)
-- VENDORSED='-e s,^@crux@,,'
-+ VENDORSED='-e s|^@crux@||'
- ;;
- esac
-
- cat $PLATFORM \
-- | sed -e "s,@RPMRC_OPTFLAGS@,$RPMRC_OPTFLAGS," \
-- -e "s,@RPMRC_ARCH@,$ARCH," \
-- -e "s,@RPMRC_GNU@,$RPMRC_GNU," \
-- -e "s,@LIB@,$LIB," \
-- -e "s,@ARCH_INSTALL_POST@,$ARCH_INSTALL_POST," \
-- -e "s,@DEFAULTDOCDIR@,$DEFAULTDOCDIR," \
-- -e '/\${\w*:-/!s,\${,%{_,' \
-+ | sed -e "s|@RPMRC_OPTFLAGS@|$RPMRC_OPTFLAGS|" \
-+ -e "s|@RPMRC_ARCH@|$ARCH|" \
-+ -e "s|@RPMRC_GNU@|$RPMRC_GNU|" \
-+ -e "s|@LIB@|$LIB|" \
-+ -e "s|@ARCH_INSTALL_POST@|$ARCH_INSTALL_POST|" \
-+ -e "s|@DEFAULTDOCDIR@|$DEFAULTDOCDIR|" \
-+ -e '/\${\w*:-/!s|\${|%{_|' \
- $MULTILIBSED \
- $VENDORSED \
- | grep -v '^@' \
-@@ -117,19 +117,20 @@
-
- done
-
-+
- { cd ${DESTDIR}/${pkglibdir}
- [ -L noarch-${OS} ] && rm -f noarch-${OS} 2>/dev/null
- mkdir -p noarch-${OS}
-- sed -e "/^%_arch/s,${arch},noarch," ${arch}-${OS}/macros | grep -v '^%optflags' > noarch-${OS}/macros
-+ sed -e "/^%_arch/s|${arch}|noarch|" ${arch}-${OS}/macros | grep -v '^%optflags' > noarch-${OS}/macros
- # [ -d ${VENDOR} ] || mkdir ${VENDOR}
- # for i in brp-* find-lang.sh find-provides find-requires perl.prov perl.req
- # do
--# sed -e "s,/usr/lib/rpm,/usr/lib/rpm/${VENDOR},g" < $i > ${VENDOR}/$i
-+# sed -e "s|/usr/lib/rpm|/usr/lib/rpm/${VENDOR}|g" < $i > ${VENDOR}/$i
- # chmod +x ${VENDOR}/$i
- # done
- ## chmod -x ${VENDOR}/perl.req
- # echo "macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/${VENDOR}/macros:/etc/rpm/macros.specspo:/etc/rpm/macros.cdb" > ${VENDOR}/rpmrc
--# sed -e "s,/usr/lib/rpm,/usr/lib/rpm/${VENDOR},g" < ${arch}-${OS}/macros | grep -v '^%(_arch|optflags)' > ${VENDOR}/macros
-+# sed -e "s|/usr/lib/rpm|/usr/lib/rpm/${VENDOR}|g" < ${arch}-${OS}/macros | grep -v '^%(_arch|optflags)' > ${VENDOR}/macros
- }
-
- rm $TEMPRC
+++ /dev/null
---- rpm-4.3/lib/psm.c.orig 2003-05-10 17:20:15.000000000 +0200
-+++ rpm-4.3/lib/psm.c 2003-08-24 21:41:29.637316776 +0200
-@@ -550,7 +550,10 @@
- xx = headerNVR(h, &n, &v, &r);
-
- /* XXX bash must have functional libtermcap.so.2 */
-- if (!strcmp(n, "libtermcap"))
-+ /* if (!strcmp(n, "libtermcap"))
-+ * -- always run ldconfig, these checks didn't work when few packages with
-+ * shared libs were installed just one after another in the same
-+ * transaction */
- ldconfig_done = 0;
-
- /*
+++ /dev/null
---- rpm-4.5/lib/rpmfc.c.org 2012-02-29 16:32:05.655058968 +0100
-+++ rpm-4.5/lib/rpmfc.c 2012-02-29 16:36:22.430972834 +0100
-@@ -1114,9 +1114,31 @@
- /* XXX skip all files in /dev/ which are (or should be) %dev dummies. */
- else if (slen >= fc->brlen+sizeof("/dev/") && !strncmp(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
- ftype = "";
-- else
-+ else {
-+ char *old_ctype = setlocale(LC_CTYPE, NULL);
-+ char *old_collate = setlocale(LC_COLLATE, NULL);
-+
-+ if (old_ctype) {
-+ old_ctype = xstrdup(old_ctype);
-+ setlocale(LC_CTYPE, "C");
-+ }
-+ if (old_collate) {
-+ old_collate = xstrdup(old_collate);
-+ setlocale(LC_COLLATE, "C");
-+ }
-+
- ftype = magic_file(ms, s);
-
-+ if (old_ctype) {
-+ setlocale(LC_CTYPE, old_ctype);
-+ _free(old_ctype);
-+ }
-+ if (old_collate) {
-+ setlocale(LC_COLLATE, old_collate);
-+ _free(old_collate);
-+ }
-+ }
-+
- if (ftype == NULL) {
- xx = RPMERR_EXEC;
- rpmError(xx, _("magic_file(ms, \"%s\") failed: mode %06o %s\n"),
do
case "$possible" in
*.la)
-- if grep -iq '^# Generated by ltmain.sh' "$possible" 2> /dev/null ; then
+- if grep -Eiq '^# Generated by (libtool|ltmain.sh)' "$possible" 2> /dev/null ; then
+ if file -L "$possible" | grep -iq 'libtool library file' 2> /dev/null ; then
possible="`echo ${possible} | sed -e s,${RPM_BUILD_ROOT}/,/,`"
echo "libtool($possible)"
+++ /dev/null
-diff -urN rpm-4.5/rpmdb/Makefile.am rpm-4.5.new/rpmdb/Makefile.am
---- rpm-4.5/rpmdb/Makefile.am 2008-09-06 16:46:54.000000000 +0200
-+++ rpm-4.5.new/rpmdb/Makefile.am 2008-09-06 19:35:40.000000000 +0200
-@@ -49,7 +49,8 @@
- $(top_builddir)/rpmio/librpmio.la \
- @WITH_POPT_LIB@ \
- @WITH_SQLITE3_LIB@ \
-- @WITH_LIBELF_LIB@
-+ @WITH_LIBELF_LIB@ \
-+ @WITH_SELINUX_LIB@
- librpmdb_la_LIBADD = $(DBLIBOBJS) $(libdb_la)
- librpmdb_la_DEPENDENCIES = $(DBLIBOBJS) $(libdb_la)
-
+++ /dev/null
---- rpm-4.4.3/configure.ac.orig 2005-11-19 11:30:59.197389000 +0100
-+++ rpm-4.4.3/configure.ac 2005-11-19 16:17:10.397970072 +0100
-@@ -439,7 +439,7 @@
- ])
-
- AC_CHECK_HEADERS(aio.h)
--AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
-+dnl not used? AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
-
- dnl Better not use fchmod at all.
- AC_CHECK_FUNC(fchmod)
+++ /dev/null
---- rpm-4.5/lib/psm.c 2010-05-08 14:14:22.817080224 +0200
-+++ rpm-4.5/lib/psm.c 2010-05-08 14:14:03.063343062 +0200
-@@ -469,6 +469,7 @@
- /*@modifies psm, fileSystem, internalState @*/
- {
- const rpmts ts = psm->ts;
-+ int pwdFdno = -1;
- int rootFdno = -1;
- const char *n, *v, *r;
- rpmRC rc = RPMRC_OK;
-@@ -487,9 +488,12 @@
-
- /* Save the current working directory. */
- /*@-nullpass@*/
-- rootFdno = open(".", O_RDONLY, 0);
-+ pwdFdno = open(".", O_RDONLY, 0);
- /*@=nullpass@*/
-
-+ /* Save the current root directory. */
-+ rootFdno = open("/", O_RDONLY, 0);
-+
- /* Get into the chroot. */
- if (!rpmtsChrootDone(ts)) {
- const char *rootDir = rpmtsRootDir(ts);
-@@ -554,10 +558,12 @@
- /*@=superuser =noeffect @*/
- xx = rpmtsSetChrootDone(ts, 0);
- }
-+ xx = fchdir(pwdFdno);
- } else
-- xx = fchdir(rootFdno);
-+ xx = fchdir(pwdFdno);
-
- xx = close(rootFdno);
-+ xx = close(pwdFdno);
-
- return rc;
- }
+++ /dev/null
---- rpm-4.5/lib/psm.c~ 2008-11-22 17:18:39.325237949 +0100
-+++ rpm-4.5/lib/psm.c 2008-11-22 17:30:16.807430141 +0100
-@@ -2308,13 +2308,16 @@
- replace_lzma_with_gzip(psm->oh);
- }
- *t = '\0';
-- t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
-- if (!strcmp(payload_compressor, "gzip"))
-- t = stpcpy(t, ".gzdio");
-- if (!strcmp(payload_compressor, "bzip2"))
-- t = stpcpy(t, ".bzdio");
-- if (!strcmp(payload_compressor, "lzma"))
-- t = stpcpy(t, ".lzdio");
-+ if (!strcmp(payload_compressor, "lzma")) {
-+ t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w7" : "r"));
-+ t = stpcpy(t, ".lzdio");
-+ } else {
-+ t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
-+ if (!strcmp(payload_compressor, "gzip"))
-+ t = stpcpy(t, ".gzdio");
-+ if (!strcmp(payload_compressor, "bzip2"))
-+ t = stpcpy(t, ".bzdio");
-+ }
-
- /*@-branchstate@*/
- if (!hge(fi->h, RPMTAG_PAYLOADFORMAT, NULL,
+++ /dev/null
---- rpm-4.5/rpmio/lzdio.c.org 2008-11-05 18:13:43.655364585 +0100
-+++ rpm-4.5/rpmio/lzdio.c 2008-11-05 18:13:51.136793343 +0100
-@@ -132,7 +132,7 @@
- for (i = 3; i < 1024; i++)
- xx = close(i);
- lzma = rpmGetPath("%{?__lzma}%{!?__lzma:/usr/bin/lzma}", NULL);
-- if (execle(lzma, "lzma", level, NULL, env))
-+ if (execle(lzma, "lzma", level, "-M0", NULL, env))
- _exit(1);
- lzma = _free(lzma);
- }
+++ /dev/null
---- rpm-4.4.9/rpmio/LzmaDecode.h.orig 2007-10-14 19:23:02.629594398 +0000
-+++ rpm-4.4.9/rpmio/LzmaDecode.h 2007-10-14 19:23:16.628653630 +0000
-@@ -35,7 +35,7 @@
- /* #define _LZMA_LOC_OPT */
- /* Enable local speed optimizations inside code */
-
--/* #define _LZMA_SYSTEM_SIZE_T */
-+#define _LZMA_SYSTEM_SIZE_T
- /* Use system's size_t. You can use it to enable 64-bit sizes supporting*/
-
- #ifndef UInt32
+++ /dev/null
---- rpm-4.5/scripts/rpm2cpio 2008-08-19 10:31:53.658158936 +0300
-+++ rpm-4.4.9/scripts/rpm2cpio 2008-10-05 00:44:53.976068978 +0300
-@@ -24,13 +24,13 @@
- o=`expr $o + $hdrsize`
-
--comp=`dd if="$pkg" ibs=$o skip=1 count=1 2>/dev/null \
-- | dd bs=3 count=1 2>/dev/null`
-+comp=$(dd if="$pkg" ibs=$o skip=1 count=1 2>/dev/null \
-+ | dd bs=3 count=1 2> /dev/null)
-
--gz="`echo . | awk '{ printf("%c%c", 0x1f, 0x8b); }'`"
-+gz="$(echo -en '\037\0213')"
- case "$comp" in
- BZh) dd if="$pkg" ibs=$o skip=1 2>/dev/null | bunzip2 ;;
- "$gz"*) dd if="$pkg" ibs=$o skip=1 2>/dev/null | gunzip ;;
- # no magic in old lzma format, if unknown we assume that's lzma for now
-- *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | lzma d -si -so ;;
-+ *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | lzma -dc - ;;
- #*) echo "Unrecognized rpm file: $pkg"; return 1 ;;
- esac
+++ /dev/null
---- rpm-4.5/configure.ac~ 2008-09-03 18:51:51.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-09-03 19:09:02.754451743 +0300
-@@ -25,6 +25,7 @@
- AC_PROG_AWK
- AC_PROG_CC
- AC_PROG_CPP
-+AC_PROG_CXX
- AC_PROG_INSTALL
- AC_PROG_LN_S
- AC_PROG_MAKE_SET
+++ /dev/null
-diff -ur rpm-4.5.orig/macros.in rpm-4.5/macros.in
---- rpm-4.5.orig/macros.in 2013-07-17 11:43:34.000000000 +0000
-+++ rpm-4.5/macros.in 2013-07-17 11:55:15.035117233 +0000
-@@ -277,6 +277,9 @@
- #
- #%distribution
-
-+# TLD Linux Release for backward compatibility with PLD spec files
-+%pld_release ti
-+
- # Configurable distribution URL, same as DistURL: tag in a specfile.
- # The URL will be used to supply reliable information to tools like
- # rpmfind.
-@@ -1449,7 +1452,7 @@
- # Note: Used iff _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
- %__libtool_provides %{_rpmhome}/libtooldeps.sh --provides %{buildroot} %{name}
--%__libtool_requires %{_rpmhome}/libtooldeps.sh --requires %{buildroot} %{name}
-+%__libtool_requires %{nil}
-
- #------------------------------------------------------------------------
- # pkgconfig(...) configuration.
-@@ -1459,7 +1462,7 @@
- # Note: Used iff _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
- %__pkgconfig_provides %{_rpmhome}/pkgconfigdeps.sh --provides
--%__pkgconfig_requires %{_rpmhome}/pkgconfigdeps.sh --requires
-+%__pkgconfig_requires %{nil}
-
- #------------------------------------------------------------------------
- # executable(...) configuration.
-@@ -1478,16 +1481,49 @@
- #-----------------------------------------------------------------
- # CFLAGS and LDFLAGS used to build
-
--%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-4 -fno-debug-types-section -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}}
-+%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-4 -fno-debug-types-section -fvar-tracking-assignments -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}}
-+# -feliminate-dwarf2-dups disabled until PR ld/3290 is fixed.
-
- %debugcflags -O0 -g -Wall
-+%debugcppflags %{nil}
-+%debugldflags %{nil}
-+
-+%optldflags -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc
-+%optcppflags %{nil}
-
- # Warning: those macros are overwritten by macros.build,
- # left here for compatibility
--%rpmcflags %{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}
--%rpmcxxflags %{rpmcflags}
--%rpmldflags %{!?no_build_with_as_needed:-Wl,--as-needed}
--
-+%rpmcflags %(awk 'BEGIN {
-+ split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
-+ split("%{?filterout} %{?filterout_c} %{?filterout_ld}",F);
-+ %{filter_out}
-+}')
-+%rpmcppflags %(awk 'BEGIN {
-+ split("%{?debug:%debugcppflags}%{!?debug:%optcppflags}%{?debuginfocppflags}",I);
-+ split("%{?filterout} %{?filterout_cpp} %{?filterout_cpp}",F);
-+ %{filter_out}
-+}')
-+%rpmcxxflags %(awk 'BEGIN {
-+ split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
-+ split("%{?filterout} %{?filterout_cxx} %{?filterout_ld}",F);
-+ %{filter_out}
-+}')
-+%rpmldflags %(awk 'BEGIN {
-+ split("%{?optldflags}",I);
-+ split("%{?filterout_ld}",F)
-+ %{filter_out}
-+}')
-+
-+# common compilation flags
-+%_fortify_cflags -Wp,-D_FORTIFY_SOURCE=2
-+
-+# cf http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments
-+%Werror_cflags -Wformat -Werror=format-security
-+
-+%_ssp_cflags -fstack-protector --param=ssp-buffer-size=4
-+%__common_cflags -O2 -fwrapv -pipe %{Werror_cflags} %{debuginfocflags} %{?_fortify_cflags} %{!?nospecflags:%{?specflags}}
-+%__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
-+
- #------------------------------------------------------------------------
- # mimetype(...) configuration.
- #
+++ /dev/null
-%define __gstreamer_provides /usr/lib/rpm/gstreamerdeps.sh --provides
+++ /dev/null
-%define __java_provides %{nil}
-%define __java_requires env RPM_BUILD_ROOT=%{buildroot} /usr/lib/rpm/java-find-requires
+++ /dev/null
---- rpm-4.4.9/macros.in 2008-04-04 23:15:28.121279270 +0300
-+++ rpm-4.5/macros.in 2008-09-03 16:47:30.861766714 +0300
-@@ -53,6 +53,7 @@
- %__ditto @__DITTO@
- %__file @__FILE@
- %__find @__FIND@
-+%__git @__GIT@
- %__gpg @__GPG@
- %__grep @__GREP@
- %__gzip @__GZIP@
-@@ -62,6 +62,7 @@
- %__install_info @__INSTALL_INFO@
- %__ldconfig @__LDCONFIG@
- %__lua @__LUA@
-+%__ln @__LN@
- %__ln_s @LN_S@
- %__lzma @__LZMA@
- %__lzop @__LZOP@
-@@ -77,6 +78,7 @@
- %__php @__PHP@
- %__python @__PYTHON@
- %__rm @__RM@
-+%__rmdir @__RMDIR@
- %__rsh @__RSH@
- %__sed @__SED@
- %__sh @__SH@
-@@ -87,6 +89,7 @@
- %__unzip @__UNZIP@
- %__wget @__WGET@
- %__xar @__XAR@
-+%__xz @__XZ@
-
- #==============================================================================
- # ---- Build system path macros.
-@@ -109,6 +109,10 @@
- %__automake automake
- %__autoconf autoconf
-
-+# compiler used to build kernel and kernel modules
-+%kgcc %{__cc}
-+%kgcc_package gcc
-+
- #==============================================================================
- # Conditional build stuff.
-
-@@ -206,7 +210,7 @@
- %endif\
- %{nil}
-
--%_defaultdocdir %{_usr}/doc
-+%_defaultdocdir %{_usr}/share/doc
-
- # The path to the pgp executable (legacy, use %{__pgp} instead).
- %_pgpbin %{__pgp}
-@@ -233,12 +237,12 @@
- # The directory where newly built source packages will be written.
- %_srcrpmdir %{_topdir}/SRPMS
-
--# Directory where temporaray files can be created.
--%_tmppath %{_var}/tmp
-+# Directory where temporary files can be created.
-+%_tmppath %(echo "${TMPDIR:-/tmp}")
- %tmpdir %{_tmppath}
-
- # Path to top of build area.
--%_topdir %{_usrsrc}/rpm
-+%_topdir %(echo $HOME)/rpm
-
- #==============================================================================
- # ---- Optional rpmrc macros.
-@@ -248,7 +252,7 @@
- # Configurable build root path, same as BuildRoot: in a specfile.
- # (Note: the configured macro value will override the spec file value).
- #
--%buildroot %{_tmppath}/%{name}-root
-+%buildroot %{_tmppath}/%{name}-%{version}-root-%(id -u -n)
-
- # The sub-directory (relative to %{_builddir}) where sources are compiled.
- # This macro is set after processing %setup, either explicitly from the
-@@ -347,8 +351,8 @@
- # "w9.bzdio" bzip2 level 9.
- # "w9.lzdio" lzma level 9.
- #
--#%_source_payload w9.gzdio
--#%_binary_payload w9.gzdio
-+%_source_payload w9.gzdio
-+%_binary_payload w9.lzdio
-
- # Archive formats to use for source/binary package payloads.
- # "cpio" cpio archive (default)
-@@ -508,7 +512,7 @@
-
- #
- # Path to magic file used for file classification.
--%_rpmfc_magic_path %{_rpmhome}/magic
-+%_rpmfc_magic_path /usr/share/file/magic
-
- #==============================================================================
- # ---- Database configuration macros.
-@@ -954,7 +954,7 @@
-
- %___build_shell %{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}
- %___build_args -e
--%___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}
-+%___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{?_clean_env:%{_clean_env} }%{___build_shell} %{___build_args}
- %___build_pre \
- RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
- RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
-@@ -991,9 +995,12 @@
- %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\
- export CLASSPATH}\
- unset PERL_MM_OPT || :\
-- LANG=C\
-- export LANG\
-- unset DISPLAY || :\
-+ export LC_ALL=C\
-+ export LANG=C\
-+ unset LINGUAS ||:\
-+ unset LANGUAGE ||:\
-+ unset LC_MESSAGES ||:\
-+ unset DISPLAY ||:\
- \
- %{verbose:set -x}%{!verbose:exec > /dev/null}\
- umask 022\
-@@ -1127,17 +1134,17 @@
- %_exec_prefix %{_prefix}
- %_bindir %{_exec_prefix}/bin
- %_sbindir %{_exec_prefix}/sbin
--%_libexecdir %{_exec_prefix}/libexec
-+%_libexecdir %{_exec_prefix}/lib
- %_datadir %{_prefix}/share
--%_sysconfdir %{_prefix}/etc
--%_sharedstatedir %{_prefix}/com
--%_localstatedir %{_prefix}/var
-+%_sysconfdir /etc
-+%_sharedstatedir /var/lib
-+%_localstatedir /var
- %_lib lib
- %_libdir %{_exec_prefix}/%{_lib}
- %_includedir %{_prefix}/include
- %_oldincludedir /usr/include
--%_infodir %{_prefix}/info
--%_mandir %{_prefix}/man
-+%_infodir %{_prefix}/share/info
-+%_mandir %{_prefix}/share/man
- %_localedir %{_datadir}/locale
-
- #==============================================================================
-@@ -1429,6 +1436,22 @@
- #%__executable_provides %{_usrlibrpm}/executabledeps.sh --provides
- #%__executable_requires %{_usrlibrpm}/executabledeps.sh --requires
--%__scriptlet_requires /bin/bash --rpm-requires
-+#%__scriptlet_requires /bin/bash --rpm-requires
-+
-+# TLD rpm macros
-+%_enable_debug_packages 1
-+
-+#-----------------------------------------------------------------
-+# CFLAGS and LDFLAGS used to build
-+
-+%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-4 -fno-debug-types-section -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}}
-+
-+%debugcflags -O0 -g -Wall
-
-+# Warning: those macros are overwritten by macros.build,
-+# left here for compatibility
-+%rpmcflags %{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}
-+%rpmcxxflags %{rpmcflags}
-+%rpmldflags %{!?no_build_with_as_needed:-Wl,--as-needed}
-+
- # \endverbatim
- #*/
-@@ -1480,7 +1504,7 @@
- #
- # Note: Used if _use_internal_dependency_generator is non-zero. The
- # helper is also used by %{_rpmhome}/rpmdeps --provides
--#%__mimetype_provides %{_rpmhome}/mimetypedeps.sh --provides
-+%__mimetype_provides %{_rpmhome}/mimetypedeps.sh --provides
-
- # \endverbatim
- #*/
---- rpm-4.5/configure.ac~ 2008-06-10 02:03:07.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-06-10 02:04:18.395836371 +0300
-@@ -246,6 +246,7 @@
- AC_PATH_PROG(__DITTO, ditto, %{_bindir}/ditto, $MYPATH)
- AC_PATH_PROG(__FILE, file, %{_bindir}/file, $MYPATH)
- AC_PATH_PROG(__FIND, find, %{_bindir}/find, $MYPATH)
-+AC_PATH_PROG(__GIT, git, %{_bindir}/git, $MYPATH)
- AC_PATH_PROG(__GPG, gpg, %{_bindir}/gpg, $MYPATH)
- AC_PATH_PROG(__GREP, grep, /bin/grep, $MYPATH)
- AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH)
-@@ -265,6 +265,7 @@
-
- AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
- AC_PATH_PROG(__INSTALL_INFO, install-info, /sbin/install-info, $MYPATH)
-+AC_PATH_PROG(__LN, ln, /bin/ln, $MYPATH)
- AC_PATH_PROG(__LDCONFIG, ldconfig, /sbin/ldconfig, $MYPATH)
- AC_PATH_PROG(__LUA, lua, %{_bindir}/lua, $MYPATH)
- AC_PATH_PROG(__LZMA, lzma, %{_bindir}/lzma, $MYPATH)
-@@ -290,6 +291,7 @@
- AC_PATH_PROG(__PHP, php, %{_bindir}/php, $MYPATH)
- AC_PATH_PROG(__PYTHON, python, %{_bindir}/python, $MYPATH)
- AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
-+AC_PATH_PROG(__RMDIR, rmdir, /bin/rmdir, $MYPATH)
- AC_PATH_PROG(__RSH, rsh, %{_bindir}/rsh, $MYPATH)
- AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH)
- AC_PATH_PROG(__SH, sh, /bin/sh, $MYPATH)
-@@ -300,6 +302,7 @@
- AC_PATH_PROG(__UNZIP, unzip, %{_bindir}/unzip, $MYPATH)
- AC_PATH_PROG(__WGET, wget, %{_bindir}/wget, $MYPATH)
- AC_PATH_PROG(__XAR, xar, %{_bindir}/xar, $MYPATH)
-+AC_PATH_PROG(__XZ, xz, %{_bindir}/xz, $MYPATH)
-
- AC_PATH_PROG(__LD, ld, %{_bindir}/ld, $MYPATH)
- AC_PATH_PROG(__NM, nm, %{_bindir}/nm, $MYPATH)
-@@ -1479,7 +1479,7 @@
- [Full path to rpm system configuration directory (usually /etc/rpm)])
- AC_SUBST(SYSCONFIGDIR)
-
--MACROFILES="${USRLIBRPM}/${VERSION}/macros:${USRLIBRPM}/%{_target}/macros:${SYSCONFIGDIR}/%{_host_vendor}/macros:${SYSCONFIGDIR}/%{_host_vendor}/%{_target}/macros:${SYSCONFIGDIR}/macros.*:${SYSCONFIGDIR}/macros.d/*.macros:${SYSCONFIGDIR}/macros:${SYSCONFIGDIR}/%{_target}/macros:~/.rpmmacros"
-+MACROFILES="${USRLIBRPM}/macros:${USRLIBRPM}/macros.build:${USRLIBRPM}/macros.d/macros.*:${USRLIBRPM}/%{_target}/macros:${SYSCONFIGDIR}/macros.*:${SYSCONFIGDIR}/macros:${SYSCONFIGDIR}/%{_target}/macros:~/etc/.rpmmacros:~/.rpmmacros"
- AC_DEFINE_UNQUOTED(MACROFILES, "$MACROFILES",
- [Colon separated paths of macro files to read.])
- AC_SUBST(MACROFILES)
+++ /dev/null
-diff -x '*~' -durN rpm-4.3.orig/Makefile.am rpm-4.3/Makefile.am
---- rpm-4.3.orig/Makefile.am 2004-12-19 08:39:09.000000000 +0100
-+++ rpm-4.3/Makefile.am 2004-12-19 08:39:45.135670136 +0100
-@@ -96,7 +96,7 @@
- rpm2cpio_LDFLAGS = $(myLDFLAGS)
- rpm2cpio_LDADD = $(myLDADD) @LIBMISC@
-
--$(PROGRAMS): $(myLDADD) @WITH_APIDOCS_TARGET@
-+$(PROGRAMS): @WITH_APIDOCS_TARGET@
-
- .PHONY: splint
- splint:
---- rpm/doc/pl/rpm.8~ 2007-11-24 23:21:26.000000000 +0100
-+++ rpm/doc/pl/rpm.8 2007-11-24 23:21:26.000000000 +0100
-@@ -325,6 +325,7 @@
- Instaluje pakiety nawet je¶li niektóre z nich s± ju¿ zainstalowane na tym
+--- rpm-4.16.0/doc/pl/rpm.8.orig 2020-05-28 12:04:25.022136604 +0200
++++ rpm-4.16.0/doc/pl/rpm.8 2020-10-13 08:06:11.442087617 +0200
+@@ -318,6 +318,7 @@
+ Instaluje pakiety nawet jeśli niektóre z nich są już zainstalowane na tym
systemie.
.TP
+\fB--test\fR
+++ /dev/null
---- rpm-4.3/lib/rpmfi.c.orig 2004-01-12 09:39:32.000000000 +0000
-+++ rpm-4.3/lib/rpmfi.c 2004-01-12 10:34:20.000000000 +0000
-@@ -13,6 +13,8 @@
-
- #include "rpmds.h"
-
-+#include "legacy.h"
-+
- #define _RPMFI_INTERNAL
- #include "rpmfi.h"
-
---- rpm-4.3/lib/rpmrc.c.orig 2004-01-12 09:39:32.000000000 +0000
-+++ rpm-4.3/lib/rpmrc.c 2004-01-12 10:54:42.000000000 +0000
-@@ -14,6 +14,7 @@
- #define __power_pc() 0
- #endif
-
-+#include "rpmio_internal.h"
- #include <rpmcli.h>
- #include <rpmmacro.h>
- #include <rpmlua.h>
---- rpm-4.3/tools/convertdb1.c.orig 2004-01-04 02:13:09.000000000 +0000
-+++ rpm-4.3/tools/convertdb1.c 2004-01-12 10:52:04.000000000 +0000
-@@ -10,6 +10,7 @@
- #include <rpmdb.h>
- #include <rpmio.h>
- #include <rpmmacro.h>
-+#include "legacy.h"
-
- #define FA_MAGIC 0x02050920
-
+++ /dev/null
-diff -urN rpm-4.5/lib/rpmfc.c rpm-4.5.new/lib/rpmfc.c
---- rpm-4.5/lib/rpmfc.c 2008-11-09 15:05:53.000000000 +0100
-+++ rpm-4.5.new/lib/rpmfc.c 2008-11-09 15:07:53.000000000 +0100
-@@ -555,6 +555,7 @@
- { "Java ", RPMFC_JAVA|RPMFC_INCLUDE },
-
- /* .NET executables and libraries. file(1) cannot differ it from native win32 executables unfortunatelly */
-+ { "Mono/.Net assembly", RPMFC_MONO|RPMFC_INCLUDE },
- { "PE executable", RPMFC_MONO|RPMFC_INCLUDE },
- { "executable PE", RPMFC_MONO|RPMFC_INCLUDE },
-
+++ /dev/null
-Disable Provides: user(NAME), group(NAME) probes as it would fire trigger on NAME uninstall
-
-as for example uninstalling this spec: https://bugs.pld-linux.org/attachment.cgi?id=20
-
-15:30:53 jbj> glen_: rpmns.c splits group(mailman) into the tuple {group, mailman} for name space processing.
-15:32:48 jbj> the code in unbsatisfiedDepnds is driven by the name "group". if split, then its not the string
- "group(mailman)" any more.
-
---- rpm-4.4.9/lib/depends.c~ 2008-04-08 19:44:02.000000000 +0300
-+++ rpm-4.4.9/lib/depends.c 2008-04-25 15:12:52.734623679 +0300
-@@ -611,6 +611,7 @@
- goto exit;
- }
-
-+#if 0
- /* Evaluate user/group lookup probes. */
- if (NSType == RPMNS_TYPE_USER) {
- const char *s;
-@@ -646,6 +647,7 @@
- rpmdsNotify(dep, _("(group lookup)"), rc);
- goto exit;
- }
-+#endif
-
- /* Evaluate access(2) probe dependencies. */
- if (NSType == RPMNS_TYPE_ACCESS) {
---- rpm-4.4.9/lib/rpmns.c~ 2007-05-16 14:31:58.000000000 +0300
-+++ rpm-4.4.9/lib/rpmns.c 2008-04-25 15:36:20.223855745 +0300
-@@ -179,8 +179,10 @@
- case RPMNS_TYPE_UNAME:
- case RPMNS_TYPE_SONAME:
- case RPMNS_TYPE_ACCESS:
-+#if 0
- case RPMNS_TYPE_USER:
- case RPMNS_TYPE_GROUP:
-+#endif
- case RPMNS_TYPE_MOUNTED:
- case RPMNS_TYPE_DISKSPACE:
- case RPMNS_TYPE_DIGEST:
+++ /dev/null
---- rpm-4.5/macros.in.org 2009-03-23 09:25:24.383581794 +0100
-+++ rpm-4.5/macros.in 2009-03-23 09:25:19.403234944 +0100
-@@ -183,7 +183,7 @@
- # Path to script that creates debug symbols in a /usr/lib/debug
- # shadow tree.
- %__debug_install_post \
-- %{_rpmhome}/find-debuginfo.sh %{_builddir}/%{?buildsubdir}\
-+ %{_rpmhome}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
- %{nil}
-
- # Template for debug information sub-package.
---- rpm-4.5/scripts/find-debuginfo.sh.orig 2007-08-31 03:07:02.000000000 +0200
-+++ rpm-4.5/scripts/find-debuginfo.sh 2009-09-17 15:22:30.299290490 +0200
-@@ -1,57 +1,328 @@
--#!/bin/sh
-+#!/bin/bash
- #find-debuginfo.sh - automagically generate debug info and file list
- #for inclusion in an rpm spec file.
-+#
-+# Usage: find-debuginfo.sh [--strict-build-id]
-+# [-o debugfiles.list]
-+# [[-l filelist]... [-p 'pattern'] -o debuginfo.list]
-+# [builddir]
-+#
-+# The --strict-build-id flag says to exit with failure status if
-+# any ELF binary processed fails to contain a build-id note.
-+#
-+# A single -o switch before any -l or -p switches simply renames
-+# the primary output file from debugfiles.list to something else.
-+# A -o switch that follows a -p switch or some -l switches produces
-+# an additional output file with the debuginfo for the files in
-+# the -l filelist file, or whose names match the -p pattern.
-+# The -p argument is an egrep-style regexp matching the a file name,
-+# and must not use anchors (^ or $).
-+#
-+# All file names in switches are relative to builddir (. if not given).
-+#
-+
-+# Barf on missing build IDs.
-+strict=false
-+
-+BUILDDIR=.
-+out=debugfiles.list
-+nout=0
-+while [ $# -gt 0 ]; do
-+ case "$1" in
-+ --strict-build-id)
-+ strict=true
-+ ;;
-+ -o)
-+ if [ -z "${lists[$nout]}" -a -z "${ptns[$nout]}" ]; then
-+ out=$2
-+ else
-+ outs[$nout]=$2
-+ ((nout++))
-+ fi
-+ shift
-+ ;;
-+ -l)
-+ lists[$nout]="${lists[$nout]} $2"
-+ shift
-+ ;;
-+ -p)
-+ ptns[$nout]=$2
-+ shift
-+ ;;
-+ *)
-+ BUILDDIR=$1
-+ shift
-+ break
-+ ;;
-+ esac
-+ shift
-+done
-
--if [ -z "$1" ] ; then BUILDDIR="."
--else BUILDDIR=$1
--fi
-+i=0
-+while ((i < nout)); do
-+ outs[$i]="$BUILDDIR/${outs[$i]}"
-+ l=''
-+ for f in ${lists[$i]}; do
-+ l="$l $BUILDDIR/$f"
-+ done
-+ lists[$i]=$l
-+ ((++i))
-+done
-
--LISTFILE=$BUILDDIR/debugfiles.list
--SOURCEFILE=$BUILDDIR/debugsources.list
-+LISTFILE="$BUILDDIR/$out"
-+SOURCEFILE="$BUILDDIR/debugsources.list"
-+LINKSFILE="$BUILDDIR/debuglinks.list"
-+
-+> "$SOURCEFILE"
-+> "$LISTFILE"
-+> "$LINKSFILE"
-
- debugdir="${RPM_BUILD_ROOT}/usr/lib/debug"
-
--echo -n > $SOURCEFILE
--
- strip_to_debug()
- {
-- eu-strip --remove-comment -f "$1" "$2" || :
-+ local t=$(mktemp "/tmp/rpm.stripped.XXXXXX")
-+ objcopy --compress-debug-sections "$2" || exit
-+ eu-strip --remove-comment -f "$1" "$2" -o "$t" || exit
-+ rm -f "$t"
-+}
-+
-+# Make a relative symlink to $1 called $3$2
-+shopt -s extglob
-+link_relative()
-+{
-+ local t="$1" f="$2" pfx="$3"
-+ local fn="${f#/}" tn="${t#/}"
-+ local fd td d
-+
-+ while fd="${fn%%/*}"; td="${tn%%/*}"; [ "$fd" = "$td" ]; do
-+ fn="${fn#*/}"
-+ tn="${tn#*/}"
-+ done
-+
-+ d="${fn%/*}"
-+ if [ "$d" != "$fn" ]; then
-+ d="${d//+([!\/])/..}"
-+ tn="${d}/${tn}"
-+ fi
-+
-+ mkdir -p "$(dirname "$pfx$f")" && ln -snf "$tn" "$pfx$f"
- }
-
-+# Make a symlink in /usr/lib/debug/$2 to $1
-+debug_link()
-+{
-+ local l="/usr/lib/debug$2"
-+ local t="$1"
-+ echo >> "$LINKSFILE" "$l $t"
-+ link_relative "$t" "$l" "$RPM_BUILD_ROOT"
-+}
-+
-+# Make a build-id symlink for id $1 with suffix $3 to file $2.
-+make_id_link()
-+{
-+ local id="$1" file="$2"
-+ local idfile=".build-id/${id:0:2}/${id:2}"
-+ [ $# -eq 3 ] && idfile="${idfile}$3"
-+ local root_idfile="$RPM_BUILD_ROOT/usr/lib/debug/$idfile"
-+
-+ if [ ! -L "$root_idfile" ]; then
-+ debug_link "$file" "/$idfile"
-+ return
-+ fi
-+
-+ [ $# -eq 3 ] && return 0
-+
-+ local other=$(readlink -m "$root_idfile")
-+ other=${other#$RPM_BUILD_ROOT}
-+ if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" ||
-+ eu-elfcmp -q "$root_idfile" "$RPM_BUILD_ROOT$file" 2> /dev/null; then
-+ # Two copies. Maybe one has to be setuid or something.
-+ echo >&2 "*** WARNING: identical binaries are copied, not linked:"
-+ echo >&2 " $file"
-+ echo >&2 " and $other"
-+ else
-+ # This is pathological, break the build.
-+ echo >&2 "*** ERROR: same build ID in nonidentical files!"
-+ echo >&2 " $file"
-+ echo >&2 " and $other"
-+ exit 2
-+ fi
-+}
-+
-+get_debugfn()
-+{
-+ dn=$(dirname "${1#$RPM_BUILD_ROOT}")
-+ bn=$(basename "$1" .debug).debug
-+
-+ debugdn=${debugdir}${dn}
-+ debugfn=${debugdn}/${bn}
-+}
-+
-+set -o pipefail
-+
-+strict_error=ERROR
-+$strict || strict_error=WARNING
-+
- # Strip ELF binaries
--for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
-- sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p'`
-+find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
-+ \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-+ -print |
-+file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
-+xargs --no-run-if-empty stat -c '%h %D_%i %n' |
-+while read nlinks inum f; do
-+ get_debugfn "$f"
-+ [ -f "${debugfn}" ] && continue
-+
-+ # If this file has multiple links, keep track and make
-+ # the corresponding .debug files all links to one file too.
-+ if [ $nlinks -gt 1 ]; then
-+ eval linked=\$linked_$inum
-+ if [ -n "$linked" ]; then
-+ link=$debugfn
-+ get_debugfn "$linked"
-+ echo "hard linked $link to $debugfn"
-+ ln -nf "$debugfn" "$link"
-+ continue
-+ else
-+ eval linked_$inum=\$f
-+ echo "file $f has $[$nlinks - 1] other hard links"
-+ fi
-+ fi
-+
-+ echo "extracting debug info from $f"
-+ id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-+ -i -l "$SOURCEFILE" "$f") || exit
-+ if [ -z "$id" ]; then
-+ echo >&2 "*** ${strict_error}: No build ID note found in $f"
-+ $strict && exit 2
-+ fi
-+
-+ # A binary already copied into /usr/lib/debug doesn't get stripped,
-+ # just has its file names collected and adjusted.
-+ case "$dn" in
-+ /usr/lib/debug/*)
-+ [ -z "$id" ] || make_id_link "$id" "$dn/$(basename $f)"
-+ continue ;;
-+ esac
-+
-+ mkdir -p "${debugdn}"
-+ if test -w "$f"; then
-+ strip_to_debug "${debugfn}" "$f"
-+ else
-+ chmod u+w "$f"
-+ strip_to_debug "${debugfn}" "$f"
-+ chmod u-w "$f"
-+ fi
-+
-+ if [ -n "$id" ]; then
-+ make_id_link "$id" "$dn/$(basename $f)"
-+ make_id_link "$id" "/usr/lib/debug$dn/$bn" .debug
-+ fi
-+done || exit
-+
-+# For each symlink whose target has a .debug file,
-+# make a .debug symlink to that file.
-+find $RPM_BUILD_ROOT ! -path "${debugdir}/*" -type l -print |
-+while read f
- do
-- dn=$(dirname $f | sed -n -e "s#^$RPM_BUILD_ROOT##p")
-- bn=$(basename $f .debug).debug
--
-- debugdn="${debugdir}${dn}"
-- debugfn="${debugdn}/${bn}"
-- [ -f "${debugfn}" ] && continue
--
-- echo extracting debug info from $f
-- /usr/lib/rpm/4.5/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f"
--
-- # A binary already copied into /usr/lib/debug doesn't get stripped,
-- # just has its file names collected and adjusted.
-- case "$dn" in
-- /usr/lib/debug/*) continue ;;
-- esac
--
-- mkdir -p "${debugdn}"
-- if test -w "$f"; then
-- strip_to_debug "${debugfn}" "$f"
-- else
-- chmod u+w "$f"
-- strip_to_debug "${debugfn}" "$f"
-- chmod u-w "$f"
-- fi
-+ t=$(readlink -m "$f").debug
-+ f=${f#$RPM_BUILD_ROOT}
-+ t=${t#$RPM_BUILD_ROOT}
-+ if [ -f "$debugdir$t" ]; then
-+ echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
-+ debug_link "/usr/lib/debug$t" "${f}.debug"
-+ fi
- done
-
--mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug
--cat $SOURCEFILE | (cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0mL ${RPM_BUILD_ROOT}/usr/src/debug)
--# stupid cpio creates new directories in mode 0700, fixup
--find ${RPM_BUILD_ROOT}/usr/src/debug -type d -print0 | xargs -0 chmod a+rx
-+if [ -s "$SOURCEFILE" ]; then
-+ mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug"
-+ LC_ALL=C sort -z -u "$SOURCEFILE" | egrep -v -z '(<internal>|<built-in>)$' |
-+ (cd "$RPM_BUILD_DIR"; cpio -pd0mL "${RPM_BUILD_ROOT}/usr/src/debug")
-+ # stupid cpio creates new directories in mode 0700, fixup
-+ find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 |
-+ xargs --no-run-if-empty -0 chmod a+rx
-+fi
-+
-+if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -d "${RPM_BUILD_ROOT}/usr/src" ]; then
-+ ((nout > 0)) ||
-+ test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
-+ (cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) |
-+ sed 's,^,%dir /usr/lib/,' >> "$LISTFILE"
-+
-+ (cd "${RPM_BUILD_ROOT}/usr"
-+ test ! -d lib/debug || find lib/debug ! -type d
-+ test ! -d src/debug || find src/debug -mindepth 1 -maxdepth 1
-+ ) | sed 's,^,/usr/,' >> "$LISTFILE"
-+fi
-+
-+# Append to $1 only the lines from stdin not already in the file.
-+append_uniq()
-+{
-+ fgrep -f "$1" -x -v >> "$1"
-+}
-
--find ${RPM_BUILD_ROOT}/usr/lib/debug -type f | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE
--find ${RPM_BUILD_ROOT}/usr/src/debug -mindepth 1 -maxdepth 1 | sed -n -e "s#^$RPM_BUILD_ROOT##p" >> $LISTFILE
-+# Helper to generate list of corresponding .debug files from a file list.
-+filelist_debugfiles()
-+{
-+ local extra="$1"
-+ shift
-+ sed 's/^%[a-z0-9_][a-z0-9_]*([^)]*) *//
-+s/^%[a-z0-9_][a-z0-9_]* *//
-+/^$/d
-+'"$extra" "$@"
-+}
-+
-+# Write an output debuginfo file list based on given input file lists.
-+filtered_list()
-+{
-+ local out="$1"
-+ shift
-+ test $# -gt 0 || return
-+ fgrep -f <(filelist_debugfiles 's,^.*$,/usr/lib/debug&.debug,' "$@") \
-+ -x $LISTFILE >> $out
-+ sed -n -f <(filelist_debugfiles 's/[\\.*+#]/\\&/g
-+h
-+s,^.*$,s# &$##p,p
-+g
-+s,^.*$,s# /usr/lib/debug&.debug$##p,p
-+' "$@") "$LINKSFILE" | append_uniq "$out"
-+}
-+
-+# Write an output debuginfo file list based on an egrep-style regexp.
-+pattern_list()
-+{
-+ local out="$1" ptn="$2"
-+ test -n "$ptn" || return
-+ egrep -x -e "$ptn" "$LISTFILE" >> "$out"
-+ sed -n -r "\#^$ptn #s/ .*\$//p" "$LINKSFILE" | append_uniq "$out"
-+}
-+
-+#
-+# When given multiple -o switches, split up the output as directed.
-+#
-+i=0
-+while ((i < nout)); do
-+ > ${outs[$i]}
-+ filtered_list ${outs[$i]} ${lists[$i]}
-+ pattern_list ${outs[$i]} "${ptns[$i]}"
-+ fgrep -vx -f ${outs[$i]} "$LISTFILE" > "${LISTFILE}.new"
-+ mv "${LISTFILE}.new" "$LISTFILE"
-+ ((++i))
-+done
-+if ((nout > 0)); then
-+ # Now add the right %dir lines to each output list.
-+ (cd "${RPM_BUILD_ROOT}"; find usr/lib/debug -type d) |
-+ sed 's#^.*$#\\@^/&/@{h;s@^.*$@%dir /&@p;g;}#' |
-+ LC_ALL=C sort -ur > "${LISTFILE}.dirs.sed"
-+ i=0
-+ while ((i < nout)); do
-+ sed -n -f "${LISTFILE}.dirs.sed" "${outs[$i]}" | sort -u > "${outs[$i]}.new"
-+ cat "${outs[$i]}" >> "${outs[$i]}.new"
-+ mv -f "${outs[$i]}.new" "${outs[$i]}"
-+ ((++i))
-+ done
-+ sed -n -f "${LISTFILE}.dirs.sed" "${LISTFILE}" | sort -u > "${LISTFILE}.new"
-+ cat "$LISTFILE" >> "${LISTFILE}.new"
-+ mv "${LISTFILE}.new" "$LISTFILE"
-+fi
+++ /dev/null
---- rpm-4.5/rpmio/rpmdav.c~ 2008-07-09 12:38:31.000000000 +0300
-+++ rpm-4.5/rpmio/rpmdav.c 2008-09-04 17:43:50.215697868 +0300
-@@ -9,58 +9,6 @@
- #include <pthread.h>
- #endif
-
--#if USE_INTERNAL_NEON
--#include "ne_alloc.h"
--#include "ne_auth.h"
--#include "ne_basic.h"
--#include "ne_dates.h"
--#include "ne_locks.h"
--#else
--#include "neon/ne_alloc.h"
--#include "neon/ne_auth.h"
--#include "neon/ne_basic.h"
--#include "neon/ne_dates.h"
--#include "neon/ne_locks.h"
--#endif
--
--#define NEONBLOWSCHUNKS
--#ifndef NEONBLOWSCHUNKS
--/* HACK: include ne_private.h to access sess->socket for now. */
--#include "../neon/src/ne_private.h"
--#endif
--
--#if USE_INTERNAL_NEON
--#include "ne_props.h"
--#include "ne_request.h"
--#include "ne_socket.h"
--#include "ne_string.h"
--#include "ne_utils.h"
--#include "ne_md5.h" /* for version detection only */
--#else
--#include "neon/ne_props.h"
--#include "neon/ne_request.h"
--#include "neon/ne_socket.h"
--#include "neon/ne_string.h"
--#include "neon/ne_utils.h"
--#include "neon/ne_md5.h" /* for version detection only */
--#endif
--
--/* poor-man's NEON version determination */
--#if defined(NE_MD5_H)
--#define WITH_NEON_MIN_VERSION 0x002700
--#elif defined(NE_FEATURE_I18N)
--#define WITH_NEON_MIN_VERSION 0x002600
--#else
--#define WITH_NEON_MIN_VERSION 0x002500
--#endif
--
--/* XXX API changes for NEON 0.26 */
--#if WITH_NEON_MIN_VERSION >= 0x002600
--#define ne_set_persist(_sess, _flag)
--#define ne_propfind_set_private(_pfh, _create_item, NULL) \
-- ne_propfind_set_private(_pfh, _create_item, NULL, NULL)
--#endif
--
- #include <rpmio_internal.h>
-
- #define _RPMDAV_INTERNAL
-@@ -74,1469 +22,6 @@
- /*@access FD_t @*/
- /*@access urlinfo @*/
-
--#if 0 /* HACK: reasonable value needed. */
--#define TIMEOUT_SECS 60
--#else
--#define TIMEOUT_SECS 5
--#endif
--/*@unchecked@*/
--static int httpTimeoutSecs = TIMEOUT_SECS;
--
--/* =============================================================== */
--int davFree(urlinfo u)
-- /*@globals internalState @*/
-- /*@modifies u, internalState @*/
--{
-- if (u != NULL) {
-- if (u->sess != NULL) {
-- ne_session_destroy(u->sess);
-- u->sess = NULL;
-- }
-- switch (u->urltype) {
-- default:
-- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- case URL_IS_HKP:
-- u->capabilities = _free(u->capabilities);
-- if (u->lockstore != NULL)
-- ne_lockstore_destroy(u->lockstore);
-- u->lockstore = NULL;
-- ne_sock_exit();
-- break;
-- }
-- }
-- return 0;
--}
--
--static void davProgress(void * userdata, off_t current, off_t total)
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
--
--assert(u != NULL);
-- sess = u->sess;
--assert(sess != NULL);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
-- u->current = current;
-- u->total = total;
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davProgress(%p,0x%x:0x%x) sess %p u %p\n", userdata, (unsigned int)current, (unsigned int)total, sess, u);
--}
--
--#if WITH_NEON_MIN_VERSION >= 0x002700
--static void davNotify(void * userdata,
-- ne_session_status connstatus, const ne_session_status_info *info)
--#else
--static void davNotify(void * userdata,
-- ne_conn_status connstatus, const char * info)
--#endif
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- /*@observer@*/
-- static const char * connstates[] = {
-- "namelookup",
-- "connecting",
-- "connected",
-- "secure",
-- "unknown"
-- };
--
--assert(u != NULL);
-- sess = u->sess;
--assert(sess != NULL);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
--#ifdef REFERENCE
--typedef enum {
-- ne_conn_namelookup, /* lookup up hostname (info = hostname) */
-- ne_conn_connecting, /* connecting to host (info = hostname) */
-- ne_conn_connected, /* connected to host (info = hostname) */
-- ne_conn_secure /* connection now secure (info = crypto level) */
--} ne_conn_status;
--#endif
--
--#if WITH_NEON_MIN_VERSION < 0x002700
-- u->connstatus = connstatus;
--#endif
--
--/*@-boundsread@*/
--if (_dav_debug < 0)
--fprintf(stderr, "*** davNotify(%p,%d,%p) sess %p u %p %s\n", userdata, connstatus, info, sess, u, connstates[ (connstatus < 4 ? connstatus : 4)]);
--/*@=boundsread@*/
--
--}
--
--static void davCreateRequest(ne_request * req, void * userdata,
-- const char * method, const char * uri)
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- void * private = NULL;
-- const char * id = "urlinfo";
--
--assert(u != NULL);
--assert(u->sess != NULL);
--assert(req != NULL);
-- sess = ne_get_session(req);
--assert(sess == u->sess);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
--assert(sess != NULL);
-- private = ne_get_session_private(sess, id);
--assert(u == private);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davCreateRequest(%p,%p,%s,%s) %s:%p\n", req, userdata, method, uri, id, private);
--}
--
--static void davPreSend(ne_request * req, void * userdata, ne_buffer * buf)
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- const char * id = "fd";
-- FD_t fd = NULL;
--
--assert(u != NULL);
--assert(u->sess != NULL);
--assert(req != NULL);
-- sess = ne_get_session(req);
--assert(sess == u->sess);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
-- fd = ne_get_request_private(req, id);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davPreSend(%p,%p,%p) sess %p %s %p\n", req, userdata, buf, sess, id, fd);
--if (_dav_debug)
--fprintf(stderr, "-> %s\n", buf->data);
--
--}
--
--static int davPostSend(ne_request * req, void * userdata, const ne_status * status)
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- const char * id = "fd";
-- FD_t fd = NULL;
--
--assert(u != NULL);
--assert(u->sess != NULL);
--assert(req != NULL);
-- sess = ne_get_session(req);
--assert(sess == u->sess);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
-- fd = ne_get_request_private(req, id);
--
--/*@-evalorder@*/
--if (_dav_debug < 0)
--fprintf(stderr, "*** davPostSend(%p,%p,%p) sess %p %s %p %s\n", req, userdata, status, sess, id, fd, ne_get_error(sess));
--/*@=evalorder@*/
-- return NE_OK;
--}
--
--static void davDestroyRequest(ne_request * req, void * userdata)
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- const char * id = "fd";
-- FD_t fd = NULL;
--
--assert(u != NULL);
--assert(u->sess != NULL);
--assert(req != NULL);
-- sess = ne_get_session(req);
--assert(sess == u->sess);
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
-- fd = ne_get_request_private(req, id);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davDestroyRequest(%p,%p) sess %p %s %p\n", req, userdata, sess, id, fd);
--}
--
--static void davDestroySession(void * userdata)
-- /*@*/
--{
-- urlinfo u = userdata;
-- ne_session * sess;
-- void * private = NULL;
-- const char * id = "urlinfo";
--
--assert(u != NULL);
--assert(u->sess != NULL);
-- sess = u->sess;
--assert(u == ne_get_session_private(sess, "urlinfo"));
--
--assert(sess != NULL);
-- private = ne_get_session_private(sess, id);
--assert(u == private);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davDestroySession(%p) sess %p %s %p\n", userdata, sess, id, private);
--}
--
--static int
--davVerifyCert(void *userdata, int failures, const ne_ssl_certificate *cert)
-- /*@*/
--{
-- const char *hostname = userdata;
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davVerifyCert(%p,%d,%p) %s\n", userdata, failures, cert, hostname);
--
-- return 0; /* HACK: trust all server certificates. */
--}
--
--static int davConnect(urlinfo u)
-- /*@globals internalState @*/
-- /*@modifies u, internalState @*/
--{
-- const char * path = NULL;
-- int rc;
--
-- /* HACK: hkp:// has no steenkin' options */
-- if (!(u->urltype == URL_IS_HTTP || u->urltype == URL_IS_HTTPS))
-- return 0;
--
-- /* HACK: where should server capabilities be read? */
-- (void) urlPath(u->url, &path);
-- /* HACK: perhaps capture Allow: tag, look for PUT permitted. */
-- /* XXX [hdr] Allow: GET,HEAD,POST,OPTIONS,TRACE */
-- rc = ne_options(u->sess, path, u->capabilities);
-- switch (rc) {
-- case NE_OK:
-- { ne_server_capabilities *cap = u->capabilities;
-- if (cap->dav_class1)
-- u->allow |= RPMURL_SERVER_HASDAVCLASS1;
-- else
-- u->allow &= ~RPMURL_SERVER_HASDAVCLASS1;
-- if (cap->dav_class2)
-- u->allow |= RPMURL_SERVER_HASDAVCLASS2;
-- else
-- u->allow &= ~RPMURL_SERVER_HASDAVCLASS2;
-- if (cap->dav_executable)
-- u->allow |= RPMURL_SERVER_HASDAVEXEC;
-- else
-- u->allow &= ~RPMURL_SERVER_HASDAVEXEC;
-- } break;
-- case NE_ERROR:
-- /* HACK: "301 Moved Permanently" on empty subdir. */
-- if (!strncmp("301 ", ne_get_error(u->sess), sizeof("301 ")-1))
-- break;
-- errno = EIO; /* HACK: more precise errno. */
-- goto bottom;
-- case NE_LOOKUP:
-- errno = ENOENT; /* HACK: errno same as non-existent path. */
-- goto bottom;
-- case NE_CONNECT: /* HACK: errno set already? */
-- default:
--bottom:
--if (_dav_debug)
--fprintf(stderr, "*** Connect to %s:%d failed(%d):\n\t%s\n",
-- u->host, u->port, rc, ne_get_error(u->sess));
-- break;
-- }
--
-- /* HACK: sensitive to error returns? */
-- u->httpVersion = (ne_version_pre_http11(u->sess) ? 0 : 1);
--
-- return rc;
--}
--
--static int davInit(const char * url, urlinfo * uret)
-- /*@globals internalState @*/
-- /*@modifies *uret, internalState @*/
--{
-- urlinfo u = NULL;
-- int rc = 0;
--
--/*@-globs@*/ /* FIX: h_errno annoyance. */
-- if (urlSplit(url, &u))
-- return -1; /* XXX error returns needed. */
--/*@=globs@*/
--
-- if (u->url != NULL && u->sess == NULL)
-- switch (u->urltype) {
-- default:
-- assert(u->urltype != u->urltype);
-- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- case URL_IS_HKP:
-- { ne_server_capabilities * capabilities;
--
-- /* HACK: oneshots should be done Somewhere Else Instead. */
--/*@-noeffect@*/
-- rc = ((_dav_debug < 0) ? NE_DBG_HTTP : 0);
-- ne_debug_init(stderr, rc); /* XXX oneshot? */
--/*@=noeffect@*/
-- rc = ne_sock_init(); /* XXX oneshot? */
--
-- u->lockstore = ne_lockstore_create(); /* XXX oneshot? */
--
-- u->capabilities = capabilities = xcalloc(1, sizeof(*capabilities));
-- u->sess = ne_session_create(u->scheme, u->host, u->port);
--
-- ne_lockstore_register(u->lockstore, u->sess);
--
-- if (u->proxyh != NULL)
-- ne_session_proxy(u->sess, u->proxyh, u->proxyp);
--
--#if 0
-- { const ne_inet_addr ** addrs;
-- unsigned int n;
-- ne_set_addrlist(u->sess, addrs, n);
-- }
--#endif
--
-- ne_set_progress(u->sess, davProgress, u);
--#if WITH_NEON_MIN_VERSION >= 0x002700
-- ne_set_notifier(u->sess, davNotify, u);
--#else
-- ne_set_status(u->sess, davNotify, u);
--#endif
--
-- ne_set_persist(u->sess, 1);
-- ne_set_read_timeout(u->sess, httpTimeoutSecs);
-- ne_set_useragent(u->sess, PACKAGE "/" PACKAGE_VERSION);
--
-- /* XXX check that neon is ssl enabled. */
-- if (!strcasecmp(u->scheme, "https"))
-- ne_ssl_set_verify(u->sess, davVerifyCert, (char *)u->host);
--
-- ne_set_session_private(u->sess, "urlinfo", u);
--
-- ne_hook_destroy_session(u->sess, davDestroySession, u);
--
-- ne_hook_create_request(u->sess, davCreateRequest, u);
-- ne_hook_pre_send(u->sess, davPreSend, u);
-- ne_hook_post_send(u->sess, davPostSend, u);
-- ne_hook_destroy_request(u->sess, davDestroyRequest, u);
--
-- /* HACK: where should server capabilities be read? */
-- rc = davConnect(u);
-- if (rc)
-- goto exit;
-- } break;
-- }
--
--exit:
--/*@-boundswrite@*/
-- if (uret != NULL)
-- *uret = urlLink(u, "davInit");
--/*@=boundswrite@*/
-- u = urlFree(u, "urlSplit (davInit)");
--
-- return rc;
--}
--
--/* =============================================================== */
--enum fetch_rtype_e {
-- resr_normal = 0,
-- resr_collection,
-- resr_reference,
-- resr_error
--};
--
--struct fetch_resource_s {
--/*@dependent@*/
-- struct fetch_resource_s *next;
-- char *uri;
--/*@unused@*/
-- char *displayname;
-- enum fetch_rtype_e type;
-- size_t size;
-- time_t modtime;
-- int is_executable;
-- int is_vcr; /* Is version resource. 0: no vcr, 1 checkin 2 checkout */
-- char *error_reason; /* error string returned for this resource */
-- int error_status; /* error status returned for this resource */
--};
--
--/*@null@*/
--static void *fetch_destroy_item(/*@only@*/ struct fetch_resource_s *res)
-- /*@modifies res @*/
--{
-- ne_free(res->uri);
-- ne_free(res->error_reason);
-- res = _free(res);
-- return NULL;
--}
--
--#ifdef UNUSED
--/*@null@*/
--static void *fetch_destroy_list(/*@only@*/ struct fetch_resource_s *res)
-- /*@modifies res @*/
--{
-- struct fetch_resource_s *next;
--/*@-branchstate@*/
-- for (; res != NULL; res = next) {
-- next = res->next;
-- res = fetch_destroy_item(res);
-- }
--/*@=branchstate@*/
-- return NULL;
--}
--#endif
--
--#if WITH_NEON_MIN_VERSION >= 0x002600
--static void *fetch_create_item(/*@unused@*/ void *userdata, /*@unused@*/ const ne_uri *uri)
--#else
--static void *fetch_create_item(/*@unused@*/ void *userdata, /*@unused@*/ const char *uri)
--#endif
-- /*@*/
--{
-- struct fetch_resource_s * res = ne_calloc(sizeof(*res));
-- return res;
--}
--
--/* =============================================================== */
--struct fetch_context_s {
--/*@relnull@*/ /*@dependent@*/
-- struct fetch_resource_s **resrock;
-- const char *uri;
-- unsigned int include_target; /* Include resource at href */
--/*@refcounted@*/
-- urlinfo u;
-- int ac;
-- int nalloced;
-- ARGV_t av;
--/*@null@*/ /*@shared@*/
-- struct stat *st;
-- mode_t * modes;
-- size_t * sizes;
-- time_t * mtimes;
--};
--
--/*@null@*/
--static void *fetch_destroy_context(/*@only@*/ /*@null@*/ struct fetch_context_s *ctx)
-- /*@globals internalState @*/
-- /*@modifies ctx, internalState @*/
--{
-- if (ctx == NULL)
-- return NULL;
-- if (ctx->av != NULL)
-- ctx->av = argvFree(ctx->av);
-- ctx->modes = _free(ctx->modes);
-- ctx->sizes = _free(ctx->sizes);
-- ctx->mtimes = _free(ctx->mtimes);
-- ctx->u = urlFree(ctx->u, "fetch_destroy_context");
-- ctx->uri = _free(ctx->uri);
--/*@-boundswrite@*/
-- memset(ctx, 0, sizeof(*ctx));
--/*@=boundswrite@*/
-- ctx = _free(ctx);
-- return NULL;
--}
--
--/*@null@*/
--static void *fetch_create_context(const char *uri, /*@null@*/ struct stat *st)
-- /*@globals internalState @*/
-- /*@modifies internalState @*/
--{
-- struct fetch_context_s * ctx;
-- urlinfo u;
--
--/*@-globs@*/ /* FIX: h_errno annoyance. */
-- if (urlSplit(uri, &u))
-- return NULL;
--/*@=globs@*/
--
-- ctx = ne_calloc(sizeof(*ctx));
-- ctx->uri = xstrdup(uri);
-- ctx->u = urlLink(u, "fetch_create_context");
-- if ((ctx->st = st) != NULL)
-- memset(ctx->st, 0, sizeof(*ctx->st));
-- return ctx;
--}
--
--/*@unchecked@*/ /*@observer@*/
--static const ne_propname fetch_props[] = {
-- { "DAV:", "getcontentlength" },
-- { "DAV:", "getlastmodified" },
-- { "http://apache.org/dav/props/", "executable" },
-- { "DAV:", "resourcetype" },
-- { "DAV:", "checked-in" },
-- { "DAV:", "checked-out" },
-- { NULL, NULL }
--};
--
--#define ELM_resourcetype (NE_PROPS_STATE_TOP + 1)
--#define ELM_collection (NE_PROPS_STATE_TOP + 2)
--
--/*@unchecked@*/ /*@observer@*/
--static const struct ne_xml_idmap fetch_idmap[] = {
-- { "DAV:", "resourcetype", ELM_resourcetype },
-- { "DAV:", "collection", ELM_collection }
--};
--
--static int fetch_startelm(void *userdata, int parent,
-- const char *nspace, const char *name,
-- /*@unused@*/ const char **atts)
-- /*@*/
--{
-- ne_propfind_handler *pfh = userdata;
-- struct fetch_resource_s *r = ne_propfind_current_private(pfh);
-- int state = ne_xml_mapid(fetch_idmap, NE_XML_MAPLEN(fetch_idmap),
-- nspace, name);
--
-- if (r == NULL ||
-- !((parent == NE_207_STATE_PROP && state == ELM_resourcetype) ||
-- (parent == ELM_resourcetype && state == ELM_collection)))
-- return NE_XML_DECLINE;
--
-- if (state == ELM_collection) {
-- r->type = resr_collection;
-- }
--
-- return state;
--}
--
--static int fetch_compare(const struct fetch_resource_s *r1,
-- const struct fetch_resource_s *r2)
-- /*@*/
--{
-- /* Sort errors first, then collections, then alphabetically */
-- if (r1->type == resr_error) {
-- return -1;
-- } else if (r2->type == resr_error) {
-- return 1;
-- } else if (r1->type == resr_collection) {
-- if (r2->type != resr_collection) {
-- return -1;
-- } else {
-- return strcmp(r1->uri, r2->uri);
-- }
-- } else {
-- if (r2->type != resr_collection) {
-- return strcmp(r1->uri, r2->uri);
-- } else {
-- return 1;
-- }
-- }
--}
--
--#if WITH_NEON_MIN_VERSION >= 0x002600
--static void fetch_results(void *userdata, const ne_uri *uarg,
-- const ne_prop_result_set *set)
--#else
--static void fetch_results(void *userdata, void *uarg,
-- const ne_prop_result_set *set)
--#endif
-- /*@*/
--{
-- struct fetch_context_s *ctx = userdata;
-- struct fetch_resource_s *current, *previous, *newres;
-- const char *clength, *modtime, *isexec;
-- const char *checkin, *checkout;
-- const ne_status *status = NULL;
-- const char * path = NULL;
--
--#if WITH_NEON_MIN_VERSION >= 0x002600
-- const ne_uri * uri = uarg;
-- (void) urlPath(uri->path, &path);
--#else
-- const char * uri = uarg;
-- (void) urlPath(uri, &path);
--#endif
-- if (path == NULL)
-- return;
--
-- newres = ne_propset_private(set);
--
--if (_dav_debug < 0)
--fprintf(stderr, "==> %s in uri %s\n", path, ctx->uri);
--
-- if (ne_path_compare(ctx->uri, path) == 0 && !ctx->include_target) {
-- /* This is the target URI */
--if (_dav_debug < 0)
--fprintf(stderr, "==> %s skipping target resource.\n", path);
-- /* Free the private structure. */
--/*@-dependenttrans -exposetrans@*/
-- free(newres);
--/*@=dependenttrans =exposetrans@*/
-- return;
-- }
--
-- newres->uri = ne_strdup(path);
--
--/*@-boundsread@*/
-- clength = ne_propset_value(set, &fetch_props[0]);
-- modtime = ne_propset_value(set, &fetch_props[1]);
-- isexec = ne_propset_value(set, &fetch_props[2]);
-- checkin = ne_propset_value(set, &fetch_props[4]);
-- checkout = ne_propset_value(set, &fetch_props[5]);
--/*@=boundsread@*/
--
--/*@-branchstate@*/
-- if (clength == NULL)
-- status = ne_propset_status(set, &fetch_props[0]);
-- if (modtime == NULL)
-- status = ne_propset_status(set, &fetch_props[1]);
--/*@=branchstate@*/
--
-- if (newres->type == resr_normal && status != NULL) {
-- /* It's an error! */
-- newres->error_status = status->code;
--
-- /* Special hack for Apache 1.3/mod_dav */
-- if (strcmp(status->reason_phrase, "status text goes here") == 0) {
-- const char *desc;
-- if (status->code == 401) {
-- desc = _("Authorization Required");
-- } else if (status->klass == 3) {
-- desc = _("Redirect");
-- } else if (status->klass == 5) {
-- desc = _("Server Error");
-- } else {
-- desc = _("Unknown Error");
-- }
-- newres->error_reason = ne_strdup(desc);
-- } else {
-- newres->error_reason = ne_strdup(status->reason_phrase);
-- }
-- newres->type = resr_error;
-- }
--
-- if (isexec && strcasecmp(isexec, "T") == 0) {
-- newres->is_executable = 1;
-- } else {
-- newres->is_executable = 0;
-- }
--
-- if (modtime)
-- newres->modtime = ne_httpdate_parse(modtime);
--
-- if (clength)
-- newres->size = atoi(clength);
--
-- /* is vcr */
-- if (checkin) {
-- newres->is_vcr = 1;
-- } else if (checkout) {
-- newres->is_vcr = 2;
-- } else {
-- newres->is_vcr = 0;
-- }
--
-- for (current = *ctx->resrock, previous = NULL; current != NULL;
-- previous = current, current = current->next)
-- {
-- if (fetch_compare(current, newres) >= 0) {
-- break;
-- }
-- }
-- if (previous) {
-- previous->next = newres;
-- } else {
--/*@-boundswrite -dependenttrans @*/
-- *ctx->resrock = newres;
--/*@=boundswrite =dependenttrans @*/
-- }
-- newres->next = current;
--}
--
--static int davFetch(const urlinfo u, struct fetch_context_s * ctx)
-- /*@globals internalState @*/
-- /*@modifies ctx, internalState @*/
--{
-- const char * path = NULL;
-- int depth = 1; /* XXX passed arg? */
-- unsigned int include_target = 0; /* XXX passed arg? */
-- struct fetch_resource_s * resitem = NULL;
-- struct fetch_resource_s ** resrock = &resitem; /* XXX passed arg? */
-- ne_propfind_handler *pfh;
-- struct fetch_resource_s *current, *next;
-- mode_t st_mode;
-- int rc = 0;
-- int xx;
--
-- (void) urlPath(u->url, &path);
-- pfh = ne_propfind_create(u->sess, ctx->uri, depth);
--
-- /* HACK: need to set RPMURL_SERVER_HASRANGE in u->allow here. */
--
-- ctx->resrock = resrock;
-- ctx->include_target = include_target;
--
-- ne_xml_push_handler(ne_propfind_get_parser(pfh),
-- fetch_startelm, NULL, NULL, pfh);
--
-- ne_propfind_set_private(pfh, fetch_create_item, NULL);
--
-- rc = ne_propfind_named(pfh, fetch_props, fetch_results, ctx);
--
-- ne_propfind_destroy(pfh);
--
-- for (current = resitem; current != NULL; current = next) {
-- const char *s, *se;
-- char * val;
--
-- next = current->next;
--
-- /* Collections have trailing '/' that needs trim. */
-- /* The top level collection is returned as well. */
-- se = current->uri + strlen(current->uri);
-- if (se[-1] == '/') {
-- if (strlen(current->uri) <= strlen(path)) {
-- current = fetch_destroy_item(current);
-- continue;
-- }
-- se--;
-- }
-- s = se;
-- while (s > current->uri && s[-1] != '/')
-- s--;
--
-- val = ne_strndup(s, (se - s));
--
--/*@-nullpass@*/
-- val = ne_path_unescape(val);
--/*@=nullpass@*/
--
-- xx = argvAdd(&ctx->av, val);
--if (_dav_debug < 0)
--fprintf(stderr, "*** argvAdd(%p,\"%s\")\n", &ctx->av, val);
-- ne_free(val);
--
-- while (ctx->ac >= ctx->nalloced) {
-- if (ctx->nalloced <= 0)
-- ctx->nalloced = 1;
-- ctx->nalloced *= 2;
-- ctx->modes = xrealloc(ctx->modes,
-- (sizeof(*ctx->modes) * ctx->nalloced));
-- ctx->sizes = xrealloc(ctx->sizes,
-- (sizeof(*ctx->sizes) * ctx->nalloced));
-- ctx->mtimes = xrealloc(ctx->mtimes,
-- (sizeof(*ctx->mtimes) * ctx->nalloced));
-- }
--
-- switch (current->type) {
-- case resr_normal:
-- st_mode = S_IFREG;
-- /*@switchbreak@*/ break;
-- case resr_collection:
-- st_mode = S_IFDIR;
-- /*@switchbreak@*/ break;
-- case resr_reference:
-- case resr_error:
-- default:
-- st_mode = 0;
-- /*@switchbreak@*/ break;
-- }
--/*@-boundswrite@*/
-- ctx->modes[ctx->ac] = st_mode;
-- ctx->sizes[ctx->ac] = current->size;
-- ctx->mtimes[ctx->ac] = current->modtime;
--/*@=boundswrite@*/
-- ctx->ac++;
--
-- current = fetch_destroy_item(current);
-- }
-- ctx->resrock = NULL; /* HACK: avoid leaving stack reference. */
-- /* HACK realloc to truncate modes/sizes/mtimes */
--
-- return rc;
--}
--
--/* HACK this should be rewritten to use davReq/davResp w callbacks. */
--static int davHEAD(urlinfo u, struct stat *st)
-- /*@modifies *st @*/
--{
-- ne_request *req;
-- const char *htag;
-- const char *value = NULL;
-- int rc;
--
-- st->st_mode = S_IFREG;
-- st->st_blksize = 4 * 1024; /* HACK correct for linux ext */
-- st->st_size = -1;
-- st->st_atime = -1;
-- st->st_mtime = -1;
-- st->st_ctime = -1;
--
-- req = ne_request_create(u->sess, "HEAD", u->url);
--
-- rc = ne_request_dispatch(req);
-- switch (rc) {
-- default:
-- goto exit;
-- /*@notreached@*/
-- case NE_OK:
-- if (ne_get_status(req)->klass != 2) {
-- rc = NE_ERROR;
-- goto exit;
-- }
-- break;
-- }
--
--#ifdef NOTYET
-- htag = "ETag";
-- value = ne_get_response_header(req, htag);
-- if (value) {
-- /* inode-size-mtime */
-- }
--#endif
--
-- htag = "Content-Length";
--#if defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
-- value = ne_get_response_header(req, htag);
--#endif
-- if (value) {
-- st->st_size = strtoll(value, NULL, 10);
-- st->st_blocks = (st->st_size + 511)/512;
-- }
--
-- htag = "Last-Modified";
--#if defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
-- value = ne_get_response_header(req, htag);
--#endif
-- if (value) {
-- st->st_mtime = ne_httpdate_parse(value);
-- st->st_atime = st->st_ctime = st->st_mtime; /* HACK */
-- }
--
--exit:
-- ne_request_destroy(req);
-- return rc;
--}
--
--static int davNLST(struct fetch_context_s * ctx)
-- /*@globals internalState @*/
-- /*@modifies ctx, internalState @*/
--{
-- urlinfo u = NULL;
-- int rc;
-- int xx;
--
-- rc = davInit(ctx->uri, &u);
-- if (rc || u == NULL)
-- goto exit;
--
--/* HACK do PROPFIND through davFetch iff enabled, otherwise HEAD Content-length/ETag/Last-Modified */
-- if (u->allow & RPMURL_SERVER_HASDAV)
-- rc = davFetch(u, ctx); /* use PROPFIND to get contentLength */
-- else
-- rc = davHEAD(u, ctx->st); /* use HEAD to get contentLength */
--
-- switch (rc) {
-- case NE_OK:
-- break;
-- case NE_ERROR:
-- /* HACK: "405 Method Not Allowed" for PROPFIND on non-DAV servers. */
-- /* XXX #206066 OPTIONS is ok, but PROPFIND from Stat() fails. */
-- /* rpm -qp --rpmiodebug --davdebug http://people.freedesktop.org/~sandmann/metacity-2.16.0-2.fc6/i386/metacity-2.16.0-2.fc6.i386.rpm */
-- /* HACK: "301 Moved Permanently" on empty subdir. */
-- if (!strncmp("301 ", ne_get_error(u->sess), sizeof("301 ")-1))
-- break;
-- /*@fallthrough@*/
-- default:
--if (_dav_debug)
--fprintf(stderr, "*** Fetch from %s:%d failed:\n\t%s\n",
-- u->host, u->port, ne_get_error(u->sess));
-- break;
-- }
--
--exit:
-- xx = davFree(u);
-- return rc;
--}
--
--/* =============================================================== */
--static int my_result(const char * msg, int ret, /*@null@*/ FILE * fp)
-- /*@modifies *fp @*/
--{
-- /* HACK: don't print unless debugging. */
-- if (_dav_debug >= 0)
-- return ret;
-- if (fp == NULL)
-- fp = stderr;
-- if (msg != NULL)
-- fprintf(fp, "*** %s: ", msg);
--
-- /* HACK FTPERR_NE_FOO == -NE_FOO error impedance match */
--#ifdef HACK
-- fprintf(fp, "%s: %s\n", ftpStrerror(-ret), ne_get_error(sess));
--#else
-- fprintf(fp, "%s\n", ftpStrerror(-ret));
--#endif
-- return ret;
--}
--
--#ifdef DYING
--static void hexdump(const unsigned char * buf, ssize_t len)
-- /*@*/
--{
-- int i;
-- if (len <= 0)
-- return;
-- for (i = 0; i < len; i++) {
-- if (i != 0 && (i%16) == 0)
-- fprintf(stderr, "\n");
-- fprintf(stderr, " %02X", buf[i]);
-- }
-- fprintf(stderr, "\n");
--}
--#endif
--
--/*@-mustmod@*/
--static void davAcceptRanges(void * userdata, /*@null@*/ const char * value)
-- /*@modifies userdata @*/
--{
-- urlinfo u = userdata;
--
-- if (!(u != NULL && value != NULL)) return;
--if (_dav_debug < 0)
--fprintf(stderr, "*** u %p Accept-Ranges: %s\n", u, value);
-- if (!strcmp(value, "bytes"))
-- u->allow |= RPMURL_SERVER_HASRANGE;
-- if (!strcmp(value, "none"))
-- u->allow &= ~RPMURL_SERVER_HASRANGE;
--}
--/*@=mustmod@*/
--
--#if !defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
--static void davAllHeaders(void * userdata, const char * value)
--{
-- FD_t ctrl = userdata;
--
-- if (!(ctrl != NULL && value != NULL)) return;
--if (_dav_debug)
--fprintf(stderr, "<- %s\n", value);
--}
--#endif
--
--/*@-mustmod@*/
--static void davContentLength(void * userdata, /*@null@*/ const char * value)
-- /*@modifies userdata @*/
--{
-- FD_t ctrl = userdata;
--
-- if (!(ctrl != NULL && value != NULL)) return;
--if (_dav_debug < 0)
--fprintf(stderr, "*** fd %p Content-Length: %s\n", ctrl, value);
--/*@-unrecog@*/
-- ctrl->contentLength = strtoll(value, NULL, 10);
--/*@=unrecog@*/
--}
--/*@=mustmod@*/
--
--/*@-mustmod@*/
--static void davConnection(void * userdata, /*@null@*/ const char * value)
-- /*@modifies userdata @*/
--{
-- FD_t ctrl = userdata;
--
-- if (!(ctrl != NULL && value != NULL)) return;
--if (_dav_debug < 0)
--fprintf(stderr, "*** fd %p Connection: %s\n", ctrl, value);
-- if (!strcasecmp(value, "close"))
-- ctrl->persist = 0;
-- else if (!strcasecmp(value, "Keep-Alive"))
-- ctrl->persist = 1;
--}
--/*@=mustmod@*/
--
--/*@-mustmod@*/ /* HACK: stash error in *str. */
--int davResp(urlinfo u, FD_t ctrl, /*@unused@*/ char *const * str)
--{
-- int rc = 0;
--
-- rc = ne_begin_request(ctrl->req);
-- rc = my_result("ne_begin_req(ctrl->req)", rc, NULL);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davResp(%p,%p,%p) sess %p req %p rc %d\n", u, ctrl, str, u->sess, ctrl->req, rc);
--
-- /* HACK FTPERR_NE_FOO == -NE_FOO error impedance match */
--/*@-observertrans@*/
-- if (rc)
-- fdSetSyserrno(ctrl, errno, ftpStrerror(-rc));
--/*@=observertrans@*/
--
-- return rc;
--}
--/*@=mustmod@*/
--
--int davReq(FD_t ctrl, const char * httpCmd, const char * httpArg)
--{
-- urlinfo u;
-- int rc = 0;
--
--assert(ctrl != NULL);
-- u = ctrl->url;
-- URLSANE(u);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davReq(%p,%s,\"%s\") entry sess %p req %p\n", ctrl, httpCmd, (httpArg ? httpArg : ""), u->sess, ctrl->req);
--
-- ctrl->persist = (u->httpVersion > 0 ? 1 : 0);
-- ctrl = fdLink(ctrl, "open ctrl (davReq)");
--
--assert(u->sess != NULL);
--assert(ctrl->req == NULL);
--/*@-nullpass@*/
-- ctrl->req = ne_request_create(u->sess, httpCmd, httpArg);
--/*@=nullpass@*/
--assert(ctrl->req != NULL);
--
-- ne_set_request_private(ctrl->req, "fd", ctrl);
--
--#if !defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
-- ne_add_response_header_catcher(ctrl->req, davAllHeaders, ctrl);
--
-- ne_add_response_header_handler(ctrl->req, "Content-Length",
-- davContentLength, ctrl);
-- ne_add_response_header_handler(ctrl->req, "Connection",
-- davConnection, ctrl);
--#endif
--
-- if (!strcmp(httpCmd, "PUT")) {
--#if defined(HAVE_NEON_NE_SEND_REQUEST_CHUNK)
-- ctrl->wr_chunked = 1;
-- ne_add_request_header(ctrl->req, "Transfer-Encoding", "chunked");
-- ne_set_request_chunked(ctrl->req, 1);
-- /* HACK: no retries if/when chunking. */
-- rc = davResp(u, ctrl, NULL);
--#else
-- rc = FTPERR_SERVER_IO_ERROR;
--#endif
-- } else {
-- /* HACK: possible Last-Modified: Tue, 02 Nov 2004 14:29:36 GMT */
-- /* HACK: possible ETag: "inode-size-mtime" */
--#if !defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
-- ne_add_response_header_handler(ctrl->req, "Accept-Ranges",
-- davAcceptRanges, u);
--#endif
-- /* HACK: possible Transfer-Encoding: on GET. */
--
-- /* HACK: other errors may need retry too. */
-- /* HACK: neon retries once, gud enuf. */
-- /* HACK: retry counter? */
-- do {
-- rc = davResp(u, ctrl, NULL);
-- } while (rc == NE_RETRY);
-- }
-- if (rc)
-- goto errxit;
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davReq(%p,%s,\"%s\") exit sess %p req %p rc %d\n", ctrl, httpCmd, (httpArg ? httpArg : ""), u->sess, ctrl->req, rc);
--
--#if defined(HAVE_NEON_NE_GET_RESPONSE_HEADER)
-- davContentLength(ctrl,
-- ne_get_response_header(ctrl->req, "Content-Length"));
-- davConnection(ctrl,
-- ne_get_response_header(ctrl->req, "Connection"));
-- if (strcmp(httpCmd, "PUT"))
-- davAcceptRanges(u,
-- ne_get_response_header(ctrl->req, "Accept-Ranges"));
--#endif
--
-- ctrl = fdLink(ctrl, "open data (davReq)");
-- return 0;
--
--errxit:
--/*@-observertrans@*/
-- fdSetSyserrno(ctrl, errno, ftpStrerror(rc));
--/*@=observertrans@*/
--
-- /* HACK balance fd refs. ne_session_destroy to tear down non-keepalive? */
-- ctrl = fdLink(ctrl, "error data (davReq)");
--
-- return rc;
--}
--
--FD_t davOpen(const char * url, /*@unused@*/ int flags,
-- /*@unused@*/ mode_t mode, /*@out@*/ urlinfo * uret)
--{
-- const char * path = NULL;
-- urltype urlType = urlPath(url, &path);
-- urlinfo u = NULL;
-- FD_t fd = NULL;
-- int rc;
--
--#if 0 /* XXX makeTempFile() heartburn */
-- assert(!(flags & O_RDWR));
--#endif
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davOpen(%s,0x%x,0%o,%p)\n", url, flags, mode, uret);
-- rc = davInit(url, &u);
-- if (rc || u == NULL || u->sess == NULL)
-- goto exit;
--
-- if (u->ctrl == NULL)
-- u->ctrl = fdNew("persist ctrl (davOpen)");
-- if (u->ctrl->nrefs > 2 && u->data == NULL)
-- u->data = fdNew("persist data (davOpen)");
--
-- if (u->ctrl->url == NULL)
-- fd = fdLink(u->ctrl, "grab ctrl (davOpen persist ctrl)");
-- else if (u->data->url == NULL)
-- fd = fdLink(u->data, "grab ctrl (davOpen persist data)");
-- else
-- fd = fdNew("grab ctrl (davOpen)");
--
-- if (fd) {
-- fdSetOpen(fd, url, flags, mode);
-- fdSetIo(fd, ufdio);
--
-- fd->ftpFileDoneNeeded = 0;
-- fd->rd_timeoutsecs = httpTimeoutSecs;
-- fd->contentLength = fd->bytesRemain = -1;
-- fd->url = urlLink(u, "url (davOpen)");
-- fd = fdLink(fd, "grab data (davOpen)");
--assert(urlType == URL_IS_HTTPS || urlType == URL_IS_HTTP || urlType == URL_IS_HKP);
-- fd->urlType = urlType;
-- }
--
--exit:
--/*@-boundswrite@*/
-- if (uret)
-- *uret = u;
--/*@=boundswrite@*/
-- /*@-refcounttrans@*/
-- return fd;
-- /*@=refcounttrans@*/
--}
--
--ssize_t davRead(void * cookie, /*@out@*/ char * buf, size_t count)
--{
-- FD_t fd = cookie;
-- ssize_t rc;
--
--#if 0
--assert(count >= 128); /* HACK: see ne_request.h comment */
--#endif
-- rc = ne_read_response_block(fd->req, buf, count);
--
--if (_dav_debug < 0) {
--fprintf(stderr, "*** davRead(%p,%p,0x%x) rc 0x%x\n", cookie, buf, (unsigned)count, (unsigned)rc);
--#ifdef DYING
--hexdump(buf, rc);
--#endif
-- }
--
-- return rc;
--}
--
--ssize_t davWrite(void * cookie, const char * buf, size_t count)
--{
--#if !defined(NEONBLOWSCHUNKS) || defined(HAVE_NEON_NE_SEND_REQUEST_CHUNK) || defined(__LCLINT__)
-- FD_t fd = cookie;
--#endif
-- ssize_t rc;
-- int xx = -1;
--
--#if !defined(NEONBLOWSCHUNKS)
-- ne_session * sess;
--
--assert(fd->req != NULL);
-- sess = ne_get_session(fd->req);
--assert(sess != NULL);
--
-- /* HACK: include ne_private.h to access sess->socket for now. */
-- xx = ne_sock_fullwrite(sess->socket, buf, count);
--#else
--#if defined(HAVE_NEON_NE_SEND_REQUEST_CHUNK) || defined(__LCLINT__)
--assert(fd->req != NULL);
-- xx = ne_send_request_chunk(fd->req, buf, count);
--#else
-- errno = EIO; /* HACK */
-- return -1;
--#endif
--#endif
--
-- /* HACK: stupid error impedence matching. */
-- rc = (xx == 0 ? count : -1);
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davWrite(%p,%p,0x%x) rc 0x%x\n", cookie, buf, (unsigned)count, (unsigned)rc);
--#ifdef DYING
--if (count > 0)
--hexdump(buf, count);
--#endif
--
-- return rc;
--}
--
--int davSeek(void * cookie, /*@unused@*/ _libio_pos_t pos, int whence)
--{
--if (_dav_debug < 0)
--fprintf(stderr, "*** davSeek(%p,pos,%d)\n", cookie, whence);
-- return -1;
--}
--
--/*@-mustmod@*/ /* HACK: fd->req is modified. */
--int davClose(void * cookie)
--{
--/*@-onlytrans@*/
-- FD_t fd = cookie;
--/*@=onlytrans@*/
-- int rc;
--
--assert(fd->req != NULL);
-- rc = ne_end_request(fd->req);
-- rc = my_result("ne_end_request(req)", rc, NULL);
--
-- ne_request_destroy(fd->req);
-- fd->req = NULL;
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davClose(%p) rc %d\n", fd, rc);
-- return rc;
--}
--/*@=mustmod@*/
--
--/* =============================================================== */
--int davMkdir(const char * path, mode_t mode)
--{
-- urlinfo u = NULL;
-- const char * src = NULL;
-- int rc;
--
-- rc = davInit(path, &u);
-- if (rc)
-- goto exit;
--
-- (void) urlPath(path, &src);
--
-- rc = ne_mkcol(u->sess, path);
--
-- if (rc) rc = -1; /* XXX HACK: errno impedance match */
--
-- /* XXX HACK: verify getrestype(remote) == resr_collection */
--
--exit:
--if (_dav_debug)
--fprintf(stderr, "*** davMkdir(%s,0%o) rc %d\n", path, mode, rc);
-- return rc;
--}
--
--int davRmdir(const char * path)
--{
-- urlinfo u = NULL;
-- const char * src = NULL;
-- int rc;
--
-- rc = davInit(path, &u);
-- if (rc)
-- goto exit;
--
-- (void) urlPath(path, &src);
--
-- /* XXX HACK: only getrestype(remote) == resr_collection */
--
-- rc = ne_delete(u->sess, path);
--
-- if (rc) rc = -1; /* XXX HACK: errno impedance match */
--
--exit:
--if (_dav_debug)
--fprintf(stderr, "*** davRmdir(%s) rc %d\n", path, rc);
-- return rc;
--}
--
--int davRename(const char * oldpath, const char * newpath)
--{
-- urlinfo u = NULL;
-- const char * src = NULL;
-- const char * dst = NULL;
-- int overwrite = 1; /* HACK: set this correctly. */
-- int rc;
--
-- rc = davInit(oldpath, &u);
-- if (rc)
-- goto exit;
--
-- (void) urlPath(oldpath, &src);
-- (void) urlPath(newpath, &dst);
--
-- /* XXX HACK: only getrestype(remote) != resr_collection */
--
-- rc = ne_move(u->sess, overwrite, src, dst);
--
-- if (rc) rc = -1; /* XXX HACK: errno impedance match */
--
--exit:
--if (_dav_debug)
--fprintf(stderr, "*** davRename(%s,%s) rc %d\n", oldpath, newpath, rc);
-- return rc;
--}
--
--int davUnlink(const char * path)
--{
-- urlinfo u = NULL;
-- const char * src = NULL;
-- int rc;
--
-- rc = davInit(path, &u);
-- if (rc)
-- goto exit;
--
-- (void) urlPath(path, &src);
--
-- /* XXX HACK: only getrestype(remote) != resr_collection */
--
-- rc = ne_delete(u->sess, src);
--
--exit:
-- if (rc) rc = -1; /* XXX HACK: errno impedance match */
--
--if (_dav_debug)
--fprintf(stderr, "*** davUnlink(%s) rc %d\n", path, rc);
-- return rc;
--}
--
--#ifdef NOTYET
--static int davChdir(const char * path)
-- /*@globals h_errno, fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/
--{
-- return davCommand("CWD", path, NULL);
--}
--#endif /* NOTYET */
--
--/* =============================================================== */
--
--static const char * statstr(const struct stat * st,
-- /*@returned@*/ /*@out@*/ char * buf)
-- /*@modifies *buf @*/
--{
-- sprintf(buf,
-- "*** dev %x ino %x mode %0o nlink %d uid %d gid %d rdev %x size %x\n",
-- (unsigned)st->st_dev,
-- (unsigned)st->st_ino,
-- st->st_mode,
-- (unsigned)st->st_nlink,
-- st->st_uid,
-- st->st_gid,
-- (unsigned)st->st_rdev,
-- (unsigned)st->st_size);
-- return buf;
--}
--
--/*@unchecked@*/
--static unsigned int dav_st_ino = 0xdead0000;
--
--/*@-boundswrite@*/
--int davStat(const char * path, /*@out@*/ struct stat *st)
-- /*@globals dav_st_ino, fileSystem, internalState @*/
-- /*@modifies *st, dav_st_ino, fileSystem, internalState @*/
--{
-- struct fetch_context_s * ctx = NULL;
-- char buf[1024];
-- int rc = -1;
--
--/* HACK: neon really wants collections with trailing '/' */
-- ctx = fetch_create_context(path, st);
-- if (ctx == NULL) {
--fprintf(stderr, "==> %s fetch_create_context ctx %p\n", "davStat", ctx);
--/* HACK: errno = ??? */
-- goto exit;
-- }
-- rc = davNLST(ctx);
-- if (rc) {
--/* HACK: errno = ??? */
-- goto exit;
-- }
--
-- if (st->st_mode == 0)
-- st->st_mode = (ctx->ac > 1 ? S_IFDIR : S_IFREG);
-- st->st_size = (ctx->sizes ? ctx->sizes[0] : st->st_size);
-- st->st_mtime = (ctx->mtimes ? ctx->mtimes[0] : st->st_mtime);
-- st->st_atime = st->st_ctime = st->st_mtime; /* HACK */
-- if (S_ISDIR(st->st_mode)) {
-- st->st_nlink = 2;
-- st->st_mode |= 0755;
-- } else
-- if (S_ISREG(st->st_mode)) {
-- st->st_nlink = 1;
-- st->st_mode |= 0644;
-- }
--
-- /* XXX fts(3) needs/uses st_ino, make something up for now. */
-- if (st->st_ino == 0)
-- st->st_ino = dav_st_ino++;
--
--exit:
--if (_dav_debug < 0)
--fprintf(stderr, "*** davStat(%s) rc %d\n%s", path, rc, statstr(st, buf));
-- ctx = fetch_destroy_context(ctx);
-- return rc;
--}
--/*@=boundswrite@*/
--
--/*@-boundswrite@*/
--int davLstat(const char * path, /*@out@*/ struct stat *st)
-- /*@globals dav_st_ino, fileSystem, internalState @*/
-- /*@modifies *st, dav_st_ino, fileSystem, internalState @*/
--{
-- struct fetch_context_s * ctx = NULL;
-- char buf[1024];
-- int rc = -1;
--
--/* HACK: neon really wants collections with trailing '/' */
-- ctx = fetch_create_context(path, st);
-- if (ctx == NULL) {
--/* HACK: errno = ??? */
-- goto exit;
-- }
-- rc = davNLST(ctx);
-- if (rc) {
--/* HACK: errno = ??? */
-- goto exit;
-- }
--
-- if (st->st_mode == 0)
-- st->st_mode = (ctx->ac > 1 ? S_IFDIR : S_IFREG);
-- st->st_size = (ctx->sizes ? ctx->sizes[0] : st->st_size);
-- st->st_mtime = (ctx->mtimes ? ctx->mtimes[0] : st->st_mtime);
-- st->st_atime = st->st_ctime = st->st_mtime; /* HACK */
-- if (S_ISDIR(st->st_mode)) {
-- st->st_nlink = 2;
-- st->st_mode |= 0755;
-- } else
-- if (S_ISREG(st->st_mode)) {
-- st->st_nlink = 1;
-- st->st_mode |= 0644;
-- }
--
-- /* XXX fts(3) needs/uses st_ino, make something up for now. */
-- if (st->st_ino == 0)
-- st->st_ino = dav_st_ino++;
--if (_dav_debug < 0)
--fprintf(stderr, "*** davLstat(%s) rc %d\n%s\n", path, rc, statstr(st, buf));
--exit:
-- ctx = fetch_destroy_context(ctx);
-- return rc;
--}
--/*@=boundswrite@*/
--
--#ifdef NOTYET
--static int davReadlink(const char * path, /*@out@*/ char * buf, size_t bufsiz)
-- /*@globals h_errno, fileSystem, internalState @*/
-- /*@modifies *buf, fileSystem, internalState @*/
--{
-- int rc;
-- rc = davNLST(path, DO_FTP_READLINK, NULL, buf, bufsiz);
--if (_dav_debug < 0)
--fprintf(stderr, "*** davReadlink(%s) rc %d\n", path, rc);
-- return rc;
--}
--#endif /* NOTYET */
--
- /* =============================================================== */
- /*@unchecked@*/
- int avmagicdir = 0x3607113;
-@@ -1660,179 +145,3 @@
- /*@=kepttrans@*/
- }
- /*@=boundswrite@*/
--
--/* =============================================================== */
--/*@unchecked@*/
--int davmagicdir = 0x8440291;
--
--int davClosedir(/*@only@*/ DIR * dir)
--{
-- DAVDIR avdir = (DAVDIR)dir;
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davClosedir(%p)\n", avdir);
--
--#if defined(HAVE_PTHREAD_H)
--/*@-moduncon -noeffectuncon @*/
-- (void) pthread_mutex_destroy(&avdir->lock);
--/*@=moduncon =noeffectuncon @*/
--#endif
--
-- avdir = _free(avdir);
-- return 0;
--}
--
--struct dirent * davReaddir(DIR * dir)
--{
-- DAVDIR avdir = (DAVDIR)dir;
-- struct dirent * dp;
-- const char ** av;
-- unsigned char * dt;
-- int ac;
-- int i;
--
-- if (avdir == NULL || !ISDAVMAGIC(avdir) || avdir->data == NULL) {
-- /* XXX TODO: EBADF errno. */
-- return NULL;
-- }
--
-- dp = (struct dirent *) avdir->data;
-- av = (const char **) (dp + 1);
-- ac = avdir->size;
-- dt = (unsigned char *) (av + (ac + 1));
-- i = avdir->offset + 1;
--
--/*@-boundsread@*/
-- if (i < 0 || i >= ac || av[i] == NULL)
-- return NULL;
--/*@=boundsread@*/
--
-- avdir->offset = i;
--
-- /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
--/*@-type@*/
-- dp->d_ino = i + 1; /* W2DO? */
-- dp->d_reclen = 0; /* W2DO? */
--
--#if !(defined(hpux) || defined(__hpux) || defined(sun))
--#if !defined(__APPLE__) && !defined(__FreeBSD_kernel__) && !defined(__FreeBSD__)
-- dp->d_off = 0; /* W2DO? */
--#endif
--/*@-boundsread@*/
-- dp->d_type = dt[i];
--/*@=boundsread@*/
--#endif
--/*@=type@*/
--
-- strncpy(dp->d_name, av[i], sizeof(dp->d_name));
--if (_dav_debug < 0)
--fprintf(stderr, "*** davReaddir(%p) %p \"%s\"\n", (void *)avdir, dp, dp->d_name);
--
-- return dp;
--}
--
--/*@-boundswrite@*/
--DIR * davOpendir(const char * path)
--{
-- struct fetch_context_s * ctx;
-- DAVDIR avdir;
-- struct dirent * dp;
-- size_t nb;
-- const char ** av, ** nav;
-- unsigned char * dt;
-- char * t;
-- int ac, nac;
-- int rc;
--
-- /* HACK: glob does not pass dirs with trailing '/' */
-- nb = strlen(path)+1;
--/*@-branchstate@*/
-- if (path[nb-1] != '/') {
-- char * npath = alloca(nb+1);
-- *npath = '\0';
-- (void) stpcpy( stpcpy(npath, path), "/");
-- path = npath;
-- }
--/*@=branchstate@*/
--
--if (_dav_debug < 0)
--fprintf(stderr, "*** davOpendir(%s)\n", path);
--
-- /* Load DAV collection into argv. */
-- ctx = fetch_create_context(path, NULL);
-- if (ctx == NULL) {
--/* HACK: errno = ??? */
-- return NULL;
-- }
-- rc = davNLST(ctx);
-- if (rc) {
--/* HACK: errno = ??? */
-- return NULL;
-- }
--
-- nb = 0;
-- ac = 0;
-- av = ctx->av;
-- if (av != NULL)
-- while (av[ac] != NULL)
-- nb += strlen(av[ac++]) + 1;
-- ac += 2; /* for "." and ".." */
-- nb += sizeof(".") + sizeof("..");
--
-- nb += sizeof(*avdir) + sizeof(*dp) + ((ac + 1) * sizeof(*av)) + (ac + 1);
-- avdir = xcalloc(1, nb);
-- /*@-abstract@*/
-- dp = (struct dirent *) (avdir + 1);
-- nav = (const char **) (dp + 1);
-- dt = (unsigned char *) (nav + (ac + 1));
-- t = (char *) (dt + ac + 1);
-- /*@=abstract@*/
--
-- avdir->fd = davmagicdir;
--/*@-usereleased@*/
-- avdir->data = (char *) dp;
--/*@=usereleased@*/
-- avdir->allocation = nb;
-- avdir->size = ac;
-- avdir->offset = -1;
-- avdir->filepos = 0;
--
--#if defined(HAVE_PTHREAD_H)
--/*@-moduncon -noeffectuncon -nullpass @*/
-- (void) pthread_mutex_init(&avdir->lock, NULL);
--/*@=moduncon =noeffectuncon =nullpass @*/
--#endif
--
-- nac = 0;
--/*@-dependenttrans -unrecog@*/
-- dt[nac] = DT_DIR; nav[nac++] = t; t = stpcpy(t, "."); t++;
-- dt[nac] = DT_DIR; nav[nac++] = t; t = stpcpy(t, ".."); t++;
--/*@=dependenttrans =unrecog@*/
--
-- /* Copy DAV items into DIR elments. */
-- ac = 0;
-- if (av != NULL)
-- while (av[ac] != NULL) {
-- nav[nac] = t;
-- dt[nac] = (S_ISDIR(ctx->modes[ac]) ? DT_DIR : DT_REG);
-- t = stpcpy(t, av[ac]);
-- ac++;
-- t++;
-- nac++;
-- }
-- nav[nac] = NULL;
--
-- ctx = fetch_destroy_context(ctx);
--
--/*@-kepttrans@*/
-- return (DIR *) avdir;
--/*@=kepttrans@*/
--}
--/*@=modfilesys@*/
--
--char * davRealpath(const char * path, char * resolved_path)
--{
--assert(resolved_path == NULL); /* XXX no POSIXly broken realpath(3) here. */
-- /* XXX TODO: handle redirects. For now, just dupe the path. */
-- return xstrdup(path);
--}
---- rpm-4.5/rpmio/rpmdav.h 2007-05-25 20:36:36.000000000 +0300
-+++ rpm-4.4.9/rpmio/rpmdav.h 2008-09-04 17:21:50.369579599 +0300
-@@ -46,12 +46,6 @@
- extern int avmagicdir;
- #define ISAVMAGIC(_dir) (!memcmp((_dir), &avmagicdir, sizeof(avmagicdir)))
-
--/**
-- */
--/*@unchecked@*/
--extern int davmagicdir;
--#define ISDAVMAGIC(_dir) (!memcmp((_dir), &davmagicdir, sizeof(davmagicdir)))
--
- #ifdef __cplusplus
- extern "C" {
- #endif
-@@ -85,133 +79,6 @@
- /*@globals fileSystem, internalState @*/
- /*@modifies fileSystem, internalState @*/;
-
--/**
-- * Send a http request.
-- * @param ctrl
-- * @param httpCmd http command
-- * @param httpArg http command argument (NULL if none)
-- * @returns 0 on success
-- */
--int davReq(FD_t ctrl, const char * httpCmd, /*@null@*/ const char * httpArg)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies ctrl, fileSystem, internalState @*/;
--
--/**
-- * Read a http response.
-- * @param u
-- * @param cntl
-- * @retval *str error msg
-- * @returns 0 on success
-- */
--/*@-exportlocal@*/
--int davResp(urlinfo u, FD_t ctrl, /*@out@*/ /*@null@*/ char *const * str)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies ctrl, *str, fileSystem, internalState @*/;
--/*@=exportlocal@*/
--
--/**
-- */
--/*@null@*/
--FD_t davOpen(const char * url, /*@unused@*/ int flags,
-- /*@unused@*/ mode_t mode, /*@out@*/ urlinfo * uret)
-- /*@globals internalState @*/
-- /*@modifies *uret, internalState @*/;
--
--/**
-- */
--/*@-incondefs@*/
--ssize_t davRead(void * cookie, /*@out@*/ char * buf, size_t count)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies buf, fileSystem, internalState @*/
-- /*@requires maxSet(buf) >= (count - 1) @*/
-- /*@ensures maxRead(buf) == result @*/;
--/*@=incondefs@*/
--
--/**
-- */
--ssize_t davWrite(void * cookie, const char * buf, size_t count)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- */
--int davSeek(void * cookie, _libio_pos_t pos, int whence)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- */
--int davClose(void * cookie)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies cookie, fileSystem, internalState @*/;
--
--/**
-- */
--int davMkdir(const char * path, mode_t mode)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- */
--int davRmdir(const char * path)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- */
--int davRename(const char * oldpath, const char * newpath)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- */
--int davUnlink(const char * path)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- * Close a DAV collection.
-- * @param dir argv DIR
-- * @return 0 always
-- */
--int davClosedir(/*@only@*/ DIR * dir)
-- /*@globals fileSystem @*/
-- /*@modifies dir, fileSystem @*/;
--
--/**
-- * Return next entry from a DAV collection.
-- * @param dir argv DIR
-- * @return next entry
-- */
--/*@dependent@*/ /*@null@*/
--struct dirent * davReaddir(DIR * dir)
-- /*@globals fileSystem @*/
-- /*@modifies fileSystem @*/;
--
--/**
-- * Create an argv directory from DAV collection.
-- * @param path URL for DAV collection path
-- * @return argv DIR
-- */
--/*@null@*/
--DIR * davOpendir(const char * path)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies fileSystem, internalState @*/;
--
--/**
-- * stat(2) clone.
-- */
--int davStat(const char * path, /*@out@*/ struct stat * st)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies *st, fileSystem, internalState @*/;
--
--/**
-- * lstat(2) clone.
-- */
--int davLstat(const char * path, /*@out@*/ struct stat * st)
-- /*@globals fileSystem, internalState @*/
-- /*@modifies *st, fileSystem, internalState @*/;
--
- #ifdef __cplusplus
- }
- #endif
---- rpm-4.5/rpmio/rpmio.c 2008-09-04 18:04:37.362241187 +0300
-+++ rpm-4.5/rpmio/rpmio.c 2008-09-04 18:05:08.695569896 +0300
-@@ -155,11 +155,6 @@
- /*@unchecked@*/
- int _ftp_debug = 0;
-
--/**
-- */
--/*@unchecked@*/
--int _dav_debug = 0;
--
- /* =============================================================== */
-
- /*@-boundswrite@*/
-@@ -386,13 +381,6 @@
-
- fdstat_enter(fd, FDSTAT_READ);
- /*@-boundswrite@*/
-- /* HACK: flimsy wiring for davRead */
-- if (fd->req != NULL) {
-- rc = davRead(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
-- /* XXX Chunked davRead EOF. */
-- if (rc == 0)
-- fd->bytesRemain = 0;
-- } else
- rc = read(fdFileno(fd), buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
- /*@=boundswrite@*/
- fdstat_exit(fd, FDSTAT_READ, rc);
-@@ -420,10 +408,6 @@
-
- fdstat_enter(fd, FDSTAT_WRITE);
- /*@-boundsread@*/
-- /* HACK: flimsy wiring for davWrite */
-- if (fd->req != NULL)
-- rc = davWrite(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
-- else
- rc = write(fdno, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
- /*@=boundsread@*/
- fdstat_exit(fd, FDSTAT_WRITE, rc);
-@@ -470,11 +454,6 @@
- fdSetFdno(fd, -1);
-
- fdstat_enter(fd, FDSTAT_CLOSE);
-- /* HACK: flimsy wiring for davClose */
--/*@-branchstate@*/
-- if (fd->req != NULL)
-- rc = davClose(fd);
-- else
- rc = ((fdno >= 0) ? close(fdno) : -2);
- /*@=branchstate@*/
- fdstat_exit(fd, FDSTAT_CLOSE, rc);
-@@ -544,10 +523,6 @@
- FD_ZERO(&wrfds);
- #endif
-
-- /* HACK: flimsy wiring for davWrite */
-- if (fd->req != NULL)
-- return 1;
--
- if ((fdno = fdFileno(fd)) < 0)
- return -1; /* XXX W2DO? */
-
-@@ -599,10 +574,6 @@
- FD_ZERO(&rdfds);
- #endif
-
-- /* HACK: flimsy wiring for davRead */
-- if (fd->req != NULL)
-- return 1;
--
- if ((fdno = fdFileno(fd)) < 0)
- return -1; /* XXX W2DO? */
-
-@@ -2265,29 +2236,6 @@
- fd->wr_chunked = 0;
- }
- break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- case URL_IS_HKP:
-- fd = davOpen(url, flags, mode, &u);
-- if (fd == NULL || u == NULL)
-- break;
--
-- cmd = ((flags & O_WRONLY)
-- ? ((flags & O_APPEND) ? "PUT" :
-- ((flags & O_CREAT) ? "PUT" : "PUT"))
-- : "GET");
-- u->openError = davReq(fd, cmd, path);
-- if (u->openError < 0) {
-- /* XXX make sure that we can exit through ufdClose */
-- fd = fdLink(fd, "error ctrl (ufdOpen HTTP)");
-- fd = fdLink(fd, "error data (ufdOpen HTTP)");
-- } else {
-- fd->bytesRemain = ((!strcmp(cmd, "GET"))
-- ? fd->contentLength : -1);
-- fd->wr_chunked = ((!strcmp(cmd, "PUT"))
-- ? fd->wr_chunked : 0);
-- }
-- break;
- case URL_IS_DASH:
- assert(!(flags & O_RDWR));
- fd = fdDup( ((flags & O_WRONLY) ? STDOUT_FILENO : STDIN_FILENO) );
-@@ -2911,10 +2859,8 @@
- if (fd->nfps > 0 && fpno == -1 &&
- fd->fps[fd->nfps-1].io == ufdio &&
- fd->fps[fd->nfps-1].fp == fp &&
-- (fd->fps[fd->nfps-1].fdno >= 0 || fd->req != NULL))
-+ (fd->fps[fd->nfps-1].fdno >= 0))
- {
-- int hadreqpersist = (fd->req != NULL);
--
- if (fp)
- rc = fflush(fp);
- fd->nfps--;
-@@ -2924,26 +2870,9 @@
- /*@-usereleased@*/
- if (fdGetFdno(fd) >= 0)
- break;
-- if (!fd->persist)
-- hadreqpersist = 0;
- fdSetFp(fd, NULL);
- fd->nfps++;
- if (fp) {
-- /* HACK: flimsy Keepalive wiring. */
-- if (hadreqpersist) {
-- fd->nfps--;
--/*@-exposetrans@*/
-- fdSetFp(fd, fp);
--/*@=exposetrans@*/
--/*@-refcounttrans@*/
-- (void) fdClose(fd);
--/*@=refcounttrans@*/
-- fdSetFp(fd, NULL);
-- fd->nfps++;
--/*@-refcounttrans@*/
-- (void) fdClose(fd);
--/*@=refcounttrans@*/
-- } else
- rc = fclose(fp);
- }
- fdPop(fd);
-@@ -3223,7 +3152,7 @@
- if (_rpmio_debug)
- fprintf(stderr, "*** Fopen ufdio path %s fmode %s\n", path, fmode);
- fd = ufdOpen(path, flags, perms);
-- if (fd == NULL || !(fdFileno(fd) >= 0 || fd->req != NULL))
-+ if (fd == NULL || !(fdFileno(fd) >= 0))
- return fd;
- break;
- default:
-@@ -3234,7 +3163,7 @@
- }
-
- /* XXX persistent HTTP/1.1 returns the previously opened fp */
-- if (isHTTP && ((fp = fdGetFp(fd)) != NULL) && ((fdno = fdGetFdno(fd)) >= 0 || fd->req != NULL))
-+ if (isHTTP && ((fp = fdGetFp(fd)) != NULL) && ((fdno = fdGetFdno(fd)) >= 0))
- {
- /*@+voidabstract@*/
- fdPush(fd, fpio, fp, fileno(fp)); /* Push fpio onto stack */
-@@ -3276,10 +3205,6 @@
- int i, rc = 0;
-
- if (fd == NULL) return -1;
-- if (fd->req != NULL) {
-- /* HACK: flimsy wiring for neon errors. */
-- rc = (fd->syserrno || fd->errcookie != NULL) ? -1 : 0;
-- } else
- for (i = fd->nfps; rc == 0 && i >= 0; i--) {
- /*@-boundsread@*/
- FDSTACK_t * fps = &fd->fps[i];
-@@ -3317,9 +3242,6 @@
- {
- int i, rc = -1;
-
-- if (fd->req != NULL)
-- rc = 123456789; /* HACK: https has no steenkin fileno. */
-- else
- for (i = fd->nfps ; rc == -1 && i >= 0; i--) {
- /*@-boundsread@*/
- rc = fd->fps[i].fdno;
---- rpm-4.5/rpmio/librpmio.vers~ 2008-07-09 12:38:31.000000000 +0300
-+++ rpm-4.5/rpmio/librpmio.vers 2008-09-04 17:52:56.158976430 +0300
-@@ -29,25 +29,6 @@
- Chmod;
- Chown;
- Chroot;
-- davClose;
-- davClosedir;
-- _dav_debug;
-- davLstat;
-- davmagicdir;
-- davMkdir;
-- davOpen;
-- davOpendir;
-- davRead;
-- davReaddir;
-- davRealpath;
-- davRename;
-- davReq;
-- davResp;
-- davRmdir;
-- davSeek;
-- davStat;
-- davUnlink;
-- davWrite;
- delMacro;
- expandMacros;
- Fclose;
---- rpm-4.5/lib/poptALL.c~ 2007-10-23 18:53:08.000000000 +0300
-+++ rpm-4.5/lib/poptALL.c 2008-09-04 17:53:21.845642132 +0300
-@@ -126,8 +126,6 @@
- extern int _ftp_debug;
- /*@unchecked@*/
- extern int _av_debug;
--/*@unchecked@*/
--extern int _dav_debug;
-
- /*@unchecked@*/
- extern int noLibio;
-@@ -424,8 +422,6 @@
- N_("debug FTP/HTTP data stream"), NULL},
- { "avdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_av_debug, -1,
- N_("debug argv collections"), NULL},
-- { "davdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_dav_debug, -1,
-- N_("debug WebDAV data stream"), NULL},
- { "hdrdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_hdr_debug, -1,
- NULL, NULL},
- { "miredebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_mire_debug, -1,
---- rpm-4.5/rpmio/rpmrpc.c 2008-09-04 17:56:39.132287618 +0300
-+++ rpm-4.5/rpmio/rpmrpc.c 2008-09-04 17:57:38.618948392 +0300
-@@ -78,10 +78,6 @@
- case URL_IS_FTP:
- return ftpMkdir(path, mode);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davMkdir(path, mode);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -105,15 +101,6 @@
- case URL_IS_FTP:
- return ftpChdir(path);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
--#ifdef NOTYET
-- return davChdir(path);
--#else
-- errno = EINVAL; /* XXX W2DO? */
-- return -2;
--#endif
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -138,10 +125,6 @@
- case URL_IS_FTP:
- return ftpRmdir(path);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davRmdir(path);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -245,10 +228,6 @@
-
- oldut = urlPath(oldpath, &oe);
- switch (oldut) {
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davRename(oldpath, newpath);
-- /*@notreached@*/ break;
- case URL_IS_FTP: /* XXX WRONG WRONG WRONG */
- case URL_IS_PATH:
- case URL_IS_UNKNOWN:
-@@ -343,10 +322,6 @@
- case URL_IS_FTP:
- return ftpUnlink(path);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davUnlink(path);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -1354,10 +1329,6 @@
- case URL_IS_FTP:
- return ftpStat(path, st);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davStat(path, st);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -1384,10 +1355,6 @@
- case URL_IS_FTP:
- return ftpLstat(path, st);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davLstat(path, st);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -1630,14 +1597,6 @@
- case URL_IS_FTP:
- return ftpReadlink(path, buf, bufsiz);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
--#ifdef NOTYET
-- return davReadlink(path, buf, bufsiz);
--#else
-- return -2;
--#endif
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -1787,10 +1746,6 @@
- case URL_IS_FTP:
- return ftpOpendir(path);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- return davOpendir(path);
-- /*@notreached@*/ break;
- case URL_IS_PATH:
- path = lpath;
- /*@fallthrough@*/
-@@ -1815,8 +1770,6 @@
- return NULL;
- if (ISAVMAGIC(dir))
- return avReaddir(dir);
-- if (ISDAVMAGIC(dir))
-- return davReaddir(dir);
- return readdir(dir);
- }
-
-@@ -1828,8 +1781,6 @@
- return 0;
- if (ISAVMAGIC(dir))
- return avClosedir(dir);
-- if (ISDAVMAGIC(dir))
-- return davClosedir(dir);
- return closedir(dir);
- }
-
-@@ -1852,14 +1803,6 @@
- case URL_IS_FTP:
- return ftpRealpath(path, resolved_path);
- /*@notreached@*/ break;
-- case URL_IS_HTTPS:
-- case URL_IS_HTTP:
-- case URL_IS_HKP:
--#ifdef WITH_NEON
-- return davRealpath(path, resolved_path);
-- /*@notreached@*/ break;
--#endif
-- /*@fallthrough@*/
- default:
- return xstrdup(path);
- /*@notreached@*/ break;
---- rpm-4.5/./rpmio/rpmio_internal.h~ 2008-06-10 02:19:26.000000000 +0300
-+++ rpm-4.5/./rpmio/rpmio_internal.h 2008-09-04 18:00:31.015598325 +0300
-@@ -182,7 +182,6 @@
- /*@dependent@*/
- void * url; /* ufdio: URL info */
- /*@relnull@*/
-- void * req; /* ufdio: HTTP request */
-
- int rd_timeoutsecs; /* ufdRead: per FD_t timer */
- ssize_t bytesRemain; /* ufdio: */
---- rpm-4.5/rpmio/rpmurl.h~ 2008-06-10 02:19:26.000000000 +0300
-+++ rpm-4.5/rpmio/rpmurl.h 2008-09-04 18:14:00.546141703 +0300
-@@ -54,15 +54,6 @@
- /*@relnull@*/
- FD_t data; /*!< per-xfer data channel */
-
--/*@relnull@*/
-- void * capabilities; /*!< neon: ne_server_capabilities ptr */
--/*@relnull@*/
-- void * lockstore; /*!< neon: ne_lock_store ptr */
--/*@relnull@*/
-- void * sess; /*!< neon: ne_session ptr */
-- off_t current; /*!< neon: current body offset. */
-- off_t total; /*!< neon: total body length. */
-- int connstatus; /*!< neon: connection status. */
- #ifdef REFERENCE
- typedef enum {
- ne_conn_namelookup, /* lookup up hostname (info = hostname) */
---- rpm-4.5/rpmio/url.c~ 2008-06-10 02:19:26.000000000 +0300
-+++ rpm-4.5/rpmio/url.c 2008-09-04 20:05:19.011716915 +0300
-@@ -134,7 +134,6 @@
- (u->scheme ? u->scheme : ""));
- /*@=usereleased@*/
- }
-- xx = davFree(u);
- u->buf = _free(u->buf);
- u->url = _free(u->url);
- u->scheme = _free((void *)u->scheme);
---- rpm-4.5/perl/Makefile.PL.in~ 2008-10-05 01:31:09.000000000 +0300
-+++ rpm-4.5/perl/Makefile.PL.in 2008-10-05 01:32:12.688278120 +0300
-@@ -12,7 +12,7 @@
- 'NAME' => 'RPM',
- 'VERSION_FROM' => 'RPM.pm', # finds $VERSION
- 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
-- 'LIBS' => [join(' ', @ldaddp) . ' ' . join(' ', @ldadd) . ' @LIBS@ @WITH_POPT_LIB@ @WITH_BEECRYPT_LIB@ -lneon'],
-+ 'LIBS' => [join(' ', @ldaddp) . ' ' . join(' ', @ldadd) . ' @LIBS@ @WITH_POPT_LIB@ @WITH_BEECRYPT_LIB@'],
- 'DEFINE' => join(" ", @defines), # e.g., '-DHAVE_SOMETHING'
- 'INC' => join(' ', map { '-I@top_srcdir@/'. $_ } @libdir) . ' @CPPFLAGS@',
- 'TYPEMAPS' => [ 'typemap' ],
---- rpm-4.5/configure.ac.orig 2011-02-21 16:29:42.000000000 +0100
-+++ rpm-4.5/configure.ac 2011-02-21 16:31:00.574910173 +0100
-@@ -591,28 +591,7 @@
- WITH_NEON_SUBDIR=
- WITH_NEON_INCLUDE=
- WITH_NEON_LIB=
--AC_CHECK_HEADER([neon/ne_session.h], [
-- AC_CHECK_LIB(neon, ne_session_create, [
-- AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the 'neon' library (-lneon).])
-- AC_CHECK_LIB(neon, ne_get_response_header, [
-- AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1, [Define to 1 if you have ne_get_response_header() in libneon.])
-- ])
-- AC_CHECK_LIB(neon, ne_send_request_chunk, [
-- AC_DEFINE(HAVE_NEON_NE_SEND_REQUEST_CHUNK, 1, [Define to 1 if you have ne_send_request_chunk() in libneon.])
-- ])
-- WITH_NEON_INCLUDE="-I${includedir}/neon"
-- WITH_NEON_LIB="-lneon"
-- ])
--],[
-- if test -d neon ; then
-- AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the 'neon' library (-lneon).])
--# XXX HAVE_NEON_NE_GET_RESPONSE_HEADER assumes libneon-0.25 devel internal
-- AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1, [Define to 1 if you have ne_get_response_header() in libneon.])
-- WITH_NEON_SUBDIR=neon
-- WITH_NEON_INCLUDE="-I\${top_srcdir}/${WITH_NEON_SUBDIR}/src"
-- WITH_NEON_LIB="\${top_builddir}/${WITH_NEON_SUBDIR}/src/libneon.la"
-- fi
--])
-+
- AC_SUBST(WITH_NEON_SUBDIR)
- AC_SUBST(WITH_NEON_INCLUDE)
- AC_SUBST(WITH_NEON_LIB)
+++ /dev/null
---- rpm-4.4.9/configure.ac.orig 2005-11-19 01:08:41.529577632 +0100
-+++ rpm-4.4.9/configure.ac 2005-11-19 01:09:44.521001480 +0100
-@@ -618,24 +596,6 @@
- WITH_SQLITE3_INCLUDE=
- WITH_SQLITE3_LIB=
-
--AC_CHECK_HEADER([sqlite3.h], [
-- AC_CHECK_LIB(sqlite, sqlite3_open, [
-- AC_DEFINE(HAVE_SQLITE3_H, 1, [Define if you have the <sqlite3.h> header file])
-- WITH_SQLITE3_SUBDIR=
-- WITH_SQLITE3_INCLUDE=
-- WITH_SQLITE3_LIB="-lsqlite"
-- DBLIBSRCS="$DBLIBSRCS sqlite.c"
-- ])
--],[
-- if test -d sqlite ; then
-- AC_DEFINE(HAVE_SQLITE3_H, 1, [Define if you have the <sqlite3.h> header file])
-- WITH_SQLITE3_SUBDIR=sqlite
-- WITH_SQLITE3_INCLUDE="-I\${top_srcdir}/${WITH_SQLITE3_SUBDIR} -I\${top_srcdir}/${WITH_SQLITE3_SUBDIR}/src"
-- WITH_SQLITE3_LIB="\${top_builddir}/${WITH_SQLITE3_SUBDIR}/libsqlite3.la"
-- DBLIBSRCS="$DBLIBSRCS sqlite.c"
-- fi
--])
--
- AC_SUBST(WITH_SQLITE3_SUBDIR)
- AC_SUBST(WITH_SQLITE3_INCLUDE)
- AC_SUBST(WITH_SQLITE3_LIB)
+++ /dev/null
-diff -urpa rpm-4.5.orig/build/parsePreamble.c rpm-4.5/build/parsePreamble.c
---- rpm-4.5.orig/build/parsePreamble.c 2019-06-01 18:55:39.351000000 +0200
-+++ rpm-4.5/build/parsePreamble.c 2019-06-01 19:24:30.398000000 +0200
-@@ -730,19 +730,32 @@ static int handlePreambleTag(Spec spec,
- case RPMTAG_EXCLUSIVEOS:
- addOrAppendListEntry(spec->sourceHeader, tag, field);
- break;
-- case RPMTAG_BUILDARCHS:
-- if ((rc = poptParseArgvString(field,
-- &(spec->BACount),
-- &(spec->BANames)))) {
-+ case RPMTAG_BUILDARCHS: {
-+ int BACount;
-+ const char **BANames = NULL;
-+ if ((rc = poptParseArgvString(field, &BACount, &BANames))) {
- rpmError(RPMERR_BADSPEC,
- _("line %d: Bad BuildArchitecture format: %s\n"),
- spec->lineNum, spec->line);
- return RPMERR_BADSPEC;
- }
-- if (!spec->BACount)
-+ if (spec->packages == pkg) {
-+ spec->BACount = BACount;
-+ spec->BANames = BANames;
-+ } else {
-+ if (BACount != 1 || strcmp(BANames[0], "noarch")) {
-+ rpmError(RPMERR_BADSPEC,
-+ _("line %d: Only noarch subpackages are supported: %s\n"),
-+ spec->lineNum, spec->line);
-+ BANames = _free(BANames);
-+ return RPMRC_FAIL;
-+ }
-+ headerAddEntry(pkg->header, RPMTAG_ARCH, RPM_STRING_TYPE, "noarch", 1);
-+ }
-+ if (!BACount)
- spec->BANames = _free(spec->BANames);
- break;
--
-+ }
- default:
- rpmError(RPMERR_INTERNAL, _("Internal error: Bogus tag %d\n"), tag);
- return RPMERR_INTERNAL;
-diff -urpa rpm-4.5.orig/build/parseSpec.c rpm-4.5/build/parseSpec.c
---- rpm-4.5.orig/build/parseSpec.c 2019-06-01 18:55:39.226000000 +0200
-+++ rpm-4.5/build/parseSpec.c 2019-06-01 19:27:44.338000000 +0200
-@@ -627,8 +627,11 @@ int parseSpec(rpmts ts, const char *spec
- }
-
- (void) headerAddEntry(pkg->header, RPMTAG_OS, RPM_STRING_TYPE, os, 1);
-- (void) headerAddEntry(pkg->header, RPMTAG_ARCH,
-- RPM_STRING_TYPE, arch, 1);
-+ /* noarch subpackages already have arch set here, leave it alone */
-+ if (!headerIsEntry(pkg->header, RPMTAG_ARCH)) {
-+ (void) headerAddEntry(pkg->header, RPMTAG_ARCH,
-+ RPM_STRING_TYPE, arch, 1);
-+ }
- (void) headerAddEntry(pkg->header, RPMTAG_PLATFORM,
- RPM_STRING_TYPE, platform, 1);
-
+++ /dev/null
---- rpm-4.4.3/build/parseChangelog.c.orig 2005-11-12 01:20:12.000000000 +0100
-+++ rpm-4.4.3/build/parseChangelog.c 2005-11-18 19:46:50.357322048 +0100
-@@ -255,7 +255,7 @@
- line = xstrtolocale(line);
- appendStringBuf(sb, spec->line);
- line = _free(line);
-- if ((rc = readLine(spec, STRIP_COMMENTS)) > 0) {
-+ if ((rc = readLine(spec, STRIP_COMMENTS | STRIP_NOEXPAND)) > 0) {
- nextPart = PART_NONE;
- break;
- }
---- rpm-4.3/build/parseSpec.c.wiget Thu May 15 18:15:51 2003
-+++ rpm-4.3/build/parseSpec.c Fri May 16 00:08:57 2003
-@@ -156,12 +156,16 @@
- ofi->readPtr = from;
-
- /* Don't expand macros (eg. %define) in false branch of %if clause */
-+ /* Also don't expand macros in %changelog where we set STRIP_NOEXPAND flag */
-+ /* (first line is ommited, so if there is e.g. %date macro, it will be expanded */
-+ if (!(strip & STRIP_NOEXPAND)) {
- if (spec->readStack->reading &&
- expandMacros(spec, spec->macros, spec->lbuf, sizeof(spec->lbuf))) {
- rpmError(RPMERR_BADSPEC, _("line %d: %s\n"),
- spec->lineNum, spec->lbuf);
- return RPMERR_BADSPEC;
- }
-+ }
- spec->nextline = spec->lbuf;
- }
-
-@@ -273,6 +277,7 @@
- SKIPSPACE(s);
-
- match = -1;
-+ if (! (strip & STRIP_NOEXPAND)) {
- if (!spec->readStack->reading && !strncmp("%if", s, sizeof("%if")-1)) {
- match = 0;
- } else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
-@@ -354,6 +359,7 @@
- ofi = spec->fileStack;
- goto retry;
- }
-+ }
-
- if (match != -1) {
- rl = xmalloc(sizeof(*rl));
---- rpm-4.3/build/rpmbuild.h.wiget Sat May 10 17:19:33 2003
-+++ rpm-4.3/build/rpmbuild.h Fri May 16 00:06:47 2003
-@@ -75,6 +75,7 @@
- #define STRIP_NOTHING 0
- #define STRIP_TRAILINGSPACE (1 << 0)
- #define STRIP_COMMENTS (1 << 1)
-+#define STRIP_NOEXPAND (1 << 2)
-
- #ifdef __cplusplus
- extern "C" {
+++ /dev/null
---- rpm-4.5/configure.ac~ 2008-06-10 01:59:21.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-06-10 01:59:51.820465028 +0300
-@@ -36,7 +36,7 @@
- if test "$ac_cv_c_compiler_gnu" = yes; then
- CFLAGS="$CFLAGS -fPIC -DPIC -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts"
- case "$target" in
-- *-*-linux* ) LDFLAGS="$LDFLAGS -pie" ;;
-+ *-*-linux* ) LDFLAGS="$LDFLAGS" ;;
- esac
- fi
- export CFLAGS LDFLAGS
---- rpm-4.5/Makefile.am~ 2008-06-11 01:11:33.000000000 +0300
-+++ rpm-4.5/Makefile.am 2008-06-11 01:33:49.737107691 +0300
-@@ -55,13 +55,13 @@
- rpm_LDFLAGS = $(myLDFLAGS) $(staticLDFLAGS)
- rpm_LDADD = rpm.o $(top_builddir)/build/.libs/librpmbuild.a $(myLDADD)
- rpm.o: $(top_srcdir)/rpmqv.c
-- $(COMPILE) -fpie -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c $<
-+ $(COMPILE) -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c $<
-
- rpmbuild_SOURCES = $(top_srcdir)/build.c
- rpmbuild_LDFLAGS = $(myLDFLAGS) $(staticLDFLAGS)
- rpmbuild_LDADD = rpmbuild.o $(top_builddir)/build/librpmbuild.la $(myLDADD)
- rpmbuild.o: $(top_srcdir)/rpmqv.c
-- $(COMPILE) -fpie -DIAM_RPMBT -o $@ -c $<
-+ $(COMPILE) -DIAM_RPMBT -o $@ -c $<
-
- $(PROGRAMS): @WITH_APIDOCS_TARGET@
-
+++ /dev/null
---- rpm-4.4.9/platform.in~ 2008-10-09 15:07:56.000000000 +0300
-+++ rpm-4.4.9/platform.in 2008-10-09 15:08:51.661842059 +0300
-@@ -32,10 +32,6 @@
-
- %_defaultdocdir @DEFAULTDOCDIR@
-
--%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
-- && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
-- [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS")
--
- @MULTILIBSTART@
- #---------------------------------------------------------------------
- # Multilibs
+++ /dev/null
---- rpm-4.3/rpmio/rpmsw.c.orig 2003-04-10 20:09:13.000000000 +0200
-+++ rpm-4.3/rpmio/rpmsw.c 2003-11-17 21:55:44.649426712 +0100
-@@ -27,7 +27,7 @@
- /*@unchecked@*/
- static int rpmsw_initialized = 0;
-
--#if defined(__i386__)
-+#if 0 && defined(__i386__)
- /* Swiped from glibc-2.3.2 sysdeps/i386/i686/hp-timing.h */
-
- #define HP_TIMING_ZERO(Var) (Var) = (0)
+++ /dev/null
---- rpm-4.5/configure.ac~ 2008-06-12 22:16:53.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-06-12 22:19:01.103542424 +0300
-@@ -1496,7 +1496,7 @@
- [Colon separated paths of rpmrc files to read.])
- AC_SUBST(RPMRCFILES)
-
--RPMPOPTFILE="${USRLIBRPM}/${VERSION}/rpmpopt"
-+RPMPOPTFILE="${USRLIBRPM}/rpmpopt"
- AC_DEFINE_UNQUOTED(RPMPOPTFILE, "$RPMPOPTFILE",
- [Full path to rpmpopt configuration file (usually /usr/lib/rpm/rpmpopt)])
- AC_SUBST(RPMPOPTFILE)
---- rpm-4.5/macros.in~ 2008-06-11 10:53:07.000000000 +0300
-+++ rpm-4.5/macros.in 2008-06-11 21:59:36.949096310 +0300
-@@ -33,7 +33,7 @@
- %_usrlibrpm @USRLIBRPM@
- %_etcrpm @SYSCONFIGDIR@
-
--%_rpmhome %{_usrlibrpm}/%{_rpmversion}
-+%_rpmhome %{_usrlibrpm}
-
- #==============================================================================
- # ---- Generally useful path macros.
---- rpm-4.5/Makefile.am~ 2008-06-11 10:52:27.000000000 +0300
-+++ rpm-4.5/Makefile.am 2008-06-11 22:04:00.280274462 +0300
-@@ -46,8 +46,7 @@
- bin_PROGRAMS = rpm rpmbuild
-
- pkglibdir = @USRLIBRPM@
--versionlibdir = $(pkglibdir)/@VERSION@
--versionlib_DATA = rpmpopt macros
-+pkglib_DATA = rpmpopt macros
-
- noinst_HEADERS = build.h debug.h system.h
-
---- rpm-4.5/tools/Makefile.am~ 2008-07-09 13:30:54.000000000 +0300
-+++ rpm-4.5/tools/Makefile.am 2008-07-09 13:34:07.594546056 +0300
-@@ -24,8 +24,7 @@
- bin_PROGRAMS = rpmdigest rpmmtree rpmrepo
-
- pkglibdir = @USRLIBRPM@
--versionlibdir = $(pkglibdir)/@VERSION@
--versionlib_PROGRAMS = rpmdeps @WITH_LIBDWARF_DEBUGEDIT@
-+pkglib_PROGRAMS = rpmdeps @WITH_LIBDWARF_DEBUGEDIT@
-
- convertdb1_SOURCES = convertdb1.c
-
---- rpm-4.5/scripts/Makefile.am~ 2008-05-21 23:48:02.000000000 +0300
-+++ rpm-4.5/scripts/Makefile.am 2008-06-11 22:05:28.257345656 +0300
-@@ -28,8 +28,7 @@
- bin_SCRIPTS = gendiff rpm2cpio
-
- pkglibdir = @USRLIBRPM@
--versionlibdir = $(pkglibdir)/@VERSION@
--versionlib_SCRIPTS = \
-+pkglib_SCRIPTS = \
- brp-compress brp-python-bytecompile brp-java-gcjcompile \
- brp-strip brp-strip-comment-note brp-nobuildrootpath \
- brp-strip-shared brp-strip-static-archive brp-sparc64-linux \
+++ /dev/null
---- rpm-4.4.4/lib/poptI.c.orig 2005-11-27 13:50:16.000000000 +0000
-+++ rpm-4.4.4/lib/poptI.c 2005-12-28 02:43:01.029574304 +0000
-@@ -16,7 +16,7 @@
- /*@-fullinitblock@*/
- /*@unchecked@*/
- struct rpmQVKArguments_s rpmIArgs = {
-- .probFilter = (RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES),
-+ .probFilter = 0,
- };
- /*@=fullinitblock@*/
-
-@@ -274,9 +273,6 @@
- N_("skip files with leading component <path> "),
- N_("<path>") },
-
-- { "fileconflicts", '\0', POPT_BIT_CLR, &rpmIArgs.probFilter,
-- (RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES),
-- N_("detect file conflicts between packages"), NULL},
- { "force", '\0', 0, NULL, RPMCLI_POPT_FORCE,
- N_("short hand for --replacepkgs --replacefiles"), NULL},
-
---- rpm-4.5/scripts/perl.req 2008-07-09 12:38:31.000000000 +0300
-+++ rpm-4.4.9/scripts/perl.req.in 2008-08-12 23:08:33.518675858 +0300
-@@ -277,20 +277,20 @@
- # $V-style
- if ($ver =~ m/5\.([0-5])(\.([0-9]+))?$/) {
- if (defined $3) {
-- print "perl >= 0:5.00$1_$3\n";
+--- rpm-5.3.1/configure.ac.wiget 2010-05-22 17:15:11.000000000 +0200
++++ rpm-5.3.1/configure.ac 2010-05-30 16:37:59.526924459 +0200
+@@ -1100,7 +1100,7 @@ AC_CONFIG_FILES([ po/Makefile.in
+
+ AC_CONFIG_FILES([Makefile
+ rpmio/Makefile lib/Makefile build/Makefile sign/Makefile
+- po/Makefile.in scripts/Makefile fileattrs/Makefile
++ po/Makefile.in scripts/Makefile scripts/perl.req scripts/perl.prov fileattrs/Makefile
+ misc/Makefile
+ doc/Makefile
+ python/Makefile
+--- rpm-5.3.1/scripts/perl.req.wiget 2008-10-26 10:50:53.000000000 +0100
++++ rpm-5.3.1/scripts/perl.req 2010-05-30 16:35:36.999438206 +0200
+@@ -45,7 +45,11 @@
+
+ if ("@ARGV") {
+ foreach (@ARGV) {
+- process_file($_);
++ if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
++ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
++ process_file($_);
++ }
++ }
+ }
+ } else {
+
+@@ -53,7 +57,11 @@
+ # contents of the file.
+
+ foreach (<>) {
+- process_file($_);
++ if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
++ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
++ process_file($_);
++ }
++ }
+ }
+ }
+
+@@ -261,19 +269,41 @@
+
+ $module =~ s/\(\s*\)$//;
+
+- if ( $module =~ m/^v?([0-9._]+)$/ ) {
++ if ( $module =~ m/^(v?)([0-9._]+)$/ ) {
+ # if module is a number then both require and use interpret that
+ # to mean that a particular version of perl is specified
+
+- my $ver = $1;
+- if ($ver =~ /5.00/) {
+- $perlreq{"0:$ver"} = 1;
+- next;
+- }
+- else {
+- $perlreq{"1:$ver"} = 1;
+- next;
+- }
++ my $ver=$2;
++ if (($1 eq 'v') or ($ver =~ /[0-9]+\.[0-9]+\.[0-9]+/)) {
++ # $V-style
++ if ($ver =~ m/5\.([0-5])(\.([0-9]+))?$/) {
++ if (defined $3) {
+ print "perl-base >= 0:5.00$1_$3\n";
- } else {
-- print "perl >= 0:5.00$1\n";
++ } else {
+ print "perl-base >= 0:5.00$1\n";
- }
- } else {
-- print "perl >= 1:$ver\n";
++ }
++ } else {
+ print "perl-base >= 1:$ver\n";
- }
- } else {
- # $]-style
- if ($ver =~ m/5\.(00[0-5])_?([0-9]+)?$/) {
- if (defined $2) {
-- print "perl >= 0:5.$1_$2\n";
++ }
++ } else {
++ # $]-style
++ if ($ver =~ m/5\.(00[0-5])_?([0-9]+)?$/) {
++ if (defined $2) {
+ print "perl-base >= 0:5.$1_$2\n";
- } else {
-- print "perl >= 0:5.$1\n";
++ } else {
+ print "perl-base >= 0:5.$1\n";
- }
- } else {
- # expand to M.NNN_nnn form
-@@ -299,7 +299,7 @@
- $ver =~ s/^([0-9]\.[0-9]{3})_?([0-9]{3})0*$/$1_$2/;
- # match trimming leading 0s
- $ver =~ m/^([0-9])\.0*([1-9][0-9]*|0)_0*([1-9][0-9]*|0)$/;
-- print "perl >= 1:$1.$2.$3\n";
++ }
++ } else {
++ # expand to M.NNN_nnn form
++ $ver =~ s/^([0-9])$/$1./;
++ $ver =~ s/^([0-9]\.[0-9]{0,5}|[0-9]\.[0-9]{3}_[0-9]{0,2})$/${1}000000/;
++ $ver =~ s/^([0-9]\.[0-9]{3})_?([0-9]{3})0*$/$1_$2/;
++ # match trimming leading 0s
++ $ver =~ m/^([0-9])\.0*([1-9][0-9]*|0)_0*([1-9][0-9]*|0)$/;
+ print "perl-base >= 1:$1.$2.$3\n";
- }
- }
- next;
-@@ -326,6 +326,10 @@
++ }
++ }
++ next;
+
+ };
- ($module =~ m/\.(ph|pl|t)$/) && next;
+@@ -290,7 +320,31 @@
+ # will be included with the name sys/systeminfo.ph so only use the
+ # basename of *.ph files
+- ($module =~ m/\.ph$/) && next;
++ # ($module =~ m/\.ph$/) && ($module =~ s!.*/!!g );
++
++ # there is no need to generate dependencies for ph, pl or test files
++ # so let's just skip them.
++
++ ($module =~ m/\.(ph|pl|t)$/) && next;
++
+ # skip all modules for platforms other than linux.
+
+ ($module =~ m/Mac|OS2|MSDOS|Win32|VMS|vmsish/) && next;
+
- # if the module name starts in a dot it is not a module name.
++ # if the module name starts in a dot it is not a module name.
++
++ ($module =~ m/^\./) && next;
++
++ # if the module ends with .pm strip it to leave only basename.
++
++ $module =~ s/\.pm$//;
++
++ $module =~ s/\//::/;
++
++ # trim off trailing parenthesis if any. Sometimes people pass
++ # the module an empty list.
++
++ $module =~ s/\(\s*\)$//;
- ($module =~ m/^\./) && next;
+ # use base|parent qw(Foo) dependencies
+ if ($statement eq "use" && ($module eq "base" || $module eq "parent")) {
--- /dev/null
+--- rpm/build/rpmfc.c.orig 2014-10-07 15:53:03.185631053 +0100
++++ rpm/build/rpmfc.c 2014-10-07 16:02:32.487591097 +0100
+@@ -593,6 +593,7 @@
+ { "GNU Info", RPMFC_INCLUDE },
+
+ { "perl ", RPMFC_INCLUDE },
++ { "Perl script", RPMFC_INCLUDE },
+ { "Perl5 module source text", RPMFC_INCLUDE },
+ { "python ", RPMFC_INCLUDE },
+
+++ /dev/null
---- rpm-4.5/perl/Makefile.PL.in~ 2008-10-05 01:31:01.000000000 +0300
-+++ rpm-4.5/perl/Makefile.PL.in 2008-10-05 01:31:09.224607131 +0300
-@@ -12,7 +12,7 @@
- 'NAME' => 'RPM',
- 'VERSION_FROM' => 'RPM.pm', # finds $VERSION
- 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
-- 'LIBS' => [join(' ', @ldaddp) . ' ' . join(' ', @ldadd) . ' -lpopt -lneon -lbeecrypt -lpthread -lneon '],
-+ 'LIBS' => [join(' ', @ldaddp) . ' ' . join(' ', @ldadd) . ' @LIBS@ @WITH_POPT_LIB@ @WITH_BEECRYPT_LIB@ -lneon'],
- 'DEFINE' => join(" ", @defines), # e.g., '-DHAVE_SOMETHING'
- 'INC' => join(' ', map { '-I@top_srcdir@/'. $_ } @libdir) . ' @CPPFLAGS@',
- 'TYPEMAPS' => [ 'typemap' ],
--- /dev/null
+--- rpm-4.2/scripts/perl.req.wigperl Tue Apr 1 13:33:52 2003
++++ rpm-4.2/scripts/perl.req Tue Apr 1 13:39:47 2003
+@@ -39,28 +39,19 @@
+ eval { require version; $HAVE_VERSION = 1; };
+
+
+-if ("@ARGV") {
+- foreach (@ARGV) {
++foreach ( @ARGV ? @ARGV : <> ) {
++ chomp;
+ if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
+ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
+- process_file($_);
++ process_file($_) if -f;
+ }
+ }
+- }
+-} else {
+-
+- # notice we are passed a list of filenames NOT as common in unix the
+- # contents of the file.
+-
+- foreach (<>) {
+- if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
+- if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
+- process_file($_);
+- }
+- }
+- }
+ }
+
++foreach (sort keys %provide) {
++ delete $require{$_};
++}
++delete $require{the}; # don't count "use the sth" as perl module
+
+ foreach $perlver (sort keys %perlreq) {
+ print "perl >= $perlver\n";
+@@ -82,6 +74,53 @@
+ }
+ }
+
++sub is_perlfile {
++ my $file = shift;
++ my $fh = shift;
++
++ my $fl = <$fh>;
++
++ my $is_perl = 0;
++
++ my $nw = 0;
++
++ if ($file =~ /\.(so|ph|h|html|pod|gz|bz2|png|gif|jpg|xpm|a|patch|o|mo)$/) {
++ $is_perl = 0;
++
++ # .al, .pl, .pm and .plx (perl-Font-TTF contains *.plx files)
++ } elsif ($file =~ /\.p[lm]x?$/ || $file =~ /\.al$/) {
++ $is_perl = 1;
++ #print STDERR "$file PERL by ext\n";
++ } elsif ($fl =~ m|bin/perl| or $fl =~ m|env\s+perl| or $fl =~ m|exec\s+perl|) {
++ $is_perl = 1;
++ #print STDERR "$file PERL by perl\n";
++ } elsif ($fl =~ m|bin/sh|) {
++ while (<$fh>) {
++ if (/eval/ && /perl/) {
++ $is_perl = 1;
++ last;
++ }
++ $nw++ if (/^\s*BEGIN/);
++ $nw++ if (/^\s*sub\s+/);
++ $nw++ if (/^\s*package\s+/);
++ $nw++ if (/^\s*use\s+strict\s+;/);
++ $nw++ if (/^\s*use\s+vars\s*qw/);
++ last if ($. > 30);
++ }
++ }
++
++ seek($fh, 0, 0);
++
++ $is_perl = 1 if ($nw > 1); # propably perl file
++
++ #if (!$is_perl) {
++ # print STDERR "NOPERL $file\n";
++ # return 0;
++ #}
++ #print STDERR "PERL $file\n" if ($is_perl);
++ return $is_perl;
++}
++
+ sub process_file {
+
+ my ($file) = @_;
+@@ -90,6 +129,8 @@
+ return;
+ }
+
++ return if (!is_perlfile($file, \*FILE));
++
+ while (<FILE>) {
+
+ # skip the "= <<" block
+@@ -111,6 +152,10 @@
+ last;
+ }
+
++ if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) {
++ $provide{$1} = 1;
++ }
++
+ # Each keyword can appear multiple times. Don't
+ # bother with datastructures to store these strings,
+ # if we need to print it print it now.
+@@ -236,6 +281,10 @@
+
+ ($module =~ m/^\./) && next;
+
++ # name starts in a non alphanumeric character it is not a module
++ # name.
++ ($module =~ m/^\W/) && next;
++
+ # if the module ends with .pm strip it to leave only basename.
+
+ $module =~ s/\.pm$//;
--- /dev/null
+--- scripts/perl.req~ 2004-04-16 13:27:10.000000000 +0200
++++ scripts/perl.req 2004-04-26 23:54:42.128568344 +0200
+@@ -39,9 +39,18 @@
+ eval { require version; $HAVE_VERSION = 1; };
+
+
++# *inc variables are used to track dependencies on directories for modules.
++# These directories (especially arch-dependent) are likely to change some day.
++my @inc = sort { length $b cmp length $a }
++ map { s#/*$##; $_ }
++ grep m#^/.#, @INC;
++my %inc = map { $_ => 0 } @inc;
++my $inc = join '|', map "\Q$_\E", @inc;
++
+ foreach ( @ARGV ? @ARGV : <> ) {
+- chomp;
+- if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
++ chomp;
++ $inc{$1}++ if m#($inc)/#; # can't anchor on ^
++ if (m=/usr/(sbin|bin|lib|lib64|libx32|share|X11R6/(lib|lib64|libx32|bin))/=) {
+ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
+ process_file($_) if -f;
+ }
+@@ -53,7 +64,9 @@
+ foreach $perlver (sort keys %perlreq) {
+ print "perl >= $perlver\n";
+ }
++print "$_\n" for sort grep $inc{$_}, keys %inc;
++
+-foreach $module (sort keys %require) {
++foreach my $module (sort grep length, keys %require) {
+ if (length($require{$module}) == 0) {
+ print "perl($module)\n";
+ } else {
+++ /dev/null
---- rpm-5.1.4/scripts/perl.req.in.orig 2008-10-26 10:26:43.622757203 +0100
-+++ rpm-5.1.4/scripts/perl.req 2008-10-26 10:26:48.452756609 +0100
-@@ -140,15 +140,22 @@
- return if (!is_perlfile($file, \*FILE));
-
- while (<FILE>) {
--
-- # skip the "= <<" block
-
-- if ( ( m/^\s*\$(.*)\s*=\s*<<\s*["'](.*)['"]/) ||
-- ( m/^\s*\$(.*)\s*=\s*<<\s*(.*);/) ) {
-- $tag = $2;
-- while (<FILE>) {
-- ( $_ =~ /^$tag/) && last;
-- }
-+ # skip the documentation
-+ if ( /^ = (?: head\d | pod | item | over | back | (?: begin|end|for ) \s+\S+ ) \b/x ) {
-+ $_ = <FILE> until /^=cut/ or eof;
-+ next;
-+ }
-+
-+ # naively strip some comments... will screw m/\#/, m##, q##, qw##, qr##, etc, but these don't really matter for us
-+ s/(?<! \\ ) # \b .+ //x;
-+
-+ # skip the "= <<label", "print <<", "warn <<", "foo(<<label) blocks
-+ # note: watch out for the binary << operator and comments
-+ if ( m/ (?: = | \b[a-z][a-z_]+\(? ) \s* << \s* (?: q{0,2}(["']) (.+) \1 | ([a-zA-Z][a-zA-Z\d_]*) ) [\s;\)]* $/x ) {
-+ my $tag = defined $2 ? $2 : $3;
-+ $_ = <FILE> until m/^\Q$tag\E\s*$/ or eof;
-+ next;
- }
-
- # skip q{} quoted sections - just hope we don't have curly brackets
-@@ -157,21 +164,7 @@
- if ( m/^.*\Wq[qxwr]?\s*([\{\(\[#|\/])[^})\]#|\/]*$/ && ! m/^\s*(require|use)\s/ ) {
- $tag = $1;
- $tag =~ tr/{([/})]/;
-- $_ = <FILE> until m/\Q$tag\E/;
-- }
--
-- # skip the documentation
--
-- # we should not need to have item in this if statement (it
-- # properly belongs in the over/back section) but people do not
-- # read the perldoc.
--
-- if ( (m/^=(head[1-4]|pod|item)/) .. (m/^=(cut)/) ) {
-- next;
-- }
--
-- if ( (m/^=(over)/) .. (m/^=(back)/) ) {
-- next;
-+ $_ = <FILE> until m/\Q$tag\E/ or eof;
- }
-
- # skip the data section
+++ /dev/null
---- rpm-5.1.4/scripts/perl.req~ 2008-08-20 21:34:42.000000000 +0200
-+++ rpm-5.1.4/scripts/perl.req 2008-08-28 12:45:14.820174910 +0200
-@@ -156,10 +156,8 @@
- # marker, such as occurs right here. Draw the line somewhere.
- if ( m/^.*\Wq[qxwr]?\s*([\{\(\[#|\/])[^})\]#|\/]*$/ && ! m/^\s*(require|use)\s/ ) {
- $tag = $1;
-- $tag =~ tr/{\(\[\#|\//})]#|\//;
-- while (<FILE>) {
-- ( $_ =~ m/\}/ ) && last;
-- }
-+ $tag =~ tr/{([/})]/;
-+ $_ = <FILE> until m/\Q$tag\E/;
- }
-
- # skip the documentation
+++ /dev/null
---- rpm-5.1.4/scripts/perl.req 2008-08-20 21:27:09.929116479 +0200
-+++ rpm-5.1.4/scripts/perl.req 2008-10-26 10:48:31.529709016 +0100
-@@ -196,7 +196,28 @@
- }
- }
-
-- if (
-+ # handle "use base qw/ foo::bar baz::blah /;" and variations
-+ if (
-+ m/^ \s* use \s+ base
-+ (?: \s+ q[wq]? \s* ( [!@#\$%^&*'"\/+=`~,.?-] ) \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* \1
-+ |
-+ \s* ( ["'] ) ( [\w:]+? ) \3
-+ |
-+ # qw[], qw(), qw<>, qw{} are handled here; lax, but who gives
-+ \s+ q[wq]? \s* [\[({<] \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* [\])}>]
-+ )
-+ \s* ;
-+ /x
-+ )
-+ {
-+ my @deps = ( $1 ? split /\s+/, $2 : $3 ? $4 : split /\s+/, $5 );
-+ for my $mod ( grep !exists $require{$_}, @deps ) {
-+ $require{$mod} = '';
-+ $line{$mod} = $_;
-+ }
-+ }
-+
-+ elsif (
-
- # ouch could be in a eval, perhaps we do not want these since we catch
- # an exception they must not be required
+++ /dev/null
---- rpm-4.5/Makefile.am~ 2008-06-10 01:48:59.000000000 +0300
-+++ rpm-4.5/Makefile.am 2009-10-15 00:00:46.263391619 +0300
-@@ -51,6 +51,15 @@
-
- noinst_HEADERS = build.h debug.h system.h
-
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = rpm.pc
-+rpm.pc: $(top_srcdir)/rpm.pc.in
-+ @$(SED) \
-+ -e "s,[@]RPMCONFIGDIR[@],$(rpmconfigdir),g" \
-+ < $(top_srcdir)/rpm.pc.in > rpm.pc.tmp \
-+ && ( cd $(top_builddir) && ./config.status --file=${subdir}/rpm.pc:${subdir}/rpm.pc.tmp )
-+EXTRA_DIST += rpm.pc.in
-+
- rpm_SOURCES = $(top_srcdir)/build.c
- rpm_LDFLAGS = $(myLDFLAGS) $(staticLDFLAGS)
- rpm_LDADD = rpm.o $(top_builddir)/build/.libs/librpmbuild.a $(myLDADD)
---- /dev/null 2007-02-13 18:29:53.000000000 +0200
-+++ rpm/rpm.pc.in 2009-10-14 23:59:01.260069165 +0300
-@@ -0,0 +1,15 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@/rpm
-+rpmhome=@RPMCONFIGDIR@
-+
-+Name: RPM
-+Description: RPM Package Manager
-+Version: @VERSION@
-+URL: http://rpm5.org
-+# Requires:
-+# Conflicts:
-+Cflags: -I${includedir}
-+Libs: -L${libdir} -lrpm -lrpmio
-+Libs.private: -lpopt -lrt -lpthread @WITH_SELINUX_LIB@ @WITH_SQLITE3_LIB@ -ldb
+++ /dev/null
---- rpm-4.4.8/scripts/pkgconfigdeps.sh.orig 2007-02-14 08:09:42.000000000 +0100
-+++ rpm-4.4.8/scripts/pkgconfigdeps.sh 2007-04-08 21:39:49.283342196 +0200
-@@ -31,8 +31,6 @@
- case "${filename}" in
- *.pc)
- $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do
-- i="`expr $i + 1`"
-- [ $i -eq 1 ] && echo "pkgconfig"
- echo "pkgconfig($n)" "$r" "$v"
- done
- esac
+++ /dev/null
---- rpm-4.4.8/lib/rpmfc.h.orig 2005-11-18 23:08:14.231293000 +0100
-+++ rpm-4.4.8/lib/rpmfc.h 2005-11-18 23:55:16.694214392 +0100
-@@ -1,6 +1,7 @@
- #ifndef _H_RPMFC_
- #define _H_RPMFC_
-
-+#include <regex.h>
- #undef FILE_RCSID
- #include "magic.h"
-
-@@ -44,6 +45,11 @@
- StringBuf sb_python;/*!< concatenated list of python colored files. */
- StringBuf sb_php; /*!< concatenated list of php colored files. */
-
-+ int findprov, findreq;
-+ regex_t *noautoprov;
-+ int noautoprov_c;
-+ regex_t *noautoreq;
-+ int noautoreq_c;
- };
-
- /**
---- rpm-4.5/lib/rpmfc.c~ 2008-06-10 14:06:23.000000000 +0300
-+++ rpm-4.5/lib/rpmfc.c 2008-06-10 14:21:53.097663262 +0300
-@@ -15,6 +15,8 @@
- #define _RPMDS_INTERNAL
- #include <rpmds.h>
- #include <rpmfi.h>
-+#include <rpmts.h>
-+#include <rpmdb.h>
-
- #include "debug.h"
-
-@@ -309,14 +311,83 @@
- return buf;
- };
-
-+static regex_t * rpmfcExpandRegexps(const char * str,int *count){
-+ int i,j,r;
-+ const char *s;
-+ ARGV_t patterns=NULL;
-+ regex_t *compiled=NULL;
-+
-+ s=rpmExpand(str,NULL);
-+ if (s) {
-+ poptParseArgvString(s,count,(const char ***)&patterns);
-+ s = _free(s);
-+ }
-+ if (patterns==NULL){
-+ *count=0;
-+ return NULL;
-+ }
-+ if (*count==0){
-+ _free(patterns);
-+ return NULL;
-+ }
-+
-+ compiled=malloc(sizeof(regex_t)*(*count));
-+ j=0;
-+ for(i=0;i<*count;i++){
-+ r=regcomp(&compiled[j],patterns[i],REG_NOSUB);
-+ if (r==0) j++;
-+ else {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("Compilation of regular expresion '%s'"
-+ " (expanded from '%s') failed. Skipping it.\n"),
-+ patterns[i],str);
-+ }
-+ }
-+ patterns=_free(patterns);
-+ if (j==0) {
-+ compiled=_free(compiled);
-+ *count=0;
-+ return NULL;
-+ }
-+ *count=j;
-+ return compiled;
-+}
-+
-+static int rpmfcMatchRegexps(regex_t *regexps, int count, const char *str, char deptype)
-+{
-+ int j;
-+ for(j = 0; j < count; j++) {
-+ rpmMessage(RPMMESS_DEBUG,
-+ _("Checking %c: '%s' against _noauto expr. #%i\n"), deptype, str, j);
-+ if (!regexec(®exps[j], str, 0, NULL, 0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("Skipping %c: '%s' as it matches _noauto expr. #%i\n"), deptype, str, j);
-+ return 1;
-+ }
-+ }
-+ return 0;
-+}
-+
-+static regex_t * rpmfcFreeRegexps(regex_t *regexps,int count){
-+ int i;
-+
-+ if (regexps)
-+ for(i=0;i<count;i++)
-+ regfree(®exps[i]);
-+ return _free(regexps);
-+}
-+
- /**
- * Run per-interpreter dependency helper.
- * @param fc file classifier
- * @param deptype 'P' == Provides:, 'R' == Requires:, helper
- * @param nsdep class name for interpreter (e.g. "perl")
-+ * @param noauto _noauto* regexps
-+ * @param noauto_c # of _noauto* regexps
- * @return 0 on success
- */
--static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
-+static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep,
-+ regex_t * noauto, int noauto_c)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-@@ -402,6 +473,8 @@
- }
- /*@=branchstate@*/
-
-+ if(rpmfcMatchRegexps(noauto, noauto_c, N, deptype))
-+ continue;
-
- /* Add tracking dependency for versioned Provides: */
- if (!fc->tracked && deptype == 'P' && *EVR != '\0') {
-@@ -714,7 +787,7 @@
- *se = '\0';
- se++;
-
-- if (is_executable) {
-+ if (is_executable && fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, s, 'R')) {
- /* Add to package requires. */
- ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES);
- xx = rpmdsMerge(&fc->requires, ds);
-@@ -808,20 +889,26 @@
- default:
- break;
- case RPMTAG_PROVIDENAME:
-+ if (fc->findprov && !rpmfcMatchRegexps(fc->noautoprov, fc->noautoprov_c, ds->N[0], 'P')) {
- /* Add to package provides. */
- rc = rpmdsMerge(&fc->provides, ds);
-
- /* Add to file dependencies. */
- buf[0] = '\0';
- rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
-+ } else
-+ rc = 0;
- break;
- case RPMTAG_REQUIRENAME:
-+ if (fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, ds->N[0], 'R')) {
- /* Add to package requires. */
- rc = rpmdsMerge(&fc->requires, ds);
-
- /* Add to file dependencies. */
- buf[0] = '\0';
- rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
-+ } else
-+ rc = 0;
- break;
- }
- return rc;
-@@ -862,6 +949,109 @@
- { NULL, 0 }
- };
-
-+static int rpmfcFindRequiredPackages(rpmfc fc)
-+{
-+ rpmts ts=NULL;
-+ const char * s;
-+ char * se;
-+ rpmds ds;
-+ const char * N;
-+ const char * EVR;
-+ int_32 Flags;
-+ unsigned char deptype;
-+ int nddict;
-+ int previx;
-+ int ix;
-+ int i;
-+ int j;
-+ int xx;
-+ int r;
-+ const char * hname;
-+ rpmdbMatchIterator it;
-+ Header hdr;
-+ regex_t *noautoreqdep;
-+ int noautoreqdep_c;
-+
-+ noautoreqdep=rpmfcExpandRegexps("%{__noautoreqdep}", &noautoreqdep_c);
-+
-+ ts = rpmtsCreate(); /* XXX ts created in main() should be used */
-+
-+ rpmMessage(RPMMESS_NORMAL, _("Searching for required packages....\n"));
-+
-+ nddict = argvCount(fc->ddict);
-+ previx = -1;
-+ for (i = 0; i < nddict; i++) {
-+ s = fc->ddict[i];
-+
-+ /* Parse out (file#,deptype,N,EVR,Flags) */
-+ ix = strtol(s, &se, 10);
-+ assert(se != NULL);
-+ deptype = *se++;
-+ se++;
-+ N = se;
-+ while (*se && *se != ' ')
-+ se++;
-+ *se++ = '\0';
-+ EVR = se;
-+ while (*se && *se != ' ')
-+ se++;
-+ *se++ = '\0';
-+ Flags = strtol(se, NULL, 16);
-+
-+ if (deptype!='R') continue;
-+
-+ rpmMessage(RPMMESS_DEBUG, _("#%i requires: %s,%s,%i\n"),ix,N,EVR,Flags);
-+ if (EVR && EVR[0]) {
-+ rpmMessage(RPMMESS_DEBUG, _("skipping #%i require\n"));
-+ continue;
-+ }
-+ for(j=0;j<noautoreqdep_c;j++)
-+ if (!regexec(&noautoreqdep[j],N,0,NULL,0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("skipping %s requirement processing"
-+ " (matches noautoreqdep pattern #%i)\n"),N,j);
-+ break;
-+ }
-+ if (j<noautoreqdep_c) continue;
-+ if (N[0]=='/') {
-+ rpmMessage(RPMMESS_DEBUG, _("skipping #%i require (is file requirement)\n"));
-+ continue;
-+ }
-+ it=rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, N, 0);
-+ if (!it) {
-+ rpmMessage(RPMMESS_DEBUG, _("%s -> not found\n"),N);
-+ continue;
-+ }
-+ rpmMessage(RPMMESS_DEBUG, _("Iterator: %p\n"),it);
-+ if (rpmdbGetIteratorCount(it)>1) {
-+ rpmMessage(RPMMESS_DEBUG, _("%s -> multiple (skipping)\n"),N);
-+ rpmdbFreeIterator(it);
-+ continue;
-+ }
-+ hdr=rpmdbNextIterator(it);
-+ assert(hdr!=NULL);
-+ r=headerGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
-+ assert(r<2);
-+ if (!strcmp(hname,N)) {
-+ rpmMessage(RPMMESS_DEBUG, _("%s -> %s (skipping)\n"),N,hname);
-+ rpmdbFreeIterator(it);
-+ continue;
-+ }
-+
-+ rpmMessage(RPMMESS_DEBUG, "%s -> %s\n",N,hname);
-+
-+ ds = rpmdsSingle(RPMTAG_REQUIRENAME, hname, "", RPMSENSE_FIND_REQUIRES);
-+ xx = rpmdsMerge(&fc->requires, ds);
-+ ds = rpmdsFree(ds);
-+
-+ rpmdbFreeIterator(it);
-+ }
-+
-+ noautoreqdep = rpmfcFreeRegexps(noautoreqdep, noautoreqdep_c);
-+ ts = rpmtsFree(ts);
-+ return 0;
-+}
-+
- int rpmfcApply(rpmfc fc)
- {
- rpmfcApplyTbl fcat;
-@@ -880,6 +1070,26 @@
- int i;
- int xx;
- int skipping;
-+ int j;
-+ regex_t *noautoprovfiles = NULL;
-+ int noautoprovfiles_c;
-+ regex_t *noautoreqfiles = NULL;
-+ int noautoreqfiles_c;
-+ const char *buildroot;
-+ int buildroot_l;
-+
-+ fc->noautoprov = NULL;
-+ fc->noautoreq = NULL;
-+
-+ buildroot = rpmExpand("%{buildroot}",NULL);
-+ buildroot_l = strlen(buildroot);
-+
-+ noautoprovfiles = rpmfcExpandRegexps("%{__noautoprovfiles}", &noautoprovfiles_c);
-+ noautoreqfiles = rpmfcExpandRegexps("%{__noautoreqfiles}", &noautoreqfiles_c);
-+ fc->noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &fc->noautoprov_c);
-+ fc->noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &fc->noautoreq_c);
-+ rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), fc->noautoprov_c);
-+ rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), fc->noautoreq_c);
-
- /* Generate package and per-file dependencies. */
- for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
-@@ -900,9 +1110,43 @@
- for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
- if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
- /*@innercontinue@*/ continue;
-+ fc->findprov = 1;
-+ fc->findreq = 1;
-+ if (strncmp(fc->fn[fc->ix],buildroot,buildroot_l)==0) {/* sanity check */
-+ for(j = 0; j < noautoprovfiles_c; j++) {
-+ if (!regexec(&noautoprovfiles[j],
-+ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("skipping %s provides detection"
-+ " (matches noautoprovfiles pattern #%i)\n"),
-+ fc->fn[fc->ix], j);
-+ fc->findprov = 0;
-+ break;
-+ }
-+ }
-+ for(j = 0; j < noautoreqfiles_c; j++) {
-+ if (!regexec(&noautoreqfiles[j],
-+ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("skipping %s requires detection"
-+ " (matches noautoreqfiles pattern #%i)\n"),
-+ fc->fn[fc->ix], j);
-+ fc->findreq = 0;
-+ break;
-+ }
-+ }
-+ }
-+
- xx = (*fcat->func) (fc);
- }
- }
-+ noautoprovfiles = rpmfcFreeRegexps(noautoprovfiles, noautoprovfiles_c);
-+ noautoreqfiles = rpmfcFreeRegexps(noautoreqfiles, noautoreqfiles_c);
-+ fc->noautoprov = rpmfcFreeRegexps(fc->noautoprov, fc->noautoprov_c);
-+ fc->noautoreq = rpmfcFreeRegexps(fc->noautoreq, fc->noautoreq_c);
-+#ifdef AUTODEP_PKGNAMES /* define to use package names in R */
-+ rpmfcFindRequiredPackages(fc);
-+#endif
-
- /*@-boundswrite@*/
- /* Generate per-file indices into package dependencies. */
-#--- rpm-4.4.9/po/pl.po.orig 2007-05-22 08:11:40.947724921 +0200
-#+++ rpm-4.4.9/po/pl.po 2007-05-22 08:24:24.091213990 +0200
-#@@ -2937,6 +2937,86 @@
-# msgid "Failed to find %s:\n"
-# msgstr "Nie uda³o siê odnale¼æ %s:\n"
-#
-#+#: lib/rpmfc.c:334
-#+#, c-format
-#+msgid "Compilation of regular expresion '%s' (expanded from '%s') failed. Skipping it.\n"
-#+msgstr "Kompilacja wyra¿enia regularnego '%s' (powsta³ego z '%s') nie powiod³a siê; pominiêto.\n"
-#+
-#+#: lib/rpmfc.c:395
-#+#, c-format
-#+msgid "%i _noautoprov patterns.\n"
-#+msgstr "%i wzorców _noautoprov.\n"
-#+
-#+#: lib/rpmfc.c:405
-#+#, c-format
-#+msgid "%i _noautoreq patterns.\n"
-#+msgstr "%i wzorców _noautoreq.\n"
-#+
-#+#: lib/rpmfc.c:459
-#+#, c-format
-#+msgid "Checking %c: '%s' against _noauto expr. #%i\n"
-#+msgstr "Sprawdzanie %c: '%s' z wyra¿eniem _noauto #%i\n"
-#+
-#+#: lib/rpmfc.c:462
-#+#, c-format
-#+msgid "Skipping %c: '%s' as it matches _noauto expr. #%i\n"
-#+msgstr "Pominiêto %c: '%s' pasuj±ce do wyra¿enia _noauto #%i\n"
-#+
-#+#. XXX ts created in main() should be used
-#+#: lib/rpmfc.c:1173
-#+msgid "Searching for required packages....\n"
-#+msgstr "Poszukiwanie wymaganych pakietów...\n"
-#+
-#+#: lib/rpmfc.c:1197
-#+#, c-format
-#+msgid "#%i requires: %s,%s,%i\n"
-#+msgstr "#%i wymaga: %s,%s,%i\n"
-#+
-#+#: lib/rpmfc.c:1199
-#+#, c-format
-#+msgid "skipping #%i require\n"
-#+msgstr "pominiêto zale¿no¶æ #%i\n"
-#+
-#+#: lib/rpmfc.c:1205
-#+#, c-format
-#+msgid "skipping %s requirement processing (matches noautoreqdep pattern #%i)\n"
-#+msgstr "pominiêto przetwarzanie zale¿no¶ci %s (pasuje do wzorca noautoreqdep #%i)\n"
-#+
-#+#: lib/rpmfc.c:1211
-#+#, c-format
-#+msgid "skipping #%i require (is file requirement)\n"
-#+msgstr "pominiêto zale¿no¶æ #%i (zale¿no¶æ od pliku)\n"
-#+
-#+#: lib/rpmfc.c:1216
-#+#, c-format
-#+msgid "%s -> not found\n"
-#+msgstr "%s -> nie znaleziono\n"
-#+
-#+#: lib/rpmfc.c:1219
-#+#, c-format
-#+msgid "Iterator: %p\n"
-#+msgstr "Iterator: %p\n"
-#+
-#+#: lib/rpmfc.c:1221
-#+#, c-format
-#+msgid "%s -> multiple (skipping)\n"
-#+msgstr "%s -> wiele (pominiêto)\n"
-#+
-#+#: lib/rpmfc.c:1230
-#+#, c-format
-#+msgid "%s -> %s (skipping)\n"
-#+msgstr "%s -> %s (pominiêto)\n"
-#+
-#+#: lib/rpmfc.c:1295
-#+#, c-format
-#+msgid "skipping %s provides detection (matches noautoprovfiles pattern #%i)\n"
-#+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoprovfiles #%i)\n"
-#+
-#+#: lib/rpmfc.c:1306
-#+#, c-format
-#+msgid "skipping %s requires detection (matches noautoreqfiles pattern #%i)\n"
-#+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoreqfiles #%i)\n"
-#+
-# #: lib/rpmfi.c:622
-# #, c-format
---- rpm/configure.ac.orig 2004-08-22 13:02:30.000000000 +0200
-+++ rpm/configure.ac 2004-08-22 13:25:37.000000000 +0200
-@@ -971,6 +971,18 @@
- AC_SUBST(__CHGRP_RHF)
-
- dnl
-+dnl enable generating autorequires containing packages names
-+dnl
-+AC_ARG_ENABLE([adding-packages-names-in-autogenerated-dependancies],
-+ [ --enable-adding-packages-names-in-autogenerated-dependancies Add packages names for autogenerated dependancies to requires],
-+
-+ AC_MSG_RESULT([Using packages names in autogerated requires is enabled])
-+ AC_DEFINE(AUTODEP_PKGNAMES, 1, "Generating autorequires containing packages names.")
-+
-+ )
-+
-+
-+dnl
- dnl figure out what root's primary group is
- dnl
- AC_MSG_CHECKING(root's primary group)
---- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:02:40.000000000 +0300
-+++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:04:54.048916180 +0300
-@@ -382,12 +382,9 @@
- * @param fc file classifier
- * @param deptype 'P' == Provides:, 'R' == Requires:, helper
- * @param nsdep class name for interpreter (e.g. "perl")
-- * @param noauto _noauto* regexps
-- * @param noauto_c # of _noauto* regexps
- * @return 0 on success
- */
--static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep,
-- regex_t * noauto, int noauto_c)
-+static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-@@ -405,6 +402,8 @@
- int pac;
- int xx;
- int i;
-+ regex_t * noauto = fc->noauto;
-+ int noauto_c = fc->noauto_c;
-
- switch (deptype) {
- default:
---- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:04:54.000000000 +0300
-+++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:10:06.222936657 +0300
-@@ -410,7 +410,7 @@
- return -1;
- /*@notreached@*/ break;
- case 'P':
-- if (fc->skipProv)
-+ if (fc->skipProv || !fc->findprov)
- return 0;
- xx = snprintf(buf, sizeof(buf), "%%{?__%s_provides}", nsdep);
- depsp = &fc->provides;
-@@ -418,7 +418,7 @@
- tagN = RPMTAG_PROVIDENAME;
- break;
- case 'R':
-- if (fc->skipReq)
-+ if (fc->skipReq || !fc->findreq)
- return 0;
- xx = snprintf(buf, sizeof(buf), "%%{?__%s_requires}", nsdep);
- depsp = &fc->requires;
---- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:11:33.000000000 +0300
-+++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:16:17.084344647 +0300
-@@ -402,8 +402,8 @@
- int pac;
- int xx;
- int i;
-- regex_t * noauto = fc->noauto;
-- int noauto_c = fc->noauto_c;
-+ regex_t * noauto = NULL;
-+ int noauto_c = 0;
-
- switch (deptype) {
- default:
-@@ -412,6 +412,8 @@
- case 'P':
- if (fc->skipProv || !fc->findprov)
- return 0;
-+ noauto = fc->noautoprov;
-+ noauto_c = fc->noautoprov_c;
- xx = snprintf(buf, sizeof(buf), "%%{?__%s_provides}", nsdep);
- depsp = &fc->provides;
- dsContext = RPMSENSE_FIND_PROVIDES;
-@@ -420,6 +422,8 @@
- case 'R':
- if (fc->skipReq || !fc->findreq)
- return 0;
-+ noauto = fc->noautoreq;
-+ noauto_c = fc->noautoreq_c;
- xx = snprintf(buf, sizeof(buf), "%%{?__%s_requires}", nsdep);
- depsp = &fc->requires;
- dsContext = RPMSENSE_FIND_REQUIRES;
-#--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 00:28:21.000000000 +0300
-#+++ rpm-4.5/lib/rpmfc.c 2008-06-11 00:37:51.675282123 +0300
-#@@ -829,7 +829,6 @@
-# }
-# } else
-# if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) {
-#- xx = rpmfcHelper(fc, 'P', "python");
-# if (fc->findprov)
-# xx = rpmfcHelper(fc, 'P', "python", fc->noautoprov, fc->noautoprov_c);
-# #ifdef NOTYET
-#--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 00:37:51.000000000 +0300
-#+++ rpm-4.5/lib/rpmfc.c 2008-06-11 00:39:12.427942547 +0300
-#@@ -876,7 +876,8 @@
-# xx = rpmfcHelper(fc, 'R', "java", fc->noautoreq, fc->noautoreq_c);
-# } else
-# if (fc->fcolor->vals[fc->ix] & RPMFC_DESKTOP_FILE) {
-#- xx = rpmfcHelper(fc, 'P', "mimetype");
-#+ if (fc->findprov)
-#+ xx = rpmfcHelper(fc, 'P', "mimetype", fc->noautoprov, fc->noautoprov_c);
-# }
-#
-# return 0;
---- rpm-4.4.8/lib/rpmfc.c.orig 2007-02-14 07:31:50.000000000 +0100
-+++ rpm-4.4.8/lib/rpmfc.c 2007-04-08 16:48:00.273560592 +0200
-@@ -773,7 +773,7 @@
- } else
- if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) {
- xx = rpmfcHelper(fc, 'P', "php");
-- if (is_executable)
-+ /* not only executable, files run by httpd usually are not */
- xx = rpmfcHelper(fc, 'R', "php");
- }
-
-
+++ /dev/null
---- rpm-4.5/configure.ac~ 2008-04-28 20:46:35.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-04-28 20:48:08.990410515 +0300
-@@ -16,7 +16,7 @@
- AC_SUBST(LT_AGE, 0)
-
- dnl Set of available languages.
--ALL_LINGUAS="cs da de fi fr gl id is ja ko nb pl pt pt_BR ro ru sk sl sr sv tr uk"
-+ALL_LINGUAS="cs da de fi fr gl id is it ja ko nb pl pt pt_BR ro ru sk sl sr@Latn sv tr uk"
-
- AC_AIX
- AC_MINIX
--- rpm-4.4.9/rpmpopt.in 2008-03-24 22:09:33.709972364 +0200
+++ rpm-4.4.9/rpmpopt.in 2008-04-04 18:51:45.658923774 +0300
-@@ -595,4 +595,19 @@
- rpmv alias --httpproxy --define '_httpproxy !#:+'
-
+@@ -240,5 +249,35 @@
+ --POPTdesc=$"trace macro expansion"
+ rpmspec alias --nodebuginfo --define 'debug_package %{nil}' \
+ --POPTdesc=$"do not generate debuginfo for this package"
++# (PLD-specific) Make RPM build tree
++rpmbuild exec --install-build-tree install-build-tree \
++ --POPTdesc=$"make all needed dirs for building binary rpms"
++
++# (PLD-specific) Compiling with debuginfo may be enabled by --debug
++rpmbuild alias --debug --define 'debug 1' \
++ --POPTdesc=$"build packages with debug information"
++
++# (PLD-specific) Conditional building
++rpmbuild exec --bcond find-spec-bcond \
++ --POPTdesc=$"find all --with/--without values"
++
++rpm alias --initdb -qa --quiet \
++ --POPTdesc=$"Compatibility option with old rpm. Database is created lazily now."
++
+rpm alias --downgrade --oldpackage \
+ --POPTdesc=$"Allow an upgrade to replace a newer package with an older one."
+
+++ /dev/null
---- rpm-4.5/rpmpopt.in~ 2008-06-10 14:24:49.000000000 +0300
-+++ rpm-4.5/rpmpopt.in 2008-06-10 14:26:04.428174732 +0300
-@@ -55,8 +55,8 @@
- --POPTdesc=$"set permissions of files in a package"
-
- rpm alias --setugids -q --qf \
-- '[ch %{FILEUSERNAME:shescape} %{FILEGROUPNAME:shescape} %{FILENAMES:shescape}\n]' \
-- --pipe "(echo 'ch() { chown -h -- \"$1\" \"$3\";chgrp -h -- \"$2\" \"$3\"; }';grep -v \(none\))|sh" \
-+ '[chown -h -- %{FILEUSERNAME:shescape}:%{FILEGROUPNAME:shescape} %{FILENAMES:shescape}\n]' \
-+ --pipe "grep -v '(none)' | sh" \
- --POPTdesc=$"set user/group ownership of files in a package"
-
- rpm alias --conflicts --qf \
+++ /dev/null
---- rpm-4.5/lib/poptALL.c~ 2008-11-07 03:12:23.000000000 +0200
-+++ rpm-4.5/lib/poptALL.c 2008-11-09 18:20:22.263541109 +0200
-@@ -547,7 +547,7 @@
- /*@=nullpass =temptrans@*/
- (void) poptReadConfigFile(optCon, RPMPOPTFILE);
- (void) poptReadDefaultConfig(optCon, 1);
-- poptSetExecPath(optCon, USRLIBRPM "/" VERSION, 1);
-+ poptSetExecPath(optCon, USRLIBRPM, 1);
-
- /* Process all options, whine if unknown. */
- while ((rc = poptGetNextOpt(optCon)) > 0) {
--- rpm-4.5/lib/psm.c.org 2008-11-21 17:20:34.293584455 +0100
+++ rpm-4.5/lib/psm.c 2008-11-21 17:21:41.482728047 +0100
-@@ -2114,8 +2114,8 @@
- psm->countCorrection = -1;
+@@ -789,8 +789,8 @@
+ }
- if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTUN)) {
-- rc = rpmpsmNext(psm, PSM_SCRIPT);
-- if (rc) break;
-+ if (rpmpsmNext(psm, PSM_SCRIPT))
-+ rpmMessage(RPMMESS_VERBOSE, _("Ignoring failed %%postun scriptlet\n"));
- }
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTUN)) {
+- rc = runInstScript(psm, RPMTAG_POSTUN);
+- if (rc) break;
++ if (runInstScript(psm, RPMTAG_POSTUN))
++ rpmlog(RPMLOG_INFO, _("Ignoring failed %%postun scriptlet\n"));
+ }
- if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERPOSTUN)) {
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERPOSTUN)) {
+++ /dev/null
---- rpm-4.5/macros.in~ 2008-04-13 02:54:35.000000000 +0300
-+++ rpm-4.5/macros.in 2008-04-28 20:45:00.431568869 +0300
-@@ -337,6 +337,14 @@
- #
- %_query_selector_match default
-
-+# On upgrade, erase older packages of same color (if any).
-+# "name" for RPMTAG_NAME, otherwise RPMTAG_PROVIDENAME
-+#
-+# in TLD Linux we don't want to remove packages which only provided
-+# %{name} (e.g. perl-modules in case of some newer perl modules),
-+# so we use NAME instead of PROVIDENAME (as in vanilla rpm) here
-+%_upgrade_tag name
-+
- # Configurable packager information, same as Packager: in a specfile.
- #
- #%packager
+++ /dev/null
-diff -urN rpm-4.5.orig/macros.in rpm-4.5/macros.in
---- rpm-4.5.orig/macros.in 2019-06-01 18:55:39.553000000 +0200
-+++ rpm-4.5/macros.in 2019-11-01 12:11:16.312000000 +0100
-@@ -1404,25 +1404,46 @@
- #
- # Path to scripts to autogenerate python package dependencies,
- #
--# Note: Used iff _use_internal_dependency_generator is non-zero. The
-+# Note: Used if _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--%__python_provides /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --provides
--%__python_requires /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --requires
--
--# Useful macros for building *.rpm python packages (for python > 1.6).
-+%__python_provides %{_rpmhome}/pythoneggs.py --provides
-+%__python_requires %{_rpmhome}/pythoneggs.py --requires
- #
--%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
--%python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
--%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
-+%python_sitearch %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(1); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
-+%python_sitelib %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
-+%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
-+
-+# python main version
-+%py_ver %(%{__python} -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
-+%py_prefix %(%{__python} -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
-+%py_platlibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_purelibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+# backward compatibility
-+%py_libdir %py_purelibdir
-+
-+%py_platsitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_puresitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_sitedir %py_puresitedir
-+
-+%py_dyndir %{py_platlibdir}/lib-dynload
-+
-+%py_incdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()' 2>/dev/null || echo PYTHON-INCLUDEDIR-NOT-FOUND)
-
- %py_compile(O) \
--find %1 -name '*.pyc' -name '*.pyo' -exec rm -f {} \\; \
--%{__python} %{?O:-O} -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+find %1 -name '*.pyc' -exec rm -f {} \\; \
-+%{__python} -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+%{-O: \
-+find %1 -name '*.pyo' -exec rm -f {} \\; \
-+%{__python} -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+}
-+
-+# pure python modules compilation
-+%py_comp %{__python} -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
-+
-+%py_ocomp %{__python} -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
-
- %py_requires(d) \
--%define maxver %(%{__python} -c "import sys; a,b=sys.version_info[:2]; print '%%d.%%d'%%(a,b+1)" 2>/dev/null || echo PYTHON-NOT-FOUND) \
--BuildRequires: python %{-d:python-devel} \
--PreReq: python >= %{python_version}, python < %{maxver}
-+BuildRequires: %{__python} %{-d:python-devel}
-
- #------------------------------------------------------------------------
- # php(...) configuration.
-diff -urN rpm-4.5.orig/scripts/Makefile.am rpm-4.5/scripts/Makefile.am
---- rpm-4.5.orig/scripts/Makefile.am 2019-06-01 18:55:39.553000000 +0200
-+++ rpm-4.5/scripts/Makefile.am 2019-11-01 12:03:59.288000000 +0100
-@@ -12,7 +12,8 @@
- find-requires.perl freshen.sh gendiff getpo.sh http.req \
- check-java-closure.sh java.prov.sh java.req.sh \
- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-+ mimetypedeps.sh \
- php.prov php.req rpm2cpio \
- rpmdb_loadcvt rpmdiff rpmdiff.cgi \
- rpm.daily rpm.log rpm.xinetd \
-@@ -39,7 +40,8 @@
- find-provides.perl \
- find-requires.perl getpo.sh http.req \
- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-+ mimetypedeps.sh \
- php.prov php.req \
- rpmdb_loadcvt \
- rpm.daily rpm.log rpm.xinetd \
-diff -urN rpm-4.5.orig/scripts/pythoneggs.py rpm-4.5/scripts/pythoneggs.py
---- rpm-4.5.orig/scripts/pythoneggs.py 1970-01-01 01:00:00.000000000 +0100
-+++ rpm-4.5/scripts/pythoneggs.py 2019-03-09 02:30:08.000000000 +0100
-@@ -0,0 +1,237 @@
-+#!/usr/bin/python2
-+# -*- coding: utf-8 -*-
-+#
-+# Copyright 2010 Per Øyvind Karlsen <peroyvind@mandriva.org>
-+#
-+# This program is free software. It may be redistributed and/or modified under
-+# the terms of the LGPL version 2.1 (or later).
-+#
-+# RPM5 python (egg) dependency generator.
-+#
-+
-+from getopt import getopt
-+from os.path import basename, dirname, isdir, sep, splitext
-+from sys import argv, stdin, version
-+from pkg_resources import Distribution, FileMetadata, PathMetadata
-+from distutils.sysconfig import get_python_lib
-+from subprocess import Popen, PIPE, STDOUT
-+import os
-+import platform
-+import re
-+
-+opts, args = getopt(argv[1:], 'hPRSCOEb:',
-+ ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot='])
-+
-+Provides = False
-+Requires = False
-+Suggests = False
-+Conflicts = False
-+Obsoletes = False
-+Extras = False
-+buildroot = None
-+
-+def make_pldver(raw):
-+ if re.match(r'^[0-9\.]+$', raw) == None:
-+ pldver = re.sub(r'([\d\.]+)(.+)', r'\1-0.\2', raw)
-+ else:
-+ pldver = raw
-+ return pldver
-+
-+for o, a in opts:
-+ if o in ('-h', '--help'):
-+ print '-h, --help\tPrint help'
-+ print '-P, --provides\tPrint Provides'
-+ print '-R, --requires\tPrint Requires'
-+ print '-S, --suggests\tPrint Suggests'
-+ print '-C, --conflicts\tPrint Conflicts'
-+ print '-O, --obsoletes\tPrint Obsoletes (unused)'
-+ print '-E, --extras\tPrint Extras '
-+ print '-b, --buildroot\tBuildroot for package '
-+ exit(1)
-+ elif o in ('-P', '--provides'):
-+ Provides = True
-+ elif o in ('-R', '--requires'):
-+ Requires = True
-+ elif o in ('-S', '--suggests'):
-+ Suggests = True
-+ elif o in ('-C', '--conflicts'):
-+ Conflicts = True
-+ elif o in ('-O', '--obsoletes'):
-+ Obsoletes = True
-+ elif o in ('-E', '--extras'):
-+ Extras = True
-+ elif o in ('-b', '--buildroot'):
-+ buildroot = a
-+
-+def is_exe(fpath):
-+ return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-+
-+typelib_check = False
-+
-+if is_exe("/usr/lib/rpm/gi-find-deps.sh") and is_exe("/usr/bin/g-ir-dep-tool"):
-+ if not buildroot:
-+ pass
-+ else:
-+ typelib_check = True
-+
-+if Requires:
-+ py_abi = True
-+else:
-+ py_abi = False
-+py_deps = {}
-+if args:
-+ files = args
-+else:
-+ files = stdin.readlines()
-+
-+for f in files:
-+ f = f.strip()
-+ lower = f.lower()
-+ name = 'python(abi)'
-+ # add dependency based on path, versioned if within versioned python directory
-+ if py_abi and (lower.endswith('.py') or lower.endswith('.pyc') or lower.endswith('.pyo')):
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ purelib = get_python_lib(standard_lib=1, plat_specific=0).split(version[:3])[0]
-+ platlib = get_python_lib(standard_lib=1, plat_specific=1).split(version[:3])[0]
-+ for lib in (purelib, platlib):
-+ if lib in f:
-+ spec = ('==',f.split(lib)[1].split(sep)[0])
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ # Pipe files to find typelib requires
-+ if typelib_check:
-+ p = Popen(['/usr/lib/rpm/gi-find-deps.sh', '-R',str(buildroot)], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
-+ (stdoutdata, stderrdata) = p.communicate(input=str(f)+"\n")
-+
-+ if stdoutdata and stdoutdata:
-+ py_deps[stdoutdata.strip()]= ""
-+
-+ # XXX: hack to workaround RPM internal dependency generator not passing directories
-+ dlower = dirname(lower)
-+ if dlower.endswith('.egg') or \
-+ dlower.endswith('.egg-info') or \
-+ dlower.endswith('.egg-link'):
-+ lower = dlower
-+ f = dirname(f)
-+ # Determine provide, requires, conflicts & suggests based on egg metadata
-+ if lower.endswith('.egg') or \
-+ lower.endswith('.egg-info') or \
-+ lower.endswith('.egg-link'):
-+ dist_name = basename(f)
-+ if isdir(f):
-+ path_item = dirname(f)
-+ metadata = PathMetadata(path_item, f)
-+ else:
-+ path_item = f
-+ metadata = FileMetadata(f)
-+ dist = Distribution.from_location(path_item, dist_name, metadata)
-+ if Provides:
-+ # If egg metadata says package name is python, we provide python(abi)
-+ if dist.key == 'python':
-+ name = 'python(abi)'
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ py_deps[name].append(('==', dist.py_version))
-+ if dist.py_version .split(".")[0] == '3':
-+ name = 'python3egg(%s)' % dist.key
-+ else:
-+ name = 'pythonegg(%s)' % dist.key
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ if dist.version:
-+ spec = ('==', make_pldver(dist.version))
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ if Requires or (Suggests and dist.extras):
-+ name = 'python(abi)'
-+ # If egg metadata says package name is python, we don't add dependency on python(abi)
-+ if dist.key == 'python':
-+ py_abi = False
-+ if name in py_deps:
-+ py_deps.pop(name)
-+ elif py_abi and dist.py_version:
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ spec = ('==', dist.py_version)
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ # fake python version for dist.requires(), so deps like
-+ # [:python_version < '3']
-+ # enum34
-+ # will be handled correctly
-+ old_python_version = platform.python_version
-+ def new_python_version():
-+ return dist.py_version
-+ platform.python_version = new_python_version
-+ deps = dist.requires()
-+ if Suggests:
-+ depsextras = dist.requires(extras=dist.extras)
-+ if not Requires:
-+ for dep in reversed(depsextras):
-+ if dep in deps:
-+ depsextras.remove(dep)
-+ deps = depsextras
-+ platform.python_version = old_python_version
-+ # add requires/suggests based on egg metadata
-+ for dep in deps:
-+ if dist.py_version .split(".")[0] == '3':
-+ name = 'python3egg(%s)' % dep.key
-+ else:
-+ name = 'pythonegg(%s)' % dep.key
-+ for spec in dep.specs:
-+ if spec[0] != '!=':
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ plddep = (spec[0], make_pldver(spec[1]))
-+ if not plddep in py_deps[name]:
-+ py_deps[name].append(plddep)
-+ if not dep.specs:
-+ py_deps[name] = []
-+ # Unused, for automatic sub-package generation based on 'extras' from egg metadata
-+ # TODO: implement in rpm later, or...?
-+ if Extras:
-+ deps = dist.requires()
-+ extras = dist.extras
-+ print extras
-+ for extra in extras:
-+ print '%%package\textras-%s' % extra
-+ print 'Summary:\t%s extra for %s python egg' % (extra, dist.key)
-+ print 'Group:\t\tDevelopment/Python'
-+ depsextras = dist.requires(extras=[extra])
-+ for dep in reversed(depsextras):
-+ if dep in deps:
-+ depsextras.remove(dep)
-+ deps = depsextras
-+ for dep in deps:
-+ for spec in dep.specs:
-+ if spec[0] == '!=':
-+ print 'Conflicts:\t%s %s %s' % (dep.key, '==', spec[1])
-+ else:
-+ print 'Requires:\t%s %s %s' % (dep.key, spec[0], spec[1])
-+ print '%%description\t%s' % extra
-+ print '%s extra for %s python egg' % (extra, dist.key)
-+ print '%%files\t\textras-%s\n' % extra
-+ if Conflicts:
-+ # Should we really add conflicts for extras?
-+ # Creating a meta package per extra with suggests on, which has
-+ # the requires/conflicts in stead might be a better solution...
-+ for dep in dist.requires(extras=dist.extras):
-+ name = dep.key
-+ for spec in dep.specs:
-+ if spec[0] == '!=':
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ spec = ('==', spec[1])
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+names = py_deps.keys()
-+names.sort()
-+for name in names:
-+ if py_deps[name]:
-+ # Print out versioned provides, requires, suggests, conflicts
-+ for spec in py_deps[name]:
-+ print '%s %s %s' % (name, spec[0], spec[1])
-+ else:
-+ # Print out unversioned provides, requires, suggests, conflicts
-+ print name
+++ /dev/null
---- rpm-4.4.6/lib/psm.c.old 2006-09-25 17:55:05.000000000 +0200
-+++ rpm-4.4.6/lib/psm.c 2006-09-25 19:40:47.000000000 +0200
-@@ -6,6 +6,7 @@
- #include "system.h"
-
- #include <rpmio_internal.h>
-+#include <header_internal.h>
- #include <rpmlib.h>
- #include <rpmmacro.h>
- #include <rpmurl.h>
-@@ -1403,6 +1404,19 @@
- return rpmpsmStage(psm, psm->nstage);
- }
-
-+static void replace_lzma_with_gzip(Header h)
-+{
-+ indexEntry entry;
-+ int i;
-+
-+ for (i = 0, entry = h->index; i < h->indexUsed; i++, entry++) {
-+ if (entry->info.tag == RPMTAG_PAYLOADCOMPRESSOR) {
-+ memcpy(entry->data, "gzip", 4);
-+ break;
-+ }
-+ }
-+}
-+
- /**
- * @todo Packages w/o files never get a callback, hence don't get displayed
- * on install with -v.
-@@ -2151,6 +2165,11 @@
- payload_compressor = "gzip";
- /*@=branchstate@*/
- psm->rpmio_flags = t = xmalloc(sizeof("w9.gzdio"));
-+ if (psm->goal == PSM_PKGSAVE && !strcmp(payload_compressor, "lzma") && access("/usr/bin/lzma", X_OK)) {
-+ /* FIXME: digest is bad. */
-+ payload_compressor = "gzip";
-+ replace_lzma_with_gzip(psm->oh);
-+ }
- *t = '\0';
- t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
- if (!strcmp(payload_compressor, "gzip"))
+++ /dev/null
-diff -ur rpm-4.5.orig/scripts/rpm2cpio rpm-4.5/scripts/rpm2cpio
---- rpm-4.5.orig/scripts/rpm2cpio 2019-05-09 09:04:23.679000000 +0200
-+++ rpm-4.5/scripts/rpm2cpio 2019-05-09 09:22:11.921000000 +0200
-@@ -27,9 +27,11 @@
- | dd bs=3 count=1 2> /dev/null)
-
- gz="$(echo -en '\037\0213')"
-+xz="$(echo -en '\0375\0067\0172')"
- case "$comp" in
- BZh) dd if="$pkg" ibs=$o skip=1 2>/dev/null | bunzip2 ;;
- "$gz"*) dd if="$pkg" ibs=$o skip=1 2>/dev/null | gunzip ;;
-+ "$xz"*) dd if="$pkg" ibs=$o skip=1 2>/dev/null | unxz ;;
- # no magic in old lzma format, if unknown we assume that's lzma for now
- *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | lzma -dc - ;;
- #*) echo "Unrecognized rpm file: $pkg"; return 1 ;;
+++ /dev/null
---- rpm-4.5/tools/debugedit.c 2008-04-06 23:32:15.000000000 +0300
-+++ trunk/tools/debugedit.c 2010-01-27 18:57:49.758813670 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2001, 2002, 2003, 2005, 2007 Red Hat, Inc.
-+/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009 Red Hat, Inc.
- Written by Alexander Larsson <alexl@redhat.com>, 2002
- Based on code by Jakub Jelinek <jakub@redhat.com>, 2001.
-
-@@ -77,8 +77,9 @@
- int list_file_fd = -1;
- int do_build_id = 0;
-
--typedef unsigned int uint_32;
--typedef unsigned short uint_16;
-+typedef unsigned char rpmuint8_t;
-+typedef unsigned int rpmuint32_t;
-+typedef unsigned short rpmuint16_t;
-
- typedef struct
- {
-@@ -93,7 +90,7 @@
- typedef struct
- {
- unsigned char *ptr;
-- uint_32 addend;
-+ rpmuint32_t addend;
- } REL;
-
- #define read_uleb128(ptr) ({ \
-@@ -112,31 +109,32 @@
- ret; \
- })
-
--static uint_16 (*do_read_16) (unsigned char *ptr);
--static uint_32 (*do_read_32) (unsigned char *ptr);
-+static rpmuint16_t (*do_read_16) (unsigned char *ptr);
-+static rpmuint32_t (*do_read_32) (unsigned char *ptr);
- static void (*write_32) (unsigned char *ptr, GElf_Addr val);
-
- static int ptr_size;
-+static int cu_version;
-
--static inline uint_16
-+static inline rpmuint16_t
- buf_read_ule16 (unsigned char *data)
- {
- return data[0] | (data[1] << 8);
- }
-
--static inline uint_16
-+static inline rpmuint16_t
- buf_read_ube16 (unsigned char *data)
- {
- return data[1] | (data[0] << 8);
- }
-
--static inline uint_32
-+static inline rpmuint32_t
- buf_read_ule32 (unsigned char *data)
- {
- return data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
- }
-
--static inline uint_32
-+static inline rpmuint32_t
- buf_read_ube32 (unsigned char *data)
- {
- return data[3] | (data[2] << 8) | (data[1] << 16) | (data[0] << 24);
-@@ -156,7 +154,7 @@
- {
- if (data->d_buf
- && offset >= data->d_off
-- && offset < data->d_off + data->d_size)
-+ && offset < data->d_off + (off_t)data->d_size)
- return (const char *) data->d_buf + (offset - data->d_off);
- }
- }
-@@ -168,13 +166,13 @@
- #define read_1(ptr) *ptr++
-
- #define read_16(ptr) ({ \
-- uint_16 ret = do_read_16 (ptr); \
-+ rpmuint16_t ret = do_read_16 (ptr); \
- ptr += 2; \
- ret; \
- })
-
- #define read_32(ptr) ({ \
-- uint_32 ret = do_read_32 (ptr); \
-+ rpmuint32_t ret = do_read_32 (ptr); \
- ptr += 4; \
- ret; \
- })
-@@ -183,7 +181,7 @@
- int reltype;
-
- #define do_read_32_relocated(ptr) ({ \
-- uint_32 dret = do_read_32 (ptr); \
-+ rpmuint32_t dret = do_read_32 (ptr); \
- if (relptr) \
- { \
- while (relptr < relend && relptr->ptr < ptr) \
-@@ -200,7 +198,7 @@
- })
-
- #define read_32_relocated(ptr) ({ \
-- uint_32 ret = do_read_32_relocated (ptr); \
-+ rpmuint32_t ret = do_read_32_relocated (ptr); \
- ptr += 4; \
- ret; \
- })
-@@ -208,7 +206,7 @@
- static void
- dwarf2_write_le32 (unsigned char *p, GElf_Addr val)
- {
-- uint_32 v = (uint_32) val;
-+ rpmuint32_t v = (rpmuint32_t) val;
-
- p[0] = v;
- p[1] = v >> 8;
-@@ -220,7 +218,7 @@
- static void
- dwarf2_write_be32 (unsigned char *p, GElf_Addr val)
- {
-- uint_32 v = (uint_32) val;
-+ rpmuint32_t v = (rpmuint32_t) val;
-
- p[3] = v;
- p[2] = v >> 8;
-@@ -242,16 +240,18 @@
- #define DEBUG_LINE 2
- #define DEBUG_ARANGES 3
- #define DEBUG_PUBNAMES 4
--#define DEBUG_MACINFO 5
--#define DEBUG_LOC 6
--#define DEBUG_STR 7
--#define DEBUG_FRAME 8
--#define DEBUG_RANGES 9
-+#define DEBUG_PUBTYPES 5
-+#define DEBUG_MACINFO 6
-+#define DEBUG_LOC 7
-+#define DEBUG_STR 8
-+#define DEBUG_FRAME 9
-+#define DEBUG_RANGES 10
- { ".debug_info", NULL, NULL, 0, 0, 0 },
- { ".debug_abbrev", NULL, NULL, 0, 0, 0 },
- { ".debug_line", NULL, NULL, 0, 0, 0 },
- { ".debug_aranges", NULL, NULL, 0, 0, 0 },
- { ".debug_pubnames", NULL, NULL, 0, 0, 0 },
-+ { ".debug_pubtypes", NULL, NULL, 0, 0, 0 },
- { ".debug_macinfo", NULL, NULL, 0, 0, 0 },
- { ".debug_loc", NULL, NULL, 0, 0, 0 },
- { ".debug_str", NULL, NULL, 0, 0, 0 },
-@@ -331,7 +331,7 @@
- }
- if (*slot != NULL)
- {
-- error (0, 0, "%s: Duplicate DWARF-2 abbreviation %d", dso->filename,
-+ error (0, 0, "%s: Duplicate DWARF abbreviation %d", dso->filename,
- t->entry);
- free (t);
- htab_delete (h);
-@@ -351,7 +351,7 @@
- form = read_uleb128 (ptr);
- if (form == 2 || form > DW_FORM_indirect)
- {
-- error (0, 0, "%s: Unknown DWARF-2 DW_FORM_%d", dso->filename, form);
-+ error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename, form);
- htab_delete (h);
- return NULL;
- }
-@@ -361,7 +361,7 @@
- }
- if (read_uleb128 (ptr) != 0)
- {
-- error (0, 0, "%s: DWARF-2 abbreviation does not end with 2 zeros",
-+ error (0, 0, "%s: DWARF abbreviation does not end with 2 zeros",
- dso->filename);
- htab_delete (h);
- return NULL;
-@@ -468,8 +468,8 @@
- has_prefix (const char *str,
- const char *prefix)
- {
-- int str_len;
-- int prefix_len;
-+ size_t str_len;
-+ size_t prefix_len;
-
- str_len = strlen (str);
- prefix_len = strlen (prefix);
-@@ -481,14 +481,14 @@
- }
-
- static int
--edit_dwarf2_line (DSO *dso, uint_32 off, char *comp_dir, int phase)
-+edit_dwarf2_line (DSO *dso, rpmuint32_t off, char *comp_dir, int phase)
- {
- unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir;
- unsigned char **dirt;
- unsigned char *endsec = ptr + debug_sections[DEBUG_LINE].size;
- unsigned char *endcu, *endprol;
- unsigned char opcode_base;
-- uint_32 value, dirt_cnt;
-+ rpmuint32_t value, dirt_cnt;
- size_t comp_dir_len = strlen (comp_dir);
- size_t abs_file_cnt = 0, abs_dir_cnt = 0;
-
-@@ -513,7 +513,7 @@
- }
-
- value = read_16 (ptr);
-- if (value != 2)
-+ if (value != 2 && value != 3)
- {
- error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
- value);
-@@ -679,9 +679,12 @@
- if (--shrank == 0)
- error (EXIT_FAILURE, 0,
- "canonicalization unexpectedly shrank by one character");
-- memset (ptr, 'X', shrank);
-- ptr += shrank;
-- *ptr++ = '\0';
-+ else
-+ {
-+ memset (ptr, 'X', shrank);
-+ ptr += shrank;
-+ *ptr++ = '\0';
-+ }
- }
-
- if (abs_dir_cnt + abs_file_cnt != 0)
-@@ -737,7 +740,7 @@
- edit_attributes (DSO *dso, unsigned char *ptr, struct abbrev_tag *t, int phase)
- {
- int i;
-- uint_32 list_offs;
-+ rpmuint32_t list_offs;
- int found_list_offs;
- char *comp_dir;
-
-@@ -746,9 +749,9 @@
- found_list_offs = 0;
- for (i = 0; i < t->nattr; ++i)
- {
-- uint_32 form = t->attr[i].form;
-- uint_32 len = 0;
-- int base_len, dest_len;
-+ rpmuint32_t form = t->attr[i].form;
-+ size_t len = 0;
-+ size_t base_len, dest_len;
-
-
- while (1)
-@@ -791,7 +794,7 @@
- {
- char *dir;
-
-- dir = (char *)debug_sections[DEBUG_STR].data
-+ dir = (char *) debug_sections[DEBUG_STR].data
- + do_read_32_relocated (ptr);
-
- free (comp_dir);
-@@ -821,7 +824,7 @@
- {
- char *name;
-
-- name = (char *)debug_sections[DEBUG_STR].data
-+ name = (char *) debug_sections[DEBUG_STR].data
- + do_read_32_relocated (ptr);
- if (*name == '/' && comp_dir == NULL)
- {
-@@ -855,7 +858,12 @@
-
- switch (form)
- {
-- case DW_FORM_ref_addr: /* ptr_size in DWARF 2, offset in DWARF 3 */
-+ case DW_FORM_ref_addr:
-+ if (cu_version == 2)
-+ ptr += ptr_size;
-+ else
-+ ptr += 4;
-+ break;
- case DW_FORM_addr:
- ptr += ptr_size;
- break;
-@@ -907,7 +915,7 @@
- assert (len < UINT_MAX);
- break;
- default:
-- error (0, 0, "%s: Unknown DWARF-2 DW_FORM_%d", dso->filename,
-+ error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename,
- form);
- return NULL;
- }
-@@ -918,6 +926,34 @@
- break;
- }
- }
-+
-+ /* Ensure the CU current directory will exist even if only empty. Source
-+ filenames possibly located in its parent directories refer relatively to
-+ it and the debugger (GDB) cannot safely optimize out the missing
-+ CU current dir subdirectories. */
-+ if (comp_dir && list_file_fd != -1)
-+ {
-+ char *p;
-+ size_t size;
-+
-+ if (base_dir && has_prefix (comp_dir, base_dir))
-+ p = comp_dir + strlen (base_dir);
-+ else if (dest_dir && has_prefix (comp_dir, dest_dir))
-+ p = comp_dir + strlen (dest_dir);
-+ else
-+ p = comp_dir;
-+
-+ size = strlen (p) + 1;
-+ while (size > 0)
-+ {
-+ ssize_t ret = write (list_file_fd, p, size);
-+ if (ret == -1)
-+ break;
-+ size -= ret;
-+ p += ret;
-+ }
-+ }
-+
- if (found_list_offs && comp_dir)
- edit_dwarf2_line (dso, list_offs, comp_dir, phase);
-
-@@ -1034,7 +1070,7 @@
- if (debug_sections[DEBUG_INFO].data != NULL)
- {
- unsigned char *ptr, *endcu, *endsec;
-- uint_32 value;
-+ rpmuint32_t value;
- htab_t abbrev;
- struct abbrev_tag tag, *t;
- int phase;
-@@ -1176,11 +1212,11 @@
- return 1;
- }
-
-- value = read_16 (ptr);
-- if (value != 2)
-+ cu_version = read_16 (ptr);
-+ if (cu_version != 2 && cu_version != 3)
- {
- error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
-- value);
-+ cu_version);
- return 1;
- }
-
-@@ -1190,7 +1226,7 @@
- if (debug_sections[DEBUG_ABBREV].data == NULL)
- error (0, 0, "%s: .debug_abbrev not present", dso->filename);
- else
-- error (0, 0, "%s: DWARF-2 CU abbrev offset too large",
-+ error (0, 0, "%s: DWARF CU abbrev offset too large",
- dso->filename);
- return 1;
- }
-@@ -1200,14 +1236,14 @@
- ptr_size = read_1 (ptr);
- if (ptr_size != 4 && ptr_size != 8)
- {
-- error (0, 0, "%s: Invalid DWARF-2 pointer size %d",
-+ error (0, 0, "%s: Invalid DWARF pointer size %d",
- dso->filename, ptr_size);
- return 1;
- }
- }
- else if (read_1 (ptr) != ptr_size)
- {
-- error (0, 0, "%s: DWARF-2 pointer size differs between CUs",
-+ error (0, 0, "%s: DWARF pointer size differs between CUs",
- dso->filename);
- return 1;
- }
-@@ -1225,7 +1261,7 @@
- t = htab_find_with_hash (abbrev, &tag, tag.entry);
- if (t == NULL)
- {
-- error (0, 0, "%s: Could not find DWARF-2 abbreviation %d",
-+ error (0, 0, "%s: Could not find DWARF abbreviation %d",
- dso->filename, tag.entry);
- htab_delete (abbrev);
- return 1;
-@@ -1374,12 +1410,12 @@
- or Elf64 object, only that we are consistent in what bits feed the
- hash so it comes out the same for the same file contents. */
- {
-- inline void process (const void *data, size_t size)
-+ auto inline void process (const void *data, size_t size);
-+ auto inline void process (const void *data, size_t size)
- {
- memchunk chunk = { .data = (void *) data, .size = size };
- hashFunctionContextUpdateMC (&ctx, &chunk);
- }
--
- union
- {
- GElf_Ehdr ehdr;
-@@ -1439,11 +1475,11 @@
-
- /* Now format the build ID bits in hex to print out. */
- {
-- const unsigned char * id = (unsigned char *) build_id->d_buf + build_id_offset;
-+ const rpmuint8_t * id = (rpmuint8_t *)build_id->d_buf + build_id_offset;
- char hex[build_id_size * 2 + 1];
- int n = snprintf (hex, 3, "%02" PRIx8, id[0]);
- assert (n == 2);
-- for (i = 1; i < build_id_size; ++i)
-+ for (i = 1; i < (int)build_id_size; ++i)
- {
- n = snprintf (&hex[i * 2], 3, "%02" PRIx8, id[i]);
- assert (n == 2);
-@@ -1466,8 +1502,7 @@
- Elf_Data *build_id = NULL;
- size_t build_id_offset = 0, build_id_size = 0;
-
-- optCon = poptGetContext("debugedit", argc, (const char **)argv,
-- optionsTable, 0);
-+ optCon = poptGetContext("debugedit", argc, (const char **)argv, optionsTable, 0);
-
- while ((nextopt = poptGetNextOpt (optCon)) > 0 || nextopt == POPT_ERROR_BADOPT)
- /* do nothing */ ;
-@@ -1585,7 +1620,8 @@
- Elf_Data src = dst;
- src.d_buf = data->d_buf;
- assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr));
-- while ((char *) data->d_buf + data->d_size - (char *) src.d_buf > (int) sizeof nh
-+ while ((char *) data->d_buf + data->d_size -
-+ (char *) src.d_buf > (int) sizeof nh
- && elf32_xlatetom (&dst, &src, dso->ehdr.e_ident[EI_DATA]))
- {
- Elf32_Word len = sizeof nh + nh.n_namesz;
-@@ -1595,7 +1631,8 @@
- && !memcmp ((char *) src.d_buf + sizeof nh, "GNU", sizeof "GNU"))
- {
- build_id = data;
-- build_id_offset = (char *) src.d_buf + len - (char *) data->d_buf;
-+ build_id_offset = (char *) src.d_buf + len -
-+ (char *) data->d_buf;
- build_id_size = nh.n_descsz;
- break;
- }
+++ /dev/null
-Index: rpm/CHANGES
- 5.0.0 -> 5.1a1:
-+ - jbj: fix: reverse arrows on erasure dependency graph.
- - rse: provide the necessary pre-processor macros to allow misc/err.h to compile with Sun Studio 12 under Solaris 10
- - jbj: rpmrepo: be kind to the sqlite3 deprived.
- - jbj: rpmrepo: cleanly separate SQL representation from execution.
-Index: rpm/lib/depends.c
-RCS File: /v/rpm/cvs/rpm/lib/depends.c,v
-rcsdiff -q -kk '-r1.392' '-r1.393' -u '/v/rpm/cvs/rpm/lib/depends.c,v' 2>/dev/null
---- lib/depends.c 2008/03/17 09:50:01 1.392
-+++ lib/depends.c 2008/03/31 23:00:56 1.393
-@@ -1592,7 +1592,7 @@
- continue;
- /*@=abstractcompare@*/
-
-- requires = rpmteDS(p, tsi->tsi_tagn);
-+ requires = rpmteDS((rpmteType(p) == TR_REMOVED ? q : p), tsi->tsi_tagn);
- if (requires == NULL) continue; /* XXX can't happen */
-
- (void) rpmdsSetIx(requires, tsi->tsi_reqx);
-@@ -1882,6 +1882,13 @@
- return 0;
- selected[i] = 1;
-
-+ /* Erasures are reversed installs. */
-+ if (teType == TR_REMOVED) {
-+ rpmte r = p;
-+ p = q;
-+ q = r;
-+ }
-+
- /* T3. Record next "q <- p" relation (i.e. "p" requires "q"). */
- rpmteTSI(p)->tsi_count++; /* bump p predecessor count */
-
-@@ -1899,6 +1906,7 @@
- tsi->tsi_next = rpmteTSI(q)->tsi_next;
- rpmteTSI(q)->tsi_next = tsi;
- rpmteTSI(q)->tsi_qcnt++; /* bump q successor count */
-+
- return 0;
- }
- /*@=mustmod@*/
+++ /dev/null
-Index: rpm/lib/rpmcli.h
-RCS File: /v/rpm/cvs/rpm/lib/rpmcli.h,v
-rcsdiff -q -kk '-r2.67' '-r2.67.2.1' -u '/v/rpm/cvs/rpm/lib/rpmcli.h,v' 2>/dev/null
---- rpmcli.h 2007/05/25 17:36:02 2.67
-+++ rpmcli.h 2007/07/30 03:07:58 2.67.2.1
-@@ -775,7 +775,6 @@
- rpmRelocation relocations;
-
- /* database mode arguments */
-- int init; /*!< from --initdb */
- int rebuild; /*!< from --rebuilddb */
- int verify; /*!< from --verifydb */
-
-Index: rpm/rpmdb/poptDB.c
-RCS File: /v/rpm/cvs/rpm/rpmdb/poptDB.c,v
-rcsdiff -q -kk '-r1.6' '-r1.6.2.1' -u '/v/rpm/cvs/rpm/rpmdb/poptDB.c,v' 2>/dev/null
---- poptDB.c 2007/05/25 17:36:33 1.6
-+++ poptDB.c 2007/07/30 03:07:58 1.6.2.1
-@@ -14,8 +14,6 @@
- /**
- */
- struct poptOption rpmDatabasePoptTable[] = {
-- { "initdb", '\0', POPT_ARG_VAL, &rpmDBArgs.init, 1,
-- N_("initialize database"), NULL},
- { "rebuilddb", '\0', POPT_ARG_VAL, &rpmDBArgs.rebuild, 1,
- N_("rebuild database inverted lists from installed package headers"),
- NULL},
-Index: rpm/rpmqv.c
-RCS File: /v/rpm/cvs/rpm/rpmqv.c,v
-rcsdiff -q -kk '-r1.113.2.1' '-r1.113.2.2' -u '/v/rpm/cvs/rpm/rpmqv.c,v' 2>/dev/null
---- rpmqv.c 2007/06/05 22:48:08 1.113.2.1
-+++ rpmqv.c 2007/07/30 03:07:58 1.113.2.2
-@@ -290,12 +290,6 @@
-
- #ifdef IAM_RPMDB
- if (bigMode == MODE_UNKNOWN || (bigMode & MODES_DB)) {
-- if (da->init) {
-- if (bigMode != MODE_UNKNOWN)
-- argerror(_("only one major mode may be specified"));
-- else
-- bigMode = MODE_INITDB;
-- } else
- if (da->rebuild) {
- if (bigMode != MODE_UNKNOWN)
- argerror(_("only one major mode may be specified"));
+++ /dev/null
-Index: rpm/rpmdb/db3.c
-RCS File: /v/rpm/cvs/rpm/rpmdb/db3.c,v
-rcsdiff -q -kk '-r1.71' '-r1.72' -u '/v/rpm/cvs/rpm/rpmdb/db3.c,v' 2>/dev/null
---- db3.c 2007/08/18 23:40:36 1.71
-+++ db3.c 2007/09/24 02:38:57 1.72
-@@ -275,12 +275,21 @@
- fileSystem @*/
- /*@modifies dbi, *dbenvp, fileSystem @*/
- {
-+ static int oneshot = 0;
- rpmdb rpmdb = dbi->dbi_rpmdb;
- DB_ENV *dbenv = NULL;
- int eflags;
- int rc;
- int xx;
-
-+ if (!oneshot) {
-+#if (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR != 0) || (DB_VERSION_MAJOR == 4)
-+ xx = db_env_set_func_open((int (*)(const char *, int, ...))Open);
-+ xx = cvtdberr(dbi, "db_env_set_func_open", xx, _debug);
-+#endif
-+ oneshot++;
-+ }
-+
- if (dbenvp == NULL)
- return 1;
-
-Index: rpm/rpmdb/rpmdb.c
-RCS File: /v/rpm/cvs/rpm/rpmdb/rpmdb.c,v
-rcsdiff -q -kk '-r1.158' '-r1.159' -u '/v/rpm/cvs/rpm/rpmdb/rpmdb.c,v' 2>/dev/null
---- rpmdb.c 2007/09/09 19:06:51 1.158
-+++ rpmdb.c 2007/09/24 02:38:57 1.159
-@@ -3618,8 +3618,9 @@
- if (db == NULL) return 0;
-
- mi = rpmdbInitIterator(db, RPMTAG_BASENAMES, NULL, 0);
-- if (mi == NULL) /* XXX should never happen */
-- return 0;
-+assert(mi); /* XXX will never happen. */
-+ if (mi == NULL)
-+ return 2;
-
- key = &mi->mi_key;
- data = &mi->mi_data;
-Index: rpm/rpmio/librpmio.vers
-RCS File: /v/rpm/cvs/rpm/rpmio/librpmio.vers,v
-rcsdiff -q -kk '-r2.12' '-r2.13' -u '/v/rpm/cvs/rpm/rpmio/librpmio.vers,v' 2>/dev/null
---- librpmio.vers 2007/09/09 20:32:43 2.12
-+++ librpmio.vers 2007/09/24 02:38:57 2.13
-@@ -140,6 +140,8 @@
- _Mknod;
- Mount;
- noLibio;
-+ Open;
-+ _Open;
- Opendir;
- _Opendir;
- pgpArmorKeyTbl;
-Index: rpm/rpmio/rpmio.h
-RCS File: /v/rpm/cvs/rpm/rpmio/rpmio.h,v
-rcsdiff -q -kk '-r1.57' '-r1.58' -u '/v/rpm/cvs/rpm/rpmio/rpmio.h,v' 2>/dev/null
---- rpmio.h 2007/08/28 20:45:49 1.57
-+++ rpmio.h 2007/09/24 02:38:57 1.58
-@@ -342,11 +342,22 @@
- /*@globals errno, h_errno, fileSystem, internalState @*/
- /*@modifies errno, fileSystem, internalState @*/;
-
-+/*@unchecked@*/ /*@observer@*/ /*@null@*/
-+extern const char * _chroot_prefix;
-+
- /**
- * chroot(2) clone.
- * @todo Implement remotely.
- */
- int Chroot(const char * path)
-+ /*@globals _chroot_prefix, errno, fileSystem, internalState @*/
-+ /*@modifies _chroot_prefix, errno, fileSystem, internalState @*/;
-+
-+/**
-+ * open(2) clone.
-+ * @todo Implement remotely.
-+ */
-+int Open(const char * path, int flags, mode_t mode)
- /*@globals errno, fileSystem, internalState @*/
- /*@modifies errno, fileSystem, internalState @*/;
-
-Index: rpm/rpmio/rpmrpc.c
-RCS File: /v/rpm/cvs/rpm/rpmio/rpmrpc.c,v
-rcsdiff -q -kk '-r2.54' '-r2.55' -u '/v/rpm/cvs/rpm/rpmio/rpmrpc.c,v' 2>/dev/null
---- rpmrpc.c 2007/07/10 18:00:30 2.54
-+++ rpmrpc.c 2007/09/24 02:38:57 2.55
-@@ -160,6 +160,9 @@
- return rmdir(path);
- }
-
-+/*@unchecked@*/
-+const char * _chroot_prefix = NULL;
-+
- int Chroot(const char * path)
- {
- const char * lpath;
-@@ -183,11 +186,56 @@
- return -2;
- /*@notreached@*/ break;
- }
-+
-+ _chroot_prefix = _free(_chroot_prefix);
-+ if (strcmp(path, "."))
-+ _chroot_prefix = rpmGetPath(path, NULL);
-+
- /*@-superuser@*/
- return chroot(path);
- /*@=superuser@*/
- }
-
-+int Open(const char * path, int flags, mode_t mode)
-+{
-+ const char * lpath;
-+ int ut = urlPath(path, &lpath);
-+
-+if (_rpmio_debug)
-+fprintf(stderr, "*** Open(%s, 0x%x, 0%o)\n", path, flags, mode);
-+ switch (ut) {
-+ case URL_IS_PATH:
-+ path = lpath;
-+ /*@fallthrough@*/
-+ case URL_IS_UNKNOWN:
-+ break;
-+ case URL_IS_DASH:
-+ case URL_IS_HKP:
-+ case URL_IS_FTP: /* XXX TODO: implement. */
-+ case URL_IS_HTTPS: /* XXX TODO: implement. */
-+ case URL_IS_HTTP: /* XXX TODO: implement. */
-+ default:
-+ errno = EINVAL; /* XXX W2DO? */
-+ return -2;
-+ /*@notreached@*/ break;
-+ }
-+
-+ if (_chroot_prefix && _chroot_prefix[0] == '/' && _chroot_prefix[1] != '\0')
-+ {
-+ size_t nb = strlen(_chroot_prefix);
-+ size_t ob = strlen(path);
-+ while (nb > 0 && _chroot_prefix[nb-1] == '/')
-+ nb--;
-+ if (ob > nb && !strncmp(path, _chroot_prefix, nb) && path[nb] == '/')
-+ path += nb;
-+ }
-+#ifdef NOTYET /* XXX likely sane default. */
-+ if (mode == 0)
-+ mode = 0644;
-+#endif
-+ return open(path, flags, mode);
-+}
-+
- /* XXX rpmdb.c: analogue to rename(2). */
-
- int Rename (const char * oldpath, const char * newpath)
+++ /dev/null
-Index: rpm/rpmdb/rpmdb.c
---- rpm/rpmdb/rpmdb.c 2007/10/22 02:48:42 1.195
-+++ rpm/rpmdb/rpmdb.c 2007/11/02 03:07:46 1.196
-@@ -3917,7 +3917,7 @@
- }
- dbpath = rootdbpath = rpmGetPath(prefix, tfn, NULL);
- if (!(prefix[0] == '/' && prefix[1] == '\0'))
-- dbpath += strlen(prefix) - 1;
-+ dbpath += strlen(prefix);
- tfn = _free(tfn);
-
- /*@-nullpass@*/
+++ /dev/null
---- rpm-4.4.4/rpmpopt.in.orig 2005-10-30 02:15:44.000000000 +0200
-+++ rpm-4.4.4/rpmpopt.in 2005-11-18 22:43:57.809703712 +0100
-@@ -246,6 +246,15 @@
- rpmb alias --without --define "_without_!#:+ --without-!#:+" \
- --POPTdesc=$"disable configure <option> for build" \
- --POPTargs=$"<option>"
-+# (TLD-specific) Make RPM build tree
-+rpmb exec --install-build-tree install-build-tree \
-+ --POPTdesc=$"make all needed dirs for building binary rpms"
-+# (TLD-specific) Compiling with debuginfo may be enabled by --debug
-+rpmb alias --debug --define 'debug 1' \
-+ --POPTdesc=$"build packages with debug information"
-+# (TLD-specific) Conditional building
-+rpmb exec --bcond find-spec-bcond \
-+ --POPTdesc=$"find all --with/--without values"
- #==============================================================================
- rpmbuild alias --dbpath --define '_dbpath !#:+' \
- --POPTdesc=$"use database in DIRECTORY" \
-@@ -248,5 +248,14 @@
- rpmbuild alias --buildroot --define '.buildroot !#:+' \
- --POPTdesc=$"override build root" \
- --POPTargs=$"DIRECTORY"
-+# (TLD-specific) Make RPM build tree
-+rpmbuild exec --install-build-tree install-build-tree \
-+ --POPTdesc=$"make all needed dirs for building binary rpms"
-+# (TLD-specific) Compiling with debuginfo may be enabled by --debug
-+rpmbuild alias --debug --define 'debug 1' \
-+ --POPTdesc=$"build packages with debug information"
-+# (TLD-specific) Conditional building
-+rpmbuild exec --bcond find-spec-bcond \
-+ --POPTdesc=$"find all --with/--without values"
-
- # \endverbatim
---- rpm-4.5/po/pl.po~ 2008-04-13 03:15:20.000000000 +0300
-+++ rpm-4.5/po/pl.po 2008-04-13 03:16:26.314206092 +0300
-@@ -3964,6 +3964,18 @@
- msgid "check Requires: against Provides: for dependency closure"
- msgstr "sprawd¼ Requires: wzglêdem Provides: dla dope³nienia zale¿no¶ci"
-
-+#: rpmpopt:251
-+msgid "make all needed dirs for building binary rpms"
-+msgstr "utwórz wszystkie katalogi potrzebne do budowania binarnych RPM-ów"
-+
-+#: rpmpopt:254
-+msgid "build packages with debug information"
-+msgstr "buduj pakiety z informacjami do odpluskwiania"
-+
-+#: rpmpopt:257
-+msgid "find all --with/--without values"
-+msgstr "znajd¼ wszystkie warto¶ci --with/--without"
-+
- #~ msgid " target platform: %s\n"
- #~ msgstr " platforma docelowa: %s\n"
-
+++ /dev/null
---- rpm-4.4.8/rpmrc.in.orig 2007-02-03 21:02:07.000000000 +0100
-+++ rpm-4.4.8/rpmrc.in 2007-04-08 10:43:32.083363453 +0200
-@@ -13,69 +13,67 @@
- # Values for RPM_OPT_FLAGS for various platforms
-
- # "fat" binary with both archs, for Darwin
--optflags: fat -O2 -g -arch i386 -arch ppc
-+optflags: fat -O2 -arch i386 -arch ppc%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_fat: %{specflags_fat}}}
-
--optflags: i386 -O2 -g -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables
--optflags: i486 -O2 -g -m32 -march=i486 -fasynchronous-unwind-tables
--optflags: i586 -O2 -g -m32 -march=i586 -fasynchronous-unwind-tables
--optflags: i686 -O2 -g -m32 -march=i686 -mtune=generic -fasynchronous-unwind-tables
--optflags: pentium3 -O2 -g -m32 -march=pentium3 -fasynchronous-unwind-tables
--optflags: pentium4 -O2 -g -m32 -march=pentium4 -fasynchronous-unwind-tables
--optflags: athlon -O2 -g -m32 -march=athlon -fasynchronous-unwind-tables
--optflags: ia64 -O2 -g
--optflags: x86_64 -O2 -g -m64 -mtune=generic
--optflags: amd64 -O2 -g -m64 -mtune=generic
--optflags: ia32e -O2 -g -m64 -mtune=generic
--
--optflags: alpha -O2 -g -mieee
--optflags: alphaev5 -O2 -g -mieee -mcpu=ev5
--optflags: alphaev56 -O2 -g -mieee -mcpu=ev56
--optflags: alphapca56 -O2 -g -mieee -mcpu=pca56
--optflags: alphaev6 -O2 -g -mieee -mcpu=ev6
--optflags: alphaev67 -O2 -g -mieee -mcpu=ev67
--
--optflags: sparc -O2 -g -m32 -mcpu=v7 -mtune=ultrasparc
--optflags: sparcv8 -O2 -g -m32 -mcpu=v8 -mtune=ultrasparc
--optflags: sparcv9 -O2 -g -m32 -mcpu=ultrasparc
--optflags: sparc64 -O2 -g -m64 -mcpu=ultrasparc
--
--optflags: m68k -O2 -g -fomit-frame-pointer
--
--optflags: ppc -O2 -g -m32
--optflags: ppc8260 -O2 -g -m32
--optflags: ppc8560 -O2 -g -m32
--optflags: ppc32dy4 -O2 -g -m32
--optflags: ppciseries -O2 -g -m32
--optflags: ppcpseries -O2 -g -m32
--optflags: ppc64 -O2 -g -m64 -mminimal-toc
--optflags: ppciseries -O2 -g -m64 -mminimal-toc
--optflags: ppcpseries -O2 -g -m64 -mminimal-toc
--
--optflags: parisc -O2 -g -mpa-risc-1-0
--optflags: hppa1.0 -O2 -g -mpa-risc-1-0
--optflags: hppa1.1 -O2 -g -mpa-risc-1-0
--optflags: hppa1.2 -O2 -g -mpa-risc-1-0
--optflags: hppa2.0 -O2 -g -mpa-risc-1-0
--
--optflags: mips -O2 -g
--optflags: mipsel -O2 -g
--
--optflags: armv3l -O2 -g -fsigned-char -fomit-frame-pointer -march=armv3
--optflags: armv4b -O2 -g -fsigned-char -fomit-frame-pointer -march=armv4
--optflags: armv4l -O2 -g -fsigned-char -fomit-frame-pointer -march=armv4
--optflags: armv5teb -O2 -g -fsigned-char -fomit-frame-pointer -march=armv5te
--optflags: armv5tel -O2 -g -fsigned-char -fomit-frame-pointer -march=armv5te
--
--optflags: atarist -O2 -g -fomit-frame-pointer
--optflags: atariste -O2 -g -fomit-frame-pointer
--optflags: ataritt -O2 -g -fomit-frame-pointer
--optflags: falcon -O2 -g -fomit-frame-pointer
--optflags: atariclone -O2 -g -fomit-frame-pointer
--optflags: milan -O2 -g -fomit-frame-pointer
--optflags: hades -O2 -g -fomit-frame-pointer
-+optflags: i386 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=i386 -mtune=generic -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32:} %{?specflags_i386}}
-+optflags: i486 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=i486 -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32} %{?specflags_i486}}
-+optflags: i586 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer -mtune=generic}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=i586 -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32} %{?specflags_i586}}
-+optflags: i686 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32 -mtune=generic} -march=i686 -fasynchronous-unwind-tables -mtune=pentium4 %{!?nospecflags:%{?specflags_ia32} %{?specflags_i686}}
-+optflags: pentium3 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=pentium3 -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32} %{?specflags_pentium3}}
-+optflags: pentium4 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=pentium4 -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32} %{?specflags_pentium4}}
-+optflags: athlon %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=athlon -fasynchronous-unwind-tables %{!?nospecflags:%{?specflags_ia32} %{?specflags_athlon}}
-+optflags: ia64 %{?__common_cflags:%{__common_cflags}}%{!?__common_cflags:-O2 -g}
-+optflags: x86_64 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIC}%{!?__common_cflags_with_ssp:-O2 -g -m64 -mtune=generic} -march=x86-64 %{!?nospecflags:%{?specflags_x86_64}}
-+optflags: amd64 %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIC}%{!?__common_cflags_with_ssp:-O2 -g -m64 -mtune=generic} -march=x86-64 %{!?nospecflags:%{?specflags_x86_64}}
-+optflags: ia32e %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIC}%{!?__common_cflags_with_ssp:-O2 -g -m64 -mtune=generic} -march=x86-64 %{!?nospecflags:%{?specflags_ia32e}}
-+
-+optflags: alpha -O2 -fno-strict-aliasing -fwrapv -mieee%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}}
-+optflags: alphaev5 -O2 -fno-strict-aliasing -fwrapv -mieee -mcpu=ev5%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}%{?specflags_alphaev5: %{specflags_alphaev5}}}
-+optflags: alphaev56 -O2 -fno-strict-aliasing -fwrapv -mieee -mcpu=ev56%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}%{?specflags_alphaev56: %{specflags_alphaev56}}}
-+optflags: alphapca56 -O2 -fno-strict-aliasing -fwrapv -mieee -mcpu=pca56%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}%{?specflags_alphapca56: %{specflags_alphapca56}}}
-+optflags: alphaev6 -O2 -fno-strict-aliasing -fwrapv -mieee -mcpu=ev6%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}%{?specflags_alphaev6: %{specflags_alphaev6}}}
-+optflags: alphaev67 -O2 -fno-strict-aliasing -fwrapv -mieee -mcpu=ev67%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_alpha: %{specflags_alpha}}%{?specflags_alphaev67: %{specflags_alphaev67}}}
-+
-+optflags: sparc -O2 -fno-strict-aliasing -fwrapv -m32 -mcpu=v7 -mtune=ultrasparc%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_sparc: %{specflags_sparc}}}
-+optflags: sparcv8 -O2 -fno-strict-aliasing -fwrapv -m32 -mcpu=v8 -mtune=ultrasparc%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_sparc: %{specflags_sparc}}%{?specflags_sparcv8: %{specflags_sparcv8}}}
-+optflags: sparcv9 -O2 -fno-strict-aliasing -fwrapv -m32 -mcpu=ultrasparc%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_sparc: %{specflags_sparc}}%{?specflags_sparcv9: %{specflags_sparcv9}}}
-+optflags: sparc64 -O2 -fno-strict-aliasing -fwrapv -mcpu=ultrasparc%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_sparc: %{specflags_sparc}}%{?specflags_sparc64: %{specflags_sparc64}}}
-+
-+optflags: m68k -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_m68k: %{specflags_m68k}}}
-+
-+optflags: ppc -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc: %{specflags_ppc}}}
-+optflags: ppc8260 -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc8260: %{specflags_ppc8260}}}
-+optflags: ppc8560 -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc8560: %{specflags_ppc8560}}}
-+optflags: ppc32dy4 -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc32dy4: %{specflags_ppc32dy4}}}
-+optflags: ppciseries -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppciseries: %{specflags_ppciseries}}}
-+optflags: ppcpseries -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppcpseries: %{specflags_ppcpseries}}}
-+optflags: ppc64 -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc64: %{specflags_ppc64}}}
-+
-+optflags: parisc -O2 -fno-strict-aliasing -fwrapv -mpa-risc-1-0%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_parisc: %{specflags_parisc}}}
-+optflags: hppa1.0 -O2 -fno-strict-aliasing -fwrapv -mpa-risc-1-0%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_hppa1_0: %{specflags_hppa1_0}}}
-+optflags: hppa1.1 -O2 -fno-strict-aliasing -fwrapv -mpa-risc-1-0%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_hppa1_1: %{specflags_hppa1_1}}}
-+optflags: hppa1.2 -O2 -fno-strict-aliasing -fwrapv -mpa-risc-1-0%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_hppa1_2: %{specflags_hppa1_2}}}
-+optflags: hppa2.0 -O2 -fno-strict-aliasing -fwrapv -mpa-risc-1-0%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_hppa2_0: %{specflags_hppa2_0}}}
-+
-+optflags: mips -O2 -fno-strict-aliasing -fwrapv%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_mips: %{specflags_mips}}}
-+optflags: mipsel -O2 -fno-strict-aliasing -fwrapv%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_mips: %{specflags_mips}}%{?specflags_mipsel: %{specflags_mipsel}}}
-+
-+optflags: armv3l -O2 -fno-strict-aliasing -fwrapv -fsigned-char -fomit-frame-pointer -march=armv3%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_armv3l: %{specflags_armv3l}}}
-+optflags: armv4b -O2 -fno-strict-aliasing -fwrapv -fsigned-char -fomit-frame-pointer -march=armv4%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_armv4b: %{specflags_armv4b}}}
-+optflags: armv4l -O2 -fno-strict-aliasing -fwrapv -fsigned-char -fomit-frame-pointer -march=armv4%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_armv4l: %{specflags_armv4l}}}
-+optflags: armv5teb -O2 -fno-strict-aliasing -fwrapv -fsigned-char -fomit-frame-pointer -march=armv5te%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_armv5teb: %{specflags_armv5teb}}}
-+optflags: armv5tel -O2 -fno-strict-aliasing -fwrapv -fsigned-char -fomit-frame-pointer -march=armv5te%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_armv5tel: %{specflags_armv5tel}}}
-+
-+optflags: atarist -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_atarist: %{specflags_atarist}}}
-+optflags: atariste -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_atariste: %{specflags_atariste}}}
-+optflags: ataritt -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ataritt: %{specflags_ataritt}}}
-+optflags: falcon -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_falcon: %{specflags_falcon}}}
-+optflags: atariclone -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_atariclone: %{specflags_atariclone}}}
-+optflags: milan -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_milan: %{specflags_milan}}}
-+optflags: hades -O2 -fno-strict-aliasing -fwrapv -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_hades: %{specflags_hades}}}
-
--optflags: s390 -O2 -g -m31
--optflags: s390x -O2 -g -m64
-+optflags: s390 -O2 -fno-strict-aliasing -fwrapv%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_s390: %{specflags_s390}}}
-+optflags: s390x -O2 -fno-strict-aliasing -fwrapv%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_s390: %{specflags_s390}}%{?specflags_s390x: %{specflags_s390x}}}
-
- #############################################################
- # Canonical arch names and numbers
-@@ -418,7 +416,7 @@
- buildarch_compat: amd64: x86_64
- buildarch_compat: ia32e: x86_64
-
--macrofiles: @USRLIBRPM@/macros:@USRLIBRPM@/%{_target}/macros:@SYSCONFIGDIR@/macros.*:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/etc/.rpmmacros:~/.rpmmacros
-+macrofiles: @USRLIBRPM@/macros:@USRLIBRPM@/macros.build:@USRLIBRPM@/%{_target}/macros:@SYSCONFIGDIR@/macros.*:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/etc/.rpmmacros:~/.rpmmacros
-
- # \endverbatim
- #*/
+++ /dev/null
-Index: lib/depends.c
-===================================================================
-RCS file: /v/rpm/cvs/rpm/lib/depends.c,v
-retrieving revision 1.327.2.9
-retrieving revision 1.327.2.8
-diff -w -u -r1.327.2.9 -r1.327.2.8
---- lib/depends.c 6 Jun 2008 14:50:46 -0000 1.327.2.9
-+++ lib/depends.c 5 Jun 2008 13:44:41 -0000 1.327.2.8
-@@ -1813,7 +1813,7 @@
- continue;
- /*@=abstractcompare@*/
-
-- requires = rpmteDS((rpmteType(p) == TR_REMOVED ? q : p), tsi->tsi_tagn);
-+ requires = rpmteDS(p, tsi->tsi_tagn);
- if (requires == NULL) continue; /* XXX can't happen */
-
- (void) rpmdsSetIx(requires, tsi->tsi_reqx);
+++ /dev/null
---- ./lib/package.c 2006-07-26 14:45:41.000000000 +0200
-+++ rpm-4.4.9/lib/package.c 2008-10-26 17:56:29.000000000 +0200
-@@ -10,6 +10,7 @@
- #include <rpmlib.h>
-
- #include "rpmts.h"
-+#include "rpmevr.h"
-
- #include "misc.h" /* XXX stripTrailingChar() */
- #include "rpmlead.h"
-@@ -94,6 +95,148 @@
- */
- #define hdrchkRange(_dl, _off) ((_off) < 0 || (_off) > (_dl))
-
-+/*@-boundsread@*/
-+static int dncmp(const void * a, const void * b)
-+ /*@*/
-+{
-+ const char *const * first = a;
-+ const char *const * second = b;
-+ return strcmp(*first, *second);
-+}
-+/*@=boundsread@*/
-+
-+/*@-bounds@*/
-+/**
-+ * Convert absolute path tag to (dirname,basename,dirindex) tags.
-+ * @param h header
-+ */
-+static void compressFilelist(Header h)
-+ /*@modifies h @*/
-+{
-+ HGE_t hge = (HGE_t)headerGetEntryMinMemory;
-+ HAE_t hae = (HAE_t)headerAddEntry;
-+ HRE_t hre = (HRE_t)headerRemoveEntry;
-+ HFD_t hfd = headerFreeData;
-+ char ** fileNames;
-+ const char ** dirNames;
-+ const char ** baseNames;
-+ int_32 * dirIndexes;
-+ rpmTagType fnt;
-+ int count;
-+ int i, xx;
-+ int dirIndex = -1;
-+
-+ /*
-+ * This assumes the file list is already sorted, and begins with a
-+ * single '/'. That assumption isn't critical, but it makes things go
-+ * a bit faster.
-+ */
-+
-+ if (headerIsEntry(h, RPMTAG_DIRNAMES)) {
-+ xx = hre(h, RPMTAG_OLDFILENAMES);
-+ return; /* Already converted. */
-+ }
-+
-+ if (!hge(h, RPMTAG_OLDFILENAMES, &fnt, (void **) &fileNames, &count))
-+ return; /* no file list */
-+ if (fileNames == NULL || count <= 0)
-+ return;
-+
-+ dirNames = alloca(sizeof(*dirNames) * count); /* worst case */
-+ baseNames = alloca(sizeof(*dirNames) * count);
-+ dirIndexes = alloca(sizeof(*dirIndexes) * count);
-+
-+ if (fileNames[0][0] != '/') {
-+ /* HACK. Source RPM, so just do things differently */
-+ dirIndex = 0;
-+ dirNames[dirIndex] = "";
-+ for (i = 0; i < count; i++) {
-+ dirIndexes[i] = dirIndex;
-+ baseNames[i] = fileNames[i];
-+ }
-+ goto exit;
-+ }
-+
-+ /*@-branchstate@*/
-+ for (i = 0; i < count; i++) {
-+ const char ** needle;
-+ char savechar;
-+ char * baseName;
-+ int len;
-+
-+ if (fileNames[i] == NULL) /* XXX can't happen */
-+ continue;
-+ baseName = strrchr(fileNames[i], '/') + 1;
-+ len = baseName - fileNames[i];
-+ needle = dirNames;
-+ savechar = *baseName;
-+ *baseName = '\0';
-+/*@-compdef@*/
-+ if (dirIndex < 0 ||
-+ (needle = bsearch(&fileNames[i], dirNames, dirIndex + 1, sizeof(dirNames[0]), dncmp)) == NULL) {
-+ char *s = alloca(len + 1);
-+ memcpy(s, fileNames[i], len + 1);
-+ s[len] = '\0';
-+ dirIndexes[i] = ++dirIndex;
-+ dirNames[dirIndex] = s;
-+ } else
-+ dirIndexes[i] = needle - dirNames;
-+/*@=compdef@*/
-+
-+ *baseName = savechar;
-+ baseNames[i] = baseName;
-+ }
-+ /*@=branchstate@*/
-+
-+exit:
-+ if (count > 0) {
-+ xx = hae(h, RPMTAG_DIRINDEXES, RPM_INT32_TYPE, dirIndexes, count);
-+ xx = hae(h, RPMTAG_BASENAMES, RPM_STRING_ARRAY_TYPE,
-+ baseNames, count);
-+ xx = hae(h, RPMTAG_DIRNAMES, RPM_STRING_ARRAY_TYPE,
-+ dirNames, dirIndex + 1);
-+ }
-+
-+ fileNames = hfd(fileNames, fnt);
-+
-+ xx = hre(h, RPMTAG_OLDFILENAMES);
-+}
-+/*@=bounds@*/
-+
-+/* rpm v3 compatibility */
-+static void rpm3to4(Header h) {
-+ char * rpmversion;
-+ int_32 rpmversion_type;
-+
-+ (void) headerGetEntry(h, RPMTAG_RPMVERSION, NULL, (void **) &rpmversion, &rpmversion_type);
-+
-+ if ((!rpmversion) || rpmversion[0] < '4') {
-+ int *epoch;
-+ const char * name, *version, *release;
-+ const char *pEVR;
-+ char *p;
-+ int_32 pFlags = RPMSENSE_EQUAL;
-+
-+ if (headerNVR(h, &name, &version, &release) == 0) {
-+ pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
-+ *p = '\0';
-+ if (headerGetEntry(h, RPMTAG_EPOCH, NULL, (void **) &epoch, NULL)) {
-+ sprintf(p, "%d:", *epoch);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ (void) stpcpy( stpcpy( stpcpy(p, version) , "-") , release);
-+
-+ headerAddOrAppendEntry(h, RPMTAG_PROVIDENAME, RPM_STRING_ARRAY_TYPE, &name, 1);
-+ headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE, &pFlags, 1);
-+ headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE, &pEVR, 1);
-+ }
-+ compressFilelist(h);
-+ }
-+ headerFreeTag(h, (void *) rpmversion, rpmversion_type);
-+ return;
-+}
-+
- void headerMergeLegacySigs(Header h, const Header sigh)
- {
- HFD_t hfd = (HFD_t) headerFreeData;
-@@ -1062,6 +1205,8 @@
- /* Append (and remap) signature tags to the metadata. */
- headerMergeLegacySigs(h, sigh);
-
-+ rpm3to4(h);
-+
- /* Bump reference count for return. */
- /*@-boundswrite@*/
- *hdrp = headerLink(h);
+++ /dev/null
-diff -urpa rpm-4.5.orig/build/parsePrep.c rpm-4.5/build/parsePrep.c
---- rpm-4.5.orig/build/parsePrep.c 2007-11-08 00:26:48.000000000 +0000
-+++ rpm-4.5/build/parsePrep.c 2018-02-23 11:51:54.161446282 +0000
-@@ -189,11 +189,13 @@ static const char *doUntar(Spec spec, in
- {
- const char *fn, *Lurlfn;
- static char buf[BUFSIZ];
-- char *taropts;
-+ char taropts[8];
- char *t = NULL;
- struct Source *sp;
- rpmCompressedMagic compressed = COMPRESSED_NOT;
- int urltype;
-+ const char *tar;
-+ int rubygem = 0;
-
- for (sp = spec->sources; sp != NULL; sp = sp->next) {
- if ((sp->flags & RPMFILE_SOURCE) && (sp->num == c)) {
-@@ -205,8 +207,18 @@ static const char *doUntar(Spec spec, in
- return NULL;
- }
-
-+ t = strrchr(sp->source, '.');
-+ if(t && !strcasecmp(t, ".gem"))
-+ rubygem = 1;
-+
-+ t = stpcpy(taropts, "-x");
- /*@-internalglobs@*/ /* FIX: shrug */
-- taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
-+ if(rpmIsVerbose() && !quietly)
-+ t = stpcpy(t, "vv");
-+ if(rubygem)
-+ t = stpcpy(t, "m");
-+
-+ t = stpcpy(t, "f");
- /*@=internalglobs@*/
-
- Lurlfn = rpmGenPath(NULL, "%{_sourcedir}/", sp->source);
-@@ -233,6 +245,12 @@ static const char *doUntar(Spec spec, in
- /*@notreached@*/ break;
- }
-
-+ tar = rpmGetPath("%{?__tar}", NULL);
-+ if (!(tar && *tar != '\0')) {
-+ tar = _free(tar);
-+ tar = xstrdup("tar");
-+ }
-+
- if (compressed != COMPRESSED_NOT) {
- const char *zipper;
- int needtar = 1;
-@@ -267,8 +285,13 @@ static const char *doUntar(Spec spec, in
- *t++ = '\'';
- t = stpcpy(t, fn);
- *t++ = '\'';
-- if (needtar)
-- t = stpcpy( stpcpy( stpcpy(t, " | tar "), taropts), " -");
-+ if (needtar) {
-+ t = stpcpy(t, " | ");
-+ t = stpcpy(t, tar);
-+ t = stpcpy(t, " ");
-+ t = stpcpy(t, taropts);
-+ t = stpcpy(t, " -");
-+ }
- t = stpcpy(t,
- "\n"
- "STATUS=$?\n"
-@@ -277,11 +300,24 @@ static const char *doUntar(Spec spec, in
- "fi");
- } else {
- buf[0] = '\0';
-- t = stpcpy( stpcpy(buf, "tar "), taropts);
-+ t = stpcpy(buf, tar);
-+ t = stpcpy(t, " ");
-+ t = stpcpy(t, taropts);
- *t++ = ' ';
- t = stpcpy(t, fn);
-+ if(rubygem) {
-+ t = stpcpy(t,
-+ "\n"
-+ "if [ -f data.tar.gz ]; then\n"
-+ " tar ");
-+ t = stpcpy(t, taropts);
-+ t = stpcpy(t,
-+ " data.tar.gz\n"
-+ "fi");
-+ }
- }
-
-+ tar = _free(tar);
- Lurlfn = _free(Lurlfn);
- return buf;
- }
-@@ -390,6 +426,20 @@ static int doSetupMacro(Spec spec, char
- appendLineStringBuf(spec->prep, buf);
- }
-
-+ /* check if source is a ruby gem */
-+ { struct Source *sp;
-+ for (sp = spec->sources; sp != NULL; sp = sp->next) {
-+ if ((sp->flags & RPMFILE_SOURCE) && (sp->num == 0)) {
-+ break;
-+ }
-+ }
-+ if (sp != NULL) {
-+ char *t = strrchr(sp->source, '.');
-+ if(t && !strcasecmp(t, ".gem"))
-+ createDir = 1;
-+ }
-+ }
-+
- /* if necessary, create and cd into the proper dir */
- if (createDir) {
- sprintf(buf, MKDIR_P " '%s'\ncd '%s'",
+++ /dev/null
-diff -urpa rpm-4.5.orig/configure.ac rpm-4.5/configure.ac
---- rpm-4.5.orig/configure.ac 2011-10-03 01:50:17.000000000 +0000
-+++ rpm-4.5/configure.ac 2018-02-23 13:52:54.438364538 +0000
-@@ -291,6 +291,7 @@ AC_PATH_PROG(__PHP, php, %{_bindir}/php,
- AC_PATH_PROG(__PYTHON, python, %{_bindir}/python, $MYPATH)
- AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
- AC_PATH_PROG(__RSH, rsh, %{_bindir}/rsh, $MYPATH)
-+AC_PATH_PROG(__RUBY, ruby, %{_bindir}/ruby, $MYPATH)
- AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH)
- AC_PATH_PROG(__SH, sh, /bin/sh, $MYPATH)
- AC_PATH_PROG(__SSH, ssh, %{_bindir}/ssh, $MYPATH)
-diff -urpa rpm-4.5.orig/lib/rpmfc.c rpm-4.5/lib/rpmfc.c
---- rpm-4.5.orig/lib/rpmfc.c 2008-06-10 22:13:27.000000000 +0000
-+++ rpm-4.5/lib/rpmfc.c 2018-02-23 14:04:42.056356571 +0000
-@@ -478,6 +478,9 @@ static struct rpmfcTokens_s rpmfcTokens[
-
- { "Java ", RPMFC_JAVA|RPMFC_INCLUDE },
-
-+ { "ruby script text", RPMFC_RUBY|RPMFC_INCLUDE },
-+ { "Ruby script text", RPMFC_RUBY|RPMFC_INCLUDE },
-+
- /* .NET executables and libraries. file(1) cannot differ it from native win32 executables unfortunatelly */
- { "PE executable", RPMFC_MONO|RPMFC_INCLUDE },
- { "executable PE", RPMFC_MONO|RPMFC_INCLUDE },
-@@ -740,6 +743,8 @@ static int rpmfcSCRIPT(rpmfc fc)
- fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
- else if (!strncmp(bn, "php", sizeof("php")-1))
- fc->fcolor->vals[fc->ix] |= RPMFC_PHP;
-+ else if (!strncmp(bn, "ruby", sizeof("ruby")-1))
-+ fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
-
- break;
- }
-@@ -788,6 +793,13 @@ static int rpmfcSCRIPT(rpmfc fc)
- if (is_executable)
- xx = rpmfcHelper(fc, 'R', "php");
- } else
-+ if (fc->fcolor->vals[fc->ix] & RPMFC_RUBY) {
-+ xx = rpmfcHelper(fc, 'P', "ruby");
-+#ifdef NOTYET
-+ if (is_executable)
-+#endif
-+ xx = rpmfcHelper(fc, 'R', "ruby");
-+ } else
- if (fc->fcolor->vals[fc->ix] & RPMFC_JAVA) {
- xx = rpmfcHelper(fc, 'P', "java");
- xx = rpmfcHelper(fc, 'R', "java");
-@@ -898,7 +910,7 @@ typedef struct rpmfcApplyTbl_s {
- /*@unchecked@*/
- static struct rpmfcApplyTbl_s rpmfcApplyTable[] = {
- { rpmfcELF, RPMFC_ELF },
-- { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_DESKTOP_FILE) },
-+ { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_RUBY|RPMFC_DESKTOP_FILE) },
- { rpmfcMONO, RPMFC_MONO },
- { NULL, 0 }
- };
-@@ -925,7 +937,7 @@ int rpmfcApply(rpmfc fc)
- /* Generate package and per-file dependencies. */
- for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
-
-- /* XXX Insure that /usr/lib{,64}/python files are marked RPMFC_PYTHON */
-+ /* XXX Insure that /usr/{share,lib{,64}}/python files are marked RPMFC_PYTHON */
- /* XXX HACK: classification by path is intrinsically stupid. */
- { const char *fn = strstr(fc->fn[fc->ix], "/usr/lib");
- if (fn) {
-@@ -934,6 +946,36 @@ int rpmfcApply(rpmfc fc)
- fn += 2;
- if (!strncmp(fn, "/python", sizeof("/python")-1))
- fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
-+ else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) {
-+ fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
-+ if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) {
-+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS);
-+ if (!mireRegcomp(mire, ".*/(specifications/.*\\.gemspec|rbconfig\\.rb)$"))
-+ if (mireRegexec(mire, fc->fn[fc->ix]))
-+ fc->fcolor->vals[fc->ix] |= RPMFC_MODULE;
-+ mire = mireFree(mire);
-+ }
-+ }
-+ /* XXX: lacking better, more generic classifier... */
-+ else if (!strncmp(fn, "/gstreamer", sizeof("/gstreamer")-1) &&
-+ fc->fcolor->vals[fc->ix] & RPMFC_LIBRARY)
-+ fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT);
-+ }
-+ fn = strstr(fc->fn[fc->ix], "/usr/share");
-+ if (fn) {
-+ fn += sizeof("/usr/share")-1;
-+ if (!strncmp(fn, "/python", sizeof("/python")-1))
-+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
-+ else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1) || !strncmp(fn, "/gems/specifications", sizeof("/gems/specifications")-1)) {
-+ fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
-+ if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) {
-+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS);
-+ if (!mireRegcomp(mire, ".*/(specifications/.*\\.gemspec|rbconfig\\.rb)$"))
-+ if (mireRegexec(mire, fc->fn[fc->ix]))
-+ fc->fcolor->vals[fc->ix] |= RPMFC_MODULE;
-+ mire = mireFree(mire);
-+ }
-+ }
- }
- }
-
-diff -urpa rpm-4.5.orig/lib/rpmfc.h rpm-4.5/lib/rpmfc.h
---- rpm-4.5.orig/lib/rpmfc.h 2008-06-10 21:21:57.000000000 +0000
-+++ rpm-4.5/lib/rpmfc.h 2018-02-23 13:52:54.438364538 +0000
-@@ -31,8 +31,9 @@ enum FCOLOR_e {
- #define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
-
- /* bits 4-7 unused */
-- RPMFC_DESKTOP_FILE = (1 << 7), /* XXX */
-+ RPMFC_DESKTOP_FILE = (1 << 6), /* XXX */
-
-+ RPMFC_RUBY = (1 << 7),
- RPMFC_PKGCONFIG = (1 << 8),
- RPMFC_LIBTOOL = (1 << 9),
- RPMFC_BOURNE = (1 << 10),
-diff -urpa rpm-4.5.orig/macros.in rpm-4.5/macros.in
---- rpm-4.5.orig/macros.in 2008-06-10 22:00:43.000000000 +0000
-+++ rpm-4.5/macros.in 2018-02-23 13:52:54.439364538 +0000
-@@ -78,6 +78,7 @@
- %__python @__PYTHON@
- %__rm @__RM@
- %__rsh @__RSH@
-+%__ruby @__RUBY@
- %__sed @__SED@
- %__sh @__SH@
- %__ssh @__SSH@
-@@ -1421,6 +1422,44 @@ PreReq: python >= %{python_version}, pyt
- #%__java_requires %{_rpmhome}/javadeps.sh --requires
-
- #------------------------------------------------------------------------
-+# ruby(...) configuration.
-+#
-+# Path to scripts to autogenerate ruby package dependencies,
-+
-+# Note: Used if _use_internal_dependency_generator is non-zero. The
-+# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
-+%__ruby_provides %{_rpmhome}/rubygems.rb --provides
-+%__ruby_requires %{_rpmhome}/rubygems.rb --requires
-+
-+%ruby_version %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["ruby_version"]')
-+
-+%ruby_archdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["archdir"]')
-+%ruby_libdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"]')
-+%ruby_sitedir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitedir"]')
-+%ruby_sitearchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')
-+%ruby_sitelibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')
-+%ruby_vendordir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendordir"]')
-+%ruby_vendorarchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorarchdir"]')
-+%ruby_vendorlibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorlibdir"]')
-+%ruby_gemdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"].sub(RbConfig::CONFIG["ruby_version"], "gems/#{RbConfig::CONFIG["ruby_version"]}")')
-+%ruby_ridir %(%{__ruby} -rrbconfig -e 'print File.join(RbConfig::CONFIG["datadir"], "ri", RbConfig::CONFIG["ruby_version"])')
-+
-+%__gem_helper %{_usrlibrpm}/gem_helper.rb
-+
-+%gem_build(f:j:) \
-+ %__gem_helper build \\\
-+ %{-f:-f%{-f*}} \\\
-+ %{!-j:%{_smp_mflags}}%{-j:-j%{-j*}}
-+
-+%gem_install(i:n:C) \
-+ DESTDIR=${DESTDIR:-%{buildroot}} \\\
-+ %__gem_helper install \\\
-+ --env-shebang --rdoc --ri --force --ignore-dependencies \\\
-+ %{!-i:--install-dir %{buildroot}%{ruby_gemdir}}%{-i:--install-dir %{-i*}} \\\
-+ %{!-n:--bindir %{buildroot}%{_bindir}}%{-n:--bindir%{-n*}} \\\
-+ %{!-C:--fix-permissions}
-+
-+#------------------------------------------------------------------------
- # libtool(...) configuration.
- #
- # Path to scripts to autogenerate libtool package dependencies,
---- rpm-4.1/lib/rpminstall.c.wiget Mon Sep 16 21:06:08 2002
-+++ rpm-4.1/lib/rpminstall.c Thu Sep 19 00:03:36 2002
-@@ -126,8 +126,15 @@
- xx = Fclose(fd);
+--- rpm-4.16.0/lib/rpminstall.c.orig 2020-05-28 12:04:25.040136702 +0200
++++ rpm-4.16.0/lib/rpminstall.c 2020-10-03 09:46:49.369707250 +0200
+@@ -4,6 +4,8 @@
+
+ #include "system.h"
+
++#include <fcntl.h>
++
+ #include <rpm/rpmcli.h>
+ #include <rpm/rpmtag.h>
+ #include <rpm/rpmlib.h> /* rpmReadPackageFile, vercmp etc */
+@@ -114,8 +116,15 @@
+ Fclose(fd);
fd = NULL;
}
- } else
+ } else {
+ long oldfl;
- fd = fdLink(fd, "persist (showProgress)");
+ fd = fdLink(fd);
+ oldfl=Fcntl(fd, F_GETFD, 0);
+ if(oldfl >= 0) {
+ oldfl |= FD_CLOEXEC; /* scripts shouldn't inherit rpm file descriptor */
+ Fcntl(fd, F_SETFD, (void*)oldfl);
+ }
+ }
- /*@=type@*/
- return fd;
- /*@notreached@*/ break;
+ return (void *)fd;
+ break;
+
+++ /dev/null
---- rpm-4.4.9/lib/transaction.c~ 2009-03-03 20:03:31.000000000 +0200
-+++ rpm-4.4.9/lib/transaction.c 2009-03-03 20:15:17.337085230 +0200
-@@ -1775,6 +1775,9 @@
- /*@innerbreak@*/ break;
- }
- if (rpmteFd(p) != NULL) gotfd = 1;
-+ } else {
-+ ourrc++;
-+ xx = markLinkedFailed(ts, p);
- }
- }
- /*@=type@*/
+++ /dev/null
---- rpm-4.5/rpmdb/header.c~ 2009-05-13 18:25:56.000000000 +0300
-+++ rpm-4.5/rpmdb/header.c 2009-05-13 18:26:01.729564093 +0300
-@@ -2977,7 +2977,6 @@
- static char * shescapeFormat(HE_t he, /*@null@*/ const char ** av)
- /*@*/
- {
-- rpmTagData data = { .ptr = he->p.ptr };
- char * val;
- size_t nb;
-
-@@ -2985,34 +2984,37 @@
- if (he->t == RPM_INT32_TYPE) {
- nb = 20;
- val = xmalloc(nb);
-- snprintf(val, nb, "%d", data.i32p[0]);
-+ snprintf(val, nb, "%d", he->p.i32p[0]);
- val[nb-1] = '\0';
- } else if (he->t == RPM_INT64_TYPE) {
- nb = 40;
- val = xmalloc(40);
-- snprintf(val, nb, "%lld", data.i64p[0]);
-+ snprintf(val, nb, "%lld", he->p.i64p[0]);
- val[nb-1] = '\0';
- } else if (he->t == RPM_STRING_TYPE) {
-- const char * s = data.str;
-+ const char * s = he->p.str;
- char * t;
- int c;
-
-- nb = strlen(data.str) + 1;
-- /* XXX count no. of escapes instead. */
-- t = xmalloc(4 * nb + 3);
-+ nb = 0;
-+ for (s = he->p.str; (c = (int)*s) != 0; s++) {
-+ nb++;
-+ if (c == (int)'\'')
-+ nb += 3;
-+ }
-+ nb += 3;
-+ t = val = xmalloc(nb);
- *t++ = '\'';
-- while ((c = *s++) != 0) {
-- if (c == '\'') {
-+ for (s = he->p.str; (c = (int)*s) != 0; s++) {
-+ if (c == (int)'\'') {
- *t++ = '\'';
- *t++ = '\\';
- *t++ = '\'';
- }
-- *t++ = c;
-+ *t++ = (char) c;
- }
- *t++ = '\'';
- *t = '\0';
-- nb = strlen(t) + 1;
-- val = xrealloc(t, nb);
- } else
- val = xstrdup(_("invalid type"));
-
+++ /dev/null
-diff -urNp rpm-4.5.orig/rpmio/macro.c rpm-4.5/rpmio/macro.c
---- rpm-4.5.orig/rpmio/macro.c 2017-10-19 22:48:49.000000000 +0000
-+++ rpm-4.5/rpmio/macro.c 2017-10-19 23:16:34.301644733 +0000
-@@ -71,6 +71,7 @@ const char * rpmMacrofiles = MACROFILES;
- #endif
-
- #include <rpmmacro.h>
-+#include <rpmstring.h>
-
- #include "debug.h"
-
-@@ -1200,6 +1201,28 @@ doFoo(MacroBuf mb, int negate, const cha
- if ((b = strrchr(buf, '/')) != NULL)
- *b = '\0';
- b = buf;
-+ } else if (STREQ("shrink", f, fn)) {
-+ /*
-+ * shrink body by removing all leading and trailing whitespaces and
-+ * reducing intermediate whitespaces to a single space character.
-+ */
-+ size_t i = 0, j = 0;
-+ size_t buflen = strlen(buf);
-+ int was_space = 0;
-+ while (i < buflen) {
-+ if (risspace(buf[i])) {
-+ was_space = 1;
-+ i++;
-+ continue;
-+ } else if (was_space) {
-+ was_space = 0;
-+ if (j > 0) /* remove leading blanks at all */
-+ buf[j++] = ' ';
-+ }
-+ buf[j++] = buf[i++];
-+ }
-+ buf[j] = '\0';
-+ b = buf;
- } else if (STREQ("suffix", f, fn)) {
- if ((b = strrchr(buf, '.')) != NULL)
- b++;
-@@ -1549,6 +1572,7 @@ expandMacro(MacroBuf mb)
- /* XXX necessary but clunky */
- if (STREQ("basename", f, fn) ||
- STREQ("dirname", f, fn) ||
-+ STREQ("shrink", f, fn) ||
- STREQ("suffix", f, fn) ||
- STREQ("expand", f, fn) ||
- STREQ("verbose", f, fn) ||
-diff -urNp rpm-4.5.orig/rpmio/Makefile.am rpm-4.5/rpmio/Makefile.am
---- rpm-4.5.orig/rpmio/Makefile.am 2017-10-19 22:48:49.000000000 +0000
-+++ rpm-4.5/rpmio/Makefile.am 2017-10-19 23:16:15.212645871 +0000
-@@ -37,7 +37,7 @@ librpmio_la_SOURCES = \
- md2.c md4.c rmd128.c rmd160.c rmd256.c rmd320.c sha224.c \
- salsa10.c salsa20.c tiger.c \
- rpmdav.c rpmhash.c rpmhook.c rpmio.c rpmlog.c rpmlua.c rpmmalloc.c \
-- rpmpgp.c rpmrpc.c rpmsq.c rpmsw.c strcasecmp.c strtolocale.c \
-+ rpmpgp.c rpmrpc.c rpmsq.c rpmstring.c rpmsw.c strcasecmp.c strtolocale.c \
- stubs.c url.c ugid.c rpmuuid.c
- librpmio_la_LDFLAGS = -no-undefined -release $(LT_CURRENT).$(LT_REVISION) $(LDFLAGS) \
- @WITH_BEECRYPT_LIB@ \
-diff -urNp rpm-4.5.orig/rpmio/Makefile.in rpm-4.5/rpmio/Makefile.in
---- rpm-4.5.orig/rpmio/Makefile.in 2008-07-09 09:41:32.000000000 +0000
-+++ rpm-4.5/rpmio/Makefile.in 2017-10-19 23:16:15.212645871 +0000
-@@ -68,7 +68,7 @@ am_librpmio_la_OBJECTS = argv.lo digest.
- macro.lo mire.lo md2.lo md4.lo rmd128.lo rmd160.lo rmd256.lo \
- rmd320.lo sha224.lo salsa10.lo salsa20.lo tiger.lo rpmdav.lo \
- rpmhash.lo rpmhook.lo rpmio.lo rpmlog.lo rpmlua.lo \
-- rpmmalloc.lo rpmpgp.lo rpmrpc.lo rpmsq.lo rpmsw.lo \
-+ rpmmalloc.lo rpmpgp.lo rpmrpc.lo rpmsq.lo rpmstring.lo rpmsw.lo \
- strcasecmp.lo strtolocale.lo stubs.lo url.lo ugid.lo \
- rpmuuid.lo
- librpmio_la_OBJECTS = $(am_librpmio_la_OBJECTS)
-diff -urNp rpm-4.5.orig/rpmio/rpmstring.c rpm-4.5/rpmio/rpmstring.c
---- rpm-4.5.orig/rpmio/rpmstring.c 1970-01-01 00:00:00.000000000 +0000
-+++ rpm-4.5/rpmio/rpmstring.c 2017-10-19 23:16:15.212645871 +0000
-@@ -0,0 +1,192 @@
-+/**
-+ * \file rpmio/rpmstring.c
-+ */
-+
-+#include "system.h"
-+
-+#include <stdarg.h>
-+#include <stdio.h>
-+
-+#include <rpmio/rpmstring.h>
-+#include "debug.h"
-+
-+
-+int rstrcasecmp(const char * s1, const char * s2)
-+{
-+ const char * p1 = s1;
-+ const char * p2 = s2;
-+ char c1, c2;
-+
-+ if (p1 == p2)
-+ return 0;
-+
-+ do
-+ {
-+ c1 = rtolower (*p1++);
-+ c2 = rtolower (*p2++);
-+ if (c1 == '\0')
-+ break;
-+ }
-+ while (c1 == c2);
-+
-+ return (int)(c1 - c2);
-+}
-+
-+int rstrncasecmp(const char *s1, const char *s2, size_t n)
-+{
-+ const char * p1 = s1;
-+ const char * p2 = s2;
-+ char c1, c2;
-+
-+ if (p1 == p2 || n == 0)
-+ return 0;
-+
-+ do
-+ {
-+ c1 = rtolower (*p1++);
-+ c2 = rtolower (*p2++);
-+ if (c1 == '\0' || c1 != c2)
-+ break;
-+ } while (--n > 0);
-+
-+ return (int)(c1 - c2);
-+}
-+
-+/*
-+ * Simple and stupid asprintf() clone.
-+ * FIXME: write to work with non-C99 vsnprintf or check for one in configure.
-+ */
-+int rasprintf(char **strp, const char *fmt, ...)
-+{
-+ int n;
-+ va_list ap;
-+ char * p = NULL;
-+
-+ if (strp == NULL)
-+ return -1;
-+
-+ va_start(ap, fmt);
-+ n = vsnprintf(NULL, 0, fmt, ap);
-+ va_end(ap);
-+
-+ if (n >= -1) {
-+ size_t nb = n + 1;
-+ p = xmalloc(nb);
-+ va_start(ap, fmt);
-+ n = vsnprintf(p, nb, fmt, ap);
-+ va_end(ap);
-+ }
-+ *strp = p;
-+ return n;
-+}
-+
-+/*
-+ * Concatenate two strings with dynamically (re)allocated
-+ * memory what prevents static buffer overflows by design.
-+ * *dest is reallocated to the size of strings to concatenate.
-+ *
-+ * Note:
-+ * 1) char *buf = rstrcat(NULL,"string"); is the same like rstrcat(&buf,"string");
-+ * 2) rstrcat(&buf,NULL) returns buf
-+ * 3) rstrcat(NULL,NULL) returns NULL
-+ * 4) *dest and src can overlap
-+ */
-+char *rstrcat(char **dest, const char *src)
-+{
-+ if ( src == NULL ) {
-+ return dest != NULL ? *dest : NULL;
-+ }
-+
-+ if ( dest == NULL ) {
-+ return xstrdup(src);
-+ }
-+
-+ {
-+ size_t dest_size = *dest != NULL ? strlen(*dest) : 0;
-+ size_t src_size = strlen(src);
-+
-+ *dest = xrealloc(*dest, dest_size+src_size+1); /* include '\0' */
-+ memmove(&(*dest)[dest_size], src, src_size+1);
-+ }
-+
-+ return *dest;
-+}
-+
-+/*
-+ * Concatenate strings with dynamically (re)allocated
-+ * memory what prevents static buffer overflows by design.
-+ * *dest is reallocated to the size of strings to concatenate.
-+ * List of strings has to be NULL terminated.
-+ *
-+ * Note:
-+ * 1) char *buf = rstrscat(NULL,"string",NULL); is the same like rstrscat(&buf,"string",NULL);
-+ * 2) rstrscat(&buf,NULL) returns buf
-+ * 3) rstrscat(NULL,NULL) returns NULL
-+ * 4) *dest and argument strings can overlap
-+ */
-+char *rstrscat(char **dest, const char *arg, ...)
-+{
-+ va_list ap;
-+ size_t arg_size, dst_size;
-+ const char *s;
-+ char *dst, *p;
-+
-+ dst = dest ? *dest : NULL;
-+
-+ if ( arg == NULL ) {
-+ return dst;
-+ }
-+
-+ va_start(ap, arg);
-+ for (arg_size=0, s=arg; s; s = va_arg(ap, const char *))
-+ arg_size += strlen(s);
-+ va_end(ap);
-+
-+ dst_size = dst ? strlen(dst) : 0;
-+ dst = xrealloc(dst, dst_size+arg_size+1); /* include '\0' */
-+ p = &dst[dst_size];
-+
-+ va_start(ap, arg);
-+ for (s = arg; s; s = va_arg(ap, const char *)) {
-+ size_t size = strlen(s);
-+ memmove(p, s, size);
-+ p += size;
-+ }
-+ va_end(ap);
-+ *p = '\0';
-+
-+ if ( dest ) {
-+ *dest = dst;
-+ }
-+
-+ return dst;
-+}
-+
-+/*
-+ * Adapted from OpenBSD, strlcpy() originally developed by
-+ * Todd C. Miller <Todd.Miller@courtesan.com>
-+ */
-+size_t rstrlcpy(char *dest, const char *src, size_t n)
-+{
-+ char *d = dest;
-+ const char *s = src;
-+ size_t len = n;
-+
-+ /* Copy as many bytes as will fit */
-+ if (len != 0) {
-+ while (--len != 0) {
-+ if ((*d++ = *s++) == '\0')
-+ break;
-+ }
-+ }
-+
-+ /* Not enough room in dst, add NUL and traverse rest of src */
-+ if (len == 0) {
-+ if (n != 0)
-+ *d = '\0'; /* NUL-terminate dst */
-+ while (*s++)
-+ ;
-+ }
-+
-+ return s - src - 1; /* count does not include NUL */
-+}
-diff -urNp rpm-4.5.orig/rpmio/rpmstring.h rpm-4.5/rpmio/rpmstring.h
---- rpm-4.5.orig/rpmio/rpmstring.h 1970-01-01 00:00:00.000000000 +0000
-+++ rpm-4.5/rpmio/rpmstring.h 2017-10-19 23:16:15.212645871 +0000
-@@ -0,0 +1,187 @@
-+#ifndef _RPMSTRING_H_
-+#define _RPMSTRING_H_
-+
-+/** \ingroup rpmstring
-+ * \file rpmio/rpmstring.h
-+ * String manipulation helper functions
-+ */
-+
-+#include <stddef.h>
-+#include <string.h>
-+
-+#include <rpmio/rpmutil.h>
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive islower(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int rislower(int c) {
-+ return (c >= 'a' && c <= 'z');
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isupper(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risupper(int c) {
-+ return (c >= 'A' && c <= 'Z');
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isalpha(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risalpha(int c) {
-+ return (rislower(c) || risupper(c));
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isdigit(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risdigit(int c) {
-+ return (c >= '0' && c <= '9');
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isalnum(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risalnum(int c) {
-+ return (risalpha(c) || risdigit(c));
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isblank(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risblank(int c) {
-+ return (c == ' ' || c == '\t');
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive isspace(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int risspace(int c) {
-+ return (risblank(c) || c == '\n' || c == '\r' || c == '\f' || c == '\v');
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive tolower(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int rtolower(int c) {
-+ return ((risupper(c)) ? (c | ('a' - 'A')) : c);
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive toupper(3)
-+ */
-+RPM_GNUC_CONST
-+static inline int rtoupper(int c) {
-+ return ((rislower(c)) ? (c & ~('a' - 'A')) : c);
-+}
-+
-+/**
-+ * Convert hex to binary nibble.
-+ * @param c hex character
-+ * @return binary nibble
-+ */
-+RPM_GNUC_CONST
-+static inline unsigned char rnibble(char c)
-+{
-+ if (c >= '0' && c <= '9')
-+ return (c - '0');
-+ if (c >= 'a' && c <= 'f')
-+ return (c - 'a') + 10;
-+ if (c >= 'A' && c <= 'F')
-+ return (c - 'A') + 10;
-+ return 0;
-+}
-+
-+/**
-+ * Test for string equality
-+ * @param s1 string 1
-+ * @param s2 string 2
-+ * @return 0 if strings differ, 1 if equal
-+ */
-+static inline int rstreq(const char *s1, const char *s2)
-+{
-+ return (strcmp(s1, s2) == 0);
-+}
-+
-+/**
-+ * Test for string equality
-+ * @param s1 string 1
-+ * @param s2 string 2
-+ * @param n compare at most n characters
-+ * @return 0 if strings differ, 1 if equal
-+ */
-+static inline int rstreqn(const char *s1, const char *s2, size_t n)
-+{
-+ return (strncmp(s1, s2, n) == 0);
-+}
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive strcasecmp(3).
-+ */
-+RPM_GNUC_PURE
-+int rstrcasecmp(const char * s1, const char * s2) ;
-+
-+/** \ingroup rpmstring
-+ * Locale insensitive strncasecmp(3).
-+ */
-+RPM_GNUC_PURE
-+int rstrncasecmp(const char *s1, const char * s2, size_t n) ;
-+
-+/** \ingroup rpmstring
-+ * asprintf() clone
-+ */
-+int rasprintf(char **strp, const char *fmt, ...) RPM_GNUC_PRINTF(2, 3);
-+
-+/** \ingroup rpmstring
-+ * Concatenate two strings with dynamically (re)allocated memory.
-+ * @param dest pointer to destination string
-+ * @param src source string
-+ * @return realloc'd dest with src appended
-+ */
-+char *rstrcat(char **dest, const char *src);
-+
-+/** \ingroup rpmstring
-+ * Concatenate multiple strings with dynamically (re)allocated memory.
-+ * @param dest pointer to destination string
-+ * @param arg NULL terminated list of strings to concatenate
-+ * @return realloc'd dest with strings appended
-+ */
-+char *rstrscat(char **dest, const char *arg, ...) RPM_GNUC_NULL_TERMINATED;
-+
-+/** \ingroup rpmstring
-+ * strlcpy() clone:
-+ * Copy src to string dest of size n. At most n-1 characters
-+ * will be copied. Always zero-terminates (unless n == 0).
-+ * Length of src is returned; if retval >= n, truncation occurred.
-+ * @param dest destination buffer
-+ * @param src string to copy
-+ * @param n destination buffer size
-+ * @return length of src string
-+ */
-+size_t rstrlcpy(char *dest, const char *src, size_t n);
-+
-+/** \ingroup rpmstring
-+ * String hashing function
-+ * @param string string to hash
-+ * @return hash id
-+ */
-+RPM_GNUC_PURE
-+unsigned int rstrhash(const char * string);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _RPMSTRING_H_ */
-diff -urNp rpm-4.5.orig/rpmio/rpmutil.h rpm-4.5/rpmio/rpmutil.h
---- rpm-4.5.orig/rpmio/rpmutil.h 1970-01-01 00:00:00.000000000 +0000
-+++ rpm-4.5/rpmio/rpmutil.h 2017-10-19 23:16:15.213645871 +0000
-@@ -0,0 +1,160 @@
-+#ifndef _RPMUTIL_H
-+#define _RPMUTIL_H
-+
-+#include <unistd.h>
-+
-+/** \file rpmio/rpmutil.h
-+ *
-+ * Miscellaneous utility macros:
-+ * - portability wrappers for various gcc extensions like __attribute__()
-+ * - ...
-+ *
-+ * Copied from glib, names replaced to avoid clashing with glib.
-+ *
-+ */
-+
-+/* Here we provide RPM_GNUC_EXTENSION as an alias for __extension__,
-+ * where this is valid. This allows for warningless compilation of
-+ * "long long" types even in the presence of '-ansi -pedantic'.
-+ */
-+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-+# define RPM_GNUC_EXTENSION __extension__
-+#else
-+# define RPM_GNUC_EXTENSION
-+#endif
-+
-+/* Provide macros to feature the GCC function attribute.
-+ */
-+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
-+#define RPM_GNUC_PURE \
-+ __attribute__((__pure__))
-+#define RPM_GNUC_MALLOC \
-+ __attribute__((__malloc__))
-+#else
-+#define RPM_GNUC_PURE
-+#define RPM_GNUC_MALLOC
-+#endif
-+
-+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
-+#define RPM_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
-+#define RPM_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
-+#else
-+#define RPM_GNUC_ALLOC_SIZE(x)
-+#define RPM_GNUC_ALLOC_SIZE2(x,y)
-+#endif
-+
-+#if __GNUC__ >= 4
-+#define RPM_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
-+#else
-+#define RPM_GNUC_NULL_TERMINATED
-+#endif
-+
-+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-+#define RPM_GNUC_PRINTF( format_idx, arg_idx ) \
-+ __attribute__((__format__ (__printf__, format_idx, arg_idx)))
-+#define RPM_GNUC_SCANF( format_idx, arg_idx ) \
-+ __attribute__((__format__ (__scanf__, format_idx, arg_idx)))
-+#define RPM_GNUC_FORMAT( arg_idx ) \
-+ __attribute__((__format_arg__ (arg_idx)))
-+#define RPM_GNUC_NORETURN \
-+ __attribute__((__noreturn__))
-+#define RPM_GNUC_CONST \
-+ __attribute__((__const__))
-+#define RPM_GNUC_UNUSED \
-+ __attribute__((__unused__))
-+#define RPM_GNUC_NO_INSTRUMENT \
-+ __attribute__((__no_instrument_function__))
-+#else /* !__GNUC__ */
-+#define RPM_GNUC_PRINTF( format_idx, arg_idx )
-+#define RPM_GNUC_SCANF( format_idx, arg_idx )
-+#define RPM_GNUC_FORMAT( arg_idx )
-+#define RPM_GNUC_NORETURN
-+#define RPM_GNUC_CONST
-+#define RPM_GNUC_UNUSED
-+#define RPM_GNUC_NO_INSTRUMENT
-+#endif /* !__GNUC__ */
-+
-+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
-+#define RPM_GNUC_DEPRECATED \
-+ __attribute__((__deprecated__))
-+#else
-+#define RPM_GNUC_DEPRECATED
-+#endif /* __GNUC__ */
-+
-+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-+#define RPM_GNUC_MAY_ALIAS __attribute__((may_alias))
-+#define RPM_GNUC_NONNULL( ... ) \
-+ __attribute__((__nonnull__ (__VA_ARGS__)))
-+#else
-+#define RPM_GNUC_MAY_ALIAS
-+#define RPM_GNUC_NONNULL( ... )
-+#endif
-+
-+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-+#define RPM_GNUC_WARN_UNUSED_RESULT \
-+ __attribute__((warn_unused_result))
-+#else
-+#define RPM_GNUC_WARN_UNUSED_RESULT
-+#endif /* __GNUC__ */
-+
-+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-+# define RPM_GNUC_INTERNAL __attribute__((visibility("hidden")))
-+#else
-+# define RPM_GNUC_INTERNAL
-+#endif
-+
-+
-+/* Guard C code in headers, while including them from C++ */
-+#ifdef __cplusplus
-+# define RPM_BEGIN_DECLS extern "C" {
-+# define RPM_END_DECLS }
-+#else
-+# define RPM_BEGIN_DECLS
-+# define RPM_END_DECLS
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Rpm specific allocators which never return NULL but terminate on failure */
-+RPM_GNUC_MALLOC RPM_GNUC_ALLOC_SIZE(1)
-+void * rmalloc(size_t size);
-+
-+RPM_GNUC_MALLOC RPM_GNUC_ALLOC_SIZE2(1,2)
-+void * rcalloc(size_t nmemb, size_t size);
-+
-+RPM_GNUC_ALLOC_SIZE(2)
-+void * rrealloc(void *ptr, size_t size);
-+
-+char * rstrdup(const char *str);
-+
-+/* Rpm specific free() which returns NULL */
-+void * rfree(void *ptr);
-+
-+/** \ingroup rpmutil
-+ * Memory allocation failure callback prototype. When registered through
-+ * rpmSetMemFail(), this gets called if memory allocation through rmalloc()
-+ * and friends fails. If the application can somehow recover memory here,
-+ * it can return a newly allocated memory block of requested size, otherwise
-+ * it must return NULL after performing it's own shutdown deeds or
-+ * terminate itself.
-+ * @param size Size of allocation request in bytes
-+ * @param data User data (or NULL)
-+ * @return Allocated memory block of requested size or NULL
-+ */
-+typedef void * (*rpmMemFailFunc) (size_t size, void *data);
-+
-+/** \ingroup rpmutil
-+ * Set memory allocation failure callback.
-+ * @param func Allocation failure callback function
-+ * @param data User data (or NULL)
-+ * @return Previous callback function
-+ */
-+rpmMemFailFunc rpmSetMemFail(rpmMemFailFunc func, void *data);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _RPMUTIL_H */
+++ /dev/null
- - jbj: reserve ~1K in RPMSIGTAG_PADDING for now.
- - jbj: add RPMSIGTAG_PADDING to force metadata header alignment in file.
---- rpm-4.5/build/pack.c 2007-12-17 00:28:09.000000000 +0200
-+++ rpm-4.5-sigpad/build/pack.c 2009-06-08 12:29:50.225343621 +0300
-@@ -702,6 +702,22 @@
- goto exit;
- }
-
-+ /* Pad the signature header to put the metadata header at known offset. */
-+ { size_t slen = headerSizeof(sig, HEADER_MAGIC_YES);
-+ void * uh = headerUnload(sig);
-+ static const size_t align = 1024;
-+ size_t nb = align - 96 - 16 - 8;
-+ unsigned char * b;
-+
-+ uh = _free(uh);
-+assert(slen < nb);
-+ nb -= slen;
-+ b = memset(alloca(nb), 0, nb);
-+ (void) headerAddEntry(sig, RPMSIGTAG_PADDING, RPM_BIN_TYPE, b, nb);
-+ sig = headerReload(sig, RPMTAG_HEADERSIGNATURES);
-+assert(sig != NULL);
-+ }
-+
- /* Open the output file */
- fd = Fopen(fileName, "w");
- if (fd == NULL || Ferror(fd)) {
---- rpm-4.5/lib/rpmlib.h 2008-06-10 02:19:16.000000000 +0300
-+++ rpm-4.5-sigpad/lib/rpmlib.h 2009-06-08 12:29:50.225343621 +0300
-@@ -1058,7 +1058,8 @@
- RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2, /*!< internal Broken SHA1, take 2. */
- RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER, /*!< internal sha1 header digest. */
- RPMSIGTAG_DSA = RPMTAG_DSAHEADER, /*!< internal DSA header signature. */
-- RPMSIGTAG_RSA = RPMTAG_RSAHEADER /*!< internal RSA header signature. */
-+ RPMSIGTAG_RSA = RPMTAG_RSAHEADER, /*!< internal RSA header signature. */
-+ RPMSIGTAG_PADDING = 0x3fffffff /*!< signature header padding */
- };
-
- /** \ingroup signature
+++ /dev/null
---- rpm-4.4.8/configure.ac.orig 2007-04-08 16:26:29.303992000 +0200
-+++ rpm-4.4.8/configure.ac 2007-04-08 16:35:11.461748504 +0200
-@@ -662,7 +662,7 @@
-
- dnl ------------------ with internal db
- AC_DEFINE(HAVE_DB3_DB_H, 1, [Define if you have the <db3/db.h> header file])
--WITH_DB_SUBDIR=db3
-+WITH_DB_SUBDIR=
- WITH_INTERNAL_DB=1
- DBLIBSRCS="db3.c"
-
---- rpm-4.5/configure.ac~ 2008-04-13 03:20:07.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-04-13 03:23:45.011443406 +0300
-@@ -1203,7 +1215,7 @@
- dnl # XXX Propagate -lucb to popt ...
- dnl export LIBS INCPATH CONFIG_SITE
-
--AC_CONFIG_SUBDIRS(file db3)
-+AC_CONFIG_SUBDIRS(file)
-
- AC_CONFIG_FILES([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec
- scripts/perl.req scripts/perl.prov
---- rpm-4.5/rpmdb/Makefile.am~ 2008-04-13 03:28:19.000000000 +0300
-+++ rpm-4.5/rpmdb/Makefile.am 2008-04-13 13:49:10.122086563 +0300
-@@ -25,25 +25,18 @@
- tjfn_LDADD = librpmdb.la
-
- pkgincdir = $(pkgincludedir)
--pkginc_HEADERS = db.h header.h hdrinline.h rpmdb.h
-+pkginc_HEADERS = header.h hdrinline.h rpmdb.h
- noinst_HEADERS = fprint.h header_internal.h legacy.h
-
- pkglibdir = @USRLIBRPM@
- versionlibdir = $(pkglibdir)/@VERSION@
--versionlib_PROGRAMS = \
-- db_archive db_checkpoint db_deadlock db_dump \
-- db_hotbackup db_load db_printlog db_recover \
-- db_stat db_upgrade db_verify
--if WITH_DB_RPC
--versionlib_PROGRAMS += db_svc
--endif
-
- mylibs = librpmdb.la
-
- LIBS =
-
- # XXX watchout, ../db3/libdb.la created by this Makefile may surprise
--libdb_la = $(top_builddir)/$(WITH_DB_SUBDIR)/libdb.la
-+libdb_la =
-
- # XXX grrr, RPM_BUILD_ROOT prevents build pollution if/when -lrpm different
- LDFLAGS = -L$(RPM_BUILD_ROOT)$(usrlibdir) -L$(DESTDIR)$(usrlibdir)
+++ /dev/null
---- rpm-4.5/configure.ac~ 2008-04-13 03:20:07.000000000 +0300
-+++ rpm-4.5/configure.ac 2008-04-13 03:23:45.011443406 +0300
-@@ -1203,7 +1215,7 @@
- dnl # XXX Propagate -lucb to popt ...
- dnl export LIBS INCPATH CONFIG_SITE
-
--AC_CONFIG_SUBDIRS(popt zlib file sqlite db3)
-+AC_CONFIG_SUBDIRS(file db3)
-
- AC_CONFIG_FILES([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec
- scripts/perl.req scripts/perl.prov
-@@ -1534,7 +1534,6 @@
- lua/Makefile
- ])
- AC_CONFIG_COMMANDS([default],[[
-- [ -d popt ] && echo timestamp > popt/stamp-h.in
- echo timestamp > stamp-h.in
- [ -d perl ] && cd perl && perl Makefile.PL INSTALLDIRS=vendor
-
---- rpm-4.5/Makefile.am~ 2008-04-13 03:20:07.000000000 +0300
-+++ rpm-4.5/Makefile.am 2008-04-13 03:24:33.962259478 +0300
-@@ -72,7 +72,6 @@
- -load lib/rpmlib.lcd \
- -load rpmdb/rpmdb.lcd \
- -load rpmio/rpmio.lcd \
-- -load popt/popt.lcd \
- $(DEFS) $(INCLUDES) rpmqv.c $(rpmbuild_SOURCES)
-
- .PHONY: lint
---- rpm.org/rpmio/Makefile.am.org 2004-11-18 17:42:53.756263795 +0100
-+++ rpm.org/rpmio/Makefile.am 2004-11-18 17:43:09.526885309 +0100
-@@ -82,39 +82,39 @@
-
- tdir_SOURCES = tdir.c
- tdir_LDFLAGS = @LDFLAGS_STATIC@
--tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tdir_LDADD = librpmio.la -lpopt
-
- tfts_SOURCES = tfts.c
- tfts_LDFLAGS = @LDFLAGS_STATIC@
--tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tfts_LDADD = librpmio.la -lpopt
-
- tget_SOURCES = tget.c
- tget_LDFLAGS = @LDFLAGS_STATIC@
--tget_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tget_LDADD = librpmio.la -lpopt
-
- thkp_SOURCES = thkp.c
- thkp_LDFLAGS = @LDFLAGS_STATIC@
--thkp_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+thkp_LDADD = librpmio.la -lpopt
-
- tput_SOURCES = tput.c
- tput_LDFLAGS = @LDFLAGS_STATIC@
--tput_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tput_LDADD = librpmio.la -lpopt
-
-
- tglob_SOURCES = tglob.c
- tglob_LDFLAGS = @LDFLAGS_STATIC@
--tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tglob_LDADD = librpmio.la -lpopt
-
- tinv_SOURCES = tinv.c
- tinv_LDFLAGS = @LDFLAGS_STATIC@
--tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tinv_LDADD = librpmio.la -lpopt
-
- tkey_SOURCES = tkey.c
- tkey_LDFLAGS = @LDFLAGS_STATIC@
--tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+tkey_LDADD = librpmio.la -lpopt
-
- trpmio_SOURCES = trpmio.c
--trpmio_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
-+trpmio_LDADD = librpmio.la -lpopt
-
- tsw_SOURCES = tsw.c
- tsw_LDFLAGS = librpmio.la
-
+++ /dev/null
---- rpm-4.5/rpmio/macro.c~ 2008-06-10 02:08:37.000000000 +0300
-+++ rpm-4.5/rpmio/macro.c 2008-06-10 02:08:59.476044991 +0300
-@@ -22,6 +22,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <strings.h>
- #include <ctype.h>
- #define rpmError fprintf
- #define rpmIsVerbose() (0)
-@@ -2106,6 +2107,7 @@ int isCompressed(const char * file, rpmC
- ssize_t nb;
- int rc = -1;
- unsigned char magic[13];
-+ char *end, *ext;
-
- *compressed = COMPRESSED_NOT;
-
-@@ -2131,6 +2133,11 @@ int isCompressed(const char * file, rpmC
-
- rc = 0;
-
-+ /* Tar archives will be recognized by filename. */
-+ end = strchr(file, '\0');
-+ ext = end - 4;
-+ if (ext > file && !strcasecmp(ext, ".tar")) return rc;
-+
- if (magic[0] == 'B' && magic[1] == 'Z')
- *compressed = COMPRESSED_BZIP2;
- else
+++ /dev/null
-diff -ur rpm-4.5.orig/macros.in rpm-4.5/macros.in
---- rpm-4.5.orig/macros.in 2020-04-19 16:30:03.450641000 +0200
-+++ rpm-4.5/macros.in 2020-04-29 16:30:36.671641000 +0200
-@@ -328,12 +328,6 @@
- #
- #%_javaclasspath all
-
--# Import packaging conventions from jpackage.org (prefixed with _
--# to avoid name collisions).
--#
--%_javadir %{_datadir}/java
--%_javadocdir %{_datadir}/javadoc
--
- #
- # Deprecated.
- #
-@@ -1361,44 +1355,9 @@
- #
- # Note: Used iff _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--#%__perl_provides %{_rpmhome}/perldeps.pl --provides
--#%__perl_requires %{_rpmhome}/perldeps.pl --requires
- %__perl_provides %{_rpmhome}/perl.prov
- %__perl_requires %{_rpmhome}/perl.req
-
--# Useful macros for building *.rpm perl packages.
--# (from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
--#
--# For example, these can be used as (from ImageMagick.spec from PLD site)
--# [...]
--# BuildPrereq: perl
--# [...]
--# %package perl
--# Summary: libraries and modules for access to ImageMagick from perl
--# Group: Development/Languages/Perl
--# Requires: %{name} = %{version}
--# %requires_eq perl
--# [...]
--# %install
--# rm -fr $RPM_BUILD_ROOT
--# install -d $RPM_BUILD_ROOT/%{perl_sitearch}
--# [...]
--# %files perl
--# %defattr(644,root,root,755)
--# %{perl_sitearch}/Image
--# %dir %{perl_sitearch}/auto/Image
--#
--
--%requires_eq() %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
--
--%perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
--%perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
--%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
--%perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)
--%perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
--%perl_privlib %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
--%perl_version %(eval "`%{__perl} -V:version`"; echo $version)
--
- #------------------------------------------------------------------------
- # python(...) configuration.
- #
-@@ -1408,107 +1367,11 @@
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
- %__python_provides %{_rpmhome}/pythoneggs.py --provides
- %__python_requires %{_rpmhome}/pythoneggs.py --requires
--#
--%python_sitearch %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(1); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
--%python_sitelib %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
--%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
--
--# python main version
--%py_ver %(%{__python} -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
--%py_prefix %(%{__python} -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
--%py_platlibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
--%py_purelibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
--# backward compatibility
--%py_libdir %py_purelibdir
--
--%py_platsitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
--%py_puresitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
--%py_sitedir %py_puresitedir
--
--%py_dyndir %{py_platlibdir}/lib-dynload
--
--%py_incdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()' 2>/dev/null || echo PYTHON-INCLUDEDIR-NOT-FOUND)
--
--%py_compile(O) \
--find %1 -name '*.pyc' -exec rm -f {} \\; \
--%{__python} -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
--%{-O: \
--find %1 -name '*.pyo' -exec rm -f {} \\; \
--%{__python} -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
--}
--
--# pure python modules compilation
--%py_comp %{__python} -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
--
--%py_ocomp %{__python} -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
--
--%py_requires(d) \
--BuildRequires: %{__python} %{-d:python-devel}
--
--#------------------------------------------------------------------------
--# php(...) configuration.
--#
--# Path to scripts to autogenerate php package dependencies,
--#
--# Note: Used iff _use_internal_dependency_generator is non-zero. The
--# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--#%__php_provides %{_rpmhome}/phpdeps.sh --provides
--#%__php_requires %{_rpmhome}/phpdeps.sh --requires
--#%__php_provides %{_rpmhome}/php.prov
--#%__php_requires %{_rpmhome}/php.req
-
- %__mono_provides %{nil}
- %__mono_requires %{nil}
-
- #------------------------------------------------------------------------
--# java(...) configuration.
--#
--# Path to scripts to autogenerate java package dependencies,
--#
--# Note: Used iff _use_internal_dependency_generator is non-zero. The
--# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--#%__java_provides %{_rpmhome}/javadeps.sh --provides
--#%__java_requires %{_rpmhome}/javadeps.sh --requires
--
--#------------------------------------------------------------------------
--# ruby(...) configuration.
--#
--# Path to scripts to autogenerate ruby package dependencies,
--
--# Note: Used if _use_internal_dependency_generator is non-zero. The
--# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--%__ruby_provides %{_rpmhome}/rubygems.rb --provides
--%__ruby_requires %{_rpmhome}/rubygems.rb --requires
--
--%ruby_version %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["ruby_version"]')
--
--%ruby_archdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["archdir"]')
--%ruby_libdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"]')
--%ruby_sitedir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitedir"]')
--%ruby_sitearchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')
--%ruby_sitelibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')
--%ruby_vendordir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendordir"]')
--%ruby_vendorarchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorarchdir"]')
--%ruby_vendorlibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorlibdir"]')
--%ruby_gemdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"].sub(RbConfig::CONFIG["ruby_version"], "gems/#{RbConfig::CONFIG["ruby_version"]}")')
--%ruby_ridir %(%{__ruby} -rrbconfig -e 'print File.join(RbConfig::CONFIG["datadir"], "ri", RbConfig::CONFIG["ruby_version"])')
--
--%__gem_helper %{_usrlibrpm}/gem_helper.rb
--
--%gem_build(f:j:) \
-- %__gem_helper build \\\
-- %{-f:-f%{-f*}} \\\
-- %{!-j:%{_smp_mflags}}%{-j:-j%{-j*}}
--
--%gem_install(i:n:C) \
-- DESTDIR=${DESTDIR:-%{buildroot}} \\\
-- %__gem_helper install \\\
-- --env-shebang --rdoc --ri --force --ignore-dependencies \\\
-- %{!-i:--install-dir %{buildroot}%{ruby_gemdir}}%{-i:--install-dir %{-i*}} \\\
-- %{!-n:--bindir %{buildroot}%{_bindir}}%{-n:--bindir%{-n*}} \\\
-- %{!-C:--fix-permissions}
--
--#------------------------------------------------------------------------
- # libtool(...) configuration.
- #
- # Path to scripts to autogenerate libtool package dependencies,
-@@ -1588,15 +1451,7 @@
- %__common_cflags -O2 -fwrapv -pipe %{Werror_cflags} %{debuginfocflags} %{?_fortify_cflags} %{!?nospecflags:%{?specflags}}
- %__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
-
--#------------------------------------------------------------------------
--# mimetype(...) configuration.
--#
--# Path to script to autogenerate mimetype(foo) provides, based on MimeType
--# key from desktop files.
--#
--# Note: Used if _use_internal_dependency_generator is non-zero. The
--# helper is also used by %{_rpmhome}/rpmdeps --provides
--%__mimetype_provides %{_rpmhome}/mimetypedeps.sh --provides
-+%requires_eq() %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
-
- %__gstreamer_provides %{nil}
-
-diff -ur rpm-4.5.orig/scripts/Makefile.am rpm-4.5/scripts/Makefile.am
---- rpm-4.5.orig/scripts/Makefile.am 2020-04-19 16:30:03.450641000 +0200
-+++ rpm-4.5/scripts/Makefile.am 2020-04-29 15:41:49.787641000 +0200
-@@ -11,11 +11,9 @@
- cpanflute cpanflute2 Specfile.pm find-provides.perl \
- find-requires.perl freshen.sh gendiff getpo.sh http.req \
- check-java-closure.sh java.prov.sh java.req.sh \
-- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-+ libtooldeps.sh pkgconfigdeps.sh \
- perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-- mimetypedeps.sh \
-- php.prov php.req rpm2cpio \
-- rpmdb_loadcvt rpmdiff rpmdiff.cgi \
-+ rpm2cpio rpmdb_loadcvt rpmdiff rpmdiff.cgi \
- rpm.daily rpm.log rpm.xinetd \
- sql.prov sql.req symclash.py symclash.sh tcl.req tgpg trpm u_pkg.sh \
- vpkg-provides.sh vpkg-provides2.sh \
-@@ -39,10 +37,8 @@
- find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
- find-provides.perl \
- find-requires.perl getpo.sh http.req \
-- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-+ libtooldeps.sh pkgconfigdeps.sh \
- perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-- mimetypedeps.sh \
-- php.prov php.req \
- rpmdb_loadcvt \
- rpm.daily rpm.log rpm.xinetd \
- symclash.py symclash.sh tgpg u_pkg.sh \
-diff -ur rpm-4.5.orig/scripts/Makefile.in rpm-4.5/scripts/Makefile.in
---- rpm-4.5.orig/scripts/Makefile.in 2008-07-09 11:41:32.000000000 +0200
-+++ rpm-4.5/scripts/Makefile.in 2020-04-29 15:41:01.972641000 +0200
-@@ -339,9 +339,9 @@
- cpanflute cpanflute2 Specfile.pm find-provides.perl \
- find-requires.perl freshen.sh gendiff getpo.sh http.req \
- check-java-closure.sh java.prov.sh java.req.sh \
-- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-- php.prov php.req rpm2cpio \
-+ libtooldeps.sh pkgconfigdeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh \
-+ rpm2cpio \
- rpmdb_loadcvt rpmdiff rpmdiff.cgi \
- rpm.daily rpm.log rpm.xinetd \
- sql.prov sql.req symclash.py symclash.sh tcl.req tgpg trpm u_pkg.sh \
-@@ -360,9 +360,8 @@
- find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
- find-provides.perl \
- find-requires.perl getpo.sh http.req \
-- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-- php.prov php.req \
-+ libtooldeps.sh pkgconfigdeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh \
- rpmdb_loadcvt \
- rpm.daily rpm.log rpm.xinetd \
- symclash.py symclash.sh tgpg u_pkg.sh \
+++ /dev/null
-diff -ur rpm-4.5.orig/lib/formats.c rpm-4.5/lib/formats.c
---- rpm-4.5.orig/lib/formats.c 2008-06-10 01:19:16.000000000 +0200
-+++ rpm-4.5/lib/formats.c 2019-01-24 21:42:07.736000000 +0100
-@@ -900,7 +900,7 @@
- char * val;
-
- assert(ix == 0);
-- if (he->t != RPM_INT64_TYPE) {
-+ if (he->t != RPM_INT32_TYPE) {
- val = xstrdup(_("(invalid type)"));
- } else {
- int anint = data.i64p[ix];
+++ /dev/null
-# vim:ts=8:sw=4
---- rpm-4.4.6/build/parseChangelog.c~ 2006-04-30 17:34:40.334393487 +0300
-+++ rpm-4.4.6/build/parseChangelog.c 2006-05-02 19:46:06.357193264 +0300
-@@ -8,6 +8,9 @@
- #include "rpmbuild.h"
- #include "debug.h"
-
-+#define CVS_RCSID "$""Log: "
-+#define CVS_REVISION "Revision "
-+
- void addChangelogEntry(Header h, time_t time, const char *name, const char *text)
- {
- int_32 mytime = time; /* XXX convert to header representation */
-@@ -123,6 +123,7 @@
- int nentries = 0;
- static time_t last = 0;
- static int oneshot = 0;
-+ int numchangelog = rpmExpandNumeric("%{?_buildchangelogtruncate}");
-
- /* Determine changelog truncation criteria. */
- if (!oneshot++) {
-@@ -222,6 +223,42 @@
- /* backup to end of description */
- while ((s > text) && xisspace(*s))
- *s-- = '\0';
-+
-+ if (numchangelog && (s = strstr(text, CVS_RCSID))) {
-+ /* find end of line */
-+ while(*s && *s != '\n') s++;
-+ if (!*s) {
-+ goto out;
-+ }
-+ s++;
-+ if (!*s) {
-+ goto out;
-+ }
-+
-+ /* we reached place where first Revisions should be */
-+ i = 0;
-+ while (1) {
-+ if (strncmp(s, CVS_REVISION, sizeof(CVS_REVISION) - 1) == 0) {
-+ if (i++ == numchangelog) {
-+ break;
-+ }
-+ }
-+ while(*s && *s != '\n') s++;
-+ if (!*s) {
-+ break;
-+ }
-+ s++;
-+ }
-+
-+ if (*s) {
-+ s--;
-+ /* backup to the beginning of line */
-+ while ((s > text) && (*s == '\n' || xisspace(*s))) {
-+ *s-- = '\0';
-+ }
-+ }
-+ }
-+out:
-
- /* Add entry if not truncated. */
- nentries++;
+++ /dev/null
---- rpm-4.5/rpmio/macro.c 2009-08-08 15:47:20.495455961 +0200
-+++ rpm-4.5/rpmio/macro.c 2012-11-08 06:37:45.082618600 +0200
-@@ -807,6 +807,42 @@
- return se;
- }
-
-+void delMacroAll(MacroContext mc, const char * n);
-+/**
-+ * Parse (and execute) macro undefinition.
-+ * @param mc macro context
-+ * @param se macro name to undefine
-+ * @return address to continue parsing
-+ */
-+/*@dependent@*/ static const char *
-+doUnglobal(MacroContext mc, /*@returned@*/ const char * se)
-+ /*@globals rpmGlobalMacroContext @*/
-+ /*@modifies mc, rpmGlobalMacroContext @*/
-+{
-+ const char *s = se;
-+ char *buf = alloca(_macro_BUFSIZ);
-+ char *n = buf, *ne = n;
-+ int c;
-+
-+ COPYNAME(ne, s, c);
-+
-+ /* Move scan over body */
-+ while (iseol(*s))
-+ s++;
-+ se = s;
-+
-+ /* Names must start with alphabetic or _ and be at least 3 chars */
-+ if (!((c = *n) && (xisalpha(c) || c == '_') && (ne - n) > 2)) {
-+ rpmError(RPMERR_BADSPEC,
-+ _("Macro %%%s has illegal name (%%unglobal)\n"), n);
-+ return se;
-+ }
-+
-+ delMacroAll(mc, n);
-+
-+ return se;
-+}
-+
- #ifdef DYING
- static void
- dumpME(const char * msg, MacroEntry me)
-@@ -1430,6 +1466,10 @@
- s = doUndefine(mb->mc, se);
- continue;
- }
-+ if (STREQ("unglobal", f, fn)) {
-+ s = doUnglobal(mb->mc, se);
-+ continue;
-+ }
-
- if (STREQ("echo", f, fn) ||
- STREQ("warn", f, fn) ||
-@@ -1984,6 +2024,18 @@
- }
- }
-
-+void
-+delMacroAll(MacroContext mc, const char * n)
-+{
-+ MacroEntry * mep;
-+
-+ if (mc == NULL) mc = rpmGlobalMacroContext;
-+ /* If name exists, pop entry */
-+ while ((mep = findEntry(mc, n, 0)) != NULL) {
-+ delMacro(mc, n);
-+ }
-+}
-+
- /*@-mustmod@*/ /* LCL: mc is modified through mb->mc, mb is abstract */
- int
- rpmDefineMacro(MacroContext mc, const char * macro, int level)
+++ /dev/null
---- a/lib/rpmds.c 10 Jun 2007 17:12:25 -0000 2.55.2.4
-+++ b/lib/rpmds.c 6 Oct 2007 01:09:19 -0000
-@@ -253,6 +255,7 @@
- const char ** N;
- rpmTagType Nt;
- int_32 Count;
-+int rpmv3 = headerIsEntry(h, RPMTAG_OLDFILENAMES);
-
- assert(scareMem == 0); /* XXX always allocate memory */
- if (tagN == RPMTAG_PROVIDENAME) {
-@@ -280,12 +283,12 @@
- tagEVR = RPMTAG_TRIGGERVERSION;
- tagF = RPMTAG_TRIGGERFLAGS;
- } else
-- if (tagN == RPMTAG_DIRNAMES) {
-+ if (!rpmv3 && tagN == RPMTAG_DIRNAMES) {
- Type = "Dirnames";
- tagEVR = 0;
- tagF = 0;
- } else
-- if (tagN == RPMTAG_FILELINKTOS) {
-+ if (!rpmv3 && tagN == RPMTAG_FILELINKTOS) {
- Type = "Filelinktos";
- tagEVR = RPMTAG_DIRNAMES;
- tagF = RPMTAG_DIRINDEXES;
+++ /dev/null
-diff -ur rpm-4.5.orig/build/parsePrep.c rpm-4.5/build/parsePrep.c
---- rpm-4.5.orig/build/parsePrep.c 2014-07-29 17:12:39.000000000 +0000
-+++ rpm-4.5/build/parsePrep.c 2014-07-29 17:14:38.749000000 +0000
-@@ -148,6 +148,9 @@
- case COMPRESSED_LZMA:
- zipper = "%{__lzma}";
- break;
-+ case COMPRESSED_XZ:
-+ zipper = "%{__xz}";
-+ break;
- }
- zipper = rpmGetPath(zipper, NULL);
-
-@@ -251,6 +254,9 @@
- case COMPRESSED_LZMA:
- t = "%{__lzma} -dc";
- break;
-+ case COMPRESSED_XZ:
-+ t = "%{__xz} -dc";
-+ break;
- case COMPRESSED_ZIP:
- if (rpmIsVerbose() && !quietly)
- t = "%{__unzip}";
-diff -ur rpm-4.5.orig/rpmio/macro.c rpm-4.5/rpmio/macro.c
---- rpm-4.5.orig/rpmio/macro.c 2014-07-29 17:12:39.000000000 +0000
-+++ rpm-4.5/rpmio/macro.c 2014-07-29 17:13:17.613000000 +0000
-@@ -1241,10 +1241,13 @@
- sprintf(be, "%%__unzip -qq %s", b);
- break;
- case 4: /* COMPRESSED_LZOP */
-- sprintf(be, "%%__lzop %s", b);
-+ sprintf(be, "%%__lzop -dc %s", b);
- break;
- case 5: /* COMPRESSED_LZMA */
-- sprintf(be, "%%__lzma %s", b);
-+ sprintf(be, "%%__lzma -dc %s", b);
-+ break;
-+ case 6: /* COMPRESSED_XZ */
-+ sprintf(be, "%%__xz -dc %s", b);
- break;
- }
- b = be;
-@@ -2257,6 +2260,13 @@
- magic[11] == 0x00 && magic[12] == 0x00) /* lzmash */
- *compressed = COMPRESSED_LZMA;
- else
-+ if (magic[0] == 0135 && magic[1] == 0 && magic[2] == 0) /* lzma */
-+ *compressed = COMPRESSED_LZMA;
-+ else
-+ if (magic[0] == 0xFD && magic[1] == 0x37 && magic[2] == 0x7A
-+ && magic[3] == 0x58 && magic[4] == 0x5A && magic[5] == 0x00) /* xz */
-+ *compressed = COMPRESSED_XZ;
-+ else
- if ((magic[0] == 0037 && magic[1] == 0213) /* gzip */
- || (magic[0] == 0037 && magic[1] == 0236) /* old gzip */
- || (magic[0] == 0037 && magic[1] == 0036) /* pack */
-diff -ur rpm-4.5.orig/rpmio/rpmmacro.h rpm-4.5/rpmio/rpmmacro.h
---- rpm-4.5.orig/rpmio/rpmmacro.h 2014-07-29 17:12:39.000000000 +0000
-+++ rpm-4.5/rpmio/rpmmacro.h 2014-07-29 17:13:17.613000000 +0000
-@@ -170,7 +170,8 @@
- COMPRESSED_BZIP2 = 2, /*!< bzip2 can handle */
- COMPRESSED_ZIP = 3, /*!< unzip can handle */
- COMPRESSED_LZOP = 4, /*!< lzop can handle */
-- COMPRESSED_LZMA = 5 /*!< lzma can handle */
-+ COMPRESSED_LZMA = 5, /*!< lzma can handle */
-+ COMPRESSED_XZ = 6 /*!< xz can handle */
- } rpmCompressedMagic;
-
- /**
--- /dev/null
+# global list of script capabilities (regexps) not to be used in Provides
--- /dev/null
+# global list of files (regexps) which don't generate Provides
--- /dev/null
+# global list of script capabilities (regexps) not to be used in Requires
--- /dev/null
+# global list of files (regexps) which don't generate Requires
+^/usr/src/examples/
+^/usr/share/doc/
+++ /dev/null
-# TLD rpm macros
-
-%__id /bin/id
-%__id_u %{__id} -u
-%__chown_Rhf %{__chown} -Rhf
-%__chgrp_Rhf %{__chgrp} -Rhf
-
-%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root:root
-%_fixgroup true
-%_fixperms %{__chmod} -Rf -Rf a+rX,u+w,g-w,o-w
-
-%_exec_prefix %{_prefix}
-%_bindir %{_exec_prefix}/bin
-%_sbindir %{_exec_prefix}/sbin
-%_datadir %{_prefix}/share
-%_sharedstatedir /var/lib
-%_lib @LIB@
-%_libdir %{_exec_prefix}/%{_lib}
-%_libexecdir %{_exec_prefix}/%{_lib}
-%_includedir %{_prefix}/include
-%_oldincludedir /usr/include
-%_sysconfdir /etc
-%_localstatedir /var
-%_infodir /usr/share/info
-%_mandir %{_prefix}/share/man
-%_defaultdocdir /usr/share/doc
-
-%__os_install_post \
-%{__spec_install_post_strip}\
-%{__spec_install_post_chrpath}\
-%{__spec_install_post_check_so}\
-%{__spec_install_post_check_tmpfiles}\
-%{__spec_install_post_compress_docs}\
-%{__spec_install_post_compress_modules}\
-%{__spec_install_post_py_hardlink}\
-%{__spec_install_post_perl_clean}\
-%{__arch_install_post}\
-%{nil}
-
+#
+# TODO:
+# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
+#
# Conditional build:
-%bcond_with static # build static rpm+rpmi
-%bcond_with apidocs # don't generate documentation with doxygen
-%bcond_with internal_db # internal db (db 4.5.20)
-%bcond_with autoreqdep # autogenerate package name deps in addition to sonames/perl(X)
-%bcond_without nptl # internal db: don't use process-shared POSIX mutexes (NPTL provides full interface)
-%bcond_without python # don't build python bindings
-%bcond_without selinux # build without selinux support
-%bcond_without system_libmagic # don't use system libmagic
-%bcond_without suggest_tags # build without Suggest tag (bootstrapping)
-%bcond_with neon # build with HTTP/WebDAV support (neon library). NOTE: neon libs are in /usr!
-
-# versions of required libraries
-%define reqdb_pkg db4.7
-%define reqdb_ver 4.7.25
-%define reqpopt_ver 1.10.8
-%define beecrypt_ver 2:4.1.2-4
-%define sover 4.5
+%bcond_without apidocs # don't generate documentation with doxygen
+%bcond_without python3 # don't build python bindings
+%bcond_without plugins # build plugins
+%bcond_with recommends_tags # build without Recommends tag (bootstrapping)
+%bcond_with imaevm # build with IMA/EVM support (requires libimaevm from ima-evm-utils)
+
+%define db_ver 5.3.28.0
+%define popt_ver 1.15
+%define sover 9.1.0
+
+%if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
+%define with_recommends_tags 1
+%endif
Summary: RPM Package Manager
Summary(de.UTF-8): RPM Packet-Manager
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 4.5
-Release: 90
-License: LGPL
+Version: 4.16.0
+Release: 0.4
+Epoch: 1
+License: GPL v2 / LGPL v2.1
Group: Base
-Source0: %{name}-%{version}.tar.gz
-# Source0-md5: 4e69ab971f682c87625dc0f65d9e16bc
-Source1: %{name}.groups
-Source2: %{name}.platform
-Source3: %{name}-install-tree
-Source5: %{name}-hrmib-cache
+Source0: http://ftp.rpm.org/releases/rpm-4.16.x/%{name}-%{version}.tar.bz2
+# Source0-md5: 434e166a812e35ef181f6dd176326920
+Source2: macros.local
+Source3: macros.lang
+Source4: %{name}.sysconfig
+Source5: %{name}.groups
Source6: %{name}-groups-po.awk
-Source12: %{name}.sysinfo
-Source13: perl.prov
-Source14: %{name}-user_group.sh
-Source15: %{name}.sysconfig
+Source7: %{name}-install-tree
+Source8: %{name}-hrmib-cache
+Source9: %{name}-user_group.sh
# http://svn.pld-linux.org/banner.sh/
-Source18: banner.sh
-Source19: %{name}-macros.gstreamer
-Patch1000: %{name}-new-debuginfo.patch
-Patch1: %{name}-rpmrc.patch
-Patch2: %{name}-arch.patch
-Patch3: %{name}-rpmpopt.patch
-Patch4: %{name}-perl-macros.patch
-Patch6: %{name}-noexpand.patch
-Patch7: %{name}-scripts-closefds.patch
-Patch8: %{name}-db.patch
-Patch9: %{name}-gettext-in-header.patch
-Patch10: %{name}-compress-doc.patch
-Patch11: %{name}-rpm5-patchset-8074.patch
-Patch12: %{name}-system_libs.patch
-Patch13: %{name}-unglobal.patch
-Patch14: %{name}-etc_dir.patch
-Patch15: %{name}-system_libs-more.patch
-Patch16: %{name}-libmagic-locale.patch
-Patch17: %{name}-ldconfig-always.patch
-Patch20: %{name}-macros-ti.patch
-Patch21: %{name}-perl_req-skip_multiline.patch
-Patch22: %{name}-provides-dont-obsolete.patch
-Patch23: %{name}-pkgconfigdeps.patch
-Patch24: %{name}-po.patch
-Patch25: %{name}-link.patch
-Patch26: %{name}-notsc.patch
-Patch27: %{name}-hack-norpmlibdep.patch
-Patch28: %{name}-makefile-no_myLDADD_deps.patch
-Patch29: %{name}-perl_req-use_base.patch
-Patch31: %{name}-missing-prototypes.patch
-Patch32: %{name}-pld-autodep.patch
-Patch33: %{name}-arch-x86_64.patch
-Patch34: %{name}-epoch0.patch
-Patch35: %{name}-disable-features-ti.patch
-Patch36: %{name}-debuginfo.patch
-Patch37: %{name}-doxygen_hack.patch
-Patch39: %{name}-popt-coreutils.patch
-Patch40: %{name}-helperEVR-noassert.patch
-Patch42: %{name}-old-fileconflicts-behaviour.patch
-Patch43: %{name}-rpm5-patchset-8637.patch
-Patch44: %{name}-no-neon.patch
-Patch45: %{name}-no-sqlite.patch
-Patch48: %{name}-nopie.patch
-Patch50: %{name}-macros.patch
-Patch51: %{name}-cleanlibdirs.patch
-Patch53: %{name}-chroot-hack.patch
-Patch55: %{name}-truncate-cvslog.patch
-Patch56: %{name}-rpm5-patchset-8413.patch
-Patch57: %{name}-as_needed-fix.patch
-Patch58: %{name}-repackage-wo-lzma.patch
-Patch59: %{name}-libtool-deps.patch
-Patch61: %{name}-lzma-mem.patch
-Patch62: %{name}-lzma-size_t.patch
-Patch63: %{name}-tar_as_secondary_source.patch
-Patch64: %{name}-man_pl.patch
-Patch65: %{name}-lzma-tukaani.patch
-Patch66: %{name}-v3-support.patch
-Patch67: %{name}-cleanbody.patch
-Patch69: %{name}-popt-aliases.patch
-# reverse arrows patch
-Patch70: %{name}-rpm5-patchset-10061.patch
-Patch71: %{name}-installbeforeerase.patch
-Patch72: %{name}-postun-nofail.patch
-Patch73: %{name}-namespace-probe.patch
-Patch74: %{name}-noversiondir.patch
-Patch75: %{name}-rpmte-segv.patch
-Patch77: %{name}-dirdeps-macro.patch
-Patch78: %{name}-db3-configure.patch
-Patch79: %{name}-macros-cpp.patch
-Patch80: %{name}-link-selinux.patch
-Patch81: %{name}-db-configure.patch
-Patch82: %{name}-perl-makefile.patch
-Patch83: %{name}-nosmpflags.patch
-Patch84: %{name}-hirmib-ts.patch
-Patch85: %{name}-perl_req-heredocs_pod.patch
-Patch86: %{name}-rpmv3-support.patch
-Patch87: %{name}-mono.patch
-Patch88: %{name}-poptexecpath.patch
-Patch89: %{name}-lzma-compress-level.patch
-Patch90: %{name}-gstreamer.patch
-Patch91: %{name}-gendiff.patch
-Patch92: %{name}-set-failed-on-reopen.patch
-Patch93: %{name}-debugedit-workaround.patch
-Patch94: %{name}-shescape-memfault.patch
-Patch95: %{name}-gid-uucp.patch
-Patch96: %{name}-disable-hkp.patch
-Patch97: %{name}-sigpad.patch
-Patch98: %{name}-debugdir.patch
-Patch99: %{name}-pkgconfig.patch
-Patch100: %{name}-rpm5-debugedit.patch
-Patch101: %{name}-builddir-readlink.patch
-Patch102: pythondeps-speedup.patch
-Patch103: %{name}-lua-exit-chroot-correctly.patch
-Patch104: %{name}-glob.patch
-Patch105: %{name}-am.patch
-Patch106: %{name}-automake_1.12.patch
-Patch107: %{name}-debugedit-dwarf4.patch
-Patch108: %{name}-changelog_order_check_nonfatal.patch
-Patch109: %{name}-installplatform.patch
-Patch110: %{name}-xz.patch
-Patch111: %{name}-shrink.patch
-Patch112: notrans.patch
-Patch113: %{name}-rubyprov.patch
-Patch114: %{name}-ruby-gem-build.patch
-Patch115: %{name}-glibc.patch
-Patch116: %{name}-trigger-flags-int-type.patch
-Patch117: %{name}-rpm2cpio-xz.patch
-Patch118: %{name}-noarch-subpackages.patch
-Patch119: %{name}-div0.patch
-Patch120: %{name}-pythondeps.patch
-Patch121: %{name}-tld-macros.patch
-URL: http://rpm5.org/
-BuildRequires: autoconf >= 2.57
+Source10: banner.sh
+Source11: %{name}.noautoprov
+Source12: %{name}.noautoprovfiles
+Source13: %{name}.noautoreq
+Source14: %{name}.noautoreqfiles
+Source15: perl.prov
+Source16: %{name}db_checkversion.c
+Source17: %{name}db_reset.c
+Source18: dbupgrade.sh
+Patch0: %{name}-man_pl.patch
+Patch1: %{name}-popt-aliases.patch
+Patch2: %{name}-perl-macros.patch
+Patch3: %{name}-perl-req-perlfile.patch
+Patch4: %{name}-scripts-closefds.patch
+Patch6: %{name}-perl_req-INC_dirs.patch
+Patch7: %{name}-debuginfo.patch
+Patch8: %{name}-libtool-deps.patch
+Patch9: %{name}-builddir-readlink.patch
+Patch10: %{name}-changelog_order_check_nonfatal.patch
+Patch11: %{name}-postun-nofail.patch
+Patch12: %{name}-clean-docdir.patch
+Patch13: %{name}-perl-magic.patch
+Patch14: %{name}-ignore-missing-macro-files.patch
+Patch15: x32.patch
+Patch16: rpm5-db-compat.patch
+Patch17: python-internal-build.patch
+Patch18: rpmversion.patch
+Patch19: pkgconfig.patch
+Patch20: uname-deps.patch
+Patch21: aarch64.patch
+Patch22: ix86-platforms.patch
+URL: https://rpm.org/
+BuildRequires: acl-devel
+BuildRequires: db-devel >= %{db_ver}
+BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1.4
-BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: bzip2-devel >= 1.0.2-17
-%{!?with_internal_db:BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
BuildRequires: elfutils-devel >= 0.108
-BuildRequires: gettext-devel >= 0.11.4-2
-BuildRequires: keyutils-devel
-%{?with_system_libmagic:BuildRequires: libmagic-devel}
-%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
+BuildRequires: gettext-tools >= 0.19.2
+BuildRequires: libarchive-devel
+BuildRequires: libcap-devel
+BuildRequires: libmagic-devel
+BuildRequires: libgcrypt-devel
+%if %{with plugins}
+BuildRequires: audit-libs-devel
+BuildRequires: dbus-devel
+%{?with_imaevm:BuildRequires: libimaevm-devel >= 1.0}
+BuildRequires: libselinux-devel >= 2.1.0
+%endif
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1:1.4.2-9
-%if %{with neon}
-BuildRequires: libxml2-devel
-BuildRequires: neon-devel >= 0.25.5
-%endif
-BuildRequires: ossp-uuid-devel >= 1.6.2-8
+BuildRequires: ossp-uuid-devel
BuildRequires: patch >= 2.2
-BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires: python-devel >= 1:2.3}
-BuildRequires: python-modules >= 1:2.3
-BuildRequires: rpm-perlprov
-%{?with_python:BuildRequires: rpm-pythonprov}
-BuildRequires: rpmbuild(macros) >= 1.351
-BuildRequires: tar >= 1:1.15.1
-BuildRequires: zlib-devel >= 1.2.3.3
+BuildRequires: pkgconfig(lua) >= 5.1
+BuildRequires: popt-devel >= %{popt_ver}
+BuildRequires: python3-modules
+%if %{with python3}
+BuildRequires: python3-devel
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.750
+%endif
+BuildRequires: sqlite3-devel >= 3.22.0
+BuildRequires: tcl
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+BuildRequires: zstd-devel
%if %{with apidocs}
BuildRequires: doxygen
BuildRequires: ghostscript
BuildRequires: graphviz
BuildRequires: tetex-pdftex
%endif
-%if %{with static}
-# Require static library only for static build
-BuildRequires: beecrypt-static >= %{beecrypt_ver}
-BuildRequires: bzip2-static >= 1.0.2-17
-%{!?with_internal_db:BuildRequires: %{reqdb_pkg}-static >= %{reqdb_ver}}
-BuildRequires: elfutils-static
-BuildRequires: glibc-static >= 2.2.94
-%{?with_system_libmagic:BuildRequires: libmagic-static}
-%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
-BuildRequires: ossp-uuid-static >= 1.6.2-8
-BuildRequires: popt-static >= %{reqpopt_ver}
-BuildRequires: zlib-static >= 1.2.3.3
-%endif
-Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-lib = %{version}-%{release}
-Requires: beecrypt >= %{beecrypt_ver}
-Requires: popt >= %{reqpopt_ver}
-Provides: rpm-db-ver = %{reqdb_ver}
-Obsoletes: rpm-getdeps
-%{!?with_static:Obsoletes: rpm-utils-static}
-Obsoletes: tmpwatch-rpmrepackage
+Requires(posttrans): coreutils
+Requires: %{name}-base = %{epoch}:%{version}-%{release}
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: rpm-tld-macros >= 1.744
+Requires: FHS >= 3.0-2
+Requires: libgcrypt
+Requires: popt >= %{popt_ver}
+#%if %{with recommends_tags}
+#Recommends: rpm-plugin-audit
+#Recommends: rpm-plugin-prioreset
+#Recommends: rpm-plugin-syslog
+#Recommends: rpm-plugin-systemd-inhibit
+#%endif
+Obsoletes: rpm-utils-perl
+Obsoletes: rpm-utils-static
Conflicts: glibc < 2.2.92
-Conflicts: poldek < 0.21-0.20070703.00.11
+# db4.6 poldek needed
+Conflicts: poldek < 0.21-0.20070703.00.3
+# segfaults with lzma 0.42.2
+Conflicts: lzma-libs < 4.999.3
+Conflicts: util-vserver < 0.30.216-1.pre3034.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _binary_payload w9.gzdio
-%define _noPayloadPrefix 1
# don't require very fresh rpm.macros to build
-%define __gettextize gettextize --copy --force --no-changelog; [ -f po/Makevars ] || cp -f po/Makevars{.template,}
%define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
-%define ix86 i386 i486 i586 i686
-%define x8664 amd64 x86_64
-
-# stabilize new build environment
-%define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-tld-linux-gcc}
-%define __newcxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-tld-linux-g++}
-%define __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-tld-linux-gcc -E}
+%define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
+%define ppc ppc ppc7400 ppc7450
+%define x8664 amd64 ia32e x86_64
%define _rpmlibdir /usr/lib/rpm
-%define specflags -fno-strict-aliasing
-
%description
RPM is a powerful package manager, which can be used to build,
install, query, verify, update, and uninstall individual software
Group: Base
Requires: filesystem
Obsoletes: rpm-scripts
+Obsoletes: vserver-rpm
%description base
The RPM base package contains scripts used by rpm packages themselves.
Summary: RPMs library
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
-Requires: beecrypt >= %{beecrypt_ver}
-%{!?with_internal_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
-%{?with_system_libmagic:Requires: libmagic >= 1.15-2}
-%{?with_selinux:Requires: libselinux >= 1.18}
-Requires: ossp-uuid >= 1.6.2-4
-Requires: popt >= %{reqpopt_ver}
-%{?with_internal_db:%{?with_nptl:Requires: uname(release) >= 2.6.0}}
-Requires: zlib >= 1.2.3.3
-%{?with_suggest_tags:Suggests: xz}
+Requires: db >= %{db_ver}
+Requires: libmagic >= 1.15-2
+Requires: popt >= %{popt_ver}
Obsoletes: rpm-libs
-# avoid installing with incompatible (non-tukaani) lzma
-# avoid incompatible (-M0 not supported) lzma
-Conflicts: lzma < 1:4.999.5-0.alpha.2
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
Group: Development/Libraries
-Requires: %{name}-lib = %{version}-%{release}
-Requires: beecrypt-devel >= %{beecrypt_ver}
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
Requires: bzip2-devel
-%{!?with_internal_db:Requires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
+Requires: db-devel >= %{db_ver}
Requires: elfutils-devel
-Requires: keyutils-devel
-%{?with_system_libmagic:Requires: libmagic-devel}
-%{?with_selinux:Requires: libselinux-devel}
-Requires: ossp-uuid-devel >= 1.6.2-6
-Requires: popt-devel >= %{reqpopt_ver}
-Requires: zlib-devel >= 1.2.3.3
+Requires: libmagic-devel
+Requires: libgcrypt-devel
+%if %{with selinux}
+Requires: libselinux-devel
+Requires: libsemanage-devel
+Requires: libsepol-devel
+%endif
+Requires: popt-devel >= %{popt_ver}
+Requires: zlib-devel
%description devel
The RPM packaging system includes C libraries that make it easy to
призначена для полегшення створення графічних пакетних менеджерів та
інших утиліт, що працюють з пакетами RPM.
-%package static
-Summary: RPM static libraries
-Summary(de.UTF-8): RPMs statische Libraries
-Summary(pl.UTF-8): Biblioteki statyczne RPM-a
-Summary(pt_BR.UTF-8): Bibliotecas estáticas para o desenvolvimento de aplicações RPM
-Summary(ru.UTF-8): Статическая библиотека для программ, работающих с rpm-пакетами
-Summary(uk.UTF-8): Статична бібліотека для програм, що працюють з пакетами rpm
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-Requires: beecrypt-static >= %{beecrypt_ver}
-Requires: bzip2-static
-%{!?with_internal_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
-Requires: elfutils-static
-Requires: keyutils-static
-%{?with_system_libmagic:Requires: libmagic-static}
-Requires: popt-static >= %{reqpopt_ver}
-Requires: zlib-static >= 1.2.3.3
-
-%description static
-RPM static libraries.
-
-%description static -l de.UTF-8
-RPMs statische Libraries.
-
-%description static -l pl.UTF-8
-Biblioteki statyczne RPM-a.
-
-%description static -l pt_BR.UTF-8
-Bibliotecas estáticas para desenvolvimento.
-
-%description static -l ru.UTF-8
-Система управления пакетами RPM содержит библиотеку C, которая
-упрощает манипуляцию пакетами RPM и соответствующими базами данных.
-Это статическая библиотека RPM.
-
-%description static -l uk.UTF-8
-Система керування пакетами RPM містить бібліотеку C, котра спрощує
-роботу з пакетами RPM та відповідними базами даних. Це статична
-бібліотека RPM.
-
%package utils
Summary: Additional utilities for managing RPM packages and database
Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
Group: Applications/File
-Requires: %{name} = %{version}-%{release}
-Requires: popt >= %{reqpopt_ver}
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: popt >= %{popt_ver}
+#%if %{with recommends_tags}
+#Recommends: bzip2
+#Recommends: gzip
+#%endif
Conflicts: filesystem-debuginfo < 3.0-16
%description utils
%description utils -l pl.UTF-8
Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
-%package utils-perl
-Summary: Additional utilities for managing RPM packages and database
-Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
-Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
-Group: Applications/File
-Requires: %{name}-utils = %{version}-%{release}
-Requires: popt >= %{reqpopt_ver}
-
-%description utils-perl
-Additional utilities for managing RPM packages and database.
-
-%description utils-perl -l de.UTF-8
-Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
-
-%description utils-perl -l pl.UTF-8
-Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
-
-%package utils-static
-Summary: Static rpm utilities
-Summary(pl.UTF-8): Statyczne narzędzia rpm
-Group: Applications/System
-Requires: %{name} = %{version}-%{release}
-
-%description utils-static
-Static rpm utilities for repairing system in case something with
-shared libraries used by rpm become broken. Currently it contains rpmi
-binary, which can be used to install/upgrade/remove packages without
-using shared libraries (well, in fact with exception of NSS modules).
-
-%description utils-static -l pl.UTF-8
-Statyczne narzędzia rpm do naprawy systemu w przypadku zepsucia czegoś
-związanego z bibliotekami współdzielonymi używanymi przez rpm-a.
-Aktualnie pakiet zawiera binarkę rpmi, którą można użyć do instalacji,
-uaktualniania lub usuwania pakietów bez udziału bibliotek statycznych
-(z wyjątkiem modułów NSS).
-
%package build
Summary: Scripts for building binary RPM packages
Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
+Requires(pretrans): coreutils
Requires(pretrans): findutils
-Requires: %{name}-tld-macros-build >= 1.744-3
-Requires: %{name}-utils = %{version}-%{release}
+Requires: %{name}-utils = %{epoch}:%{version}-%{release}
+Requires: rpm-tld-macros-build >= 1.744
Requires: /bin/id
Requires: awk
Requires: bzip2
Requires: file >= 4.17
Requires: fileutils
Requires: findutils
-# rpmrc patch adds flags specific to gcc >= 4.7
-Requires: gcc >= 6:4.7.0
+%ifarch athlon
+Requires: gcc >= 3.0.3
+%else
+Requires: gcc
+%endif
Requires: glibc-devel
Requires: grep
Requires: gzip
Requires: make
Requires: patch
-Requires: sed
+Requires: sed >= 4.0
Requires: sh-utils
-Requires: tar
+Requires: tar >= 1:1.22
Requires: textutils
+Requires: which
Requires: xz
-Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
%ifarch %{x8664}
Conflicts: automake < 1:1.7.9-2
Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
Group: Applications/File
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: perl-Encode
Requires: perl-devel
Requires: perl-modules
Summary: Python macros, which simplifies creation of RPM packages with Python software
Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
Group: Applications/File
-Requires: %{name} = %{version}-%{release}
-Requires: python
-Requires: python-modules
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: python3
+Requires: python3-modules
+Requires: python3-setuptools
%description pythonprov
Python macros, which simplifies creation of RPM packages with Python
Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
Pythonie.
-%package -n python-rpm
-Summary: Python interface to RPM library
-Summary(pl.UTF-8): Pythonowy interfejs do biblioteki RPM-a
-Summary(pt_BR.UTF-8): Módulo Python para aplicativos que manipulam pacotes RPM
+%package -n python3-rpm
+Summary: Python 3 interface to RPM library
+Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
+Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
Group: Development/Languages/Python
-Requires: %{name} = %{version}-%{release}
-%pyrequires_eq python
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: python3
+Obsoletes: python-rpm < 1:4.16.0
Obsoletes: rpm-python
-%description -n python-rpm
-The rpm-python package contains a module which permits applications
-written in the Python programming language to use the interface
+%description -n python3-rpm
+The python3-rpm package contains a module which permits applications
+written in the Python 3 programming language to use the interface
supplied by RPM (RPM Package Manager) libraries.
-This package should be installed if you want to develop Python
+This package should be installed if you want to develop Python 3
programs that will manipulate RPM packages and databases.
-%description -n python-rpm -l pl.UTF-8
-Pakiet rpm-python zawiera moduł, który pozwala aplikacjom napisanym w
-Pythonie na używanie interfejsu dostarczanego przez biblioteki RPM-a.
+%description -n python3-rpm -l pl.UTF-8
+Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
+Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
+RPM-a.
Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
-Pythonie programy manipulujące pakietami i bazami danych rpm.
+Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
-%description -n python-rpm -l pt_BR.UTF-8
-O pacote rpm-python contém um módulo que permite que aplicações
-escritas em Python utilizem a interface fornecida pelas bibliotecas
+%description -n python3-rpm -l pt_BR.UTF-8
+O pacote python3-rpm contém um módulo que permite que aplicações
+escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
RPM (RPM Package Manager).
Esse pacote deve ser instalado se você quiser desenvolver programas em
-Python para manipular pacotes e bancos de dados RPM.
+Python 3 para manipular pacotes e bancos de dados RPM.
+
+%package plugin-audit
+Summary: Plugin for logging audit events on package operations
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-audit
+Plugin for libaudit support
+
+%package plugin-syslog
+Summary: Plugin for syslog functionality
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-syslog
+This plugin exports RPM actions to the system log.
+
+%package plugin-systemd-inhibit
+Summary: Plugin for systemd inhibit functionality
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-systemd-inhibit
+This plugin blocks systemd from entering idle, sleep or shutdown while
+an rpm transaction is running using the systemd-inhibit mechanism.
+
+%package plugin-ima
+Summary: Plugin for IMA file signatures
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-ima
+This plugin adds support for enforcing and verifying IMA file
+signatures in an rpm.
+
+%package plugin-prioreset
+Summary: Plugin for resetting scriptlet priorities for SysV init
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-prioreset
+This plugin is useful on legacy SysV init systems if you run rpm
+transactions with nice/ionice priorities. Should not be used on
+systemd systems.
+
+%package plugin-selinux
+Summary: Plugin for SELinux functionality
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: libselinux >= 2.1.0
+
+%description plugin-selinux
+Plugin for SELinux functionality.
+
+%package sign
+Summary: Package signing support
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description sign
+This package contains support for digitally signing RPM packages.
%package apidocs
Summary: RPM API documentation and guides
Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
Group: Documentation
+BuildArch: noarch
%description apidocs
Documentation for RPM API and guides in HTML format generated from rpm
źrodeł RPM-a przez doxygen.
%prep
-%setup -q
-cp -p %{SOURCE15} .
-%patch1000 -p1
-%patch2 -p1
+%setup -q -n %{name}-%{version}%{?subver}
+%patch0 -p1
%patch1 -p1
+%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch6 -p1
+%patch6 -p0
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1 -R
+%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
+%patch15 -p1
%patch16 -p1
%patch17 -p1
-sed -e 's/^/@tld@/' %{SOURCE2} >>platform.in
-echo '%%define __mono_provides /usr/lib/rpm/mono-find-provides' > macros.mono
-echo '%%define __mono_requires /usr/lib/rpm/mono-find-requires' >> macros.mono
-install %{SOURCE13} scripts/perl.prov
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
%patch21 -p1
%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
-%patch34 -p1
-%patch36 -p1
-%patch37 -p1
-%patch39 -p1
-%patch40 -p1
-%patch42 -p1
-%patch43 -p1
-%patch82 -p1
-%{!?with_neon:%patch44 -p1}
-%patch45 -p1
-%patch48 -p1
-%patch50 -p1
-%patch20 -p1
-%patch35 -p1
-%patch51 -p1
-%patch55 -p1
-%patch56 -p1
-%patch57 -p1
-%patch58 -p1
-%patch59 -p1
-%patch61 -p1
-%patch62 -p1
-%patch63 -p1
-%patch64 -p1
-%patch65 -p1
-%patch66 -p1
-%patch67 -p1
-%patch69 -p1
-%patch71 -p1
-%patch72 -p1
-%patch73 -p1
-%patch74 -p1
-%patch75 -p0
-%patch77 -p0
-%patch79 -p1
-%patch80 -p1
-%patch83 -p1
-%patch84 -p1
-%patch85 -p1
-%patch86 -p1
-%patch70 -p0
-%patch87 -p1
-%patch88 -p1
-%patch89 -p1
-%patch90 -p1
-%patch91 -p1
-%patch92 -p1
-%patch93 -p1
-%patch94 -p1
-%patch95 -p1
-%patch96 -p1
-%patch97 -p1
-%patch98 -p1
-%patch99 -p1
-%patch53 -p1
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%patch103 -p1
-%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch107 -p1
-%patch108 -p1
-%patch109 -p1
-%patch110 -p1
-%patch111 -p1
-%patch112 -p1
-%patch113 -p1
-%patch114 -p1
-%patch115 -p1
-%patch116 -p1
-%patch117 -p1
-%patch118 -p1
-%patch119 -p1
-%patch120 -p1
-%patch121 -p1
-
-mv -f po/{sr,sr@Latn}.po
-rm -rf sqlite zlib popt
-
-%if %{with internal_db}
-%if %{without nptl}
-sed -i -e 's,AM_PTHREADS_SHARED("POSIX/.*,:,' db/dist/aclocal/mutex.ac
-%endif
-%patch78 -p1
-%patch81 -p1
-%else
-%patch15 -p1
-rm -rf db3 db rpmdb/db.h
-%endif
+
+install %{SOURCE15} scripts/perl.prov.in
+
+%{__mv} -f scripts/perl.req{,.in}
# generate Group translations to *.po
-awk -f %{SOURCE6} %{SOURCE1}
+awk -f %{SOURCE6} %{SOURCE5}
-# update macros paths
-for f in doc{,/ja,/pl}/rpm.8 doc{,/ja,/pl}/rpmbuild.8 ; do
- sed -e 's@lib/rpm/redhat@lib/rpm/tld@g' $f > ${f}.tmp
- mv -f ${f}.tmp $f
-done
+install %{SOURCE16} tools/rpmdb_checkversion.c
+install %{SOURCE17} tools/rpmdb_reset.c
-%build
-%if %{with system_libmagic}
-rm -rf file
-%else
-cd file
-%{__libtoolize}
-%{__aclocal}
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-cd ..
-%endif
+%{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
+%build
%{__libtoolize}
-%{__gettextize}
%{__aclocal}
%{__autoheader}
%{__autoconf}
%{__automake}
-%if %{with internal_db}
-cd db3
-echo -e 'AC_CONFIG_AUX_DIR(.)\nAC_PROG_LIBTOOL'> configure.ac
-%{__libtoolize}
-rm -f configure.ac
-cd ../db
-cp -f /usr/share/aclocal/libtool.m4 dist/aclocal/libtool.ac
-cp -f /usr/share/automake/config.sub dist
-if [ -f /usr/share/libtool/config/ltmain.sh ]; then
- cp -f /usr/share/libtool/config/ltmain.sh dist
-else
- cp -f /usr/share/libtool/ltmain.sh dist
-fi
-cd ..
-%endif
# rpm checks for CPU type at runtime, but it looks better
sed -i \
-e 's|@host_os@|%{_target_os}|' \
macros.in
-# pass CC and CXX too in case of building with some older configure macro
-# disable perl-RPM2 build, we have it in separate spec
-CPPFLAGS="%{rpmcppflags} -I/usr/include/ossp-uuid -I/usr/include/%{reqdb_pkg}"
%configure \
- CC="%{__newcc}" \
- CXX="%{__newcxx}" \
- CPP="%{__newcpp}" \
WITH_PERL_VERSION=no \
- %{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
+ __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
+ __GPG=%{_bindir}/gpg \
+%if %{with python3}
+ PYTHON=python3 \
+ --enable-python \
+%endif
+ --disable-silent-rules \
--enable-shared \
- --enable-static \
- %{!?with_apidocs:--without-apidocs} \
- %{?with_python:--with-python=%{py_ver}} \
- %{!?with_python:--without-python} \
- %{!?with_selinux:--without-selinux} \
- %{?with_internal_db:--%{?with_nptl:en}%{!?with_nptl:dis}able-posixmutexes} \
- --without-db
-
-%{__make} \
- CC="%{__cc}" \
- CXX="%{__cxx}" \
- CPP="%{__cpp}" \
- libdb_la=%{_libdir}/libdb-%(echo %{reqdb_pkg} | sed -e 's/^db//').la \
- pylibdir=%{py_libdir} \
- myLDFLAGS="%{rpmldflags}" \
- staticLDFLAGS=%{?with_static:-all-static}
+ --enable-bdb \
+ --enable-ndb \
+ --enable-sqlite \
+ --enable-zstd \
+ --with-lua \
+ %{?with_imaevm:--with-imaevm} \
+ --with-cap \
+ --with-acl \
+ --with-audit \
+ --with-archive \
+ --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
+ %{!?with_plugins:--disable-plugins} \
+ --with-vendor=tld
+
+%{__make}
+
+%{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
+%{__cc} %{rpmcflags} tools/rpmdb_reset.c -o tools/rpmdb_reset -ldb
+
+if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
+ echo "Error linking rpmdb tools!"
+ exit 1
+fi
+if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
+ echo "Error linking rpmdb tools!"
+ exit 1
+fi
+
+%if %{with python3}
+cd python
+%py3_build
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},/etc/{sysconfig,tmpwatch},%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib}
-install -d $RPM_BUILD_ROOT%{_rpmlibdir}/macros.d
+install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
+ $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/var/cache/hrmib}
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT \
- staticLDFLAGS=%{?with_static:-all-static} \
- pylibdir=%{py_libdir}
-
-cat <<'EOF' > $RPM_BUILD_ROOT/etc/tmpwatch/rpm.conf
-# Cleanup 90-days old repackage files.
-/var/spool/repackage 2160
-EOF
-
-cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
-# first platform file entry can't contain regexps
-%{_target_cpu}-%{_target_vendor}-linux
-
-%ifarch %{x8664}
-amd64-[^-]*-[Ll]inux(-gnu)?
-x86_64-[^-]*-[Ll]inux(-gnu)?
+ pkgconfigdir=%{_pkgconfigdir} \
+ DESTDIR=$RPM_BUILD_ROOT
+
+# cleanup
+%ifnarch %{ix86} %{x8664} x32
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
%endif
-%ifarch i686 %{x8664}
-i686-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch i586 i686 %{x8664}
-i586-[^-]*-[Ll]inux(-gnu)?
+
+%ifnarch %{x8664} x32
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
%endif
-%ifarch i486 i586 i686 %{x8664}
-i486-[^-]*-[Ll]inux(-gnu)?
+
+%ifnarch %{ppc}
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
%endif
-%ifarch %{ix86} %{x8664}
-i386-[^-]*-[Ll]inux(-gnu)?
+
+%ifnarch aarch64
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
%endif
-# noarch
-noarch-[^-]*-.*
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
+
+cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%ifarch x32
+%{_target_cpu}-%{_target_vendor}-linux-gnux32
+%else
+%{_target_cpu}-%{_target_vendor}-linux
+%endif
EOF
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
-
-# not installed since 4.4.8 (-tools-perl subpackage)
-install -p scripts/rpmdiff scripts/rpmdiff.cgi $RPM_BUILD_ROOT%{_rpmlibdir}
-
-cp -a macros.mono $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
-cp -a %{SOURCE19} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.gstreamer
-
-install -p %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
-install -p %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
-install -p %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
-install -p %{SOURCE18} $RPM_BUILD_ROOT%{_bindir}/banner.sh
-cp -p %{name}.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/rpm
-
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Dirnames
-cp -a %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Obsoletename
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
-
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros <<EOF
-# customized rpm macros - global for host
-#
-%%distribution TLD
-#
-# remove or replace with file_contexts path if you want to use custom
-# SELinux file contexts policy instead of one stored in packages payload
-%%_install_file_context_path %%{nil}
-%%_verify_file_context_path %%{nil}
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
-# If non-zero, all erasures will be automagically repackaged.
-#%%_repackage_all_erasures 0
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld
-# If non-zero, create debuginfo packages
-#%%_enable_debug_packages 0
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
+cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
-# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
-# marked as %doc should be installed.
-#%%_excludedocs 1
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
-# For static /dev not to update perms if upgraded and tmpfs mounted
-#%%_netsharedpath /dev/shm
-EOF
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
+cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
+cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
+cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang <<EOF
-# Customized rpm macros - global for host
-# A colon separated list of desired locales to be installed;
-# "all" means install all locale specific files.
-#
-#%%_install_langs pl_PL:en_US
-EOF
-
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles <<EOF
-# global list of files (regexps) which don't generate Provides
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov <<EOF
-# global list of script capabilities (regexps) not to be used in Provides
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles <<EOF
-# global list of files (regexps) which don't generate Requires
-^%{_examplesdir}/
-^%{_docdir}/
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq <<EOF
-# global list of script capabilities (regexps) not to be used in Requires
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep <<EOF
-# global list of capabilities (SONAME, perl(module), php(module) regexps)
-# which don't generate dependencies on package NAMES
-# -- OpenGL implementation
-^libGL.so.1
-^libGLU.so.1
-^libOSMesa.so
-# -- Glide
-^libglide3.so.3
-# -- mozilla
-^libgtkmozembed.so
-^libgtksuperwin.so
-^libxpcom.so
-# -- X11 implementation
-^libFS.so
-^libI810XvMC.so
-^libICE.so
-^libSM.so
-^libX11.so
-^libXRes.so
-^libXTrap.so
-^libXaw.so
-^libXcomposite.so
-^libXcursor.so
-^libXdamage.so
-^libXdmcp.so
-^libXevie.so
-^libXext.so
-^libXfixes.so
-^libXfont.so
-^libXfontcache.so
-^libXft.so
-^libXi.so
-^libXinerama.so
-^libXmu.so
-^libXmuu.so
-^libXp.so
-^libXpm.so
-^libXrandr.so
-^libXrender.so
-^libXss.so
-^libXt.so
-^libXtst.so
-^libXv.so
-^libXvMC.so
-^libXxf86dga.so
-^libXxf86misc.so
-^libXxf86rush.so
-^libXxf86vm.so
-^libdps.so
-^libdpstk.so
-^libfontenc.so
-^libpsres.so
-^libxkbfile.so
-^libxkbui.so
-# -- fam / gamin
-^libfam.so.0
-# -- mdns-bonjour: mDNSResponder-libs / avahi-compat-libdns_sd
-^libdns_sd.so.1
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
-# global list of file masks not to be compressed in DOCDIR
-EOF
-
-# for rpm -e|-U --repackage
-install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
-touch $RPM_BUILD_ROOT/var/lock/rpm/transaction
+cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
+cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
+cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
# move rpm to /bin
-install -d $RPM_BUILD_ROOT/bin
-mv $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
+ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
+ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
+
# move essential libs to /lib (libs that /bin/rpm links to)
-for a in librpm-%{sover}.so librpmdb-%{sover}.so librpmio-%{sover}.so ; do
- mv -f $RPM_BUILD_ROOT%{_libdir}/$a $RPM_BUILD_ROOT/%{_lib}
- ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
+for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
+ mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
+ ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
done
-# remove arch dependant macros which have no use on noarch
-%{__sed} -i -e '
-/{__spec_install_post_strip}/d
-/{__spec_install_post_chrpath}/d
-/{__spec_install_post_compress_modules}/d
-' $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+# Make sure we have bdb set a default backend
+grep -qE "db_backend[[:blank:]]+bdb" $RPM_BUILD_ROOT%{_rpmlibdir}/macros
-%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
-%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%if %{with python3}
+# Remove anything that rpm make install might put there
+%{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
+cd python
+%py3_install
+cd ..
+%endif
-rm -f $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
-# (currently) not used or supported in TLD
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/{http.req,perldeps.pl}
# wrong location, not used anyway
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
-
-# unpackaged in 4.4.9, reasons unknown
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/symclash.{sh,py}
-%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/RPM.pm
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/.packlist
-%{__rm} -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.bs
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.so
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/RPM.3pm
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,ja,pl}/man8/rpm{cache,graph}.8
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
%find_lang %{name}
-rm -rf manual
-cp -a doc/manual manual
-cp -a %{SOURCE1} manual/groups
-rm -f manual/Makefile*
-
%clean
rm -rf $RPM_BUILD_ROOT
-%triggerpostun lib -- %{name}-lib < %{version}
-echo >&2 "rpm-lib upgrade: Removing /var/lib/rpm/__db* from older rpmdb version"
-rm -f /var/lib/rpm/__db*
-echo >&2 "You should rebuild your rpmdb: rpm --rebuilddb to avoid random rpmdb errors"
-
-%triggerpostun lib -- db4.7 < %{reqdb_ver}
-echo >&2 "db4.7 upgrade: Removing /var/lib/rpm/__db* from older rpmdb version"
-rm -f /var/lib/rpm/__db*
-echo >&2 "You should rebuild your rpmdb: rpm --rebuilddb to avoid random rpmdb errors"
+%posttrans
+if [ -e /var/lib/rpm/Packages ] && \
+ ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
+ if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
+ /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
+ echo
+ echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
+ echo
+ fi
+ echo
+ echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
+ echo 'you should ignore it and restart poldek'
+ echo
+ %{_rpmlibdir}/dbupgrade.sh
+fi
%triggerpostun -- %{name} < 4.4.9-44
%{_rpmlibdir}/hrmib-cache
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc CHANGES CREDITS README manual/*
+%doc ChangeLog CREDITS README
%attr(755,root,root) /bin/rpm
+%attr(755,root,root) %{_bindir}/rpmdb
+%attr(755,root,root) %{_bindir}/rpmkeys
+%attr(755,root,root) %{_bindir}/rpmquery
+%attr(755,root,root) %{_bindir}/rpmverify
-%config(noreplace) %verify(not md5 mtime size) /etc/tmpwatch/rpm.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
-%dir %{_sysconfdir}/rpm/sysinfo
-# these are ok to be replaced
-%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/sysinfo/*
+# this is ok to be replaced
%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
-
%{_mandir}/man8/rpm.8*
+%{_mandir}/man8/rpmdb.8*
+%{_mandir}/man8/rpmkeys.8*
+%{_mandir}/man8/rpm-misc.8*
+%{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
%lang(fr) %{_mandir}/fr/man8/rpm.8*
%lang(ja) %{_mandir}/ja/man8/rpm.8*
%lang(ko) %{_mandir}/ko/man8/rpm.8*
%lang(sk) %{_mandir}/sk/man8/rpm.8*
%dir /var/lib/rpm
-%dir %attr(700,root,root) /var/spool/repackage
-%dir /var/lock/rpm
-/var/lock/rpm/transaction
# exported package NVRA (stamped with install tid)
# net-snmp hrSWInstalledName queries, bash-completions
%dir /var/cache/hrmib
%{_rpmlibdir}/rpmpopt*
+%{_rpmlibdir}/rpmrc
%{_rpmlibdir}/macros
%dir %{_rpmlibdir}/macros.d
+%dir %{_rpmlibdir}/platform
+%{_rpmlibdir}/platform/noarch-*
+%ifarch %{ix86} %{x8664} x32
+%{_rpmlibdir}/platform/athlon*
+%{_rpmlibdir}/platform/geode*
+%{_rpmlibdir}/platform/i?86*
+%{_rpmlibdir}/platform/pentium*
+%endif
+%ifarch %{x8664} x32
+%{_rpmlibdir}/platform/amd64*
+%{_rpmlibdir}/platform/ia32e*
+%{_rpmlibdir}/platform/x86_64*
+%{_rpmlibdir}/platform/x32*
+%endif
+%ifarch alpha
+%{_rpmlibdir}/platform/alpha*
+%endif
+%ifarch aarch64
+%{_rpmlibdir}/platform/aarch64*
+%endif
+%ifarch ia64
+%{_rpmlibdir}/platform/ia64*
+%endif
+%ifarch mips mipsel mips64 mips64el
+%{_rpmlibdir}/platform/mips*
+%endif
+%ifarch %{ppc}
+%{_rpmlibdir}/platform/ppc*
+%endif
+%ifarch sparc sparc64
+%{_rpmlibdir}/platform/sparc*
+%endif
+
+%dir %{_rpmlibdir}/tld
%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
+%attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_load
+
+# valgrind suppression file for rpm
+%{_rpmlibdir}/rpm.supp
+
%files base
%defattr(644,root,root,755)
%dir %{_sysconfdir}/rpm
%files lib
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/librpm-%{sover}.so
-%attr(755,root,root) /%{_lib}/librpmdb-%{sover}.so
-%attr(755,root,root) /%{_lib}/librpmio-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmbuild-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpm.so.9
+%attr(755,root,root) /%{_lib}/librpm.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmbuild.so.9
+%attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmio.so.9
+%attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmsign.so.9
+%attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
+%{?with_plugins:%dir %{_libdir}/rpm-plugins}
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/librpm.so
-%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmio.so
-%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmdb.so
-%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmbuild.so
-%{_libdir}/librpm.la
-%{_libdir}/librpmbuild.la
-%{_libdir}/librpmdb.la
-%{_libdir}/librpmio.la
+%attr(755,root,root) %{_libdir}/librpmio.so
+%attr(755,root,root) %{_libdir}/librpmsign.so
+%{_libdir}/librpm*.la
%{_includedir}/rpm
-%{_pkgconfigdir}/rpm.pc
-
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/librpm.a
-%{_libdir}/librpmbuild.a
-%{_libdir}/librpmdb.a
-%{_libdir}/librpmio.a
+%{_pkgconfigdir}/*.pc
%files utils
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rpm2archive
%attr(755,root,root) %{_bindir}/rpm2cpio
-%attr(755,root,root) %{_bindir}/rpmdigest
-%attr(755,root,root) %{_bindir}/rpmmtree
-%attr(755,root,root) %{_bindir}/rpmrepo
-%{!?with_system_libmagic:%attr(755,root,root) %{_bindir}/rpmfile}
-%attr(755,root,root) %{_rpmlibdir}/debugedit
+%attr(755,root,root) %{_bindir}/rpmgraph
+%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
-%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
-%attr(755,root,root) %{_rpmlibdir}/rpmdeps
%attr(755,root,root) %{_rpmlibdir}/tgpg
+%attr(755,root,root) %{_rpmlibdir}/debugedit
+%attr(755,root,root) %{_rpmlibdir}/rpmdeps
+%{_mandir}/man8/rpm2archive.8*
%{_mandir}/man8/rpm2cpio.8*
%{_mandir}/man8/rpmdeps.8*
+%{_mandir}/man8/rpmgraph.8*
%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
%lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
-%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
%lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
-
-%files utils-perl
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/rpmdiff*
-
-%if %{with static}
-%files utils-static
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/rpm[ieu]
-%attr(755,root,root) %{_rpmlibdir}/rpm[ieu]
-%endif
+%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
+%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
+%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
%files build
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
%attr(755,root,root) %{_rpmlibdir}/brp-*
%attr(755,root,root) %{_rpmlibdir}/check-files
-%attr(755,root,root) %{_rpmlibdir}/cross-build
-%attr(755,root,root) %{_rpmlibdir}/getpo.sh
%attr(755,root,root) %{_rpmlibdir}/install-build-tree
-%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
-%attr(755,root,root) %{_rpmlibdir}/executabledeps.sh
+%attr(755,root,root) %{_rpmlibdir}/elfdeps
%attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
+# needs hacked pkg-config to return anything
%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
-%{_rpmlibdir}/noarch-*
-%ifarch %{ix86}
-%{_rpmlibdir}/i?86*
-%endif
-%ifarch %{x8664}
-%{_rpmlibdir}/amd64*
-%{_rpmlibdir}/x86_64*
-%endif
+%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
+
+%attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
# must be here for "Requires: rpm-*prov" to work
-%{_rpmlibdir}/macros.gstreamer
-%{_rpmlibdir}/macros.mono
+#%{_rpmlibdir}/macros.d/cmake
+#%{_rpmlibdir}/macros.d/gstreamer
+#%{_rpmlibdir}/macros.d/libtool
+#%{_rpmlibdir}/macros.d/perl
+#%{_rpmlibdir}/macros.d/pkgconfig
+#%{_rpmlibdir}/macros.d/python
+#%{_rpmlibdir}/macros.d/selinux
+#%{_rpmlibdir}/macros.d/tcl
+#%{_rpmlibdir}/macros.rpmbuild
+
+%attr(755,root,root) %{_rpmlibdir}/check-buildroot
+%attr(755,root,root) %{_rpmlibdir}/check-prereqs
+%attr(755,root,root) %{_rpmlibdir}/check-rpaths
+%attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
+%attr(755,root,root) %{_rpmlibdir}/find-provides
+%attr(755,root,root) %{_rpmlibdir}/find-requires
+%attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
+%attr(755,root,root) %{_rpmlibdir}/script.req
+%attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
+
+%dir %{_rpmlibdir}/fileattrs
+%{_rpmlibdir}/fileattrs/debuginfo.attr
+%{_rpmlibdir}/fileattrs/desktop.attr
+%{_rpmlibdir}/fileattrs/elf.attr
+%{_rpmlibdir}/fileattrs/font.attr
+%{_rpmlibdir}/fileattrs/libtool.attr
+%{_rpmlibdir}/fileattrs/metainfo.attr
+%{_rpmlibdir}/fileattrs/ocaml.attr
+%{_rpmlibdir}/fileattrs/perl.attr
+%{_rpmlibdir}/fileattrs/perllib.attr
+%{_rpmlibdir}/fileattrs/pkgconfig.attr
+%{_rpmlibdir}/fileattrs/python.attr
+%{_rpmlibdir}/fileattrs/pythondist.attr
+%{_rpmlibdir}/fileattrs/script.attr
%attr(755,root,root) %{_bindir}/gendiff
%attr(755,root,root) %{_bindir}/rpmbuild
+%attr(755,root,root) %{_bindir}/rpmspec
%{_mandir}/man1/gendiff.1*
+%lang(pl) %{_mandir}/pl/man1/gendiff.1*
%{_mandir}/man8/rpmbuild.8*
%lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
-%lang(pl) %{_mandir}/pl/man1/gendiff.1*
%lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
+%{_mandir}/man8/rpmspec.8*
%files perlprov
%defattr(644,root,root,755)
%files pythonprov
%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh
-%attr(755,root,root) %{_rpmlibdir}/pythoneggs.py
+%attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
-%if %{with python}
-%files -n python-rpm
+%if %{with python3}
+%files -n python3-rpm
%defattr(644,root,root,755)
-%dir %{py_sitedir}/rpm
-%attr(755,root,root) %{py_sitedir}/rpm/*.so
-%{py_sitedir}/rpm/*.py[co]
+%dir %{py3_sitedir}/rpm
+%attr(755,root,root) %{py3_sitedir}/rpm/*.so
+%{py3_sitedir}/rpm/*.py
+%{py3_sitedir}/rpm-%{version}-py*.egg-info
+%{py3_sitedir}/rpm/__pycache__
%endif
+%if %{with plugins}
+%files plugin-audit
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
+%{_mandir}/man8/rpm-plugin-audit.8*
+
+%files plugin-syslog
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
+%{_mandir}/man8/rpm-plugin-syslog.8*
+
+%files plugin-systemd-inhibit
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
+%{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
+
+%files plugin-ima
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
+%{_mandir}/man8/rpm-plugin-ima.8*
+
+%files plugin-prioreset
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
+%{_mandir}/man8/rpm-plugin-prioreset.8*
+
+%files plugin-selinux
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
+%{_mandir}/man8/rpm-plugin-selinux.8*
+%endif
+
+%files sign
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rpmsign
+%{_mandir}/man8/rpmsign.8*
+
%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
-%doc apidocs
+%doc doc/librpm/html/*
%endif
# Should automatic restarts from rpm upgrades be skipped?
# You can also disable this per service, if service supports it from
# /etc/sysconfig/SERVICE
+# This is NOT used by %systemd_service_{restart,reload}. %systemd_post
+# issues try-restart unless package itself contains NORESTART or
+# %service macro before exists (maps value below to NORESTART). I.e.
+# %systemd_post honours this setting only after %service, while
+# %service-less packages would try-restart anyway.
#RPM_SKIP_AUTO_RESTART=yes
-# Should package upgrades enable SysV service?
-# You don't want to disable this unless you're planning to fully
-# migrate to systemd or want serviceless system.
-RPM_ENABLE_SYSV_SERVICE=yes
-
# Should package upgrades enable systemd service?
# This means migrating init scripts from SysV to systemd.
# If you disable this, systemd units will not be enabled for
-# upgraded services. Newly installed packages will still have
-# systemd services enabled.
+# *upgraded* services. Newly installed packages will follow
+# systemd presets.
+# This is used:
+# - if set to "no" while upgrading from systemd-units < 1:187-3,
+# sets default.preset to "disable *" (one-time configuration:
+# for newly installed packages),
+# - by %systemd_trigger (upgrade) disobeying systemd presets.
RPM_ENABLE_SYSTEMD_SERVICE=yes
+++ /dev/null
-/proc/self/fd
-/dev/fd/0
-/dev/fd/1
-/dev/fd/2
--- /dev/null
+--- rpm-4.15.1/lib/header.c~ 2019-11-04 21:13:13.000000000 +0900
++++ rpm-4.15.1/lib/header.c 2019-12-31 19:48:06.709777565 +0900
+@@ -277,6 +277,12 @@
+ for (i = 0; i < il; i++) {
+ ei2h(&pe[i], &info);
+
++ /* XXX rpm5 compat: convert RPMTAG_FILESTATE to RPM_CHAR_TYPE. */
++ if (info.tag == RPMTAG_FILESTATES && info.type == RPM_INT8_TYPE) {
++ info.type = RPM_CHAR_TYPE;
++ pe[i].type = htonl(info.type);
++ }
++
+ /* Previous data must not overlap */
+ if (end > info.offset)
+ goto err;
--- /dev/null
+#include <sys/types.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <db.h>
+
+int version_check __P((void));
+
+const char *progname = "rpmdb_checkversion"; /* Program name. */
+
+/*
+ * A very simple program to check for a Berkeley DB environment mismatch.
+ */
+int
+main(int argc, char *argv[])
+{
+ extern char *optarg;
+ extern int optind;
+ const char *data_dir, *home;
+ int ch, quiet;
+ DB_ENV *dbenv;
+ int ret;
+
+ if ((ret = version_check()) != 0)
+ return (EXIT_FAILURE);
+
+ /*
+ * All of the shared database files live in home, but
+ * data files will live in data_dir.
+ */
+ quiet = 0;
+ home = "/var/lib/rpm";
+ data_dir = "/var/lib/rpm";
+ while ((ch = getopt(argc, argv, "h:d:qV")) != EOF)
+ switch (ch) {
+ case 'h':
+ home = optarg;
+ break;
+ case 'd':
+ data_dir = optarg;
+ break;
+ case 'q':
+ quiet = 1;
+ break;
+ case 'V':
+ printf("%s\n", db_version(NULL, NULL, NULL));
+ return (EXIT_SUCCESS);
+ case '?':
+ default:
+ (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname);
+ return (1);
+ }
+ argc -= optind;
+ argv += optind;
+
+ if (argc != 0) {
+ (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname);
+ return (1);
+ }
+
+ /*
+ * Create an environment object and initialize it for error
+ * reporting.
+ */
+ if ((ret = db_env_create(&dbenv, 0)) != 0) {
+ if (!quiet)
+ fprintf(stderr, "%s: %s\n", progname, db_strerror(ret));
+ return (1);
+ }
+ if (quiet) {
+ dbenv->set_errfile(dbenv, NULL);
+ } else {
+ dbenv->set_errfile(dbenv, stderr);
+ }
+ dbenv->set_errpfx(dbenv, progname);
+
+ /*
+ * We want to specify the shared memory buffer pool cachesize,
+ * but everything else is the default.
+ */
+ if ((ret = dbenv->set_cachesize(dbenv, 0, 64 * 1024, 0)) != 0) {
+ dbenv->err(dbenv, ret, "set_cachesize");
+ dbenv->close(dbenv, 0);
+ return (1);
+ }
+
+ /* Databases are in a subdirectory. */
+ (void)dbenv->set_data_dir(dbenv, data_dir);
+
+ /* Open the environment with full transactional support. */
+ ret = dbenv->open(dbenv, home, DB_INIT_MPOOL, 0644);
+ /* Close the environment handle. */
+ dbenv->close(dbenv, 0);
+#if 0
+ if (ret == DB_VERSION_MISMATCH) {
+#else
+ if (ret != 0) {
+#endif
+ return (1);
+ }
+
+ return (0);
+}
+
+int
+version_check()
+{
+ int v_major, v_minor, v_patch;
+
+ /* Make sure we're loaded with the right version of the DB library. */
+ (void)db_version(&v_major, &v_minor, &v_patch);
+ if (v_major != DB_VERSION_MAJOR || v_minor != DB_VERSION_MINOR) {
+ fprintf(stderr,
+ "%s: version %d.%d doesn't match library version %d.%d\n",
+ progname, DB_VERSION_MAJOR,
+ DB_VERSION_MINOR, v_major, v_minor);
+ return (EXIT_FAILURE);
+ }
+ return (0);
+}
--- /dev/null
+#include <sys/types.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <db.h>
+
+typedef struct { /* XXX: Globals. */
+ const char *progname; /* Program name. */
+ char *hdrbuf; /* Input file header. */
+ u_long lineno; /* Input file line number. */
+ u_long origline; /* Original file line number. */
+ int endodata; /* Reached the end of a database. */
+ int endofile; /* Reached the end of the input. */
+ int version; /* Input version. */
+ char *home; /* Env home. */
+ char *passwd; /* Env passwd. */
+ int private; /* Private env. */
+ u_int32_t cache; /* Env cache size. */
+} LDG;
+
+int db_init __P((DB_ENV *, char *, u_int32_t, int *));
+int env_create __P((DB_ENV **, LDG *));
+int main __P((int, char *[]));
+int usage __P((void));
+int version_check __P((void));
+
+const char *progname = "rpmdb_reset";
+
+int
+main(argc, argv)
+ int argc;
+ char *argv[];
+{
+ enum { NOTSET, FILEID_RESET, LSN_RESET, STANDARD_LOAD } mode;
+ extern char *optarg;
+ extern int optind;
+ DBTYPE dbtype;
+ DB_ENV *dbenv;
+ LDG ldg;
+ u_int ldf;
+ int ch, exitval, ret;
+
+ if ((exitval = version_check()) != 0)
+ goto done;
+
+ ldg.progname = progname;
+ ldg.lineno = 0;
+ ldg.endodata = ldg.endofile = 0;
+ ldg.version = 1;
+ ldg.cache = (1024 * 1024);
+ ldg.hdrbuf = NULL;
+ ldg.home = NULL;
+ ldg.passwd = NULL;
+
+ mode = NOTSET;
+ ldf = 0;
+ exitval = 0;
+ dbtype = DB_UNKNOWN;
+
+ /*
+ * There are two modes for db_load: -r and everything else. The -r
+ * option zeroes out the database LSN's or resets the file ID, it
+ * doesn't really "load" a new database. The functionality is in
+ * db_load because we don't have a better place to put it, and we
+ * don't want to create a new utility for just that functionality.
+ */
+ while ((ch = getopt(argc, argv, "h:r:V")) != EOF)
+ switch (ch) {
+ case 'h':
+ ldg.home = optarg;
+ break;
+ case 'r':
+ if (strcmp(optarg, "lsn") == 0)
+ mode = LSN_RESET;
+ else if (strcmp(optarg, "fileid") == 0)
+ mode = FILEID_RESET;
+ else {
+ exitval = usage();
+ goto done;
+ }
+ break;
+ case 'V':
+ printf("%s\n", db_version(NULL, NULL, NULL));
+ return (EXIT_SUCCESS);
+ case '?':
+ default:
+ exitval = usage();
+ goto done;
+ }
+ argc -= optind;
+ argv += optind;
+
+ if (argc != 1 || mode == NOTSET) {
+ exitval = usage();
+ goto done;
+ }
+
+ /*
+ * Create an environment object initialized for error reporting, and
+ * then open it.
+ */
+ if (env_create(&dbenv, &ldg) != 0)
+ goto err;
+
+ /* If we're resetting the LSNs, that's an entirely separate path. */
+ switch (mode) {
+ case FILEID_RESET:
+ exitval = dbenv->fileid_reset(dbenv, argv[0], 0);
+ break;
+ case LSN_RESET:
+ exitval = dbenv->lsn_reset(dbenv, argv[0], 0);
+ break;
+ case NOTSET:
+ break;
+ }
+
+ if (0) {
+err: exitval = 1;
+ }
+ if ((ret = dbenv->close(dbenv, 0)) != 0) {
+ exitval = 1;
+ fprintf(stderr,
+ "%s: dbenv->close: %s\n", ldg.progname, db_strerror(ret));
+ }
+
+ if (ldg.passwd != NULL)
+ free(ldg.passwd);
+
+done:
+ return (exitval);
+}
+
+/*
+ * env_create --
+ * Create the environment and initialize it for error reporting.
+ */
+int
+env_create(dbenvp, ldg)
+ DB_ENV **dbenvp;
+ LDG *ldg;
+{
+ DB_ENV *dbenv;
+ int ret;
+
+ if ((ret = db_env_create(dbenvp, 0)) != 0) {
+ fprintf(stderr, "%s: db_env_create: %s\n",
+ ldg->progname, db_strerror(ret));
+ return (ret);
+ }
+ dbenv = *dbenvp;
+ dbenv->set_errfile(dbenv, stderr);
+ dbenv->set_errpfx(dbenv, ldg->progname);
+ if (ldg->passwd != NULL && (ret = dbenv->set_encrypt(dbenv,
+ ldg->passwd, DB_ENCRYPT_AES)) != 0) {
+ dbenv->err(dbenv, ret, "set_passwd");
+ return (ret);
+ }
+ if ((ret = db_init(dbenv, ldg->home, ldg->cache, &ldg->private)) != 0)
+ return (ret);
+ dbenv->app_private = ldg;
+
+ return (0);
+}
+
+/*
+ * db_init --
+ * Initialize the environment.
+ */
+int
+db_init(dbenv, home, cache, is_private)
+ DB_ENV *dbenv;
+ char *home;
+ u_int32_t cache;
+ int *is_private;
+{
+ u_int32_t flags;
+ int ret;
+
+ *is_private = 0;
+ /* We may be loading into a live environment. Try and join. */
+ flags = DB_USE_ENVIRON |
+ DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN;
+ if ((ret = dbenv->open(dbenv, home, flags, 0)) == 0)
+ return (0);
+ if (ret == DB_VERSION_MISMATCH)
+ goto err;
+
+ /*
+ * We're trying to load a database.
+ *
+ * An environment is required because we may be trying to look at
+ * databases in directories other than the current one. We could
+ * avoid using an environment iff the -h option wasn't specified,
+ * but that seems like more work than it's worth.
+ *
+ * No environment exists (or, at least no environment that includes
+ * an mpool region exists). Create one, but make it private so that
+ * no files are actually created.
+ */
+#define LF_SET(f) ((flags) |= (f))
+#define LF_CLR(f) ((flags) &= ~(f))
+ LF_CLR(DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_TXN);
+ LF_SET(DB_CREATE | DB_PRIVATE);
+ *is_private = 1;
+ if ((ret = dbenv->set_cachesize(dbenv, 0, cache, 1)) != 0) {
+ dbenv->err(dbenv, ret, "set_cachesize");
+ return (1);
+ }
+ if ((ret = dbenv->open(dbenv, home, flags, 0)) == 0)
+ return (0);
+
+ /* An environment is required. */
+err: dbenv->err(dbenv, ret, "DB_ENV->open");
+ return (1);
+}
+
+/*
+ * usage --
+ * Display the usage message.
+ */
+int
+usage()
+{
+ (void)fprintf(stderr, "usage: %s %s\n\t%s %s\n",
+ progname, "[-V]",
+ progname, "-r lsn | fileid [-h home] db_file");
+ return (EXIT_FAILURE);
+}
+
+int
+version_check()
+{
+ int v_major, v_minor, v_patch;
+
+ /* Make sure we're loaded with the right version of the DB library. */
+ (void)db_version(&v_major, &v_minor, &v_patch);
+ if (v_major != DB_VERSION_MAJOR || v_minor != DB_VERSION_MINOR) {
+ fprintf(stderr,
+ "%s: version %d.%d doesn't match library version %d.%d\n",
+ progname, DB_VERSION_MAJOR,
+ DB_VERSION_MINOR, v_major, v_minor);
+ return (EXIT_FAILURE);
+ }
+ return (0);
+}
--- /dev/null
+--- rpm-4.16.0/macros.in~ 2020-09-30 09:48:01.000000000 +0200
++++ rpm-4.16.0/macros.in 2020-10-18 17:23:24.762186901 +0200
+@@ -6,6 +6,7 @@
+ # should be added to /etc/rpm/macros, while per-user configuration should
+ # be added to ~/.rpmmacros.
+ #
++%_rpmversion @VERSION@
+
+ #==============================================================================
+ # ---- A macro that expands to nothing.
+++ /dev/null
-#!/usr/bin/ruby
-#--
-# Copyright 2010 Per Øyvind Karlsen <peroyvind@mandriva.org>
-# This program is free software. It may be redistributed and/or modified under
-# the terms of the LGPL version 2.1 (or later).
-#
-# FIXME: Someone with actual ruby skills should really clean up and sanitize
-# this! fugliness obvious...
-#++
-
-require 'optparse'
-require 'rbconfig'
-
-provides = false
-requires = false
-
-opts = OptionParser.new("#{$0} <--provides|--requires>")
-opts.on("-P", "--provides", "Print provides") do |val|
- provides = true
-end
-opts.on("-R", "--requires", "Print requires") do |val|
- requires= true
-end
-
-rest = opts.permute(ARGV)
-
-if rest.size != 0 or (!provides and !requires) or (provides and requires)
- $stderr.puts "Use either --provides OR --requires"
- $stderr.puts opts
- exit(1)
-end
-
-require 'rubygems'
-gem_dir = Gem.respond_to?(:default_dirs) ? Gem.default_dirs[:system][:gem_dir] : Gem.path.first
-specpatt = "#{gem_dir}/specifications/.*\.gemspec$"
-gems = []
-ruby_versioned = false
-abi_provide = false
-# as ruby_version may be empty, take version from basename of archdir
-ruby_version = RbConfig::CONFIG["ruby_version"].empty? ? File.basename(RbConfig::CONFIG["archdir"]) : RbConfig::CONFIG["ruby_version"]
-
-for path in $stdin.readlines
- # way fugly, but we make the assumption that if the package has
- # this file, the package is the current ruby version, and should
- # therefore provide ruby(abi) = version
- if provides and path.match(RbConfig::CONFIG["archdir"] + "/rbconfig.rb")
- abi_provide = true
- ruby_versioned = true
- elsif path.match(specpatt)
- gems.push(path.chomp)
- # this is quite ugly and lame, but the assumption made is that if any files
- # found in any of these directories specific to this ruby version, the
- # package is dependent on this specific version.
- # FIXME: only supports current ruby version
- elsif not ruby_versioned
- if path.match(RbConfig::CONFIG["rubylibdir"])
- ruby_versioned = true
- elsif path.match(RbConfig::CONFIG["archdir"])
- ruby_versioned = true
- elsif path.match(RbConfig::CONFIG["sitelibdir"])
- ruby_versioned = !RbConfig::CONFIG["ruby_version"].empty?
- elsif path.match(RbConfig::CONFIG["sitearchdir"])
- ruby_versioned = true
- elsif path.match(RbConfig::CONFIG["vendorlibdir"])
- ruby_versioned = !RbConfig::CONFIG["ruby_version"].empty?
- elsif path.match(RbConfig::CONFIG["vendorarchdir"])
- ruby_versioned = true
- end
- end
-end
-
-if requires or abi_provide
- abidep = "ruby(abi)"
- if ruby_versioned
- abidep += " = %s" % ruby_version
- end
- print abidep + "\n"
-end
-
-if gems.length > 0
- require 'rubygems'
-
- if requires
-
- module Gem
- class Requirement
- def rpm_dependency_transform(name, version)
- pessimistic = ""
- if version == "> 0.0.0" or version == ">= 0"
- version = ""
- else
- if version[0..1] == "~>"
- pessimistic = "rubygem(%s) < %s\n" % [name, Gem::Version.create(version[3..-1]).bump]
- version = version.gsub(/\~>/, '=>')
- end
- if version[0..1] == "!="
- version = version.gsub(/\!=/, '>')
- end
- version = version.sub(/^/, ' ')
- end
- version = "rubygem(%s)%s\n%s" % [name, version, pessimistic]
- end
-
- def to_rpm(name)
- result = as_list
- return result.map { |version| rpm_dependency_transform(name, version) }
- end
-
- end
- end
- end
-
- for gem in gems
- data = File.read(gem)
- spec = eval(data)
- if provides
- print "rubygem(%s) = %s\n" % [spec.name, spec.version]
- end
- if requires
- for d in spec.dependencies
- print d.requirement.to_rpm(d.name)[0] unless d.type != :runtime
- end
- for d in spec.required_rubygems_version.to_rpm("rubygems")
- print d.gsub(/(rubygem\()|(\))/, "")
- end
- end
- end
-end
--- /dev/null
+diff --git a/lib/depends.c b/lib/depends.c
+index 28a4a784d..1d8ce1f8a 100644
+--- a/lib/depends.c
++++ b/lib/depends.c
+@@ -690,6 +690,17 @@ retry:
+ goto unsatisfied;
+ }
+
++ char * N = rpmdsN(dep);
++ if (strstr(N, "uname") == N) {
++ if (tsmem->uname == NULL)
++ rpmdsUnamePool(rpmtsPool(ts), &(tsmem->uname));
++
++ if (tsmem->uname != NULL && rpmdsSearch(tsmem->uname, dep) >= 0) {
++ rpmdsNotify(dep, "(uname provides)", rc);
++ goto exit;
++ }
++ }
++
+ /* Dont look at pre-requisites of already installed packages */
+ if (!adding && isTransientReq(dsflags))
+ goto exit;
+diff --git a/lib/rpmds.c b/lib/rpmds.c
+index f7ee76392..754969e39 100644
+--- a/lib/rpmds.c
++++ b/lib/rpmds.c
+@@ -2,6 +2,7 @@
+ * \file lib/rpmds.c
+ */
+ #include "system.h"
++#include <sys/utsname.h>
+
+ #include <rpm/rpmtypes.h>
+ #include <rpm/rpmlib.h> /* rpmvercmp */
+@@ -1596,3 +1597,51 @@ rpmRC rpmdsParseRichDep(rpmds dep, rpmds *leftds, rpmds *rightds, rpmrichOp *op,
+ return rc;
+ }
+
++int rpmdsUnamePool(rpmstrPool pool, rpmds * dsp)
++{
++ int rc = -1;
++ static const char * NS = "uname";
++ struct utsname un;
++ rpmds ds;
++
++ if (uname(&un) < 0)
++ goto exit;
++
++ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME, "uname(sysname)", un.sysname, RPMSENSE_EQUAL);
++ rc = rpmdsMerge(dsp, ds);
++ rpmdsFree(ds);
++ if (rc < 0)
++ goto exit;
++ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME, "uname(nodename)", un.nodename, RPMSENSE_EQUAL);
++ rc = rpmdsMerge(dsp, ds);
++ rpmdsFree(ds);
++ if (rc < 0)
++ goto exit;
++ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME, "uname(release)", un.release, RPMSENSE_EQUAL);
++ rc = rpmdsMerge(dsp, ds);
++ rpmdsFree(ds);
++ if (rc < 0)
++ goto exit;
++ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME, "uname(machine)", un.machine, RPMSENSE_EQUAL);
++ rc = rpmdsMerge(dsp, ds);
++ rpmdsFree(ds);
++ if (rc < 0)
++ goto exit;
++#if defined(__linux__)
++ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME, "uname(domainname)", un.domainname, RPMSENSE_EQUAL);
++ rc = rpmdsMerge(dsp, ds);
++ rpmdsFree(ds);
++ if (rc < 0)
++ goto exit;
++#endif
++exit:
++ /* freeze the pool to save memory, but only if private pool */
++ if (*dsp && (*dsp)->pool != pool)
++ rpmstrPoolFreeze((*dsp)->pool, 0);
++ return (rc < 0) ? -1 : 0;
++}
++
++int rpmdsUname(rpmds * dsp)
++{
++ return rpmdsUnamePool(NULL, dsp);
++}
+diff --git a/lib/rpmds.h b/lib/rpmds.h
+index 90d54aa27..558252c04 100644
+--- a/lib/rpmds.h
++++ b/lib/rpmds.h
+@@ -412,6 +412,13 @@ int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote);
+ */
+ int rpmdsRpmlib(rpmds * dsp, const void * tblp);
+
++/**
++ * Load uname provides into a dependency set.
++ * @retval *dsp (loaded) dependency set
++ * @return 0 on success
++ */
++int rpmdsUname(rpmds * dsp);
++
+ /** \ingroup rpmds
+ * Create and load a dependency set.
+ * @param pool shared string pool (or NULL for private pool)
+@@ -468,6 +475,14 @@ rpmds rpmdsSinglePoolTix(rpmstrPool pool, rpmTagVal tagN,
+ */
+ int rpmdsRpmlibPool(rpmstrPool pool, rpmds * dsp, const void * tblp);
+
++/**
++ * Load uname provides into a dependency set.
++ * @param pool shared string pool (or NULL for private pool)
++ * @retval *dsp (loaded) dependency set
++ * @return 0 on success
++ */
++int rpmdsUnamePool(rpmstrPool pool, rpmds * dsp);
++
+
+ typedef enum rpmrichOp_e {
+ RPMRICHOP_SINGLE = 1,
+diff --git a/lib/rpmts_internal.h b/lib/rpmts_internal.h
+index e69ef2584..ecdb12f0c 100644
+--- a/lib/rpmts_internal.h
++++ b/lib/rpmts_internal.h
+@@ -21,6 +21,7 @@ typedef struct tsMembers_s {
+ rpmal addedPackages; /*!< Set of packages being installed. */
+
+ rpmds rpmlib; /*!< rpmlib() dependency set. */
++ rpmds uname; /*!< uname() dependency set. */
+ rpmte * order; /*!< Packages sorted by dependencies. */
+ int orderCount; /*!< No. of transaction elements. */
+ int orderAlloced; /*!< No. of allocated transaction elements. */
--- /dev/null
+diff -ur rpm-4.15.1.orig/build/rpmfc.c rpm-4.15.1/build/rpmfc.c
+--- rpm-4.15.1.orig/build/rpmfc.c 2019-12-29 14:07:19.877313873 +0100
++++ rpm-4.15.1/build/rpmfc.c 2019-12-29 13:47:23.183804165 +0100
+@@ -595,6 +595,7 @@
+
+ { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE },
+ { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE },
++// { "ELF 32-bit", RPMFC_ELFX32|RPMFC_INCLUDE },
+
+ { "troff or preprocessor input", RPMFC_INCLUDE },
+ { "GNU Info", RPMFC_INCLUDE },
+@@ -696,7 +697,11 @@
+ if (strstr(fmstr, fct->token) == NULL)
+ continue;
+
+- fcolor |= fct->colors;
++ // This is a nasty hack, but will have to do for now
++ if ((fct->colors & RPMFC_ELF32) && (strstr(fmstr, "x86-64") != NULL))
++ fcolor |= RPMFC_ELFX32|RPMFC_INCLUDE;
++ else
++ fcolor |= fct->colors;
+ if (fcolor & RPMFC_INCLUDE)
+ break;
+ }
+@@ -1152,7 +1152,10 @@
+ color = RPMFC_ELF64;
+ break;
+ case ELFCLASS32:
+- color = RPMFC_ELF32;
++ if (ehdr.e_machine == EM_X86_64)
++ color = RPMFC_ELFX32;
++ else
++ color = RPMFC_ELF32;
+ break;
+ }
+ elf_end(elf);
+diff -ur rpm-4.15.1.orig/build/rpmfc.h rpm-4.15.1/build/rpmfc.h
+--- rpm-4.15.1.orig/build/rpmfc.h 2019-06-26 16:17:31.397985717 +0200
++++ rpm-4.15.1/build/rpmfc.h 2019-12-29 13:45:05.936980833 +0100
+@@ -26,8 +26,9 @@
+ RPMFC_BLACK = 0,
+ RPMFC_ELF32 = (1 << 0),
+ RPMFC_ELF64 = (1 << 1),
++ RPMFC_ELFX32 = (1 << 2),
+ RPMFC_ELFMIPSN32 = (1 << 2),
+-#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
++#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFX32|RPMFC_ELFMIPSN32)
+ /* (1 << 3) leaks into package headers, reserved */
+
+ RPMFC_WHITE = (1 << 29),
+diff -ur rpm-4.15.1.orig/configure.ac rpm-4.15.1/configure.ac
+--- rpm-4.15.1.orig/configure.ac 2019-12-29 14:07:19.813977936 +0100
++++ rpm-4.15.1/configure.ac 2019-12-29 14:27:41.381850928 +0100
+@@ -1050,6 +1050,9 @@
+ host_os=`echo "${host_os}" | sed 's/-gnueabi$//'`
+ host_os_gnu=-gnueabi
+ fi
++if echo "$host_os" | grep '.*-gnux32' > /dev/null ; then
++ host_os=`echo "${host_os}" | sed 's/-gnux32$//'`
++fi
+ if echo "$host_os" | grep '.*-gnu' > /dev/null ; then
+ host_os=`echo "${host_os}" | sed 's/-gnu$//'`
+ fi
+diff -ur rpm-4.15.1.orig/installplatform rpm-4.15.1/installplatform
+--- rpm-4.15.1.orig/installplatform 2019-06-26 16:17:31.404985707 +0200
++++ rpm-4.15.1/installplatform 2019-12-29 14:52:09.331085139 +0100
+@@ -21,6 +21,7 @@
+
+ ARCH_INSTALL_POST='%{nil}'
+ LIB=lib
++ TARGETCPU="%{_target_cpu}"
+
+ # XXX FIXME: incomplete and quite likely wrong too in places,
+ # consult various arch folks for correct names etc.
+@@ -82,7 +83,15 @@
+ ISANAME=x86
+ ISABITS=64
+ CANONARCH=x86_64
+- CANONCOLOR=3
++ CANONCOLOR=7
++ ;;
++ x32)
++ ISANAME=x86
++ ISABITS=32
++ CANONARCH=x32
++ CANONCOLOR=4
++ FORCE_RPMRC_GNU="${RPMRC_GNU}x32"
++ TARGETCPU="x86_64"
+ ;;
+ ia64)
+ ISANAME=ia
+@@ -190,10 +199,14 @@
+ # skip architectures for which we dont have full config parameters
+ [ -z "$CANONARCH" ] && continue
+
+- if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then
++ if [ "$OS" = "linux" ] && [ "$CANONARCH" = "x86_64" ]; then
+ LIB=${LIB}64
+ fi
+
++ if [ "$OS" = "linux" ] && [ "$CANONARCH" = "x32" ]; then
++ LIB=${LIB}x32
++ fi
++
+ PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
+ [ -d $PPD ] || mkdir -p $PPD
+
+@@ -201,7 +214,8 @@
+ | sed -e "s,@RPMRC_OPTFLAGS@,$RPMRC_OPTFLAGS," \
+ -e "s,@RPMCANONARCH@,$CANONARCH,g" \
+ -e "s,@RPMCANONCOLOR@,$CANONCOLOR," \
+- -e "s,@RPMRC_GNU@,$RPMRC_GNU," \
++ -e "s,@RPMRC_GNU@,${FORCE_RPMRC_GNU:-$RPMRC_GNU}," \
++ -e "s,@TARGETCPU@,$TARGETCPU," \
+ -e "s,@LIB@,$LIB," \
+ -e "s,@ARCH_INSTALL_POST@,$ARCH_INSTALL_POST," \
+ -e '/\${\w*:-/!s,\${,%{_,' \
+@@ -212,6 +226,8 @@
+ | ${FILTER} \
+ > ${PPD}/macros
+
++ FORCE_RPMRC_GNU=
++
+ done
+
+ # gently adjust undefined autoconf variables to rpm macros...
+diff -ur rpm-4.15.1.orig/platform.in rpm-4.15.1/platform.in
+--- rpm-4.15.1.orig/platform.in 2019-11-13 10:19:29.371710954 +0100
++++ rpm-4.15.1/platform.in 2019-12-29 14:47:30.886959421 +0100
+@@ -8,7 +8,7 @@
+ %_vendor @RPMCANONVENDOR@
+ %_os @RPMCANONOS@
+ %_gnu @RPMRC_GNU@
+-%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}
++%_target_platform @TARGETCPU@-%{_vendor}-%{_target_os}%{?_gnu}
+ %optflags @RPMRC_OPTFLAGS@
+
+ %__isa_name @ISANAME@
+diff -ur rpm-4.15.1.orig/rpmrc.in rpm-4.15.1/rpmrc.in
+--- rpm-4.15.1.orig/rpmrc.in 2019-11-13 10:19:29.418711227 +0100
++++ rpm-4.15.1/rpmrc.in 2019-12-29 14:51:20.293119352 +0100
+@@ -24,6 +24,7 @@
+ optflags: x86_64 -O2 -g
+ optflags: amd64 -O2 -g
+ optflags: ia32e -O2 -g
++optflags: x32 -O2 -g -mtune=generic -march=x86-64
+
+ optflags: alpha -O2 -g -mieee
+ optflags: alphaev5 -O2 -g -mieee -mtune=ev5
+@@ -155,6 +156,8 @@
+
+ archcolor: riscv64 2
+
++archcolor: x32 4
++
+ #############################################################
+ # Canonical arch names and numbers
+
+@@ -170,6 +173,7 @@
+ arch_canon: amd64: amd64 1
+ arch_canon: ia32e: ia32e 1
+ arch_canon: em64t: em64t 1
++arch_canon: x32: x32 1
+
+ arch_canon: alpha: alpha 2
+ arch_canon: alphaev5: alphaev5 2
+@@ -379,6 +383,8 @@
+ buildarchtranslate: amd64: x86_64
+ buildarchtranslate: ia32e: x86_64
+
++buildarchtranslate: x32: x32
++
+ buildarchtranslate: sh3: sh3
+ buildarchtranslate: sh4: sh4
+ buildarchtranslate: sh4a: sh4
+@@ -490,6 +496,8 @@
+ arch_compat: amd64: x86_64 em64t athlon noarch
+ arch_compat: ia32e: x86_64 em64t athlon noarch
+
++arch_compat: x32: x32 noarch
++
+ arch_compat: sh3: noarch
+ arch_compat: sh4: noarch
+ arch_compat: sh4a: sh4
+@@ -628,6 +636,8 @@
+ buildarch_compat: amd64: x86_64
+ buildarch_compat: ia32e: x86_64
+
++buildarch_compat: x32: noarch
++
+ buildarch_compat: sh3: noarch
+ buildarch_compat: sh4: noarch
+ buildarch_compat: sh4a: sh4
+diff -ur rpm-4.15.1.orig/tools/elfdeps.c rpm-4.15.1/tools/elfdeps.c
+--- rpm-4.15.1.orig/tools/elfdeps.c 2019-06-26 16:17:31.462985619 +0200
++++ rpm-4.15.1/tools/elfdeps.c 2019-12-29 14:22:05.339471071 +0100
+@@ -94,6 +94,9 @@
+ break;
+ }
+ }
++ if ((ehdr->e_ident[EI_CLASS] == ELFCLASS32) && (ehdr->e_machine == EM_X86_64)) {
++ marker = "(x32bit)";
++ }
+ return marker;
+ }
+
+--- rpm-4.15.1/fileattrs/pythondist.attr~ 2019-06-26 23:17:31.000000000 +0900
++++ rpm-4.15.1/fileattrs/pythondist.attr 2020-01-04 23:34:05.680366882 +0900
+@@ -1,3 +1,3 @@
+ %__pythondist_provides %{_rpmconfigdir}/pythondistdeps.py --provides --majorver-provides
+ %__pythondist_requires %{_rpmconfigdir}/pythondistdeps.py --requires
+-%__pythondist_path /lib(64)?/python[[:digit:]]\\.[[:digit:]]+/site-packages/[^/]+\\.(dist-info|egg-info|egg-link)$
++%__pythondist_path /lib(64|x32)?/python[[:digit:]]\\.[[:digit:]]+/site-packages/[^/]+\\.(dist-info|egg-info|egg-link)$
+--- rpm-4.16.0/fileattrs/python.attr.orig 2020-08-31 11:14:07.991087349 +0200
++++ rpm-4.16.0/fileattrs/python.attr 2020-10-03 10:47:16.560360859 +0200
+@@ -14,14 +14,15 @@
+ %__python_requires() %{lua:
+ -- Match buildroot paths of the form
+ -- /PATH/OF/BUILDROOT/usr/lib/pythonMAJOR.MINOR/ and
+- -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/
++ -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/ and
++ -- /PATH/OF/BUILDROOT/usr/libx32/pythonMAJOR.MINOR/
+ -- generating a line of the form:
+ -- python(abi) = MAJOR.MINOR
+ local path = rpm.expand('%1')
+- if path:match('/usr/lib%d*/python%d+%.%d+/.*') then
+- local requires = path:gsub('.*/usr/lib%d*/python(%d+%.%d+)/.*', 'python(abi) = %1')
++ if path:match('/usr/lib%w*/python%d+%.%d+/.*') then
++ local requires = path:gsub('.*/usr/lib%w*/python(%d+%.%d+)/.*', 'python(abi) = %1')
+ print(requires)
+ end
+ }
+
+-%__python_path ^((%{_prefix}/lib(64)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$
++%__python_path ^((%{_prefix}/lib(64|x32)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$