- update to rpm-4.11.1
OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=275
This commit is contained in:
parent
8d667a3d2a
commit
476eac8c55
@ -1,26 +1,26 @@
|
|||||||
--- tools/elfdeps.c.orig 2011-06-03 13:12:32.000000000 +0000
|
--- tools/elfdeps.c.orig 2013-01-30 15:33:12.000000000 +0000
|
||||||
+++ tools/elfdeps.c 2011-06-03 13:17:45.000000000 +0000
|
+++ tools/elfdeps.c 2013-07-12 12:21:47.000000000 +0000
|
||||||
@@ -14,6 +14,7 @@
|
@@ -15,6 +15,7 @@
|
||||||
|
|
||||||
int filter_private = 0;
|
int filter_private = 0;
|
||||||
int soname_only = 0;
|
int soname_only = 0;
|
||||||
|
int fake_soname = 1;
|
||||||
+int assume_exec = 0;
|
+int assume_exec = 0;
|
||||||
|
|
||||||
typedef struct elfInfo_s {
|
typedef struct elfInfo_s {
|
||||||
Elf *elf;
|
Elf *elf;
|
||||||
@@ -226,7 +227,7 @@ static int processFile(const char *fn, i
|
@@ -235,7 +236,7 @@ static int processFile(const char *fn, i
|
||||||
ei->isElf64 = 0;
|
if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) {
|
||||||
#endif
|
ei->marker = mkmarker(ehdr);
|
||||||
ei->isDSO = (ehdr->e_type == ET_DYN);
|
ei->isDSO = (ehdr->e_type == ET_DYN);
|
||||||
- ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
- ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
||||||
+ ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
+ ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
||||||
|
|
||||||
processSections(ei);
|
processSections(ei);
|
||||||
}
|
}
|
||||||
@@ -279,6 +280,7 @@ int main(int argc, char *argv[])
|
@@ -292,6 +293,7 @@ int main(int argc, char *argv[])
|
||||||
{ "requires", 'R', POPT_ARG_VAL, &requires, -1, NULL, NULL },
|
|
||||||
{ "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL },
|
{ "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL },
|
||||||
{ "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL },
|
{ "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL },
|
||||||
|
{ "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL },
|
||||||
+ { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
|
+ { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
|
||||||
POPT_AUTOHELP
|
POPT_AUTOHELP
|
||||||
POPT_TABLEEND
|
POPT_TABLEEND
|
||||||
|
@ -1,18 +1,12 @@
|
|||||||
Exclude /usr/share/info/dir from check-files. Probably only
|
Exclude /usr/share/info/dir from check-files. Probably only
|
||||||
interesting for SUSE.
|
interesting for SUSE.
|
||||||
|
|
||||||
Index: scripts/check-files
|
--- scripts/check-files.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
===================================================================
|
+++ scripts/check-files 2013-07-12 11:45:37.000000000 +0000
|
||||||
--- scripts/check-files.orig
|
@@ -28,5 +28,5 @@ trap "rm -f \"${FILES_DISK}\"" 0 2 3 5 1
|
||||||
+++ scripts/check-files
|
# Find non-directory files in the build root and compare to the manifest.
|
||||||
@@ -22,7 +22,9 @@ LC_ALL=C sort > $FILES_RPM
|
# TODO: regex chars in last sed(1) expression should be escaped
|
||||||
|
find "${RPM_BUILD_ROOT}" -type f -o -type l | LC_ALL=C sort > "${FILES_DISK}"
|
||||||
|
-LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp'
|
||||||
|
+LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n -e 's|^< '"${RPM_BUILD_ROOT}"'/usr/share/info/dir$||' -e 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp'
|
||||||
|
|
||||||
diff -d "$FILES_DISK" "$FILES_RPM" | grep "^< " | cut -c3- |
|
|
||||||
while read f; do
|
|
||||||
- echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g"
|
|
||||||
+ if test "$RPM_BUILD_ROOT/usr/share/info/dir" != "$f" ; then
|
|
||||||
+ echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g"
|
|
||||||
+ fi
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f $FILES_DISK
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
|||||||
Always use DB_PRIVATE. Unfortunately no longer configurable
|
Always use DB_PRIVATE. Unfortunately no longer configurable
|
||||||
in the macros file.
|
in the macros file.
|
||||||
|
|
||||||
--- ./lib/backend/db3.c.orig 2012-06-01 13:34:25.000000000 +0000
|
--- ./lib/backend/db3.c.orig 2013-07-12 12:09:45.000000000 +0000
|
||||||
+++ ./lib/backend/db3.c 2012-06-01 13:34:32.000000000 +0000
|
+++ ./lib/backend/db3.c 2013-07-12 12:11:07.000000000 +0000
|
||||||
@@ -124,7 +124,7 @@ static int db_init(rpmdb rdb, const char
|
@@ -164,7 +164,7 @@ static int db_init(rpmdb rdb, const char
|
||||||
int retry_open = 2;
|
int lockfd = -1;
|
||||||
struct dbConfig_s * cfg = &rdb->cfg;
|
struct dbConfig_s * cfg = &rdb->cfg;
|
||||||
/* This is our setup, thou shall not have other setups before us */
|
/* This is our setup, thou shall not have other setups before us */
|
||||||
- uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB);
|
- uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- ./lib/rpmdb.c.orig 2011-09-19 10:02:08.000000000 +0000
|
--- ./lib/rpmdb.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ ./lib/rpmdb.c 2011-10-19 15:06:25.000000000 +0000
|
+++ ./lib/rpmdb.c 2013-07-12 11:28:22.000000000 +0000
|
||||||
@@ -630,10 +630,12 @@ int rpmdbClose(rpmdb db)
|
@@ -730,10 +730,12 @@ int rpmdbClose(rpmdb db)
|
||||||
{
|
{
|
||||||
rpmdb * prev, next;
|
rpmdb * prev, next;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
@ -13,7 +13,7 @@
|
|||||||
(void) rpmdbUnlink(db);
|
(void) rpmdbUnlink(db);
|
||||||
|
|
||||||
if (db->nrefs > 0)
|
if (db->nrefs > 0)
|
||||||
@@ -661,7 +663,7 @@ int rpmdbClose(rpmdb db)
|
@@ -761,7 +763,7 @@ int rpmdbClose(rpmdb db)
|
||||||
|
|
||||||
db = _free(db);
|
db = _free(db);
|
||||||
|
|
||||||
@ -22,8 +22,8 @@
|
|||||||
(void) rpmsqEnable(-SIGHUP, NULL);
|
(void) rpmsqEnable(-SIGHUP, NULL);
|
||||||
(void) rpmsqEnable(-SIGINT, NULL);
|
(void) rpmsqEnable(-SIGINT, NULL);
|
||||||
(void) rpmsqEnable(-SIGTERM, NULL);
|
(void) rpmsqEnable(-SIGTERM, NULL);
|
||||||
@@ -730,7 +732,7 @@ static int openDatabase(const char * pre
|
@@ -830,7 +832,7 @@ static int openDatabase(const char * pre
|
||||||
/* Try to ensure db home exists, error out if we cant even create */
|
/* Try to ensure db home exists, error out if we can't even create */
|
||||||
rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid());
|
rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid());
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
- if (rpmdbRock == NULL) {
|
- if (rpmdbRock == NULL) {
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
Index: tools/debugedit.c
|
|
||||||
===================================================================
|
|
||||||
--- tools/debugedit.c.orig
|
|
||||||
+++ tools/debugedit.c
|
|
||||||
@@ -1223,6 +1223,10 @@ edit_dwarf2 (DSO *dso)
|
|
||||||
if (rtype != R_ALPHA_REFLONG)
|
|
||||||
goto fail;
|
|
||||||
break;
|
|
||||||
+ case EM_AARCH64:
|
|
||||||
+ if (rtype != R_AARCH64_ABS32)
|
|
||||||
+ goto fail;
|
|
||||||
+ break;
|
|
||||||
default:
|
|
||||||
fail:
|
|
||||||
error (1, 0, "%s: Unhandled relocation %d in .debug_info section",
|
|
@ -219,7 +219,7 @@ Index: build/files.c
|
|||||||
+ new debuginfo package. */
|
+ new debuginfo package. */
|
||||||
+ if (files)
|
+ if (files)
|
||||||
+ {
|
+ {
|
||||||
+ dbg = newPackage (spec);
|
+ dbg = newPackage(NULL, spec->pool, &spec->packages);
|
||||||
+ headerNVR (pkg->header, &name, NULL, NULL);
|
+ headerNVR (pkg->header, &name, NULL, NULL);
|
||||||
+ /* Set name, summary and group. */
|
+ /* Set name, summary and group. */
|
||||||
+ snprintf (tmp, 1024, "%s-debuginfo", name);
|
+ snprintf (tmp, 1024, "%s-debuginfo", name);
|
||||||
|
130
findksyms.diff
130
findksyms.diff
@ -1,109 +1,43 @@
|
|||||||
SUSE specific kernel provides/requires scripts
|
SUSE specific kernel provides/requires scripts
|
||||||
|
|
||||||
--- scripts/find-provides.ksyms
|
--- scripts/find-provides.ksyms.orig 2013-07-12 14:08:40.000000000 +0000
|
||||||
+++ scripts/find-provides.ksyms
|
+++ scripts/find-provides.ksyms 2013-07-12 14:08:54.000000000 +0000
|
||||||
@@ -0,0 +1,41 @@
|
@@ -0,0 +1,17 @@
|
||||||
+#! /bin/sh
|
|
||||||
+
|
|
||||||
+IFS=$'\n'
|
|
||||||
+
|
|
||||||
+case "$1" in
|
|
||||||
+kernel-module-*) ;; # Fedora kernel module package names start with
|
|
||||||
+ # kernel-module.
|
|
||||||
+kernel*) kernel_flavor=${1#kernel-} ;;
|
|
||||||
+esac
|
|
||||||
+
|
|
||||||
+trap 'rm -f "$tmp"' EXIT
|
|
||||||
+tmp=$(mktemp)
|
|
||||||
+while read f; do
|
|
||||||
+ test -e "$f" || continue
|
|
||||||
+ case "$f" in
|
|
||||||
+ *.debug)
|
|
||||||
+ continue
|
|
||||||
+ ;;
|
|
||||||
+ */lib/modules/*/*.ko | */lib/modules/*/*.ko.gz | */boot/vmlinu[xz]*)
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ continue
|
|
||||||
+ esac
|
|
||||||
+ unzip=false
|
|
||||||
+ case "$f" in
|
|
||||||
+ *.gz | */boot/vmlinuz*)
|
|
||||||
+ unzip=true
|
|
||||||
+ esac
|
|
||||||
+ if $unzip && gzip -cd "$f" >"$tmp"; then
|
|
||||||
+ f=$tmp
|
|
||||||
+ fi
|
|
||||||
+ flavor=$(/sbin/modinfo -F vermagic "$f")
|
|
||||||
+ flavor=${flavor%% *}
|
|
||||||
+ flavor=${flavor##*-}
|
|
||||||
+ if test -z "$flavor"; then
|
|
||||||
+ flavor=$kernel_flavor
|
|
||||||
+ fi
|
|
||||||
+ nm "$f" \
|
|
||||||
+ | sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p"
|
|
||||||
+done \
|
|
||||||
+| sort -u
|
|
||||||
--- scripts/find-requires.ksyms
|
|
||||||
+++ scripts/find-requires.ksyms
|
|
||||||
@@ -0,0 +1,57 @@
|
|
||||||
+#! /bin/bash
|
+#! /bin/bash
|
||||||
+
|
+
|
||||||
+IFS=$'\n'
|
+IFS=$'\n'
|
||||||
+
|
+
|
||||||
+case "$1" in
|
+while read f; do
|
||||||
+kernel-module-*) ;; # Fedora kernel module package names start with
|
+ test -e "$f" || continue
|
||||||
+ # kernel-module.
|
+ case "$f" in
|
||||||
+kernel*) is_kernel_package=1 ;;
|
+ *.debug)
|
||||||
+esac
|
+ ;;
|
||||||
|
+ */boot/vmlinu[xz]-*)
|
||||||
|
+ flavor=${f##*/vmlinu[xz]-}
|
||||||
|
+ flavor=${flavor%.gz}
|
||||||
|
+ echo "kernel-uname-r = $flavor"
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+done \
|
||||||
|
+| sort -u
|
||||||
|
--- scripts/find-requires.ksyms.orig 2013-07-12 14:08:45.000000000 +0000
|
||||||
|
+++ scripts/find-requires.ksyms 2013-07-12 14:08:33.000000000 +0000
|
||||||
|
@@ -0,0 +1,15 @@
|
||||||
|
+#! /bin/bash
|
||||||
+
|
+
|
||||||
+all_provides() {
|
+IFS=$'\n'
|
||||||
+ for module in "$@"; do
|
|
||||||
+ nm "$module"
|
|
||||||
+ done \
|
|
||||||
+ | sed -r -ne 's:^0*([0-9a-f]+) A __crc_(.+):\1\t\2:p' \
|
|
||||||
+ | sort -t $'\t' -k2 -u
|
|
||||||
+}
|
|
||||||
+
|
+
|
||||||
+all_requires() {
|
+while read f; do
|
||||||
+ for module in "$@"; do
|
+ test -e "$f" || continue
|
||||||
+ set -- $(/sbin/modinfo -F vermagic "$module" | sed -e 's: .*::' -e q)
|
+ case "$f" in
|
||||||
+ /sbin/modprobe --dump-modversions "$module" \
|
+ */lib/modules/*/*.ko | */lib/modules/*/*.ko.gz)
|
||||||
+ | sed -r -e 's:^0x0*::' -e 's:$:\t'"$1"':'
|
+ flavor=${f#*/lib/modules/}
|
||||||
+ done \
|
+ flavor=${f%%/*}
|
||||||
+ | sort -t $'\t' -k2 -u
|
+ echo "kernel-uname-r = $flavor"
|
||||||
+}
|
+ ;;
|
||||||
+
|
+ esac
|
||||||
+if ! [ -z "$is_kernel_package" -a -e /sbin/modinfo -a -e /sbin/modprobe ]; then
|
+done \
|
||||||
+ cat > /dev/null
|
+| sort -u
|
||||||
+ exit 0
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+modules=($(grep -E '/lib/modules/.+\.ko$'))
|
|
||||||
+if [ ${#modules[@]} -gt 0 ]; then
|
|
||||||
+ symset_table=$(mktemp -t ${0##*/}.XXXXX)
|
|
||||||
+ /usr/lib/rpm/symset-table | sort -t $'\t' -k 1,1 > $symset_table
|
|
||||||
+
|
|
||||||
+ join -t $'\t' -j 1 -a 2 $symset_table <(
|
|
||||||
+ # Filter out requirements that we fulfill ourself.
|
|
||||||
+ join -t $'\t' -j 2 -v 1 \
|
|
||||||
+ <(all_requires "${modules[@]}") \
|
|
||||||
+ <(all_provides "${modules[@]}") \
|
|
||||||
+ | awk '
|
|
||||||
+ BEGIN { FS = "\t" ; OFS = "\t" }
|
|
||||||
+ { print $3 "/" $2 "/" $1 }
|
|
||||||
+ ' \
|
|
||||||
+ | sort -t $'\t' -k 1,1 -u) \
|
|
||||||
+ | sort -u \
|
|
||||||
+ | awk '
|
|
||||||
+ { FS = "\t" ; OFS = "\t" }
|
|
||||||
+ { split($1, arr, "/")
|
|
||||||
+ flavor = gensub(/.*-/, "", "", arr[1]) }
|
|
||||||
+ NF == 3 { print "kernel(" flavor ":" $2 ") = " $3
|
|
||||||
+ next }
|
|
||||||
+ { print "ksym(" flavor ":" arr[3] ") = " arr[2] }
|
|
||||||
+ '
|
|
||||||
+fi
|
|
||||||
--- scripts/Makefile.am
|
--- scripts/Makefile.am
|
||||||
+++ scripts/Makefile.am
|
+++ scripts/Makefile.am
|
||||||
@@ -15,6 +15,7 @@
|
@@ -15,6 +15,7 @@
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Add support for supplements to the internal dependency generator.
|
Add support for supplements to the internal dependency generator.
|
||||||
|
|
||||||
--- ./build/rpmfc.c.orig 2012-06-01 13:44:21.000000000 +0000
|
--- ./build/rpmfc.c.orig 2013-07-12 12:18:29.000000000 +0000
|
||||||
+++ ./build/rpmfc.c 2012-06-01 14:00:45.000000000 +0000
|
+++ ./build/rpmfc.c 2013-07-12 12:18:48.000000000 +0000
|
||||||
@@ -57,6 +57,7 @@ struct rpmfc_s {
|
@@ -58,6 +58,7 @@ struct rpmfc_s {
|
||||||
|
|
||||||
rpmds provides; /*!< (no. provides) package provides */
|
rpmds provides; /*!< (no. provides) package provides */
|
||||||
rpmds requires; /*!< (no. requires) package requires */
|
rpmds requires; /*!< (no. requires) package requires */
|
||||||
@ -10,7 +10,7 @@ Add support for supplements to the internal dependency generator.
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct rpmfcTokens_s {
|
struct rpmfcTokens_s {
|
||||||
@@ -545,6 +546,22 @@ static int rpmfcHelperRequires(rpmfc fc,
|
@@ -546,6 +547,22 @@ static int rpmfcHelperRequires(rpmfc fc,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ Add support for supplements to the internal dependency generator.
|
|||||||
/* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */
|
/* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */
|
||||||
static const struct rpmfcTokens_s rpmfcTokens[] = {
|
static const struct rpmfcTokens_s rpmfcTokens[] = {
|
||||||
{ "directory", RPMFC_INCLUDE },
|
{ "directory", RPMFC_INCLUDE },
|
||||||
@@ -762,6 +779,7 @@ rpmfc rpmfcFree(rpmfc fc)
|
@@ -763,6 +780,7 @@ rpmfc rpmfcFree(rpmfc fc)
|
||||||
|
|
||||||
rpmdsFree(fc->provides);
|
rpmdsFree(fc->provides);
|
||||||
rpmdsFree(fc->requires);
|
rpmdsFree(fc->requires);
|
||||||
@ -41,7 +41,7 @@ Add support for supplements to the internal dependency generator.
|
|||||||
memset(fc, 0, sizeof(*fc)); /* trash and burn */
|
memset(fc, 0, sizeof(*fc)); /* trash and burn */
|
||||||
free(fc);
|
free(fc);
|
||||||
}
|
}
|
||||||
@@ -793,6 +811,11 @@ rpmds rpmfcRequires(rpmfc fc)
|
@@ -794,6 +812,11 @@ rpmds rpmfcRequires(rpmfc fc)
|
||||||
return (fc != NULL ? fc->requires : NULL);
|
return (fc != NULL ? fc->requires : NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,8 +60,8 @@ Add support for supplements to the internal dependency generator.
|
|||||||
+ rpmfcHelperSupplements(fc, *fattr);
|
+ rpmfcHelperSupplements(fc, *fattr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* No more additions after this, freeze pool to minimize memory use */
|
||||||
@@ -856,6 +880,11 @@ rpmRC rpmfcApply(rpmfc fc)
|
@@ -858,6 +882,11 @@ rpmRC rpmfcApply(rpmfc fc)
|
||||||
dix = rpmdsFind(fc->requires, ds);
|
dix = rpmdsFind(fc->requires, ds);
|
||||||
rpmdsFree(ds);
|
rpmdsFree(ds);
|
||||||
break;
|
break;
|
||||||
@ -73,7 +73,7 @@ Add support for supplements to the internal dependency generator.
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dix < 0)
|
if (dix < 0)
|
||||||
@@ -1347,6 +1376,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
|
@@ -1341,6 +1370,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,8 +92,8 @@ Add support for supplements to the internal dependency generator.
|
|||||||
/* Add dependency dictionary(#dependencies) */
|
/* Add dependency dictionary(#dependencies) */
|
||||||
if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) {
|
if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) {
|
||||||
headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
|
headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
|
||||||
--- ./build/rpmfc.h.orig 2012-06-01 13:53:12.000000000 +0000
|
--- ./build/rpmfc.h.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ ./build/rpmfc.h 2012-06-01 13:53:44.000000000 +0000
|
+++ ./build/rpmfc.h 2013-07-12 12:18:48.000000000 +0000
|
||||||
@@ -106,6 +106,13 @@ rpmds rpmfcProvides(rpmfc fc);
|
@@ -106,6 +106,13 @@ rpmds rpmfcProvides(rpmfc fc);
|
||||||
*/
|
*/
|
||||||
rpmds rpmfcRequires(rpmfc fc);
|
rpmds rpmfcRequires(rpmfc fc);
|
||||||
|
76
getauxval.diff
Normal file
76
getauxval.diff
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
commit 60835b20180c1be351ff95fa8c8d930afada0e4c
|
||||||
|
Author: Kirill A. Shutemov <kirill@shutemov.name>
|
||||||
|
Date: Mon Jul 1 03:25:32 2013 +0300
|
||||||
|
|
||||||
|
Use getauxval(3) to read auxv data
|
||||||
|
|
||||||
|
glibc >= 2.16 provides getauxval(): a reliable way to retrieve a value
|
||||||
|
from the auxiliary vector. It doesn't rely on /proc filesystem.
|
||||||
|
|
||||||
|
Let's switch to it and get rid of /proc dependency.
|
||||||
|
|
||||||
|
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
|
||||||
|
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
|
||||||
|
--- configure.ac.orig 2013-07-12 12:25:38.000000000 +0000
|
||||||
|
+++ configure.ac 2013-07-12 12:35:18.000000000 +0000
|
||||||
|
@@ -518,6 +518,7 @@ dnl Checks for library functions.
|
||||||
|
AC_CHECK_FUNCS(putenv)
|
||||||
|
AC_CHECK_FUNCS(mempcpy)
|
||||||
|
AC_CHECK_FUNCS(fdatasync)
|
||||||
|
+AC_CHECK_FUNCS(getauxval)
|
||||||
|
|
||||||
|
AC_REPLACE_FUNCS(stpcpy stpncpy)
|
||||||
|
|
||||||
|
--- lib/rpmrc.c.orig 2013-07-12 12:25:38.000000000 +0000
|
||||||
|
+++ lib/rpmrc.c 2013-07-12 12:34:34.000000000 +0000
|
||||||
|
@@ -20,6 +20,10 @@
|
||||||
|
#define __power_pc() 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef HAVE_GETAUXVAL
|
||||||
|
+#include <sys/auxv.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include <rpm/rpmlib.h> /* RPM_MACTABLE*, Rc-prototypes */
|
||||||
|
#include <rpm/rpmmacro.h>
|
||||||
|
#include <rpm/rpmfileutil.h>
|
||||||
|
@@ -922,13 +926,19 @@ static int is_geode(void)
|
||||||
|
|
||||||
|
#if defined(__linux__) && defined(__powerpc__)
|
||||||
|
/**
|
||||||
|
- * Populate rpmat structure with parsed info from /proc/self/auxv
|
||||||
|
+ * Populate rpmat structure with auxv values
|
||||||
|
*/
|
||||||
|
-static void parse_auxv(void)
|
||||||
|
+static void read_auxv(void)
|
||||||
|
{
|
||||||
|
static int oneshot = 1;
|
||||||
|
|
||||||
|
if (oneshot) {
|
||||||
|
+#ifdef HAVE_GETAUXVAL
|
||||||
|
+ rpmat.platform = (char *) getauxval(AT_PLATFORM);
|
||||||
|
+ if (!rpmat.platform)
|
||||||
|
+ rpmat.platform = "";
|
||||||
|
+ rpmat.hwcap = getauxval(AT_HWCAP);
|
||||||
|
+#else
|
||||||
|
rpmat.platform = "";
|
||||||
|
int fd = open("/proc/self/auxv", O_RDONLY);
|
||||||
|
|
||||||
|
@@ -953,6 +963,7 @@ static void parse_auxv(void)
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
oneshot = 0; /* only try once even if it fails */
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
@@ -972,7 +983,7 @@ static void defaultMachine(const char **
|
||||||
|
|
||||||
|
#if defined(__linux__) && defined(__powerpc__)
|
||||||
|
/* Populate rpmat struct with hw info */
|
||||||
|
- parse_auxv();
|
||||||
|
+ read_auxv();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while (!gotDefaults) {
|
@ -1,24 +1,21 @@
|
|||||||
--- ./macros.in.orig 2012-05-22 10:53:51.000000000 +0000
|
--- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ ./macros.in 2012-06-01 12:39:35.000000000 +0000
|
+++ ./macros.in 2013-07-12 11:53:07.000000000 +0000
|
||||||
@@ -181,22 +181,22 @@
|
@@ -185,22 +185,22 @@
|
||||||
|
|
||||||
# Template for debug information sub-package.
|
# Template for debug information sub-package.
|
||||||
%debug_package \
|
%debug_package \
|
||||||
-%ifnarch noarch\
|
-%ifnarch noarch\
|
||||||
%global __debug_package 1\
|
%global __debug_package 1\
|
||||||
-%package debug\
|
%package debuginfo\
|
||||||
+%package debuginfo\
|
|
||||||
Summary: Debug information for package %{name}\
|
Summary: Debug information for package %{name}\
|
||||||
Group: Development/Debug\
|
Group: Development/Debug\
|
||||||
AutoReqProv: 0\
|
AutoReqProv: 0\
|
||||||
-%description debug\
|
|
||||||
+#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\
|
+#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\
|
||||||
+%description debuginfo\
|
%description debuginfo\
|
||||||
This package provides debug information for package %{name}.\
|
This package provides debug information for package %{name}.\
|
||||||
Debug information is useful when developing applications that use this\
|
Debug information is useful when developing applications that use this\
|
||||||
package or when debugging this package.\
|
package or when debugging this package.\
|
||||||
-%files debug -f debugfiles.list\
|
%files debuginfo -f debugfiles.list\
|
||||||
+%files debuginfo -f debugfiles.list\
|
|
||||||
%defattr(-,root,root)\
|
%defattr(-,root,root)\
|
||||||
-%endif\
|
-%endif\
|
||||||
%{nil}
|
%{nil}
|
||||||
@ -26,10 +23,10 @@
|
|||||||
-%_defaultdocdir %{_datadir}/doc
|
-%_defaultdocdir %{_datadir}/doc
|
||||||
+%_defaultdocdir %{_datadir}/doc/packages
|
+%_defaultdocdir %{_datadir}/doc/packages
|
||||||
+%_docdir_fmt %%{NAME}
|
+%_docdir_fmt %%{NAME}
|
||||||
|
%_defaultlicensedir %{_datadir}/licenses
|
||||||
|
|
||||||
# The path to the gzip executable (legacy, use %{__gzip} instead).
|
# The path to the gzip executable (legacy, use %{__gzip} instead).
|
||||||
%_gzipbin %{__gzip}
|
@@ -238,7 +238,8 @@ package or when debugging this package.\
|
||||||
@@ -233,7 +233,8 @@ package or when debugging this package.\
|
|
||||||
%_tmppath %{_var}/tmp
|
%_tmppath %{_var}/tmp
|
||||||
|
|
||||||
# Path to top of build area.
|
# Path to top of build area.
|
||||||
@ -39,7 +36,7 @@
|
|||||||
|
|
||||||
# The path to the unzip executable (legacy, use %{__unzip} instead).
|
# The path to the unzip executable (legacy, use %{__unzip} instead).
|
||||||
%_unzipbin %{__unzip}
|
%_unzipbin %{__unzip}
|
||||||
@@ -336,7 +337,7 @@ package or when debugging this package.\
|
@@ -341,7 +342,7 @@ package or when debugging this package.\
|
||||||
# "w7.lzdio" lzma-alone level 7, lzma's default
|
# "w7.lzdio" lzma-alone level 7, lzma's default
|
||||||
#
|
#
|
||||||
#%_source_payload w9.gzdio
|
#%_source_payload w9.gzdio
|
||||||
@ -48,7 +45,7 @@
|
|||||||
|
|
||||||
# Algorithm to use for generating file checksum digests on build.
|
# Algorithm to use for generating file checksum digests on build.
|
||||||
# If not specified or 0, MD5 is used.
|
# If not specified or 0, MD5 is used.
|
||||||
@@ -435,16 +436,22 @@ package or when debugging this package.\
|
@@ -440,16 +441,22 @@ package or when debugging this package.\
|
||||||
# Directories whose contents should be considered as documentation.
|
# Directories whose contents should be considered as documentation.
|
||||||
%__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
|
%__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
|
||||||
|
|
||||||
@ -73,7 +70,7 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Path to file attribute classifications for automatic dependency
|
# Path to file attribute classifications for automatic dependency
|
||||||
@@ -507,10 +514,10 @@ package or when debugging this package.\
|
@@ -512,10 +519,10 @@ package or when debugging this package.\
|
||||||
# Misc BDB tuning options
|
# Misc BDB tuning options
|
||||||
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb
|
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb
|
||||||
|
|
||||||
@ -86,7 +83,7 @@
|
|||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# ---- GPG/PGP/PGP5 signature macros.
|
# ---- GPG/PGP/PGP5 signature macros.
|
||||||
@@ -809,7 +816,7 @@ package or when debugging this package.\
|
@@ -816,7 +823,7 @@ package or when debugging this package.\
|
||||||
%_build_vendor %{_host_vendor}
|
%_build_vendor %{_host_vendor}
|
||||||
%_build_os %{_host_os}
|
%_build_os %{_host_os}
|
||||||
%_host @host@
|
%_host @host@
|
||||||
@ -95,7 +92,7 @@
|
|||||||
%_host_cpu @host_cpu@
|
%_host_cpu @host_cpu@
|
||||||
%_host_vendor @host_vendor@
|
%_host_vendor @host_vendor@
|
||||||
%_host_os @host_os@
|
%_host_os @host_os@
|
||||||
@@ -973,6 +980,183 @@ done \
|
@@ -980,6 +987,183 @@ done \
|
||||||
%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
|
%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
|
||||||
%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
|
%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
|
||||||
|
|
||||||
@ -279,7 +276,7 @@
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# arch macro for all Intel i?86 compatibile processors
|
# arch macro for all Intel i?86 compatibile processors
|
||||||
# (Note: This macro (and it's analogues) will probably be obsoleted when
|
# (Note: This macro (and it's analogues) will probably be obsoleted when
|
||||||
@@ -983,7 +1167,9 @@ done \
|
@@ -990,7 +1174,9 @@ done \
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# arch macro for all supported ARM processors
|
# arch macro for all supported ARM processors
|
||||||
@ -290,7 +287,7 @@
|
|||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# arch macro for all supported Sparc processors
|
# arch macro for all supported Sparc processors
|
||||||
@@ -1023,3 +1209,26 @@ done \
|
@@ -1110,3 +1296,26 @@ end}
|
||||||
|
|
||||||
# \endverbatim
|
# \endverbatim
|
||||||
#*/
|
#*/
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
Disable file coloring for SUSE systems
|
Disable file coloring for SUSE systems
|
||||||
|
|
||||||
--- build/rpmfc.c.orig 2012-06-01 13:37:51.000000000 +0000
|
--- build/rpmfc.c.orig 2013-07-12 12:12:45.000000000 +0000
|
||||||
+++ build/rpmfc.c 2012-06-01 13:37:21.000000000 +0000
|
+++ build/rpmfc.c 2013-07-12 12:15:51.000000000 +0000
|
||||||
@@ -1304,7 +1304,7 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
|
@@ -1305,7 +1305,8 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
|
||||||
goto exit;
|
|
||||||
|
|
||||||
/* Add per-file colors(#files) */
|
|
||||||
- if (rpmtdFromArgi(&td, RPMTAG_FILECOLORS, fc->fcolor)) {
|
|
||||||
+ if (rpmExpandNumeric("%{?_transaction_color}") != 0 && rpmtdFromArgi(&td, RPMTAG_FILECOLORS, fc->fcolor)) {
|
|
||||||
rpm_color_t *fcolor;
|
|
||||||
/* XXX Make sure only primary (i.e. Elf32/Elf64) colors are added. */
|
/* XXX Make sure only primary (i.e. Elf32/Elf64) colors are added. */
|
||||||
while ((fcolor = rpmtdNextUint32(&td))) {
|
for (int i = 0; i < fc->nfiles; i++)
|
||||||
|
fc->fcolor[i] &= 0x0f;
|
||||||
|
- headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles);
|
||||||
|
+ if (rpmExpandNumeric("%{?_transaction_color}") != 0)
|
||||||
|
+ headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles);
|
||||||
|
|
||||||
|
/* Add classes(#classes) */
|
||||||
|
for (rpmsid id = 1; id <= rpmstrPoolNumStr(fc->cdict); id++) {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
Don't let rpm complain about a missing /etc/magic.mgc file
|
Don't let rpm complain about a missing /etc/magic.mgc file
|
||||||
|
|
||||||
--- ./build/rpmfc.c.orig 2012-06-01 13:42:06.000000000 +0000
|
--- build/rpmfc.c.orig 2013-07-12 12:16:40.000000000 +0000
|
||||||
+++ ./build/rpmfc.c 2012-06-01 13:42:30.000000000 +0000
|
+++ build/rpmfc.c 2013-07-12 12:17:15.000000000 +0000
|
||||||
@@ -900,7 +900,7 @@ static int initAttrs(rpmfc fc)
|
@@ -901,7 +901,7 @@ static int initAttrs(rpmfc fc)
|
||||||
|
|
||||||
rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
|
rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
|
||||||
{
|
{
|
||||||
ARGV_t fcav = NULL;
|
|
||||||
- int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
|
- int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
|
||||||
+ int msflags = MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
|
+ int msflags = MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
|
||||||
magic_t ms = NULL;
|
magic_t ms = NULL;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: lib/psm.c
|
--- lib/psm.c.orig 2013-07-12 12:25:38.000000000 +0000
|
||||||
===================================================================
|
+++ lib/psm.c 2013-07-12 12:27:01.000000000 +0000
|
||||||
--- lib/psm.c
|
|
||||||
+++ lib/psm.c
|
|
||||||
@@ -807,6 +807,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
@@ -807,6 +807,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||||
case PSM_PROCESS:
|
case PSM_PROCESS:
|
||||||
if (psm->goal == PKG_INSTALL) {
|
if (psm->goal == PKG_INSTALL) {
|
||||||
@ -12,8 +10,8 @@ Index: lib/psm.c
|
|||||||
/* make sure first progress call gets made */
|
/* make sure first progress call gets made */
|
||||||
@@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
@@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||||
|
|
||||||
fsmrc = rpmfsmRun(FSM_PKGINSTALL, psm->ts, psm->te, psm->fi,
|
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
|
||||||
payload, psm, NULL, &psm->failedFile);
|
payload, psm, &psm->failedFile);
|
||||||
+ saved_errno = errno;
|
+ saved_errno = errno;
|
||||||
|
|
||||||
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS),
|
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS),
|
@ -1,7 +1,7 @@
|
|||||||
Don't complain about a bad md5 sum for repackaged rpms.
|
Don't complain about a bad md5 sum for repackaged rpms.
|
||||||
|
|
||||||
--- ./lib/psm.c.orig 2012-06-01 13:18:24.000000000 +0000
|
--- ./lib/psm.c.orig 2013-07-12 12:05:15.000000000 +0000
|
||||||
+++ ./lib/psm.c 2012-06-01 13:22:48.000000000 +0000
|
+++ ./lib/psm.c 2013-07-12 12:07:59.000000000 +0000
|
||||||
@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||||
rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0);
|
rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0);
|
||||||
|
|
||||||
@ -17,8 +17,8 @@ Don't complain about a bad md5 sum for repackaged rpms.
|
|||||||
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
|
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
|
||||||
+ (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
|
+ (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
|
||||||
+
|
+
|
||||||
fsmrc = rpmfsmRun(FSM_PKGINSTALL, psm->ts, psm->te, psm->fi,
|
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
|
||||||
payload, psm, NULL, &psm->failedFile);
|
payload, psm, &psm->failedFile);
|
||||||
|
|
||||||
@@ -827,6 +832,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
@@ -827,6 +832,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||||
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_DIGEST),
|
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_DIGEST),
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6260e765982936913ca877b042ed0ad863d656e06ec5badc94fa810d36b7368c
|
|
||||||
size 3574627
|
|
3
rpm-4.11.1.tar.bz2
Normal file
3
rpm-4.11.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5bbb0899ffdc997d399c4e96311f9cda5364f1fed5164aaf9db685784499ef8c
|
||||||
|
size 3778922
|
@ -1,660 +0,0 @@
|
|||||||
--- config.h.in
|
|
||||||
+++ config.h.in
|
|
||||||
@@ -13,6 +13,9 @@
|
|
||||||
/* Define to 1 if you have the `basename' function. */
|
|
||||||
#undef HAVE_BASENAME
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the <beecrypt/api.h> header file. */
|
|
||||||
+#undef HAVE_BEECRYPT_API_H
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the <bzlib.h> header file. */
|
|
||||||
#undef HAVE_BZLIB_H
|
|
||||||
|
|
||||||
@@ -206,6 +209,10 @@
|
|
||||||
*/
|
|
||||||
#undef LT_OBJDIR
|
|
||||||
|
|
||||||
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|
||||||
+ */
|
|
||||||
+#undef LT_OBJDIR
|
|
||||||
+
|
|
||||||
/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
|
|
||||||
*/
|
|
||||||
#undef MAJOR_IN_MKDEV
|
|
||||||
@@ -290,6 +297,9 @@
|
|
||||||
/* Build with acl support? */
|
|
||||||
#undef WITH_ACL
|
|
||||||
|
|
||||||
+/* Build with beecrypt instead of nss3 support? */
|
|
||||||
+#undef WITH_BEECRYPT
|
|
||||||
+
|
|
||||||
/* Build with capability support? */
|
|
||||||
#undef WITH_CAP
|
|
||||||
|
|
||||||
--- configure.ac
|
|
||||||
+++ configure.ac
|
|
||||||
@@ -239,12 +239,43 @@
|
|
||||||
AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
|
|
||||||
|
|
||||||
#=================
|
|
||||||
+# Check for beecrypt library if requested.
|
|
||||||
+AC_ARG_WITH(beecrypt, [ --with-beecrypt build with beecrypt support ],,[with_beecrypt=yes])
|
|
||||||
+AC_ARG_WITH(internal_beecrypt, [ --with-internal-beecrypt build with internal beecrypt library ],,[with_internal_beecrypt=yes])
|
|
||||||
+AM_CONDITIONAL([WITH_INTERNAL_BEECRYPT],[test "$with_internal_beecrypt" = yes])
|
|
||||||
+if test "$with_internal_beecrypt" = yes ; then
|
|
||||||
+ with_beecrypt=yes
|
|
||||||
+fi
|
|
||||||
+AM_CONDITIONAL([WITH_BEECRYPT],[test "$with_beecrypt" = yes])
|
|
||||||
+
|
|
||||||
+WITH_BEECRYPT_INCLUDE=
|
|
||||||
+WITH_BEECRYPT_LIB=
|
|
||||||
+if test "$with_beecrypt" = yes ; then
|
|
||||||
+ AC_DEFINE(WITH_BEECRYPT, 1, [Build with beecrypt instead of nss3 support?])
|
|
||||||
+ if test "$with_internal_beecrypt" = yes ; then
|
|
||||||
+ WITH_BEECRYPT_INCLUDE="-I\$(top_srcdir)/beecrypt"
|
|
||||||
+ AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
|
|
||||||
+ else
|
|
||||||
+ AC_CHECK_LIB(beecrypt, mpfprintln, [
|
|
||||||
+ WITH_BEECRYPT_LIB="-lbeecrypt"
|
|
||||||
+ ],[
|
|
||||||
+ AC_MSG_ERROR([missing required library 'beecrypt'])
|
|
||||||
+ ])
|
|
||||||
+ AC_CHECK_HEADER([beecrypt/api.h], [AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
|
|
||||||
+ ])
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+AC_SUBST(WITH_BEECRYPT_LIB)
|
|
||||||
+AC_SUBST(WITH_BEECRYPT_INCLUDE)
|
|
||||||
+
|
|
||||||
+#=================
|
|
||||||
# Check for NSS library.
|
|
||||||
# We need nss.h from NSS which needs nspr.h. Unfortunately both glibc and NSS
|
|
||||||
# have a header named nss.h... so make extra check for NSS's sechash.h
|
|
||||||
# which we use too and hopefully is slightly more unique to NSS.
|
|
||||||
WITH_NSS_INCLUDE=
|
|
||||||
WITH_NSS_LIB=
|
|
||||||
+if test "$with_beecrypt" != yes ; then
|
|
||||||
AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [
|
|
||||||
AC_MSG_ERROR([missing required NSPR / NSS header])
|
|
||||||
])
|
|
||||||
@@ -257,6 +288,7 @@
|
|
||||||
], [
|
|
||||||
AC_MSG_ERROR([missing required NSS library 'nss3'])
|
|
||||||
])
|
|
||||||
+fi
|
|
||||||
AC_SUBST(WITH_NSS_INCLUDE)
|
|
||||||
AC_SUBST(WITH_NSS_LIB)
|
|
||||||
|
|
||||||
--- rpmio/digest_beecrypt.c
|
|
||||||
+++ rpmio/digest_beecrypt.c
|
|
||||||
@@ -0,0 +1,526 @@
|
|
||||||
+#include "system.h"
|
|
||||||
+
|
|
||||||
+#include <beecrypt.h>
|
|
||||||
+#include <dsa.h>
|
|
||||||
+#include <endianness.h>
|
|
||||||
+#include <md5.h>
|
|
||||||
+#include <mp.h>
|
|
||||||
+#include <rsa.h>
|
|
||||||
+#include <rsapk.h>
|
|
||||||
+#include <sha1.h>
|
|
||||||
+#if HAVE_BEECRYPT_API_H
|
|
||||||
+#include <sha256.h>
|
|
||||||
+#include <sha384.h>
|
|
||||||
+#include <sha512.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#include <rpm/rpmpgp.h>
|
|
||||||
+#include "rpmio/digest.h"
|
|
||||||
+#include "rpmio/rpmio_internal.h"
|
|
||||||
+#include "debug.h"
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * MD5/SHA1 digest private data.
|
|
||||||
+ */
|
|
||||||
+struct DIGEST_CTX_s {
|
|
||||||
+ rpmDigestFlags flags; /*!< Bit(s) to control digest operation. */
|
|
||||||
+ int algo; /*!< Used hash algorithm */
|
|
||||||
+ uint32_t datalen; /*!< No. bytes in block of plaintext data. */
|
|
||||||
+ uint32_t paramlen; /*!< No. bytes of digest parameters. */
|
|
||||||
+ uint32_t digestlen; /*!< No. bytes of digest. */
|
|
||||||
+ void * param; /*!< Digest parameters. */
|
|
||||||
+ int (*Reset) (void * param); /*!< Digest initialize. */
|
|
||||||
+ int (*Update) (void * param, const byte * data, size_t size); /*!< Digest transform. */
|
|
||||||
+ int (*Digest) (void * param, byte * digest); /*!< Digest finish. */
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/**************************** init ************************************/
|
|
||||||
+
|
|
||||||
+int rpmInitCrypto(void) {
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int rpmFreeCrypto(void) {
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**************************** digest ************************************/
|
|
||||||
+
|
|
||||||
+DIGEST_CTX rpmDigestDup(DIGEST_CTX octx)
|
|
||||||
+{
|
|
||||||
+ DIGEST_CTX nctx = NULL;
|
|
||||||
+ if (octx) {
|
|
||||||
+ nctx = memcpy(xcalloc(1, sizeof(*nctx)), octx, sizeof(*nctx));
|
|
||||||
+ nctx->param = memcpy(xcalloc(1, nctx->paramlen), octx->param, nctx->paramlen);
|
|
||||||
+ }
|
|
||||||
+ return nctx;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+size_t rpmDigestLength(int hashalgo)
|
|
||||||
+{
|
|
||||||
+ switch (hashalgo) {
|
|
||||||
+ case PGPHASHALGO_MD5:
|
|
||||||
+ return 16;
|
|
||||||
+ case PGPHASHALGO_SHA1:
|
|
||||||
+ return 20;
|
|
||||||
+#if HAVE_BEECRYPT_API_H
|
|
||||||
+ case PGPHASHALGO_SHA256:
|
|
||||||
+ return 32;
|
|
||||||
+ case PGPHASHALGO_SHA384:
|
|
||||||
+ return 48;
|
|
||||||
+ case PGPHASHALGO_SHA512:
|
|
||||||
+ return 64;
|
|
||||||
+#endif
|
|
||||||
+ default:
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags)
|
|
||||||
+{
|
|
||||||
+ DIGEST_CTX ctx = xcalloc(1, sizeof(*ctx));
|
|
||||||
+
|
|
||||||
+ ctx->flags = flags;
|
|
||||||
+ ctx->algo = hashalgo;
|
|
||||||
+
|
|
||||||
+ switch (hashalgo) {
|
|
||||||
+ case PGPHASHALGO_MD5:
|
|
||||||
+ ctx->digestlen = 16;
|
|
||||||
+ ctx->datalen = 64;
|
|
||||||
+ ctx->paramlen = sizeof(md5Param);
|
|
||||||
+ ctx->param = xcalloc(1, ctx->paramlen);
|
|
||||||
+ ctx->Reset = (void *) md5Reset;
|
|
||||||
+ ctx->Update = (void *) md5Update;
|
|
||||||
+ ctx->Digest = (void *) md5Digest;
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA1:
|
|
||||||
+ ctx->digestlen = 20;
|
|
||||||
+ ctx->datalen = 64;
|
|
||||||
+ ctx->paramlen = sizeof(sha1Param);
|
|
||||||
+ ctx->param = xcalloc(1, ctx->paramlen);
|
|
||||||
+ ctx->Reset = (void *) sha1Reset;
|
|
||||||
+ ctx->Update = (void *) sha1Update;
|
|
||||||
+ ctx->Digest = (void *) sha1Digest;
|
|
||||||
+ break;
|
|
||||||
+#if HAVE_BEECRYPT_API_H
|
|
||||||
+ case PGPHASHALGO_SHA256:
|
|
||||||
+ ctx->digestlen = 32;
|
|
||||||
+ ctx->datalen = 64;
|
|
||||||
+ ctx->paramlen = sizeof(sha256Param);
|
|
||||||
+ ctx->param = xcalloc(1, ctx->paramlen);
|
|
||||||
+ ctx->Reset = (void *) sha256Reset;
|
|
||||||
+ ctx->Update = (void *) sha256Update;
|
|
||||||
+ ctx->Digest = (void *) sha256Digest;
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA384:
|
|
||||||
+ ctx->digestlen = 48;
|
|
||||||
+ ctx->datalen = 128;
|
|
||||||
+ ctx->paramlen = sizeof(sha384Param);
|
|
||||||
+ ctx->param = xcalloc(1, ctx->paramlen);
|
|
||||||
+ ctx->Reset = (void *) sha384Reset;
|
|
||||||
+ ctx->Update = (void *) sha384Update;
|
|
||||||
+ ctx->Digest = (void *) sha384Digest;
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA512:
|
|
||||||
+ ctx->digestlen = 64;
|
|
||||||
+ ctx->datalen = 128;
|
|
||||||
+ ctx->paramlen = sizeof(sha512Param);
|
|
||||||
+ ctx->param = xcalloc(1, ctx->paramlen);
|
|
||||||
+ ctx->Reset = (void *) sha512Reset;
|
|
||||||
+ ctx->Update = (void *) sha512Update;
|
|
||||||
+ ctx->Digest = (void *) sha512Digest;
|
|
||||||
+ break;
|
|
||||||
+#endif
|
|
||||||
+ case PGPHASHALGO_RIPEMD160:
|
|
||||||
+ case PGPHASHALGO_MD2:
|
|
||||||
+ case PGPHASHALGO_TIGER192:
|
|
||||||
+ case PGPHASHALGO_HAVAL_5_160:
|
|
||||||
+ default:
|
|
||||||
+ free(ctx);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ (*ctx->Reset)(ctx->param);
|
|
||||||
+ return ctx;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len)
|
|
||||||
+{
|
|
||||||
+ if (ctx == NULL)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ return (*ctx->Update) (ctx->param, data, len);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int rpmDigestFinal(DIGEST_CTX ctx, void ** datap, size_t *lenp, int asAscii)
|
|
||||||
+{
|
|
||||||
+ byte * digest;
|
|
||||||
+ char * t;
|
|
||||||
+ int i;
|
|
||||||
+
|
|
||||||
+ if (ctx == NULL)
|
|
||||||
+ return -1;
|
|
||||||
+ digest = xmalloc(ctx->digestlen);
|
|
||||||
+
|
|
||||||
+ /* FIX: check rc */
|
|
||||||
+ (void) (*ctx->Digest) (ctx->param, digest);
|
|
||||||
+
|
|
||||||
+ /* Return final digest. */
|
|
||||||
+ if (!asAscii) {
|
|
||||||
+ if (lenp) *lenp = ctx->digestlen;
|
|
||||||
+ if (datap) {
|
|
||||||
+ *datap = digest;
|
|
||||||
+ digest = NULL;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ if (lenp) *lenp = (2*ctx->digestlen) + 1;
|
|
||||||
+ if (datap) {
|
|
||||||
+ const byte * s = (const byte *) digest;
|
|
||||||
+ static const char hex[] = "0123456789abcdef";
|
|
||||||
+
|
|
||||||
+ *datap = t = xmalloc((2*ctx->digestlen) + 1);
|
|
||||||
+ for (i = 0 ; i < ctx->digestlen; i++) {
|
|
||||||
+ *t++ = hex[ (unsigned)((*s >> 4) & 0x0f) ];
|
|
||||||
+ *t++ = hex[ (unsigned)((*s++ ) & 0x0f) ];
|
|
||||||
+ }
|
|
||||||
+ *t = '\0';
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (digest) {
|
|
||||||
+ memset(digest, 0, ctx->digestlen); /* In case it's sensitive */
|
|
||||||
+ free(digest);
|
|
||||||
+ }
|
|
||||||
+ memset(ctx->param, 0, ctx->paramlen); /* In case it's sensitive */
|
|
||||||
+ free(ctx->param);
|
|
||||||
+ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
|
|
||||||
+ free(ctx);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**************************** helpers ************************************/
|
|
||||||
+
|
|
||||||
+static inline char * pgpHexCvt(char *t, const byte *s, int nbytes)
|
|
||||||
+{
|
|
||||||
+ static char hex[] = "0123456789abcdef";
|
|
||||||
+ while (nbytes-- > 0) {
|
|
||||||
+ unsigned int i;
|
|
||||||
+ i = *s++;
|
|
||||||
+ *t++ = hex[ (i >> 4) & 0xf ];
|
|
||||||
+ *t++ = hex[ (i ) & 0xf ];
|
|
||||||
+ }
|
|
||||||
+ *t = '\0';
|
|
||||||
+ return t;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const char * pgpMpiHex(const byte *p, const byte *pend)
|
|
||||||
+{
|
|
||||||
+ static char prbuf[2048];
|
|
||||||
+ char *t = prbuf;
|
|
||||||
+ int nbytes = pgpMpiLen(p) - 2;
|
|
||||||
+ if (nbytes > 1024 || nbytes > pend - (p + 2))
|
|
||||||
+ return NULL;
|
|
||||||
+ t = pgpHexCvt(t, p+2, nbytes);
|
|
||||||
+ return prbuf;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpHexSet(int lbits, mpnumber * mpn, const byte * p, const byte * pend)
|
|
||||||
+{
|
|
||||||
+ unsigned int mbits = pgpMpiBits(p);
|
|
||||||
+ unsigned int nbits;
|
|
||||||
+ unsigned int nbytes;
|
|
||||||
+ char *t;
|
|
||||||
+ unsigned int ix;
|
|
||||||
+
|
|
||||||
+ nbits = (lbits > mbits ? lbits : mbits);
|
|
||||||
+ nbytes = ((nbits + 7) >> 3);
|
|
||||||
+ t = xmalloc(2*nbytes+1);
|
|
||||||
+ ix = 2 * ((nbits - mbits) >> 3);
|
|
||||||
+
|
|
||||||
+ if (ix > 0) memset(t, (int)'0', ix);
|
|
||||||
+ strcpy(t+ix, pgpMpiHex(p, pend));
|
|
||||||
+ (void) mpnsethex(mpn, t);
|
|
||||||
+ t = _free(t);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void pgpFreeSigRSADSA(pgpDigAlg sa)
|
|
||||||
+{
|
|
||||||
+ if (sa->data)
|
|
||||||
+ free(sa->data);
|
|
||||||
+ sa->data = 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void pgpFreeKeyRSADSA(pgpDigAlg sa)
|
|
||||||
+{
|
|
||||||
+ if (sa->data)
|
|
||||||
+ free(sa->data);
|
|
||||||
+ sa->data = 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/****************************** RSA **************************************/
|
|
||||||
+
|
|
||||||
+struct pgpDigSigRSA_s {
|
|
||||||
+ mpnumber c;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct pgpDigKeyRSA_s {
|
|
||||||
+ rsapk rsa_pk;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num,
|
|
||||||
+ const uint8_t *p, const uint8_t *pend)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigSigRSA_s *sig = pgpsig->data;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ switch (num) {
|
|
||||||
+ case 0:
|
|
||||||
+ sig = pgpsig->data = xcalloc(1, sizeof(*sig));
|
|
||||||
+ (void) mpnsethex(&sig->c, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num,
|
|
||||||
+ const uint8_t *p, const uint8_t *pend)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigKeyRSA_s *key = pgpkey->data;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ if (!key)
|
|
||||||
+ key = pgpkey->data = xcalloc(1, sizeof(*key));
|
|
||||||
+ switch (num) {
|
|
||||||
+ case 0:
|
|
||||||
+ (void) mpbsethex(&key->rsa_pk.n, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ case 1:
|
|
||||||
+ (void) mpnsethex(&key->rsa_pk.e, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline unsigned char nibble(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;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpVerifySigRSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, size_t hashlen, int hash_algo)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigKeyRSA_s *key = pgpkey->data;
|
|
||||||
+ struct pgpDigSigRSA_s *sig = pgpsig->data;
|
|
||||||
+ const char * prefix = NULL;
|
|
||||||
+ mpnumber rsahm;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ if (!sig || !key)
|
|
||||||
+ return rc;
|
|
||||||
+
|
|
||||||
+ switch (hash_algo) {
|
|
||||||
+ case PGPHASHALGO_MD5:
|
|
||||||
+ prefix = "3020300c06082a864886f70d020505000410";
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA1:
|
|
||||||
+ prefix = "3021300906052b0e03021a05000414";
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_MD2:
|
|
||||||
+ prefix = "3020300c06082a864886f70d020205000410";
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA256:
|
|
||||||
+ prefix = "3031300d060960864801650304020105000420";
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA384:
|
|
||||||
+ prefix = "3041300d060960864801650304020205000430";
|
|
||||||
+ break;
|
|
||||||
+ case PGPHASHALGO_SHA512:
|
|
||||||
+ prefix = "3051300d060960864801650304020305000440";
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Generate RSA modulus parameter. */
|
|
||||||
+ { unsigned int nbits = MP_WORDS_TO_BITS(sig->c.size);
|
|
||||||
+ unsigned int nb = (nbits + 7) >> 3;
|
|
||||||
+ byte *buf, *bp;
|
|
||||||
+
|
|
||||||
+ if (nb < 3)
|
|
||||||
+ return 1;
|
|
||||||
+ buf = xmalloc(nb);
|
|
||||||
+ memset(buf, 0xff, nb);
|
|
||||||
+ buf[0] = 0x00;
|
|
||||||
+ buf[1] = 0x01;
|
|
||||||
+ bp = buf + nb - strlen(prefix)/2 - hashlen - 1;
|
|
||||||
+ if (bp < buf)
|
|
||||||
+ return 1;
|
|
||||||
+ *bp++ = 0;
|
|
||||||
+ for (; *prefix; prefix += 2)
|
|
||||||
+ *bp++ = (nibble(prefix[0]) << 4) | nibble(prefix[1]);
|
|
||||||
+ memcpy(bp, hash, hashlen);
|
|
||||||
+ mpnzero(&rsahm);
|
|
||||||
+ (void) mpnsetbin(&rsahm, buf, nb);
|
|
||||||
+ buf = _free(buf);
|
|
||||||
+ }
|
|
||||||
+#if HAVE_BEECRYPT_API_H
|
|
||||||
+ rc = rsavrfy(&key->rsa_pk.n, &key->rsa_pk.e, &sig->c, &rsahm) == 1 ? 0 : 1;
|
|
||||||
+#else
|
|
||||||
+ rc = rsavrfy(&key->rsa_pk, &rsahm, &sig->c) == 1 ? 0 : 1;
|
|
||||||
+#endif
|
|
||||||
+ mpnfree(&rsahm);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/****************************** DSA **************************************/
|
|
||||||
+
|
|
||||||
+struct pgpDigSigDSA_s {
|
|
||||||
+ mpnumber r;
|
|
||||||
+ mpnumber s;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct pgpDigKeyDSA_s {
|
|
||||||
+ mpbarrett p;
|
|
||||||
+ mpbarrett q;
|
|
||||||
+ mpnumber g;
|
|
||||||
+ mpnumber y;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num,
|
|
||||||
+ const uint8_t *p, const uint8_t *pend)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigSigDSA_s *sig = pgpsig->data;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ switch (num) {
|
|
||||||
+ case 0:
|
|
||||||
+ sig = pgpsig->data = xcalloc(1, sizeof(*sig));
|
|
||||||
+ rc = pgpHexSet(160, &sig->r, p, pend);
|
|
||||||
+ break;
|
|
||||||
+ case 1:
|
|
||||||
+ rc = pgpHexSet(160, &sig->s, p, pend);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num,
|
|
||||||
+ const uint8_t *p, const uint8_t *pend)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigKeyDSA_s *key = pgpkey->data;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ if (!key)
|
|
||||||
+ key = pgpkey->data = xcalloc(1, sizeof(*key));
|
|
||||||
+
|
|
||||||
+ switch (num) {
|
|
||||||
+ case 0:
|
|
||||||
+ mpbsethex(&key->p, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ case 1:
|
|
||||||
+ mpbsethex(&key->q, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ case 2:
|
|
||||||
+ mpnsethex(&key->g, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ case 3:
|
|
||||||
+ mpnsethex(&key->y, pgpMpiHex(p, pend));
|
|
||||||
+ rc = 0;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpVerifySigDSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, size_t hashlen, int hash_algo)
|
|
||||||
+{
|
|
||||||
+ struct pgpDigKeyDSA_s *key = pgpkey->data;
|
|
||||||
+ struct pgpDigSigDSA_s *sig = pgpsig->data;
|
|
||||||
+ mpnumber hm;
|
|
||||||
+ int rc = 1;
|
|
||||||
+
|
|
||||||
+ if (sig && key) {
|
|
||||||
+ mpnzero(&hm);
|
|
||||||
+ mpnsetbin(&hm, hash, hashlen);
|
|
||||||
+ rc = dsavrfy(&key->p, &key->q, &key->g, &hm, &key->y, &sig->r, &sig->s) == 1 ? 0 : 1;
|
|
||||||
+ mpnfree(&hm);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num,
|
|
||||||
+ const uint8_t *p, const uint8_t *pend)
|
|
||||||
+{
|
|
||||||
+ return 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int pgpVerifyNULL(pgpDigAlg pgpkey, pgpDigAlg pgpsig,
|
|
||||||
+ uint8_t *hash, size_t hashlen, int hash_algo)
|
|
||||||
+{
|
|
||||||
+ return 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+pgpDigAlg pgpPubkeyNew(int algo)
|
|
||||||
+{
|
|
||||||
+ pgpDigAlg ka = xcalloc(1, sizeof(*ka));;
|
|
||||||
+
|
|
||||||
+ switch (algo) {
|
|
||||||
+ case PGPPUBKEYALGO_RSA:
|
|
||||||
+ ka->setmpi = pgpSetKeyMpiRSA;
|
|
||||||
+ ka->free = pgpFreeKeyRSADSA;
|
|
||||||
+ ka->mpis = 2;
|
|
||||||
+ break;
|
|
||||||
+ case PGPPUBKEYALGO_DSA:
|
|
||||||
+ ka->setmpi = pgpSetKeyMpiDSA;
|
|
||||||
+ ka->free = pgpFreeKeyRSADSA;
|
|
||||||
+ ka->mpis = 4;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ ka->setmpi = pgpSetMpiNULL;
|
|
||||||
+ ka->mpis = -1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ka->verify = pgpVerifyNULL; /* keys can't be verified */
|
|
||||||
+
|
|
||||||
+ return ka;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+pgpDigAlg pgpSignatureNew(int algo)
|
|
||||||
+{
|
|
||||||
+ pgpDigAlg sa = xcalloc(1, sizeof(*sa));
|
|
||||||
+
|
|
||||||
+ switch (algo) {
|
|
||||||
+ case PGPPUBKEYALGO_RSA:
|
|
||||||
+ sa->setmpi = pgpSetSigMpiRSA;
|
|
||||||
+ sa->free = pgpFreeSigRSADSA;
|
|
||||||
+ sa->verify = pgpVerifySigRSA;
|
|
||||||
+ sa->mpis = 1;
|
|
||||||
+ break;
|
|
||||||
+ case PGPPUBKEYALGO_DSA:
|
|
||||||
+ sa->setmpi = pgpSetSigMpiDSA;
|
|
||||||
+ sa->free = pgpFreeSigRSADSA;
|
|
||||||
+ sa->verify = pgpVerifySigDSA;
|
|
||||||
+ sa->mpis = 2;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ sa->setmpi = pgpSetMpiNULL;
|
|
||||||
+ sa->verify = pgpVerifyNULL;
|
|
||||||
+ sa->mpis = -1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return sa;
|
|
||||||
+}
|
|
||||||
--- rpmio/Makefile.am
|
|
||||||
+++ rpmio/Makefile.am
|
|
||||||
@@ -2,6 +2,7 @@
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/include/
|
|
||||||
AM_CPPFLAGS += @WITH_NSS_INCLUDE@
|
|
||||||
+AM_CPPFLAGS += @WITH_BEECRYPT_INCLUDE@
|
|
||||||
AM_CPPFLAGS += @WITH_POPT_INCLUDE@
|
|
||||||
AM_CPPFLAGS += -I$(top_srcdir)/misc
|
|
||||||
AM_CPPFLAGS += -DRPMCONFIGDIR="\"@RPMCONFIGDIR@\""
|
|
||||||
@@ -17,12 +18,17 @@
|
|
||||||
rpmstring.c rpmfileutil.c \
|
|
||||||
rpmkeyring.c
|
|
||||||
|
|
||||||
+if WITH_BEECRYPT
|
|
||||||
+librpmio_la_SOURCES += digest_beecrypt.c
|
|
||||||
+else
|
|
||||||
librpmio_la_SOURCES += digest_nss.c
|
|
||||||
+endif
|
|
||||||
|
|
||||||
librpmio_la_LDFLAGS = -version-info 3:3:0
|
|
||||||
librpmio_la_LIBADD = \
|
|
||||||
../misc/libmisc.la \
|
|
||||||
@WITH_NSS_LIB@ \
|
|
||||||
+ @WITH_BEECRYPT_LIB@ \
|
|
||||||
@WITH_BZ2_LIB@ \
|
|
||||||
@WITH_ZLIB_LIB@ \
|
|
||||||
@WITH_LIBELF_LIB@ \
|
|
||||||
@@ -30,6 +36,15 @@
|
|
||||||
@WITH_LZMA_LIB@ \
|
|
||||||
-lpthread
|
|
||||||
|
|
||||||
+if WITH_INTERNAL_BEECRYPT
|
|
||||||
+librpmio_la_LIBADD += $(libbeecrypt_la)
|
|
||||||
+
|
|
||||||
+libbeecrypt_la = $(top_builddir)/beecrypt/libbeecrypt_nolibdir.la
|
|
||||||
+
|
|
||||||
+$(top_builddir)/beecrypt/libbeecrypt_nolibdir.la: $(top_builddir)/beecrypt/libbeecrypt.la
|
|
||||||
+ sed -e 's/libdir=.*/libdir=/' < $(top_builddir)/beecrypt/libbeecrypt.la > $(top_builddir)/beecrypt/libbeecrypt_nolibdir.la
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
if WITH_LUA
|
|
||||||
AM_CPPFLAGS += -I$(top_srcdir)/luaext/
|
|
||||||
AM_CPPFLAGS += @LUA_CFLAGS@
|
|
@ -1,6 +1,6 @@
|
|||||||
--- build/pack.c
|
--- ./build/pack.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ build/pack.c
|
+++ ./build/pack.c 2013-07-12 11:59:37.000000000 +0000
|
||||||
@@ -573,6 +573,63 @@
|
@@ -540,6 +540,63 @@ static rpmRC checkPackages(char *pkgchec
|
||||||
return RPMRC_OK;
|
return RPMRC_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,8 +63,8 @@
|
|||||||
+
|
+
|
||||||
rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
|
rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
|
||||||
{
|
{
|
||||||
struct cpioSourceArchive_s csabuf;
|
rpmRC rc;
|
||||||
@@ -582,6 +639,7 @@
|
@@ -547,6 +604,7 @@ rpmRC packageBinaries(rpmSpec spec, cons
|
||||||
Package pkg;
|
Package pkg;
|
||||||
char *pkglist = NULL;
|
char *pkglist = NULL;
|
||||||
|
|
||||||
@ -72,9 +72,9 @@
|
|||||||
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
|
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
|
||||||
char *fn;
|
char *fn;
|
||||||
|
|
||||||
--- build/parseChangelog.c
|
--- ./build/parseChangelog.c.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ build/parseChangelog.c
|
+++ ./build/parseChangelog.c 2013-07-12 11:59:37.000000000 +0000
|
||||||
@@ -168,6 +168,11 @@
|
@@ -183,6 +183,11 @@ static rpmRC addChangelog(Header h, ARGV
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
rpm.changes
14
rpm.changes
@ -1,3 +1,17 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 12 15:36:43 CEST 2013 - mls@suse.de
|
||||||
|
|
||||||
|
- update to rpm-4.11.1
|
||||||
|
* fix bogus file conflict on symlink permissions
|
||||||
|
* fix replaced files not getting reported at all during verification
|
||||||
|
* fix explicit file conflicts in installed packages being ignored
|
||||||
|
* fix multiple corner cases in config file handling
|
||||||
|
* fix disk-space accounting bugs
|
||||||
|
* report replacing directories with non-directories as file conflict
|
||||||
|
- package rpmdb_* database tools
|
||||||
|
- get rid of kernel symbol requires/provides, instead add simple
|
||||||
|
package provides/requires like in Fedora
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jul 2 09:53:02 UTC 2013 - dmueller@suse.com
|
Tue Jul 2 09:53:02 UTC 2013 - dmueller@suse.com
|
||||||
|
|
||||||
|
19
rpm.spec
19
rpm.spec
@ -47,9 +47,9 @@ PreReq: %fillup_prereq
|
|||||||
Summary: The RPM Package Manager
|
Summary: The RPM Package Manager
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
Group: System/Packages
|
Group: System/Packages
|
||||||
Version: 4.10.3.1
|
Version: 4.11.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Source: http://rpm.org/releases/rpm-4.10.x/rpm-%{version}.tar.bz2
|
Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2
|
||||||
Source1: RPM-HOWTO.tar.bz2
|
Source1: RPM-HOWTO.tar.bz2
|
||||||
Source2: RPM-Tips.html.tar.bz2
|
Source2: RPM-Tips.html.tar.bz2
|
||||||
Source4: rpm-suse_macros
|
Source4: rpm-suse_macros
|
||||||
@ -63,7 +63,6 @@ Source12: baselibs.conf
|
|||||||
Patch1: beecrypt-4.1.2.diff
|
Patch1: beecrypt-4.1.2.diff
|
||||||
Patch2: db.diff
|
Patch2: db.diff
|
||||||
# quilt patches start here
|
# quilt patches start here
|
||||||
Patch10: rpm-beecrypt.diff
|
|
||||||
Patch11: debugedit.diff
|
Patch11: debugedit.diff
|
||||||
Patch13: ignore-auxv.diff
|
Patch13: ignore-auxv.diff
|
||||||
Patch12: localetag.diff
|
Patch12: localetag.diff
|
||||||
@ -133,9 +132,8 @@ Patch76: python3-abi-kind.diff
|
|||||||
Patch77: langnoc.diff
|
Patch77: langnoc.diff
|
||||||
Patch78: headerchk2.diff
|
Patch78: headerchk2.diff
|
||||||
Patch79: helperenv.diff
|
Patch79: helperenv.diff
|
||||||
Patch80: config-guess-sub-update.diff
|
Patch80: psm-errno.diff
|
||||||
Patch81: debugedit-aarch64.diff
|
Patch81: getauxval.diff
|
||||||
Patch82: psm-errno.patch
|
|
||||||
Patch6464: auto-config-update-aarch64.diff
|
Patch6464: auto-config-update-aarch64.diff
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
#
|
#
|
||||||
@ -213,19 +211,16 @@ tar xjf %{SOURCE11}
|
|||||||
ln -s db-4.8.30 db
|
ln -s db-4.8.30 db
|
||||||
ln -s beecrypt-4.1.2 beecrypt
|
ln -s beecrypt-4.1.2 beecrypt
|
||||||
chmod -R u+w db/*
|
chmod -R u+w db/*
|
||||||
#tar xjf %{SOURCE12}
|
|
||||||
#ln -s neon-0.24.7 neon
|
|
||||||
# will get linked from db3
|
|
||||||
rm -f rpmdb/db.h
|
rm -f rpmdb/db.h
|
||||||
%patch -P 1 -P 2
|
%patch -P 1 -P 2
|
||||||
%patch -P 10 -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
|
%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
|
||||||
%patch -P 20 -P 21 -P 22 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
|
%patch -P 20 -P 21 -P 22 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
|
||||||
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
|
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
|
||||||
%patch -P 40 -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
|
%patch -P 40 -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
|
||||||
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
|
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
|
||||||
%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
|
%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
|
||||||
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
|
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
|
||||||
%patch -P 80 -P 81 -P 82
|
%patch -P 80 -P 81
|
||||||
%ifarch aarch64
|
%ifarch aarch64
|
||||||
%patch6464
|
%patch6464
|
||||||
%endif
|
%endif
|
||||||
@ -333,7 +328,7 @@ pushd %{buildroot}/usr/lib/rpm/
|
|||||||
for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
|
for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
|
||||||
magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
|
magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
|
||||||
brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
|
brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
|
||||||
rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
|
brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
|
||||||
do
|
do
|
||||||
rm -f $f
|
rm -f $f
|
||||||
done
|
done
|
||||||
|
63
rpmrc.diff
63
rpmrc.diff
@ -1,5 +1,5 @@
|
|||||||
--- rpmrc.in
|
--- ./rpmrc.in.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ rpmrc.in
|
+++ ./rpmrc.in 2013-07-12 11:56:53.000000000 +0000
|
||||||
@@ -12,16 +12,16 @@
|
@@ -12,16 +12,16 @@
|
||||||
# "fat" binary with both archs, for Darwin
|
# "fat" binary with both archs, for Darwin
|
||||||
optflags: fat -O2 -g -arch i386 -arch ppc
|
optflags: fat -O2 -g -arch i386 -arch ppc
|
||||||
@ -26,7 +26,7 @@
|
|||||||
optflags: amd64 -O2 -g
|
optflags: amd64 -O2 -g
|
||||||
optflags: ia32e -O2 -g
|
optflags: ia32e -O2 -g
|
||||||
|
|
||||||
@@ -41,16 +41,17 @@
|
@@ -41,16 +41,17 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni
|
||||||
|
|
||||||
optflags: m68k -O2 -g -fomit-frame-pointer
|
optflags: m68k -O2 -g -fomit-frame-pointer
|
||||||
|
|
||||||
@ -52,7 +52,7 @@
|
|||||||
optflags: hppa1.0 -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.1 -O2 -g -mpa-risc-1-0
|
||||||
optflags: hppa1.2 -O2 -g -mpa-risc-1-0
|
optflags: hppa1.2 -O2 -g -mpa-risc-1-0
|
||||||
@@ -66,7 +67,9 @@
|
@@ -66,7 +67,9 @@ optflags: armv4tl -O2 -g -march=armv4t
|
||||||
optflags: armv5tel -O2 -g -march=armv5te
|
optflags: armv5tel -O2 -g -march=armv5te
|
||||||
optflags: armv5tejl -O2 -g -march=armv5te
|
optflags: armv5tejl -O2 -g -march=armv5te
|
||||||
optflags: armv6l -O2 -g -march=armv6
|
optflags: armv6l -O2 -g -march=armv6
|
||||||
@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
optflags: atarist -O2 -g -fomit-frame-pointer
|
optflags: atarist -O2 -g -fomit-frame-pointer
|
||||||
optflags: atariste -O2 -g -fomit-frame-pointer
|
optflags: atariste -O2 -g -fomit-frame-pointer
|
||||||
@@ -76,12 +79,13 @@
|
@@ -76,8 +79,8 @@ optflags: atariclone -O2 -g -fomit-frame
|
||||||
optflags: milan -O2 -g -fomit-frame-pointer
|
optflags: milan -O2 -g -fomit-frame-pointer
|
||||||
optflags: hades -O2 -g -fomit-frame-pointer
|
optflags: hades -O2 -g -fomit-frame-pointer
|
||||||
|
|
||||||
@ -73,12 +73,7 @@
|
|||||||
|
|
||||||
optflags: sh3 -O2 -g
|
optflags: sh3 -O2 -g
|
||||||
optflags: sh4 -O2 -g -mieee
|
optflags: sh4 -O2 -g -mieee
|
||||||
optflags: sh4a -O2 -g -mieee
|
@@ -178,7 +181,9 @@ arch_canon: armv4l: armv4l 12
|
||||||
+optflags: aarch64 -O2 -g
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# Canonical arch names and numbers
|
|
||||||
@@ -141,7 +145,9 @@
|
|
||||||
arch_canon: armv5tel: armv5tel 12
|
arch_canon: armv5tel: armv5tel 12
|
||||||
arch_canon: armv5tejl: armv5tejl 12
|
arch_canon: armv5tejl: armv5tejl 12
|
||||||
arch_canon: armv6l: armv6l 12
|
arch_canon: armv6l: armv6l 12
|
||||||
@ -88,15 +83,7 @@
|
|||||||
|
|
||||||
arch_canon: m68kmint: m68kmint 13
|
arch_canon: m68kmint: m68kmint 13
|
||||||
arch_canon: atarist: m68kmint 13
|
arch_canon: atarist: m68kmint 13
|
||||||
@@ -166,6 +172,7 @@
|
@@ -241,17 +246,17 @@ os_canon: MacOSX: macosx 21
|
||||||
arch_canon: sh4: sh4 17
|
|
||||||
arch_canon: sh4a: sh4a 17
|
|
||||||
arch_canon: xtensa: xtensa 18
|
|
||||||
+arch_canon: aarch64: aarch64 19
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# Canonical OS names and numbers
|
|
||||||
@@ -203,17 +210,17 @@
|
|
||||||
#############################################################
|
#############################################################
|
||||||
# For a given uname().machine, the default build arch
|
# For a given uname().machine, the default build arch
|
||||||
|
|
||||||
@ -122,7 +109,7 @@
|
|||||||
buildarchtranslate: i486: i386
|
buildarchtranslate: i486: i386
|
||||||
buildarchtranslate: i386: i386
|
buildarchtranslate: i386: i386
|
||||||
|
|
||||||
@@ -243,6 +250,7 @@
|
@@ -281,6 +286,7 @@ buildarchtranslate: ppcpseries: ppc
|
||||||
buildarchtranslate: ppc64iseries: ppc64
|
buildarchtranslate: ppc64iseries: ppc64
|
||||||
buildarchtranslate: ppc64pseries: ppc64
|
buildarchtranslate: ppc64pseries: ppc64
|
||||||
buildarchtranslate: ppc64p7: ppc64
|
buildarchtranslate: ppc64p7: ppc64
|
||||||
@ -130,20 +117,19 @@
|
|||||||
|
|
||||||
buildarchtranslate: armv3l: armv3l
|
buildarchtranslate: armv3l: armv3l
|
||||||
buildarchtranslate: armv4b: armv4b
|
buildarchtranslate: armv4b: armv4b
|
||||||
@@ -251,7 +259,10 @@
|
@@ -289,7 +295,9 @@ buildarchtranslate: armv4tl: armv4tl
|
||||||
buildarchtranslate: armv5tel: armv5tel
|
buildarchtranslate: armv5tel: armv5tel
|
||||||
buildarchtranslate: armv5tejl: armv5tejl
|
buildarchtranslate: armv5tejl: armv5tejl
|
||||||
buildarchtranslate: armv6l: armv6l
|
buildarchtranslate: armv6l: armv6l
|
||||||
+buildarchtranslate: armv6hl: armv6hl
|
+buildarchtranslate: armv6hl: armv6hl
|
||||||
buildarchtranslate: armv7l: armv7l
|
buildarchtranslate: armv7l: armv7l
|
||||||
+buildarchtranslate: armv7hl: armv7hl
|
+buildarchtranslate: armv7hl: armv7hl
|
||||||
+buildarchtranslate: aarch64: aarch64
|
|
||||||
|
|
||||||
buildarchtranslate: atarist: m68kmint
|
buildarchtranslate: atarist: m68kmint
|
||||||
buildarchtranslate: atariste: m68kmint
|
buildarchtranslate: atariste: m68kmint
|
||||||
@@ -274,6 +285,15 @@
|
@@ -314,6 +322,15 @@ buildarchtranslate: sh4a: sh4
|
||||||
buildarchtranslate: sh4: sh4
|
|
||||||
buildarchtranslate: sh4a: sh4
|
buildarchtranslate: aarch64: aarch64
|
||||||
|
|
||||||
+buildarchtranslate: parisc: hppa
|
+buildarchtranslate: parisc: hppa
|
||||||
+buildarchtranslate: hppa2.0: hppa
|
+buildarchtranslate: hppa2.0: hppa
|
||||||
@ -157,7 +143,7 @@
|
|||||||
#############################################################
|
#############################################################
|
||||||
# Architecture compatibility
|
# Architecture compatibility
|
||||||
|
|
||||||
@@ -330,14 +350,20 @@
|
@@ -370,14 +387,20 @@ arch_compat: mipsel: noarch
|
||||||
arch_compat: hppa2.0: hppa1.2
|
arch_compat: hppa2.0: hppa1.2
|
||||||
arch_compat: hppa1.2: hppa1.1
|
arch_compat: hppa1.2: hppa1.1
|
||||||
arch_compat: hppa1.1: hppa1.0
|
arch_compat: hppa1.1: hppa1.0
|
||||||
@ -180,7 +166,7 @@
|
|||||||
arch_compat: armv4tl: armv4l
|
arch_compat: armv4tl: armv4l
|
||||||
arch_compat: armv4l: armv3l
|
arch_compat: armv4l: armv3l
|
||||||
arch_compat: armv3l: noarch
|
arch_compat: armv3l: noarch
|
||||||
@@ -354,7 +380,7 @@
|
@@ -394,7 +417,7 @@ arch_compat: i370: noarch
|
||||||
arch_compat: s390: noarch
|
arch_compat: s390: noarch
|
||||||
arch_compat: s390x: s390 noarch
|
arch_compat: s390x: s390 noarch
|
||||||
|
|
||||||
@ -189,16 +175,7 @@
|
|||||||
|
|
||||||
arch_compat: x86_64: amd64 em64t athlon noarch
|
arch_compat: x86_64: amd64 em64t athlon noarch
|
||||||
arch_compat: amd64: x86_64 em64t athlon noarch
|
arch_compat: amd64: x86_64 em64t athlon noarch
|
||||||
@@ -364,6 +390,8 @@
|
@@ -483,7 +506,9 @@ buildarch_compat: mips: noarch
|
||||||
arch_compat: sh4: noarch
|
|
||||||
arch_compat: sh4a: sh4
|
|
||||||
|
|
||||||
+arch_compat: aarch64: noarch
|
|
||||||
+
|
|
||||||
os_compat: IRIX64: IRIX
|
|
||||||
os_compat: solaris2.7: solaris2.3 solaris2.4 solaris2.5 solaris2.6
|
|
||||||
os_compat: solaris2.6: solaris2.3 solaris2.4 solaris2.5
|
|
||||||
@@ -439,7 +467,9 @@
|
|
||||||
buildarch_compat: mipsel: noarch
|
buildarch_compat: mipsel: noarch
|
||||||
|
|
||||||
buildarch_compat: armv4b: noarch
|
buildarch_compat: armv4b: noarch
|
||||||
@ -208,7 +185,7 @@
|
|||||||
buildarch_compat: armv6l: armv5tejl
|
buildarch_compat: armv6l: armv5tejl
|
||||||
buildarch_compat: armv5tejl: armv5tel
|
buildarch_compat: armv5tejl: armv5tel
|
||||||
buildarch_compat: armv5tel: armv4tl
|
buildarch_compat: armv5tel: armv4tl
|
||||||
@@ -450,7 +480,8 @@
|
@@ -494,7 +519,8 @@ buildarch_compat: armv3l: noarch
|
||||||
buildarch_compat: hppa2.0: hppa1.2
|
buildarch_compat: hppa2.0: hppa1.2
|
||||||
buildarch_compat: hppa1.2: hppa1.1
|
buildarch_compat: hppa1.2: hppa1.1
|
||||||
buildarch_compat: hppa1.1: hppa1.0
|
buildarch_compat: hppa1.1: hppa1.0
|
||||||
@ -218,11 +195,3 @@
|
|||||||
buildarch_compat: parisc: noarch
|
buildarch_compat: parisc: noarch
|
||||||
|
|
||||||
buildarch_compat: atarist: m68kmint noarch
|
buildarch_compat: atarist: m68kmint noarch
|
||||||
@@ -473,6 +504,7 @@
|
|
||||||
buildarch_compat: sh3: noarch
|
|
||||||
buildarch_compat: sh4: noarch
|
|
||||||
buildarch_compat: sh4a: sh4
|
|
||||||
+buildarch_compat: aarch64: noarch
|
|
||||||
|
|
||||||
# \endverbatim
|
|
||||||
#*/
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
--- ./build/parseSpec.c.orig 2010-12-03 12:11:57.000000000 +0000
|
--- ./build/parseSpec.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ ./build/parseSpec.c 2011-05-11 15:58:37.000000000 +0000
|
+++ ./build/parseSpec.c 2013-07-12 12:04:11.000000000 +0000
|
||||||
@@ -519,6 +519,7 @@ static rpmSpec parseSpec(const char *spe
|
@@ -561,6 +561,7 @@ static rpmSpec parseSpec(const char *spe
|
||||||
spec = newSpec();
|
spec = newSpec();
|
||||||
|
|
||||||
spec->specFile = rpmGetPath(specFile, NULL);
|
spec->specFile = rpmGetPath(specFile, NULL);
|
||||||
+ addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC);
|
+ addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC);
|
||||||
spec->fileStack = newOpenFileInfo();
|
pushOFI(spec, spec->specFile);
|
||||||
spec->fileStack->fileName = xstrdup(spec->specFile);
|
|
||||||
/* If buildRoot not specified, use default %{buildroot} */
|
/* If buildRoot not specified, use default %{buildroot} */
|
||||||
|
if (buildRoot) {
|
||||||
|
@ -14,9 +14,9 @@ B) use RPMSENSE_STRONG to support a "strong" version, "Recommends"
|
|||||||
|
|
||||||
Needs extcond.diff for query operations.
|
Needs extcond.diff for query operations.
|
||||||
|
|
||||||
--- build/parsePreamble.c
|
--- ./build/parsePreamble.c.orig 2013-06-27 09:28:49.000000000 +0000
|
||||||
+++ build/parsePreamble.c
|
+++ ./build/parsePreamble.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -342,6 +342,8 @@
|
@@ -341,6 +341,8 @@ static struct tokenBits_s const installS
|
||||||
{ "verify", RPMSENSE_SCRIPT_VERIFY },
|
{ "verify", RPMSENSE_SCRIPT_VERIFY },
|
||||||
{ "pretrans", RPMSENSE_PRETRANS },
|
{ "pretrans", RPMSENSE_PRETRANS },
|
||||||
{ "posttrans", RPMSENSE_POSTTRANS },
|
{ "posttrans", RPMSENSE_POSTTRANS },
|
||||||
@ -25,8 +25,8 @@ Needs extcond.diff for query operations.
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -816,6 +818,18 @@
|
@@ -795,6 +797,18 @@ static rpmRC handlePreambleTag(rpmSpec s
|
||||||
if (parseRCPOT(spec, pkg, field, tag, 0, tagflags))
|
if (parseRCPOT(spec, spec->sourcePackage, field, tag, 0, tagflags))
|
||||||
goto exit;
|
goto exit;
|
||||||
break;
|
break;
|
||||||
+ case RPMTAG_SUGGESTSFLAGS:
|
+ case RPMTAG_SUGGESTSFLAGS:
|
||||||
@ -44,7 +44,7 @@ Needs extcond.diff for query operations.
|
|||||||
case RPMTAG_EXCLUDEARCH:
|
case RPMTAG_EXCLUDEARCH:
|
||||||
case RPMTAG_EXCLUSIVEARCH:
|
case RPMTAG_EXCLUSIVEARCH:
|
||||||
case RPMTAG_EXCLUDEOS:
|
case RPMTAG_EXCLUDEOS:
|
||||||
@@ -924,6 +938,14 @@
|
@@ -903,6 +917,14 @@ static struct PreambleRec_s const preamb
|
||||||
{RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")},
|
{RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")},
|
||||||
{RPMTAG_COLLECTIONS, 0, 0, LEN_AND_STR("collections")},
|
{RPMTAG_COLLECTIONS, 0, 0, LEN_AND_STR("collections")},
|
||||||
{RPMTAG_ORDERFLAGS, 2, 0, LEN_AND_STR("orderwithrequires")},
|
{RPMTAG_ORDERFLAGS, 2, 0, LEN_AND_STR("orderwithrequires")},
|
||||||
@ -59,11 +59,11 @@ Needs extcond.diff for query operations.
|
|||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
--- build/parseReqs.c
|
--- ./build/parseReqs.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ build/parseReqs.c
|
+++ ./build/parseReqs.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -95,6 +95,20 @@
|
@@ -92,6 +92,18 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
|
||||||
|
case RPMTAG_BUILDCONFLICTS:
|
||||||
nametag = RPMTAG_CONFLICTNAME;
|
nametag = RPMTAG_CONFLICTNAME;
|
||||||
h = spec->buildRestrictions;
|
|
||||||
break;
|
break;
|
||||||
+ case RPMTAG_SUGGESTSFLAGS:
|
+ case RPMTAG_SUGGESTSFLAGS:
|
||||||
+ nametag = RPMTAG_SUGGESTSNAME;
|
+ nametag = RPMTAG_SUGGESTSNAME;
|
||||||
@ -73,20 +73,18 @@ Needs extcond.diff for query operations.
|
|||||||
+ break;
|
+ break;
|
||||||
+ case RPMTAG_BUILDSUGGESTS:
|
+ case RPMTAG_BUILDSUGGESTS:
|
||||||
+ nametag = RPMTAG_SUGGESTSNAME;
|
+ nametag = RPMTAG_SUGGESTSNAME;
|
||||||
+ h = spec->buildRestrictions;
|
|
||||||
+ break;
|
+ break;
|
||||||
+ case RPMTAG_BUILDENHANCES:
|
+ case RPMTAG_BUILDENHANCES:
|
||||||
+ nametag = RPMTAG_ENHANCESNAME;
|
+ nametag = RPMTAG_ENHANCESNAME;
|
||||||
+ h = spec->buildRestrictions;
|
|
||||||
+ break;
|
+ break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (r = field; *r != '\0'; r = re) {
|
for (r = field; *r != '\0'; r = re) {
|
||||||
--- build/reqprov.c
|
--- ./build/reqprov.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ build/reqprov.c
|
+++ ./build/reqprov.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -75,6 +75,16 @@
|
@@ -81,6 +81,16 @@ int addReqProv(Package pkg, rpmTagVal ta
|
||||||
indextag = RPMTAG_TRIGGERINDEX;
|
|
||||||
extra = Flags & RPMSENSE_TRIGGER;
|
extra = Flags & RPMSENSE_TRIGGER;
|
||||||
|
dsp = &pkg->triggers;
|
||||||
break;
|
break;
|
||||||
+ case RPMTAG_SUGGESTSNAME:
|
+ case RPMTAG_SUGGESTSNAME:
|
||||||
+ versiontag = RPMTAG_SUGGESTSVERSION;
|
+ versiontag = RPMTAG_SUGGESTSVERSION;
|
||||||
@ -101,9 +99,9 @@ Needs extcond.diff for query operations.
|
|||||||
case RPMTAG_REQUIRENAME:
|
case RPMTAG_REQUIRENAME:
|
||||||
default:
|
default:
|
||||||
tagN = RPMTAG_REQUIRENAME;
|
tagN = RPMTAG_REQUIRENAME;
|
||||||
--- build/rpmfc.c
|
--- ./build/rpmfc.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ build/rpmfc.c
|
+++ ./build/rpmfc.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -1084,6 +1084,12 @@
|
@@ -1087,6 +1087,12 @@ static struct DepMsg_s depMsgs[] = {
|
||||||
{ "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL },
|
{ "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL },
|
||||||
RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS,
|
RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS,
|
||||||
0, -1 },
|
0, -1 },
|
||||||
@ -116,7 +114,7 @@ Needs extcond.diff for query operations.
|
|||||||
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
|
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1160,6 +1166,14 @@
|
@@ -1163,6 +1169,14 @@ static rpmRC rpmfcGenerateDependsHelper(
|
||||||
continue;
|
continue;
|
||||||
tagflags = RPMSENSE_FIND_REQUIRES;
|
tagflags = RPMSENSE_FIND_REQUIRES;
|
||||||
break;
|
break;
|
||||||
@ -131,9 +129,9 @@ Needs extcond.diff for query operations.
|
|||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
break;
|
break;
|
||||||
--- lib/formats.c
|
--- ./lib/formats.c.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ lib/formats.c
|
+++ ./lib/formats.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -486,6 +486,19 @@
|
@@ -486,6 +486,19 @@ static char * depflagsFormat(rpmtd td)
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,7 +151,7 @@ Needs extcond.diff for query operations.
|
|||||||
/**
|
/**
|
||||||
* Return tag container array size.
|
* Return tag container array size.
|
||||||
* @param td tag data container
|
* @param td tag data container
|
||||||
@@ -591,6 +604,7 @@
|
@@ -591,6 +604,7 @@ static const struct headerFormatFunc_s r
|
||||||
{ RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat },
|
{ RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat },
|
||||||
{ RPMTD_FORMAT_EXPAND, "expand", expandFormat },
|
{ RPMTD_FORMAT_EXPAND, "expand", expandFormat },
|
||||||
{ RPMTD_FORMAT_FSTATUS, "fstatus", fstatusFormat },
|
{ RPMTD_FORMAT_FSTATUS, "fstatus", fstatusFormat },
|
||||||
@ -161,9 +159,9 @@ Needs extcond.diff for query operations.
|
|||||||
{ -1, NULL, NULL }
|
{ -1, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
--- lib/rpmds.c
|
--- ./lib/rpmds.c.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ lib/rpmds.c
|
+++ ./lib/rpmds.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -69,6 +69,10 @@
|
@@ -70,6 +70,10 @@ static int dsType(rpmTagVal tag,
|
||||||
t = "Trigger";
|
t = "Trigger";
|
||||||
evr = RPMTAG_TRIGGERVERSION;
|
evr = RPMTAG_TRIGGERVERSION;
|
||||||
f = RPMTAG_TRIGGERFLAGS;
|
f = RPMTAG_TRIGGERFLAGS;
|
||||||
@ -174,9 +172,9 @@ Needs extcond.diff for query operations.
|
|||||||
} else {
|
} else {
|
||||||
rc = 1;
|
rc = 1;
|
||||||
}
|
}
|
||||||
--- lib/rpmds.h
|
--- ./lib/rpmds.h.orig 2013-06-10 15:55:10.000000000 +0000
|
||||||
+++ lib/rpmds.h
|
+++ ./lib/rpmds.h 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -48,7 +48,7 @@
|
@@ -48,7 +48,7 @@ enum rpmsenseFlags_e {
|
||||||
RPMSENSE_RPMLIB = (1 << 24), /*!< rpmlib(feature) dependency. */
|
RPMSENSE_RPMLIB = (1 << 24), /*!< rpmlib(feature) dependency. */
|
||||||
RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< %triggerprein dependency. */
|
RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< %triggerprein dependency. */
|
||||||
RPMSENSE_KEYRING = (1 << 26),
|
RPMSENSE_KEYRING = (1 << 26),
|
||||||
@ -185,7 +183,7 @@ Needs extcond.diff for query operations.
|
|||||||
RPMSENSE_CONFIG = (1 << 28)
|
RPMSENSE_CONFIG = (1 << 28)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -70,6 +70,7 @@
|
@@ -70,6 +70,7 @@ typedef rpmFlags rpmsenseFlags;
|
||||||
RPMSENSE_FIND_REQUIRES | \
|
RPMSENSE_FIND_REQUIRES | \
|
||||||
RPMSENSE_RPMLIB | \
|
RPMSENSE_RPMLIB | \
|
||||||
RPMSENSE_KEYRING | \
|
RPMSENSE_KEYRING | \
|
||||||
@ -193,9 +191,9 @@ Needs extcond.diff for query operations.
|
|||||||
RPMSENSE_PRETRANS | \
|
RPMSENSE_PRETRANS | \
|
||||||
RPMSENSE_POSTTRANS | \
|
RPMSENSE_POSTTRANS | \
|
||||||
RPMSENSE_PREREQ | \
|
RPMSENSE_PREREQ | \
|
||||||
--- lib/rpmtag.h
|
--- ./lib/rpmtag.h.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ lib/rpmtag.h
|
+++ ./lib/rpmtag.h 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -217,14 +217,14 @@
|
@@ -217,14 +217,14 @@ typedef enum rpmTag_e {
|
||||||
RPMTAG_PRETRANSPROG = 1153, /* s[] */
|
RPMTAG_PRETRANSPROG = 1153, /* s[] */
|
||||||
RPMTAG_POSTTRANSPROG = 1154, /* s[] */
|
RPMTAG_POSTTRANSPROG = 1154, /* s[] */
|
||||||
RPMTAG_DISTTAG = 1155, /* s */
|
RPMTAG_DISTTAG = 1155, /* s */
|
||||||
@ -218,9 +216,9 @@ Needs extcond.diff for query operations.
|
|||||||
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
|
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
|
||||||
RPMTAG_CVSID = 1163, /* s (unimplemented) */
|
RPMTAG_CVSID = 1163, /* s (unimplemented) */
|
||||||
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
|
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
|
||||||
--- lib/rpmtd.h
|
--- ./lib/rpmtd.h.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ lib/rpmtd.h
|
+++ ./lib/rpmtd.h 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -228,6 +228,7 @@
|
@@ -228,6 +228,7 @@ typedef enum rpmtdFormats_e {
|
||||||
RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */
|
RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */
|
||||||
RPMTD_FORMAT_EXPAND = 18, /* macro expansion (string types) */
|
RPMTD_FORMAT_EXPAND = 18, /* macro expansion (string types) */
|
||||||
RPMTD_FORMAT_FSTATUS = 19, /* file verify status (int types) */
|
RPMTD_FORMAT_FSTATUS = 19, /* file verify status (int types) */
|
||||||
@ -228,9 +226,9 @@ Needs extcond.diff for query operations.
|
|||||||
} rpmtdFormats;
|
} rpmtdFormats;
|
||||||
|
|
||||||
/** \ingroup rpmtd
|
/** \ingroup rpmtd
|
||||||
--- python/rpmmodule.c
|
--- ./python/rpmmodule.c.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ python/rpmmodule.c
|
+++ ./python/rpmmodule.c 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -395,6 +395,7 @@
|
@@ -393,6 +393,7 @@ static int initModule(PyObject *m)
|
||||||
REGISTER_ENUM(RPMSENSE_RPMLIB);
|
REGISTER_ENUM(RPMSENSE_RPMLIB);
|
||||||
REGISTER_ENUM(RPMSENSE_TRIGGERPREIN);
|
REGISTER_ENUM(RPMSENSE_TRIGGERPREIN);
|
||||||
REGISTER_ENUM(RPMSENSE_KEYRING);
|
REGISTER_ENUM(RPMSENSE_KEYRING);
|
||||||
@ -238,9 +236,9 @@ Needs extcond.diff for query operations.
|
|||||||
REGISTER_ENUM(RPMSENSE_CONFIG);
|
REGISTER_ENUM(RPMSENSE_CONFIG);
|
||||||
|
|
||||||
REGISTER_ENUM(RPMTRANS_FLAG_TEST);
|
REGISTER_ENUM(RPMTRANS_FLAG_TEST);
|
||||||
--- rpmpopt.in
|
--- ./rpmpopt.in.orig 2012-12-18 15:50:36.000000000 +0000
|
||||||
+++ rpmpopt.in
|
+++ ./rpmpopt.in 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -67,6 +67,22 @@
|
@@ -67,6 +67,22 @@ rpm alias --requires --qf \
|
||||||
--POPTdesc=$"list capabilities required by package(s)"
|
--POPTdesc=$"list capabilities required by package(s)"
|
||||||
rpm alias -R --requires
|
rpm alias -R --requires
|
||||||
|
|
||||||
@ -263,9 +261,9 @@ Needs extcond.diff for query operations.
|
|||||||
rpm alias --info --qf '\
|
rpm alias --info --qf '\
|
||||||
Name : %{NAME}\n\
|
Name : %{NAME}\n\
|
||||||
%|EPOCH?{Epoch : %{EPOCH}\n}|\
|
%|EPOCH?{Epoch : %{EPOCH}\n}|\
|
||||||
--- tests/rpmgeneral.at
|
--- ./tests/rpmgeneral.at.orig 2012-11-18 08:21:06.000000000 +0000
|
||||||
+++ tests/rpmgeneral.at
|
+++ ./tests/rpmgeneral.at 2013-07-12 11:32:45.000000000 +0000
|
||||||
@@ -79,6 +79,10 @@
|
@@ -79,6 +79,10 @@ DISTTAG
|
||||||
DISTURL
|
DISTURL
|
||||||
DSAHEADER
|
DSAHEADER
|
||||||
E
|
E
|
||||||
@ -276,7 +274,7 @@ Needs extcond.diff for query operations.
|
|||||||
EPOCH
|
EPOCH
|
||||||
EPOCHNUM
|
EPOCHNUM
|
||||||
EVR
|
EVR
|
||||||
@@ -219,6 +223,10 @@
|
@@ -219,6 +223,10 @@ SOURCE
|
||||||
SOURCEPACKAGE
|
SOURCEPACKAGE
|
||||||
SOURCEPKGID
|
SOURCEPKGID
|
||||||
SOURCERPM
|
SOURCERPM
|
||||||
|
Loading…
Reference in New Issue
Block a user