From fd41accd0d3283425864e0cb5692172f6ecf9e73 Mon Sep 17 00:00:00 2001 From: cvs2git Date: Fri, 12 Nov 2010 15:40:47 +0000 Subject: [PATCH] This commit was manufactured by cvs2git to create branch 'Titanium'. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Sprout from master 2008-02-01 16:41:08 UTC Elan Ruusamäe '- revert filezilla related hack' Cherrypick from master 2008-03-24 20:25:57 UTC Elan Ruusamäe '- add --what-provides, --what-requires': rpm-popt-downgrade.patch -> 1.2 Cherrypick from master 2008-11-18 13:34:55 UTC Elan Ruusamäe '- add Libraries/Java': rpm.groups -> 1.91 Cherrypick from master 2010-11-12 15:40:47 UTC Elan Ruusamäe '- do not output tag, wasn't needed before': rpm-java-requires -> 1.10 Cherrypick from rpm-4_4_9 2008-01-01 22:49:58 UTC tommat '- updated': rpm-sparc64.patch -> 1.1.2.1 Cherrypick from rpm-4_4_9 2008-04-07 18:57:18 UTC Elan Ruusamäe '- jbj: fix: reverse arrows on erasure dependency graph.': rpm-rpm5-patchset-10061.patch -> 1.1.2.1 Delete: RPM-GPG-KEY adapter.awk banner.sh builder db-rpm-robustness.patch patch.4.5.20.1 patch.4.5.20.2 perl.prov pldnotify.awk rpm-bug-146549.patch rpm-compress-doc rpm-compress-doc.patch rpm-cpuinfo.patch rpm-debuginfo.patch rpm-dontneedutils.patch rpm-doxygen_hack.patch rpm-epoch0.patch rpm-error-fatal.patch rpm-etc_dir.patch rpm-find-spec-bcond rpm-gettext-in-header.patch rpm-groups-po.awk rpm-hack-norpmlibdep.patch rpm-install-tree rpm-javadeps.patch rpm-libtool-deps.patch rpm-lzma-size_t.patch rpm-macros-amd64 rpm-macros-athlon rpm-macros-i386 rpm-macros-i486 rpm-macros-i586 rpm-macros-i686 rpm-macros-ia32e rpm-macros-noarch rpm-macros-pentium3 rpm-macros-pentium4 rpm-macros-ppc rpm-macros-x86_64 rpm-macros.java rpm-macros.patch rpm-man_pl.patch rpm-mono.patch rpm-morearchs.patch rpm-noexpand.patch rpm-notsc.patch rpm-old-fileconflicts-behaviour.patch rpm-perl-macros.patch rpm-perl-req-perlfile.patch rpm-perl_req-INC_dirs.patch rpm-php-deps.patch rpm-php-macros.patch rpm-php-provides rpm-php-requires rpm-pkgconfigdeps.patch rpm-pl.po.patch rpm-pld-autodep.patch rpm-pld.macros rpm-po.patch rpm-provides-dont-obsolete.patch rpm-repackage-wo-lzma.patch rpm-rpm2cpio-payload.patch rpm-rpm5-patchset-8413.patch rpm-rpm5-patchset-8637.patch rpm-rpm5-patchset-8784.patch rpm-rpmpopt.patch rpm-rpmrc-resurrect.patch rpm-scripts-closefds.patch rpm-tar_as_secondary_source.patch rpm-truncate-cvslog.patch rpm-user_group.sh rpm-v3-support.patch rpm.macros rpm.platform rpm.spec rpm.sysconfig rpm.sysinfo --- RPM-GPG-KEY | 27 - adapter.awk | 1694 ----------------- banner.sh | 285 --- builder | 2405 ------------------------- db-rpm-robustness.patch | 47 - patch.4.5.20.1 | 37 - patch.4.5.20.2 | 66 - perl.prov | 140 -- pldnotify.awk | 413 ----- rpm-bug-146549.patch | 117 -- rpm-compress-doc | 85 - rpm-compress-doc.patch | 33 - rpm-cpuinfo.patch | 13 - rpm-debuginfo.patch | 49 - rpm-dontneedutils.patch | 41 - rpm-doxygen_hack.patch | 10 - rpm-epoch0.patch | 15 - rpm-error-fatal.patch | 15 - rpm-etc_dir.patch | 69 - rpm-find-spec-bcond | 64 - rpm-gettext-in-header.patch | 12 - rpm-groups-po.awk | 20 - rpm-hack-norpmlibdep.patch | 11 - rpm-install-tree | 3 - rpm-java-requires | 82 +- rpm-javadeps.patch | 30 - rpm-libtool-deps.patch | 63 - rpm-lzma-size_t.patch | 11 - rpm-macros-amd64 | 37 - rpm-macros-athlon | 37 - rpm-macros-i386 | 37 - rpm-macros-i486 | 37 - rpm-macros-i586 | 37 - rpm-macros-i686 | 37 - rpm-macros-ia32e | 37 - rpm-macros-noarch | 34 - rpm-macros-pentium3 | 37 - rpm-macros-pentium4 | 37 - rpm-macros-ppc | 36 - rpm-macros-x86_64 | 37 - rpm-macros.java | 2 - rpm-macros.patch | 116 -- rpm-man_pl.patch | 10 - rpm-mono.patch | 13 - rpm-morearchs.patch | 106 -- rpm-noexpand.patch | 74 - rpm-notsc.patch | 11 - rpm-old-fileconflicts-behaviour.patch | 23 - rpm-perl-macros.patch | 91 - rpm-perl-req-perlfile.patch | 124 -- rpm-perl_req-INC_dirs.patch | 35 - rpm-php-deps.patch | 12 - rpm-php-macros.patch | 11 - rpm-php-provides | 17 - rpm-php-requires | 78 - rpm-pkgconfigdeps.patch | 11 - rpm-pl.po.patch | 806 --------- rpm-pld-autodep.patch | 450 ----- rpm-pld.macros | 52 - rpm-po.patch | 11 - rpm-popt-downgrade.patch | 16 + rpm-provides-dont-obsolete.patch | 17 - rpm-repackage-wo-lzma.patch | 42 - rpm-rpm2cpio-payload.patch | 24 - rpm-rpm5-patchset-10061.patch | 33 + rpm-rpm5-patchset-8413.patch | 158 -- rpm-rpm5-patchset-8637.patch | 12 - rpm-rpm5-patchset-8784.patch | 41 - rpm-rpmpopt.patch | 55 - rpm-rpmrc-resurrect.patch | 13 - rpm-scripts-closefds.patch | 19 - rpm-sparc64.patch | 11 - rpm-tar_as_secondary_source.patch | 30 - rpm-truncate-cvslog.patch | 64 - rpm-user_group.sh | 79 - rpm-v3-support.patch | 25 - rpm.groups | 122 +- rpm.macros | 1386 -------------- rpm.platform | 37 - rpm.spec | 1212 ------------- rpm.sysconfig | 15 - rpm.sysinfo | 5 - 82 files changed, 221 insertions(+), 11545 deletions(-) delete mode 100644 RPM-GPG-KEY delete mode 100644 adapter.awk delete mode 100644 banner.sh delete mode 100644 builder delete mode 100644 db-rpm-robustness.patch delete mode 100644 patch.4.5.20.1 delete mode 100644 patch.4.5.20.2 delete mode 100644 perl.prov delete mode 100644 pldnotify.awk delete mode 100644 rpm-bug-146549.patch delete mode 100644 rpm-compress-doc delete mode 100644 rpm-compress-doc.patch delete mode 100644 rpm-cpuinfo.patch delete mode 100644 rpm-debuginfo.patch delete mode 100644 rpm-dontneedutils.patch delete mode 100644 rpm-doxygen_hack.patch delete mode 100644 rpm-epoch0.patch delete mode 100644 rpm-error-fatal.patch delete mode 100644 rpm-etc_dir.patch delete mode 100644 rpm-find-spec-bcond delete mode 100644 rpm-gettext-in-header.patch delete mode 100644 rpm-groups-po.awk delete mode 100644 rpm-hack-norpmlibdep.patch delete mode 100644 rpm-install-tree delete mode 100644 rpm-javadeps.patch delete mode 100644 rpm-libtool-deps.patch delete mode 100644 rpm-lzma-size_t.patch delete mode 100644 rpm-macros-amd64 delete mode 100644 rpm-macros-athlon delete mode 100644 rpm-macros-i386 delete mode 100644 rpm-macros-i486 delete mode 100644 rpm-macros-i586 delete mode 100644 rpm-macros-i686 delete mode 100644 rpm-macros-ia32e delete mode 100644 rpm-macros-noarch delete mode 100644 rpm-macros-pentium3 delete mode 100644 rpm-macros-pentium4 delete mode 100644 rpm-macros-ppc delete mode 100644 rpm-macros-x86_64 delete mode 100644 rpm-macros.java delete mode 100644 rpm-macros.patch delete mode 100644 rpm-man_pl.patch delete mode 100644 rpm-mono.patch delete mode 100644 rpm-morearchs.patch delete mode 100644 rpm-noexpand.patch delete mode 100644 rpm-notsc.patch delete mode 100644 rpm-old-fileconflicts-behaviour.patch delete mode 100644 rpm-perl-macros.patch delete mode 100644 rpm-perl-req-perlfile.patch delete mode 100644 rpm-perl_req-INC_dirs.patch delete mode 100644 rpm-php-deps.patch delete mode 100644 rpm-php-macros.patch delete mode 100644 rpm-php-provides delete mode 100644 rpm-php-requires delete mode 100644 rpm-pkgconfigdeps.patch delete mode 100644 rpm-pl.po.patch delete mode 100644 rpm-pld-autodep.patch delete mode 100644 rpm-pld.macros delete mode 100644 rpm-po.patch create mode 100644 rpm-popt-downgrade.patch delete mode 100644 rpm-provides-dont-obsolete.patch delete mode 100644 rpm-repackage-wo-lzma.patch delete mode 100644 rpm-rpm2cpio-payload.patch create mode 100644 rpm-rpm5-patchset-10061.patch delete mode 100644 rpm-rpm5-patchset-8413.patch delete mode 100644 rpm-rpm5-patchset-8637.patch delete mode 100644 rpm-rpm5-patchset-8784.patch delete mode 100644 rpm-rpmpopt.patch delete mode 100644 rpm-rpmrc-resurrect.patch delete mode 100644 rpm-scripts-closefds.patch delete mode 100644 rpm-tar_as_secondary_source.patch delete mode 100644 rpm-truncate-cvslog.patch delete mode 100644 rpm-user_group.sh delete mode 100644 rpm-v3-support.patch delete mode 100644 rpm.macros delete mode 100644 rpm.platform delete mode 100644 rpm.spec delete mode 100644 rpm.sysconfig delete mode 100644 rpm.sysinfo diff --git a/RPM-GPG-KEY b/RPM-GPG-KEY deleted file mode 100644 index 01871a5..0000000 --- a/RPM-GPG-KEY +++ /dev/null @@ -1,27 +0,0 @@ -Below is public GPG key used for signing all PLD 2.0 (Ac) packages. It is also available on our FTP. ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.6 (GNU/Linux) - -mQGiBEYeXR4RBADzXva/pQ3Cb7W5u0ogtvi3ooo26kXKYUFhnZJndq4iCCTIyUYC -twMasZvDz7RXO36V9x/uXCCj8POc11wfQaRV+H92zQBAnAwZRUCkfOJ4u2cv+4Dd -KyCq4KwPC0K+eyz9hEXHg6qlXaOCBxnGuOWaN8qdVc1ZzA0KvofqRJGCQwCgy8+V -97aqXYbPgkKsVLy/C2o9xXED/3DYkfVzgBpfpnnfe8VhrKXh3Ko0vQs5r67Lhi9o -QZOHYD7Ub+ahMzGbW/F2Dq5jF9Mam57z93FoROw3Y/mJ0Cu3Ua43Ii5fVEKmqH24 -1Zow4c78D/GJfh1EUqmqOx2zkTO2KIbvNJqoRjQ22JzbJLjEYlnBhPvWWKlfQZss -xKFuBACfxuaNJ2gSYCqkScAwUx4nvFpJlfAdWt/7eaaAMzFmnFEakYliZ12UrdO1 -U0xT5UkvP7yAvxdXC3HhI03sRGKBtqCQn7jA4DznCL3Jz5+XGG5tE/RpR0WBlzaW -uS4Kuyf9/Imas7Fyxfv/ZPrsjEe1LcD0yr1zg0G2nvOlEgAgXrQ4UExEIExpbnV4 -IERpc3RyaWJ1dGlvbiAyLjAgKEFjKSA8YWMtYWRtaW5AcGxkLWxpbnV4Lm9yZz6I -YAQTEQIAIAUCRh5dHgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHx1HFwb -vVRZx/EAn1pN8ykFoMUd9ap/orPWuiK/HC7IAJwI0a/Vg4d5O/XseXHifKiizmvG -frkBDQRGHl0eEAQAsXIeTPUCfMER3FjOnVsFpG3AzjTnHCGZa1F9ri7/AoOoi0ZT -bzvzUDa+e6mVKGCgZssxSfuLc841fylSg9Fh6FIKdOm4i7xMHR4lGJ0OAfSdyT7R -h6xeM6Kv+6r6cTTmt60vul+/SYSi5Tsd7zdKhmw9Sz2sR4xmQz4IGM4Pve8AAwUD -/0d95Q3kff3QzXxMrpnVmQN1mRZL2x+aDpzRe6oLn6clWis2Fj/LNx71Mb87Frw5 -Tz5RY6WuU/fyZGsPX/ngCmf8S9pM53VPtW2PWoyJpu5ENO5iEY2RLFCsKXCOS2j4 -p0IEKULPAIZ/12+wKks2uZG+tNMzIvXzmWtTPzKazSPmiEkEGBECAAkFAkYeXR4C -GwwACgkQfHUcXBu9VFkZogCgjPi/pyQ4Wqs20kZXIP/QbVC7kjUAoLw5INvpciE2 -GKFQV2VUl29FqBmJ -=K14g ------END PGP PUBLIC KEY BLOCK----- - diff --git a/adapter.awk b/adapter.awk deleted file mode 100644 index 478c71b..0000000 --- a/adapter.awk +++ /dev/null @@ -1,1694 +0,0 @@ -#!/usr/bin/gawk -f -# -# This is adapter v0.28. Adapter adapts .spec files for PLD Linux. -# $Id$ -# -# Copyright (C) 1999-2007 PLD-Team -# Authors: -# Michał Kuratczyk -# Sebastian Zagrodzki -# Tomasz Kłoczko -# Artur Frysiak -# Michal Kochanowicz -# Jakub Bogusz -# Elan Ruusamäe -# -# See cvs log adapter{,.awk} for list of contributors -# -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - -# TODO -# - parse ../PLD-doc/BuildRequires.txt and setup proper BR epoches? -# - add "-nc" option to skip CVS interaction -# - sort Summary(XX) -# - sort Requires, BuildRequires -# - check if %description (lang=C) contains 8bit -# - desc wrapping is totally fucked up on global.spec,1.25, dosemu.spec,1.115- - -BEGIN { - RPM_SECTIONS = "package|build|changelog|clean|description|install|post|posttrans|postun|pre|prep|pretrans|preun|triggerin|triggerpostun|triggerun|verifyscript|check" - SECTIONS = "^%(" RPM_SECTIONS ")" - - PREAMBLE_TAGS = "(R|BR|Summary|Name|Version|Release|Epoch|License|Group|URL|BuildArch|BuildRoot|Obsoletes|Conflicts|Provides|ExclusiveArch|ExcludeArch|Pre[Rr]eq|(Build)?Requires|Suggests)" - - preamble = 1 # Is it part of preamble? Default - yes - boc = 4 # Beginning of %changelog - bod = 0 # Beginning of %description - tw = 70 # Descriptions width - - b_idx = 0 # index of BR/R arrays - BR_count = 0 # number of additional BuildRequires - - # If variable removed, then 1 (for removing it from export) - removed["LDFLAGS"] = 0 - removed["CFLAGS"] = 0 - removed["CXXFLAGS"] = 0 - - # get cvsaddress for changelog section - # using rpm macros as too lazy to add ~/.adapterrc parsing support. - "rpm --eval '%{?_cvsmaildomain}%{!?_cvsmaildomain:@pld-linux.org}'" | getline _cvsmaildomain - "rpm --eval '%{?_cvsmailfeedback}%{!?_cvsmailfeedback:PLD Team }'" | getline _cvsmailfeedback - - # If 1, we are inside of comment block (started with /^#%/) - comment_block = 0 - - # File with rpm groups - "rpm --eval %_sourcedir" | getline groups_file - groups_file = groups_file "/rpm.groups" - system("cd `rpm --eval %_sourcedir`; [ -f rpm.groups ] || cvs up rpm.groups >/dev/null") - system("[ -d ../PLD-doc ] && cd ../PLD-doc && ([ -f BuildRequires.txt ] || cvs up BuildRequires.txt >/dev/null)"); - - # Temporary file for changelog section - changelog_file = ENVIRON["HOME"] "/tmp/adapter.changelog" - - # Load rpm macros - "rpm --eval %_prefix" | getline prefix - "rpm --eval %_bindir" | getline bindir - "rpm --eval %_sbindir" | getline sbindir - "rpm --eval %_libdir" | getline libdir - "rpm --eval %_sysconfdir" | getline sysconfdir - "rpm --eval %_datadir" | getline datadir - "rpm --eval %_includedir" | getline includedir - "rpm --eval %_mandir" | getline mandir - "rpm --eval %_infodir" | getline infodir - "rpm --eval %_examplesdir" | getline examplesdir - "rpm --eval %_defaultdocdir" | getline docdir - "rpm --eval %_kdedocdir" | getline kdedocdir - "rpm --eval %_desktopdir" | getline desktopdir - "rpm --eval %_pixmapsdir" | getline pixmapsdir - - "rpm --eval %perl_sitearch" | getline perl_sitearch - "rpm --eval %perl_archlib" | getline perl_archlib - "rpm --eval %perl_privlib" | getline perl_privlib - "rpm --eval %perl_vendorlib" | getline perl_vendorlib - "rpm --eval %perl_vendorarch" | getline perl_vendorarch - "rpm --eval %perl_sitelib" | getline perl_sitelib - - "rpm --eval %py_sitescriptdir 2>/dev/null" | getline py_sitescriptdir - "rpm --eval %py_sitedir 2>/dev/null" | getline py_sitedir - "rpm --eval %py_scriptdir 2>/dev/null" | getline py_scriptdir - - "rpm --eval %ruby_archdir" | getline ruby_archdir - "rpm --eval %ruby_ridir" | getline ruby_ridir - "rpm --eval %ruby_rubylibdir" | getline ruby_rubylibdir - "rpm --eval %ruby_sitearchdir" | getline ruby_sitearchdir - "rpm --eval %ruby_sitelibdir" | getline ruby_sitelibdir - - "rpm --eval %php_pear_dir" | getline php_pear_dir - "rpm --eval %tmpdir" | getline tmpdir -} - -# There should be a comment with CVS keywords on the first line of file. -FNR == 1 { - if (!/# \$Revision:/) # If this line is already OK? - print "# $" "Revision:$, " "$" "Date:$" # No - else { - print $0 # Yes - next # It is enough for first line - } -} - -# If the latest line matched /%files/ -defattr == 1 { - if (ENVIRON["SKIP_DEFATTR"] != 1) { - if ($0 !~ /defattr/) { # If no %defattr - print "%defattr(644,root,root,755)" # Add it - } else { - $0 = "%defattr(644,root,root,755)" # Correct mistakes (if any) - } - } - defattr = 0 -} - -function b_makekey(a, b, s) { - s = a "" b; - # kill bcond - gsub(/[#%]+{[!?]+[_a-zA-Z0-9]+:/, "", s); - - # kill commented out items - gsub(/^#[ \t]*/, "", s); - - # force order - gsub(/^Summary\(/, "11Summary(", s); - gsub(/^Summary/, "10Summary", s); - gsub(/^Name/, "2Name", s); - gsub(/^Version/, "3Version", s); - gsub(/^Release/, "4Release", s); - gsub(/^Epoch/, "5Epoch", s); - gsub(/^License/, "5License", s); - gsub(/^Group/, "6Group", s); - gsub(/^URL/, "7URL", s); - - gsub(/^BuildRequires/, "B1BuildRequires", s); - gsub(/^BuildConflicts/, "B2BuildConflicts", s); - - gsub(/^Suggests/, "X1Suggests", s); - gsub(/^Provides/, "X2Provides", s); - gsub(/^Obsoletes/, "X3Obsoletes", s); - gsub(/^Conflicts/, "X4Conflicts", s); - gsub(/^BuildArch/, "X5BuildArch", s); - gsub(/^ExclusiveArch/, "X6ExclusiveArch", s); - gsub(/^ExcludeArch/, "X7ExcludeArch", s); - gsub(/^BuildRoot/, "X9BuildRoot", s); - -# printf("%s -> %s\n", a""b, s); - return s; -} - -# Comments -/^#/ && (description == 0) { - if (/This file does not like to be adapterized!/) { - print # print this message - while (getline) # print the rest of spec as it is - print - do_not_touch_anything = 1 # do not touch anything in END() - exit 0 - } - - # Generally, comments are printed without touching - sub(/[ \t]+$/, "") - - if (/Source.*md5/) { - print $0 - next - } -} - -/^%define/ { - # Remove defining _applnkdir (this macro has been included in rpm-3.0.4) - if ($2 == "_applnkdir") { - next - } - if ($2 == "date") { - date = 1 - if (did_files == 0) { - print "%files" - print "" - did_files = 1 - } - } - - # Do not add %define of _prefix if it already is. - if ($2 ~ /^_prefix/) { - sub("^"prefix, $3, bindir) - sub("^"prefix, $3, sbindir) - sub("^"prefix, $3, libdir) - sub("^"prefix, $3, datadir) - sub("^"prefix, $3, includedir) - prefix = $3 - } - - if ($2 ~ /_bindir/ && !/_sbindir/) - bindir = $3 - if ($2 ~ /_sbindir/) - sbindir = $3 - if ($2 ~ /_libdir/) { - if ($3 ~ /^%\(/) { - # TODO: should escape for latter checks like: ($c ~ sysconfdir "/{?cron.") - libdir = "%%%%%%%%%%%%%%" - } else { - libdir = $3 - } - } - if ($2 ~ /_sysconfdir/) { - if ($3 ~ /^%\(/) { - # TODO: should escape for latter checks like: ($c ~ sysconfdir "/{?cron.") - sysconfdir = "%%%%%%%%%%%%%%" - } else { - sysconfdir = $3 - } - } - if ($2 ~ /_datadir/) { - if ($3 ~ /^%\(/) { - # TODO: should escape for latter checks like: ($c ~ sysconfdir "/{?cron.") - datadir = "%%%%%%%%%%%%%%" - } else { - datadir = $3 - } - } - if ($2 ~ /_includedir/) - includedir = $3 - if ($2 ~ /_mandir/) - mandir = $3 - if ($2 ~ /_infodir/) - infodir = $3 - if ($2 ~ /_docdir/) - docdir = $3 - - # version related macros - if ($2 ~ /^_beta$/) - _beta = $3 - if ($2 ~ /^_rc$/) - _rc = $3 - if ($2 ~ /^_pre$/) - _pre = $3 - if ($2 ~ /^_snap$/) - _snap = $3 - - # these are used usually when adapterizing external spec - if ($2 ~ /^name$/) - name = $3 - if ($2 ~ /^version$/) - version = $3 - if ($2 ~ /^release$/) - release = $3 - - if ($2 ~ /^mod_name$/) - mod_name = $3 - - sub(/[ \t]+$/, ""); - # do nothing further, otherwise adapter thinks we're at preamble - print - next -} - -# Obsolete -/^%include.*\/usr\/lib\/rpm\/macros\.python$/ { - next -} - -################ -# %description # -################ -/^%description/, (!/^%description/ && $0 ~ SECTIONS) { - preamble = 0 - - if (/^%description/) { - bod++ - format_line = "" - format_indent = -1 - } - - # Format description - if (ENVIRON["SKIP_DESC"] != 1 && description == 1 && !/^%[a-z]+/ && !/^%description/) { - if (/^[ \t]*$/) { - format_flush(format_line, format_indent) - print "" - format_line = "" - format_indent = -1 - } else if (/^[ \t]*[-\*][ \t]*/) { - format_flush(format_line, format_indent) - match($0, /^[ \t]*/) - format_indent = RLENGTH - match($0, /^[ \t]*[-\*][ \t]/) - format_line = substr($0, RLENGTH) - } else - format_line = format_line " " $0 - next - } - - if (/^%[a-z]+/ && (!/^%description/ || bod == 2)) { - if (NF > 3 && $2 == "-l") { - ll = $1 - for (i = 4; i <= NF; i++) - ll = ll " " $i - $0 = ll " -l " $3 - } - format_flush(format_line, format_indent) - if (bod == 2) { - bod = 1 - description = 1 - } else { - bod = 0 - description = 0 - } - } else - description = 1 -} - -######### -# %prep # -######### -/^%prep/, (!/^%prep/ && $0 ~ SECTIONS) { - preamble = 0 - did_prep = 1 - - use_macros() - - # Add '-q' to %setup - if (/^%setup/ && !/-q/) { - sub(/^%setup/, "%setup -q") - } - - if (/^%setup/ && name != "setup") { - $0 = fixedsub(name, "%{name}", $0); - $0 = fixedsub(version, "%{version}", $0); - if (_beta) { - $0 = fixedsub(_beta, "%{_beta}", $0); - } - if (_rc) { - $0 = fixedsub(_rc, "%{_rc}", $0); - } - if (_pre) { - $0 = fixedsub(_pre, "%{_pre}", $0); - } - if (_snap) { - $0 = fixedsub(_snap, "%{_snap}", $0); - } - } - - if (/^%setup/ && /-n %{name}-%{version}( |$)/) { - $0 = fixedsub(" -n %{name}-%{version}", "", $0) - } - sub("^%patch ", "%patch0 "); - - # invalid in %prep - sub("^rm -rf \$RPM_BUILD_ROOT.*", ""); -} - -########## -# %build # -########## -/^%build/, (!/^%build/ && $0 ~ SECTIONS) { - preamble = 0 - - if (did_prep == 0) { - print "%prep" - print "" - did_prep = 1 - } - - use_macros() - use_tabs() - - if (/^automake$/) - sub(/$/, " -a -c") - - if (/LDFLAGS/) { - if (/LDFLAGS="-s"/) { - removed["LDFLAGS"] = 1 - next - } else { - split($0, tmp, "LDFLAGS=") - count = split(tmp[2], flags, "\"") - if (flags[1] != "" && flags[1] !~ "!?debug") { - sub(/-s[" ]?/, "%{rpmldflags} ", flags[1]) - $0 = tmp[1] line[1] "LDFLAGS=" flags[1] "\"" - for (i = 2; i < count; i++) - $0 = $0 flags[i] "\"" - } - } - } - - if (/CFLAGS=/) - if (cflags("CFLAGS") == 0) - next - - if (/CXXFLAGS=/) - if (cflags("CXXFLAGS") == 0) - next - - if (/^export /) { - if (removed["LDFLAGS"]) - sub(" LDFLAGS", "") - if (removed["CFLAGS"]) - sub(" CFLAGS", "") - if (removed["CXXFLAGS"]) - sub(" CXXFLAGS", "") - # Is there still something? - if (/^export[ ]*$/) - next - } - - # quote CC - if (/CC=%{__cc} /) { - sub("CC=%{__cc}", "CC=\"%{__cc}\"") - } - - # use PLD Linux macros - $0 = fixedsub("glib-gettextize --copy --force","%{__glib_gettextize}", $0); - $0 = fixedsub("intltoolize --copy --force", "%{__intltoolize}", $0); - $0 = fixedsub("automake --add-missing --copy", "%{__automake}", $0); - $0 = fixedsub("automake -a --foreign --copy", "%{__automake}", $0); - $0 = fixedsub("automake -a -c --foreign", "%{__automake}", $0); - $0 = fixedsub("automake -a -c", "%{__automake}", $0); - $0 = fixedsub("libtoolize --force --automake --copy", "%{__libtoolize}", $0); - $0 = fixedsub("libtoolize -c -f --automake", "%{__libtoolize}", $0); - - sub(/^aclocal$/, "%{__aclocal}"); - sub(/^autoheader$/, "%{__autoheader}"); - sub(/^autoconf$/, "%{__autoconf}"); - sub(/^automake$/, "%{__automake}"); - sub(/^libtoolize$/, "%{__libtoolize}"); - - # atrpms - $0 = fixedsub("%perl_configure", "%{__perl} Makefile.PL \\\n\tINSTALLDIRS=vendor", $0); - $0 = fixedsub("%perl_makecheck", "%{?with_tests:%{__make} test}", $0); -} - -########## -# %clean # -########## -/^%clean/, (!/^%clean/ && $0 ~ SECTIONS) { - did_clean = 1 - - use_macros() -} - -############ -# %install # -############ -/^%install/, (!/^%install/ && $0 ~ SECTIONS) { - - preamble = 0 - - # foreign rpms - sub("^%{__rm} -rf %{buildroot}", "rm -rf $RPM_BUILD_ROOT") - sub("%buildroot", "$RPM_BUILD_ROOT"); - sub("%{buildroot}", "$RPM_BUILD_ROOT"); - - if (/^[ \t]*rm([ \t]+-[rf]+)*[ \t]+(\${?RPM_BUILD_ROOT}?|%{?buildroot}?)/ && did_rmroot==0) { - did_rmroot=1 - print "rm -rf $RPM_BUILD_ROOT" - next - } - - if (!/^(#?[ \t]*)$/ && !/^%install/ && did_rmroot==0) { - print "rm -rf $RPM_BUILD_ROOT" - did_rmroot=1 - } - - if (tmpdir) { - buildroot = tmpdir "/" name "-" version "-root-" ENVIRON["USER"] - gsub(buildroot, "$RPM_BUILD_ROOT") - } - - if (!/%{_lib}/) { - sub("\$RPM_BUILD_ROOT/%", "$RPM_BUILD_ROOT%") - } - - use_macros() - - # 'install -d' instead 'mkdir -p' - if (/mkdir -p/) - sub(/mkdir -p/, "install -d") - - # cp -a already implies cp -r - sub(/^cp -ar/, "cp -a") - - # No '-u root' or '-g root' for 'install' - if (/^install/ && /-[ug][ \t]*root/) - gsub(/-[ug][ \t]*root /, "") - - if (/^install/ && /-m[ \t]*[0-9]+/) - gsub(/-m[ \t]*[0-9]+ /, "") - - # No lines contain 'chown' or 'chgrp' if owner/group is 'root' - if (($1 ~ /chown/ && $2 ~ /root\.root/) || ($1 ~ /chgrp/ && $2 ~ /root/)) - next - - # No lines contain 'chmod' if it sets the modes to '644' - if ($1 ~ /chmod/ && $2 ~ /644/) - next - - # atrpms - $0 = fixedsub("%perl_makeinstall", "%{__make} pure_install \\\n\tDESTDIR=$RPM_BUILD_ROOT", $0); -} - -########## -# %files # -########## -/^%files/, (!/^%files/ && $0 ~ SECTIONS) { - preamble = 0 - did_files = 1 - - if ($0 ~ /^%files/) - defattr = 1 - - use_files_macros() -} - -############## -# %changelog # -############## -/^%changelog/, (!/^%changelog/ && $0 ~ SECTIONS) { - preamble = 0 - has_changelog = 1 - skip = 0 - # There should be some CVS keywords on the first line of %changelog. - if (boc == 3) { - if ($0 !~ _cvsmailfeedback) { - print "* %{date} " _cvsmailfeedback > changelog_file - } else { - skip = 1 - } - boc = 2 - } - if (boc == 2 && !skip) { - if (!/All persons listed below/) { - printf "All persons listed below can be reached at " > changelog_file - print "" _cvsmaildomain "\n" > changelog_file - } else { - skip = 1 - } - boc = 1 - } - if (boc == 1 && !skip) { - if (!/^$/) { - if (!/\$.*Log:.*\$/) { - print "$" "Log:$" > changelog_file - } - boc = 0 - } - } - # Define date macro. - if (boc == 4) { - if (date == 0) { - printf "%%define date\t%%(echo `LC_ALL=\"C\"" > changelog_file - print " date +\"%a %b %d %Y\"`)" > changelog_file - date = 1 - } - boc = 3 - } - - sub(/[ \t]+$/, ""); - if (!/^%[a-z]+$/ || /changelog/) { - # stop changelog if "real" changelog starts - if (boc == 0 && /^\* /) { - boc = -1 - } - if (boc == -1) { - next; - } - print > changelog_file - } else { - print - } - next -} - -########### -# SCRIPTS # -########### -/^%pre/, (!/^%pre/ && $0 ~ SECTIONS) { - preamble = 0 - - if (gsub("/usr/sbin/useradd", "%useradd")) { - sub(" 2> /dev/null \|\| :", ""); - sub(" >/dev/null 2>&1 \|\|:", ""); - } - - # %useradd and %groupadd may not be wrapped - if (/%(useradd|groupadd).*\\$/) { - a = $0; getline; - sub(/^[\s\t]*/, ""); - $0 = substr(a, 1, length(a) - 1) $0; - } - use_script_macros() -} - -/^%post/, (!/^%post/ && $0 ~ SECTIONS) { - preamble = 0 - use_macros() -} -/^%preun/, (!/^%preun/ && $0 ~ SECTIONS) { - preamble = 0 - use_macros() -} -/^%postun/, (!/^%postun/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%triggerin/, (!/^%triggerin/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%triggerun/, (!/^%triggerun/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%triggerpostun/, (!/^%triggerpostun/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%pretrans/, (!/^%pretrans/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%posttrans/, (!/^%posttrans/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%verifyscript/, (!/^%verifyscript/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} -/^%check/, (!/^%check/ && $0 ~ SECTIONS) { - preamble = 0 - use_script_macros() -} - -############# -# PREAMBLES # -############# -preamble == 1 { - # There should not be a space after the name of field - # and before the colon. - sub(/[ \t]*:/, ":") - - if (/^%perl_module_wo_prefix/) { - name = $2 - version = $3 - release = "0." fixedsub(".%{disttag}.at", "", $4) - } - - field = tolower($1) - fieldnlower = $1 - if (field ~ /summary:/ && !/etc\.$/ && !/Inc\.$/) { - sub(/\.$/, "", $0); - } - if (field ~ /group(\([^)]+\)):/) - next - if (field ~ /group:/) { - format_preamble() - group = $0; - sub(/^[^ \t]*[ \t]*/, "", group); - - sub(/^Utilities\//,"Applications/", group) - sub(/^Games/,"Applications/Games", group) - sub(/^X11\/Games/,"X11/Applications/Games", group) - sub(/^X11\/GNOME\/Development\/Libraries/,"X11/Development/Libraries", group) - sub(/^X11\/GNOME\/Applications/,"X11/Applications", group) - sub(/^X11\/GNOME/,"X11/Applications", group) - sub(/^X11\/Utilities/,"X11/Applications", group) - sub(/^X11\/Games\/Strategy/,"X11/Applications/Games/Strategy", group) - sub(/^X11\/Library/,"X11/Libraries", group) - sub(/^Shells/,"Applications/Shells", group) - sub(/^System Environment\/Libraries$/, "Libraries", group) - sub(/^Library\/Development$/, "Development/Libraries", group) - sub(/^System Environment\/Daemons$/, "Daemons", group) - sub(/^Applications\/Internet$/, "Applications/Networking", group) - sub(/^Applications\/Daemons$/, "Daemons", group) - sub(/^Application\/Multimedia$/, "Applications/Multimedia", group) - sub(/^System\/Servers$/, "Daemons", group) - sub(/^X11\/Xserver$/, "X11/Servers", group) - sub(/^X11\/XFree86/, "X11", group) - sub(/^Applications\/Compilers$/, "Development/Languages", group) - sub(/^Applications\/Internet\/Peer to Peer/, "Applications/Networking", group) - sub(/^Networking\/Deamons$/, "Networking/Daemons", group) - sub(/^Development\/Docs$/, "Documentation", group) - sub(/^Development\/Documentation$/, "Documentation", group) - sub(/^System Environment\/Kernel$/, "Base/Kernel", group) - sub(/^Development\/Libraries\/Java$/, "Development/Languages/Java", group) - sub(/^Development\/Java/, "Development/Languages/Java", group) - sub(/^Development\/Testing$/, "Development", group) - sub(/^Text Processing\/Markup\/HTML$/, "Applications/Text", group) - sub(/^Text Processing\/Markup\/XML$/, "Applications/Text", group) - sub(/^Web\/Database$/, "Applications/WWW", group) - sub(/^System Environment\/Base$/, "Base", group) - sub(/^System$/, "Base", group) - sub(/^Applications\/Productivity$/, "X11/Applications", group) - sub(/^Database$/, "Applications/Databases", group) - sub(/^Development\/Code Generators$/, "Development", group) - sub(/^Emulators$/, "Applications/Emulators", group) - sub(/^System\/Libraries$/, "Libraries", group) - - $0 = "Group:\t\t" group - - if (group ~ /^X11/ && x11 == 0) # Is it X11 application? - x11 = 1 - - byl_plik_z_groupmi = 0 - byl_opis_grupy = 0 - while ((getline linia_grup < groups_file) > 0) { - byl_plik_z_groupmi = 1 - if (linia_grup == group) { - byl_opis_grupy = 1 - break - } - } - - if (!byl_plik_z_groupmi) - print "######\t\t" groups_file ": no such file" - else if (!byl_opis_grupy) - print "######\t\t" "Unknown group!" - - close(groups_file) - did_groups = 1 - } - - if (field ~ /prereq:/) { - sub(/Pre[Rr]eq:/, "Requires:", $1); - } - - # split (build)requires, obsoletes on commas - if (field ~ /(obsoletes|requires|provides|conflicts):/ && NF > 2) { - value = substr($0, index($0, $2)); - $0 = format_requires($1, value); - } - - # BR: tar (and others) is to common (rpm-build requires it) - if (field ~ /^buildrequires:/) { - l = substr($0, index($0, $2)); - if (l == "awk" || - l == "binutils" || - l == "bzip2" || - l == "cpio" || - l == "diffutils" || - l == "elfutils" || - l == "fileutils" || - l == "findutils" || - l == "glibc-devel" || - l == "grep" || - l == "gzip" || - l == "make" || - l == "patch" || - l == "sed" || - l == "sh-utils" || - l == "tar" || - l == "textutils") { - next - } - - # perhaps we have common known name? - - # jpackages - sub(/^java-devel$/, "jdk", $2); - sub(/^log4j$/, "jakarta-log4j", $2); - sub(/^oro$/, "jakarta-oro", $2); - sub(/^jakarta-ant$/, "ant", $2); - sub(/^xerces-j2$/, "xerces-j", $2); - sub(/^ldapjdk$/, "ldapsdk", $2); - sub(/^saxon-scripts$/, "saxon", $2); - sub(/^xalan-j2$/, "xalan-j", $2); - sub(/^xerces-j2$/, "xerces-j", $2); - - replace_php_virtual_deps(); - } - - if (field ~ /^requires:/) { - replace_php_virtual_deps(); - } - - - # obsolete/unwanted tags - if (field ~ /vendor:|packager:|distribution:|docdir:|prefix:|icon:|author:|author-email:|metadata-version:/) { - next - } - - if (field ~ /buildroot:/) { - $0 = $1 "%{tmpdir}/%{name}-%{version}-root-%(id -u -n)" - did_build_root = 1 - } - - # Use "License" instead of "Copyright" if it is (L)GPL or BSD - if (field ~ /copyright:/ && $2 ~ /GPL|BSD/) { - $1 = "License:" - } - - if (field ~ /license:/) { - l = substr($0, index($0, $2)); - if (l == "Python Software Foundation License") { - l = "PSF" - } - $0 = "License:\t" l; - } - - - if (field ~ /name:/) { - if ($2 == "%{name}" && name) { - $2 = name - } - name = $2 - name_seen = 1; - } - - if (field ~ /version:/) { - if ($2 == "%{version}" && version) { - $2 = version - } - version = $2 - version_seen = 1; - } - - if (field ~ /release:/) { - if ($2 == "%{release}" && release) { - $2 = release - } - sub(/%atrelease /, "0.", $0) - release = $2 - release_seen = 1; - } - - - if (field ~ /serial:/) - $1 = "Epoch:" - - if (field ~ /home-page:/) - $1 = "URL:" - - # proper caps - if (field ~ /^url:$/) - $1 = "URL:" - - if (field ~ /^description:$/) - $1 = "\n%description\n" - - # Use %{name} and %{version} in the filenames in "Source:" - if (field ~ /^source/ || field ~ /patch/) { - n = split($2, url, /\//) - if (url[n] ~ /\.gz$/) { - url[n+1] = ".gz" url[n+1] - sub(/\.gz$/,"",url[n]) - } - if (url[n] ~ /\.zip$/) { - url[n+1] = ".zip" url[n+1] - sub(/\.zip$/,"",url[n]) - } - if (url[n] ~ /\.tar$/) { - url[n+1] = ".tar" url[n+1] - sub(/\.tar$/,"",url[n]) - } - if (url[n] ~ /\.patch$/) { - url[n+1] = ".patch" url[n+1] - sub(/\.patch$/,"",url[n]) - } - if (url[n] ~ /\.bz2$/) { - url[n+1] = ".bz2" url[n+1] - sub(/\.bz2$/,"",url[n]) - } - if (url[n] ~ /\.logrotate$/) { - url[n+1] = ".logrotate" url[n+1] - sub(/\.logrotate$/,"",url[n]) - } - if (url[n] ~ /\.pamd$/) { - url[n+1] = ".pamd" url[n+1] - sub(/\.pamd$/,"",url[n]) - } - - # allow %{name} only in last url component - s = "" - for (i = 1; i <= n; i++) { - url[i] = fixedsub("%{name}", name, url[i]) - if (s) { - s = s "/" url[i] - } else { - s = url[i] - } - } - $2 = s url[n+1] - - filename = url[n] - if (name) { - url[n] = fixedsub(name, "%{name}", url[n]) - } - if (field ~ /source/) { - if (version) { - url[n] = fixedsub(version, "%{version}", url[n]) - } - if (_beta) { - url[n] = fixedsub(_beta, "%{_beta}", url[n]) - } - if (_rc) { - url[n] = fixedsub(_rc, "%{_rc}", url[n]) - } - if (_pre) { - url[n] = fixedsub(_pre, "%{_pre}", url[n]) - } - if (_snap) { - url[n] = fixedsub(_snap, "%{_snap}", url[n]) - } - } - # assigning to $2 kills preamble formatting - $2 = fixedsub(filename, url[n], $2) - - # sourceforge urls - sub("[?&]big_mirror=.*$", "", $2); - sub("[?&]modtime=.*$", "", $2); - - sub("[?]use_mirror=.*$", "", $2); - sub("[?]download$", "", $2); - - sub("^http://prdownloads\.sourceforge\.net/", "http://dl.sourceforge.net/", $2) - sub("^http://download\.sf\.net/", "http://dl.sourceforge.net/", $2) - sub("^http://downloads\.sourceforge\.net/", "http://dl.sourceforge.net/", $2) - - sub("^http://.*\.dl\.sourceforge\.net/", "http://dl.sourceforge.net/", $2) - sub("^http://dl\.sourceforge\.net/sourceforge/", "http://dl.sourceforge.net/", $2) - sub("^http://dl\.sf\.net/", "http://dl.sourceforge.net/", $2) - - sub("^ftp://ftp\.gnome\.org/", "http://ftp.gnome.org/", $2) - sub("^http://ftp\.gnome\.org/pub/gnome/", "http://ftp.gnome.org/pub/GNOME/", $2) - } - - - if (field ~ /^source:/) - $1 = "Source0:" - - if (field ~ /^patch:/) - $1 = "Patch0:" - - kill_preamble_macros(); - format_preamble() - - if (field ~ /requires/) { - # atrpms - $0 = fixedsub("%{eversion}", "%{epoch}:%{version}-%{release}", $0); - } -} - -/^%bcond_/ { - # do nothing - print - next -} - -# sort BR/R! -# -# NOTES: -# - mixing BR/R and anything else confuses this (all will be sorted together) -# so don't do that. -# - comments leading the BR/R can not be associated, -# so don't adapterize when the BR/R are mixed with comments -ENVIRON["SKIP_SORTBR"] != 1 && preamble == 1 && $0 ~ PREAMBLE_TAGS, $0 ~ PREAMBLE_TAGS { - if ($1 ~ /Pre[Rr]eq:/) { - sub(/Pre[Rr]eq:/, "Requires:", $1); - } - if ($1 == "BR:" ) { - $1 = "BuildRequires:" - } - if ($1 == "R:" ) { - $1 = "Requires:" - } - format_preamble() -# kill_preamble_macros(); # breaks tabbing - - b_idx++; - l = substr($0, index($0, $2)); - b_ktmp = b_makekey($1, l); - b_key[b_idx] = b_ktmp; - b_val[b_ktmp] = $0; - - next; -} - -preamble == 1 { - if (b_idx > 0) { - isort(b_key, b_idx); - for (i = 1; i <= b_idx; i++) { - v = b_val[b_key[i]]; - sub(/[ \t]+$/, "", v); - print "" v; - } - b_idx = 0 - } -} - -# main() ;-) -{ - preamble = 1 - - sub(/[ \t]+$/, "") - print - - if (name_seen == 0 && name) { - print "Name:\t\t" name - name_seen = 1 - } - - if (version_seen == 0 && version) { - print "Version:\t" version - version_seen = 1 - } - - if (release_seen == 0 && release) { - print "Release:\t" release - release_seen = 1 - } - - if (did_build_root == 0) { -# print "BuildRoot:\t%{tmpdir}/%{name}-%{version}-root-%(id -u -n)" - did_build_root = 1 - } - if (did_groups == 0) { -# print "Group:\t\tunknown" - did_groups = 1 - } -} - - -END { - if (do_not_touch_anything) - exit 0 - - # TODO: need to output these in proper place - if (BR_count > 0) { - for (i = 0; i <= BR_count; i++) { - print BR[i]; - } - } - - close(changelog_file) - while ((getline < changelog_file) > 0) - print - system("rm -f " changelog_file) - - if (did_clean == 0) { - print "" - print "%clean" - print "rm -rf $RPM_BUILD_ROOT" - } - - if (date == 0) { - print "" - print "%define date\t%(echo `LC_ALL=\"C\" date +\"%a %b %d %Y\"`)" - } - - if (has_changelog == 0) { - print "%changelog" - } - - if (boc > 2) { - print "* %{date} PLD Team " - } - if (boc > 1) { - printf "All persons listed below can be reached at " - print "@pld-linux.org\n" - } - if (boc > 0) { - print "$" "Log:$" - } -} - -function fixedsub(s1,s2,t, ind) { -# substitutes fixed strings (not regexps) - if (ind = index(t,s1)) - t = substr(t, 1, ind-1) s2 substr(t, ind+length(s1)) - return t -} - -# There should be one or two tabs after the colon. -function format_preamble() -{ - if (/^#/ || /^%bcond_with/) { - return; - } - sub(/:[ \t]*/, ":") - if (match($0, /[A-Za-z0-9(),#_ \t.-]+[ \t]*:[ \t]*/) == 1) { - if (RLENGTH < 8) { - sub(/:/, ":\t\t") - } else { - sub(/:/, ":\t") - } - } -} - -# Replace directly specified directories with macros -function use_macros() -{ - # -m, --skip-macros, --no-macros -- skip macros subst - if (ENVIRON["SKIP_MACROS"]) { - return - } - - # leave inline sed lines alone - if (/(%{__sed}|sed) -i -e/) { - return; - } - - sub("%{_defaultdocdir}", "%{_docdir}"); - sub("%{_bindir}/perl", "%{__perl}"); - sub("%{_bindir}/python", "%{__python}"); - - gsub(infodir, "%{_infodir}") - - gsub(perl_sitearch, "%{perl_sitearch}") - gsub(perl_archlib, "%{perl_archlib}") - gsub(perl_privlib, "%{perl_privlib}") - gsub(perl_vendorlib, "%{perl_vendorlib}") - gsub(perl_vendorarch, "%{perl_vendorarch}") - gsub(perl_sitelib, "%{perl_sitelib}") - - gsub(py_sitescriptdir, "%{py_sitescriptdir}") - gsub(py_sitedir, "%{py_sitedir}") - gsub(py_scriptdir, "%{py_scriptdir}") - gsub("%{_libdir}/python2.4/site-packages", "%{py_sitedir}") - gsub("%{python_sitelib}", "%{py_sitedir}") - - gsub(ruby_archdir, "%{ruby_archdir}") - gsub(ruby_ridir, "%{ruby_ridir}") - gsub(ruby_rubylibdir, "%{ruby_rubylibdir}") - gsub(ruby_sitearchdir, "%{ruby_sitearchdir}") - gsub(ruby_sitelibdir, "%{ruby_sitelibdir}") - - gsub("%{_datadir}/applications", "%{_desktopdir}") - gsub("%{_datadir}/pixmaps", "%{_pixmapsdir}") - - gsub(libdir, "%{_libdir}") - - gsub(bindir, "%{_bindir}") - gsub("%{prefix}/bin", "%{_bindir}") - if (prefix"/bin" == bindir) - gsub("%{_prefix}/bin", "%{_bindir}") - - for (c = 1; c <= NF; c++) { - if ($c ~ sbindir "/fix-info-dir") - continue; - if ($c ~ sbindir "/webapp") - continue; - if ($c ~ sbindir "/ldconfig") - continue; - if ($c ~ sbindir "/chsh") - continue; - if ($c ~ sbindir "/usermod") - continue; - if ($c ~ sbindir "/chkconfig") - continue; - if ($c ~ sbindir "/installzope(product|3package)") - continue; - gsub(sbindir, "%{_sbindir}", $c) - } - - gsub("%{prefix}/sbin", "%{_sbindir}") - if (prefix"/sbin" == sbindir) { - gsub("%{_prefix}/sbin", "%{_sbindir}") - } - - for (c = 1; c <= NF; c++) { - if ($c ~ sysconfdir "/{?cron.") - continue; - if ($c ~ sysconfdir "/{?crontab.d") - continue; - if ($c ~ sysconfdir "/{?env.d") - continue; - if ($c ~ sysconfdir "/{?modprobe.(d|conf)") - continue; - if ($c ~ sysconfdir "/{?udev/rules.d") - continue; - if ($c ~ sysconfdir "/{?logrotate.d") - continue; - if ($c ~ sysconfdir "/{?pam.d") - continue; - if ($c ~ sysconfdir "/{?profile.d") - continue; - if ($c ~ sysconfdir "/{?rc.d") - continue; - if ($c ~ sysconfdir "/{?security") - continue; - if ($c ~ sysconfdir "/{?skel") - continue; - if ($c ~ sysconfdir "/{?sysconfig") - continue; - if ($c ~ sysconfdir "/{?shrc.d") - continue; - if ($c ~ sysconfdir "/{?certs") - continue; - if ($c ~ sysconfdir "/{?X11") - continue; - if ($c ~ sysconfdir "/{?ld.so.conf.d") - continue; - if ($c ~ sysconfdir "/{?rpm") - continue; - if ($c ~ sysconfdir "/{?bash_completion.d") - continue; - if ($c ~ sysconfdir "/{?samba") - continue; - if ($c ~ sysconfdir "/shells") - continue; - if ($c ~ sysconfdir "/ppp") - continue; - if ($c ~ sysconfdir "/dbus-1") - continue; - gsub(sysconfdir, "%{_sysconfdir}", $c) - } - - gsub(kdedocdir, "%{_kdedocdir}") - gsub(docdir, "%{_docdir}") - gsub(php_pear_dir, "%{php_pear_dir}") - - for (c = 1; c <= NF; c++) { - if ($c ~ datadir "/automake") - continue; - if ($c ~ datadir "/unsermake") - continue; - if ($c ~ datadir "/file/magic.mime") - continue; - gsub(datadir, "%{_datadir}", $c) - } - - gsub("%{prefix}/share", "%{_datadir}") - if (prefix"/share" == datadir) - gsub("%{_prefix}/share", "%{_datadir}") - - # CFLAGS="-I/usr/include/ncurses is usually correct. - if (!/-I\/usr\/include/) { - gsub(includedir, "%{_includedir}") - } - - gsub("%{prefix}/include", "%{_includedir}") - if (prefix"/include" == includedir) { - gsub("%{_prefix}/include", "%{_includedir}") - } - - gsub(mandir, "%{_mandir}") - if ($0 !~ "%{_datadir}/manual") { - gsub("%{_datadir}/man", "%{_mandir}") - } - gsub("%{_prefix}/share/man", "%{_mandir}") - gsub("%{prefix}/share/man", "%{_mandir}") - gsub("%{prefix}/man", "%{_mandir}") - gsub("%{_prefix}/man", "%{_mandir}") - - gsub(infodir, "%{_infodir}") - gsub("%{prefix}/info", "%{_infodir}") - gsub("%{_prefix}/info", "%{_infodir}") - - if (prefix !~ "/X11R6") { - gsub("%{_datadir}/aclocal", "%{_aclocaldir}") - } - - gsub(examplesdir, "%{_examplesdir}") - - if (prefix != "/") { - # leave --with-foo=/usr alone - if ($0 !~ "--with.*=.*" prefix) { - for (c = 1; c <= NF; c++) { - if ($c ~ prefix "/sbin/fix-info-dir") - continue; - if ($c ~ prefix "/sbin/webapp") - continue; - if ($c ~ prefix "/sbin/chsh") - continue; - if ($c ~ prefix "/sbin/usermod") - continue; - if ($c ~ prefix "/sbin/installzope(product|3package)") - continue; - if ($c ~ prefix "/share/automake") - continue; - if ($c ~ prefix "/share/unsermake") - continue; - if ($c ~ prefix "/lib/sendmail") - continue; - if ($c ~ prefix "/lib/pkgconfig") - continue; - - # CFLAGS="-I/usr..." is usually correct. - if (/-I\/usr/) - continue; - # same for LDFLAGS="-L/usr..." - if (/-L\/usr/) - continue; - - gsub(prefix, "%{_prefix}", $c) - } - } - gsub("%{prefix}", "%{_prefix}") - } - - # replace back - gsub("%{_includedir}/ncurses", "/usr/include/ncurses") - gsub("%{_includedir}/freetype", "/usr/include/freetype") - - gsub("%{PACKAGE_VERSION}", "%{version}") - gsub("%{PACKAGE_NAME}", "%{name}") - - gsub("^make$", "%{__make}") - gsub("^make ", "%{__make} ") - gsub("^gcc ", "%{__cc} ") - - # mandrake specs - gsub("^%make$", "%{__make}") - gsub("^%make ", "%{__make} ") - gsub("^%makeinstall_std", "%{__make} install \\\n\tDESTDIR=$RPM_BUILD_ROOT") - gsub("^%{makeinstall}", "%{__make} install \\\n\tDESTDIR=$RPM_BUILD_ROOT") - gsub("^%makeinstall", "%{__make} install \\\n\tDESTDIR=$RPM_BUILD_ROOT") - gsub("^%{__rm} -rf %{buildroot}", "rm -rf $RPM_BUILD_ROOT") - gsub("^%{__install}", "install") - gsub("^%{__rm}", "rm") - gsub("%optflags", "%{rpmcflags}") - gsub("%{compat_perl_vendorarch}", "%{perl_vendorarch}") - - gsub("^%{__make} install DESTDIR=\$RPM_BUILD_ROOT", "%{__make} install \\\n\tDESTDIR=$RPM_BUILD_ROOT") - gsub("^fix-info-dir$", "[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>\\&1") - $0 = fixedsub("%buildroot", "$RPM_BUILD_ROOT", $0) - $0 = fixedsub("%{buildroot}", "$RPM_BUILD_ROOT", $0) - $0 = fixedsub("CXXFLAGS=%{rpmcflags} %configure", "CXXFLAGS=%{rpmcflags}\n%configure", $0); - $0 = fixedsub("%__install", "install", $0); - - # split configure line to multiple lines - if (/%configure / && !/\\$/) { - $0 = format_configure($0); - } - - gsub("%_bindir", "%{_bindir}") - gsub("%_datadir", "%{_datadir}") - gsub("%_iconsdir", "%{_iconsdir}") - gsub("%_sbindir", "%{_sbindir}") - gsub("%_mandir", "%{_mandir}") - gsub("%name", "%{name}") - gsub(/%__rm/, "rm"); - gsub(/%__mkdir_p/, "install -d"); - gsub(/%__cp/, "cp"); - gsub(/%__ln_s/, "ln -s"); - gsub(/%__sed/, "%{__sed}"); - gsub(/%__cat/, "cat"); - gsub(/%__chmod/, "chmod"); - - gsub("/usr/src/linux", "%{_kernelsrcdir}") - gsub("%{_prefix}/src/linux", "%{_kernelsrcdir}") - - if (/^ant /) { - sub(/^ant/, "%ant") - add_br("BuildRequires: jpackage-utils"); - add_br("BuildRequires: rpmbuild(macros) >= 1.300"); - } - -} - -function format_configure(line, n, a, s) { - n = split(line, a, / /); - s = a[1] " \\\n"; - for (i = 2; i <= n; i++) { - s = s "\t" a[i] " \\\n" - } - return s -} - - -# insertion sort of A[1..n] -# copied from mawk manual -function isort(A,n, i,j,hold) { - for (i = 2; i <= n; i++) { - hold = A[j = i] - while (A[j-1] > hold) { - j-- ; A[j+1] = A[j] - } - A[j] = hold - } - # sentinel A[0] = "" will be created if needed -} - - -function use_files_macros( i, n, t, a) -{ - use_macros() - - # skip comments - if (/^#/) { - return; - } - - sub("^%doc %{_mandir}", "%{_mandir}") - - gsub("^%{_sbindir}", "%attr(755,root,root) %{_sbindir}") - gsub("^%{_bindir}", "%attr(755,root,root) %{_bindir}") - - # uid/gid nobody is not valid in %files - if (/%attr([^)]*nobody[^)]*)/ && !/FIXME/) { - $0 = $0 " # FIXME nobody user/group can't own files! -adapter.awk" - } - - # s[gu]id programs with globs are evil - if (/%attr\([246]...,.*\*/ && !/FIXME/) { - $0 = $0 " # FIXME no globs for suid/sgid files" - } - - # replace back - gsub("%{_sysconfdir}/cron\.d", "/etc/cron.d") - gsub("%{_sysconfdir}/crontab\.d", "/etc/crontab.d") - gsub("%{_sysconfdir}/logrotate\.d", "/etc/logrotate.d") - gsub("%{_sysconfdir}/pam\.d", "/etc/pam.d") - gsub("%{_sysconfdir}/profile\.d", "/etc/profile.d") - gsub("%{_sysconfdir}/rc\.d", "/etc/rc.d") - gsub("%{_sysconfdir}/security", "/etc/security") - gsub("%{_sysconfdir}/skel", "/etc/skel") - gsub("%{_sysconfdir}/sysconfig", "/etc/sysconfig") - gsub("%{_sysconfdir}/certs", "/etc/certs") - gsub("%{_sysconfdir}/init.d", "/etc/init.d") - gsub("%{_sysconfdir}/dbus-1", "/etc/dbus-1") - - # /etc/init.d -> /etc/rc.d/init.d - if (!/^\/etc\/init\.d$/) { - gsub("/etc/init.d", "/etc/rc.d/init.d") - } - - if (/\/etc\/rc\.d\/init\.d\// && !/functions/) { - if (!/%attr.*\/etc\/rc\.d\/init\.d/) { - $0 = "%attr(754,root,root) " $0 - } - if (/^%attr.*\/etc\/rc\.d\/init\.d/ && !/^%attr\(754 *,/) { - gsub("^%attr\\(... *,", "%attr(754,"); - } - } - - if (/lib.+\.so/ && !/\.so$/ && !/^%attr.*/ && !/%exclude/) { - $0 = "%attr(755,root,root) " $0 - } - - if (/%{perl_vendorarch}.*\.so$/ && !/^%attr.*/) { - $0 = "%attr(755,root,root) " $0 - } - - # /etc/sysconfig files - # %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/* - # attr not required, allow default 644 attr - if (!/network-scripts/ && !/%dir/ && !/\.d$/ && !/functions/ && !/\/etc\/sysconfig\/wmstyle/) { - if (/\/etc\/sysconfig\// && /%config/ && !/%config\(noreplace/) { - gsub("%config", "%config(noreplace)") - } - - if (/\/etc\/sysconfig\// && !/%config\(noreplace/) { - $NF = "%config(noreplace) " $NF - } - - if (/\/etc\/sysconfig\// && /%attr\(755/) { - gsub("^%attr\\(... *,", "%attr(640,"); - } - - if (/\/etc\/sysconfig\// && !/%verify/) { - gsub("/etc/sysconfig", "%verify(not size mtime md5) /etc/sysconfig"); - } - } - - # kill leading zeros - if (/%attr\(0[1-9]/) { - gsub("%attr\\(0", "%attr(") - } - - # kill leading whitespace - gsub(/^ +/, ""); - - # kill default attrs - gsub(/%dir %attr\(755,root,root\)/, "%dir"); - gsub(/%attr\(755,root,root\) %dir/, "%dir"); - if (!/%dir/) { - gsub(/%attr\(644,root,root\) /, ""); - } - - # sort %verify attrs - if (match($0, /%verify\(not([^)]+)\)/)) { - t = substr($0, RSTART, RLENGTH) - # kill commas: %verify(not,md5,size,mtime) - gsub(/,/, " ", t); - - gsub(/^%verify\(not |\)$/, "", t) - n = split(t, a, / /) - isort(a, n) - - s = "%verify(not" - for (i = 1 ; i <= n; i++) { - s = s " " a[i] - } - s = s ")" - - gsub(/%verify\(not[^)]+\)/, s) - } - - if (/%{_mandir}/) { - gsub("\.gz$", "*") - } - - # locale dir and no %lang -> bad - if (/%{_datadir}\/locale\/.*\// && !/%(dir|lang)/) { - $(NF + 1) = "# FIXME consider using %find_lang" - } - - # atrpms - $0 = fixedsub("%{perl_man1dir}", "%{_mandir}/man1", $0); - $0 = fixedsub("%{perl_man3dir}", "%{_mandir}/man3", $0); - $0 = fixedsub("%{perl_bin}", "%{_bindir}", $0); - - gsub(libdir "/pkgconfig", "%{_pkgconfigdir}"); - gsub("%{_libdir}/pkgconfig", "%{_pkgconfigdir}"); - gsub("%{_prefix}/lib/pkgconfig", "%{_pkgconfigdir}"); - - gsub("%{_datadir}/applications", "%{_desktopdir}"); - gsub("%{_datadir}/icons", "%{_iconsdir}"); - gsub("%{_datadir}/pixmaps", "%{_pixmapsdir}"); -} - -function use_script_macros() -{ - if (gsub("/sbin/service", "%service")) { - sub(" >/dev/null 2>&1 \|\|:", ""); - sub(" 2> /dev/null \|\| :", ""); - } -} - -function fill(ch, n, i) { - for (i = 0; i < n; i++) - printf("%c", ch) -} - -function format_flush(line, indent, newline, word, first_word) { - first_word = 1 - if (format_indent == -1) - newline = "" - else - newline = fill(" ", format_indent) "- " - - while (match(line, /[^\t ]+/)) { - word = substr(line, RSTART, RLENGTH) - if (length(newline) + length(word) + 1 > tw) { - print newline - - if (format_indent == -1) - newline = "" - else - newline = fill(" ", format_indent + 2) - first_word = 1 - } - - if (first_word) { - newline = newline word - first_word = 0 - } else - newline = newline " " word - - line = substr(line, RSTART + RLENGTH) - } - if (newline ~ /[^\t ]/) { - print newline - } -} - -function cflags(var) -{ - if ($0 == var "=\"$RPM_OPT_FLAGS\"") { - removed[var] = 1 - return 0 - } - - if (!/!\?debug/) - sub("\$RPM_OPT_FLAGS", "%{rpmcflags}") - return 1 -} - -function demacroize(str) -{ - if (mod_name) { - sub("%{mod_name}", mod_name, str); - } - if (name) { - sub("%{name}", name, str); - } - if (version) { - sub("%{version}", version, str); - } - if (_beta) { - sub("%{_beta}", _beta, str); - } - if (_rc) { - sub("%{_rc}", _rc, str); - } - if (_pre) { - sub("%{_pre}", _pre, str); - } - if (_snap) { - sub("%{_snap}", _snap, str); - } - return str; -} - -function kill_preamble_macros() -{ - if ($1 ~ /^URL:/ || $1 ~ /^Obsoletes:/) { - # NB! assigning $2 a value breaks tabbing - $2 = demacroize($2); - # unify sourceforge url - sub("\.sf\.net/$", ".sourceforge.net/", $2); - } -} - -function get_epoch(pkg, ver, epoch) -{ - return -# should parse the BR lines more adequately: -# freetype = 2.0.0 -> correct -# freetype = 2.1.9 -> with epoch 1, as epoch 1 was added in 2.1.7 - - shell = "grep -o '^" pkg ":[^:]\+' ../PLD-doc/BuildRequires.txt | awk '{print $NF}'"; - shell | getline epoch; - return epoch; -} - -function format_requires(tag, value, n, p, i, deps, ndeps) { - # skip any formatting for commented out items or some weird macros - if (/^#/ || /%\(/) { - return tag "\t" value - } - n = split(value, p, / *,? */); - for (i = 1; i <= n; i++) { - if (p[i+1] ~ /[<=>]/) { - # add epoch if the version doesn't have it but BuildRequires.txt has - if (p[i] ~ /^[a-z]/ && p[i+2] !~ /^[0-9]+:/) { - epoch = get_epoch(p[i], p[i+2]) - if (epoch) { - p[i+2] = epoch ":" p[i+2]; - } - } - deps[ndeps++] = p[i] " " p[i+1] " " p[i+2]; - i += 2; - } else { - deps[ndeps++] = p[i]; - } - } - s = "" - for (i in deps) { - s = s sprintf("%s\t%s\n", tag, deps[i]); - } - return substr(s, 1, length(s)-1); -} - -function use_tabs() -{ - # reverse vim: ts=4 sw=4 et - gsub(/ /, "\t"); -} - -function add_br(br) -{ - BR[BR_count++] = br -} - -# php virtual deps as discussed in devel-en -function replace_php_virtual_deps() -{ - pkg = $2 -# if (pkg == "php-program") { -# $0 = $1 "\t/usr/bin/php" -# return -# } - -# if (pkg ~ /^php-[a-z]/ && pkg !~ /^php-(pear|common|cli|devel|fcgi|cgi|dirs|program|pecl-)/) { -# sub(/^php-/, "php(", pkg); -# sub(/$/, ") # verify this correctness -- it may be wanted to use specific not virtual dep", pkg); -# $2 = pkg -# } - - if (pkg ~/^php$/) { - $2 = "webserver(php)"; - if ($4 ~ /^[0-9]:/) { - $4 = substr($4, 3); - } - } - - if (pkg ~/^php4$/) { - $2 = "webserver(php)"; - if ($4 ~ /^[0-9]:/) { - $4 = substr($4, 3); - } - } -} - -# vim:ts=4:sw=4 diff --git a/banner.sh b/banner.sh deleted file mode 100644 index 5c92c5c..0000000 --- a/banner.sh +++ /dev/null @@ -1,285 +0,0 @@ -#!/bin/sh -# -# bug reports send to pzurowski@pld-linux.org or pld-devel-* lists -# -# 2004, GPL 2+ -# -# >> PLACE STANDARD GPL DISCLAIMER H E R E . << -# -CONFIG=/etc/sysconfig/banner - -####################################################### CONFIG ######## - -# default paramaters -########################## - -BANNERDIR="/var/lib/banner/" -# egrep regexp -EXCLUDEFILES="(rpmnew$|rpmsave$|~$)" -STDOUT="1" # stdout by default -#STDOUT="2" # stderr by default - -# config paramaeters -########################## - -if [ -r $CONFIG ]; then - . $CONFIG -fi - - -# override parameters -########################## - -ALL_BANNERS=0 -BANNERS="" -NOBANNERS="" -BANNER_LIST="" -CHOOSE_NEWER="no" -CHOOSE_OLDER="no" -EXCLUDE_FLAG=0 -NEED_BANNER_LIST=0 -NEED_MTIME_CHECK=0 -NEW_APPEND=0 -NEW_BANNER="" -NEW_SHOW=0 - -case $STDOUT in - [1-9]) ;; - *) STDOUT="1" ;; -esac - -#################################################### FUNCTIONS ######## - -Usage() -{ - cat << EOF -Usage: $(basename $0) [opitions] [banners] -EOF -} -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 - -[1] - if there will be no slash ('/') in name then config dir will be used, - else -- specified. -EOF -} -Unknown_para() -{ - cat << EOF -Unknown parameter $1 -EOF - Help -} - -check_banners_mtime() -{ - BANNERS="$1" - OLDER="$2" - NEWER="$3" - DATE=$(date +%s) - for BANNER in $BANNERS;do - STAT=$(stat -c %Y "$BANNERDIR/$BANNER") - if [ $OLDER != "no" -a $(( $DATE - $STAT )) -lt $OLDER ]; then - BANNER="" - fi - if [ $NEWER != "no" -a $(( $DATE - $STAT )) -gt $NEWER ]; then - BANNER="" - fi - echo $BANNER - done -} -delete_banners() -{ - BANNERS="$1" - rm -rf $(get_banner_location_list "$BANNER") -} -get_all_banner_list() -{ - ls "$BANNERDIR" | grep -E -v "$EXCLUDEFILES" -} -get_banner_list() -{ - BANNERS="$1" - NOBANNERS="$2" - for BANNER in $BANNERS; do - if [ -r "$BANNERDIR/$BANNER" ];then - echo $NOBANNERS | grep -q $BANNER || echo $BANNER - fi - done -} -get_banner_location_list() -{ - BANNERS="$1" - for BANNER in $BANNERS; do - echo "$BANNERDIR/$BANNER" - done -} -make_banner() -{ - BANNER="$1" - SHOW="$2" - if [ ! -d "${BANNER%/*}" ]; then - mkdir -p "${BANNER%/*}" - fi - data=$(cat) - if [ $NEW_APPEND -eq 0 ]; then - echo "$data" > $BANNER - else - echo "$data" >> $BANNER - fi - if [ $SHOW -eq 1 ];then - echo "$data" - fi -} -show_banner() -{ - cat $BANNERDIR/$1 >&$STDOUT -} -show_banners() -{ - for BANNER in $*; do - show_banner $BANNER - done -} -######################################################## MAIN ######## -while [ ! -z $1 ]; do - case $1 in - -a|--all) - ALL_BANNERS=1 - ;; - --delete) - NEED_BANNER_LIST=1 - ACTION="delete" - ;; - -e|--exclude) - EXCLUDE_FLAG=1 - ;; - -h|--help) - Help - exit 0 - ;; - -i|--include) - EXCLUDE_FLAG=0 - ;; - -m|--make|-M) - NEED_BANNER_LIST=0 - if [[ $2 != */* ]]; then - NEW_BANNER="$BANNERDIR/${2##*/}" - else - NEW_BANNER="$2" - fi - ACTION="make" - if [ "$1" == "-M" ];then - NEW_APPEND=1 - else - NEW_APPEND=0 - fi - if [ -z "$NEW_BANNER" ];then - Help - exit 2 - fi - shift - ;; - -n|--names) - NEED_BANNER_LIST=1 - ACTION="names" - ;; - --newer) - NEED_MTIME_CHECK=1 - CHOOSE_NEWER="$2" - if [ -z "$CHOOSE_NEWER" ];then - Help - exit 2 - fi - shift - ;; - --older) - NEED_MTIME_CHECK=1 - CHOOSE_OLDER="$2" - if [ -z "$CHOOSE_OLDER" ];then - Help - exit 2 - fi - shift - ;; - -s|--show) - NEED_BANNER_LIST=1 - NEW_SHOW=1 - ACTION="show" - ;; - --stdout) - STDOUT="1" - ;; - --stderr) - STDOUT="2" - ;; - -u|--usage) - Usage - exit 0 - ;; - -*) - Unknown_para "$1" - exit 1 - ;; - *) - if [ $EXCLUDE_FLAG -eq 0 ];then - BANNERS="$BANNERS ${1##*/}" - else - NOBANNERS="$NOBANNERS ${1##*/}" - fi - ;; - esac - shift -done - -if [ $ALL_BANNERS -ne 0 ]; then - BANNERS=`get_all_banner_list` -fi -if [ $NEED_BANNER_LIST -ne 0 ];then - BANNER_LIST=`get_banner_list "$BANNERS" "$NOBANNERS"` -fi -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; - ;; - "make") - make_banner $NEW_BANNER $NEW_SHOW; - ;; - "names") - echo $BANNER_LIST; - ;; - "show") - show_banners $BANNER_LIST; - ;; -esac - - - diff --git a/builder b/builder deleted file mode 100644 index c9dd23d..0000000 --- a/builder +++ /dev/null @@ -1,2405 +0,0 @@ -#!/bin/ksh -# -# This program is free software, distributed under the terms of -# the GNU General Public License Version 2. -# -# ----------- -# Exit codes: -# 0 - succesful -# 1 - help displayed -# 2 - no spec file name in cmdl parameters -# 3 - spec file not stored in repo -# 4 - some source, patch or icon files not stored in repo -# 5 - package build failed -# 6 - spec file with errors -# 7 - wrong source in /etc/poldek.conf -# 8 - Failed installing buildrequirements and subrequirements -# 9 - Requested tag already exist -# 10 - Refused to build fractional release -# 100 - Unknown error (should not happen) - -# Notes (todo): -# - builder -u fetches current version first (well that's okay, how you compare versions if you have no old spec?) -# - when Icon: field is present, -5 and -a5 doesn't work -# - builder -R skips installing BR if spec is not present before builder invocation (need to run builder twice) - -RCSID='$Id$' -r=${RCSID#* * } -rev=${r%% *} -VERSION="v0.20/$rev" -VERSIONSTRING="\ -Build package utility from PLD Linux CVS repository -$VERSION (C) 1999-2007 Free Penguins". - -PATH="/bin:/usr/bin:/usr/sbin:/sbin:/usr/X11R6/bin" - -COMMAND="build" -TARGET="" - -SPECFILE="" -BE_VERBOSE="" -QUIET="" -CLEAN="" -DEBUG="" -NOURLS="" -NOCVS="" -NOCVSSPEC="" -NODIST="" -NOINIT="" -PREFMIRRORS="" -UPDATE="" -ADD5="" -NO5="" -ALWAYS_CVSUP=${ALWAYS_CVSUP:-"yes"} -CVSROOT="" -GREEDSRC="" - -# user agent when fetching files -USER_AGENT="PLD/Builder($VERSION)" - -# It can be used i.e. in log file naming. -# See LOGFILE example. -DATE=`date +%Y-%m-%d_%H-%M-%S` - -# Example: LOGFILE='../log.$PACKAGE_NAME' -# Example: LOGFILE='../LOGS/log.$PACKAGE_NAME.$DATE' -# Yes, you can use variable name! Note _single_ quotes! -LOGFILE='' - -LOGDIR="" -LOGDIROK="" -LOGDIRFAIL="" -LASTLOG_FILE="" - -CHMOD="no" -CHMOD_MODE="0444" -RPMOPTS="" -RPMBUILDOPTS="" -BCOND="" -GROUP_BCONDS="no" -CVSIGNORE_DF="no" - -PATCHES="" -SOURCES="" -ICONS="" -PACKAGE_RELEASE="" -PACKAGE_VERSION="" -PACKAGE_NAME="" -ASSUMED_NAME="" -PROTOCOL="ftp" -WGET_RETRIES=${MAX_WGET_RETRIES:-0} -CVS_RETRIES=${MAX_CVS_RETRIES:-1000} - -CVSTAG="" -RES_FILE="" -CVS_FORCE="" - -CVS_SERVER="cvs.pld-linux.org" -DISTFILES_SERVER="://distfiles.pld-linux.org" -ATTICDISTFILES_SERVER="://attic-distfiles.pld-linux.org" - -DEF_NICE_LEVEL=19 -SCHEDTOOL="auto" - -FAIL_IF_NO_SOURCES="yes" - -# let get_files skip over files which are present to get those damn files fetched -SKIP_EXISTING_FILES="no" - -TRY_UPGRADE="" -# should the specfile be restored if upgrade failed? -REVERT_BROKEN_UPGRADE="yes" - -if [ -x /usr/bin/rpm-getdeps ]; then - FETCH_BUILD_REQUIRES_RPMGETDEPS="yes" -else - FETCH_BUILD_REQUIRES_RPMGETDEPS="no" -fi - -# Here we load saved user environment used to -# predefine options set above, or passed to builder -# in command line. -# This one reads global system environment settings: -if [ -f ~/etc/builderrc ]; then - . ~/etc/builderrc -fi -# And this one cascades settings using user personal -# builder settings. -# Example of ~/.builderrc: -# -#UPDATE_POLDEK_INDEXES="yes" -#FETCH_BUILD_REQUIRES="yes" -#REMOVE_BUILD_REQUIRES="force" -#GROUP_BCONDS="yes" -#LOGFILE='../LOGS/log.$PACKAGE_NAME.$DATE' -#TITLECHANGE=no -# -SU_SUDO="" -if [ -n "$HOME_ETC" ]; then - USER_CFG="$HOME_ETC/.builderrc" - BUILDER_MACROS="$HOME_ETC/.builder-rpmmacros" -else - USER_CFG=~/.builderrc - BUILDER_MACROS=~/.builder-rpmmacros -fi - -[ -f "$USER_CFG" ] && . "$USER_CFG" - -if [ "$SCHEDTOOL" = "auto" ]; then - if [ -x /usr/bin/schedtool ] && schedtool -B -e echo >/dev/null; then - SCHEDTOOL="schedtool -B -e" - else - SCHEDTOOL="no" - fi -fi - -if [ -n "$USE_PROZILLA" ]; then - GETURI="proz --no-getch -r -P ./ -t$WGET_RETRIES $PROZILLA_OPTS" - GETURI2="$GETURI" - OUTFILEOPT="-O" -elif [ -n "$USE_AXEL" ]; then - GETURI="axel -a $AXEL_OPTS" - GETURI2="$GETURI" - OUTFILEOPT="-o" -else - wget --help 2>&1 | grep -q -- ' --no-check-certificate ' && WGET_OPTS="$WGET_OPTS --no-check-certificate" - wget --help 2>&1 | grep -q -- ' --inet ' && WGET_OPTS="$WGET_OPTS --inet" - wget --help 2>&1 | grep -q -- ' --retry-connrefused ' && WGET_OPTS="$WGET_OPTS --retry-connrefused" - WGET_OPTS="$WGET_OPTS --user-agent=$USER_AGENT" - - GETURI="wget --passive-ftp -c -nd -t$WGET_RETRIES $WGET_OPTS" - GETURI2="wget -c -nd -t$WGET_RETRIES $WGET_OPTS" - OUTFILEOPT="-O" -fi - -GETLOCAL="cp -a" - -if (rpm --version 2>&1 | grep -q '4.0.[0-2]'); then - RPM="rpm" - RPMBUILD="rpm" -else - RPM="rpm" - RPMBUILD="rpmbuild" -fi - -POLDEK_INDEX_DIR="`$RPM --eval %_rpmdir`/" -POLDEK_CMD="$SU_SUDO /usr/bin/poldek --noask" - -run_poldek() -{ - RES_FILE=~/tmp/poldek-exit-status.$RANDOM - if [ -n "$LOGFILE" ]; then - LOG=`eval echo $LOGFILE` - if [ -n "$LASTLOG_FILE" ]; then - echo "LASTLOG=$LOG" > $LASTLOG_FILE - fi - (${NICE_COMMAND} ${POLDEK_CMD} `while test $# -gt 0; do echo "$1 ";shift;done` ; echo $? > ${RES_FILE})|tee -a $LOG - return $exit_pldk - else - (${NICE_COMMAND} ${POLDEK_CMD} `while test $# -gt 0; do echo "$1 ";shift;done` ; echo $? > ${RES_FILE}) 1>&2 >/dev/null - return `cat ${RES_FILE}` - rm -rf ${RES_FILE} - fi -} - -#--------------------------------------------- -# functions - -usage() -{ - if [ -n "$DEBUG" ]; then set -xv; fi - echo "\ -Usage: builder [-D|--debug] [-V|--version] [--short-version] [-a|--as_anon] [-b|-ba|--build] -[-bb|--build-binary] [-bs|--build-source] [-bc] [-bi] [-bl] [-u|--try-upgrade] -[{-cf|--cvs-force}] [{-B|--branch} ] [{-d|--cvsroot} ] -[-g|--get] [-h|--help] [--http] [{-l|--logtofile} ] [-m|--mr-proper] -[-q|--quiet] [--date [-r ] [{-T|--tag ] -[-Tvs|--tag-version-stable] [-Ts|--tag-stable] [-Tv|--tag-version] -[{-Tp|--tag-prefix} ] [{-tt|--test-tag}] [--use-greed-sources] -[-nu|--no-urls] [-v|--verbose] [--opts ] [--short-circuit] -[--show-bconds] [--with/--without ] [--define ] -[.spec][:cvstag] - --5, --update-md5 - update md5 comments in spec, implies -nd -ncs --a5, --add-md5 - add md5 comments to URL sources, implies -nc -nd -ncs --n5, --no-md5 - ignore md5 comments in spec --D, --debug - enable builder script debugging mode, --debug - produce rpm debug package (same as --opts -debug) --V, --version - output builder version string ---short-version - output builder short version --a, --as_anon - get files via pserver as cvs@$CVS_SERVER, --b, -ba, --build - get all files from CVS repo or HTTP/FTP and build package - from .spec, --bb, --build-binary - get all files from CVS repo or HTTP/FTP and build binary - only package from .spec, --bp, --build-prep - execute the %prep phase of .spec, --bc - execute the %build phase of .spec, --bi - execute the %install phase of .spec --bl - execute the %files phase of .spec --bs, --build-source - get all files from CVS repo or HTTP/FTP and only pack - them into src.rpm, ---short-circuit - short-circuit build --B, --branch - add branch --c, --clean - clean all temporarily created files (in BUILD, SOURCES, - SPECS and \$RPM_BUILD_ROOT), --cf, --cvs-force - use -F when tagging (useful when moving branches) --d , --cvsroot - - setup \$CVSROOT, ---define - - define a macro with value , ---nodeps - rpm won't check any dependences --g, --get - get .spec and all related files from CVS repo - or HTTP/FTP, --h, --help - this message, ---http - use http instead of ftp, --l , --logtofile - - log all to file, --m, --mr-proper - only remove all files related to spec file and all work - resources, --nc, --no-cvs - don't download sources from CVS, if source URL is given, --ncs, --no-cvs-specs - - don't check specs in CVS --nd, --no-distfiles - don't download from distfiles --nm, --no-mirrors - don't download from mirror, if source URL is given, --nu, --no-urls - don't try to download from FTP/HTTP location, --ns, --no-srcs - don't download Sources --ns0, --no-source0 - don't download Source0 --nn, --no-net - don't download anything from the net --pm, --prefer-mirrors - prefer mirrors (if any) over distfiles for SOURCES ---no-init - don't initialize builder paths (SPECS and SOURCES) --ske, ---skip-existing-files - skip existing files in get_files ---opts - additional options for rpm --q, --quiet - be quiet, ---date yyyy-mm-dd - build package using resources from specified CVS date, --r , --cvstag - - build package using resources from specified CVS tag, --A - build package using CVS resources as any sticky tags/date/kopts being reset. --R, --fetch-build-requires - - fetch what is BuildRequired, --RB, --remove-build-requires - - remove all you fetched with -R or --fetch-build-requires - remember, this option requires confirmation, --FRB, --force-remove-build-requires - - remove all you fetched with -R or --fetch-build-requires - remember, this option works without confirmation, --sd, --source-distfiles - list sources available from distfiles (intended for offline - operations; does not work when Icon field is present - but icon file is absent), --sc, --source-cvs - list sources available from CVS --sdp, --source-distfiles-paths - list sources available from distfiles - - paths relative to distfiles directory (intended for offline - operations; does not work when Icon field is present - but icon file is absent), --sf, --source-files - list sources - bare filenames (intended for offline - operations; does not work when Icon field is present - but icon file is absent), --sp, --source-paths - list sources - filenames with full local paths (intended for - offline operations; does not work when Icon field is present - but icon file is absent), --su, --source-urls - list urls - urls to sources and patches - intended for copying urls with spec with lots of macros in urls --T , --tag - - add cvs tag for files, --Tvs, --tag-version-stable - - add cvs tags STABLE and NAME-VERSION-RELEASE for files, --Ts, --tag-stable - - add cvs tag STABLE for files, --Tv, --tag-version - - add cvs tag NAME-VERSION-RELEASE for files, --Tp, --tag-prefix - - add to NAME-VERSION-RELEASE tags, --tt, --test-tag - - fail if tag is already present, --ir, --integer-release-only - - allow only integer and snapshot releases --v, --verbose - be verbose, --u, --try-upgrade - check version, and try to upgrade package --un, --try-upgrade-with-float-version - - as above, but allow float version ---use-greed-sources - - try download source from tag head if don't find it in - current tag --U, --update - refetch sources, don't use distfiles, and update md5 comments --Upi, --update-poldek-indexes - - refresh or make poldek package index files. --np, --nopatch - - don't apply ---show-bconds - show available conditional builds, which can be used - - with --with and/or --without switches. ---show-bcond-args - show active bconds, from ~/.bcondrc. this is used by - ./repackage.sh script. in other words, the output is - parseable by scripts. ---with/--without - - conditional build package depending on %_with_/ - %_without_ macro switch. You may now use - --with feat1 feat2 feat3 --without feat4 feat5 --with feat6 - constructions. Set GROUP_BCONDS to yes to make use of it. ---target , --target= - - build for platform . ---init-rpm-dir - initialize ~/rpm directory structure -" -} - -update_shell_title() { - [ -t 1 ] || return - local len=${COLUMNS:-80} - local msg=$(echo "$*" | cut -c-$len) - - if [ -n "$BE_VERBOSE" ]; then - echo >&2 "$(date +%s.%N) $*" - fi - - if [ "x$TITLECHANGE" == "xyes" -o "x$TITLECHANGE" == "x" ]; then - local pkg - if [ -n "$PACKAGE_NAME" ]; then - pkg=${PACKAGE_NAME}-${PACKAGE_VERSION}-${PACKAGE_RELEASE} - else - pkg=${SPECFILE} - fi - - msg="$pkg: ${SHELL_TITLE_PREFIX:+$SHELL_TITLE_PREFIX }$msg" - msg="$(echo $msg | tr -d '\n\r')" - case "$TERM" in - cygwin|xterm*) - echo >&2 -ne "\033]1;$msg\007\033]2;$msg\007" - ;; - screen*) - echo >&2 -ne "\033]0;$msg\007" - ;; - esac - fi -} - -# set TARGET from BuildArch: from SPECFILE -set_spec_target() { - if [ -n "$SPECFILE" ] && [ -z "$TARGET" ]; then - tmp=$(awk '/^BuildArch:/ { print $NF}' $SPECFILE) - if [ "$tmp" ]; then - target_platform=$(rpm -E '%{_target_vendor}-%{_target_os}%{?_gnu}') - TARGET="$tmp" - case "$RPMBUILD" in - "rpmbuild") - TARGET_SWITCH="--target ${TARGET}-${target_platform}" ;; - "rpm") - TARGET_SWITCH="--target=$TARGET" ;; - esac - fi - fi -} - -# runs rpm with minimal macroset -minirpm() { - # we reset macros not to contain macros.build as all the %() macros are - # executed here, while none of them are actually needed. - # at the time of this writing macros.build + macros contained 70 "%(...)" macros. - safe_macrofiles=$(rpm --showrc | awk -F: '/^macrofiles/ { gsub(/^macrofiles[ \t]+:/, "", $0); gsub(/:.*macros.build:/, ":", $0); print $0 } ') - - # TODO: move these to /usr/lib/rpm/macros - cat > $BUILDER_MACROS <<'EOF' -%x8664 x86_64 amd64 ia32e -%alt_kernel %{nil} -%_alt_kernel %{nil} -%requires_releq_kernel_up %{nil} -%requires_releq_kernel_smp %{nil} -%requires_releq_kernel %{nil} -%requires_releq() %{nil} -%pyrequires_eq() %{nil} -%requires_eq() %{nil} -%requires_eq_to() %{nil} -%releq_kernel_up ERROR -%releq_kernel_smp ERROR -%releq_kernel ERROR -%kgcc_package ERROR -%_fontsdir ERROR -%ruby_version ERROR -%ruby_ver_requires_eq() %{nil} -%ruby_mod_ver_requires_eq() %{nil} -%__php_api_requires() %{nil} -%php_major_version ERROR -%php_api_version ERROR -%requires_xorg_xserver_extension %{nil} -%requires_xorg_xserver_xinput %{nil} -%requires_xorg_xserver_font %{nil} -%requires_xorg_xserver_videodrv %{nil} -%py_ver ERROR -%perl_vendorarch ERROR -%perl_vendorlib ERROR -# damn. need it here! - copied from /usr/lib/rpm/macros.build -%tmpdir %(echo "${TMPDIR:-/tmp}") -%patchset_source(f:b:) %( - base=%{-b*}%{!-b*:10000}; - start=$(expr $base + %1); - end=$(expr $base + %{?2}%{!?2:%{1}}); - # we need to call seq twice as it doesn't allow two formats - seq -f 'Patch%g:' $start $end > %{tmpdir}/__ps1; - seq -f '%{-f*}' %1 %{?2}%{!?2:%{1}} > %{tmpdir}/__ps2; - paste %{tmpdir}/__ps{1,2}; - rm -f %{tmpdir}/__ps{1,2}; -) \ -%{nil} -EOF - if [ "$NOINIT" = "yes" ] ; then - cat >> $BUILDER_MACROS <<'EOF' -%_specdir ./ -%_sourcedir ./ -EOF - fi - eval $RPMBUILD --macros "$safe_macrofiles:$BUILDER_MACROS" $QUIET $RPMOPTS $RPMBUILDOPTS $BCOND $TARGET_SWITCH $* 2>&1 -} - -cache_rpm_dump() { - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - update_shell_title "cache_rpm_dump" - local rpm_dump - rpm_dump=` - # what we need from dump is NAME, VERSION, RELEASE and PATCHES/SOURCES. - dump='%{echo:dummy: PACKAGE_NAME %{name} }%dump' - case "$RPMBUILD" in - rpm) - ARGS='-bp' - ;; - rpmbuild) - ARGS='--nodigest --nosignature --nobuild' - ;; - esac - minirpm $ARGS --define "'prep $dump'" --nodeps $SPECFILE - ` - if [ $? -gt 0 ]; then - error=$(echo "$rpm_dump" | sed -ne '/^error:/,$p') - echo "$error" >&2 - Exit_error err_build_fail - fi - - # make small dump cache - rpm_dump_cache=`echo "$rpm_dump" | awk ' - $2 ~ /^SOURCEURL/ {print} - $2 ~ /^PATCHURL/ {print} - $2 ~ /^nosource/ {print} - $2 ~ /^PACKAGE_/ {print} - '` - - update_shell_title "cache_rpm_dump: OK!" -} - -rpm_dump() { - if [ -z "$rpm_dump_cache" ] ; then - echo "internal error: cache_rpm_dump not called! (missing %prep?)" 1>&2 - fi - echo "$rpm_dump_cache" -} - -get_icons() -{ - update_shell_title "get icons" - ICONS="`awk '/^Icon:/ {print $2}' ${SPECFILE}`" - if [ -z "$ICONS" ]; then - return - fi - - rpm_dump_cache="kalasaba" NODIST="yes" get_files $ICONS -} - -parse_spec() -{ - update_shell_title "parsing specfile" - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - # icons are needed for successful spec parse - get_icons - - cd $SPECS_DIR - cache_rpm_dump - - if [ "$NOSRCS" != "yes" ]; then - SOURCES="`rpm_dump | awk '/SOURCEURL[0-9]+/ {print $3}'`" - fi - - if (rpm_dump | grep -qEi ":.*nosource.*1"); then - FAIL_IF_NO_SOURCES="no" - fi - - PATCHES="`rpm_dump | awk '/PATCHURL[0-9]+/ {print $3}'`" - ICONS="`awk '/^Icon:/ {print $2}' ${SPECFILE}`" - PACKAGE_NAME=$(rpm_dump | awk '$2 == "PACKAGE_NAME" { print $3; exit}') - PACKAGE_VERSION=$(rpm_dump | awk '$2 == "PACKAGE_VERSION" { print $3; exit}') - PACKAGE_RELEASE=$(rpm_dump | awk '$2 == "PACKAGE_RELEASE" { print $3; exit}') - - if [ "$PACKAGE_NAME" != "$ASSUMED_NAME" ]; then - echo >&2 "WARNING! Spec name ($ASSUMED_NAME) does not agree with package name ($PACKAGE_NAME)" - fi - - if [ -n "$BE_VERBOSE" ]; then - echo "- Sources : `nourl $SOURCES`" - if [ -n "$PATCHES" ]; then - echo "- Patches : `nourl $PATCHES`" - else - echo "- Patches : *no patches needed*" - fi - if [ -n "$ICONS" ]; then - echo "- Icon : `nourl $ICONS`" - else - echo "- Icon : *no package icon*" - fi - echo "- Name : $PACKAGE_NAME" - echo "- Version : $PACKAGE_VERSION" - echo "- Release : $PACKAGE_RELEASE" - fi - - update_shell_title "parse_spec: OK!" -} - -Exit_error() -{ - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - cd "$__PWD" - - case "$1" in - "err_no_spec_in_cmdl" ) - remove_build_requires - echo "ERROR: spec file name not specified." - exit 2 ;; - "err_invalid_cmdline" ) - echo "ERROR: invalid command line arg ($2)." - exit 2 ;; - "err_no_spec_in_repo" ) - remove_build_requires - echo "Error: spec file not stored in CVS repo." - exit 3 ;; - "err_no_source_in_repo" ) - remove_build_requires - echo "Error: some source, patch or icon files not stored in CVS repo. ($2)" - exit 4 ;; - "err_build_fail" ) - remove_build_requires - echo "Error: package build failed. (${2:-no more info})" - exit 5 ;; - "err_no_package_data" ) - remove_build_requires - echo "Error: couldn't get out package name/version/release from spec file." - exit 6 ;; - "err_tag_exists" ) - remove_build_requires - echo "Tag ${2} already exists (spec release: ${3})." - exit 9 ;; - "err_fract_rel" ) - remove_build_requires - echo "Release ${2} not integer and not a snapshot." - exit 10 ;; - "err_branch_exists" ) - remove_build_requires - echo "Tree branch already exists (${2})." - exit 11 ;; - "err_acl_deny" ) - remove_build_requires - echo "Error: conditions reject building this spec (${2})." - exit 12 ;; - esac - echo "Unknown error." - exit 100 -} - -init_builder() -{ - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - if [ "$NOINIT" != "yes" ] ; then - local extra - if [ "$ASSUMED_NAME" ]; then - extra="--define 'name $ASSUMED_NAME'" - fi - SOURCE_DIR="`eval $RPM $RPMOPTS $extra --eval '%{_sourcedir}'`" - SPECS_DIR="`eval $RPM $RPMOPTS $extra --eval '%{_specdir}'`" - else - SOURCE_DIR="." - SPECS_DIR="." - fi - - __PWD="`pwd`" -} - -get_spec() -{ - - update_shell_title "get_spec" - - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - cd "$SPECS_DIR" - if [ ! -f "$SPECFILE" ]; then - SPECFILE="`basename $SPECFILE .spec`.spec" - fi - if [ "$NOCVSSPEC" != "yes" ]; then - - if [ ! -s CVS/Root -a "$NOCVSSPEC" != "yes" ]; then - echo "Warning: No CVS access defined - using local .spec file" - NOCVSSPEC="yes" - fi - - cvsup "$SPECFILE" || Exit_error err_no_spec_in_repo - fi - - if [ ! -f "$SPECFILE" ]; then - Exit_error err_no_spec_in_repo - fi - - if [ "$CHMOD" = "yes" -a -n "$SPECFILE" ]; then - chmod $CHMOD_MODE $SPECFILE - fi - unset OPTIONS - [ -n "$DONT_PRINT_REVISION" ] || grep -E -m 1 "^#.*Revision:.*Date" $SPECFILE - - set_spec_target -} - -find_mirror() -{ - cd "$SPECS_DIR" - local url="$1" - if [ ! -f "mirrors" -a "$NOCVSSPEC" != "yes" ] ; then - cvs update mirrors >&2 - fi - - IFS="|" - local origin mirror name rest ol prefix - while read origin mirror name rest; do - # skip comments and empty lines - if [ -z "$origin" ] || [[ $origin == \#* ]]; then - continue - fi - ol=`echo -n "$origin"|wc -c` - prefix="`echo -n "$url" | head -c $ol`" - if [ "$prefix" = "$origin" ] ; then - suffix="`echo "$url"|cut -b $((ol+1))-`" - echo -n "$mirror$suffix" - return 0 - fi - done < mirrors - echo "$url" -} - -# Warning: unpredictable results if same URL used twice -src_no () -{ - cd $SPECS_DIR - rpm_dump | \ - grep "SOURCEURL[0-9]*[ ]*$1""[ ]*$" | \ - sed -e 's/.*SOURCEURL\([0-9][0-9]*\).*/\1/' | \ - head -n 1 | xargs -} - -src_md5() -{ - [ "$NO5" = "yes" ] && return - no=$(src_no "$1") - [ -z "$no" ] && return - cd $SPECS_DIR - local md5 - - if [ -f additional-md5sums ]; then - local spec_rev=$(grep $SPECFILE CVS/Entries 2>/dev/null | sed -e s:/$SPECFILE/:: -e s:/.*::) - if [ -z "$spec_rev" ]; then - spec_rev="$(head -n 1 $SPECFILE | sed -e 's/.*\$Revision: \([0-9.]*\).*/\1/')" - fi - local spec="$SPECFILE[0-9.,]*,$(echo $spec_rev | sed 's/\./\\./g')" - md5=$(grep -s -v '^#' additional-md5sums | \ - grep -E "[ ]$(basename "$1")[ ]+${spec}([ ,]|\$)" | \ - sed -e 's/^\([0-9a-f]\{32\}\).*/\1/' | \ - grep -E '^[0-9a-f]{32}$') - - if [ "$md5" ]; then - if [ $(echo "$md5" | wc -l) != 1 ] ; then - echo "$SPECFILE: more then one entry in additional-md5sums for $1" 1>&2 - fi - echo "$md5" | tail -n 1 - return - fi - fi - - source_md5=`grep -i "#[ ]*Source$no-md5[ ]*:" $SPECFILE | sed -e 's/.*://'` - if [ -n "$source_md5" ]; then - echo $source_md5 - else - # we have empty SourceX-md5, but it is still possible - # that we have NoSourceX-md5 AND NoSource: X - nosource_md5=`grep -i "#[ ]*NoSource$no-md5[ ]*:" $SPECFILE | sed -e 's/.*://'` - if [ -n "$nosource_md5" -a -n "`grep -i "^NoSource:[ ]*$no$" $SPECFILE`" ] ; then - echo $nosource_md5 - fi - fi -} - -distfiles_path () -{ - echo "by-md5/$(src_md5 "$1" | sed -e 's|^\(.\)\(.\)|\1/\2/&|')/$(basename "$1")" -} - -distfiles_url () -{ - echo "$PROTOCOL$DISTFILES_SERVER/distfiles/$(distfiles_path "$1")" -} - -distfiles_attic_url () -{ - echo "$PROTOCOL$ATTICDISTFILES_SERVER/distfiles/Attic/$(distfiles_path "$1")" -} - -good_md5 () -{ - md5=$(src_md5 "$1") - [ "$md5" = "" ] || \ - [ "$md5" = "$(md5sum $(nourl "$1") 2> /dev/null | sed -e 's/ .*//')" ] -} - -good_size () -{ - size="$(find $(nourl "$1") -printf "%s" 2>/dev/null)" - [ -n "$size" -a "$size" -gt 0 ] -} - -cvsignore_df () -{ - if [ "$CVSIGNORE_DF" != "yes" ]; then - return - fi - cvsignore=${SOURCE_DIR}/.cvsignore - if ! grep -q "^$1\$" $cvsignore 2> /dev/null; then - echo "$1" >> $cvsignore - fi -} - -cvsup() -{ - update_shell_title "cvsup" - local OPTIONS="up " - if [ -n "$CVSROOT" ]; then - OPTIONS="-d $CVSROOT $OPTIONS" - fi - - if [ -z "$CVSDATE" -a -z "$CVSTAG" ]; then - OPTIONS="$OPTIONS -A" - else - if [ -n "$CVSDATE" ]; then - OPTIONS="$OPTIONS -D $CVSDATE" - fi - if [ -n "$CVSTAG" ]; then - OPTIONS="$OPTIONS -r $CVSTAG" - fi - fi - - local result=1 - local retries_counter=0 - if [ $# = 1 ]; then - update_shell_title "cvsup: $*" - else - update_shell_title "cvsup: $# files" - fi - while [ "$result" != "0" -a "$retries_counter" -le "$CVS_RETRIES" ]; do - retries_counter=$(( $retries_counter + 1 )) - output=$(LC_ALL=C cvs $OPTIONS "$@" 2>&1) - result=$? - [ -n "$output" ] && echo "$output" - if (echo "$output" | grep -qE "(Cannot connect to|connect to .* failed|Connection reset by peer|Connection timed out|Unknown host)") && [ "$result" -ne "0" -a "$retries_counter" -le "$CVS_RETRIES" ]; then - echo "Trying again [$*]... ($retries_counter)" - update_shell_title "cvsup: retry #$retries_counter" - sleep 2 - continue - else - break - fi - done - update_shell_title "cvsup: done!" - return $result -} - -# returns true if "$1" is ftp, http or https protocol url -is_url() -{ - case "$1" in - ftp://*|http://*|https://*) - return 0 - ;; - esac - return 1 -} - -update_md5() -{ - if [ $# -eq 0 ]; then - return - fi - - update_shell_title "update md5" - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - cd "$SOURCE_DIR" - - # pass 1: check files to be fetched - local todo - local need_files - for i in "$@"; do - local fp=$(nourl "$i") - local srcno=$(src_no "$i") - if [ -n "$ADD5" ]; then - [ "$fp" = "$i" ] && continue # FIXME what is this check doing? - grep -qiE '^#[ ]*Source'$srcno'-md5[ ]*:' $SPECS_DIR/$SPECFILE && continue - else - grep -qiE '^#[ ]*Source'$srcno'-md5[ ]*:' $SPECS_DIR/$SPECFILE || continue - fi - if [ ! -f "$fp" ] || [ $ALWAYS_CVSUP = "yes" ]; then - need_files="$need_files $i" - fi - done - - # pass 1a: get needed files - if [ "$need_files" ]; then - get_files $need_files - fi - - # pass 2: proceed with md5 adding or updating - for i in "$@"; do - local fp=$(nourl "$i") - local srcno=$(src_no "$i") - local md5=$(grep -iE '^#[ ]*(No)?Source'$srcno'-md5[ ]*:' $SPECS_DIR/$SPECFILE ) - if [ -n "$ADD5" ] && is_url $i || [ -n "$md5" ]; then - local tag="Source$srcno-md5" - if [[ "$md5" == *NoSource* ]]; then - tag="NoSource$srcno-md5" - fi - md5=$(md5sum "$fp" | cut -f1 -d' ') - echo "Updating $tag ($md5: $fp)." - perl -i -ne ' - print unless /^\s*#\s*(No)?Source'$srcno'-md5\s*:/i; - print "# '$tag':\t'$md5'\n" if /^Source'$srcno'\s*:\s+/; - ' \ - $SPECS_DIR/$SPECFILE - fi - done -} - -check_md5() -{ - update_shell_title "check md5" - - for i in "$@"; do - if good_md5 "$i" && good_size "$i"; then - continue - fi - - echo "MD5 sum mismatch or 0 size. Use -U to refetch sources," - echo "or -5 to update md5 sums, if you're sure files are correct." - Exit_error err_no_source_in_repo $i - done -} - -get_files() -{ - update_shell_title "get_files" - - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - if [ $# -gt 0 ]; then - cd "$SOURCE_DIR" - - if [ ! -s CVS/Root -a "$NOCVS" != "yes" ]; then - echo "Warning: No CVS access defined for SOURCES" - NOCVS="yes" - fi - - local nc=0 - local get_files_cvs="" - for i in "$@"; do - nc=$((nc + 1)) - local cvsup=0 - SHELL_TITLE_PREFIX="get_files[$nc/$#]" - update_shell_title "$i" - local fp=`nourl "$i"` - if [ "$SKIP_EXISTING_FILES" = "yes" ] && [ -f "$fp" ]; then - continue - fi - - FROM_DISTFILES=0 - local srcmd5=$(src_md5 "$i") - - # we know if source/patch is present in cvs/distfiles - # - has md5 (in distfiles) - # - in cvs... ideas? - - # CHECK: local file didn't exist or always cvs up (first) requested. - if [ ! -f "$fp" ] || [ $ALWAYS_CVSUP = "yes" ]; then - if echo $i | grep -vE '(http|ftp|https|cvs|svn)://' | grep -qE '\.(gz|bz2)$']; then - echo "Warning: no URL given for $i" - fi - - if [ -z "$NODIST" ] && [ -n "$srcmd5" ]; then - if good_md5 "$i" && good_size "$i"; then - echo "$fp having proper md5sum already exists" - continue - fi - target="$fp" - - # optionally prefer mirror over distfiles if there's mirror - # TODO: build url list and then try each url from the list - if [ -n "$PREFMIRRORS" ] && [ -z "$NOMIRRORS" ] && im=$(find_mirror "$i") && [ "$im" != "$i" ]; then - url="$im" - else - url=$(distfiles_url "$i") - fi - - url_attic=$(distfiles_attic_url "$i") - FROM_DISTFILES=1 - # is $url local file? - if [[ "$url" = [./]* ]]; then - update_shell_title "${GETLOCAL%% *}: $url" - ${GETLOCAL} $url $target - else - if [ -z "$NOMIRRORS" ]; then - url=$(find_mirror "$url") - fi - - local uri=${url} - # make shorter message for distfiles urls - if [[ "$uri" = ${PROTOCOL}${DISTFILES_SERVER}* ]] || [[ "$uri" = ${PROTOCOL}${ATTICDISTFILES_SERVER}* ]]; then - uri=${uri#${PROTOCOL}${DISTFILES_SERVER}/distfiles/by-md5/?/?/*/} - uri=${uri#${PROTOCOL}${ATTICDISTFILES_SERVER}/distfiles/by-md5/?/?/*/} - uri="df: $uri" - fi - update_shell_title "${GETURI%% *}: $uri" - ${GETURI} ${OUTFILEOPT} "$target" "$url" || \ - if [ "`echo $url | grep -E 'ftp://'`" ]; then - update_shell_title "${GETURI2%% *}: $url" - ${GETURI2} ${OUTFILEOPT} "$target" "$url" - fi - fi - - # is it empty file? - if [ ! -s "$target" ]; then - rm -f "$target" - if [ `echo $url_attic | grep -E '^(\.|/)'` ]; then - update_shell_title "${GETLOCAL%% *}: $url_attic" - ${GETLOCAL} $url_attic $target - else - if [ -z "$NOMIRRORS" ]; then - url_attic="`find_mirror "$url_attic"`" - fi - update_shell_title "${GETURI%% *}: $url_attic" - ${GETURI} ${OUTFILEOPT} "$target" "$url_attic" || \ - if [ "`echo $url_attic | grep -E 'ftp://'`" ]; then - update_shell_title "${GETURI2%% *}: $url_attic" - ${GETURI2} ${OUTFILEOPT} "$target" "$url_attic" - fi - fi - fi - - if [ -s "$target" ]; then - cvsignore_df $target - else - rm -f "$target" - FROM_DISTFILES=0 - fi - elif [ "$NOCVS" != "yes" -a -z "$srcmd5" ]; then - if [ $# -gt 1 ]; then - get_files_cvs="$get_files_cvs $fp" - update_shell_title "$fp (will cvs up later)" - cvsup=1 - else - cvsup $fp - fi - fi - - if [ -z "$NOURLS" ] && [ ! -f "$fp" -o -n "$UPDATE" ] && [ "`echo $i | grep -E 'ftp://|http://|https://'`" ]; then - if [ -z "$NOMIRRORS" ]; then - im="`find_mirror "$i"`" - else - im="$i" - fi - update_shell_title "${GETURI%% *}: $im" - ${GETURI} "$im" || \ - if [ "`echo $im | grep -E 'ftp://'`" ]; then - update_shell_title "${GETURI2%% *}: $im" - ${GETURI2} "$im" - fi - fi - - if [ "$cvsup" = 1 ]; then - continue - fi - - fi - - # the md5 check must be moved elsewhere as if we've called from update_md5 the md5 is wrong. - if [ ! -f "$fp" -a "$FAIL_IF_NO_SOURCES" != "no" ]; then - if [ -n "GREEDSRC" ]; then - get_greed_sources $i - else - Exit_error err_no_source_in_repo $i - fi - fi - - # we check md5 here just only to refetch immediately - if good_md5 "$i" && good_size "$i"; then - : - elif [ "$FROM_DISTFILES" = 1 ]; then - # wrong md5 from distfiles: remove the file and try again - # but only once ... - echo "MD5 sum mismatch. Trying full fetch." - FROM_DISTFILES=2 - rm -f $target - update_shell_title "${GETURI%% *}: $url" - ${GETURI} ${OUTFILEOPT} "$target" "$url" || \ - if [ "`echo $url | grep -E 'ftp://'`" ]; then - update_shell_title "${GETURI2%% *}: $url" - ${GETURI2} ${OUTFILEOPT} "$target" "$url" - fi - if [ ! -s "$target" ]; then - rm -f "$target" - update_shell_title "${GETURI%% *}: $url_attic" - ${GETURI} ${OUTFILEOPT} "$target" "$url_attic" || \ - if [ "`echo $url_attic | grep -E 'ftp://'`" ]; then - update_shell_title "${GETURI2%% *}: $url_attic" - ${GETURI2} ${OUTFILEOPT} "$target" "$url_attic" - fi - fi - test -s "$target" || rm -f "$target" - fi - done - SHELL_TITLE_PREFIX="" - - if [ "$get_files_cvs" ]; then - cvsup $get_files_cvs - fi - - if [ "$CHMOD" = "yes" ]; then - CHMOD_FILES="`nourl "$@"`" - if [ -n "$CHMOD_FILES" ]; then - chmod $CHMOD_MODE $CHMOD_FILES - fi - fi - fi -} - -make_tagver() { - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - # Check whether first character of PACKAGE_NAME is legal for tag name - if [ -z "${PACKAGE_NAME##[_0-9]*}" -a -z "$TAG_PREFIX" ]; then - TAG_PREFIX=tag_ - fi - - # NOTE: CVS tags may must not contain the characters `$,.:;@' - TAGVER=$(echo $TAG_PREFIX$PACKAGE_NAME-$PACKAGE_VERSION-$PACKAGE_RELEASE | tr '[.@]' '[_#]') - - # Remove #kernel.version_release from TAGVER because tagging sources - # could occur with different kernel-headers than kernel-headers used at build time. - # besides, %{_kernel_ver_str} is not expanded. - - # TAGVER=auto-ac-madwifi-ng-0-0_20070225_1#%{_kernel_ver_str} - # TAGVER=auto-ac-madwifi-ng-0-0_20070225_1 - - TAGVER=${TAGVER%#*} - echo -n "$TAGVER" -} - -tag_files() -{ - TAG_FILES="$@" - - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - echo "Version: $PACKAGE_VERSION" - echo "Release: $PACKAGE_RELEASE" - - local TAGVER - if [ "$TAG_VERSION" = "yes" ]; then - TAGVER=`make_tagver` - echo "CVS tag: $TAGVER" - fi - if [ -n "$TAG" ]; then - echo "CVS tag: $TAG" - fi - - local OPTIONS="tag $CVS_FORCE" - if [ -n "$CVSROOT" ]; then - OPTIONS="-d $CVSROOT $OPTIONS" - fi - - cd "$SOURCE_DIR" - local tag_files - for i in $TAG_FILES; do - # don't tag files stored on distfiles - [ -n "`src_md5 $i`" ] && continue - local fp=`nourl "$i"` - if [ -f "$fp" ]; then - tag_files="$tag_files $fp" - elif [ -n "GREEDSRC" ]; then - get_greed_sources $i - else - Exit_error err_no_source_in_repo $i - fi - done - - if [ "$tag_files" ]; then - if [ "$TAG_VERSION" = "yes" ]; then - update_shell_title "tag sources: $TAGVER" - printf "Tagging %d files\n" $(echo $tag_files | wc -w) - cvs $OPTIONS $TAGVER $tag_files || exit - fi - if [ -n "$TAG" ]; then - update_shell_title "tag sources: $TAG" - - while [ "$tag_files" ]; do - local chunk=$(echo $tag_files | tr ' ' '\n' | head -n 100) - printf "Tagging %d files\n" $(echo $chunk | wc -w) - cvs $OPTIONS $TAG $chunk || exit - tag_files=$(echo $tag_files | tr ' ' '\n' | tail +101) - done - fi - fi - - cd "$SPECS_DIR" - if [ "$TAG_VERSION" = "yes" ]; then - update_shell_title "tag spec: $TAGVER" - cvs $OPTIONS $TAGVER $SPECFILE || exit - fi - if [ -n "$TAG" ]; then - update_shell_title "tag spec: $TAG" - cvs $OPTIONS $TAG $SPECFILE || exit - fi -} - -branch_files() -{ - TAG=$1 - echo "CVS branch tag: $TAG" - shift - - TAG_FILES="$@" - - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - local OPTIONS="tag $CVS_FORCE -b" - if [ -n "$CVSROOT" ]; then - OPTIONS="-d $CVSROOT $OPTIONS" - fi - cd "$SOURCE_DIR" - local tag_files - for i in $TAG_FILES; do - local fp=`nourl "$i"` - if [ -f "$fp" ]; then - tag_files="$tag_files $fp" - elif [ -n "GREEDSRC" ]; then - get_greed_sources $i - else - Exit_error err_no_source_in_repo $i - fi - done - if [ "$tag_files" ]; then - cvs $OPTIONS $TAG $tag_files || exit - fi - - cd "$SPECS_DIR" - cvs $OPTIONS $TAG $SPECFILE || exit -} - - -# this function should exit early if package can't be built for this arch -# this avoids unneccessary BR filling. -check_buildarch() { - local out ret - out=$(minirpm --short-circuit -bp --define "'prep exit 0'" --nodeps $SPECFILE 2>&1) - ret=$? - if [ $ret -ne 0 ]; then - echo >&2 "$out" - exit $ret - fi -} - - -build_package() -{ - update_shell_title "build_package" - if [ -n "$DEBUG" ]; then - set -x - set -v - fi - - cd "$SPECS_DIR" - - if [ -n "$TRY_UPGRADE" ]; then - update_shell_title "build_package: try_upgrade" - if [ -n "$FLOAT_VERSION" ]; then - TNOTIFY=`./pldnotify.awk $SPECFILE -n` || exit 1 - else - TNOTIFY=`./pldnotify.awk $SPECFILE` || exit 1 - fi - - TNEWVER=`echo $TNOTIFY | awk '{ match($4,/\[NEW\]/); print $5 }'` - - if [ -n "$TNEWVER" ]; then - TOLDVER=`echo $TNOTIFY | awk '{ print $3; }'` - echo "New version found, updating spec file to version " $TNEWVER - if [ "$REVERT_BROKEN_UPGRADE" = "yes" ]; then - cp -f $SPECFILE $SPECFILE.bak - fi - chmod +w $SPECFILE - eval "perl -pi -e 's/Version:\t"$TOLDVER"/Version:\t"$TNEWVER"/gs' $SPECFILE" - eval "perl -pi -e 's/Release:\t[1-9]{0,4}/Release:\t0.1/' $SPECFILE" - parse_spec - NODIST="yes" get_files $SOURCES $PATCHES - update_md5 $SOURCES - - unset TOLDVER TNEWVER TNOTIFY - fi - fi - cd "$SPECS_DIR" - - case "$COMMAND" in - build ) - BUILD_SWITCH="-ba" ;; - build-binary ) - BUILD_SWITCH="-bb" ;; - build-source ) - BUILD_SWITCH="-bs --nodeps" ;; - build-prep ) - BUILD_SWITCH="-bp --nodeps" ;; - build-build ) - BUILD_SWITCH="-bc" ;; - build-install ) - BUILD_SWITCH="-bi" ;; - build-list ) - BUILD_SWITCH="-bl" ;; - - esac - - update_shell_title "build_package: $COMMAND" - if [ -n "$LOGFILE" ]; then - LOG=`eval echo $LOGFILE` - if [ -d "$LOG" ]; then - echo "Log file $LOG is a directory." - echo "Parse error in the spec?" - Exit_error err_build_fail - fi - if [ -n "$LASTLOG_FILE" ]; then - echo "LASTLOG=$LOG" > $LASTLOG_FILE - fi - RES_FILE=~/tmp/$RPMBUILD-exit-status.$RANDOM - (time eval ${NICE_COMMAND} $RPMBUILD $BUILD_SWITCH -v $QUIET $CLEAN $RPMOPTS $RPMBUILDOPTS $BCOND $TARGET_SWITCH $SPECFILE; echo $? > $RES_FILE) 2>&1 |tee $LOG - RETVAL=`cat $RES_FILE` - rm $RES_FILE - if [ -n "$LOGDIROK" ] && [ -n "$LOGDIRFAIL" ]; then - if [ "$RETVAL" -eq "0" ]; then - mv $LOG $LOGDIROK - else - mv $LOG $LOGDIRFAIL - fi - fi - else - eval ${NICE_COMMAND} $RPMBUILD $BUILD_SWITCH -v $QUIET $CLEAN $RPMOPTS $RPMBUILDOPTS $BCOND $TARGET_SWITCH $SPECFILE - RETVAL=$? - fi - if [ "$RETVAL" -ne "0" ]; then - if [ -n "$TRY_UPGRADE" ]; then - echo "\n!!! Package with new version cannot be built automagically\n" - if [ "$REVERT_BROKEN_UPGRADE" = "yes" ]; then - mv -f $SPECFILE.bak $SPECFILE - fi - fi - Exit_error err_build_fail - fi - unset BUILD_SWITCH -} - -nourl() -{ - echo "$@" | sed 's#\<\(ftp\|http\|https\|cvs\|svn\)://[^ ]*/##g' -} - -install_required_packages() -{ - run_poldek -vi $1 - return $? -} - -find_spec_bcond() { - # taken from find-spec-bcond, but with just getting the list - local SPEC="$1" - # quick revert hint: '$RPMBUILD --bcond $SPEC' - awk -F"\n" ' - /^%changelog/ { exit } - /_with(out)?_[_a-zA-Z0-9]+/{ - match($0, /_with(out)?_[_a-zA-Z0-9]+/); - print substr($0, RSTART, RLENGTH); - } - /^%bcond_with/{ - match($0, /bcond_with(out)?[ \t]+[_a-zA-Z0-9]+/); - bcond = substr($0, RSTART +5 , RLENGTH -5); - gsub(/[ \t]+/,"_",bcond); - print bcond - }' $SPEC | LC_ALL=C sort -u -} - -process_bcondrc() { - # expand bconds from ~/.bcondrc - # The file structure is like gentoo's package.use: - # --- - # * -selinux - # samba -mysql -pgsql - # w32codec-installer license_agreement - # php +mysqli - # --- - if ([ -f $HOME/.bcondrc ] || ([ -n $HOME_ETC ] && [ -f $HOME_ETC/.bcondrc ])); then - : - else - return - fi - - SN=${SPECFILE%%\.spec} - - local bcondrc=$HOME/.bcondrc - [ -n $HOME_ETC ] && [ -f $HOME_ETC/.bcondrc ] && bcondrc=$HOME_ETC/.bcondrc - - local bcond_avail=$(find_spec_bcond $SPECFILE) - - while read pkg flags; do - # ignore comments - [[ "$pkg" == \#* ]] && continue - - # any package or current package? - if [ "$pkg" = "*" ] || [ "$pkg" = "$PACKAGE_NAME" ] || [ "$pkg" = "$SN" ]; then - for flag in $flags; do - local opt=${flag#[+-]} - - # use only flags which are in this package. - if [[ $bcond_avail = *${opt}* ]]; then - if [[ $flag = -* ]]; then - if [[ $BCOND != *--with?${opt}* ]]; then - BCOND="$BCOND --without $opt" - fi - else - if [[ $BCOND != *--without?${opt}* ]]; then - BCOND="$BCOND --with $opt" - fi - fi - fi - done - fi - done < $bcondrc - update_shell_title "parse ~/.bcondrc: DONE!" -} - -set_bconds_values() -{ - update_shell_title "set bcond values" - - AVAIL_BCONDS_WITHOUT="" - AVAIL_BCONDS_WITH="" - if `grep -q ^%bcond ${SPECFILE}`; then - BCOND_VERSION="NEW" - elif `egrep -q ^#\ *_with ${SPECFILE}`; then - BCOND_VERSION="OLD" - else - return - fi - - local bcond_avail=$(find_spec_bcond $SPECFILE) - process_bcondrc "$SPECFILE" - - update_shell_title "parse bconds" - case "${BCOND_VERSION}" in - NONE) - : - ;; - OLD) - echo "Warning: This spec has old style bconds. Fix it || die." - for opt in `echo "$bcond_avail" | grep ^_without_` - do - AVAIL_BCOND_WITHOUT=${opt#_without_} - if [[ "$BCOND" = *--without?${AVAIL_BCOND_WITHOUT}* ]]; then - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$AVAIL_BCOND_WITHOUT>" - else - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT $AVAIL_BCOND_WITHOUT" - fi - done - - for opt in `echo "$bcond_avail" | grep ^_with_` - do - AVAIL_BCOND_WITH=${opt#_with_} - if [[ "$BCOND" = *--with?${AVAIL_BCOND_WITH}* ]]; then - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$AVAIL_BCOND_WITH>" - else - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH $AVAIL_BCOND_WITH" - fi - done - ;; - NEW) - local cond_type="" # with || without - for opt in $bcond_avail; do - case "$opt" in - _without) - cond_type="without" - ;; - _with) - cond_type="with" - ;; - _without_*) - AVAIL_BCOND_WITHOUT=${opt#_without_} - if [[ "$BCOND" = *--without?${AVAIL_BCOND_WITHOUT}* ]]; then - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$AVAIL_BCOND_WITHOUT>" - else - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT $AVAIL_BCOND_WITHOUT" - fi - ;; - _with_*) - AVAIL_BCOND_WITH=${opt#_with_} - if [[ "$BCOND" = *--with?${AVAIL_BCOND_WITH}* ]]; then - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$AVAIL_BCOND_WITH>" - else - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH $AVAIL_BCOND_WITH" - fi - ;; - *) - case "$cond_type" in - with) - cond_type='' - AVAIL_BCOND_WITH="$opt" - if [[ "$BCOND" = *--with?${AVAIL_BCOND_WITH}* ]]; then - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$AVAIL_BCOND_WITH>" - else - AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH $AVAIL_BCOND_WITH" - fi - ;; - without) - cond_type='' - AVAIL_BCOND_WITHOUT="$opt" - if [[ "$BCOND" = *--without?${AVAIL_BCOND_WITHOUT}* ]]; then - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$AVAIL_BCOND_WITHOUT>" - else - AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT $AVAIL_BCOND_WITHOUT" - fi - ;; - esac - ;; - esac - done - ;; - esac -} - -run_sub_builder() -{ - package_name="${1}" - update_shell_title "run_sub_builder $package_name" - # - # No i tutaj bym chcia³ zrobiæ sztuczn± inteligencjê, która spróbuje tego - # pakieta zbudowaæ. Aktualnie niewiele dziala, bo generalnie nie widze do - # konca algorytmu... Ale damy rade. :) Na razie po prostu sie wyjebie tak samo - # jakby nie bylo tego kawalka kodu. - # - # Update: Poprawi³em parê rzeczy i zaczê³o generowaæ pakiety spoza zadanej listy. - # Jednym s³owem budowanie niespoldkowanych zale¿no¶ci dzia³a w paru przypadkach. - # - # - # y0shi. - - parent_spec_name='' - - # Istnieje taki spec? ${package}.spec - if [ -f "${SPECS_DIR}/${package}.spec" ]; then - parent_spec_name=${package}.spec - elif [ -f "${SPECS_DIR}/`echo ${package_name} | sed -e s,-devel.*,,g -e s,-static,,g`.spec" ]; then - parent_spec_name="`echo ${package_name} | sed -e s,-devel.*,,g -e s,-static,,g`.spec" - else - for provides_line in `grep ^Provides:.*$package ${SPECS_DIR} -R` - do - echo $provides_line - done - fi - - if [ "${parent_spec_name}" != "" ]; then - spawn_sub_builder $parent_spec_name - fi - NOT_INSTALLED_PACKAGES="$NOT_INSTALLED_PACKAGES $package_name" -} - -spawn_sub_builder() -{ - package_name="${1}" - update_shell_title "spawn_sub_builder $package_name" - - sub_builder_opts='' - if [ "${FETCH_BUILD_REQUIRES}" == "yes" ]; then - sub_builder_opts="${sub_builder_opts} -R" - fi - if [ "${REMOVE_BUILD_REQUIRES}" == "nice" ]; then - sub_builder_opts="${sub_builder_opts} -RB" - elif [ "${REMOVE_BUILD_REQUIRES}" == "force" ]; then - sub_builder_opts="${sub_builder_opts} -FRB" - fi - if [ "${UPDATE_POLDEK_INDEXES}" == "yes" ]; then - sub_builder_opts="${sub_builder_opts} -Upi" - fi - - cd "${SPECS_DIR}" - ./builder ${sub_builder_opts} "$@" -} - -remove_build_requires() -{ - if [ "$INSTALLED_PACKAGES" != "" ]; then - case "$REMOVE_BUILD_REQUIRES" in - "force") - run_poldek --noask -ve $INSTALLED_PACKAGES - ;; - "nice") - run_poldek --ask -ve $INSTALLED_PACKAGES - ;; - *) - echo You may want to manually remove following BuildRequires fetched: - echo $INSTALLED_PACKAGES - echo Try poldek -e \`cat `pwd`/.${SPECFILE}_INSTALLED_PACKAGES\` - ;; - esac - fi -} - -display_bconds() -{ - if [ "$AVAIL_BCONDS_WITH" != "" ] || [ "$AVAIL_BCONDS_WITHOUT" != "" ]; then - if [ "$BCOND" != "" ]; then - echo -ne "\nBuilding $SPECFILE with the following conditional flags:\n" - echo -ne "$BCOND" - else - echo -ne "\nNo conditional flags passed" - fi - echo -ne "\n\nfrom available:\n" - echo -ne "--with :\t$AVAIL_BCONDS_WITH\n--without:\t$AVAIL_BCONDS_WITHOUT\n\n" - fi -} - -display_branches() -{ - if [ "$NOCVSSPEC" != "yes" ]; then - echo -ne "Available branches: " - cvs status -v "${SPECFILE}" | awk '!/Sticky Tag:/ && /\(branch:/ { print $1 } ' | xargs - fi -} - -# checks a given list of packages/files/provides agains current rpmdb. -# outputs all dependencies whcih current rpmdb doesn't satisfy. -# input can be either STDIN or parameters -_rpm_prov_check() -{ - local DEPS - - if [ "$#" -gt 0 ]; then - DEPS="$@" - else - DEPS=$(cat) - fi - - DEPS=$(rpm -q --whatprovides $DEPS 2>&1 | awk '/^(error:|no package provides)/ { print }') - - # packages - echo "$DEPS" | awk '/^no package provides/ { print $NF }' - - # other deps (files) - echo "$DEPS" | awk -F: '/^error:.*No such file/{o = $2; gsub("^ file ", "", o); print o}' -} - -# checks if given package/files/provides exists in rpmdb. -# inout can be either stdin or parameters -# returns packages wchi hare present in the rpmdb -_rpm_cnfl_check() -{ - local DEPS - - if [ "$#" -gt 0 ]; then - DEPS="$@" - else - DEPS=$(cat) - fi - - rpm -q --whatprovides $DEPS 2>/dev/null | awk '!/no package provides/ { print }' -} - -fetch_build_requires() -{ - if [ "${FETCH_BUILD_REQUIRES}" = "yes" ]; then - update_shell_title "fetch build requires" - if [ "$FETCH_BUILD_REQUIRES_RPMGETDEPS" = "yes" ]; then - # TODO: Conflicts list doesn't check versions - local CNFL=$(rpm-getdeps $BCOND $SPECFILE 2> /dev/null | awk '/^\-/ { print $3 } ' | _rpm_cnfl_check | xargs) - local DEPS=$(rpm-getdeps $BCOND $SPECFILE 2> /dev/null | awk '/^\+/ { print $3 } ' | _rpm_prov_check | xargs) - - if [ -n "$CNFL" ] || [ -n "$DEPS" ]; then - echo "fetch builderequires: install [$DEPS]; remove [$CNFL]" - update_shell_title "poldek: install [$DEPS]; remove [$CNFL]" - $SU_SUDO /usr/bin/poldek -q --update || $SU_SUDO /usr/bin/poldek -q --upa - fi - if [ -n "$CNFL" ]; then - update_shell_title "uninstall conflicting packages: $CNFL" - echo "Trying to uninstall conflicting packages ($CNFL):" - $SU_SUDO /usr/bin/poldek --noask --nofollow -ev $CNFL - fi - - while [ "$DEPS" ]; do - update_shell_title "install deps: $DEPS" - echo "Trying to install dependencies ($DEPS):" - local log=.${SPECFILE}_poldek.log - $SU_SUDO /usr/bin/poldek --caplookup -uGq $DEPS | tee $log - failed=$(awk -F: '/^error:/{print $2}' $log) - rm -f $log - local ok - if [ -n "$failed" ]; then - for package in $failed; do - # FIXME: sanitise, deps could be not .spec files - spawn_sub_builder -bb $package && ok="$ok $package" - done - DEPS="$ok" - else - DEPS="" - fi - done - return - fi - - echo -ne "\nAll packages installed by fetch_build_requires() are written to:\n" - echo -ne "`pwd`/.${SPECFILE}_INSTALLED_PACKAGES\n" - echo -ne "\nIf anything fails, you may get rid of them by executing:\n" - echo "poldek -e \`cat `pwd`/.${SPECFILE}_INSTALLED_PACKAGES\`\n\n" - echo > `pwd`/.${SPECFILE}_INSTALLED_PACKAGES - for package_item in `cat $SPECFILE|grep -B100000 ^%changelog|grep -v ^#|grep BuildRequires|grep -v ^-|sed -e "s/^.*BuildRequires://g"|awk '{print $1}'|sed -e s,perl\(,perl-,g -e s,::,-,g -e s,\(.*\),,g -e s,%{,,g -e s,},,g|grep -v OpenGL-devel|sed -e s,sh-utils,coreutils,g -e s,fileutils,coreutils,g -e s,textutils,coreutils,g -e s,kgcc_package,gcc,g -e s,\),,g` - do - package_item="`echo $package_item|sed -e s,rpmbuild,rpm-build,g |sed -e s,__perl,perl,g |sed -e s,gasp,binutils-gasp,g -e s,binutils-binutils,binutils,g -e s,apxs,apache,g|sed -e s,apache\(EAPI\)-devel,apache-devel,g -e s,kernel-headers\(netfilter\),kernel-headers,g -e s,awk,mawk,g -e s,mmawk,mawk,g -e s,motif,openmotif,g -e s,openopenmotif,openmotif,g`" - GO="yes" - package=`basename "$package_item"|sed -e "s/}$//g"` - COND_ARCH_TST="`cat $SPECFILE|grep -B1 BuildRequires|grep -B1 $package|grep ifarch|sed -e "s/^.*ifarch//g"`" - mach=`uname -m` - - COND_TST=`cat $SPECFILE|grep BuildRequires|grep "$package"` - if `echo $COND_TST|grep -q '^BuildRequires:'`; then - if [ "$COND_ARCH_TST" != "" ] && [ "`echo $COND_ARCH_TST|sed -e "s/i.86/ix86/g"`" != "`echo $mach|sed -e "s/i.86/ix86/g"`" ]; then - GO="yes" - fi - # bcond: - else - COND_NAME=`echo $COND_TST|sed -e s,:BuildRequires:.*$,,g` - GO="" - # %{without} - if `echo $COND_TST|grep -q 'without_'`; then - COND_NAME=`echo $COND_NAME|sed -e s,^.*without_,,g` - if `echo $COND_TST|grep -q !`; then - COND_STATE="with" - else - COND_STATE="wout" - fi - COND_WITH=`echo $AVAIL_BCONDS_WITH|grep "<$COND_NAME>"` - COND_WITHOUT=`echo $AVAIL_BCONDS_WITHOUT|grep "<$COND_NAME>"` - if [ -n "$COND_WITHOUT" ] || [ -z "$COND_WITH" ]; then - COND_ARGV="wout" - else - COND_ARGV="with" - fi - # %{with} - elif `echo $COND_TST|grep -q 'with_'`; then - COND_NAME=`echo $COND_NAME|sed -e s,^.*with_,,g` - if `echo $COND_TST|grep -q !`; then - COND_STATE="wout" - else - COND_STATE="with" - fi - COND_WITH=`echo $AVAIL_BCONDS_WITH|grep "<$COND_NAME>"` - COND_WITHOUT=`echo $AVAIL_BCONDS_WITHOUT|grep "<$COND_NAME>"` - if [ -n "$COND_WITH" ] || [ -z "$COND_WITHOUT" ]; then - COND_ARGV="with" - else - COND_ARGV="wout" - fi - fi - RESULT="${COND_STATE}-${COND_ARGV}" - case "$RESULT" in - "with-wout" | "wout-with" ) - GO="" - ;; - "wout-wout" | "with-with" ) - GO="yes" - ;; - * ) - echo "Action '$RESULT' was not defined for package '$package_item'" - GO="yes" - ;; - esac - fi - - if [ "$GO" = "yes" ]; then - if [ "`rpm -q $package|sed -e "s/$package.*/$package/g"`" != "$package" ]; then - echo "Testing if $package has subrequirements..." - run_poldek -t -i $package --dumpn=".$package-req.txt" - if [ -f ".$package-req.txt" ]; then - for package_name in `cat ".$package-req.txt"|grep -v ^#` - do - if [ "$package_name" = "$package" ]; then - echo -ne "Installing BuildRequired package:\t$package_name\n" - update_shell_title "Installing BuildRequired package: ${package_name}" - install_required_packages $package - else - echo -ne "Installing (sub)Required package:\t$package_name\n" - update_shell_title "Installing (sub)Required package: ${package_name}" - install_required_packages $package_name - fi - case $? in - 0) - INSTALLED_PACKAGES="$package_name $INSTALLED_PACKAGES" - echo $package_name >> `pwd`/.${SPECFILE}_INSTALLED_PACKAGES - ;; - *) - echo "Attempting to run spawn sub - builder..." - echo -ne "Package installation failed:\t$package_name\n" - run_sub_builder $package_name - if [ $? -eq 0 ]; then - install_required_packages $package_name - case $? in - 0) - INSTALLED_PACKAGES="$package_name $INSTALLED_PACKAGES" - echo $package_name >> `pwd`/.${SPECFILE}_INSTALLED_PACKAGES - ;; - *) - NOT_INSTALLED_PACKAGES="$package_name $NOT_INSTALLED_PACKAGES" - ;; - esac - fi - ;; - esac - done - rm -f ".$package-req.txt" - else - echo "Attempting to run spawn sub - builder..." - echo -ne "Package installation failed:\t$package\n" - run_sub_builder $package - if [ $? -eq 0 ]; then - install_required_packages $package - case $? in - 0) - INSTALLED_PACKAGES="$package_name $INSTALLED_PACKAGES" - echo $package_name >> `pwd`/.${SPECFILE}_INSTALLED_PACKAGES - ;; - *) - NOT_INSTALLED_PACKAGES="$package_name $NOT_INSTALLED_PACKAGES" - ;; - esac - fi - fi - else - echo "Package $package is already installed. BuildRequirement satisfied." - fi - fi - done - if [ "$NOT_INSTALLED_PACKAGES" != "" ]; then - echo "Unable to install following packages and their dependencies:" - for pkg in "$NOT_INSTALLED_PACKAGES" - do - echo $pkg - done - remove_build_requires - exit 8 - fi - fi -} - -init_rpm_dir() { - - TOP_DIR="`eval $RPM $RPMOPTS --eval '%{_topdir}'`" - CVSROOT=":pserver:cvs@$CVS_SERVER:/cvsroot" - - mkdir -p $TOP_DIR/{RPMS,BUILD,SRPMS} - cd $TOP_DIR - cvs -d $CVSROOT co SOURCES/.cvsignore SPECS/{mirrors,adapter{,.awk},fetchsrc_request,builder,{relup,compile,repackage}.sh} - - init_builder - - echo "To checkout *all* .spec files:" - echo "- remove $SPECS_DIR/CVS/Entries.Static" - echo "- run cvs up in $SPECS_DIR dir" - - echo "" - echo "To commit with your developer account:" - echo "- edit $SPECS_DIR/CVS/Root" - echo "- edit $SOURCE_DIR/CVS/Root" -} - -get_greed_sources() { - CVSROOT=":pserver:cvs@$CVS_SERVER:/cvsroot" - if [ -n "BE_VERBOSE" ]; then - echo "Try greed download: $1 from: $CVSROOT" - fi - cvs -d $CVSROOT get SOURCES/$1 - if [ $? != 0 ]; then - Exit_error err_no_source_in_repo $1 - fi - -} - -#--------------------------------------------- -# main() - -if [ $# = 0 ]; then - usage - exit 1 -fi - -while [ $# -gt 0 ]; do - case "${1}" in - -5 | --update-md5) - COMMAND="update_md5" - NODIST="yes" - NOCVSSPEC="yes" - shift ;; - -a5 | --add-md5 ) - COMMAND="update_md5" - NODIST="yes" - NOCVS="yes" - NOCVSSPEC="yes" - ADD5="yes" - shift ;; - -n5 | --no-md5 ) - NO5="yes" - shift ;; - -D | --debug ) - DEBUG="yes"; shift ;; - -V | --version ) - COMMAND="version"; shift ;; - --short-version ) - COMMAND="short-version"; shift ;; - -a | --as_anon ) - CVSROOT=":pserver:cvs@$CVS_SERVER:/cvsroot"; shift ;; - -b | -ba | --build ) - COMMAND="build"; shift ;; - -bb | --build-binary ) - COMMAND="build-binary"; shift ;; - -bc ) - COMMAND="build-build"; shift ;; - -bi ) - COMMAND="build-install"; shift ;; - -bl ) - COMMAND="build-list"; shift ;; - -bp | --build-prep ) - COMMAND="build-prep"; shift ;; - -bs | --build-source ) - COMMAND="build-source"; shift ;; - -B | --branch ) - COMMAND="branch"; shift; TAG="${1}"; shift;; - -c | --clean ) - CLEAN="--clean --rmspec --rmsource"; shift ;; - -cf | --cvs-force ) - CVS_FORCE="-F -B"; shift;; - -d | --cvsroot ) - shift; CVSROOT="${1}"; shift ;; - -g | --get ) - COMMAND="get"; shift ;; - -h | --help ) - COMMAND="usage"; shift ;; - --http ) - PROTOCOL="http"; shift ;; - -l | --logtofile ) - shift; LOGFILE="${1}"; shift ;; - -ni| --nice ) - shift; DEF_NICE_LEVEL=${1}; shift ;; - -ske | --skip-existing-files) - SKIP_EXISTING_FILES="yes"; shift ;; - -m | --mr-proper ) - COMMAND="mr-proper"; shift ;; - -nc | --no-cvs ) - NOCVS="yes"; shift ;; - -ncs | --no-cvs-specs ) - NOCVSSPEC="yes"; shift ;; - -nd | --no-distfiles ) - NODIST="yes"; shift ;; - -nm | --no-mirrors ) - NOMIRRORS="yes"; shift ;; - -nu | --no-urls ) - NOURLS="yes"; shift ;; - -ns | --no-srcs ) - NOSRCS="yes"; shift ;; - -ns0 | --no-source0 ) - NOSOURCE0="yes"; shift ;; - -nn | --no-net ) - NOCVS="yes" - NOCVSSPEC="yes" - NODIST="yes" - NOMIRRORS="yes" - NOURLS="yes" - NOSRCS="yes" - ALWAYS_CVSUP="no" - shift;; - -pm | --prefer-mirrors ) - PREFMIRRORS="yes" - shift;; - --no-init ) - NOINIT="yes" - shift;; - --opts ) - shift; RPMOPTS="${RPMOPTS} ${1}"; shift ;; - --nopatch | -np ) - shift; RPMOPTS="${RPMOPTS} --define \"patch${1} : ignoring patch${1}; exit 1; \""; shift ;; - --with | --without ) - case $GROUP_BCONDS in - "yes") - COND=${1} - shift - while ! `echo ${1}|grep -qE '(^-|spec)'` - do - BCOND="$BCOND $COND $1" - shift - done;; - "no") - if [[ "$2" = *,* ]]; then - for a in $(echo "$2" | tr , ' '); do - BCOND="$BCOND $1 $a" - done - else - BCOND="$BCOND $1 $2" - fi - shift 2 ;; - esac - ;; - --target ) - shift; TARGET="${1}"; shift ;; - --target=* ) - TARGET=$(echo "${1}" | sed 's/^--target=//'); shift ;; - -q | --quiet ) - QUIET="--quiet"; shift ;; - --date ) - CVSDATE="${2}"; shift 2 ;; - -r | --cvstag ) - shift; CVSTAG="${1}"; shift ;; - -A) - shift; CVSTAG="HEAD"; ;; - -R | --fetch-build-requires) - FETCH_BUILD_REQUIRES="yes" - NOT_INSTALLED_PACKAGES= - shift ;; - -RB | --remove-build-requires) - REMOVE_BUILD_REQUIRES="nice" - shift ;; - -FRB | --force-remove-build-requires) - REMOVE_BUILD_REQUIRES="force" - shift ;; - -sc | --sources-cvs) - COMMAND="list-sources-cvs" - shift ;; - -sd | --sources-distfiles) - COMMAND="list-sources-distfiles" - shift ;; - -sdp | --sources-distfiles-paths) - COMMAND="list-sources-distfiles-paths" - shift ;; - -sf | --sources-files) - COMMAND="list-sources-files" - shift ;; - -sp | --sources-paths) - COMMAND="list-sources-local-paths" - shift ;; - -su | --sources-urls) - COMMAND="list-sources-urls" - shift ;; - -Tvs | --tag-version-stable ) - COMMAND="tag" - TAG="STABLE" - TAG_VERSION="yes" - shift;; - -Ts | --tag-stable ) - COMMAND="tag" - TAG="STABLE" - TAG_VERSION="no" - shift;; - -Tv | --tag-version ) - COMMAND="tag" - TAG="" - TAG_VERSION="yes" - shift;; - -Tp | --tag-prefix ) - TAG_PREFIX="$2" - shift 2;; - -tt | --test-tag ) - TEST_TAG="yes" - shift;; - -T | --tag ) - COMMAND="tag" - shift - TAG="$1" - TAG_VERSION="no" - shift;; - -ir | --integer-release-only ) - INTEGER_RELEASE="yes" - shift;; - -U | --update ) - COMMAND="update_md5" - UPDATE="yes" - NOCVSSPEC="yes" - NODIST="yes" - shift ;; - -Upi | --update-poldek-indexes ) - UPDATE_POLDEK_INDEXES="yes" - shift ;; - --init-rpm-dir) - COMMAND="init_rpm_dir" - shift ;; - --use-greed-sources ) - GREEDSRC="1" - shift;; - -u | --try-upgrade ) - TRY_UPGRADE="1"; shift ;; - -un | --try-upgrade-with-float-version ) - TRY_UPGRADE="1"; FLOAT_VERSION="1"; shift ;; - -v | --verbose ) - BE_VERBOSE="1"; shift ;; - --define) - shift - MACRO="${1}" - shift - if echo "${MACRO}" | grep -q '\W'; then - RPMOPTS="${RPMOPTS} --define \"${MACRO}\"" - else - VALUE="${1}" - shift - RPMOPTS="${RPMOPTS} --define \"${MACRO} ${VALUE}\"" - fi - ;; - --short-circuit) - RPMBUILDOPTS="${RPMBUILDOPTS} --short-circuit" - shift - ;; - --show-bconds | -show-bconds | -print-bconds | --print-bconds | -display-bconds | --display-bconds ) - COMMAND="show_bconds" - shift - ;; - --show-bcond-args) - COMMAND="show_bcond_args" - shift - ;; - --nodeps) - shift - RPMOPTS="${RPMOPTS} --nodeps" - ;; - -debug) - RPMBUILDOPTS="${RPMBUILDOPTS} -debug"; shift - ;; - -* ) - Exit_error err_invalid_cmdline "$1" - ;; - * ) - SPECFILE="${1}" - # check if specname was passed as specname:cvstag - if [ "${SPECFILE##*:}" != "${SPECFILE}" ]; then - CVSTAG="${SPECFILE##*:}" - SPECFILE="${SPECFILE%%:*}" - fi - ASSUMED_NAME="$(basename ${SPECFILE%%.spec})" - shift - esac -done - -if [ -f CVS/Entries ] && [ -z "$CVSTAG" ]; then - CVSTAG=$(awk -vSPECFILE="${SPECFILE%.spec}.spec" -F/ '$2 == SPECFILE && $6 ~ /^T/{print substr($6, 2)}' CVS/Entries) - if [ "$CVSTAG" ]; then - echo >&2 "builder: Stick tag $CVSTAG active. Use -r TAGNAME to override." - fi -elif [ "$CVSTAG" = "HEAD" ]; then - # assume -r HEAD is same as -A - CVSTAG="" -fi - -if [ -n "$DEBUG" ]; then - set -x - set -v -fi - -if [ -n "$TARGET" ]; then - case "$RPMBUILD" in - "rpmbuild") - TARGET_SWITCH="--target $TARGET" ;; - "rpm") - TARGET_SWITCH="--target=$TARGET" ;; - esac -fi - -if [ "$SCHEDTOOL" != "no" ]; then - NICE_COMMAND="$SCHEDTOOL" -else - NICE_COMMAND="nice -n ${DEF_NICE_LEVEL}" -fi - -update_shell_title "$COMMAND" -case "$COMMAND" in - "show_bconds") - init_builder - if [ -n "$SPECFILE" ]; then - get_spec > /dev/null - parse_spec - set_bconds_values - display_bconds - fi - ;; - "show_bcond_args") - init_builder - if [ -n "$SPECFILE" ]; then - get_spec > /dev/null - parse_spec - set_bconds_values - echo "$BCOND" - fi - ;; - "build" | "build-binary" | "build-source" | "build-prep" | "build-build" | "build-install" | "build-list") - init_builder - if [ -n "$SPECFILE" ]; then - get_spec - parse_spec - set_bconds_values - display_bconds - display_branches - if [ "$COMMAND" != "build-source" ]; then - check_buildarch - fi - fetch_build_requires - if [ "$INTEGER_RELEASE" = "yes" ]; then - echo "Checking release $PACKAGE_RELEASE..." - if echo $PACKAGE_RELEASE | grep -q '^[^.]*\.[^.]*$' 2>/dev/null ; then - Exit_error err_fract_rel "$PACKAGE_RELEASE" - fi - fi - - # ./builder -bs test.spec -r AC-branch -Tp auto-ac- -tt - if [ -n "$TEST_TAG" ]; then - # - do not allow utf8 encoded specs on AC-branch - if [ "$CVSTAG" = "AC-branch-disabled" ]; then - local t - t=$(grep '^Summary(.*\.UTF-8):' $SPECFILE) - if [ "$t" ]; then - Exit_error err_acl_deny "UTF-8 .specs not allowed on $CVSTAG" - fi - fi - - local TAGVER=`make_tagver` - echo "Searching for tag $TAGVER..." - TAGREL=$(cvs status -v $SPECFILE | grep -E "^[[:space:]]*${TAGVER}[[[:space:]]" | sed -e 's#.*(revision: ##g' -e 's#).*##g') - if [ -n "$TAGREL" ]; then - Exit_error err_tag_exists "$TAGVER" "$TAGREL" - fi - - # - do not allow to build from HEAD when XX-branch exists - TREE_PREFIX=$(echo "$TAG_PREFIX" | sed -e 's#^auto-\([a-zA-Z]\+\)-.*#\1#g') - if [ "$TREE_PREFIX" != "$TAG_PREFIX" ]; then - TAG_BRANCH="${TREE_PREFIX}-branch" - TAG_STATUS=$(cvs status -v $SPECFILE | grep -Ei "${TAG_BRANCH}.+(branch: [0-9.]+)") - if [ -n "$TAG_STATUS" -a "$CVSTAG" = "HEAD" ]; then - Exit_error err_branch_exists "$TAG_STATUS" - fi - fi - - fi - - if [ -n "$NOSOURCE0" ] ; then - SOURCES=`echo $SOURCES | xargs | sed -e 's/[^ ]*//'` - fi - get_files $SOURCES $PATCHES - check_md5 $SOURCES - build_package - if [ "$UPDATE_POLDEK_INDEXES" = "yes" -a "$COMMAND" != "build-prep" ]; then - run_poldek --sdir="${POLDEK_INDEX_DIR}" --mkidxz - fi - remove_build_requires - else - Exit_error err_no_spec_in_cmdl - fi - ;; - "branch" ) - init_builder - if [ -n "$SPECFILE" ]; then - get_spec - parse_spec - # don't fetch sources from remote locations - new_SOURCES="" - for file in $SOURCES; do - [ -n "`src_md5 $file`" ] && continue - new_SOURCES="$new_SOURCES $file" - done - SOURCES="$new_SOURCES" - get_files $SOURCES $PATCHES - check_md5 $SOURCES - branch_files $TAG $SOURCES $PATCHES $ICONS - else - Exit_error err_no_spec_in_cmdl - fi - ;; - "get" ) - init_builder - if [ -n "$SPECFILE" ]; then - get_spec - parse_spec - - if [ -n "$NOSOURCE0" ] ; then - SOURCES=`echo $SOURCES | xargs | sed -e 's/[^ ]*//'` - fi - get_files $SOURCES $PATCHES - check_md5 $SOURCES - else - Exit_error err_no_spec_in_cmdl - fi - ;; - "update_md5" ) - init_builder - if [ -n "$SPECFILE" ]; then - get_spec - parse_spec - - if [ -n "$NOSOURCE0" ] ; then - SOURCES=`echo $SOURCES | xargs | sed -e 's/[^ ]*//'` - fi - update_md5 $SOURCES - else - Exit_error err_no_spec_in_cmdl - fi - ;; - "tag" ) - NOURLS=1 - NODIST="yes" - init_builder - if [ -n "$SPECFILE" ]; then - get_spec - parse_spec - - # don't fetch sources from remote locations - new_SOURCES="" - for file in $SOURCES; do - [ -n "`src_md5 $file`" ] && continue - new_SOURCES="$new_SOURCES $file" - done - SOURCES="$new_SOURCES" - get_files $SOURCES $PATCHES - check_md5 $SOURCES - tag_files $SOURCES $PATCHES $ICONS - else - Exit_error err_no_spec_in_cmdl - fi - ;; - "mr-proper" ) - $RPM --clean --rmsource --rmspec --force --nodeps $SPECFILE - ;; - "list-sources-files" ) - init_builder - NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - for SAP in $SOURCES $PATCHES; do - echo $SAP | awk '{gsub(/.*\//,"") ; print}' - done - ;; - "list-sources-urls" ) - init_builder - NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - SAPS="$SOURCES $PATCHES" - for SAP in $SAPS ; do - echo $SAP - done - ;; - "list-sources-local-paths" ) - init_builder - NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - for SAP in $SOURCES $PATCHES; do - echo $SOURCE_DIR/$(echo $SAP | awk '{gsub(/.*\//,"") ; print }') - done - ;; - "list-sources-distfiles-paths" ) - init_builder - NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - for SAP in $SOURCES $PATCHES; do - if [ -n "$(src_md5 "$SAP")" ]; then - distfiles_path "$SAP" - fi - done - ;; - "list-sources-distfiles" ) - init_builder - NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - for SAP in $SOURCES $PATCHES; do - if [ -n "$(src_md5 "$SAP")" ]; then - distfiles_url "$SAP" - fi - done - ;; - "list-sources-cvs" ) - init_builder -# NOCVSSPEC="yes" - DONT_PRINT_REVISION="yes" - get_spec - parse_spec - for SAP in $SOURCES $PATCHES; do - if [ -z "$(src_md5 "$SAP")" ]; then - echo $SAP | awk '{gsub(/.*\//,"") ; print}' - fi - done - ;; - "init_rpm_dir") - init_rpm_dir - ;; - "usage" ) - usage - ;; - "short-version" ) - echo "$VERSION" - ;; - "version" ) - echo "$VERSIONSTRING" - ;; -esac -if [ -f "`pwd`/.${SPECFILE}_INSTALLED_PACKAGES" -a "$REMOVE_BUILD_REQUIRES" != "" ]; then - rm "`pwd`/.${SPECFILE}_INSTALLED_PACKAGES" -fi -cd "$__PWD" - -# vi:syntax=sh:ts=4:sw=4:noet diff --git a/db-rpm-robustness.patch b/db-rpm-robustness.patch deleted file mode 100644 index 1ff03f6..0000000 --- a/db-rpm-robustness.patch +++ /dev/null @@ -1,47 +0,0 @@ -; http://rpm5.org/cvs/chngview?cn=6633 -Index: db/mutex/mut_pthread.c -RCS File: /v/rpm/cvs/db/mutex/mut_pthread.c,v -rcsdiff -q -kk '-r1.3.2.3' '-r1.3.2.4' -u '/v/rpm/cvs/db/mutex/mut_pthread.c,v' 2>/dev/null ---- db/mutex/mut_pthread.c 2006/10/01 22:31:46 1.3.2.3 -+++ db/mutex/mut_pthread.c 2006/12/02 16:57:37 1.3.2.4 -@@ -71,7 +71,13 @@ - pthread_mutexattr_t mutexattr, *mutexattrp = NULL; - - if (!LF_ISSET(DB_MUTEX_PROCESS_ONLY)) { -+#if defined(EOWNERDEAD) - RET_SET((pthread_mutexattr_init(&mutexattr)), ret); -+ if (ret == 0) { -+ RET_SET((pthread_mutexattr_setrobust_np( -+ &mutexattr, PTHREAD_MUTEX_ROBUST_NP)), ret); -+ } -+#endif - #ifndef HAVE_MUTEX_THREAD_ONLY - if (ret == 0) - RET_SET((pthread_mutexattr_setpshared( -@@ -196,6 +202,12 @@ - #endif - - RET_SET((pthread_mutex_lock(&mutexp->mutex)), ret); -+#if defined(EOWNERDEAD) -+ if (ret == EOWNERDEAD) { -+ RET_SET((pthread_mutex_consistent_np(&mutexp->mutex)), ret); -+ ret = 0; -+ } -+#endif - if (ret != 0) - goto err; - -@@ -306,6 +318,12 @@ - #endif - if (F_ISSET(mutexp, DB_MUTEX_SELF_BLOCK)) { - RET_SET((pthread_mutex_lock(&mutexp->mutex)), ret); -+#if defined(EOWNERDEAD) -+ if (ret == EOWNERDEAD) { -+ RET_SET((pthread_mutex_consistent_np(&mutexp->mutex)), ret); -+ ret = 0; -+ } -+#endif - if (ret != 0) - goto err; - - diff --git a/patch.4.5.20.1 b/patch.4.5.20.1 deleted file mode 100644 index 370ac3e..0000000 --- a/patch.4.5.20.1 +++ /dev/null @@ -1,37 +0,0 @@ -*** sequence/sequence.c.orig 27 Sep 2006 14:56:17 -0000 12.39 ---- sequence/sequence.c 26 Oct 2006 07:36:05 -0000 -*************** -*** 228,233 **** ---- 228,236 ---- - seq->seq_data.ulen = seq->seq_data.size = sizeof(seq->seq_record); - seq->seq_rp = &seq->seq_record; - -+ if ((ret = __dbt_usercopy(dbenv, keyp)) != 0) -+ goto err; -+ - memset(&seq->seq_key, 0, sizeof(DBT)); - if ((ret = __os_malloc(dbenv, keyp->size, &seq->seq_key.data)) != 0) - goto err; -*************** -*** 365,370 **** ---- 368,374 ---- - ret = t_ret; - - ENV_LEAVE(dbenv, ip); -+ __dbt_userfree(dbenv, keyp, NULL, NULL); - return (ret); - } - -*************** -*** 764,769 **** ---- 768,777 ---- - DBT *key; - { - SEQ_ILLEGAL_BEFORE_OPEN(seq, "DB_SEQUENCE->get_key"); -+ -+ if (F_ISSET(key, DB_DBT_USERCOPY)) -+ return (__db_retcopy(seq->seq_dbp->dbenv, key, -+ seq->seq_key.data, seq->seq_key.size, NULL, 0)); - - key->data = seq->seq_key.data; - key->size = key->ulen = seq->seq_key.size; diff --git a/patch.4.5.20.2 b/patch.4.5.20.2 deleted file mode 100644 index fe49c46..0000000 --- a/patch.4.5.20.2 +++ /dev/null @@ -1,66 +0,0 @@ -*** rep/rep_method.c.orig Fri Oct 20 08:34:06 2006 ---- rep/rep_method.c Fri Oct 27 12:09:04 2006 -*************** -*** 526,535 **** - * will allow the client to either perform recovery or - * simply join in. - */ -! if (announce) - (void)__rep_send_message(dbenv, - DB_EID_BROADCAST, REP_NEWCLIENT, NULL, dbt, 0, 0); -! else - (void)__rep_send_message(dbenv, - DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0); - } ---- 526,537 ---- - * will allow the client to either perform recovery or - * simply join in. - */ -! if (announce) { -! if ((ret = __dbt_usercopy(dbenv, dbt)) != 0) -! goto err; - (void)__rep_send_message(dbenv, - DB_EID_BROADCAST, REP_NEWCLIENT, NULL, dbt, 0, 0); -! } else - (void)__rep_send_message(dbenv, - DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0); - } -*************** -*** 553,558 **** ---- 555,561 ---- - } - if (pending_event != DB_EVENT_NO_SUCH_EVENT) - DB_EVENT(dbenv, pending_event, NULL); -+ __dbt_userfree(dbenv, dbt, NULL, NULL); - return (ret); - } - -*** rep/rep_record.c.orig Fri Oct 20 08:34:06 2006 ---- rep/rep_record.c Mon Nov 13 10:46:29 2006 -*************** -*** 163,168 **** ---- 163,176 ---- - return (EINVAL); - } - -+ if ((ret = __dbt_usercopy(dbenv, control)) != 0 || -+ (ret = __dbt_usercopy(dbenv, rec)) != 0) { -+ __dbt_userfree(dbenv, control, rec, NULL); -+ __db_errx(dbenv, -+ "DB_ENV->rep_process_message: error retrieving DBT contents"); -+ return ret; -+ } -+ - ret = 0; - db_rep = dbenv->rep_handle; - rep = db_rep->region; -*************** -*** 621,626 **** ---- 629,635 ---- - *ret_lsnp = rp->lsn; - ret = DB_REP_NOTPERM; - } -+ __dbt_userfree(dbenv, control, rec, NULL); - return (ret); - } - diff --git a/perl.prov b/perl.prov deleted file mode 100644 index a494480..0000000 --- a/perl.prov +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/perl -use strict; - -# perl.prov - find information about perl modules for RPM -# $Id$ - -# It's questionable if we should provide perl(Foo::Bar) for modules -# from outside @INC (possibly shipped with some applications). -# I think we should not, and provide them only for the perl.req script, -# while it scans files in that particular application. - - -# check if we are called directly -if ($0 =~ m#(?:^|/)perl.prov$#) { - my $prov = new RPM::PerlReq; - # process @ARGV or STDIN - foreach ( @ARGV ? @ARGV : <> ) { - chomp; - next if -l || !-f _; # skip non-files and symlinks - next if m#/usr/(?:share/doc|src)/#; # lot of false alarms; warning: we omit ^ here - next if !m#\.p[ml]$#; # we only care about *.pm and *.pl files - $prov->process_file($_); - } - $prov->print_result; -} - - -package RPM::PerlReq; -use Safe; - -sub new { - my $class = shift; - my $self = { - inc => [ - sort { length $b cmp length $a } grep m#^/#, - map { y#/#/#s; s#/$##; $_ } @INC - ], - provide => {}, - safe => Safe->new, - @_, - }; - bless $self, $class; -} - -# print out what we found -sub print_result { - my $self = shift; - for (sort keys %{ $self->{provide} }) { - print "perl($_)" - . (length $self->{provide}->{$_} ? " = $self->{provide}->{$_}" : '') - . "\n"; - } -} - -sub process_file { - my $self = shift; - my $file = shift; - my ( $package, $version ); - - # if the file lives under @INC, we can - # obtain the package name from it's path - for (@{ $self->{inc} }) { - if ($file =~ m#\Q$_\E/(.+)$#) { # we can't use ^ here - $package = $1; - - if ($package !~ s/\.pm$//) { # it's a *.pl - # $package =~ m#([^/]+)$#; - # $provide{$1} = ''; - return 1; - } - - $package =~ s#/#::#g; - last; - } - } - - # it can be a *.pl oustide @INC - return if /\.pl$/; - - local *FILE; - open FILE, $file or die "$0: cannot open file `$file': $!"; - - while () { - - # skip the documentation - next - if m/^=(?:head1|head2|pod|item|begin|for|over)\b/ - ... ( m/^=(?:cut|end)\b/ || $. == 1 ); - - # skip the data section - last if m/^__(?:DATA|END)__$/; - - # search for the package name - if ( - !defined $package - && ( my ($pack) = m/^\s*(?:\{\s*)?package\s+([_:a-zA-Z0-9]+?):*\s*;/ ) - && $1 ne 'main' - && match_the_path( $file, $1 ) - ) - { - $package = $pack; - } - - if ( !defined $version && /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ ) { - ( $version = $self->{safe}->reval($_) ) =~ s/^\s+|alpha|beta|\s+$//g; - if ( defined $version - && length $version - && $version =~ /[^\d\._abcdefgh]/ ) - { - warn "$0: weird version number in $file: [$version]\n"; - $version = ''; - } - } - } - - unless ( defined $package ) { - warn "$0: weird, cannot determine the package name for `$file'\n"; - return 0; - } - - $self->{provide}->{$package} = $version; - - close FILE or die "$0: cannot close file `$file': $!"; - - 1; -} - - -# Returns C if the package name matches the path, -# so you can use() it. C otherwise. -sub match_the_path { - my ( $file, $pack ) = @_; - $pack =~ s#::#/#g; - $file =~ /\Q$pack\E(?:\.pm)?$/; -} - - -1; - -# vim: ts=4 sw=4 noet noai nosi cin diff --git a/pldnotify.awk b/pldnotify.awk deleted file mode 100644 index b37ef59..0000000 --- a/pldnotify.awk +++ /dev/null @@ -1,413 +0,0 @@ -#!/bin/awk -f -# $Revision$, $Date$ -# TODO: "SourceXDownload" support (use given URLs if present instead of cut-down SourceX URLs) - -function fixedsub(s1,s2,t, ind) { -# substitutes fixed strings (not regexps) - if (ind = index(t,s1)) { - t = substr(t, 1, ind-1) s2 substr(t, ind+length(s1)) - } - return t -} - -function ispre(s) { - if ((s~"pre")||(s~"PRE")||(s~"beta")||(s~"BETA")||(s~"alpha")||(s~"ALPHA")||(s~"rc")||(s~"RC")) { - if (DEBUG) print "pre-version" - return 1 - } else { - return 0 - } -} - -function compare_ver(v1,v2) { -# compares version numbers - while (match(v1,/[a-zA-Z][0-9]|[0-9][a-zA-Z]/)) - v1=(substr(v1,1,RSTART) "." substr(v1,RSTART+RLENGTH-1)) - while (match(v2,/[a-zA-Z][0-9]|[0-9][a-zA-Z]/)) - v2=(substr(v2,1,RSTART) "." substr(v2,RSTART+RLENGTH-1)) - sub("^0*","",v1) - sub("^0*","",v2) - gsub("\.0*",".",v1) - gsub("\.0*",".",v2) - if (DEBUG) print "v1 == " v1 - if (DEBUG) print "v2 == " v2 - count=split(v1,v1a,"\.") - count2=split(v2,v2a,"\.") - - if (countlength(v1a[i])) - return 1 - else if (v2a[i]>v1a[i]) - return 1 - else if (length(v1a[i])>length(v2a[i])) - return 0 - else if (v1a[i]>v2a[i]) - return 0 - } else if ((v1a[i]~/[A-Za-z]/)&&(v2a[i]~/[A-Za-z]/)) { - if (v2a[i]>v1a[i]) - return 1 - else if (v1a[i]>v2a[i]) - return 0 - } else if (ispre(v1a[i]) == 1) - return 1 - else - return 0 - } - if ((count2==mincount)&&(count!=count2)) { - for (i=count2+1; i<=count; i++) - if (ispre(v1a[i]) == 1) - return 1 - return 0 - } else if (count!=count2) { - for (i=count+1; i<=count2; i++) - if (ispre(v2a[i]) == 1) - return 0 - return 1 - } - return 0 -} - -function compare_ver_dec(v1,v2) { -# compares version numbers as decimal floats - while (match(v1,/[0-9][a-zA-Z]/)) - v1=(substr(v1,1,RSTART) "." substr(v1,RSTART+RLENGTH-1)) - while (match(v2,/[0-9][a-zA-Z]/)) - v2=(substr(v2,1,RSTART) "." substr(v2,RSTART+RLENGTH-1)) - sub("^0*","",v1) - sub("^0*","",v2) - if (DEBUG) print "v1 == " v1 - if (DEBUG) print "v2 == " v2 - count=split(v1,v1a,"\.") - count2=split(v2,v2a,"\.") - - if (count0+("." v1a[i])) - return 1 - else if (0+("." v1a[i])>0+("." v2a[i])) - return 0 - } else { - if (length(v2a[i])>length(v1a[i])) - return 1 - else if (v2a[i]>v1a[i]) - return 1 - else if (length(v1a[i])>length(v2a[i])) - return 0 - else if (v1a[i]>v2a[i]) - return 0 - } - } else if ((v1a[i]~/[A-Za-z]/)&&(v2a[i]~/[A-Za-z]/)) { - if (v2a[i]>v1a[i]) - return 1 - else if (v1a[i]>v2a[i]) - return 0 - } else if (ispre(v1a[i]) == 1) - return 1 - else - return 0 - } - if ((count2==mincount)&&(count!=count2)) { - for (i=count2+1; i<=count; i++) - if (ispre(v1a[i]) == 1) - return 1 - return 0 - } else if (count!=count2) { - for (i=count+1; i<=count2; i++) - if (ispre(v2a[i]) == 1) - return 0 - return 1 - } - return 0 -} - -function get_links(url, errno,link,oneline,retval,odp,wholeodp,lowerodp,tmpfile) { -# get all tags from specified URL - "mktemp /tmp/XXXXXX" | getline tmpfile - close("mktemp /tmp/XXXXXX") - - if (url ~ /^http:\/\/(download|dl).(sf|sourceforge).net\//) { - gsub("^http://(download|dl).(sf|sourceforge).net/", "", url) - url = "http://prdownloads.sourceforge.net/" substr(url, 1, 1) "/" substr(url, 1, 2) "/" url - if (DEBUG) print "sf url, mungled url to: " url - } - - if (DEBUG) print "Retrieving: " url - errno=system("wget -O - \"" url "\" -t 3 -T 300 --passive-ftp > " tmpfile " 2>/dev/null" ) - - if (errno==0) { - while (getline oneline < tmpfile) - wholeodp=(wholeodp " " oneline) - if ( DEBUG ) print "Response: " wholeodp - } - - close(tmpfile) - system("rm -f " tmpfile) - urldir=url; - sub(/[^\/]+$/,"",urldir) - - if ( errno==0) { - while (match(wholeodp, /<([aA]|[fF][rR][aA][mM][eE])[ \t][^>]*>/) > 0) { - odp=substr(wholeodp,RSTART,RLENGTH); - wholeodp=substr(wholeodp,RSTART+RLENGTH); - - lowerodp=tolower(odp); - if (lowerodp ~ /: " newurl - } - retval=(retval " " get_links(newurl)) - } else if (lowerodp ~ /href=[ \t]*"[^"]*"/) { - sub(/[hH][rR][eE][fF]=[ \t]*"/,"href=\"",odp) - match(odp,/href="[^"]*"/) - link=substr(odp,RSTART,RLENGTH) - odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH) - link=substr(link,7,length(link)-7) - retval=(retval " " link) - if (DEBUG) print "href(\"\"): " link - } else if (lowerodp ~ /href=[ \t]*'[^']*'/) { - sub(/[hH][rR][eE][fF]=[ \t]*'/,"href='",odp) - match(odp,/href='[^']*'/) - link=substr(odp,RSTART,RLENGTH) - odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH) - link=substr(link,7,length(link)-7) - retval=(retval " " link) - if (DEBUG) print "href(''): " link - } else if (lowerodp ~ /href=[ \t]*[^ \t>]*/) { - sub(/[hH][rR][eE][fF]=[ \t]*/,"href=",odp) - match(odp,/href=[^ \t>]*/) - link=substr(odp,RSTART,RLENGTH) - odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH) - link=substr(link,6,length(link)-5) - retval=(retval " " link) - if (DEBUG) print "href(): " link - } else { - # but not href - skip - if (DEBUG) print "skipping without href: " odp - } - } - } else { - retval=("WGET ERROR: " errno) - } - - - if (DEBUG) print "Returning: " retval - return retval -} - -function subst_defines(var,defs) { -# substitute all possible RPM macros - while ((var ~ /%{.*}/) || (var ~ /%[A-Za-z0-9_]+/)) { - oldvar=var - for (j in defs) { - gsub("%{" j "}", defs[j], var) - gsub("%" j , defs[j], var) - } - if (var==oldvar) { - if ( DEBUG ) for (i in defs) print i " == " defs[i] - return var - } - } - return var -} - -function find_mirror(url) { - - while (succ = (getline line < "mirrors")) { - if (succ==-1) { return url } - nf=split(line,fields,"|") - if (nf>1){ - origin=fields[1] - mirror=fields[2] - mname=fields[3] - prefix=substr(url,1,length(origin)) - if (prefix==origin){ - if ( DEBUG ) print "Mirror fount at " mname - close("mirrors") - return mirror substr(url,length(origin)+1) - } - } - } - - return url -} - -function process_source(number,lurl,name,version) { -# fetches file list, and compares version numbers - if ( DEBUG ) print "Processing " lurl - - if ( index(lurl,version)==0 ) { - if (DEBUG) print "There is no version number." - return 0 - } - - sub("://",":",lurl) - sub("/",":/",lurl) - gsub("[^/]*$",":&",lurl) - split(lurl,url,":") - acc=url[1] - host=url[2] - dir=url[3] - filename=url[4] - - if (index(dir,version)) { - dir=substr(dir,1,index(dir,version)-1) - sub("[^/]*$","",dir) - sub("(\.tar\.(bz|bz2|gz)|zip)$","",filename) - if ( DEBUG ) print "Will check a directory: " dir - if ( DEBUG ) print "and a file: " filename - } - - filenameexp=filename - gsub("\+","\\+",filenameexp) - sub(version,"[A-Za-z0-9.]+",filenameexp) - gsub("\.","\\.",filenameexp) - if ( DEBUG ) print "Expression: " filenameexp - match(filename,version) - prever=substr(filename,1,RSTART-1) - postver=substr(filename,RSTART+RLENGTH) - if ( DEBUG ) print "Before number: " prever - if ( DEBUG ) print "and after: " postver - newurl=find_mirror(acc "://" host dir) - #print acc "://" host dir - #newurl=url[1]"://"url[2]url[3]url[4] - #newurl=acc "://" host dir filename - if ( DEBUG ) print "Looking at " newurl - - references=0 - finished=0 - oldversion=version - odp=get_links(newurl) - if( odp ~ "ERROR: ") { - print name "(" number ") " odp - } else { - if (DEBUG) print "WebPage downloaded" - c=split(odp,linki) - for (nr=1; nr<=c; nr++) { - addr=linki[nr] - if (DEBUG) print "Found link: " addr - if ((addr ~ filenameexp) && !(addr ~ "[-_.0-9A-Za-z~]" filenameexp)) { - match(addr,filenameexp) - newfilename=substr(addr,RSTART,RLENGTH) - if (DEBUG) print "Hypothetical new: " newfilename - newfilename=fixedsub(prever,"",newfilename) - newfilename=fixedsub(postver,"",newfilename) - if (DEBUG) print "Version: " newfilename - if (newfilename ~ /\.(pkg|bin|binary|built)$/) continue - if (NUMERIC) { - if ( compare_ver_dec(version, newfilename)==1 ) { - if (DEBUG) print "Yes, there is new one" - version=newfilename - finished=1 - } - } else if ( compare_ver(version, newfilename)==1 ) { - if (DEBUG) print "Yes, there is new one" - version=newfilename - finished=1 - } - } - } - if (finished==0) - print name "(" number ") seems ok: " oldversion - else - print name "(" number ") [OLD] " oldversion " [NEW] " version - } -} - -# upgrade check for pear package using PEAR CLI -function pear_upgrade(name, ver) { - pname = name; - sub(/^php-pear-/, "", pname); - - pearcmd = "pear remote-info " pname " | awk '/^Latest/{print $NF}'" - if (DEBUG) { - print "pearcmd: " pearcmd - } - pearcmd | getline nver - close(pearcmd) - - if (compare_ver(ver, nver)) { - print name " [OLD] " ver " [NEW] " nver - } else { - print name " seems ok: " ver - } - - return -} - -function process_data(name,ver,rel,src) { - if (name ~ /^php-pear-/) { - return pear_upgrade(name, ver); - } - -# this function checks if substitutions were valid, and if true: -# processes each URL and tries to get current file list - for (i in src) { - if ( src[i] !~ /%{.*}/ && src[i] !~ /%[A-Za-z0-9_]/ ) { - if ( DEBUG ) print "Source: " src[i] - process_source(i,src[i],name,ver) - } else { - print FNAME ":" i ": impossible substitution: " src[i] - } - } -} - -BEGIN { - # if U want to use DEBUG, run script with "-v DEBUG=1" - # or uncomment the line below - # DEBUG = 1 - - errno=system("wget --help > /dev/null 2>&1") - if (errno) { - print "No wget installed!" - exit 1 - } - if (ARGC>=3 && ARGV[2]=="-n") { - NUMERIC=1 - for (i=3; iid = ME(); - ret = pthread_mutex_init(&sq->mutex, NULL); -- ret = pthread_cond_init(&sq->cond, NULL); - insque(elem, (prev != NULL ? prev : rpmsqQueue)); - ret = sigrelse(SIGCHLD); - } -@@ -240,8 +239,11 @@ - ret = sighold (SIGCHLD); - if (ret == 0) { - remque(elem); -- ret = pthread_cond_destroy(&sq->cond); -- ret = pthread_mutex_destroy(&sq->mutex); -+ -+ /* Unlock the mutex and then destroy it */ -+ if((ret = pthread_mutex_unlock(&sq->mutex)) == 0) -+ ret = pthread_mutex_destroy(&sq->mutex); -+ - sq->id = NULL; - /*@-bounds@*/ - if (sq->pipes[1]) ret = close(sq->pipes[1]); -@@ -315,11 +317,20 @@ - sq != NULL && sq != rpmsqQueue; - sq = sq->q_forw) - { -+ int ret; -+ - if (sq->child != reaped) - /*@innercontinue@*/ continue; - sq->reaped = reaped; - sq->status = status; -- (void) pthread_cond_signal(&sq->cond); -+ -+ /* Unlock the mutex. The waiter will then be able to -+ * aquire the lock. -+ * -+ * XXX: jbj, wtd, if this fails? -+ */ -+ ret = pthread_mutex_unlock(&sq->mutex); -+ - /*@innerbreak@*/ break; - } - } -@@ -391,6 +402,7 @@ - { - pid_t pid; - int xx; -+ int nothreads = 0; /* XXX: Shouldn't this be a global? */ - - if (sq->reaper) { - xx = rpmsqInsert(sq, NULL); -@@ -405,6 +417,24 @@ - - xx = sighold(SIGCHLD); - -+ /* -+ * Initialize the cond var mutex. We have to aquire the lock we -+ * use for the condition before we fork. Otherwise it is possible for -+ * the child to exit, we get sigchild and the sig handler to send -+ * the condition signal before we are waiting on the condition. -+ */ -+ if (!nothreads) { -+ if(pthread_mutex_lock(&sq->mutex)) { -+ /* Yack we did not get the lock, lets just give up */ -+/*@-bounds@*/ -+ xx = close(sq->pipes[0]); -+ xx = close(sq->pipes[1]); -+ sq->pipes[0] = sq->pipes[1] = -1; -+/*@=bounds@*/ -+ goto out; -+ } -+ } -+ - pid = fork(); - if (pid < (pid_t) 0) { /* fork failed. */ - /*@-bounds@*/ -@@ -462,10 +492,6 @@ - /* Protect sq->reaped from handler changes. */ - ret = sighold(SIGCHLD); - -- /* Initialize the cond var mutex. */ -- if (!nothreads) -- ret = pthread_mutex_lock(&sq->mutex); -- - /* Start the child, linux often runs child before parent. */ - /*@-bounds@*/ - if (sq->pipes[0] >= 0) -@@ -486,7 +512,13 @@ - ret = sigpause(SIGCHLD); - else { - xx = sigrelse(SIGCHLD); -- ret = pthread_cond_wait(&sq->cond, &sq->mutex); -+ -+ /* -+ * We start before the fork with this mutex locked; -+ * The only one that unlocks this the signal handler. -+ * So if we get the lock the child has been reaped. -+ */ -+ ret = pthread_mutex_lock(&sq->mutex); - xx = sighold(SIGCHLD); - } - } -@@ -495,9 +527,6 @@ - /* Accumulate stopwatch time spent waiting, potential performance gain. */ - sq->ms_scriptlets += rpmswExit(&sq->op, -1)/1000; - -- /* Tear down cond var mutex, our child has been reaped. */ -- if (!nothreads) -- xx = pthread_mutex_unlock(&sq->mutex); - xx = sigrelse(SIGCHLD); - - #ifdef _RPMSQ_DEBUG diff --git a/rpm-compress-doc b/rpm-compress-doc deleted file mode 100644 index 3c5ff93..0000000 --- a/rpm-compress-doc +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# -# Compress documentation files found in $DOCDIR. Omit some files we don't -# want to get compressed. -# -# /etc/rpm/noautocompressdoc and --noautocompressdoc= option can contain -# whitespace delimated list of patters to omit. -# - -#set -x - -COMPRESS_CMD="gzip -9nf" -EXCLUDE_SUFFIXES="htm html jpg jpeg png gif pdf css dia js abw HTM JPG PNG GIF PDF CSS JS" -EXCLUDE_MASKS= -RECOMPRESS_BZIP2=yes - -nocompressdoc='' -while [ $# -gt 0 ]; do - case "$1" in - --noautocompressdoc=*) - EXCLUDE_MASKS=`echo "${1#--noautocompressdoc=}" | sed -e 's/^ *//;s/ *$//;s/ \+/|/g'` - esac - shift -done - -if [ -r /etc/rpm/noautocompressdoc ]; then - exclude=$(cat /etc/rpm/noautocompressdoc | grep -v '^#' | xargs echo | sed -e 's/^ *//;s/ *$//;s/ \+/|/g') - if [ -n "${exclude}" ]; then - if [ -n "${EXCLUDE_MASKS}" ]; then - EXCLUDE_MASKS="${EXCLUDE_MASKS}|${exclude}" - else - EXCLUDE_MASKS="${exclude}" - fi - fi -fi - -if [ "$DOCDIR" = "" ] ; then - echo '$DOCDIR not set; exiting.' - exit 1 -fi - -cd $DOCDIR - -echo "Compressing documentation in $DOCDIR..." - -if test "$EXCLUDE_MASKS" ; then - echo "Excluding pattern '$EXCLUDE_MASKS'" -fi - -FIND_CMD="find . -type f " -for SUF in $EXCLUDE_SUFFIXES ; do - FIND_CMD="$FIND_CMD -a -not -name '*.$SUF'" -done - -eval $FIND_CMD | while read FILENAME ; do - if test -n "$EXCLUDE_MASKS" ; then - if eval "case \$(basename \"$FILENAME\") in - $EXCLUDE_MASKS ) true ;; - * ) false ;; - esac" ; then - continue - fi - fi - case "$FILENAME" in - *.gz | *.Z) - gzip -d "$FILENAME" - FILENAME=$(echo "$FILENAME" | sed -e 's/\.gz$//; s/\.Z$//') - ;; - *.bz2) - if [ "$RECOMPRESS_BZIP2" = yes ] ; then - bzip2 -d "$FILENAME" - FILENAME=$(echo "$FILENAME" | sed -e 's/\.bz2$//') - else - continue - fi - ;; - esac - - $COMPRESS_CMD "$FILENAME" - - echo -n "$FILENAME " -done - -echo -echo "Documentation compressed." diff --git a/rpm-compress-doc.patch b/rpm-compress-doc.patch deleted file mode 100644 index dacf20d..0000000 --- a/rpm-compress-doc.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- 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); -+ } - } - } - -diff -ur rpm-4.0.4/macros.in rpm-4.0.4-/macros.in ---- rpm-4.0.4/macros.in Fri May 17 11:18:12 2002 -+++ rpm-4.0.4-/macros.in Fri May 17 11:17:44 2002 -@@ -1208,6 +1208,9 @@ - #%__spec_triggerin_pre %{nil} - #%__spec_triggerin_post %{nil} - -+# Executed at after copying %doc to DOCDIR, with $DOCDIR set -+%__compress_doc @prefix@/lib/rpm/compress-doc%{?_noautocompressdoc: --noautocompressdoc='%{_noautocompressdoc}'} -+ - #============================================================================== - # ---- configure macros. - # Macro(s) slavishly copied from autoconf's config.status. - diff --git a/rpm-cpuinfo.patch b/rpm-cpuinfo.patch deleted file mode 100644 index 2f675d0..0000000 --- a/rpm-cpuinfo.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm/lib/depends.c 2007-02-13 20:39:00.386623000 +0100 -+++ rpm/lib/depends.c 2007-02-19 19:48:40.490623000 +0100 -@@ -507,6 +507,10 @@ - goto unsatisfied; - } - -+ /* Ignore cpuinfo() and uname() deps */ -+ if (!strncmp(Name, "cpuinfo(", sizeof("cpuinfo(")-1) || !strncmp(Name, "uname(", sizeof("uname(")-1)) -+ goto exit; -+ - /* Search added packages for the dependency. */ - if (rpmalSatisfiesDepend(ts->addedPackages, dep, NULL) != NULL) { - /* diff --git a/rpm-debuginfo.patch b/rpm-debuginfo.patch deleted file mode 100644 index 6def508..0000000 --- a/rpm-debuginfo.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -ur rpm.org/macros.in rpm/macros.in ---- rpm.org/macros.in 2007-10-02 20:31:56.905775000 +0200 -+++ rpm/macros.in 2007-10-02 20:35:30.122401828 +0200 -@@ -195,15 +195,20 @@ - %debug_package \ - %ifnarch noarch\ - %global __debug_package 1\ --%package debug\ -+%package debuginfo\ - Summary: Debug information for package %{name}\ -+Summary(pl): Informacje dla debuggera dla pakietu %{name}\ - Group: Development/Debug\ - 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_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} -@@ -1123,7 +1128,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} -diff -ur rpm.org/scripts/find-debuginfo.sh rpm/scripts/find-debuginfo.sh ---- rpm.org/scripts/find-debuginfo.sh 2007-09-06 09:36:38.000000000 +0200 -+++ rpm/scripts/find-debuginfo.sh 2007-10-02 20:38:57.745519759 +0200 -@@ -92,7 +92,8 @@ - $strip_g && case "$(file -bi "$2")" in - application/x-sharedlib,*) g=-g ;; - esac -- eu-strip --remove-comment $g -f "$1" "$2" || exit -+ objcopy --only-keep-debug --remove-section .comment "$2" "$1" || exit -+ objcopy --add-gnu-debuglink="$1" "$2" || exit - } - - # Make a relative symlink to $1 called $3$2 diff --git a/rpm-dontneedutils.patch b/rpm-dontneedutils.patch deleted file mode 100644 index c3decbb..0000000 --- a/rpm-dontneedutils.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- rpm-4.3/rpmpopt.in.orig 2003-06-08 21:14:18.000000000 +0200 -+++ rpm-4.3/rpmpopt.in 2003-06-08 21:40:01.000000000 +0200 -@@ -185,22 +185,22 @@ - #rpm exec --target rpmb --target - #rpm exec --short-circuit rpmb --short-circuit - --rpm exec --initdb rpmd --initdb --rpm exec --rebuilddb rpmd --rebuilddb --rpm exec --verifydb rpmd --verifydb -- --rpm exec --addsign rpmk --addsign --rpm exec -K rpmk -K --rpm exec --checksig rpmk --checksig --rpm exec --import rpmk --import --rpm exec --resign rpmk --resign -- --rpm exec -q rpmq -q --rpm exec --query rpmq --query --rpm exec --querytags rpmq --querytags --rpm exec -V rpmv -V --rpm exec -y rpmv -y --rpm exec --verify rpmv --verify -+#rpm exec --initdb rpmd --initdb -+#rpm exec --rebuilddb rpmd --rebuilddb -+#rpm exec --verifydb rpmd --verifydb -+ -+#rpm exec --addsign rpmk --addsign -+#rpm exec -K rpmk -K -+#rpm exec --checksig rpmk --checksig -+#rpm exec --import rpmk --import -+#rpm exec --resign rpmk --resign -+ -+#rpm exec -q rpmq -q -+#rpm exec --query rpmq --query -+#rpm exec --querytags rpmq --querytags -+#rpm exec -V rpmv -V -+#rpm exec -y rpmv -y -+#rpm exec --verify rpmv --verify - - #rpm exec -i rpmi -i - #rpm exec --install rpmi --install diff --git a/rpm-doxygen_hack.patch b/rpm-doxygen_hack.patch deleted file mode 100644 index 2b1244c..0000000 --- a/rpm-doxygen_hack.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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,7 +504,6 @@ - @top_srcdir@/doc/manual/spec \ - @top_srcdir@/doc/manual/triggers \ - @top_srcdir@/doc/manual/tsort \ -- @top_srcdir@/file/src/tar.h \ - @top_srcdir@/lib/cpio.c \ - @top_srcdir@/lib/cpio.h \ - @top_srcdir@/lib/depends.c \ diff --git a/rpm-epoch0.patch b/rpm-epoch0.patch deleted file mode 100644 index 59b9f94..0000000 --- a/rpm-epoch0.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- 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, - (uint32_t *)copyTagsDuringParse); - -+ if (headerGetEntry(pkg->header, RPMTAG_EPOCH, NULL, NULL, NULL) == 0) { -+ int num = 0; -+ headerAddEntry(pkg->header, RPMTAG_EPOCH, RPM_UINT32_TYPE, &num, 1); -+ addMacro(spec->macros, "epoch", NULL, "0", RMIL_SPEC); -+ } -+ - if (checkForRequired(pkg->header, NVR) != RPMRC_OK) - return RPMRC_FAIL; - diff --git a/rpm-error-fatal.patch b/rpm-error-fatal.patch deleted file mode 100644 index ec0792f..0000000 --- a/rpm-error-fatal.patch +++ /dev/null @@ -1,15 +0,0 @@ -+--------------------------------------------------------------------------- -| Make sure that an %{error:} macro really stops further -| processing. Else it would be nothing more than a %{warn:}. -+--------------------------------------------------------------------------- ---- rpm-4.4.2/rpmio/macro.c~ 2007-03-07 18:50:42.754005171 +0200 -+++ rpm-4.4.2/rpmio/macro.c 2007-03-07 18:55:51.040958707 +0200 -@@ -1380,7 +1380,7 @@ - STREQ("error", f, fn)) { - int waserror = 0; - if (STREQ("error", f, fn)) -- waserror = 1; -+ waserror = 1, rc = 1; - if (g != NULL && g < ge) - doOutput(mb, waserror, g, gn); - else diff --git a/rpm-etc_dir.patch b/rpm-etc_dir.patch deleted file mode 100644 index d296f22..0000000 --- a/rpm-etc_dir.patch +++ /dev/null @@ -1,69 +0,0 @@ -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.4.8/po/pl.po.orig 2007-04-08 16:11:42.125435004 +0200 -+++ rpm-4.4.8/po/pl.po 2007-04-08 16:25:11.343549717 +0200 -@@ -3251,6 +3251,10 @@ - msgid "Cannot expand %s\n" - msgstr "Nie mo¿na rozwin±æ %s\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:1924 - #, c-format - msgid "Cannot read %s, HOME is too large.\n" diff --git a/rpm-find-spec-bcond b/rpm-find-spec-bcond deleted file mode 100644 index 200e1b4..0000000 --- a/rpm-find-spec-bcond +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -# Display bcond (_with_*, _without_*) macros from given spec -# $Id$ - -if [ "$#" = 0 ]; then - echo "Usage: $0 SPEC" - exit 1 -fi - -SPEC=$1 -if [ $SPEC = "--" ]; then - if [ "$#" -lt 2 ]; then - echo "Usage: rpm --bcond SPEC" - exit 1 - fi - SPEC=$2 -fi - -if [ ! -f $SPEC ]; then - echo "rpm: $SPEC: no such file" - exit 1 -fi - -bconds=`awk -F"\n" 'BEGIN { chlog=0 } - /^%changelog/ { chlog=1 } - /_with(out)?_[_a-zA-Z0-9]+/ && chlog == 0 { - match($0, /_with(out)?_[_a-zA-Z0-9]+/); - print substr($0, RSTART, RLENGTH) - } - /^%bcond_with/ && chlog == 0 { - match($0, /bcond_with(out)?[ \t]+[_a-zA-Z0-9]+/); - bcond = substr($0, RSTART +5 , RLENGTH -5); - gsub(/[ \t]+/,"_",bcond); - print bcond - }' $SPEC | sort -u` - -for c in $bconds; do - echo -n "$c" - - if ! echo `rpm --eval "%$c"` | grep $c >/dev/null; then - echo " (on)" - else - echo "" - fi -done - - -for bcond in $bconds; do - isset=`awk -F"\n" "BEGIN { val=0 } - /^%define[\t ]+$bcond/ { - if (match(\\$0, /$bcond[\t ]+0[\t ]*$/)) { - val = 0 - } else if (match(\\$0, /$bcond[\t ]+1[\t ]*$/)) { - val = 1 - } else { - print \"couldn't determine $bcond value from \", \\$0 - } - } END { print val }" $SPEC`; - - if [ x"$isset" = x"1" ]; then - echo "WARN: $bcond defined in spec"; - fi -done - diff --git a/rpm-gettext-in-header.patch b/rpm-gettext-in-header.patch deleted file mode 100644 index 9e3ff96..0000000 --- a/rpm-gettext-in-header.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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; - } - - /** diff --git a/rpm-groups-po.awk b/rpm-groups-po.awk deleted file mode 100644 index 40c3e14..0000000 --- a/rpm-groups-po.awk +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/awk -f - -BEGIN { - group = "NONE" -} - -/^[A-Z].*/ { - group = $0 -} - -/^[ \t]*\[.+\]:/ { - if(group != "NONE") { - locale = $1 - gsub(/[\[\]:]/,"",locale) - printf "msgid \"%s\"\n",group >> "po/"locale".po" - gsub(/^.*:[ \t]*/,"") - gsub(/[ \t]*$/,"") - printf "msgstr \"%s\"\n\n",$0 >> "po/"locale".po" - } -} diff --git a/rpm-hack-norpmlibdep.patch b/rpm-hack-norpmlibdep.patch deleted file mode 100644 index 05e8902..0000000 --- a/rpm-hack-norpmlibdep.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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"); - diff --git a/rpm-install-tree b/rpm-install-tree deleted file mode 100644 index 0232381..0000000 --- a/rpm-install-tree +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -install -d `rpm --eval "%{_rpmdir} %{_specdir} %{_sourcedir} %{_srcrpmdir} %{_builddir}"` diff --git a/rpm-java-requires b/rpm-java-requires index 40db41b..ceb480c 100644 --- a/rpm-java-requires +++ b/rpm-java-requires @@ -7,44 +7,96 @@ export PATH="/sbin:/usr/sbin:/bin:/usr/bin" +# Enable debug: JAVADEPS_DEBUG=true +: ${JAVADEPS_DEBUG=false} + +# save $- state, to enable in functions +debug=$- + javaclassversion() { - [ $# -gt 0 ] || return + set -$debug + local mode=$1; shift + [ $# -gt 0 ] || return 1 + $JAVADEPS_DEBUG && echo >&2 ">> javaclassversion($mode): $*" + + # process only requires + [ "$mode" = requires ] || return $ret - local ver - classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u) - [ "$classver" ] || return + local classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u) + if [ -z "$classver" ]; then + return 1 + fi + + local v for v in $classver; do echo "java(ClassDataVersion) >= $v" done + return 0 } javajarversion() { - local jar="$1" + set -$debug + local mode=$1; shift + local jar=$1 + local tmp ret=0 + $JAVADEPS_DEBUG && echo >&2 ">> javajarversion($mode): $jar" # check only files, symlinks could point outside buildroot - [ -f "$jar" -a ! -L "$jar" ] || return - -# echo >&2 "find java requires: ${jar#$RPM_BUILD_ROOT}" + [ -f "$jar" -a ! -L "$jar" ] || return $ret tmp=$(mktemp -d) unzip -q -d $tmp $jar >&2 - javaclassversion $(find $tmp -type f -name '*.class') + # workaround for .jar files with stupid permissions + chmod -R u+rwX $tmp + + # find .jar and .class files + find_javadeps $mode $(find $tmp -type f -regextype posix-extended -regex '^.+\.(class|jar)$') || ret=1 rm -rf $tmp + return $ret } -FILES=$(cat -) +find_javadeps() { + set -$debug + local mode=$1; shift + local ret=0 -find_requires() { - for file in $FILES; do + $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): $*" + for file in $@; do case $file in *.jar) - javajarversion "$file" + javajarversion $mode "$file" || ret=1 ;; *.class) - javaclassversion "$file" + javaclassversion $mode "$file" || { + echo >&2 "ERROR: Class version could not be extracted from $file" + ret=1 + } + ;; + *) + $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): no handle: $file" ;; esac done + return $ret } -find_requires | sort -u +ret=0 +# default mode to requires for backward compat +mode=requires +case $1 in +-P|--provides) + mode=provides + shift + ;; +-R|--requires) + mode=requires + shift + ;; +esac + +t=$(mktemp) +find_javadeps $mode $(cat -) > $t || ret=1 +sort -u $t +rm -f $t + +exit $ret diff --git a/rpm-javadeps.patch b/rpm-javadeps.patch deleted file mode 100644 index 833db5d..0000000 --- a/rpm-javadeps.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- rpm-4.4.9/lib/rpmfc.c.orig 2007-05-22 20:19:05.990914000 +0200 -+++ rpm-4.4.9/lib/rpmfc.c 2007-05-22 22:12:38.775152636 +0200 -@@ -875,7 +875,14 @@ - if (is_executable) - if (fc->findreq) - xx = rpmfcHelper(fc, 'R', "mono", fc->noautoreq, fc->noautoreq_c); -+ } else -+ if (fc->fcolor->vals[fc->ix] & RPMFC_JAVA) { -+ if (fc->findprov) -+ xx = rpmfcHelper(fc, 'P', "java", fc->noautoprov, fc->noautoprov_c); -+ if (fc->findreq) -+ xx = rpmfcHelper(fc, 'R', "java", fc->noautoreq, fc->noautoreq_c); - } -+ - return 0; - } - ---- rpm-4.4.9/macros.in.orig 2007-05-24 21:20:49.657284000 +0200 -+++ rpm-4.4.9/macros.in 2007-05-24 21:22:32.823163996 +0200 -@@ -1416,8 +1416,8 @@ - # - # 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 -+%__java_provides %{nil} -+%__java_requires %{nil} - - #------------------------------------------------------------------------ - # libtool(...) configuration. diff --git a/rpm-libtool-deps.patch b/rpm-libtool-deps.patch deleted file mode 100644 index ef20887..0000000 --- a/rpm-libtool-deps.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- rpm-4.4.8.org/scripts/libtooldeps.sh 2005-11-12 22:20:42.000000000 +0100 -+++ rpm-4.4.8/scripts/libtooldeps.sh 2006-11-26 20:06:49.254008750 +0100 -@@ -5,6 +5,8 @@ - exit 0 - } - -+pkgname="$3" -+ - case $1 in - -P|--provides) - shift -@@ -13,7 +15,8 @@ - do - case "$possible" in - *.la) -- if grep -iq '^# Generated by ltmain.sh' "$possible" 2> /dev/null ; then -+ possible="`readlink -f "$possible" 2> /dev/null || echo "$possible"`" -+ if file "$possible" | grep -iq 'libtool library file' 2> /dev/null ; then - possible="`echo ${possible} | sed -e s,${RPM_BUILD_ROOT}/,/,`" - echo "libtool($possible)" - fi -@@ -22,21 +25,28 @@ - done - ;; - -R|--requires) -- while read possible ; do -- case "$possible" in -- *.la) -- for dep in `grep '^dependency_libs='"$possible" 2> /dev/null | \ -- sed -e "s,^dependency_libs='\(.*\)',\1,g"` -- do -- case "$dep" in -- /*.la) -- echo "libtool($dep)" -+ case $pkgname in -+ *-devel) -+ while read possible ; do -+ case "$possible" in -+ *.la) -+ for dep in `grep '^dependency_libs=' "$possible" 2> /dev/null | \ -+ sed -e "s,^dependency_libs='\(.*\)',\1,g"` -+ do -+ case "$dep" in -+ /*.la) -+ dep="`readlink -f "$dep" 2> /dev/null || echo "$dep"`" -+ echo "libtool($dep)" -+ ;; -+ esac -+ done - ;; - esac - done -- ;; -- esac -- done -- ;; -+ ;; -+ *) -+ cat > /dev/null -+ ;; -+ esac - esac - exit 0 diff --git a/rpm-lzma-size_t.patch b/rpm-lzma-size_t.patch deleted file mode 100644 index 1f5a0fe..0000000 --- a/rpm-lzma-size_t.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 diff --git a/rpm-macros-amd64 b/rpm-macros-amd64 deleted file mode 100644 index 3e2f6e7..0000000 --- a/rpm-macros-amd64 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch x86_64 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=x86-64%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_x86_64: %{specflags_x86_64}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib64 -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib64 -%_libdir /usr/lib64 -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 2 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-athlon b/rpm-macros-athlon deleted file mode 100644 index 51c54c7..0000000 --- a/rpm-macros-athlon +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch i386 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=athlon%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_athlon: %{specflags_athlon}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-i386 b/rpm-macros-i386 deleted file mode 100644 index 756317f..0000000 --- a/rpm-macros-i386 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch i386 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=i386%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_i386: %{specflags_i386}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-i486 b/rpm-macros-i486 deleted file mode 100644 index b29cc5f..0000000 --- a/rpm-macros-i486 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch i486 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=i486%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_i486: %{specflags_i486}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-i586 b/rpm-macros-i586 deleted file mode 100644 index 5c4545f..0000000 --- a/rpm-macros-i586 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch i586 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=i586%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_i586: %{specflags_i586}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-i686 b/rpm-macros-i686 deleted file mode 100644 index ba6e326..0000000 --- a/rpm-macros-i686 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch i686 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=i686 -mtune=pentium4%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_i686: %{specflags_i686}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-ia32e b/rpm-macros-ia32e deleted file mode 100644 index 791e9a0..0000000 --- a/rpm-macros-ia32e +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch ia32e -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=x86-64%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32e: %{specflags_ia32e}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib64 -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib64 -%_libdir /usr/lib64 -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 2 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-noarch b/rpm-macros-noarch deleted file mode 100644 index fec2018..0000000 --- a/rpm-macros-noarch +++ /dev/null @@ -1,34 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch noarch -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib64 -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib64 -%_libdir /usr/lib64 -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -# Multilibs -%_multilibno 2 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ diff --git a/rpm-macros-pentium3 b/rpm-macros-pentium3 deleted file mode 100644 index 87c181b..0000000 --- a/rpm-macros-pentium3 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch pentium3 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=pentium3%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_pentium3: %{specflags_pentium3}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-pentium4 b/rpm-macros-pentium4 deleted file mode 100644 index ca1fbfa..0000000 --- a/rpm-macros-pentium4 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch pentium4 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=pentium4%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ia32: %{specflags_ia32}}%{?specflags_pentium4: %{specflags_pentium4}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros-ppc b/rpm-macros-ppc deleted file mode 100644 index 7a45c57..0000000 --- a/rpm-macros-ppc +++ /dev/null @@ -1,36 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch ppc -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc: %{specflags_ppc}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib -%_libdir /usr/%{_lib} -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 1 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ diff --git a/rpm-macros-x86_64 b/rpm-macros-x86_64 deleted file mode 100644 index 579ccac..0000000 --- a/rpm-macros-x86_64 +++ /dev/null @@ -1,37 +0,0 @@ -# Per-platform rpm configuration file. - -#============================================================================== -# ---- per-platform macros. -# -%_arch amd64 -%_vendor pld -%_os linux -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} -%optflags -O2 -fno-strict-aliasing -fwrapv -march=x86-64%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_amd64: %{specflags_amd64}}} - -#============================================================================== -# ---- configure macros. -# -%_prefix /usr -%_exec_prefix /usr -%_bindir /usr/bin -%_sbindir /usr/sbin -%_libexecdir /usr/lib64 -%_datadir /usr/share -%_sysconfdir /etc -%_sharedstatedir /var/lib -%_localstatedir /var -%_lib lib64 -%_libdir /usr/lib64 -%_includedir /usr/include -%_oldincludedir /usr/include -%_infodir /usr/share/info -%_mandir /usr/share/man -%_initrddir /etc/rc.d/init.d - -#--------------------------------------------------------------------- -# Multilibs -%_multilibno 2 -%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ - diff --git a/rpm-macros.java b/rpm-macros.java deleted file mode 100644 index 30e1539..0000000 --- a/rpm-macros.java +++ /dev/null @@ -1,2 +0,0 @@ -%define __java_provides %{nil} -%define __java_requires env RPM_BUILD_ROOT=%{buildroot} /usr/lib/rpm/java-find-requires diff --git a/rpm-macros.patch b/rpm-macros.patch deleted file mode 100644 index 43d56e3..0000000 --- a/rpm-macros.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff -urN rpm.org/macros.in rpm/macros.in ---- rpm.org/macros.in 2007-10-02 20:46:56.430390000 +0200 -+++ rpm/macros.in 2007-10-02 20:49:01.480941544 +0200 -@@ -213,7 +213,7 @@ - %endif\ - %{nil} - --%_defaultdocdir %{_usr}/doc -+%_defaultdocdir %{_usr}/share/doc - - # The path to the pgp executable (legacy, use %{__pgp} instead). - %_pgpbin %{__pgp} -@@ -242,12 +242,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 @PKGSRCDIR_MACRO@ -+%_topdir %(echo $HOME)/rpm - - #============================================================================== - # ---- Optional rpmrc macros. -@@ -257,7 +257,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 -@@ -356,8 +356,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) -@@ -522,7 +522,7 @@ - - # - # Path to magic file used for file classification. --%_rpmfc_magic_path %{_rpmhome}/magic -+%_rpmfc_magic_path /usr/share/file/magic - - #============================================================================== - # ---- Database configuration macros. -@@ -1224,17 +1224,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 - - #============================================================================== -@@ -1535,7 +1535,33 @@ - # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. - #%__executable_provides %{_rpmhome}/executabledeps.sh --provides - #%__executable_requires %{_rpmhome}/executabledeps.sh --requires --%__scriptlet_requires /bin/bash --rpm-requires -+#%__scriptlet_requires /bin/bash --rpm-requires - -+# PLD rpm macros -+%_enable_debug_packages 1 -+ -+# provides don't obsolete -+%_upgrade_tag name -+ -+#----------------------------------------------------------------- -+# CFLAGS and LDFLAGS used to build -+ -+%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-2 -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}} -+# -feliminate-dwarf2-dups disabled until PR ld/3290 is fixed. -+ -+%debugcflags -O0 -g -Wall -+%optldflags -Wl,--as-needed -+ -+# 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} -+ -+# arch macros -+%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon -+%x8664 x86_64 amd64 ia32e -+%ppc ppc ppc7400 ppc7450 -+ - # \endverbatim - #*/ diff --git a/rpm-man_pl.patch b/rpm-man_pl.patch deleted file mode 100644 index db61324..0000000 --- a/rpm-man_pl.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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 - systemie. - .TP -+\fB--test\fR - Nie instaluje pakietu, po prostu sprawdza i raportuje potencjalne - konflikty. - .SS "OPCJE USUWANIA" diff --git a/rpm-mono.patch b/rpm-mono.patch deleted file mode 100644 index f4c6511..0000000 --- a/rpm-mono.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.0.1/macros.in~ 2008-01-31 00:06:10.000000000 +0200 -+++ rpm-5.0.1/macros.in 2008-01-31 00:07:31.097681189 +0200 -@@ -1578,8 +1578,8 @@ - # - # Note: Used iff _use_internal_dependency_generator is non-zero. The - # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. --%__mono_provides %{_rpmhome}/mono-find-provides --%__mono_requires %{_rpmhome}/mono-find-requires -+%__mono_provides %{nil} -+%__mono_requires %{nil} - - #------------------------------------------------------------------------ - # executable(...) configuration. diff --git a/rpm-morearchs.patch b/rpm-morearchs.patch deleted file mode 100644 index 7cd8a5e..0000000 --- a/rpm-morearchs.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff -ur rpm-4.4.4/Makefile.am rpm-4.4.4.morearchs/Makefile.am ---- rpm-4.4.4/Makefile.am 2006-02-11 15:01:38.000000000 +0000 -+++ rpm-4.4.4.morearchs/Makefile.am 2006-02-11 18:06:51.000000000 +0000 -@@ -188,6 +188,8 @@ - powerpc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppciseries ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppcpseries ;\ -+ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc7400 ;\ -+ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc7450 ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc64 ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc64iseries ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc64pseries ;;\ -diff -ur rpm-4.4.4/installplatform rpm-4.4.4.morearchs/installplatform ---- rpm-4.4.4/installplatform 2005-10-25 21:19:24.000000000 +0000 -+++ rpm-4.4.4.morearchs/installplatform 2006-02-11 18:02:55.000000000 +0000 -@@ -33,7 +33,7 @@ - i[3456]86|pentium[34]|athlon) SUBSTS='s_i386_i386_ s_i386_i486_ s_i386_i586_ s_i386_i686_ s_i386_pentium3_ s_i386_pentium4_ s_i386_athlon_' ;; - alpha*) SUBSTS='s_alpha_alpha_ s_alpha_alphaev5_ s_alpha_alphaev56_ s_alpha_alphapca56_ s_alpha_alphaev6_ s_alpha_alphaev67_' ;; - 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_' ;; -+ powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc7400_ s_ppc\([^6ip]\|$\)_ppc7450_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;; - s390*) SUBSTS='s_s390x_s390_ s_s390\([^x]\|$\)_s390x\1_' ;; - *) SUBSTS=y___ ;; - esac ---- rpm-4.4.5/lib/rpmrc.c.orig 2006-02-28 22:01:56.462419250 +0100 -+++ rpm-4.4.5/lib/rpmrc.c 2006-02-28 22:09:36.415164500 +0100 -@@ -1331,10 +1331,18 @@ - switch (pvr) { - /* IBM750FX, 7410, 7450, 7451, 7441, 7455, 7445 */ - case 0x7000: -+ strcpy(un.machine, "ppc"); -+ break; - case 0x8000: - case 0x8001: -+ case 0x8002: -+ case 0x8003: -+ /* 0x8000: 7450, 0x8001: 7455, 0x8002: 7457, 0x8003: 7447A */ -+ strcpy(un.machine, "ppc7450"); -+ break; - case 0x800c: -- strcpy(un.machine, "ppc"); -+ case 0x000c: -+ strcpy(un.machine, "ppc7400"); - break; - case 0x36: - case 0x37: -diff -ur rpm-4.4.4/macros.in rpm-4.4.4.morearchs/macros.in ---- rpm-4.4.4/macros.in 2006-02-11 15:01:38.000000000 +0000 -+++ rpm-4.4.4.morearchs/macros.in 2006-02-11 18:17:36.000000000 +0000 -@@ -1244,6 +1244,7 @@ - # conditionals. - # - %ix86 i386 i486 i586 i686 pentium3 pentium4 athlon -+%ppc ppc ppc7400 ppc7450 - - #------------------------------------------------------------------------ - # Use in %install to generate locale specific file lists. For example, -diff -ur rpm-4.4.4/rpmrc.in rpm-4.4.4.morearchs/rpmrc.in ---- rpm-4.4.4/rpmrc.in 2006-02-11 15:01:38.000000000 +0000 -+++ rpm-4.4.4.morearchs/rpmrc.in 2006-02-11 18:11:55.000000000 +0000 -@@ -42,6 +42,8 @@ - optflags: m68k -O2 -fomit-frame-pointer%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_m68k: %{specflags_m68k}}} - - optflags: ppc -O2 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc: %{specflags_ppc}}} -+optflags: ppc7400 -O2 -mcpu=7400 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc: %{specflags_ppc}}} -+optflags: ppc7450 -O2 -mcpu=7450 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc: %{specflags_ppc}}} - optflags: ppc8260 -O2 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc8260: %{specflags_ppc8260}}} - optflags: ppc8560 -O2 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc8560: %{specflags_ppc8560}}} - optflags: ppc32dy4 -O2 -fsigned-char%{!?nospecflags:%{?specflags: %{specflags}}%{?specflags_ppc32dy4: %{specflags_ppc32dy4}}} -@@ -110,6 +112,8 @@ - arch_canon: mips: mips 4 - - arch_canon: ppc: ppc 5 -+arch_canon: ppc7400: ppc7400 5 -+arch_canon: ppc7450: ppc7450 5 - arch_canon: ppc8260: ppc8260 5 - arch_canon: ppc8560: ppc8560 5 - arch_canon: ppc32dy4: ppc32dy4 5 -@@ -212,7 +216,8 @@ - buildarchtranslate: sun4u: sparc64 - buildarchtranslate: sparc64: sparc64 - --buildarchtranslate: osfmach3_ppc: ppc -+buildarchtranslate: ppc7400: ppc7400 -+buildarchtranslate: ppc7450: ppc7450 - buildarchtranslate: powerpc: ppc - buildarchtranslate: powerppc: ppc - buildarchtranslate: ppc8260: ppc -@@ -263,6 +268,8 @@ - arch_compat: osfmach3_i486: i486 osfmach3_i386 - arch_compat: osfmach3_i386: i486 - -+arch_compat: ppc7450: ppc7400 -+arch_compat: ppc7400: ppc - arch_compat: osfmach3_ppc: ppc - arch_compat: powerpc: ppc - arch_compat: powerppc: ppc -@@ -375,6 +382,8 @@ - - buildarch_compat: m68k: noarch - -+buildarch_compat: ppc7450: ppc7400 -+buildarch_compat: ppc7400: ppc - buildarch_compat: ppc8260: noarch - buildarch_compat: ppc8560: noarch - buildarch_compat: ppc32dy4: noarch diff --git a/rpm-noexpand.patch b/rpm-noexpand.patch deleted file mode 100644 index 7e796f6..0000000 --- a/rpm-noexpand.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- rpm-5.0.1.noexpand/build/parseChangelog.c 2008-01-31 01:18:18.506330692 +0200 -+++ rpm-5.0.1/build/parseChangelog.c 2008-01-31 01:20:45.467027848 +0200 -@@ -318,7 +318,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-5.0.1.noexpand/build/parseSpec.c 2008-01-31 01:18:18.509664191 +0200 -+++ rpm-5.0.1/build/parseSpec.c 2008-01-31 01:20:45.073674806 +0200 -@@ -168,7 +168,7 @@ - - /** - */ --static int copyNextLineFromOFI(Spec spec, OFI_t * ofi) -+static int copyNextLineFromOFI(Spec spec, OFI_t * ofi, int strip) - /*@globals rpmGlobalMacroContext, h_errno, - fileSystem @*/ - /*@modifies spec->nextline, spec->nextpeekc, spec->lbuf, spec->line, -@@ -230,12 +230,16 @@ - /*@=mods@*/ - - /* 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, spec->lbuf_len)) { - rpmlog(RPMLOG_ERR, _("line %d: %s\n"), - spec->lineNum, spec->lbuf); - return RPMRC_FAIL; - } -+ } - spec->nextline = spec->lbuf; - } - return 0; -@@ -347,7 +351,7 @@ - - /* Copy next file line into the spec line buffer */ - -- if ((rc = copyNextLineFromOFI(spec, ofi)) != 0) { -+ if ((rc = copyNextLineFromOFI(spec, ofi, strip)) != 0) { - if (rc == RPMRC_FAIL) - goto retry; - return rc; -@@ -360,6 +364,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)) { -@@ -441,6 +446,7 @@ - ofi = spec->fileStack; - goto retry; - } -+ } - - if (match != -1) { - rl = xmalloc(sizeof(*rl)); ---- rpm-5.0.1.noexpand/build/rpmbuild.h 2008-01-31 01:18:18.509664191 +0200 -+++ rpm-5.0.1/build/rpmbuild.h 2008-01-31 01:20:45.073674806 +0200 -@@ -83,6 +83,7 @@ - #define STRIP_NOTHING 0 - #define STRIP_TRAILINGSPACE (1 << 0) - #define STRIP_COMMENTS (1 << 1) -+#define STRIP_NOEXPAND (1 << 2) - - /*@unchecked@*/ - extern int _rpmbuildFlags; diff --git a/rpm-notsc.patch b/rpm-notsc.patch deleted file mode 100644 index 17eb68a..0000000 --- a/rpm-notsc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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) diff --git a/rpm-old-fileconflicts-behaviour.patch b/rpm-old-fileconflicts-behaviour.patch deleted file mode 100644 index ad163a6..0000000 --- a/rpm-old-fileconflicts-behaviour.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm/lib/poptI.c.orig 2007-07-24 16:36:47.000000000 +0200 -+++ rpm/lib/poptI.c 2007-10-02 15:11:29.213848100 +0200 -@@ -17,7 +17,7 @@ - /*@-fullinitblock@*/ - /*@unchecked@*/ - struct rpmQVKArguments_s rpmIArgs = { -- .probFilter = (RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES), -+ .probFilter = 0, - }; - /*@=fullinitblock@*/ - -@@ -275,10 +275,6 @@ - N_("skip files with leading component "), - N_("") }, - -- { "fileconflicts", '\0', POPT_BIT_CLR, &rpmIArgs.probFilter, -- (RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES), -- N_("detect file conflicts between packages"), NULL}, -- - { "freshen", 'F', POPT_BIT_SET, &rpmIArgs.installInterfaceFlags, - (INSTALL_UPGRADE|INSTALL_FRESHEN|INSTALL_INSTALL), - N_("upgrade package(s) if already installed"), - diff --git a/rpm-perl-macros.patch b/rpm-perl-macros.patch deleted file mode 100644 index 2648466..0000000 --- a/rpm-perl-macros.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -urN rpm-4.3.org/configure.ac rpm-4.3/configure.ac ---- rpm-4.3.org/configure.ac 2004-01-07 01:51:35.251160244 +0100 -+++ rpm-4.3/configure.ac 2004-01-07 01:55:53.198560246 +0100 -@@ -1313,6 +1313,7 @@ - Doxyfile Makefile macros rpmpopt rpm.spec - rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile - scripts/Makefile scripts/macros.perl scripts/macros.php -+ scripts/perl.req scripts/perl.prov - scripts/macros.python tools/Makefile misc/Makefile doc/Makefile - doc/manual/Makefile doc/fr/Makefile doc/ja/Makefile doc/ko/Makefile - doc/pl/Makefile doc/ru/Makefile doc/sk/Makefile python/Makefile -diff -urN rpm-4.3.org/scripts/perl.req rpm-4.3/scripts/perl.req ---- rpm-4.3.org/scripts/perl.req 2004-01-07 01:51:04.911464416 +0100 -+++ rpm-4.3/scripts/perl.req 2004-01-07 01:55:17.030076058 +0100 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -+#!@__PERL@ - - # RPM (and it's source code) is covered under two separate licenses. - -@@ -41,7 +41,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 { - -@@ -49,14 +53,22 @@ - # 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($_); -+ } -+ } - } - } - - - foreach $module (sort keys %require) { - if (length($require{$module}) == 0) { -- print "perl($module)\n"; -+ if ($module =~ /^[0-9._]+$/) { -+ print "perl >= $module\n"; -+ } else { -+ print "perl($module)\n"; -+ } - } else { - - # I am not using rpm3.0 so I do not want spaces arround my -@@ -219,7 +231,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. -+ -+ ($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*\)$//; - - $require{$module}=$version; - $line{$module}=$_; diff --git a/rpm-perl-req-perlfile.patch b/rpm-perl-req-perlfile.patch deleted file mode 100644 index 5fe81f9..0000000 --- a/rpm-perl-req-perlfile.patch +++ /dev/null @@ -1,124 +0,0 @@ ---- 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,20 @@ - - # by Ken Estes Mail.com kestes@staff.mail.com - --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 $module (sort keys %require) { - if (length($require{$module}) == 0) { -@@ -82,6 +74,53 @@ - exit 0; - - -+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 { - -@@ -90,6 +129,8 @@ - - open(FILE, "<$file") || return; - -+ return if (!is_perlfile($file, \*FILE)); -+ - while () { - - # skip the documentation -@@ -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$//; diff --git a/rpm-perl_req-INC_dirs.patch b/rpm-perl_req-INC_dirs.patch deleted file mode 100644 index 163ce71..0000000 --- a/rpm-perl_req-INC_dirs.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- scripts/perl.req~ 2004-04-16 13:27:10.000000000 +0200 -+++ scripts/perl.req 2004-04-26 23:54:42.128568344 +0200 -@@ -39,8 +39,19 @@ - - # by Ken Estes Mail.com kestes@staff.mail.com - -+ -+ -+# *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|share|X11R6/(lib|lib64|bin))/=) { - if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) { - process_file($_) if -f; -@@ -53,8 +64,9 @@ - } - delete $require{the}; # don't count "use the sth" as perl module - -+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) { - if ($module =~ /^[0-9._]+$/) { - print "perl-base >= $module\n"; diff --git a/rpm-php-deps.patch b/rpm-php-deps.patch deleted file mode 100644 index a6b90ad..0000000 --- a/rpm-php-deps.patch +++ /dev/null @@ -1,12 +0,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"); - } - - diff --git a/rpm-php-macros.patch b/rpm-php-macros.patch deleted file mode 100644 index 2a314d0..0000000 --- a/rpm-php-macros.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-4.0.4/configure.ac.wiget Tue Feb 12 23:26:36 2002 -+++ rpm-4.0.4/configure.ac Tue Feb 12 23:27:46 2002 -@@ -1314,6 +1314,7 @@ - rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile - scripts/Makefile scripts/macros.perl scripts/macros.php - scripts/perl.req scripts/perl.prov -+ scripts/php.req scripts/php.prov - scripts/macros.python tools/Makefile misc/Makefile doc/Makefile - doc/manual/Makefile doc/fr/Makefile doc/ja/Makefile doc/ko/Makefile - doc/pl/Makefile doc/ru/Makefile doc/sk/Makefile python/Makefile - diff --git a/rpm-php-provides b/rpm-php-provides deleted file mode 100644 index ebbab97..0000000 --- a/rpm-php-provides +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/perl -##################################################################### -# # -# Small script to generate provides for php-pear/php-pecl # -# # -# Adam Go³êbiowski # -# # -# Somehow based on previous work by: # -# Pawe³ Go³aszewski # -# Micha³ Moskal # -##################################################################### - -# Contest: shrink this one to oneliner -# Bonus : and fit in 80 columns ;) - -/package.xml/ and open(F, $_) foreach (@ARGV ? @ARGV : <> ); -/^\s+\([a-zA-Z0-9\_]+)\<\/name\>$/ and print "php-pear-$1" while (); diff --git a/rpm-php-requires b/rpm-php-requires deleted file mode 100644 index 330e49b..0000000 --- a/rpm-php-requires +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/perl -W -##################################################################### -# # -# Check system dependencies between php-pear/php-pecl modules # -# # -# Adam Go³êbiowski # -# # -# based on previous work by: # -# Pawe³ Go³aszewski # -# Micha³ Moskal # -# # -# ----------------------------------------------------------------- # -# ChangeLog: # -# 20031201: complete rewrite to use PEAR's package.xml, now handles # -# all dependencies, including PHP modules (like php-gmp), # -# and PECL extensions (adamg) # -##################################################################### - -@req_arr = (); -$fname = '/dev/null'; -foreach ( @ARGV ? $ARGV : <> ) -{ - $fname = $_ if (/package.xml/) -} - -open F, $fname; - -while () { - if ( /\s+\([a-zA-Z0-9\_\-]*)\=" if ( $rel eq "ge"); - $relation = ">" if ( $rel eq "gt"); - $relation = "=" if ( $rel eq "has"); - # die if we were unable to substitute relations - die "ERROR: Unexpected relation! ($rel)\n" if ( $relation eq ""); - - $req = ""; - $relver = ""; - $relver = "$relation $version" if ( $version !~ /^$/ ); - $req = "$name $relver" if ( $type =~ /(php|prog)/ ); - $req = "php-$name $relver" if ( $type =~ /ext/ ); - $req = "php-pear-$name" if ( $type =~ /pkg/ ); - - push @req_arr, $req - - } -} -for $r (@req_arr) { print "$r\n"; } diff --git a/rpm-pkgconfigdeps.patch b/rpm-pkgconfigdeps.patch deleted file mode 100644 index 9cc82f5..0000000 --- a/rpm-pkgconfigdeps.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 diff --git a/rpm-pl.po.patch b/rpm-pl.po.patch deleted file mode 100644 index aa49c17..0000000 --- a/rpm-pl.po.patch +++ /dev/null @@ -1,806 +0,0 @@ ---- rpm-4.4.9/po/pl.po.orig 2007-05-21 13:46:34.000000000 +0200 -+++ rpm-4.4.9/po/pl.po 2007-05-22 20:01:36.707118912 +0200 -@@ -9,11 +9,11 @@ - # - msgid "" - msgstr "" --"Project-Id-Version: rpm 4.4.8\n" -+"Project-Id-Version: rpm 4.4.9\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2007-05-21 07:46-0400\n" --"PO-Revision-Date: 2006-02-28 20:20+0100\n" --"Last-Translator: Arkadiusz Miskiewicz \n" -+"PO-Revision-Date: 2007-05-22 00:13+0200\n" -+"Last-Translator: Jakub Bogusz \n" - "Language-Team: Polish \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=ISO-8859-2\n" -@@ -505,7 +505,7 @@ - #: build/files.c:1029 - #, c-format - msgid "illegal _docdir_fmt: %s\n" --msgstr "" -+msgstr "niedozwolony _docdir_fmt: %s\n" - - #: build/files.c:1307 - #, c-format -@@ -882,12 +882,12 @@ - - #: build/parsePreamble.c:376 - msgid "No icon file in sources\n" --msgstr "" -+msgstr "Brak pliku ikony w ¼ród³ach\n" - - #: build/parsePreamble.c:393 --#, fuzzy, c-format -+#, c-format - msgid "Invalid icon URL: %s\n" --msgstr "B³êdny znak %s: %s\n" -+msgstr "B³±dny URL ikony: %s\n" - - #: build/parsePreamble.c:400 - #, c-format -@@ -902,7 +902,7 @@ - #: build/parsePreamble.c:414 - #, c-format - msgid "Icon %s is too big (max. %d bytes)\n" --msgstr "" -+msgstr "Ikona %s jest zbyt du¿a (maksimum to %d bajtów)\n" - - #: build/parsePreamble.c:424 - #, c-format -@@ -927,7 +927,7 @@ - #: build/parsePreamble.c:544 build/parsePreamble.c:551 - #, c-format - msgid "line %d: Illegal char '-' in %s: %s\n" --msgstr "linia %d: Nielegalny znak '-' w %s: %s\n" -+msgstr "linia %d: Niedozwolony znak '-' w %s: %s\n" - - #: build/parsePreamble.c:584 - #, c-format -@@ -1049,14 +1049,14 @@ - msgstr "linia %d: B³êdny argument dla %%patch: %s\n" - - #: build/parsePrep.c:624 --#, fuzzy, c-format -+#, c-format - msgid "Missing %s%d %s: %s\n" --msgstr "Brak %s w %s %s\n" -+msgstr "Brak %s%d %s: %s\n" - - #: build/parsePrep.c:632 --#, fuzzy, c-format -+#, c-format - msgid "file %s missing: %s\n" --msgstr "plik %s: %s\n" -+msgstr "brak pliku %s: %s\n" - - #: build/parsePrep.c:640 - #, c-format -@@ -1406,56 +1406,48 @@ - msgstr "(zbuforowane)" - - #: lib/depends.c:606 --#, fuzzy - msgid "(function probe)" --msgstr "(test makra)" -+msgstr "(test funkcji)" - - #: lib/depends.c:625 - msgid "(user lookup)" --msgstr "" -+msgstr "(wyszukiwanie u¿ytkownika)" - - #: lib/depends.c:642 - msgid "(group lookup)" --msgstr "" -+msgstr "(wyszukiwanie grupy)" - - #: lib/depends.c:651 - msgid "(access probe)" - msgstr "(test dostêpu)" - - #: lib/depends.c:673 --#, fuzzy - msgid "(mtab probe)" --msgstr "(test makra)" -+msgstr "(test mtab)" - - #: lib/depends.c:728 --#, fuzzy - msgid "(diskspace probe)" --msgstr "(test dostêpu)" -+msgstr "(test miejsca na dysku)" - - #: lib/depends.c:758 --#, fuzzy - msgid "(digest probe)" --msgstr "(test dostêpu)" -+msgstr "(test skrótu)" - - #: lib/depends.c:771 --#, fuzzy - msgid "(gnupg probe)" --msgstr "(test makra)" -+msgstr "(test gnupg)" - - #: lib/depends.c:784 --#, fuzzy - msgid "(macro probe)" - msgstr "(test makra)" - - #: lib/depends.c:812 --#, fuzzy - msgid "(envvar probe)" --msgstr "(test makra)" -+msgstr "(test zmiennej ¶rodowiskowej)" - - #: lib/depends.c:839 --#, fuzzy - msgid "(running probe)" --msgstr "(test makra)" -+msgstr "(test uruchomienia)" - - #: lib/depends.c:852 - msgid "(sysinfo provides)" -@@ -2293,9 +2285,8 @@ - msgstr "" - - #: lib/poptQV.c:144 --#, fuzzy - msgid "query source metadata from spec file parse" --msgstr "buduj tylko pakiet ¼ród³owy z " -+msgstr "odpytaj metadane ¼ród³owe z analizy pliku spec" - - #: lib/poptQV.c:146 - msgid "query/verify package(s) from install transaction" -@@ -2689,9 +2680,9 @@ - msgstr "%s: Fwrite nie powiod³o siê: %s\n" - - #: lib/rpmchecksig.c:122 --#, fuzzy, c-format -+#, c-format - msgid "%s: Fflush failed: %s\n" --msgstr "%s: Fseek nie powiod³o siê: %s\n" -+msgstr "%s: Fflush nie powiod³o siê: %s\n" - - #: lib/rpmchecksig.c:216 lib/rpmchecksig.c:755 - #, c-format -@@ -2836,28 +2827,27 @@ - msgstr "dane pakietu mog± byæ w formacie archiwum tara ustar." - - #: lib/rpmds.c:1452 --#, fuzzy - msgid "package payload can be compressed using lzma." --msgstr "dane pakietu mog± byæ skompresowane bzipem2." -+msgstr "dane pakietu mog± byæ skompresowane przy u¿yciu lzma." - - #: lib/rpmds.c:1455 - msgid "file digests can be other than MD5." --msgstr "" -+msgstr "skróty plików mog± byæ inne ni¿ MD5." - - #: lib/rpmds.c:1545 lib/rpmds.c:3535 --#, fuzzy, c-format -+#, c-format - msgid "%s:%d \"%s\" has invalid name. Skipping ...\n" --msgstr "%s ma b³êdn± warto¶æ liczbow±, pominiêto\n" -+msgstr "%s:%d \"%s\" ma b³êdn± nazwê. Pomijanie...\n" - - #: lib/rpmds.c:1569 lib/rpmds.c:3553 --#, fuzzy, c-format -+#, c-format - msgid "%s:%d \"%s\" has no comparison operator. Skipping ...\n" --msgstr "\tlinia %d: \"%s\" nie ma operatora porównania. Pomijanie...\n" -+msgstr "%s:%d \"%s\" nie ma operatora porównania. Pomijanie...\n" - - #: lib/rpmds.c:1580 lib/rpmds.c:3568 --#, fuzzy, c-format -+#, c-format - msgid "%s:%d \"%s\" has no EVR string. Skipping ...\n" --msgstr "\tlinia %d: \"%s\" nie ma operatora porównania. Pomijanie...\n" -+msgstr "%s:%d \"%s\" nie ma ³añcucha EVR. Pomijanie...\n" - - #: lib/rpmds.c:3534 lib/rpmds.c:3552 lib/rpmds.c:3564 - #, c-format -@@ -2893,59 +2883,59 @@ - msgstr "pakiet %s ma niespe³nione %s: %s\n" - - #: lib/rpmfc.c:93 --#, fuzzy, c-format -+#, c-format - msgid "\texecv(%s) pid %d\n" --msgstr "%s: %s(%s-%s-%s.%s)\texecv(%s) pid %d\n" -+msgstr "\texecv(%s) pid %d\n" - - #: lib/rpmfc.c:99 --#, fuzzy, c-format -+#, c-format - msgid "Couldn't exec %s: %s\n" - msgstr "Nie mo¿na uruchomiæ %s: %s\n" - - #: lib/rpmfc.c:104 --#, fuzzy, c-format -+#, c-format - msgid "Couldn't fork %s: %s\n" --msgstr "Nie mo¿na otworzyæ %s: %s\n" -+msgstr "Nie mo¿na wykonaæ fork na %s: %s\n" - - #: lib/rpmfc.c:189 --#, fuzzy, c-format -+#, c-format - msgid "\twaitpid(%d) rc %d status %x\n" --msgstr "%s: waitpid(%d) rc %d status %x secs %u.%03u\n" -+msgstr "\twaitpid(%d) rc %d status %x\n" - - #: lib/rpmfc.c:196 - #, c-format - msgid "Command \"%s\" failed, exit(%d)\n" --msgstr "" -+msgstr "Polecenie \"%s\" nie powiod³o siê, zakoñczenie (z kodem %d)\n" - - #: lib/rpmfc.c:201 --#, fuzzy, c-format -+#, c-format - msgid "failed to write all data to %s\n" --msgstr "Nie mo¿na zapisaæ danych do %s: %s\n" -+msgstr "nie uda³o siê zapisaæ wszystkich danych do %s\n" - - #: lib/rpmfc.c:1003 --#, fuzzy, c-format -+#, c-format - msgid "magic_open(0x%x) failed: %s\n" --msgstr "otwarcie %s nie powiod³o siê: %s\n" -+msgstr "magic_open(0x%x) nie powiod³o siê: %s\n" - - #: lib/rpmfc.c:1011 --#, fuzzy, c-format -+#, c-format - msgid "magic_load(ms, \"%s\") failed: %s\n" --msgstr "%s rmdir %s nie powiod³o siê: %s\n" -+msgstr "magic_load(ms, \"%s\") nie powiod³o siê: %s\n" - - #: lib/rpmfc.c:1077 - #, c-format - msgid "magic_file(ms, \"%s\") failed: mode %06o %s\n" --msgstr "" -+msgstr "magic_file(ms, \"%s\") nie powiod³o siê: uprawnienia %06o %s\n" - - #: lib/rpmfc.c:1295 --#, fuzzy, c-format -+#, c-format - msgid "Finding %s: %s\n" --msgstr "Plik %s: %s\n" -+msgstr "Szukanie %s: %s\n" - - #: lib/rpmfc.c:1301 lib/rpmfc.c:1312 --#, fuzzy, c-format -+#, c-format - msgid "Failed to find %s:\n" --msgstr "Odczytanie %s nie powiod³o siê: %s.\n" -+msgstr "Nie uda³o siê odnale¼æ %s:\n" - - #: lib/rpmfi.c:622 - #, c-format -@@ -3070,9 +3060,9 @@ - msgstr "\tdodano pakiet binarny [%d]\n" - - #: lib/rpminstall.c:605 --#, fuzzy, c-format -+#, c-format - msgid "package file %s was skipped\n" --msgstr "pakiet %s ma niespe³nione %s: %s\n" -+msgstr "plik pakietu %s zosta³ pominiêty\n" - - #: lib/rpminstall.c:609 - #, c-format -@@ -3143,9 +3133,9 @@ - msgstr "pakiet %s jest ju¿ zainstalowany" - - #: lib/rpmps.c:219 --#, fuzzy, c-format -+#, c-format - msgid "re-packaged package with %s: %s is missing" --msgstr "\tPrzepakowany Pakiet %s...\n" -+msgstr "przepakowany pakiet z %s: brak %s" - - #: lib/rpmps.c:224 - #, c-format -@@ -3318,17 +3308,16 @@ - msgstr "Cechy dostarczane przez bie¿±ce uname:\n" - - #: lib/rpmrollback.c:389 --#, fuzzy - msgid "Failed dependencies" --msgstr "Niespe³nione zale¿no¶ci:\n" -+msgstr "Niespe³nione zale¿no¶ci" - - #: lib/rpmrollback.c:394 - msgid "Ordering problems" --msgstr "" -+msgstr "Problemy z kolejno¶ci±" - - #: lib/rpmrollback.c:399 - msgid "Rollback problems" --msgstr "" -+msgstr "Problemy z wycofywaniem" - - #: lib/rpmrollback.c:518 - #, c-format -@@ -3336,9 +3325,8 @@ - msgstr "Wy³±czanie TID z wycofania: %-24.24s (0x%08x)\n" - - #: lib/rpmrollback.c:620 --#, fuzzy - msgid "Missing re-packaged package(s)" --msgstr "Wykryto brakuj±ce przepakowane pakiety:\n" -+msgstr "Brak przepakowywanych pakietów" - - #: lib/rpmrollback.c:628 - #, c-format -@@ -3601,14 +3589,14 @@ - msgstr "wy³±czanie katalogu %s\n" - - #: lib/transaction.c:1013 --#, fuzzy, c-format -+#, c-format - msgid "rpmdb erase failed. NEVRA: %s\n" --msgstr "%s rmdir %s nie powiod³o siê: %s\n" -+msgstr "usuwanie z rpmdb nie powiod³o siê. NEVRA: %s\n" - - #: lib/transaction.c:1031 --#, fuzzy, c-format -+#, c-format - msgid "Rollback to %-24.24s (0x%08x)\n" --msgstr "Cel wycofania: %-24.24s (0x%08x)\n" -+msgstr "Wycofanie do %-24.24s (0x%08x)\n" - - #: lib/transaction.c:1178 - msgid "Invalid number of transaction elements.\n" -@@ -4375,274 +4363,183 @@ - msgid "check Requires: against Provides: for dependency closure" - msgstr "sprawd¼ Requires: wzglêdem Provides: dla dope³nienia zale¿no¶ci" - --#~ msgid "Rolling back successful transactions to %-24.24s (0x%08x).\n" --#~ msgstr "Cofanie udanych transakcji do %-24.24s (0x%08x).\n" -- --#~ msgid "Transaction failed...rolling back\n" --#~ msgstr "Transakcja nie powiod³a siê... wycofywanie\n" -- --#, fuzzy --#~ msgid "Failed transaction: %-24.24s(0x%08x)\n" --#~ msgstr "Nieudana transakcja: %-24.24s(0x%08x)\n" -- --#~ msgid "Could not resolve semaphore_backout macro!\n" --#~ msgstr "Nie uda³o siê rozwi±zaæ makra semaphore_backout!\n" -- --#~ msgid "Creating semaphore %s...\n" --#~ msgstr "Tworzenie semafora %s...\n" -- --#~ msgid "Could not order auto-rollback transaction!\n" --#~ msgstr "Nie uda³o siê wykonaæ transakcji automatycznego wycofania!\n" -- --#~ msgid "Rolling back successful transactions to %-24.24s (0x%08x)\n" --#~ msgstr "Cofanie udanych transakcji do %-24.24s (0x%08x)\n" -- --#~ msgid "Removing semaphore %s...\n" --#~ msgstr "Usuwanie semafora %s...\n" -- --#~ msgid "Getting repackaged header from transaction element\n" --#~ msgstr "Pobieranie przepakowanego nag³ówka z elementu transakcji\n" -- --#~ msgid "\tLooking for %s...\n" --#~ msgstr "\tPoszukiwanie %s...\n" -- --#~ msgid "\tRepackaged package not found!.\n" --#~ msgstr "\tPrzepakowany pakiet nie znaleziony!.\n" -- --#~ msgid "\t\tName: %s.\n" --#~ msgstr "\t\tNazwa: %s.\n" -- --#~ msgid "Processing failed install element %s for autorollback.\n" --#~ msgstr "" --#~ "Przetwarzanie nieudanego elementu instalacji %s do automatycznego " --#~ "wycofania.\n" -- --#~ msgid "\tForce adding header to rpmdb.\n" --#~ msgstr "\tWymuszenie dodania nag³ówka do rpmdb.\n" -+#: rpmpopt:47 rpmpopt:371 rpmpopt:482 -+msgid "list install/erase scriptlets from package(s)" -+msgstr "wypisz skrypty (de)instalacyjne z pakietu(ów)" -+ -+#: rpmpopt:51 -+msgid "display directories needed, but not provided, by packages" -+msgstr "wy¶wietl katalogi wymagane ale nie dostarczane przez pakiety" -+ -+#: rpmpopt:55 -+msgid "set permissions of files in a package" -+msgstr "ustaw uprawnienia plików w pakiecie" -+ -+#: rpmpopt:60 -+msgid "set user/group ownership of files in a package" -+msgstr "ustaw u¿ytkownika/grupê w³a¶ciciela plików w pakiecie" -+ -+#: rpmpopt:64 rpmpopt:375 rpmpopt:486 -+msgid "list capabilities this package conflicts with" -+msgstr "wypisz w³asno¶ci z którymi ten pakiet jest w konflikcie" -+ -+#: rpmpopt:67 rpmpopt:378 rpmpopt:489 -+msgid "list other packages removed by installing this package" -+msgstr "wypisz inne pakiety usuwane przy instalacji tego pakietu" -+ -+#: rpmpopt:70 rpmpopt:381 rpmpopt:492 -+msgid "list capabilities that this package provides" -+msgstr "wypisz w³asno¶ci dostarczane przez ten pakiet" -+ -+#: rpmpopt:74 rpmpopt:385 rpmpopt:496 -+msgid "list capabilities required by package(s)" -+msgstr "wypisz w³asno¶ci wymagane przez pakiet(y)" -+ -+#: rpmpopt:78 rpmpopt:81 rpmpopt:389 rpmpopt:392 -+#: rpmpopt:500 rpmpopt:503 -+msgid "list enhancements suggested by package(s)" -+msgstr "wypisz rozszerzenia sugerowane przez pakiet(y)" -+ -+#: rpmpopt:94 rpmpopt:405 rpmpopt:515 -+msgid "list descriptive information from package(s)" -+msgstr "wypisz informacje opisowe z pakietu(ów)" -+ -+#: rpmpopt:97 rpmpopt:408 rpmpopt:518 -+msgid "list change logs for this package" -+msgstr "wypisz kronikê zmian dla tego pakietu" -+ -+#: rpmpopt:100 rpmpopt:411 rpmpopt:521 -+msgid "list metadata in xml" -+msgstr "wypisz metadane w formacie xml" -+ -+#: rpmpopt:102 rpmpopt:413 rpmpopt:523 -+msgid "list metadata in yaml" -+msgstr "wypisz metadane w formacie yaml" -+ -+#: rpmpopt:108 rpmpopt:419 rpmpopt:529 -+msgid "list trigger scriptlets from package(s)" -+msgstr "wypisz skrypty trigger z pakietu(ów)" -+ -+#: rpmpopt:112 rpmpopt:423 rpmpopt:533 -+msgid "list package(s) by install time, most recent first" -+msgstr "wypisz pakiet(y) wed³ug czasu instalacji od naj¶wie¿szego" -+ -+#: rpmpopt:115 rpmpopt:426 rpmpopt:536 -+msgid "list duplicated packages" -+msgstr "wypisz pakiety wielokrotne" -+ -+#: rpmpopt:118 rpmpopt:429 rpmpopt:539 -+msgid "list all files from each package" -+msgstr "wypisz wszystkie pliki z ka¿dego pakietu" -+ -+#: rpmpopt:121 rpmpopt:432 rpmpopt:542 -+msgid "list file names with classes" -+msgstr "wypisz nazwy plików z klasami" -+ -+#: rpmpopt:124 rpmpopt:435 rpmpopt:545 -+msgid "list file names with colors" -+msgstr "wypisz nazwy plików z kolorami" -+ -+#: rpmpopt:127 -+msgid "list file names with security context from header" -+msgstr "wypisz nazwy plików z kontekstami bezpieczeñstwa z nag³ówka" -+ -+#: rpmpopt:130 rpmpopt:441 rpmpopt:551 -+msgid "list file names with security context from file system" -+msgstr "wypisz nazwy plików z kontekstami bezpieczeñstwa z systemu plików" -+ -+#: rpmpopt:133 rpmpopt:444 rpmpopt:554 -+msgid "list file names with security context from policy RE" -+msgstr "wypisz nazwy plików z kontekstami bezpieczeñstwa z RE polityki" -+ -+#: rpmpopt:136 rpmpopt:447 rpmpopt:557 -+msgid "list file names with provides" -+msgstr "wypisz nazwy plików z dostarczanymi w³asno¶ciami" -+ -+#: rpmpopt:139 rpmpopt:450 rpmpopt:560 -+msgid "list file names with requires" -+msgstr "wypisz nazwy plików z wymaganiami" - --#~ msgid "\tCould not add failed package header to db!\n" --#~ msgstr "\tNie uda³o siê dodaæ nag³ówka nieudanego pakietu do bazy!\n" -- --#~ msgid "%s: Unknown transaction element type!\n" --#~ msgstr "%s: Nieznany typ elementu transakcji!\n" -- --#~ msgid "TYPE: %d\n" --#~ msgstr "RODZAJ: %d\n" -- --#~ msgid "Processing install element for autorollback...\n" --#~ msgstr "Przetwarzanie elementu instalacji do automatycznego wycofania...\n" -- --#~ msgid "\tNEVRA: %s\n" --#~ msgstr "\tNEVRA: %s\n" -- --#~ msgid "Could not get install element database instance!\n" --#~ msgstr "Nie uda³o siê uzyskaæ instancji bazy danych elementu instalacji!\n" -- --#~ msgid "Could not get header for auto-rollback transaction!\n" --#~ msgstr "" --#~ "Nie uda³o siê uzyskaæ nag³ówka do transakcji automatycznego wycofania!\n" -- --#~ msgid "\tAdded repackaged package header: %s.\n" --#~ msgstr "\tDodano przepakowany nag³ówek pakietu: %s.\n" -- --#~ msgid "\tAdded erase element.\n" --#~ msgstr "\tDodano element usuniêcia.\n" -- --#~ msgid "Could not get repackaged header for auto-rollback transaction!\n" --#~ msgstr "" --#~ "Nie uda³o siê uzyskaæ przepakowanego nag³ówka do transakcji " --#~ "automatycznego wycofania!\n" -- --#~ msgid "Processing erase element for autorollback...\n" --#~ msgstr "Przetwarzanie elementu usuniêcia do automatycznego wycofania...\n" -- --#~ msgid "\tErase element(s) already added.\n" --#~ msgstr "\tElement(y) usuniêcia ju¿ dodane.\n" -- --#~ msgid "\tAdded repackaged package %s.\n" --#~ msgstr "\tDodano przepakowany pakiet %s.\n" -- --#~ msgid "Could not add erase element to auto-rollback transaction.\n" --#~ msgstr "" --#~ "Nie uda³o siê dodaæ elementu usuniêcia do transakcji automatycznego " --#~ "wycofania.\n" -- --#~ msgid "\tNo repackaged package...nothing to do.\n" --#~ msgstr "\tNie ma przepakowanych pakietów... nie ma nic do zrobienia.\n" -- --#~ msgid "Failure reading repackaged package!\n" --#~ msgstr "B³±d podczas odczytu przepakowanego pakietu!\n" -- --#~ msgid "Creating auto-rollback transaction\n" --#~ msgstr "Tworzenie transakcji automatycznego wycofania\n" -- --#~ msgid "Adding %s to autorollback transaction.\n" --#~ msgstr "Dodawanie %s do transakcji automatycznego wycofania.\n" -- --#~ msgid "Could not add transaction element to autorollback!.\n" --#~ msgstr "" --#~ "Nie uda³o siê dodaæ elementu transakcji do automatycznego wycofania!\n" -- --#~ msgid "%s:%d \"%s\" must begin with alphanumeric, '_', '/' or '%%'.\n" --#~ msgstr "%s:%d \"%s\" musi zaczynaæ siê liter±, cyfr±, '_', '/' lub '%%'.\n" -- --#~ msgid "%s:%d No comparison operator found.\n" --#~ msgstr "%s:%d Brak operatora porównania.\n" -- --#~ msgid "%s:%d No EVR comparison value found.\n" --#~ msgstr "%s:%d Nie znaleziono warto¶ci do porównania EVR.\n" -- --#~ msgid "" --#~ "\tline %d: \"%s\" must begin with alphanumeric, '_', '/' or '%%'. " --#~ "Skipping ...\n" --#~ msgstr "" --#~ "\tlinia %d: \"%s\" musi zaczynaæ siê liter±, cyfr±, '_', '/' lub '%%'. " --#~ "Pomijanie...\n" -- --#~ msgid "argument is not an RPM package\n" --#~ msgstr "argument nie jest pakietem RPM\n" -- --#~ msgid "error reading header from package\n" --#~ msgstr "b³±d odczytu nag³ówka z pakietu\n" -- --#~ msgid "cannot re-open payload: %s\n" --#~ msgstr "nie mo¿na ponownie otworzyæ danych: %s\n" -- --#, fuzzy --#~ msgid "%s failed\n" --#~ msgstr "%s nie powiod³o siê: %s\n" -- --#~ msgid "package %s is intended for a %s operating system" --#~ msgstr "pakiet %s jest przeznaczony dla systemu operacyjnego %s" -- --#~ msgid "error reading from file %s\n" --#~ msgstr "b³±d czytania z pliku %s\n" -- --#~ msgid "list install/erase scriptlets from package(s)" --#~ msgstr "wypisz skrypty (de)instalacyjne z pakietu(ów)" -- --#~ msgid "set permissions of files in a package" --#~ msgstr "ustaw uprawnienia plików w pakiecie" -- --#~ msgid "set user/group ownership of files in a package" --#~ msgstr "ustaw u¿ytkownika/grupê w³a¶ciciela plików w pakiecie" -- --#~ msgid "list capabilities this package conflicts with" --#~ msgstr "wypisz w³asno¶ci z którymi ten pakiet jest w konflikcie" -- --#~ msgid "list other packages removed by installing this package" --#~ msgstr "wypisz inne pakiety usuwane przy instalacji tego pakietu" -- --#~ msgid "list capabilities that this package provides" --#~ msgstr "wypisz w³asno¶ci dostarczane przez ten pakiet" -- --#~ msgid "list capabilities required by package(s)" --#~ msgstr "wypisz w³asno¶ci wymagane przez pakiet(y)" -- --#~ msgid "list descriptive information from package(s)" --#~ msgstr "wypisz informacje opisowe z pakietu(ów)" -- --#~ msgid "list change logs for this package" --#~ msgstr "wypisz kronikê zmian dla tego pakietu" -- --#~ msgid "list trigger scriptlets from package(s)" --#~ msgstr "wypisz skrypty trigger z pakietu(ów)" -- --#~ msgid "list package(s) by install time, most recent first" --#~ msgstr "wypisz pakiet(y) wed³ug czasu instalacji od naj¶wie¿szego" -- --#~ msgid "list all files from each package" --#~ msgstr "wypisz wszystkie pliki z ka¿dego pakietu" -- --#~ msgid "" --#~ "find package name that contains a provided capability (needs rpmdb-redhat " --#~ "package installed)" --#~ msgstr "" --#~ "znajd¼ nazwê pakietu, który dostarcza w³asno¶æ (wymaga zainstalowanego " --#~ "pakietu rpmdb-redhat)" -- --#~ msgid "set buildroot (e.g. compress man pages)" --#~ msgstr "ustaw buildroot (np. kompresowanie stron manuala)" -- --#~ msgid "" --#~ msgstr "" -- --#~ msgid "enable configure