+++ /dev/null
-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-----
-
+++ /dev/null
-#!/usr/bin/gawk -f
-#
-# This is adapter v0.30-RELEASE. Adapter adapts .spec files for PLD Linux.
-# $Id$
-#
-# Copyright (C) 1999-2008 PLD-Team <feedback@pld-linux.org>
-# Authors:
-# Michał Kuratczyk <kura@pld.org.pl>
-# Sebastian Zagrodzki <s.zagrodzki@mimuw.edu.pl>
-# Tomasz Kłoczko <kloczek@rudy.mif.pg.gda.pl>
-# Artur Frysiak <wiget@pld-linux.org>
-# Michal Kochanowicz <mkochano@pld.org.pl>
-# Jakub Bogusz <qboosh@pld-linux.org>
-# Elan Ruusamäe <glen@pld-linux.org>
-#
-# See cvs log adapter{,.awk} for list of contributors
-#
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-
-# TODO
-# - really long sourceX make preamble sorting totally fcked up (try snake.spec r1.1)
-# - 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)"
-
- usedigest = 0 # Enable to switch to rpm 4.4.6+ md5 digests
-
- 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 <feedback@pld-linux.org>}'" | 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 %_javadir" | getline javadir
-
- "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 %php_data_dir" | getline php_data_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 (/#[ \t]*Source.*md5/) {
- if (usedigest == 1) {
- sub(/^#[ \t]*Source/, "BuildRequires:\tdigest(%SOURCE", $0)
- sub(/-md5[ \t]*:[ \t]*/, ") = ", $0)
- }
- 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
- if ($2 ~ /^subver$/)
- subver = $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 (subver) {
- $0 = fixedsub(subver, "%{subver}", $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 "<cvs_login>" _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);
- group = replace_groupnames(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
- }
-
- replace_requires();
- }
-
- if (field ~ /^requires:/) {
- replace_requires();
- }
-
-
- # 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"
- }
- if (l == "Apache License 2.0" || l == "Apache 2.0" || l == "Apache License Version 2.0" || l == "Apache License, Version 2.0" || l == "Apache Software License v2") {
- l = "Apache v2.0"
- }
- if (l == "Apache Group License" || l == "Apache Software License" || l == "Apache License") {
- l = "Apache"
- }
- if (l == "Apache-style License" || l == "Apache-style Software License") {
- l = "Apache-like"
- }
- if (l == "Apache Software License 1.1" || l == "Apache 1.1") {
- l = "Apache v1.1"
- }
- if (l == "GPLv2") {
- l = "GPL v2"
- }
- if (l == "GPLv2+") {
- l = "GPL v2+"
- }
- $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])
- }
- if (subver) {
- url[n] = fixedsub(subver, "%{subver}", url[n])
- }
- }
- # assigning to $2 kills preamble formatting
- $2 = fixedsub(filename, url[n], $2)
-
- $2 = unify_url($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 <feedback@pld-linux.org>"
- }
- if (boc > 1) {
- printf "All persons listed below can be reached at "
- print "<cvs_login>@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("%{_datadir}/java", "%{_javadir}")
-
- gsub(libdir, "%{_libdir}")
- gsub(javadir, "%{_javadir}")
-
- 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")
- continue;
- if ($c ~ sysconfdir "/{?hotplug")
- 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}")
- gsub(php_data_dir, "%{php_data_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} ")
- gsub("^rm --interactive=never ", "%{__rm} ")
-
- # 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("%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 / || /^%{ant}/) {
- sub(/^ant/, "%ant")
- sub(/^%{ant}/, "%ant")
- add_br("BuildRequires: jpackage-utils");
- add_br("BuildRequires: rpmbuild(macros) >= 1.300");
- }
-
- $0 = fixedsub("%(%{__cc} -dumpversion)", "%{cc_version}", $0);
- $0 = fixedsub("%(%{__cxx} -dumpversion)", "%{cxx_version}", $0);
-}
-
-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}");
- gsub("%{_datadir}/pear", "%{php_pear_dir}");
- gsub("%{_datadir}/php", "%{php_data_dir}");
-}
-
-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 unify_url(url)
-{
-
- # sourceforge urls
- sub("[?&]big_mirror=.*$", "", url);
- sub("[?&]modtime=.*$", "", url);
- sub("[?]use_mirror=.*$", "", url);
- sub("[?]download$", "", url);
-
- sub("^http://prdownloads\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
- sub("^http://download\.sf\.net/", "http://dl.sourceforge.net/", url)
- sub("^http://download\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
- sub("^http://downloads\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
-
- sub("^http://.*\.dl\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
- sub("^http://dl\.sourceforge\.net/sourceforge/", "http://dl.sourceforge.net/", url)
- sub("^http://dl\.sf\.net/", "http://dl.sourceforge.net/", url)
-
- sub("^ftp://ftp\.gnome\.org/", "http://ftp.gnome.org/", url)
- sub("^http://ftp\.gnome\.org/pub/gnome/", "http://ftp.gnome.org/pub/GNOME/", url)
-
- # apache urls
- sub("^http://apache.zone-h.org/", "http://www.apache.org/dist/", url)
-
- # gnu.org
- sub("^ftp://ftp.gnu.org/", "http://ftp.gnu.org/", url)
- sub("^http://ftp.gnu.org/pub/gnu/", "http://ftp.gnu.org/gnu/", url)
-
- return url
-}
-
-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);
- }
- if (subver) {
- sub("%{subver}", subver, str);
- }
- return str;
-}
-
-function kill_preamble_macros()
-{
- if ($1 ~ /^Obsoletes:/) {
- # NB! assigning $2 a value breaks tabbing
- $2 = demacroize($2);
- }
- if ($1 ~ /^URL:/) {
- # NB! assigning $2 a value breaks tabbing
- $2 = demacroize($2);
- $2 = unify_url($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
-}
-
-function replace_requires()
-{
-
- # jpackages
- sub(/^java-devel$/, "jdk", $2);
- sub(/^log4j$/, "logging-log4j", $2);
- sub(/^jakarta-log4j$/, "logging-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);
- sub(/^gnu-regexp$/, "gnu.regexp", $2);
-
- # redhat virtual
- sub(/^tftp-server$/, "tftpdaemon", $2);
-
- sub(/^gcc-c\+\+$/, "libstdc++-devel", $2);
- sub(/^chkconfig$/, "/sbin/chkconfig", $2);
-
- # fedora
- sub(/^iscsi-initiator-utils$/, "open-iscsi", $2);
-
- replace_php_virtual_deps()
-}
-
-# 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);
- }
- }
-}
-
-function replace_groupnames(group)
-{
- sub(/^Amusements\/Games\/Strategy\/Real Time/, "X11/Applications/Games/Strategy", group)
- sub(/^Application\/Multimedia$/, "Applications/Multimedia", group)
- sub(/^Applications\/Compilers$/, "Development/Languages", group)
- sub(/^Applications\/Daemons$/, "Daemons", group)
- sub(/^Applications\/Internet$/, "Applications/Networking", group)
- sub(/^Applications\/Internet\/Peer to Peer/, "Applications/Networking", group)
- sub(/^Applications\/Productivity$/, "X11/Applications", group)
- sub(/^Database$/, "Applications/Databases", group)
- sub(/^Development\/Code Generators$/, "Development", group)
- sub(/^Development\/Docs$/, "Documentation", group)
- sub(/^Development\/Documentation$/, "Documentation", group)
- sub(/^Development\/Java/, "Development/Languages/Java", group)
- sub(/^Development\/Libraries\/C and C\+\+$/, "Development/Libraries", group)
- sub(/^Development\/Libraries\/Java$/, "Development/Languages/Java", group)
- sub(/^Development\/Other/,"Development", group)
- sub(/^Development\/Testing$/, "Development", group)
- sub(/^Emulators$/, "Applications/Emulators", group)
- sub(/^Games/,"Applications/Games", group)
- sub(/^Library\/Development$/, "Development/Libraries", group)
- sub(/^Networking\/Deamons$/, "Networking/Daemons", group)
- sub(/^Shells/,"Applications/Shells", group)
- sub(/^System Environment\/Base$/, "Base", group)
- sub(/^System Environment\/Daemons$/, "Daemons", group)
- sub(/^System Environment\/Kernel$/, "Base/Kernel", group)
- sub(/^System Environment\/Libraries$/, "Libraries", group)
- sub(/^System$/, "Base", group)
- sub(/^System\/Base$/, "Base", group)
- sub(/^System\/Libraries$/, "Libraries", group)
- sub(/^System\/Servers$/, "Daemons", group)
- sub(/^Text Processing\/Markup\/HTML$/, "Applications/Text", group)
- sub(/^Text Processing\/Markup\/XML$/, "Applications/Text", group)
- sub(/^Utilities\//,"Applications/", group)
- sub(/^Web\/Database$/, "Applications/WWW", group)
- sub(/^X11\/GNOME/,"X11/Applications", group)
- sub(/^X11\/GNOME\/Applications/,"X11/Applications", group)
- sub(/^X11\/GNOME\/Development\/Libraries/,"X11/Development/Libraries", group)
- sub(/^X11\/Games/,"X11/Applications/Games", group)
- sub(/^X11\/Games\/Strategy/,"X11/Applications/Games/Strategy", group)
- sub(/^X11\/Library/,"X11/Libraries", group)
- sub(/^X11\/Utilities/,"X11/Applications", group)
- sub(/^X11\/XFree86/, "X11", group)
- sub(/^X11\/Xserver$/, "X11/Servers", group)
- sub(/^Development\/C$/, "Development/Libraries", group)
- sub(/^Development\/Python$/, "Development/Languages/Python", group)
- sub(/^System\/Kernel and hardware$/, "Base/Kernel", group)
- sub(/^Application\/System$/, "Applications/System", group)
-
- return group;
-}
-
-# vim:ts=4:sw=4
+++ /dev/null
-; 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;
-
-
+++ /dev/null
-*** 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;
+++ /dev/null
-*** 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);
- }
-
+++ /dev/null
-*** sequence/sequence.c.orig 2008-05-05 13:25:09.000000000 -0700
---- sequence/sequence.c 2008-08-15 09:58:46.000000000 -0700
-***************
-*** 187,193 ****
- if ((ret = __db_get_flags(dbp, &tflags)) != 0)
- goto err;
-
-! if (DB_IS_READONLY(dbp)) {
- ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
- goto err;
- }
---- 187,197 ----
- if ((ret = __db_get_flags(dbp, &tflags)) != 0)
- goto err;
-
-! /*
-! * We can let replication clients open sequences, but must
-! * check later that they do not update them.
-! */
-! if (F_ISSET(dbp, DB_AM_RDONLY)) {
- ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
- goto err;
- }
-***************
-*** 244,249 ****
---- 248,258 ----
- if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
- !LF_ISSET(DB_CREATE))
- goto err;
-+ if (IS_REP_CLIENT(env) &&
-+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-+ ret = __db_rdonly(env, "DB_SEQUENCE->open");
-+ goto err;
-+ }
- ret = 0;
-
- rp = &seq->seq_record;
-***************
-*** 296,302 ****
- */
- rp = seq->seq_data.data;
- if (rp->seq_version == DB_SEQUENCE_OLDVER) {
-! oldver: rp->seq_version = DB_SEQUENCE_VERSION;
- if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
- if (IS_DB_AUTO_COMMIT(dbp, txn)) {
- if ((ret =
---- 305,316 ----
- */
- rp = seq->seq_data.data;
- if (rp->seq_version == DB_SEQUENCE_OLDVER) {
-! oldver: if (IS_REP_CLIENT(env) &&
-! !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-! ret = __db_rdonly(env, "DB_SEQUENCE->open");
-! goto err;
-! }
-! rp->seq_version = DB_SEQUENCE_VERSION;
- if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
- if (IS_DB_AUTO_COMMIT(dbp, txn)) {
- if ((ret =
-***************
-*** 707,712 ****
---- 721,733 ----
-
- MUTEX_LOCK(env, seq->mtx_seq);
-
-+ if (handle_check && IS_REP_CLIENT(env) &&
-+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-+ ret = __db_rdonly(env, "DB_SEQUENCE->get");
-+ goto err;
-+ }
-+
-+
- if (rp->seq_min + delta > rp->seq_max) {
- __db_errx(env, "Sequence overflow");
- ret = EINVAL;
+++ /dev/null
-#!/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 (count<count2) mincount=count
- else mincount=count2
-
- for (i=1; i<=mincount; i++) {
- if (v1a[i]=="") v1a[i]=0
- if (v2a[i]=="") v2a[i]=0
- if (DEBUG) print "i == " i
- if (DEBUG) print "v1[i] == " v1a[i]
- if (DEBUG) print "v2[i] == " v2a[i]
- if ((v1a[i]~/[0-9]/)&&(v2a[i]~/[0-9]/)) {
- 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 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 (count<count2) mincount=count
- else mincount=count2
-
- for (i=1; i<=mincount; i++) {
- if (v1a[i]=="") v1a[i]=0
- if (v2a[i]=="") v2a[i]=0
- if (DEBUG) print "i == " i
- if (DEBUG) print "v1[i] == " v1a[i]
- if (DEBUG) print "v2[i] == " v2a[i]
- if ((v1a[i]~/[0-9]/)&&(v2a[i]~/[0-9]/)) {
- if (i==2) {
- if (0+("." v2a[i])>0+("." 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 <A HREF=..> 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 ~ /<frame[ \t]/) {
- sub(/[sS][rR][cC]=[ \t]*/,"src=",odp);
- match(odp,/src="[^"]+"/)
- newurl=substr(odp,RSTART+5,RLENGTH-6)
- if (DEBUG) print "Frame: " newurl
- if (newurl !~ /\//) {
- newurl=(urldir newurl)
- if (DEBUG) print "Frame->: " 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 {
- # <a ...> but not href - skip
- if (DEBUG) print "skipping <a > 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; i<ARGC; i++) ARGV[i-1]=ARGV[i]
- ARGC=ARGC-1
- }
-}
-
-FNR==1 {
- if ( ARGIND != 1 ) {
- process_data(NAME,VER,REL,SRC)
- NAME="" ; VER="" ; REL=""
- for (i in DEFS) delete DEFS[i]
- for (i in SRC) delete SRC[i]
- }
- FNAME=FILENAME
-}
-
-/^[Uu][Rr][Ll]:/&&(URL=="") { URL=subst_defines($2,DEFS) ; DEFS["url"]=URL }
-/^[Nn]ame:/&&(NAME=="") { NAME=subst_defines($2,DEFS) ; DEFS["name"]=NAME }
-/^[Vv]ersion:/&&(VER=="") { VER=subst_defines($2,DEFS) ; DEFS["version"]=VER }
-/^[Rr]elease:/&&(REL=="") { REL=subst_defines($2,DEFS) ; DEFS["release"]=REL }
-/^[Ss]ource[0-9]*:/ { if (/(ftp|http):\/\//) SRC[FNR]=subst_defines($2,DEFS) }
-/%define/ { DEFS[$2]=subst_defines($3,DEFS) }
-
-END {
- process_data(NAME,VER,REL,SRC)
-}
+++ /dev/null
-https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146549
-
---- rpm-4.4.2/rpmio/rpmsq.c.deadlock 2005-07-13 12:47:03.000000000 +0200
-+++ rpm-4.4.2/rpmio/rpmsq.c 2005-08-19 14:47:53.000000000 +0200
-@@ -218,7 +218,6 @@
-
- sq->id = 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
+++ /dev/null
---- 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) {
- /*
+++ /dev/null
---- rpm-4.5/scripts/find-debuginfo.sh~ 2009-06-08 23:57:15.000000000 +0300
-+++ rpm-4.5/scripts/find-debuginfo.sh 2009-06-09 00:10:21.603343056 +0300
-@@ -306,6 +306,9 @@
- sed -n -r "\#^$ptn #s/ .*\$//p" "$LINKSFILE" | append_uniq "$out"
- }
-
-+# get rid of top level dir, we want it be only in filesystem-debuginfo package
-+sed -i -e '/^%dir \/usr\/lib\/debug$/d' "$LISTFILE"
-+
- #
- # When given multiple -o switches, split up the output as directed.
- #
+++ /dev/null
-diff -urN rpm-4.5/doc/rpmbuild.8 rpm-4.5.new/doc/rpmbuild.8
---- rpm-4.5/doc/rpmbuild.8 2009-04-12 11:29:27.449408696 +0200
-+++ rpm-4.5.new/doc/rpmbuild.8 2009-04-12 12:04:02.462534640 +0200
-@@ -252,6 +252,13 @@
- .SS "Temporary"
- .PP
- \fI/var/tmp/rpm*\fR
-+.SH "BUGS"
-+Extraction of the debugging data may fail if the source refer to files
-+with "//" in their path. In that case, the tool "debugedit" used by rpmbuild
-+to extract the debugging information will fail with a message "canonicalization
-+unexpectedly shrank by one character" but the binary package will be built
-+nevertheless.
-+
- .SH "SEE ALSO"
-
- .nf
-diff -urN rpm-4.5/scripts/find-debuginfo.sh rpm-4.5.new/scripts/find-debuginfo.sh
---- rpm-4.5/scripts/find-debuginfo.sh 2009-04-12 11:29:27.006092294 +0200
-+++ rpm-4.5.new/scripts/find-debuginfo.sh 2009-04-12 11:59:26.240060976 +0200
-@@ -200,7 +200,7 @@
-
- echo "extracting debug info from $f"
- id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-- -i -l "$SOURCEFILE" "$f") || exit
-+ -i -l "$SOURCEFILE" "$f")
- if [ -z "$id" ]; then
- echo >&2 "*** ${strict_error}: No build ID note found in $f"
- $strict && exit 2
+++ /dev/null
---- rpm-4.5/macros.in~ 2009-06-05 00:50:12.000000000 +0300
-+++ rpm-4.5/macros.in 2009-06-05 01:25:32.648494029 +0300
-@@ -746,8 +746,8 @@
-
- # Horowitz Key Protocol server configuration
- #
--%_hkp_keyserver hkp://subkeys.pgp.net
--%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
-+#%_hkp_keyserver hkp://subkeys.pgp.net
-+#%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
-
- #==============================================================================
- # ---- Transaction macros.
+++ /dev/null
---- 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
+++ /dev/null
-+---------------------------------------------------------------------------
-| Make sure that an %{error:<msg>} macro really stops further
-| processing. Else it would be nothing more than a %{warn:<msg>}.
-+---------------------------------------------------------------------------
---- 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
+++ /dev/null
-#!/bin/sh
-# $Id$
-
-# findlang - automagically generate list of language specific files
-# for inclusion in an rpm spec file.
-# This does assume that the *.mo files are under .../share/locale/...
-# Run with no arguments gets a usage message.
-
-# findlang is copyright (c) 1998 by W. L. Estes <wlestes@uncg.edu>
-
-# Redistribution and use of this software are hereby permitted for any
-# purpose as long as this notice and the above copyright notice remain
-# in tact and are included with any redistribution of this file or any
-# work based on this file.
-
-# Changes:
-#
-# 2006-08-28 Elan Ruusamäe <glen@pld-linux.org>
-# * fixed --all-name which got broken with last change.
-# 2006-08-09 Elan Ruusamäe <glen@pld-linux.org>
-# * huge performance boost for packages calling %find_lang multiple times (kde*i18n)
-# 2001-01-08 Micha³ Kochanowicz <mkochano@pld.org.pl>
-# * --all-name support for KDE.
-# 2000-11-28 Rafa³ Cygnarowski <pascalek@pld.org.pl>
-# * next simple rule for KDE
-# 2000-11-12 Rafa³ Cygnarowski <pascalek@pld.org.pl>
-# * simple rules for KDE help files
-# 2000-06-05 Micha³ Kochanowicz <mkochano@pld.org.pl>
-# * exact, not substring matching $NAME, i.e. find-lang top_dir NAME will
-# no longer find /usr/share/locale/pl/LC_MESSAGES/<anything>NAME.mo.
-# 2000-04-17 Arkadiusz Mi¶kiewicz <misiek@pld.org.pl>
-# * exit 1 when no files found
-# 1999-10-19 Artur Frysiak <wiget@pld.org.pl>
-# * added support for GNOME help files
-# * start support for KDE help files
-
-PROG=${0##*/}
-VERSION=$(set -- $Revision$; echo $2)
-
-usage () {
-cat <<EOF
-Usage: $PROG TOP_DIR PACKAGE_NAME [prefix]
-
-where TOP_DIR is
-the top of the tree containing the files to be processed--should be
-\$RPM_BUILD_ROOT usually. TOP_DIR gets sed'd out of the output list.
-PACKAGE_NAME is the %{name} of the package. This should also be
-the basename of the .mo files. the output is written to
-PACKAGE_NAME.lang unless \$3 is given in which case output is written
-to \$3.
-Additional options:
- --with-gnome find GNOME help files
- --with-kde find KDE help files
- --with-omf find OMF files
- --all-name match all package/domain names
- --without-mo skip *.mo locale files
- -o NAME output will be saved to NAME
- -a NAME output will be appended to NAME
-EOF
-exit 1
-}
-
-if [ -z "$1" ]; then
- usage
-elif [ $1 = / ]; then
- echo >&2 "$PROG: expects non-/ argument for '$1'"
- exit 1
-elif [ ! -d $1 ]; then
- echo >&2 "$PROG: $1: No such directory"
- exit 1
-else
- TOP_DIR="${1%/}"
-fi
-shift
-
-if [ -z "$1" ]; then
- usage
-else
- NAME=$1
-fi
-shift
-
-GNOME='#'
-KDE='#'
-OMF='#'
-MO=''
-OUTPUT=$NAME.lang
-ALL_NAME='#'
-NO_ALL_NAME=''
-APPEND=''
-while test $# -gt 0 ; do
- case "$1" in
- --with-gnome)
- GNOME=''
- echo "$PROG: Enabling with GNOME"
- shift
- ;;
- --with-kde)
- echo "$PROG: Enabling with KDE"
- KDE=''
- shift
- ;;
- --with-omf)
- echo "$PROG: Enabling with OMF"
- OMF=''
- shift
- ;;
- --without-mo)
- echo "$PROG: Disabling .mo files"
- MO='#'
- shift
- ;;
- --all-name)
- echo "$PROG: Enabling with all names"
- ALL_NAME=''
- NO_ALL_NAME='#'
- shift
- ;;
- -o)
- shift
- OUTPUT=$1
- shift
- ;;
- -a)
- shift
- OUTPUT=$1
- APPEND='>'
- shift
- ;;
- *)
- OUTPUT=$1
- shift
- ;;
- esac
-done
-
-echo "$PROG/$VERSION: find-lang '$NAME' $APPEND> $OUTPUT"
-
-MO_NAME=.$OUTPUT.tmp~
-echo '%defattr(644,root,root,755)' > $MO_NAME
-
-if [ ! -f __find.files ] || [ "$TOP_DIR" -nt __find.files ]; then
- find $TOP_DIR -xtype f -name '*.mo' | xargs -r file -L | \
- sed -e '
- /, 1 messages$/d
- s/:.*//
- s:'"$TOP_DIR"'::' > __find.files
-else
- echo "$PROG: Using cached __find.files"
-fi
-
-if [ ! -f __omf.files ] || [ "$TOP_DIR" -nt __omf.files ]; then
- find $TOP_DIR -type f -name '*.omf' | \
- sed -e '
- s:'"$TOP_DIR"'::' > __omf.files
-else
- echo "$PROG: Using cached __omf.files"
-fi
-
-(
- if [ "$ALL_NAME" ]; then
- fgrep $NAME __find.files
- else
- cat __find.files
- fi
-) | sed '
-'"$ALL_NAME$MO"'s:\(.*/share/locale/\)\([^/@]\+\)\(@quot\|@boldquot\)\?\(@[^/]*\)\?\(/.*\.mo$\):%lang(\2\4) \1\2\3\4\5:
-'"$NO_ALL_NAME$MO"'s:\(.*/share/locale/\)\([^/@]\+\)\(@quot\|@boldquot\)\?\(@[^/]*\)\?\(/.*/'"$NAME"'\.mo$\):%lang(\2\4) \1\2\3\4\5:
-/^[^%]/d
-s:%lang(C) ::' >> $MO_NAME
-
-(
- if [ "$ALL_NAME" ]; then
- fgrep $NAME __omf.files
- else
- cat __omf.files
- fi
-) | sed '
-'"$ALL_NAME$OMF"'s:\(.*/share/omf/[^/]\+/\)\(.*-\)\([^-]*\)\(\.omf\):%lang(\3) \1\2\3\4:
-'"$NO_ALL_NAME$OMF"'s:\(.*/share/omf/'"$NAME"'/\)\(.*-\)\([^-]*\)\(\.omf\):%lang(\3) \1\2\3\4:
-/^[^%]/d
-s:%lang(C) ::' >> $MO_NAME
-
-if [ ! -f __find.dirs ] || [ "$TOP_DIR" -nt __find.dirs ]; then
- find $TOP_DIR -mindepth 1 -type d | sed 's:'"$TOP_DIR"'::' > __find.dirs
-else
- echo "$PROG: Using cached __find.dirs"
-fi
-
-(
- if [ "$ALL_NAME" ]; then
- fgrep $NAME __find.dirs
- else
- cat __find.dirs
- fi
-) | sed '
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1:
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/\)\([^/]\+\)$:%lang(\2) \1\2:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[^/]\+$\):%dir \1:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[^/]\+/\)\([^/]\+\)$:%lang(\2) \1\2:
-/^[^%]/d
-s:%lang(C) ::' >> $MO_NAME
-
-(
- if [ "$ALL_NAME" ]; then
- fgrep $NAME __find.dirs
- else
- cat __find.dirs
- fi
-) | sed '
-'"$NO_ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/]\+\)\(/'"$NAME"'\)$:%lang(\2) \1\2\3:
-'"$ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/]\+\)\(/[^/]\+\)$:%lang(\2) \1\2\3:
-/^[^%]/d
-s:%lang(C) ::' >> $MO_NAME
-
-(
- if [ "$ALL_NAME" ]; then
- fgrep $NAME __find.dirs
- else
- cat __find.dirs
- fi
-) | sed '
-'"$NO_ALL_NAME$OMF"'s:\(.*/share/omf/'"$NAME"'$\):%dir \1:
-'"$ALL_NAME$OMF"'s:\(.*/share/omf/[^/]\+$\):%dir \1:
-/^[^%]/d
-s:%lang(C) ::' >> $MO_NAME
-
-if [ "$(egrep -v '(^%defattr|^$)' $MO_NAME | wc -l)" -le 0 ]; then
- echo >&2 "$PROG: Error: international files not found for '$NAME'!"
- exit 1
-fi
-
-if [ "$APPEND" ]; then
- cat $MO_NAME >> $OUTPUT
- rm -f $MO_NAME
-else
- mv -f $MO_NAME $OUTPUT
-fi
+++ /dev/null
---- rpm-4.5/rpmio/ugid.c 2009-06-05 00:46:30.450894061 +0300
-+++ rpm-4.5/rpmio/ugid.c 2009-06-19 19:35:42.374530092 +0300
-@@ -101,10 +101,10 @@
- /*@=internalglobs@*/
- grent = getgrnam(thisGname);
- if (grent == NULL) {
-- /* XXX The filesystem package needs group/lock w/o getgrnam. */
-- if (strcmp(thisGname, "lock") == 0) {
-+ /* XXX The FHS package needs group/uucp w/o getgrnam, filesystem needs adm */
-+ if (strcmp(thisGname, "uucp") == 0) {
- /*@-boundswrite@*/
-- *gid = lastGid = 54;
-+ *gid = lastGid = 14;
- /*@=boundswrite@*/
- return 0;
- } else
-@@ -114,6 +114,12 @@
- /*@=boundswrite@*/
- return 0;
- } else
-+ if (strcmp(thisGname, "adm") == 0) {
-+/*@-boundswrite@*/
-+ *gid = lastGid = 4;
-+/*@=boundswrite@*/
-+ return 0;
-+ } else
- return -1;
- }
- }
+++ /dev/null
-diff -urN rpm/lib/rpmfc.c rpm.new/lib/rpmfc.c
---- rpm/lib/rpmfc.c 2008-12-28 13:38:03.000000000 +0100
-+++ rpm.new/lib/rpmfc.c 2008-12-31 22:20:54.000000000 +0100
-@@ -960,13 +960,15 @@
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
- {
- const char * fn = fc->fn[fc->ix];
-- int flags = 0;
-+ int flags = 0, xx;
-
- if (fc->skipProv)
- flags |= RPMELF_FLAG_SKIPPROVIDES;
- if (fc->skipReq)
- flags |= RPMELF_FLAG_SKIPREQUIRES;
-
-+ xx = rpmfcHelper(fc, 'P', "gstreamer");
-+
- return rpmdsELF(fn, flags, rpmfcMergePR, fc);
- }
-
-diff -urN rpm/macros.in rpm.new/macros.in
---- rpm/macros.in 2008-12-28 13:38:02.000000000 +0100
-+++ rpm.new/macros.in 2008-12-28 15:18:46.000000000 +0100
-@@ -1505,5 +1505,7 @@
- # helper is also used by %{_rpmhome}/rpmdeps --provides
- %__mimetype_provides %{_rpmhome}/mimetypedeps.sh --provides
-
-+%__gstreamer_provides %{nil}
-+
- # \endverbatim
- #*/
+++ /dev/null
---- rpm-4.4.9/rpmdb/rpmdb.c~ 2008-10-20 22:25:17.000000000 +0300
-+++ rpm-4.4.9/rpmdb/rpmdb.c 2008-10-21 19:21:25.533647571 +0300
-@@ -844,7 +844,7 @@
- if (fd != NULL) {
- xx = Fclose(fd);
- fd = NULL;
-- if (headerGetEntry(h, RPMTAG_INSTALLTID, NULL, (void **)&iidp, NULL)) {
-+ if (headerGetEntry(h, RPMTAG_INSTALLTIME, NULL, (void **)&iidp, NULL)) {
- struct utimbuf stamp;
- stamp.actime = *iidp;
- stamp.modtime = *iidp;
+++ /dev/null
-diff -urN rpm-4.5/rpmdb/Makefile.am rpm-4.5.new/rpmdb/Makefile.am
---- rpm-4.5/rpmdb/Makefile.am 2008-09-06 16:46:54.000000000 +0200
-+++ rpm-4.5.new/rpmdb/Makefile.am 2008-09-06 19:35:40.000000000 +0200
-@@ -49,7 +49,8 @@
- $(top_builddir)/rpmio/librpmio.la \
- @WITH_POPT_LIB@ \
- @WITH_SQLITE3_LIB@ \
-- @WITH_LIBELF_LIB@
-+ @WITH_LIBELF_LIB@ \
-+ @WITH_SELINUX_LIB@
- librpmdb_la_LIBADD = $(DBLIBOBJS) $(libdb_la)
- librpmdb_la_DEPENDENCIES = $(DBLIBOBJS) $(libdb_la)
-
+++ /dev/null
---- rpm-4.5/lib/psm.c~ 2008-11-22 17:18:39.325237949 +0100
-+++ rpm-4.5/lib/psm.c 2008-11-22 17:30:16.807430141 +0100
-@@ -2308,13 +2308,16 @@
- replace_lzma_with_gzip(psm->oh);
- }
- *t = '\0';
-- t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
-- if (!strcmp(payload_compressor, "gzip"))
-- t = stpcpy(t, ".gzdio");
-- if (!strcmp(payload_compressor, "bzip2"))
-- t = stpcpy(t, ".bzdio");
-- if (!strcmp(payload_compressor, "lzma"))
-- t = stpcpy(t, ".lzdio");
-+ if (!strcmp(payload_compressor, "lzma")) {
-+ t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w5" : "r"));
-+ t = stpcpy(t, ".lzdio");
-+ } else {
-+ t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
-+ if (!strcmp(payload_compressor, "gzip"))
-+ t = stpcpy(t, ".gzdio");
-+ if (!strcmp(payload_compressor, "bzip2"))
-+ t = stpcpy(t, ".bzdio");
-+ }
-
- /*@-branchstate@*/
- if (!hge(fi->h, RPMTAG_PAYLOADFORMAT, NULL,
+++ /dev/null
---- rpm-4.5/rpmio/lzdio.c.org 2008-11-05 18:13:43.655364585 +0100
-+++ rpm-4.5/rpmio/lzdio.c 2008-11-05 18:13:51.136793343 +0100
-@@ -132,7 +132,7 @@
- for (i = 3; i < 1024; i++)
- xx = close(i);
- lzma = rpmGetPath("%{?__lzma}%{!?__lzma:/usr/bin/lzma}", NULL);
-- if (execle(lzma, "lzma", level, NULL, env))
-+ if (execle(lzma, "lzma", level, "-M0", NULL, env))
- _exit(1);
- lzma = _free(lzma);
- }
+++ /dev/null
---- rpm-4.4.9/rpmio/LzmaDecode.h.orig 2007-10-14 19:23:02.629594398 +0000
-+++ rpm-4.4.9/rpmio/LzmaDecode.h 2007-10-14 19:23:16.628653630 +0000
-@@ -35,7 +35,7 @@
- /* #define _LZMA_LOC_OPT */
- /* Enable local speed optimizations inside code */
-
--/* #define _LZMA_SYSTEM_SIZE_T */
-+#define _LZMA_SYSTEM_SIZE_T
- /* Use system's size_t. You can use it to enable 64-bit sizes supporting*/
-
- #ifndef UInt32
+++ /dev/null
---- rpm-4.4.9/macros.in 2008-03-27 19:45:51.090959034 +0200
-+++ rpm-4.4.9/macros.in 2008-04-04 23:09:48.869762337 +0300
-@@ -271,6 +271,9 @@
- #
- #%distribution
-
-+# PLD Linux Release
-+%pld_release ti
-+
- # Configurable distribution URL, same as DistURL: tag in a specfile.
- # The URL will be used to supply reliable information to tools like
- # rpmfind.
-@@ -1464,6 +1467,7 @@
- # -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
+++ /dev/null
-%define __gstreamer_provides /usr/lib/rpm/gstreamerdeps.sh --provides
+++ /dev/null
---- 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: <rpm-devel@lists.dulug.duke.edu>\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 <arekm@pld-linux.org>\n"
-+"PO-Revision-Date: 2007-05-22 00:13+0200\n"
-+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
- "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\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 "<spec>"
-
- #: lib/poptQV.c:144
--#, fuzzy
- msgid "query source metadata from spec file parse"
--msgstr "buduj tylko pakiet ¼ród³owy z <pliku spec>"
-+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 <policy> (e.g. compress man pages)"
--#~ msgstr "ustaw <politykê> buildroot (np. kompresowanie stron manuala)"
--
--#~ msgid "<policy>"
--#~ msgstr "<polityka>"
--
--#~ msgid "enable configure <option> for build"
--#~ msgstr "w³±cz <opcjê> konfiguracji przy budowaniu"
--
--#~ msgid "<option>"
--#~ msgstr "<opcja>"
--
--#~ msgid "disable configure <option> for build"
--#~ msgstr "wy³±cz <opcjê> konfiguracji przy budowaniu"
--
--#~ msgid "use database in DIRECTORY"
--#~ msgstr "u¿yj bazy danych w KATALOGu"
--
--#~ msgid "DIRECTORY"
--#~ msgstr "KATALOG"
--
--#~ msgid "don't verify header+payload signature"
--#~ msgstr "nie sprawdzaj sygnatury nag³ówka+danych"
--
--#~ msgid "don't update cache database, only print package paths"
--#~ msgstr "nie uaktualniaj bazy danych bufora, tylko wypisz ¶cie¿ki pakietu"
--
--#~ msgid "File tree walk options:"
--#~ msgstr "Opcje przechodzenia po drzewie plików:"
--
--#~ msgid "%s: %%{_cache_dbpath} macro is mis-configured.\n"
--#~ msgstr "%s: makro %%{_cache_dbpath} jest b³êdnie skonfigurowane.\n"
--
--#~ msgid "%s: cache operation failed: ec %d.\n"
--#~ msgstr "%s: operacja na cache nie powiod³a siê: ec %d.\n"
--
--#~ msgid "%s: read manifest failed: %s\n"
--#~ msgstr "%s: odczyt \"manifestu\" nie powiód³ siê: %s\n"
--
--#~ msgid "Spec file can't use BuildRoot\n"
--#~ msgstr "Plik spec nie mo¿e u¿ywaæ BuildRoot\n"
--
--#~ msgid "buildroot already specified, ignoring %s\n"
--#~ msgstr "buildroot by³ ju¿ wcze¶niej podany, %s jest ignorowany\n"
--
--#~ msgid "override build root"
--#~ msgstr "wymu¶ build root"
--
--#~ msgid " %s[%d]: %s\n"
--#~ msgstr " %s[%d]: %s\n"
--
--#~ msgid "Target buffer overflow\n"
--#~ msgstr "Przepe³nienie bufora docelowego\n"
--
--#~ msgid "Building for target %s\n"
--#~ msgstr "Budowanie dla %s\n"
--
--#~ msgid "Internal error in argument processing (%d) :-(\n"
--#~ msgstr "B³±d wewnêtrzny w przetwarzaniu argumentu (%d) :-(\n"
--
--#~ msgid "\tMatches found.\n"
--#~ msgstr "\tPasuj±cych znaleziono.\n"
--
--#~ msgid "\tNo matches found.\n"
--#~ msgstr "\tNie znaleziono pasuj±cych.\n"
-+#: rpmpopt:142
-+msgid ""
-+"find package name that contains a provided capability (needs rpmdb-vendor "
-+"package installed)"
-+msgstr ""
-+"znajd¼ nazwê pakietu, który zawiera dostarczan± w³asno¶æ (wymaga "
-+"zainstalowanego pakietu rpmdb-vendor)"
-
--#~ msgid "\tREMOVETID matched INSTALLTID.\n"
--#~ msgstr "\tREMOVETID dopasowano do INSTALLTID.\n"
-+#: rpmpopt:145
-+msgid ""
-+"find package name that contains a required capability (needs rpmdb-vendor "
-+"package installed)"
-+msgstr ""
-+"znajd¼ nazwê pakietu, który zawiera wymagan± w³asno¶æ (wymaga "
-+"zainstalowanego pakietu rpmdb-vendor)"
-
--#~ msgid "Couldn't download nosource %s: %s\n"
--#~ msgstr "Nie mo¿na ¶ci±gn±æ pliku nosource %s: %s\n"
-+#: rpmpopt:150
-+msgid "Failed transactions will be rolled back automatically"
-+msgstr "Transakcje zakoñczone niepowodzeniem zostan± wycofane automatycznie"
-+
-+#: rpmpopt:154
-+msgid "display package(s) previously installed"
-+msgstr "wy¶wietl pakiet(y) zainstalowane wcze¶niej"
-+
-+#: rpmpopt:157
-+msgid "display package(s) which replaced"
-+msgstr "wy¶wietl zastêpowane pakiet(y)"
-+
-+#: rpmpopt:168
-+msgid "set buildroot <policy> (e.g. compress man pages)"
-+msgstr "ustaw <politykê> buildroot (np. kompresowanie stron manuala)"
-+
-+#: rpmpopt:169
-+msgid "<policy>"
-+msgstr "<polityka>"
-+
-+#: rpmpopt:255 rpmpopt:270 rpmpopt:285
-+msgid "enable configure <option> for build"
-+msgstr "w³±cz <opcjê> konfiguracji przy budowaniu"
-+
-+#: rpmpopt:256 rpmpopt:259 rpmpopt:271 rpmpopt:274
-+#: rpmpopt:286 rpmpopt:289
-+msgid "<option>"
-+msgstr "<opcja>"
-+
-+#: rpmpopt:258 rpmpopt:273 rpmpopt:288
-+msgid "disable configure <option> for build"
-+msgstr "wy³±cz <opcjê> konfiguracji przy budowaniu"
-+
-+#: rpmpopt:262 rpmpopt:277 rpmpopt:295 rpmpopt:303
-+#: rpmpopt:311 rpmpopt:319 rpmpopt:327 rpmpopt:335
-+#: rpmpopt:343 rpmpopt:454 rpmpopt:564 rpmpopt:572
-+msgid "use database in DIRECTORY"
-+msgstr "u¿yj bazy danych w KATALOGu"
-+
-+#: rpmpopt:263 rpmpopt:278 rpmpopt:292 rpmpopt:296
-+#: rpmpopt:304 rpmpopt:312 rpmpopt:320 rpmpopt:328
-+#: rpmpopt:336 rpmpopt:344 rpmpopt:455 rpmpopt:565
-+#: rpmpopt:573
-+msgid "DIRECTORY"
-+msgstr "KATALOG"
-
--# --- from popt/po/pl.po (in popt.h, not in .pot) ---
--#~ msgid "Options implemented via popt alias/exec:"
--#~ msgstr "Opcje zaimplementowane poprzez popt alias/exec:"
-+#: rpmpopt:291
-+msgid "override build root"
-+msgstr "wymu¶ build root"
-+
-+#: rpmpopt:438 rpmpopt:548
-+msgid "list file names with security context"
-+msgstr "wypisz nazwy plików z kontekstami bezpieczeñstwa"
-+
-+# --- from popt/po/pl.po (in popt.h, displayed using rpm domain)
-+msgid "Options implemented via popt alias/exec:"
-+msgstr "Opcje zaimplementowane poprzez popt alias/exec:"
-
--#~ msgid "Help options:"
--#~ msgstr "Opcje pomocy:"
-+msgid "Help options:"
-+msgstr "Opcje pomocy:"
-
- # --- from popt (displayed using rpm domain)
--#~ msgid "Show this help message"
--#~ msgstr "Poka¿ tê pomoc"
-+msgid "Show this help message"
-+msgstr "Poka¿ tê pomoc"
-
--#~ msgid "Display brief usage message"
--#~ msgstr "Wy¶wietl skrócony sposób u¿ycia"
-+msgid "Display brief usage message"
-+msgstr "Wy¶wietl skrócony sposób u¿ycia"
+++ /dev/null
---- rpm-4.4.3/configure.ac.orig 2005-11-18 23:04:14.916675328 +0100
-+++ rpm-4.4.3/configure.ac 2005-11-18 23:05:28.163540112 +0100
-@@ -42,7 +42,7 @@
- AC_SUBST(LT_AGE, 0)
-
- dnl Set of available languages.
--ALL_LINGUAS="cs da de fi fr gl is ja ko no pl pt pt_BR ro ru sk sl sr sv tr uk"
-+ALL_LINGUAS="cs da de fi fr gl id is it ja ko nb pl pt pt_BR ro ru sk sl sr@Latn sv tr uk"
-
- dnl Checks for programs.
- AC_PROG_CXX
+++ /dev/null
---- rpm-4.3/lib/depends.c.orig 2003-05-15 18:16:51.000000000 +0200
-+++ rpm-4.3/lib/depends.c 2003-06-29 00:17:42.000000000 +0200
-@@ -343,8 +343,12 @@
-
- /* On upgrade, erase older packages of same color (if any). */
-
-+ /* NOTE: in PLD we don't want to remove packages which only provided
-+ * %{name} (e.g. perl-modules in case of some newer perl modules),
-+ * so we use NAME instead of PROVIDENAME (as in vanilla rpm) here */
-+
- if (!(depFlags & RPMDEPS_FLAG_NOUPGRADE)) {
-- mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, rpmteN(p), 0);
-+ mi = rpmtsInitIterator(ts, RPMTAG_NAME, rpmteN(p), 0);
- while((oh = rpmdbNextIterator(mi)) != NULL) {
- int lastx;
- rpmte q;
-
+++ /dev/null
---- rpm-4.4.6/lib/psm.c.old 2006-09-25 17:55:05.000000000 +0200
-+++ rpm-4.4.6/lib/psm.c 2006-09-25 19:40:47.000000000 +0200
-@@ -6,6 +6,7 @@
- #include "system.h"
-
- #include <rpmio_internal.h> /* XXX FDSTAT_READ */
-+#include <header_internal.h>
- #include <rpmcb.h> /* XXX fnpyKey */
- #include <rpmmacro.h>
- #include <rpmurl.h>
-@@ -1403,6 +1404,19 @@
- return rpmpsmStage(psm, psm->nstage);
- }
-
-+static void replace_lzma_with_gzip(Header h)
-+{
-+ indexEntry entry;
-+ int i;
-+
-+ for (i = 0, entry = h->index; i < h->indexUsed; i++, entry++) {
-+ if (entry->info.tag == RPMTAG_PAYLOADCOMPRESSOR) {
-+ memcpy(entry->data, "gzip", 4);
-+ break;
-+ }
-+ }
-+}
-+
- /**
- * @todo Packages w/o files never get a callback, hence don't get displayed
- * on install with -v.
-@@ -2151,6 +2165,11 @@
- payload_compressor = "gzip";
- /*@=branchstate@*/
- psm->rpmio_flags = t = xmalloc(sizeof("w9.gzdio"));
-+ if (psm->goal == PSM_PKGSAVE && !strcmp(payload_compressor, "lzma") && access("/usr/bin/lzma", X_OK)) {
-+ /* FIXME: digest is bad. */
-+ payload_compressor = "gzip";
-+ replace_lzma_with_gzip(psm->oh);
-+ }
- *t = '\0';
- t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r"));
- if (!strcmp(payload_compressor, "gzip"))
+++ /dev/null
-Index: rpm2cpio
-===================================================================
-RCS file: /v/rpm/cvs/rpm/scripts/rpm2cpio,v
-retrieving revision 1.2
-retrieving revision 1.2.2.1
-diff -u -u -r1.2 -r1.2.2.1
---- rpm/scripts/rpm2cpio 25 May 2007 18:34:16 -0000 1.2
-+++ rpm/scripts/rpm2cpio 10 Jun 2007 11:43:39 -0000 1.2.2.1
-@@ -23,4 +23,14 @@
- hdrsize=`expr 8 + 16 \* $il + $dl`
- o=`expr $o + $hdrsize`
-
--dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip
-+comp=$(dd if="$pkg" ibs=$o skip=1 count=1 2>/dev/null \
-+ | dd bs=3 count=1 2> /dev/null)
-+
-+gz="$(echo -en '\037\0213')"
-+case "$comp" in
-+ BZh) dd if="$pkg" ibs=$o skip=1 2>/dev/null | bunzip2 ;;
-+ "$gz"*) dd if="$pkg" ibs=$o skip=1 2>/dev/null | gunzip ;;
-+ # no magic in old lzma format, if unknown we assume that's lzma for now
-+ *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | lzma d -si -so ;;
-+ #*) echo "Unrecognized rpm file: $pkg"; return 1 ;;
-+esac
+++ /dev/null
-Index: rpm/rpmdb/db3.c
-RCS File: /v/rpm/cvs/rpm/rpmdb/db3.c,v
-rcsdiff -q -kk '-r1.71' '-r1.72' -u '/v/rpm/cvs/rpm/rpmdb/db3.c,v' 2>/dev/null
---- db3.c 2007/08/18 23:40:36 1.71
-+++ db3.c 2007/09/24 02:38:57 1.72
-@@ -275,12 +275,21 @@
- fileSystem @*/
- /*@modifies dbi, *dbenvp, fileSystem @*/
- {
-+ static int oneshot = 0;
- rpmdb rpmdb = dbi->dbi_rpmdb;
- DB_ENV *dbenv = NULL;
- int eflags;
- int rc;
- int xx;
-
-+ if (!oneshot) {
-+#if (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR != 0) || (DB_VERSION_MAJOR == 4)
-+ xx = db_env_set_func_open(Open);
-+ xx = cvtdberr(dbi, "db_env_set_func_open", xx, _debug);
-+#endif
-+ oneshot++;
-+ }
-+
- if (dbenvp == NULL)
- return 1;
-
-Index: rpm/rpmdb/rpmdb.c
-RCS File: /v/rpm/cvs/rpm/rpmdb/rpmdb.c,v
-rcsdiff -q -kk '-r1.158' '-r1.159' -u '/v/rpm/cvs/rpm/rpmdb/rpmdb.c,v' 2>/dev/null
---- rpmdb.c 2007/09/09 19:06:51 1.158
-+++ rpmdb.c 2007/09/24 02:38:57 1.159
-@@ -3618,8 +3618,9 @@
- if (db == NULL) return 0;
-
- mi = rpmdbInitIterator(db, RPMTAG_BASENAMES, NULL, 0);
-- if (mi == NULL) /* XXX should never happen */
-- return 0;
-+assert(mi); /* XXX will never happen. */
-+ if (mi == NULL)
-+ return 2;
-
- key = &mi->mi_key;
- data = &mi->mi_data;
-Index: rpm/rpmio/librpmio.vers
-RCS File: /v/rpm/cvs/rpm/rpmio/librpmio.vers,v
-rcsdiff -q -kk '-r2.12' '-r2.13' -u '/v/rpm/cvs/rpm/rpmio/librpmio.vers,v' 2>/dev/null
---- librpmio.vers 2007/09/09 20:32:43 2.12
-+++ librpmio.vers 2007/09/24 02:38:57 2.13
-@@ -140,6 +140,8 @@
- _Mknod;
- Mount;
- noLibio;
-+ Open;
-+ _Open;
- Opendir;
- _Opendir;
- pgpArmorKeyTbl;
-Index: rpm/rpmio/rpmio.h
-RCS File: /v/rpm/cvs/rpm/rpmio/rpmio.h,v
-rcsdiff -q -kk '-r1.57' '-r1.58' -u '/v/rpm/cvs/rpm/rpmio/rpmio.h,v' 2>/dev/null
---- rpmio.h 2007/08/28 20:45:49 1.57
-+++ rpmio.h 2007/09/24 02:38:57 1.58
-@@ -342,11 +342,22 @@
- /*@globals errno, h_errno, fileSystem, internalState @*/
- /*@modifies errno, fileSystem, internalState @*/;
-
-+/*@unchecked@*/ /*@observer@*/ /*@null@*/
-+extern const char * _chroot_prefix;
-+
- /**
- * chroot(2) clone.
- * @todo Implement remotely.
- */
- int Chroot(const char * path)
-+ /*@globals _chroot_prefix, errno, fileSystem, internalState @*/
-+ /*@modifies _chroot_prefix, errno, fileSystem, internalState @*/;
-+
-+/**
-+ * open(2) clone.
-+ * @todo Implement remotely.
-+ */
-+int Open(const char * path, int flags, mode_t mode)
- /*@globals errno, fileSystem, internalState @*/
- /*@modifies errno, fileSystem, internalState @*/;
-
-Index: rpm/rpmio/rpmrpc.c
-RCS File: /v/rpm/cvs/rpm/rpmio/rpmrpc.c,v
-rcsdiff -q -kk '-r2.54' '-r2.55' -u '/v/rpm/cvs/rpm/rpmio/rpmrpc.c,v' 2>/dev/null
---- rpmrpc.c 2007/07/10 18:00:30 2.54
-+++ rpmrpc.c 2007/09/24 02:38:57 2.55
-@@ -160,6 +160,9 @@
- return rmdir(path);
- }
-
-+/*@unchecked@*/
-+const char * _chroot_prefix = NULL;
-+
- int Chroot(const char * path)
- {
- const char * lpath;
-@@ -183,11 +186,56 @@
- return -2;
- /*@notreached@*/ break;
- }
-+
-+ _chroot_prefix = _free(_chroot_prefix);
-+ if (strcmp(path, "."))
-+ _chroot_prefix = rpmGetPath(path, NULL);
-+
- /*@-superuser@*/
- return chroot(path);
- /*@=superuser@*/
- }
-
-+int Open(const char * path, int flags, mode_t mode)
-+{
-+ const char * lpath;
-+ int ut = urlPath(path, &lpath);
-+
-+if (_rpmio_debug)
-+fprintf(stderr, "*** Open(%s, 0x%x, 0%o)\n", path, flags, mode);
-+ switch (ut) {
-+ case URL_IS_PATH:
-+ path = lpath;
-+ /*@fallthrough@*/
-+ case URL_IS_UNKNOWN:
-+ break;
-+ case URL_IS_DASH:
-+ case URL_IS_HKP:
-+ case URL_IS_FTP: /* XXX TODO: implement. */
-+ case URL_IS_HTTPS: /* XXX TODO: implement. */
-+ case URL_IS_HTTP: /* XXX TODO: implement. */
-+ default:
-+ errno = EINVAL; /* XXX W2DO? */
-+ return -2;
-+ /*@notreached@*/ break;
-+ }
-+
-+ if (_chroot_prefix && _chroot_prefix[0] == '/' && _chroot_prefix[1] != '\0')
-+ {
-+ size_t nb = strlen(_chroot_prefix);
-+ size_t ob = strlen(path);
-+ while (nb > 0 && _chroot_prefix[nb-1] == '/')
-+ nb--;
-+ if (ob > nb && !strncmp(path, _chroot_prefix, nb) && path[nb] == '/')
-+ path += nb;
-+ }
-+#ifdef NOTYET /* XXX likely sane default. */
-+ if (mode == 0)
-+ mode = 0644;
-+#endif
-+ return open(path, flags, mode);
-+}
-+
- /* XXX rpmdb.c: analogue to rename(2). */
-
- int Rename (const char * oldpath, const char * newpath)
+++ /dev/null
-Index: rpm/rpmdb/rpmdb.c
---- rpm/rpmdb/rpmdb.c 2007/10/22 02:48:42 1.195
-+++ rpm/rpmdb/rpmdb.c 2007/11/02 03:07:46 1.196
-@@ -3917,7 +3917,7 @@
- }
- dbpath = rootdbpath = rpmGetPath(prefix, tfn, NULL);
- if (!(prefix[0] == '/' && prefix[1] == '\0'))
-- dbpath += strlen(prefix) - 1;
-+ dbpath += strlen(prefix);
- tfn = _free(tfn);
-
- /*@-nullpass@*/
+++ /dev/null
-diff -urN rpm-4.4.9.org/rpmdb/rpmdb.c rpm-4.4.9/rpmdb/rpmdb.c
---- rpm-4.4.9.org/rpmdb/rpmdb.c 2007-11-18 15:11:35.653546000 +0100
-+++ rpm-4.4.9/rpmdb/rpmdb.c 2007-11-18 15:14:35.666077651 +0100
-@@ -3899,11 +3899,6 @@
- int * dbiTags = NULL;
- int dbiTagsMax = 0;
-
-- /*@-branchstate@*/
-- if (prefix == NULL) prefix = "/";
-- /*@=branchstate@*/
-- prefix = rpmGetPath(prefix, NULL); /* strip trailing '/' */
--
- _dbapi = rpmExpandNumeric("%{_dbapi}");
- _dbapi_rebuild = rpmExpandNumeric("%{_dbapi_rebuild}");
-
-@@ -3920,6 +3915,16 @@
- rc = 1;
- goto exit;
- }
-+ /* Add --root prefix iff --dbpath is not a URL. */
-+ switch (urlPath(tfn, NULL)) {
-+ default:
-+ prefix = xstrdup("");
-+ break;
-+ case URL_IS_UNKNOWN:
-+ prefix = rpmGetPath((prefix ? prefix : "/"), NULL);
-+ break;
-+ }
-+
- dbpath = rootdbpath = rpmGetPath(prefix, tfn, NULL);
- if (!(prefix[0] == '/' && prefix[1] == '\0'))
- dbpath += strlen(prefix);
-@@ -3945,7 +3950,7 @@
- }
- newdbpath = newrootdbpath = rpmGetPath(prefix, tfn, NULL);
- if (!(prefix[0] == '/' && prefix[1] == '\0'))
-- newdbpath += strlen(prefix) - 1;
-+ newdbpath += strlen(prefix);
- tfn = _free(tfn);
-
- rpmMessage(RPMMESS_DEBUG, _("rebuilding database %s into %s\n"),
+++ /dev/null
---- rpm/lib/rpmrc.c~ 2006-10-18 19:47:13.889558500 +0200
-+++ rpm/lib/rpmrc.c 2006-10-18 20:00:09.350021750 +0200
-@@ -1797,10 +1797,8 @@
- defaultsInitialized = 1;
- }
-
--#ifdef DYING
- if (rcfiles == NULL)
- rcfiles = rpmRcfiles;
--#endif
-
- /* Read each file in rcfiles. */
- rc = 0;
+++ /dev/null
---- rpm-4.4.9/rpmio/macro.c.old 2007-11-10 10:29:08.000000000 +0100
-+++ rpm-4.4.9/rpmio/macro.c 2007-11-10 10:37:25.000000000 +0100
-@@ -21,6 +21,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <strings.h>
- #define rpmError fprintf
- #define RPMERR_BADSPEC stderr
- #undef _
-@@ -2106,6 +2107,7 @@ int isCompressed(const char * file, rpmC
- ssize_t nb;
- int rc = -1;
- unsigned char magic[13];
-+ char *end, *ext;
-
- *compressed = COMPRESSED_NOT;
-
-@@ -2131,6 +2133,11 @@ int isCompressed(const char * file, rpmC
-
- rc = 0;
-
-+ /* Tar archives will be recognized by filename. */
-+ end = strchr(file, '\0');
-+ ext = end - 4;
-+ if (ext > file && !strcasecmp(ext, ".tar")) return rc;
-+
- if (magic[0] == 'B' && magic[1] == 'Z')
- *compressed = COMPRESSED_BZIP2;
- else
+++ /dev/null
---- a/lib/rpmds.c 10 Jun 2007 17:12:25 -0000 2.55.2.4
-+++ b/lib/rpmds.c 6 Oct 2007 01:09:19 -0000
-@@ -253,6 +255,7 @@
- const char ** N;
- rpmTagType Nt;
- int_32 Count;
-+int rpmv3 = headerIsEntry(h, RPMTAG_OLDFILENAMES);
-
- assert(scareMem == 0); /* XXX always allocate memory */
- if (tagN == RPMTAG_PROVIDENAME) {
-@@ -280,12 +283,12 @@
- tagEVR = RPMTAG_TRIGGERVERSION;
- tagF = RPMTAG_TRIGGERFLAGS;
- } else
-- if (tagN == RPMTAG_DIRNAMES) {
-+ if (!rpmv3 && tagN == RPMTAG_DIRNAMES) {
- Type = "Dirnames";
- tagEVR = 0;
- tagF = 0;
- } else
-- if (tagN == RPMTAG_FILELINKTOS) {
-+ if (!rpmv3 && tagN == RPMTAG_FILELINKTOS) {
- Type = "Filelinktos";
- tagEVR = RPMTAG_DIRNAMES;
- tagF = RPMTAG_DIRINDEXES;
+++ /dev/null
-# $Revision$, $Date$
-# PLD Linux rpm macros
-
-%epoch 0
-%x8664 x86_64 amd64 ia32e
-
-# kernel compiler
-%kgcc %{__cc}
-%kgcc_package gcc
-
-# compiler version
-%cc_version %{expand:%%global cc_version %(%{__cc} -dumpversion || echo ERROR)}%cc_version
-%cxx_version %{expand:%%global cxx_version %(%{__cxx} -dumpversion || echo ERROR)}%cxx_version
-
-%__rm /bin/rm --interactive=never
-
-# Build system path macros.
-%__autoconf autoconf %{?debug:-Wall}
-%__automake automake -a -c -f --foreign
-%__autopoint autopoint --force
-
-# add parallel build flags: -jN
-#
-# if you want to disable parallel build do (replace %% with %)
-# echo '%%_smp_mflags %%{nil}' >> ~/.rpmmacros
-#
-%__make make %{?_smp_mflags}
-%__scons scons %{?_smp_mflags}
-%__waf waf %{?_smp_mflags}
-%__cmake cmake %{?_smp_mflags}
-
-%_smp_mflags %(_NCPUS=$(/usr/bin/getconf _NPROCESSORS_ONLN); \\\
- [ "$_NCPUS" -gt 1 ] && echo "-j$(($_NCPUS * 2))")
-
-%__gettextize { \
- if grep -qs 'AM_GNU_GETTEXT.*external' configure.{ac,in} ; then \
- gettextize --copy --force --no-changelog; \
- else \
- gettextize --copy --force --no-changelog --intl; \
- fi; \
- if [ ! -f po/Makevars ]; then \
- cp -f po/Makevars{.template,}; \
- fi; \
-}
-
-%__glib_gettextize glib-gettextize --copy --force
-%__gnome_doc_common gnome-doc-common --copy
-%__gnome_doc_prepare gnome-doc-prepare --copy --force
-%__gtkdocize gtkdocize --copy
-%__intltoolize intltoolize --copy --force
-%__libtoolize libtoolize --copy --force --install
-
-# Path to top of build area.
-%_topdir %{expand:%%global _topdir %(test -d ../SPECS -a -d ../SOURCES && (cd ..; pwd) || echo $HOME/rpm)}%_topdir
-
-# The number of cvs changelog entries kept when building package.
-%_buildchangelogtruncate 20
-
-%dependencytracking %{nil}
-
-# Relations between package names that cause dependency loops
-# with legacy packages that cannot be fixed. Relations are
-# specified as
-# p>q
-# where package p has a Requires: on something that package q Provides:
-#
-# XXX Note: that there cannot be any whitespace within the string "p>q",
-# and that both p and q are package names (i.e. no version/release).
-%_dependency_whiteout %{nil}
-
-#-----------------------------------------------------------------
-#
-# (re)definition of %{rpm*flags} with %filterout_* support
-# BuildRequires: awk
-# BuildRequires: rpmbuild(macros) >= 1.315
-#
-# Flags specified in %filterout_* are removed from %rpm*flags, exactly:
-# %rpmcflags = %optflags - %filterout - %filterout_c - %filterout_ld
-# %rpmcxxflags = %optflags - %filterout - %filterout_cxx - %filterout_ld
-# %rpmcppflags = %optcppflags - %filterout - %filterout_cpp - %filterout_ld
-# %rpmldflags = %optldflags - %filterout_ld
-#
-# Regular expressions are supported, but to avoid some character be treated
-# as regular expression it must be escaped twice.
-
-%filter_out \
- for (i = 1; i in I; i++) { A=0; \
- for (f in F) { \
- if (I[i] ~ "^" F[f] "$") A=1; \
- }; \
- if (!A) printf(I[i] FS); \
- }
-
-%rpmcflags %(awk 'BEGIN {
- split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
- split("%{?filterout} %{?filterout_c} %{?filterout_ld}",F);
- %{filter_out}
-}')
-
-%rpmcxxflags %(awk 'BEGIN {
- split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
- split("%{?filterout} %{?filterout_cxx} %{?filterout_ld}",F);
- %{filter_out}
-}')
-
-%rpmcppflags %(awk 'BEGIN {
- split("%{?debug:%debugcppflags}%{!?debug:%optcppflags}%{?debuginfocppflags}",I);
- split("%{?filterout} %{?filterout_cpp} %{?filterout_cpp}",F);
- %{filter_out}
-}')
-
-%rpmldflags %(awk 'BEGIN {
- split("%{?optldflags}",I);
- split("%{?filterout_ld}",F)
- %{filter_out}
-}')
-
-# rpmldflags with stripped -Wl, -- in the form flags have to be passed to 'ld'
-# but, don't use it, better use gcc as linker
-%ld_rpmldflags %(awk 'BEGIN {
- split("%{rpmldflags}",F);
- for (f in F) {
- s = F[f];
- if (s ~ /^-Wl,/) {
- s = substr(s,5);
- gsub(/,/," ",s);
- };
- printf(s FS);
- };
-}')
-
-#-----------------------------------------------------------------
-#
-# Generate a command which cleans environment, leaving only the
-# most important variables.
-# If any spec requires any additional environment it should
-# redefine %_preserve_env in following manner:
-#
-# # ADDITIONAL_VAR is required because [a good reason here]
-# %define _preserve_env ADDITIONAL_VAR
-
-%_preserve_env_base PATH HOME TMP TMPDIR SSH_AUTH_SOCK
-
-# "env -i" must end in first line of expaned macros because it's used as first line of shell script (#! env...)
-%_clean_env %{!?_preserve_env:%global _preserve_env %{nil}}%{expand:%%global _preserve_env %{_preserve_env} %_preserve_env_base} env -i %(awk -vq="'" -vqq="\\"'\\"" -vq2q="'\\"'" 'BEGIN {
- split("%{?_preserve_env}", P);
- for (i in P) {
- p = P[i];
- if (!ENVIRON[p] || d[p]) {
- continue;
- }
- d[p] = 1;
- split(ENVIRON[p], V, "");
- val = p "=";
- for (j = 1; j in V; j++) {
- v = V[j];
- if (v == q)
- v = qq;
- else if (v == "\\"")
- v = q2q;
- else if (v == "\\\\")
- v = "\\\\\\\\";
- else
- gsub("[^a-zA-Z0-9/:._-]", "\\"&\\"", v);
- val = val "" v;
- }
- printf(val " ");
- }
-}')
-
-#-----------------------------------------------------------------
-%configure2_13 { \
- if [ -n "$LINGUAS" ]; then unset LINGUAS; fi; \
- LDFLAGS="${LDFLAGS:-%rpmldflags}" ; export LDFLAGS ; \
- CFLAGS="${CFLAGS:-%rpmcflags}" ; export CFLAGS ; \
- CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" ; export CXXFLAGS ; \
- FFLAGS="${FFLAGS:-%rpmcflags}" ; export FFLAGS ; \
- FCFLAGS="${FCFLAGS:-%rpmcflags}" ; export FCFLAGS ; \
- CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" ; export CPPFLAGS ; \
- %{?__cc:CC="%{__cc}" ; export CC ; } \
- %{?__cxx:CXX="%{__cxx}" ; export CXX ; } \
- %{?configuredir:%{configuredir}}%{!?configuredir:.}/configure \
- --host=%{_target_platform} \
- --prefix=%{_prefix} \
- --exec-prefix=%{_exec_prefix} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --sysconfdir=%{_sysconfdir} \
- --datadir=%{_datadir} \
- --includedir=%{_includedir} \
- --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --localstatedir=%{_localstatedir} \
- --sharedstatedir=%{_sharedstatedir} \
- --mandir=%{_mandir} \
- --infodir=%{_infodir} \
- --x-libraries=%{?_x_libraries}%{!?_x_libraries:%{_libdir}} \
- %{dependencytracking} \
-}
-
-%__cmake /usr/bin/cmake
-%cmake { \
-CC="%{__cc}" \
-CXX="%{__cxx}" \
-CFLAGS="%{rpmcflags}" \
-CXXFLAGS="%{rpmcxxflags}" \
-LDFLAGS="%{rpmldflags}" \
-%{__cmake} \
-}
-
-# override __scons to add -j4 in your ~/.rpmmacros for parallel make
-%__scons /usr/bin/scons
-%scons { \
-%{__scons} \
- LDFLAGS="${LDFLAGS:-%rpmldflags}" \
- CFLAGS="${CFLAGS:-%rpmcflags}" \
- CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
- FFLAGS="${FFLAGS:-%rpmcflags}" \
- CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
- %{?__cc:CC="%{__cc}"} \
- %{?__cxx:CXX="%{__cxx}"} \
- libsuffix=%{_lib} \
- prefix=%{_prefix} \
-}
-
-# waf. see waf.spec
-# override __waf to add -j4 in your ~/.rpmmacros for parallel make
-%__waf /usr/bin/waf
-%waf { \
-CC="%{__cc}" \
-CXX="%{__cxx}" \
-CPP="%{__cpp}" \
-CFLAGS="%{rpmcflags}" \
-CXXFLAGS="%{rpmcxxflags}" \
-%{__waf} \
-}
-
-#----------------------------------------------------------------
-#%configure_cache 0
-%configure_cache_file %{buildroot}.configure.cache
-
-%configure {./configure \
- LDFLAGS="${LDFLAGS:-%rpmldflags}" \
- CFLAGS="${CFLAGS:-%rpmcflags}" \
- CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
- FFLAGS="${FFLAGS:-%rpmcflags}" \
- FCFLAGS="${FCFLAGS:-%rpmcflags}" \
- CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
- %{?__cc:CC="%{__cc}"} \
- %{?__cxx:CXX="%{__cxx}"} \
- --host=%{_target_platform} \
- --build=%{_target_platform} \
- --prefix=%{_prefix} \
- --exec-prefix=%{_exec_prefix} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --sysconfdir=%{_sysconfdir} \
- --datadir=%{_datadir} \
- --includedir=%{_includedir} \
- --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --localstatedir=%{_localstatedir} \
- --sharedstatedir=%{_sharedstatedir} \
- --mandir=%{_mandir} \
- --infodir=%{_infodir} \
- --x-libraries=%{?_x_libraries}%{!?_x_libraries:%{_libdir}} \
- %{dependencytracking} \
- %{?configure_cache:--cache-file=%{configure_cache_file}} \
-}
-
-# overload to insert debuginfo package
-%prep \
-%if 0%{?_enable_debug_packages}\
-%{debug_package}\
-%endif\
-%%prep\
-%{nil}
-
-# Location of autoconf macros
-%_aclocaldir %{expand:%%global _aclocaldir %(aclocal --print-ac-dir || echo ERROR)}%_aclocaldir
-
-# Location of omf files
-%_omf_dest_dir %{expand:%%global _omf_dest_dir %(scrollkeeper-config --omfdir || echo ERROR)}%_omf_dest_dir
-
-# Location of pkgconfig files
-%_pkgconfigdir /usr/%{_lib}/pkgconfig
-# noarch pkgconfig files
-%_npkgconfigdir /usr/share/pkgconfig
-
-# Location of desktop files
-%_desktopdir /usr/share/applications
-%_applnkdir ERROR:_applnkdir_is_obsolete_use_desktopdir_instead
-
-# Location of pixmaps for applnk/desktop files
-%_pixmapsdir /usr/share/pixmaps
-
-# Location of themable icons for applnk/desktop files
-%_iconsdir /usr/share/icons
-
-# Location of fonts directories
-%_fontsdir /usr/share/fonts
-
-# Location of Gtk and associated libraries documentation
-%_gtkdocdir %{_defaultdocdir}/gtk-doc/html
-
-# Location of KDE documentation
-%_kdedocdir %{_defaultdocdir}/kde/HTML
-
-# unsermake script
-%__unsermake /usr/share/unsermake/unsermake
-
-# Current date
-%date %(LC_ALL=C date +"%a %b %d %Y")
-
-# Example files, programs, scripts...
-%_examplesdir /usr/src/examples
-
-# Alternative kernel type/version
-%_alt_kernel %{nil}%{?alt_kernel:-%{?alt_kernel}}
-
-# The directory holding Linux kernel sources
-%_kernelsrcdir /usr/src/linux%{_alt_kernel}
-
-# If non-empty "debug" macro defined, add "dbg" suffix to release number
-%_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}%{?debug:dbg}.%%{ARCH}.rpm
-
-
-%releq_kernel %{expand:%%global releq_kernel %(R=$(LC_ALL=C rpm -q --qf '%{N} = %|E?{%{E}:}|%{V}-%{R}' -f %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | grep -v 'is not' | sed -e 's:-headers::;s:-config::'); echo ${R:-ERROR})}%releq_kernel
-%releq_kernel_up %{expand:%%global releq_kernel_up %(R=$(LC_ALL=C rpm -q --qf '%{N}-up = %|E?{%{E}:}|%{V}-%{R}' -f %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | grep -v 'is not' | sed -e 's:-headers::;s:-config::'); echo ${R:-ERROR})}%releq_kernel_up
-%releq_kernel_smp() %{expand:%%global releq_kernel_smp %(R=$(LC_ALL=C rpm -q --qf '%{N}-smp = %|E?{%{E}:}|%{V}-%{R}' -f %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | grep -v 'is not' | sed -e 's:-headers::;s:-config::'); echo ${R:-ERROR})}%releq_kernel_smp
-%requires_releq_kernel(s:) Requires%{-s:(%{-s*})}: %releq_kernel
-%requires_releq_kernel_up(s:) Requires%{-s:(%{-s*})}: %releq_kernel_up
-%requires_releq_kernel_smp(s:) Requires%{-s:(%{-s*})}: %releq_kernel_smp
-
-# Requires name = version-release
-%requires_releq() %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to -r %1 %1}}}
-# Requires: name = version
-%requires_eq() %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to %1 %1}}}
-# Requires: name = version (version based on querying package %2)
-%requires_eq_to(r) %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}}
-
-%apache_modules_api %{expand:%%global apache_modules_api %(awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' /usr/include/apache/ap_mmn.h 2>/dev/null || echo ERROR)}%apache_modules_api
-
-# kernel version-release handling
-%__kernel_ver %{expand:%%global __kernel_ver %( \\
- Z=$(awk -F'"' '/UTS_RELEASE/{print $2}' %{_kernelsrcdir}/include/linux/{version,utsrelease}.h 2>/dev/null); \\
- Z=${Z:-$(awk -F' = ' '/^VERSION/{v=$2} /^PATCHLEVEL/{p=$2} /^SUBLEVEL/{s=$2} /^EXTRAVERSION/{e=$2} END {printf("%d.%d.%d%s", v, p, s, e)}' %{_kernelsrcdir}/Makefile 2>/dev/null)}; \\
- echo ${Z:-ERROR}; \\
-)}%__kernel_ver
-
-%__kernel_rel %{expand:%%global __kernel_rel %(Z=$(LC_ALL=C rpm -qf %{_kernelsrcdir}/include/linux/fs.h 2>/dev/null --qf "%{R}" | grep -v "is not"); echo ${Z:-ERROR})}%__kernel_rel
-%__kernel_rpmvr %{expand:%%global __kernel_rpmvr %(Z=$(LC_ALL=C rpm -qf %{_kernelsrcdir}/include/linux/fs.h 2>/dev/null --qf "%{V}-%{R}" | grep -v "is not"); echo ${Z:-ERROR})}%__kernel_rpmvr
-%_kernel_ver %{expand:%%global _kernel_ver %{__kernel_ver}%{?with_dist_kernel:%(echo %{__kernel_ver} | grep -q -e - || echo -%{__kernel_rel})}}%_kernel_ver
-%_kernel_ver_str %{expand:%%global _kernel_ver_str %(echo %{!?_without_dist_kernel:%{__kernel_rpmvr}}%{?_without_dist_kernel:%{__kernel_ver}} | sed -e 's/-/_/g')}%_kernel_ver_str
-
-# `uname -r` to be used in @release field
-%_kernel_vermagic %{expand:%%global _kernel_vermagic %(echo %{_kernel_ver} | sed -e 's/-/_/g')}%_kernel_vermagic
-
-# sgml macros
-%xmlcat_add() /usr/bin/xmlcatalog --noout --add nextCatalog \"\" %1 /etc/xml/catalog ;
-%xmlcat_del() /usr/bin/xmlcatalog --noout --del %1 /etc/xml/catalog ;
-%xmlcat_add_rewrite /usr/bin/xmlcatalog --noout --add rewriteSystem
-%xmlcat_create() /usr/bin/xmlcatalog --noout --create %1 ;
-%sgmlcat_add() /usr/bin/install-catalog --add %1 %2 > /dev/null ;
-%sgmlcat_del() /usr/bin/install-catalog --remove %1 %2 > /dev/null ;
-%docbook_sgmlcat_fix() { for l in \
-'' \
-' -- default decl --' \
-'DTDDECL "-//OASIS//DTD DocBook XML V%2//EN" "../../xml.dcl"' \
-' -- hacks for opensp --' \
-'SYSTEM "file://%{_datadir}/sgml/docbook/xml-dtd-%2/docbookx.dtd" "%{_datadir}/sgml/docbook/xml-dtd-%2/docbookx.dtd"' \
-'SYSTEM "http://www.oasis-open.org/docbook/xml/%2/docbookx.dtd" "%{_datadir}/sgml/docbook/xml-dtd-%2/docbookx.dtd"' \
-'' \
-; do echo $l; done >> %1 \
-}
-
-# vim - "
-
-# minimum file size needed for compressed documents.
-# just smaller files than this get larger when compressed.
-# some stats:
-# - 0 byte file compressed was 25 bytes .gz
-# - 39 byte file was compressed as 57
-# - with test/test.spec@man 158 byte file was compressed also 158
-%_min_compress_bytes 159
-
-#-----------------------------------------------------------------
-# find and gzip all files in %{_mandir} and %{infodir}
-#
-# Requires: xargs, find
-#
-#%no_install_post_compress_docs 1
-%__spec_install_post_compress_docs { \
-%{!?no_install_post_compress_docs:__spec_install_post_compress_docs() { \
- for i in /usr/share/man /usr/X11R6/man; do \
- if [ -d "$RPM_BUILD_ROOT$i" ]; then \
- echo "Compress man pages: $i"; \
- find "$RPM_BUILD_ROOT$i" -name '*.bz2' -print | xargs -r %{__bzip2} -df; \
- find "$RPM_BUILD_ROOT$i" -name '*.gz' -print | xargs -r %{__gzip} -dnf; \
- find $RPM_BUILD_ROOT$i -type l | while read a; do \
- m=$(readlink $a); \
- rm -f $a; \
- echo .so ${m##*/} > $a; \
- echo >&2 "Converted ${a#$RPM_BUILD_ROOT} from symlink to man link: ${m##*/}"; \
- done; \
- find "$RPM_BUILD_ROOT$i" -type f -size +%{_min_compress_bytes}c -print | xargs -r %{__gzip} -9nf; \
- fi; \
- done; \
- if [ -d "$RPM_BUILD_ROOT%{_infodir}" ]; then \
- echo "Compress info pages: %{_infodir}"; \
- find "$RPM_BUILD_ROOT%{_infodir}" -name '*.bz2' -print | xargs -r %{__bzip2} -df; \
- find "$RPM_BUILD_ROOT%{_infodir}" -name '*.gz' -print | xargs -r %{__gzip} -dnf; \
- find "$RPM_BUILD_ROOT%{_infodir}" -name '*.info*' -type f -size +%{_min_compress_bytes}c -print | xargs -r %{__gzip} -9nf; \
- fi; \
-}; __spec_install_post_compress_docs } }
-
-#-----------------------------------------------------------------
-# Strip executable binaries and shared object files
-#
-# Requires: find, awk, strip, cut, xargs
-#
-# Special macros which affect this process:
-#%no_install_post_strip 1 # disable stripping at all
-#%_noautostrip regexp # exclude files matching (anchored!) regex from stripping
-#%_autostripall regexp # strip files matching (anchored!) regex using plain strip
-#%_autostripunneeded regexp # strip files matching (anchored!) regex using strip --strip-unneeded
-#%_autostripdebug regexp # strip files matching (anchored!) regex using strip --strip-debug
-#
-%__spec_install_post_strip {%{!?debug: \
-%{!?no_install_post_strip:__spec_install_post_strip() { \
-if [ -d "$RPM_BUILD_ROOT" ]; then \
- if [ -d $RPM_BUILD_ROOT/lib/modules ]; then \
- modulelist=$(find $RPM_BUILD_ROOT/lib/modules -name '*o' -type f -print); \
- if [ "$modulelist" ]; then \
- modulecount=$(echo "$modulelist" | wc -l); \
- printf "Stripping %d kernel modules..." $modulecount; \
- echo "$modulelist" | xargs -l512 chmod u+w; \
- echo "$modulelist" | xargs -l512 %{__strip} --strip-unneeded --remove-section=.comment --remove-section=.note.GNU-stack; \
- echo "DONE"; \
- fi; \
- fi; \
- filelist=$(find $RPM_BUILD_ROOT -type f ! -regex ".*/usr/lib[0-9]*/debug/.*\.debug" ! -regex ".*/lib/modules/.*" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"} %{?_autostripall:! -regex "%{_autostripall}"} %{?_autostripunneeded:! -regex "%{_autostripunneeded}"} %{?_autostripdebug:! -regex "%{_autostripdebug}"}); \
- if [ -n "$filelist" ]; then \
- filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \
- elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \
- elfsharedlist=`echo "$filetypes" | awk -F: '/LF.*shared object/ {print $1}'`; \
- archiveslist=`echo "$filetypes" | awk -F: '/current ar archive/ {print $1}'`; \
- if [ -n "$elfexelist" ]; then \
- printf "Stripping %d ELF executables..." $(echo "$elfexelist" | wc -l); \
- chmod u+w $elfexelist; \
- %{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \
- echo "DONE"; \
- fi; \
- if [ -n "$elfsharedlist" ]; then \
- printf "Stripping %d ELF shared libraries..." $(echo "$elfsharedlist" | wc -l); \
- chmod u+w $elfsharedlist; \
- %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \
- echo "DONE"; \
- fi; \
- if [ -n "$archiveslist" ]; then \
- printf "Stripping %d ar archives..." $(echo "$archiveslist" | wc -l); \
- chmod u+w $archiveslist; \
- %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \
- echo "DONE"; \
- fi; \
- fi; \
- filelist_all=%{?_autostripall:$(find $RPM_BUILD_ROOT -type f -regex "%{_autostripall}")}; \
- filelist_unneeded=%{?_autostripunneeded:$(find $RPM_BUILD_ROOT -type f -regex "%{_autostripunneeded}")}; \
- filelist_debug=%{?_autostripdebug:$(find $RPM_BUILD_ROOT -type f -regex "%{_autostripdebug}")}; \
- if [ -n "$filelist_all" ]; then \
- printf "Stripping everything from %d additional files..." $(echo "$filelist_all" | wc -l); \
- chmod u+w $filelist_all; \
- %{__strip} --remove-section=.note --remove-section=.comment $filelist_all; \
- echo "DONE"; \
- fi; \
- if [ -n "$filelist_unneeded" ]; then \
- printf "Stripping unneeded from %d additional files..." $(echo "$filelist_unneeded" | wc -l); \
- chmod u+w $filelist_unneeded; \
- %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $filelist_unneeded; \
- echo "DONE"; \
- fi; \
- if [ -n "$filelist_debug" ]; then \
- printf "Stripping debuginfo from %d additional files..." $(echo "$filelist_debug" | wc -l); \
- chmod u+w $filelist_debug; \
- %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $filelist_debug; \
- echo "DONE"; \
- fi; \
-fi; }; __spec_install_post_strip } } }
-
-#-----------------------------------------------------------------
-# remove all RPATH from executable binaries and shared object files
-#
-# Requires: find, awk, cut, xargs, chrpath, uname
-#
-# Special macros which affect this process
-#%no_install_post_chrpath 1 # disable chrpath at all
-#%_noautochrpath regex # exclude files matching (anchored!) regex from chrpath
-#
-%__spec_install_post_chrpath {%{!?debug: \
-%{!?no_install_post_chrpath: __spec_install_post_chrpath() { \
-if [ -d "$RPM_BUILD_ROOT" ]; then \
- files=`find $RPM_BUILD_ROOT -type f ! -regex ".*ld-[0-9.]*so.*" ! -regex ".*/usr/lib[0-9]*/debug/.*" ! -regex ".*/lib/modules/.*" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautochrpath:! -regex "%{_noautochrpath}"}`; \
- if [ -n "$files" ]; then \
- objs=`echo "$files" | xargs -r -d'\\n' file | awk -F: '/ELF.*(executable.*dynamically linked|shared object)/ {print $1}'`; \
- fi; \
- if [ -n "$objs" ]; then \
- printf "Remove RPATH from %d executable binaries and shared object files.\n" $(echo "$objs" | wc -l); \
- echo "$objs" | \
- while read file; do \
- rpath= ; \
- chmod u+w "$file"; \
- for dir in $(chrpath -l "$file" | awk '/RPATH=/ { gsub(/.*RPATH=/,""); gsub(/:/," "); print $0 }'); do \
- case $dir in \
- '$ORIGIN' ) \
- if [ "$rpath" = "" ] ; then rpath="$dir" ; \
- else rpath="$rpath:$dir" ; fi ; \
- continue ; \
- ;; \
- esac ; \
- newdir=$(readlink -m "$dir"); \
- [ ${#newdir} -le ${#dir} ] && dir=$newdir; \
- case $dir in \
- /home/* | /tmp/* | /usr/lib | /usr/lib64 | /lib | /lib64 | /usr/local/lib | /usr/local/lib64 | /usr/X11R6/lib | /usr/X11R6/lib64 ) \
- echo "remove-rpath: $dir in $file"; \
- ;; \
- * ) \
- if [ "$rpath" = "" ] ; then rpath="$dir" ; \
- else rpath="$rpath:$dir" ; fi ; \
- ;; \
- esac ; \
- done ; \
- if [ "$rpath" = "" ] ; then chrpath -d "$file" > /dev/null ; \
- else chrpath -r "$rpath" "$file" > /dev/null ; fi ; \
- done; \
- fi; \
-fi; }; __spec_install_post_chrpath } } }
-
-#-----------------------------------------------------------------
-# Find all shared object files with unresolved symbols. Warn
-# and terminate if any found (termination can be turned off by define).
-#%no_install_post_check_so 1
-%__spec_install_post_check_so { \
- __spec_install_post_check_so() { \
- fail=0; \
- printf "Searching for shared objects with unresolved symbols..."; \
- for f in $(find $RPM_BUILD_ROOT -type f -name '*.so.*' -print); do \
- LC_ALL=C objdump -T $f 2> /dev/null | LC_ALL=C awk -v "file=$f" 'BEGIN { found=0; skip["program_name"]=1; symbols = "" } /^[0-9a-z]+ +D +\*UND\*/ { if ($NF in skip) { next; }; found = 1; symbols = symbols "\n\t" $NF } END { if (found) { print "\nUnresolved symbols found in: " file symbols; exit(1); } } ' || fail=1 ; \
- done ; \
- echo " DONE"; \
- %{!?no_install_post_check_so:[ $fail -eq 1 ] && : || :;} \
-}; __spec_install_post_check_so }}
-
-#-----------------------------------------------------------------
-# Find and gzip all kernel modules
-#
-# Requires: find
-#
-#%no_install_post_compress_modules 1
-%__spec_install_post_compress_modules { \
-%{!?no_install_post_compress_modules: __spec_install_post_compress_modules() { \
- if [ -d $RPM_BUILD_ROOT/lib/modules ]; then \
- q=$(find $RPM_BUILD_ROOT/lib/modules -name '*o' -type f -print); \
- if [ "$q" ]; then \
- printf "Compress %d kernel modules..." $(echo "$q" | wc -l); \
- echo "$q" | xargs -r %{__gzip} -9nf; \
- echo "DONE"; \
- find $RPM_BUILD_ROOT/lib/modules -name '*o' -type l -printf "%p %l\n" | \
- while read a b; do ln -sf $b.gz $a.gz; rm -f $a; done; \
- fi; \
- fi; \
-}; __spec_install_post_compress_modules } }
-
-# Remove common Perl files we don't package
-%__spec_install_post_perl_clean {\
-%{!?no_install_post_perl_clean: \
-%{?pdir:rm -f $RPM_BUILD_ROOT{%{perl_archlib}/perllocal.pod,%{perl_vendorarch}/auto/%{pdir}%{?pnam:/%(echo %{pnam} | tr - /)}/.packlist}} \
-} }
-
-#-----------------------------------------------------------------
-# Update GConf2 schemas
-#
-# Requires: GConf2
-#
-%gconf_schema_install() \
- umask 022; \
- GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" \\\
- /usr/bin/gconftool-2 --makefile-install-rule /etc/gconf/schemas/%{?1}%{!?1:*.schemas} > /dev/null; \
-%{nil}
-
-%gconf_schema_uninstall() \
-if [ $1 = 0 -a -x /usr/bin/gconftool-2 ]; then \
- umask 022; \
- GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" \\\
- /usr/bin/gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/%{?1} > /dev/null \
-fi; \
-%{nil}
-
-#-----------------------------------------------------------------
-# Update desktop MIME database
-# requires: desktop-file-utils
-%update_desktop_database() {{ \
- umask 022; \
- /usr/bin/update-desktop-database -q; \
-};} \
-%{nil}
-
-%update_desktop_database_post %update_desktop_database
-
-%update_desktop_database_postun() {{ \
-if [ "$1" = "0" ]; then \
- %update_desktop_database \
-fi; \
-};} \
-%{nil}
-
-#-----------------------------------------------------------------
-# Update shared MIME info database
-# requires: shared-mime-info
-#
-%update_mime_database() {{ \
- umask 022; \
- /usr/bin/update-mime-database %{_datadir}/mime; \
-};} \
-%{nil}
-
-#-----------------------------------------------------------------
-# Update icon cache
-# requires: gtk+
-#
-%update_icon_cache() {{ \
- umask 022; \
- /usr/bin/gtk-update-icon-cache -qf %{_datadir}/icons/%1; \
-};} \
-%{nil}
-
-#-----------------------------------------------------------------
-# Update scrollkeeper database
-# requires: scrollkeeper
-#
-%scrollkeeper_update_post() \
- /usr/bin/scrollkeeper-update -q; \
-%{nil}
-
-%scrollkeeper_update_postun() \
-if [ "$1" = "0" ]; then \
- /usr/bin/scrollkeeper-update -q; \
-fi; \
-%{nil}
-
-#-----------------------------------------------------------------
-# post %install sequence:
-# - autodeps exceptions
-# - compress all man and info pages,
-# - strip all ELF executables and ELF shared objects if not %debug.
-# - compress kernel modules if any
-
-###################################################################
-# Requires/Provides automation
-# exceptions system by Jacek Konieczny <jajcus@pld-linux.org>
-#
-%__noautoreqfiles %(sed -e s'/#.*//' /etc/rpm/noautoreqfiles)%{?_noautoreqfiles: %{_noautoreqfiles}}
-%__noautoprovfiles %(sed -e s'/#.*//' /etc/rpm/noautoprovfiles)%{?_noautoprovfiles: %{_noautoprovfiles}}
-%__noautoreq %(sed -e s'/#.*//' /etc/rpm/noautoreq)%{?_noautoreq: %{_noautoreq}}
-%__noautoreqdep %(sed -e s'/#.*//' /etc/rpm/noautoreqdep)%{?_noautoreqdep: %{_noautoreqdep}}
-%__noautoprov %(sed -e s'/#.*//' /etc/rpm/noautoprov)%{?_noautoprov: %{_noautoprov}}
-
-#%_noautocompressdoc %{nil}
-#
-%_missing_doc_files_terminate_build 1%{nil}
-%_unpackaged_files_terminate_build %{nil}
-# (X)emacs support
-%___emacs_lispdir_helper -batch -q -eval '(while load-path (princ (concat (car load-path) "\\n")) (setq load-path (cdr load-path)))' 2> /dev/null|sed -n '/\\(.*\\/x\\?emacs\\/site-lisp\\)\\/\\?$/{s,,\\1,p;q;}'
-%_emacs_lispdir %{expand:%%global _emacs_lispdir %(Z=$(emacs %___emacs_lispdir_helper); echo ${Z:-ERROR})}%_emacs_lispdir
-%_xemacs_lispdir %{expand:%%global _xemacs_lispdir %(Z=$(xemacs %___emacs_lispdir_helper); echo ${Z:-ERROR})}%_xemacs_lispdir
-
-%__php_provides %{nil}
-%__php_requires %{nil}
-%__perl_provides %{nil}
-%__perl_requires %{nil}
-%__mono_provides %{nil}
-%__mono_requires %{nil}
-
-# Perl specific macro definitions.
-%perl_privlib %{expand:%%global perl_privlib %(eval $(%{__perl} -V:installprivlib 2>/dev/null); echo ${installprivlib:-ERROR})}%perl_privlib
-%perl_archlib %{expand:%%global perl_archlib %(eval $(%{__perl} -V:installarchlib 2>/dev/null); echo ${installarchlib:-ERROR})}%perl_archlib
-%perl_vendorlib %{expand:%%global perl_vendorlib %(eval $(%{__perl} -V:installvendorlib 2>/dev/null); echo ${installvendorlib:-ERROR})}%perl_vendorlib
-%perl_vendorarch %{expand:%%global perl_vendorarch %(eval $(%{__perl} -V:installvendorarch 2>/dev/null); echo ${installvendorarch:-ERROR})}%perl_vendorarch
-%perl_sitelib %{expand:%%global perl_sitelib %(eval $(%{__perl} -V:installsitelib 2>/dev/null); echo ${installsitelib:-ERROR})}%perl_sitelib
-%perl_sitearch %{expand:%%global perl_sitearch %(eval $(%{__perl} -V:installsitearch 2>/dev/null); echo ${installsitearch:-ERROR})}%perl_sitearch
-
-# Ruby
-%__ruby /usr/bin/ruby
-%ruby_archdir %{expand:%%global ruby_archdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["archdir"]' 2>/dev/null || echo ERROR)}%ruby_archdir
-%ruby_ridir %{expand:%%global ruby_ridir %(%{__ruby} -r rbconfig -e 'include Config; print File.join(CONFIG["datadir"], "ri", CONFIG["ruby_version"], "system")' 2>/dev/null || echo ERROR)}%ruby_ridir
-%ruby_rubylibdir %{expand:%%global ruby_rubylibdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["rubylibdir"]' 2>/dev/null || echo ERROR)}%ruby_rubylibdir
-%ruby_vendorarchdir %{expand:%%global ruby_vendorarchdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["vendorarchdir"]' 2>/dev/null || echo ERROR)}%ruby_vendorarchdir
-%ruby_vendorlibdir %{expand:%%global ruby_vendorlibdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["vendorlibdir"]' 2>/dev/null || echo ERROR)}%ruby_vendorlibdir
-%ruby_sitearchdir %{expand:%%global ruby_sitearchdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["sitearchdir"]' 2>/dev/null || echo ERROR)}%ruby_sitearchdir
-%ruby_sitelibdir %{expand:%%global ruby_sitelibdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["sitelibdir"]' 2>/dev/null || echo ERROR)}%ruby_sitelibdir
-%ruby_rdocdir /usr/share/rdoc
-%ruby_version %{expand:%%global ruby_version %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["ruby_version"]' 2>/dev/null || echo ERROR)}%ruby_version
-%ruby_ver_requires_eq Requires: ruby(ver) = %ruby_version
-%ruby_mod_ver_requires_eq Requires: ruby-modules(ver) = %ruby_version
-
-%php_pear_dir /usr/share/pear
-%php_data_dir /usr/share/php
-%php_extensiondir %{expand:%%global php_extensiondir %(php-config --extension-dir 2>/dev/null || echo ERROR)}%php_extensiondir
-%php_sysconfdir %{expand:%%global php_sysconfdir %(php-config --sysconfdir 2>/dev/null || echo ERROR)}%php_sysconfdir
-%php_includedir %{expand:%%global php_includedir %(php-config --include-dir 2>/dev/null || echo ERROR)}%php_includedir
-
-# extract php/zend api versions
-%php_major_version %{expand:%%global php_major_version %(awk '/#define PHP_MAJOR_VERSION/{print $3}' %{php_includedir}/main/php_version.h 2>/dev/null || echo ERROR)}%php_major_version
-%php_api_version %{expand:%%global php_api_version %(awk '/#define PHP_API_VERSION/{print $3}' %{php_includedir}/main/php.h 2>/dev/null || echo ERROR)}%php_api_version
-%php_pdo_api_version %{expand:%%global php_pdo_api_version %(awk '/#define PDO_DRIVER_API/{print $3}' %{php_includedir}/ext/pdo/php_pdo_driver.h 2>/dev/null || echo ERROR)}%php_pdo_api_version
-%php_debug %{expand:%%global php_debug %(awk '/#define ZEND_DEBUG/{print $3}' %{php_includedir}/main/php_config.h 2>/dev/null || echo ERROR)}%php_debug
-%zend_module_api %{expand:%%global zend_module_api %(awk '/#define ZEND_MODULE_API_NO/{print $3}' %{php_includedir}/Zend/zend_modules.h 2>/dev/null || echo ERROR)}%zend_module_api
-%zend_extension_api %{expand:%%global zend_extension_api %(awk '/#define ZEND_EXTENSION_API_NO/{print $3}' %{php_includedir}/Zend/zend_extensions.h 2>/dev/null || echo ERROR)}%zend_extension_api
-%zend_zts %{expand:%%global zend_zts %(Z=$(grep -sc '^#define ZTS 1' %{php_includedir}/main/php_config.h); echo ${Z:-ERROR})}%zend_zts
-
-# helper macro
-%__php_api_requires(v:) Requires: php%{-v*}(%{expand:%1}) = %{expand:%{%{!?2:%{1}}%{?2}}}
-
-# macros for public use
-# for php extensions (php-pecl)
-%requires_php_extension %{__php_api_requires modules_api php_api_version} \
-%{__php_api_requires zend_module_api} \
-%{__php_api_requires -v %php_major_version debug php_debug} \
-%{__php_api_requires -v %php_major_version thread-safety zend_zts}
-
-# for zend extensions
-%requires_zend_extension %{__php_api_requires zend_module_api} \
-%{__php_api_requires zend_extension_api} \
-%{__php_api_requires -v %php_major_version debug php_debug} \
-%{__php_api_requires -v %php_major_version thread-safety zend_zts}
-
-# for php pdo modules (php-pecl-PDO_*)
-%requires_php_pdo_module %{__php_api_requires PDO_API php_pdo_api_version}
-
-# for using PHP post scripts. for PHP >= 5.0
-%php_webserver_restart \
-[ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart \
-[ ! -f /etc/httpd/conf.d/??_mod_php.conf ] || %service -q httpd restart \
-if [ -f /etc/rc.d/init.d/php-fcgi ]; then \
- PHP_FCGI_BINARY=; . /etc/sysconfig/php-fcgi 2>/dev/null \
- if [[ ${PHP_FCGI_BINARY:-php.fcgi} = *php.fcgi* ]]; then \
- %service -q php-fcgi restart \
- fi \
-fi \
-%{nil}
-
-# for using php post scripts. for PHP >= 4.0 && PHP < 5.0
-%php4_webserver_restart \
-[ ! -f /etc/apache/conf.d/??_mod_php4.conf ] || %service -q apache restart \
-[ ! -f /etc/httpd/conf.d/??_mod_php4.conf ] || %service -q httpd restart \
-if [ -f /etc/rc.d/init.d/php-fcgi ]; then \
- PHP_FCGI_BINARY=; . /etc/sysconfig/php-fcgi 2>/dev/null \
- if [[ ${PHP_FCGI_BINARY:-php.fcgi} = *php4.fcgi* ]]; then \
- %service -q php-fcgi restart \
- fi \
-fi \
-%{nil}
-
-# X.org helper macros
-%__xorg_abi_requires_ge() Requires: xorg-xserver-server(%{expand:%1}-abi) >= %{expand:%{%2}}
-%__xorg_abi_requires_lt() Requires: xorg-xserver-server(%{expand:%1}-abi) < %(awk -vv=%{expand:%{%2}} 'BEGIN{split(v, a, "."); printf("%s.0", a[1] + 1); exit}')
-
-%xorg_xserver_ansic_abi %{expand:%%global xorg_xserver_ansic_abi %(awk '/#define ABI_ANSIC_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_ansic_abi
-%xorg_xserver_extension_abi %{expand:%%global xorg_xserver_extension_abi %(awk '/#define ABI_EXTENSION_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_extension_abi
-%xorg_xserver_font_abi %{expand:%%global xorg_xserver_font_abi %(awk '/#define ABI_FONT_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null | echo ERROR)}%xorg_xserver_font_abi
-%xorg_xserver_videodrv_abi %{expand:%%global xorg_xserver_videodrv_abi %(awk '/#define ABI_VIDEODRV_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_videodrv_abi
-%xorg_xserver_xinput_abi %{expand:%%global xorg_xserver_xinput_abi %(awk '/#define ABI_XINPUT_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_xinput_abi
-
-%requires_xorg_xserver_extension \
-%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_ge extension xorg_xserver_extension_abi} \
-%{__xorg_abi_requires_lt extension xorg_xserver_extension_abi} \
-%{nil}
-
-%requires_xorg_xserver_xinput \
-%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_ge xinput xorg_xserver_xinput_abi} \
-%{__xorg_abi_requires_lt xinput xorg_xserver_xinput_abi} \
-%{nil}
-
-%requires_xorg_xserver_font \
-%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_ge font xorg_xserver_font_abi} \
-%{__xorg_abi_requires_lt font xorg_xserver_font_abi} \
-%{nil}
-
-%requires_xorg_xserver_videodrv \
-%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \
-%{__xorg_abi_requires_ge videodrv xorg_xserver_videodrv_abi} \
-%{__xorg_abi_requires_lt videodrv xorg_xserver_videodrv_abi} \
-%{nil}
-
-# Python specific macro definitions.
-# python main version
-%py_ver %{expand:%%global py_ver %(%{__python} -c "import sys; print sys.version[:3]" 2>/dev/null || echo ERROR)}%py_ver
-
-# directories
-%py_prefix %{expand:%%global py_prefix %(%{__python} -c "import sys; print sys.prefix" 2>/dev/null || echo ERROR)}%py_prefix
-%py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
-%py_scriptdir %{py_prefix}/share/python%{py_ver}
-%py_incdir /usr/include/python%{py_ver}
-%py_sitedir %{py_libdir}/site-packages
-%py_sitescriptdir %{py_scriptdir}/site-packages
-%py_dyndir %{py_libdir}/lib-dynload
-
-# pure python modules compilation
-%py_comp python -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
-
-%py_ocomp python -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
-
-# Software written in Python language require Python with main version
-%pyrequires_eq() Requires: %1
-
-# Python 3.x
-# python main version
-%__python3 python3.0
-%py3_ver %{expand:%%global py3_ver %(%{__python3} -c "import sys; print(sys.version[:3])" 2>/dev/null || echo ERROR)}%py3_ver
-
-# directories
-%py3_prefix %{expand:%%global py3_prefix %(%{__python3} -c "import sys; print(sys.prefix)" 2>/dev/null || echo ERROR)}%py3_prefix
-%py3_libdir %{py3_prefix}/%{_lib}/python%{py3_ver}
-%py3_scriptdir %{py3_prefix}/share/python%{py3_ver}
-%py3_incdir /usr/include/python%{py3_ver}
-%py3_sitedir %{py3_libdir}/site-packages
-%py3_sitescriptdir %{py3_scriptdir}/site-packages
-%py3_dyndir %{py3_libdir}/lib-dynload
-
-# pure python modules compilation
-%py3_comp %{__python3} -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
-
-%py3_ocomp %{__python3} -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
-
-# Hardlink binary identical .pyc and .pyo files
-%__spec_install_post_py_hardlink {\
-%{!?no_install_post_py_hardlink: __spec_install_post_py_hardlink() { \
-local a b c=0 t=0; \
-if [ -d "$RPM_BUILD_ROOT" ]; then \
- find "$RPM_BUILD_ROOT" -name '*.pyc' > __rpm_pyc; \
- while read a; do \
- b="${a%.pyc}.pyo"; \
- if cmp -s "$a" "$b"; then \
- ln -f "$a" "$b"; \
- c=$((c + 1)); \
- fi; \
- t=$((t + 1)); \
- done < __rpm_pyc; \
- [ $t -gt 0 ] && printf "Hardlink Python files: %d/%d files hardlinked\n" $c $t; \
- rm -f __rpm_pyc; \
-fi; \
-}; __spec_install_post_py_hardlink } }
-
-# remove python sources, so that check-files won't complain
-%py_postclean() \
-for d in %{py_sitescriptdir} %{py_sitedir} %*; do \
- [ ! -d "$RPM_BUILD_ROOT$d" ] || find "$RPM_BUILD_ROOT$d" -name '*.py' -print0 | xargs -0r -l512 rm;\
-done \
-%{nil}
-
-%py3_postclean() \
-for d in %{py3_sitescriptdir} %{py3_sitedir} %*; do \
- [ ! -d "$RPM_BUILD_ROOT$d" ] || find "$RPM_BUILD_ROOT$d" -name '*.py' -print0 | xargs -0r -l512 rm;\
-done \
-%{nil}
-
-# depmod macro
-%depmod() { \
-umask 022; \
-if [ -e /boot/System.map-%1 ]; then \
- /sbin/depmod -a -F /boot/System.map-%1 %1; \
-else \
- if [ -e /boot/System.map ]; then \
- /sbin/depmod -a -F /boot/System.map %1; \
- else \
- /sbin/depmod -a %1; \
- fi \
-fi; \
-}
-
-# XMMS specific macros
-%xmms_prefix %{expand:%%global xmms_prefix %(xmms-config --prefix 2>/dev/null || echo ERROR)}%xmms_prefix
-%xmms_exec_prefix %{expand:%%global xmms_exec_prefix %(xmms-config --exec-prefix 2>/dev/null || echo ERROR)}%xmms_exec_prefix
-%xmms_version %{expand:%%global xmms_version %(xmms-config --version 2>/dev/null || echo ERROR)}%xmms_version
-%xmms_datadir %{expand:%%global xmms_datadir %(xmms-config --data-dir 2>/dev/null || echo ERROR)}%xmms_datadir
-%xmms_plugindir %{expand:%%global xmms_plugindir %(xmms-config --plugin-dir 2>/dev/null || echo ERROR)}%xmms_plugindir
-%xmms_visualization_plugindir %{expand:%%global xmms_visualization_plugindir %(xmms-config --visualization-plugin-dir 2>/dev/null || echo ERROR)}%xmms_visualization_plugindir
-%xmms_input_plugindir %{expand:%%global xmms_input_plugindir %(xmms-config --input-plugin-dir 2>/dev/null || echo ERROR)}%xmms_input_plugindir
-%xmms_output_plugindir %{expand:%%global xmms_output_plugindir %(xmms-config --output-plugin-dir 2>/dev/null || echo ERROR)}%xmms_output_plugindir
-%xmms_effect_plugindir %{expand:%%global xmms_effect_plugindir %(xmms-config --effect-plugin-dir 2>/dev/null || echo ERROR)}%xmms_effect_plugindir
-%xmms_general_plugindir %{expand:%%global xmms_general_plugindir %(xmms-config --general-plugin-dir 2>/dev/null || echo ERROR)}%xmms_general_plugindir
-
-%_target_base_arch %{expand:%%global _target_base_arch %(echo %{_target_cpu} | sed 's/i.86/i386/;s/athlon/i386/;s/pentium./i386/;s/amd64/x86_64/;s/ia32e/x86_64/')}%_target_base_arch
-
-# user/group checking macros
-#
-# Usage:
-# %userremove myuser
-#
-%userremove /usr/lib/rpm/user_group.sh user del
-%groupremove /usr/lib/rpm/user_group.sh group del
-#
-# Usage:
-# if %usertestrm myuser; then
-# /usr/sbin/userdel -r myuser
-# Note:
-# use these macros only if you need to call userdel/groupdel with
-# a non-standard option or take an extra action; otherwise use the
-# %userremove/%groupremove macros
-#
-%usertestrm /usr/lib/rpm/user_group.sh user testrm
-%grouptestrm /usr/lib/rpm/user_group.sh group testrm
-# user group membership management macros
-#
-# Usage:
-# %addusertogroup [-q] myuser agroup
-#
-# -q if user or group don't exist, don't make big noise of it (MISSINGOK behaviour)
-#
-# Requirements:
-# BuildRequires: rpmbuild(macros) >= 1.515
-%addusertogroup(q) quiet=%{-q:1} /usr/lib/rpm/user_group.sh user addtogroup %*
-
-# banner support (useful in {pre,post}{,un} and triggers)
-#
-# Usage:
-# %banner name [-a] [-e] [-n] [-tn] <<EOF
-# the banner text, the banner text
-# the banner text, and following line
-#EOF
-# You can use any form of here-document, <<'EOF' <<-EOT will do.
-# NOTE: if your use "<<-EOF", then You can actually indent inside here-document.
-#
-# -a - append to the banner
-# -e - send to stderr instead of stdout
-# -n - no show banner (overrides -t)
-# -t - show only, if RPM_SCRIPTVERBOSITY >= n; default n=5
-#
-# Tests:
-# (rpm -E '%banner -e banner <<EOF'; echo -e 'hi\nEOF') > m; sh -x m
-# rpm -E 'date | %banner -e banner' > m; sh -x m
-#
-%banner(aent:) ( \
-RPM_SCRIPTVERBOSITY=5 \
-[ -r /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \
-if [ -x /usr/bin/banner.sh ]; then \
- CMD="/usr/bin/banner.sh %{-e:--stderr} %{!-n:$([ $RPM_SCRIPTVERBOSITY -ge %{-t:%{-t*}}%{!-t:5} ] && echo -s)} %{!-a:-m}%{-a:-M} %1" \
-else \
- CMD="cat%{-e: >&2}" \
-fi \
-eval $CMD %{?2:%2}%{?3: %3}) \
-%{nil}
-
-# useradd/groupadd macros
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %useradd [-P package] [-u uid] [-d home_dir] [-s shell] [-c comment]
-# [-g initial_group] [-G group[,...]] login
-#
-# -u uid. REQUIRED
-# -g gid/group. REQUIRED
-# -s defaults to /bin/false
-# -d defaults to /usr/share/empty
-# -c No default
-# -r is accepted but ignored (it's always set)
-# -k skeleton dir. defaults to /usr/share/empty
-# rpm specific flags
-# -P package name. defaults to %{name}
-#
-%useradd(c:d:e:f:g:G:Mmk:op:s:u:rP:) \
-%{!-u:%{error:useradd: Required argument -u missing}} \
-%{!-g:%{error:useradd: Required argument -g missing}} \
-%{!?1:%{error:useradd: Required parameter login missing}} \
-if [ -n "`/bin/id -u %{expand:%{%{#}}} 2>/dev/null`" ]; then \
- if [ "`/bin/id -u %{expand:%{%{#}}}`" != "%{-u*}" ]; then \
- echo "Error: user %{expand:%{%{#}}} doesn't have uid=%{-u*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \
- exit 1 \
- fi \
-else \
- echo "Adding user %{expand:%{%{#}}} UID=%{-u*}." \
- /usr/sbin/useradd \\\
- %{-m:-m -k %{-k*}%{!-k:/usr/share/empty}} \\\
- -u %{-u*} \\\
- -r \\\
- -d %{-d*}%{!-d:/usr/share/empty} \\\
- -s %{-s*}%{!-s:/bin/false} \\\
- %{-c:-c "%(set -- %{-c*} %{*}; echo $1)"}\\\
- -g %{-g*} \\\
- %{-M} \\\
- %{-G:-G %{-G*}} \\\
- %{expand:%{%{#}}} 1>&2 || exit $? \
- [ ! -x /usr/sbin/nscd ] || /usr/sbin/nscd -i passwd || : \
-fi;
-
-# Usage:
-# %groupadd [-P package] [-g gid] group
-#
-# -g gid. REQUIRED
-#
-# Sample:
-# %groupadd -P %{name}-base -g %{gid} %{name}
-
-%groupadd(g:P:rfo) \
-%{!-g:%{error:groupadd: Required argument -g missing}} \
-%{!?1:%{error:groupadd: Required parameter group missing}} \
-if /usr/bin/getgid %{1} > /dev/null 2>&1; then \
- if [ "`/usr/bin/getgid %{1}`" != "%{-g*}" ]; then \
- echo "Error: group %{1} doesn't have gid=%{-g*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \
- exit 1 \
- fi \
-else \
- echo "Adding group %{1} GID=%{-g*}." \
- /usr/sbin/groupadd -g %{-g*} -r %{1} 1>&2 || exit $? \
- [ ! -x /usr/sbin/nscd ] || /usr/sbin/nscd -i group || : \
-fi;
-
-# webapp macros
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# The config is installed/removed inside trigger, this means that you can any
-# time install apache1/apache/lighttpd package and the configuration file is
-# updated. if you don't need the config for various reason for specific
-# webserver, just remove the symlink from config directory using webapp
-# program. the trigger will not recreate the symlink on upgrades. In other
-# words the config is linked to webserver config directory on first install of
-# PACKAGE or WEBSERVER.
-#
-# Add package's webserver config to webserver webapps dir.
-# Usage:
-# %webapp_register WEBSERVER WEBAPP
-#
-%webapp_register() \
-%{?debug:set -x; echo "webapp_register: %{name}-%{version}-%{release} 1:[$1]; 2:[$2]"} \
-if [ "$1" = "1" ] && [ "$2" = "1" ]; then\
- /usr/sbin/webapp register %1 %2\
-fi\
-# reload webserver if the config symlink is there and skip reload if webserver is upgraded\
-if [ -L /etc/%1/webapps.d/%(echo "%2" | tr '/' '-').conf ] && [ "$2" -lt "2" ]; then\
- %{expand:%service -q %%1 reload}\
-fi\
-%{nil}
-
-# Remove package's config from webserver webapps dir.
-# Usage:
-# %webapp_register [-f] WEBSERVER WEBAPP
-%webapp_unregister(f) \
-%{?debug:set -x; echo "webapp_unregister: %{name}-%{version}-%{release}: 1:[$1]; 2:[$2]"} \
-# remove link if either of the packages are gone \
-if [ -n "%{-f:1}" ] || [ "$1" = "0" ] || [ "$2" = "0" ] && [ -L /etc/%1/webapps.d/%(echo "%2" | tr '/' '-').conf ]; then \
- /usr/sbin/webapp unregister %1 %2\
- %{expand:%service -q %%1 reload}\
-fi \
-%{nil}
-
-# service macro.
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# calls usual service restart on package %post, but skips the restart if
-# administrator has disabled automatic service restarts in either global
-# /etc/sysconfig/rpm or per service /etc/sysconfig/SERVICE file.
-#
-# Usage:
-# %service [-q] [-n] SERVICE ACTION ["SERVICE NICE DESCRIPTION"]
-#
-# -q be silent when service isn't started (for scriplets restaring other package's services)
-# -n NOOP mode, do not actually restart service
-#
-# Requirements:
-# BuildRequires: rpmbuild(macros) >= 1.268
-# Requires: rc-scripts
-# -n option:
-# BuildRequires: rpmbuild(macros) >= 1.450
-%service(qn) {{%(export noop=%{-n:1} quiet=%{-q:1}; /usr/lib/rpm/service_generator.sh %{*}) };}
-
-
-# Java macros. based on jpackage macros.java
-#
-# Root directory where all Java VMs/SDK/JREs are installed.
-%_jvmdir %{_libdir}/jvm
-
-# Root directory where all Java VMs/SDK/JREs expose their jars
-%_jvmjardir %{_libdir}/jvm-exports
-
-# Root directory for all Java VM/SDK/JRE's private things.
-%_jvmprivdir %{_libdir}/jvm-private
-
-# Root directory for all architecture dependent parts of Java VM/SDK/JRE's
-%_jvmlibdir %{_libdir}/jvm
-
-# Root directory for all architecture independent parts of Java VM/SDK/JRE's
-%_jvmdatadir %{_datadir}/jvm
-
-# Root directory for all configurations parts of Java VM/SDK/JRE's
-%_jvmsysconfdir %{_sysconfdir}/jvm
-
-# Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
-%_jvmcommonlibdir %{_libdir}/jvm-common
-
-# Root directory for all common architecture independent parts of Java VM/SDK/JRE's
-%_jvmcommondatadir %{_datadir}/jvm-common
-
-# Root directory for all common configurations parts of Java VM/SDK/JRE's
-%_jvmcommonsysconfdir %{_sysconfdir}/jvm-common
-
-# Directory where arch-specific (JNI) version-independent jars are installed.
-%_jnidir %{_libdir}/java
-
-%java_home %{expand:%%global java_home %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; unset JAVA_HOME; . %{_javadir}-utils/java-functions; set_jvm; echo ${JAVA_HOME:-ERROR})}%java_home
-
-%ant JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
-%jar %{java_home}/bin/jar
-%java %{expand:%%global java %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; unset JAVACMD; . %{_javadir}-utils/java-functions; set_javacmd; echo $JAVACMD)}%java
-%javac %{java_home}/bin/javac
-%javadoc %{java_home}/bin/javadoc
-
-%add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
-
-%jpackage_script() \
-install -d $RPM_BUILD_ROOT%{_bindir}\
-cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
-#!/bin/sh\
-#\
-# %{name} script\
-# JPackage Project <http://www.jpackage.org/>\
-\
-# Source functions library\
-. %{_javadir}-utils/java-functions\
-\
-# Source system prefs\
-if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
- . %{_sysconfdir}/java/%{name}.conf\
-fi\
-\
-# Source user prefs\
-if [ -f $HOME/.%{name}rc ]; then\
- . $HOME/.%{name}rc\
-fi\
-\
-# Configuration\
-MAIN_CLASS=%1\
-BASE_FLAGS=%2\
-BASE_OPTIONS=%3\
-BASE_JARS="%(echo %4 | tr ':' ' ')"\
-\
-# Set parameters\
-set_jvm\
-set_classpath $BASE_JARS\
-set_flags $BASE_FLAGS\
-set_options $BASE_OPTIONS\
-\
-# Let's start\
-run "$@"\
-EOF
-
-# jpackage 1.7
-# Directory for maven depmaps
-#
-%_mavendepmapdir /etc/maven
-%_mavendepmapfragdir /etc/maven/fragments
-
-#
-# add_to_depmap adds an entry to the depmap. The arguments are:
-#
-# %1 the original groupid
-# %2 the original artifact id
-# %3 the version
-# %4 the new groupid
-# %5 the new artifactid
-#
-
-%add_to_maven_depmap() \
-install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
-cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
-<dependency>\
- <maven>\
- <groupId>%1</groupId>\
- <artifactId>%2</artifactId>\
- <version>%3</version>\
- </maven>\
- <jpp>\
- <groupId>%4</groupId>\
- <artifactId>%5</artifactId>\
- <version>%3</version>\
- </jpp>\
-</dependency>\
-\
-EOF\
-%{nil}
-
-#==============================================================================
-#
-# update_maven_depmap updates the main maven depmap
-#
-%update_maven_depmap() \
-echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
-if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
-cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
-fi\
-echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
-
-
-# PEAR install macros
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %%pear_package_setup ...
-#
-# -a # - also unpack SOURCE#. for PEAR bootstrapping
-# -n FMT - create builddir with FMT, instead of default %%{_pearname}-%%{version}
-# -z - unpack pear package and let pear use package.xml (not tarball) for install. for PEAR bootstrapping
-# -D - pass -D to %setup (so the build dir is not removed)
-# -c - register channel from local channel.xml file
-#
-# unpack PEAR package to %%{_builddir}/FMT. package is extracted with already
-# destination hierarchy. you should copy the tree to buildroot after
-# patching/reorganizing with %%pear_package_install.
-#
-# additionally BUILDROOT is stripped from files and files are converted to UNIX
-# line endings.
-#
-# the pear install process output is recorded to install.log, you should put it
-# to %%doc for later debug or just for information.
-#
-# additionally additional-packages.txt is produced if it was detected that the
-# package has optional dependencies. the file format is suitable of displaying
-# in %%post of a package. you should put this file to %%doc. noautocompressdoc is
-# automatically added for this file.
-
-
-# records install.log and transforms PEAR names to PLD Linux rpm package names.
-%__pear_install_log \
-tee install.log \
-# make post message of optional packages \
-grep 'can optionally use' install.log | sed -e 's,package "pear/,package "php-pear-,g;s,^pear/,php-pear-,;s,^pear/,php-pear-,;s,^channel://.*/,,' > optional-packages.txt \
-if [ -s optional-packages.txt ]; then \
- awk -F'"' '/use package/{print $2}' optional-packages.txt | sed -e "s,_,/,g;s,php-pear-, 'pear(,;s,$,.*)'," | tr -d '\\\n' > _noautoreq \
-else \
- rm -f optional-packages.txt \
-fi \
-%{nil}
-
-# command invoking pear cli
-%__pear /usr/bin/pear
-
-%pear_install(a:n:zD) \
-%__pear \\\
- -c %{builddir}/pearrc \\\
- -d doc_dir=/docs \\\
- -d temp_dir=/tmp \\\
- -d php_dir=%{-c:%{builddir}/}%{php_pear_dir} \\\
- -d bin_dir=%{_bindir} \\\
- -d data_dir=%{php_pear_dir}/data \\\
- -d test_dir=%{php_pear_dir}/tests \\\
- install \\\
- --packagingroot=%{builddir} \\\
- --offline \\\
- --nodeps \\\
- %{-f:--force} \\\
- %{!-z:%{S:%{-a*}%{!-a:0}}}%{-z:$_P} > .install.log || { c=$?; cat .install.log; exit $c; }; \
- %{-c:cp -a %{builddir}/%{builddir}/%{php_pear_dir} %{builddir}/%(dirname %{php_pear_dir}); rm -rf %{builddir}/%{builddir}; } \
-%{nil}
-
-# The main macro.
-# using this macro will append optional-packages.txt to the nocompressdoc list
-# as it's displayed to user after package install. and adding additional gzip
-# dep is just waste ;)
-%pear_package_setup(a:n:zDc:) \
-%define srcdir %{-n*}%{!-n:%{_pearname}-%{version}} \
-%define builddir %{_builddir}/%{srcdir} \
-%setup -q -c -T %{-D:-D} -n %{srcdir} \
-%{-z:tar zxf %{S:0}; %{-a:tar zxf %{S:%{-a*}}}} \
-%{-z:_P=package2.xml; [ -f $_P ] || _P=package.xml; _N=%{srcdir}; mv $_P $_N; cd $_N} \
-%{-c:%{__pear} -c pearrc config-set php_dir %{builddir}/%{php_pear_dir}; %__pear -c %{builddir}/pearrc channel-add %{-c*}} \
-%pear_install \
-%{-z:cd ..} \
-cat %{-z:$_N/}.install.log | %__pear_install_log \
-\
-# undos sources \
-find -type f -print0 | xargs -0 sed -i -e 's,\\r$,,' \
-%{!?_noautocompressdoc:%global _noautocompressdoc %{nil}}%{expand:%%global _noautocompressdoc %{_noautocompressdoc} optional-packages.txt} \
-%{!?_noautoprov:%global _noautoprov %{nil}}%{expand:%%global _noautoprov %{_noautoprov} 'pear(tests/.*)'} \
-%{nil}
-
-# Copies exctracted PEAR package structure and PEAR registry to buildroot.
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-%pear_package_install() \
-cp -a ./%{php_pear_dir}/{.registry,*} $RPM_BUILD_ROOT%{php_pear_dir} \
-find $RPM_BUILD_ROOT%{php_pear_dir} '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v \
-# help the developer out a little: \
-if [ -f _noautoreq ]; then \
- echo "AutoReqdep detected:" \
- echo "_noautoreq $(cat _noautoreq)" \
-fi \
-%{nil}
-
-
-# Register OpenLDAP schema.
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %%openldap_schema_register [-d core,nis] %{schemadir}/horde.schema
-#
-# -d specify dependant schemas, separated by comma
-#
-%openldap_schema_register(d:) \
-for schema in %*; do \
- if ! grep -q "$schema" /etc/openldap/slapd.conf; then \
- %{__sed} -i -e " \
- /^include.*local.schema/{ \
- iinclude\\t $schema\
- } \
- " /etc/openldap/slapd.conf \
- fi \
-done \
-# enable dependant schemas \
-if [ "%{-d*}" ]; then \
- %{__sed} -i -e ' \
- /^#include.*\\(%(echo '%{-d*}' | %{__sed} -e 's/,/\\\\|/g')\\)\\.schema/{ \
- s/^#// \
- }' /etc/openldap/slapd.conf \
-fi \
-%{nil}
-
-# Unregister OpenLDAP schema.
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %%openldap_schema_unregister %{schemadir}/horde.schema
-#
-%openldap_schema_unregister() \
-for schema in %*; do \
- if grep -q "$schema" /etc/openldap/slapd.conf; then \
- %{__sed} -i -e " \
- /^include.*$(echo "$schema" | %{__sed} -e 's,/,\\\\/,g')/d \
- # for symmetry it would be nice if we disable enabled schemas in post, \
- # but we really can not do that, it would break something else. \
- " /etc/openldap/slapd.conf \
- fi \
-done \
-%{nil}
-
-%env_update [ ! -x /sbin/env-update ] || /sbin/env-update -u || :
-
-
-# Build modules for kernels 2.6
-# Author: Przemyslaw Iskra <sparky@pld-linux.org>
-#
-# Usage:
-# %build_kernel_modules -m <modules> -C <directory>
-#
-# remember that proper Makefile is still required
-# Options:
-# -m <modules> (required) -- comma-separated list of modules to save,
-# without .ko extension, may be placed in subdirectory
-# -C <directory> -- change to <directory> before doing anything
-# -p <arg>, -P <arg> -- arguments passeed to make scripts
-# -c -- do not execute make clean
-# <additional arguments> -- all additional arguments will be passed to
-# make modules
-#
-# Additional patching supported via here document. Try:
-# %build_kernel_modules -m module <<'EOF'
-# your patch script here
-# EOF
-# Don't use it unless patching depends on config options.
-
-# Developer note: don't touch it unless you know how to handle '\'.
-# - \ in script expands to nothing
-# - \\\ in script expands to \
-# - \\\ inside definition expands to nothing
-# - \\\\\\\ inside definition expands to \
-# - in last line \ has to touch arguments so arguments passing
-# in new lines (using \) will be supported
-
-%build_kernel_modules(p:P:m:C:c) \
-%{!?-m:%{error:%{0}: Required module name/list missing} exit 1} \
- \
-%define Opts \\\\\\\
-%if "%{_target_base_arch}" != "%{_arch}" \\\
- %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386" \\\
- CC="%{kgcc}" ARCH=%{_target_base_arch} \\\
- %else \\\
- ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux- \\\
- %endif \\\
-%else \\\
- CC="%{kgcc}" \\\
-%endif \
-%define MakeOpts HOSTCC="%{kgcc}" SYSSRC=%{_kernelsrcdir} SYSOUT=$PWD/o \\\\\\\
- O=$PWD/o %{?with_verbose:V=1} %{Opts} \
- \
-%{?-C:cd %{-C*}} \
-compile() { \
- local L="<" PATCH_SH; \
- [[ '%{*}' != *$L$L* ]] || PATCH_SH="set -x -e;$(cat)" \
- set -e -x \
- local cfgs='%{?with_dist_kernel:%{?with_smp: smp}%{?with_up: up}}%{!?with_dist_kernel: nondist}' \
- \
-for cfg in ${cfgs:-dist}; do \
- [ -r "%{_kernelsrcdir}/config-$cfg" ] || exit 1 \
- \
- rm -rf o \
- install -d o/include/linux o/arch/powerpc/lib \
- ln -sf %{_kernelsrcdir}/config-$cfg o/.config \
- ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers \
- ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h \
- \
- set +x \
- [ -z "$PATCH_SH" ] || echo "$PATCH_SH" | %__spec_build_shell \
- set -x \
- \
- %if %{with dist_kernel} || %(test -f %{_kernelsrcdir}/scripts/bin2c ; echo $?) \
- %{__make} -j1 -C %{_kernelsrcdir} prepare scripts \\\
- %{-p*} %{-P*} \\\
- %{MakeOpts} \
- %else \
- install -d o/include/config \
- touch o/include/config/MARKER \
- ln -sf %{_kernelsrcdir}/include/config/auto-$cfg.conf o/include/config/auto.conf \
- ln -sf %{_kernelsrcdir}/scripts o/scripts \
- %endif \
- \
- %{!?-c:%{__make} -C %{_kernelsrcdir} clean \\\
- RCS_FIND_IGNORE="-name '*.ko' -o" \\\
- ${1+"$@"} \\\
- M=$PWD %{MakeOpts}} \
- \
- %{__make} -C %{_kernelsrcdir} modules \\\
- ${1+"$@"} \\\
- M=$PWD %{MakeOpts} \
- \
- for MODULE in {%{-m*},}; do \
- [ -z "${MODULE}" ] || mv ${MODULE}{,-$cfg}.ko \
- done \
-done \
-%{?-C:cd -} \
-} \
-compile %{*}\
-%{nil}
-
-
-# Install kernel modules built by %build_kernel_modules
-# Author: Przemyslaw Iskra <sparky@pld-linux.org>
-#
-# Usage:
-# %install_kernel_modules -m <modules> -d <directory>
-#
-# Options:
-# -m <modules> (required) -- comma-separated list of modules to install,
-# without .ko extension, may be placed in subdirectory
-# -d <directory> (required) -- in what subdirectory modules should be
-# installed (eg. misc, kernel/drivers/net)
-# -s <suffix> -- suffix to use when installing modules, useful when module
-# with same name exists in kernel already
-# -n <file> -- name of modprobe config file to use (without .conf extension)
-# for defining aliases, only useful with -s
-
-%install_kernel_modules(m:d:s:n:) \
-%{!?-m:%{error:%{0}: Required module name (-m) missing}exit 1} \
-%{!?-d:%{error:%{0}: Required module directory missing}exit 1} \
-%{?-n:%{!?-s:%{error:%{0}: Modprobe .conf file requires module suffix}exit 1}} \
- \
-%define KernelD $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver} \
-%define ModprobeD $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{_kernel_ver} \
- \
-__install_kernel_modules() { \
-local cfgs='%{?with_dist_kernel:%{?with_smp: smp}%{?with_up: up}}%{!?with_dist_kernel: nondist}' \
- \
-for MODULE in {%{-m*},}; do \
- [ -n "${MODULE}" ] || continue \
- for cfg in ${cfgs:-dist}; do \
- [ "$cfg" = smp ] && suf=smp || suf= \
- MNAME=${MODULE##*/} \
- install -D ${MODULE}-$cfg.ko \\\
- %{KernelD}$suf/%{-d*}/${MNAME}%{-s:-%{-s*}}.ko \
- %{?-s:install -d %{ModprobeD}$suf \
- echo "alias ${MNAME} ${MNAME}-%{-s*}" \\\
- >> %{ModprobeD}$suf/%{-n*}.conf} \
- done \
-done \
-} \
-__install_kernel_modules \
-%{nil}
-
-# patchset macros
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %patchset_source -f <seq(1) format> <start> [<end>]
-# %patchset_patch <start> [<end>]
-#
-# If <end> is omited, it is assumed to be <start>.
-#
-# For example in preamble:
-# %patchset_source -f ftp://ftp.vim.org/pub/editors/vim/patches/7.0/7.0.%03g 33 44
-# and in %prep:
-# %patchset_patch 33 44
-
-# generate SourceX urls from range START STOP
-# Format can be SINGLE format char of %e, %f, %g, see seq(1)
-# The sources start from 10000
-%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}
-
-# apply sources from %patchset_source
-# -p specify -pX for %patch line
-# -b base offset: defaults to 10000
-%patchset_patch(f:p:b:) %(
- base=%{-b*}%{!-b*:10000};
- start=$(expr $base + %1);
- end=$(expr $base + %{?2}%{!?2:%{1}});
- echo ": patchset_patch %1%{?2: to %2}";
- seq -f 'patch%g %{-p*:-p%{-p*}}' $start $end | sed -e s,^,%%,;
-) \
-%{nil}
-
-# browser plugins v2
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %browser_plugins_add_browser <name> -p <plugindir>
-#
-# <name> (required) -- name of the browser. usually %{name}.
-# -p <plugindir> (required) -- in what directory browser searches for its plugins.
-# -b -- default blacklists
-# -a <arch> override arch
-#
-# Example:
-# %browser_plugins_add_browser %{name} -p %{_firefoxdir}/plugins
-
-%_browserpluginsconfdir /etc/browser-plugins
-%_browserpluginsdir %{_libdir}/browser-plugins
-%update_browser_plugins /usr/sbin/update-browser-plugins || :
-
-%browser_plugins_add_browser(p:b:a:) \
- browser=%1.%{!-a:%{_target_base_arch}}%{-a*} \
- install -d $RPM_BUILD_ROOT%{_browserpluginsconfdir}/{blacklist,browsers}.d \
- ln -s %{-p*} $RPM_BUILD_ROOT%{_browserpluginsconfdir}/browsers.d/$browser \
- blacklist_file=$RPM_BUILD_ROOT%{_browserpluginsconfdir}/blacklist.d/$browser.blacklist \
- echo '# This file format is shell globs at base dir of plugindir' > $blacklist_file \
- %{-b:cat >> $blacklist_file %{-b*}} \
-%{nil}
-
-# Helper for LUA.
-# split string separated by space into quoted list
-#
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# %__lua_split /bin/sh /bin/pdksh -> "/bin/sh", "/bin/pdksh"
-%__lua_split() %(echo "%*" | awk '{for (i=1;i<=NF;i++) printf("\\"%%s\\"%%s", $i, i == NF ? "" : ", ")}')
-
-# adjust /etc/shells by adding and removing shells from there
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %post -p <lua>
-# %lua_add_etc_shells /bin/sh /bin/pdksh
-#
-# %preun -p <lua>
-# if arg[2] == 0 then
-# %lua_remove_etc_shells /bin/bash /bin/rbash
-# end
-#
-# Requirements:
-# BuildRequires: rpmbuild(macros) >= 1.462
-#
-
-%lua_add_etc_shells() \
-t = {}\
-f = io.open("/etc/shells", "r")\
-if f then\
- for l in f:lines() do t[l]=l; end\
- f:close()\
-end\
-for _, s in ipairs({%{expand:%%__lua_split %*}}) do\
- if not t[s] then\
- print("Adding "..s.." to /etc/shells")\
- f = io.open("/etc/shells", "a"); f:write(s.."\\n"); f:close()\
- end\
-end\
-%{nil}
-
-%lua_remove_etc_shells() \
-t = {}\
-f = io.open("/etc/shells", "r")\
-if f then\
- for l in f:lines() do t[l]=l; end\
- f:close()\
-end\
-for _, l in pairs({%{expand:%%__lua_split %*}}) do\
- print("Removing "..l.." from /etc/shells")\
- t[l] = nil\
-end\
-s=""\
-for _, l in pairs(t) do\
- s=s..l.."\\n"\
-end\
-io.open("/etc/shells", "w"):write(s)\
-%{nil}
-
-# Backwards compat. Use of %lua_ prefixed macros is preferred as these are cleaner to read.
-#
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-#
-# Usage:
-# %post -p %add_etc_shells -p /bin/sh /bin/pdksh
-# %preun -p %remove_etc_shells -p /bin/sh /bin/pdksh
-#
-# -p (optional) -- specifies that result is embeded %post script (prepends <lua> as first line)
-#
-# Requirements:
-# BuildRequires: rpmbuild(macros) >= 1.429
-#
-%add_etc_shells(p) %{-p:<lua>}\
-%{expand:%%lua_add_etc_shells %*}\
-%{nil}
-
-%remove_etc_shells(p) %{-p:<lua>}\
-%{-p:if arg[2] == 0 then}\
-%{expand:%%lua_remove_etc_shells %*}\
-%{-p:end} \
-%{nil}
-
-# Check syntax for Python files
-#
-# Author: Elan Ruusamäe <glen@pld-linux.org>
-# Author: Arkadiusz Miśkiewicz <arekm@pld-linux.org>
-#
-# Usage:
-# %py_lint src
-#
-# Requirements:
-# BuildRequires: python
-# BuildRequires: rpmbuild(macros) >= 1.469
-
-%py_lint() \
-__py_lint() { \
-find "$@" -type f -name '*.py' | python -c ' \
-import sys \
-import compiler \
-\
-err = 0\
-for f in sys.stdin: \
- fd = open(f.strip()) \
- c = fd.read() \
- fd.close() \
- try: \
- compiler.parse(c) \
- except SyntaxError, e: \
- print "py_lint: %s: %s" % (f.strip(), e) \
- err = err + 1\
-\
-if err: \
- print >> sys.stderr, "\\npy_lint: ERROR: Syntax errors in %d files.\\n" % err \
- sys.exit(1) \
-else: \
- print >> sys.stderr, "py_lint: Found no syntax errors." \
-' \
-}; __py_lint %* \
-%{nil}
-
-# vim:ts=4 sw=4 noet syn=spec