packages: rpm-build-tools/adapter.awk - update to r1.422
glen
glen at pld-linux.org
Sun Jun 28 19:01:34 CEST 2009
Author: glen Date: Sun Jun 28 17:01:34 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- update to r1.422
---- Files affected:
packages/rpm-build-tools:
adapter.awk (1.8 -> 1.9)
---- Diffs:
================================================================
Index: packages/rpm-build-tools/adapter.awk
diff -u packages/rpm-build-tools/adapter.awk:1.8 packages/rpm-build-tools/adapter.awk:1.9
--- packages/rpm-build-tools/adapter.awk:1.8 Wed Sep 24 16:55:55 2008
+++ packages/rpm-build-tools/adapter.awk Sun Jun 28 19:01:29 2009
@@ -1,7 +1,6 @@
#!/usr/bin/gawk -f
#
-# This is adapter v0.30-RELEASE. Adapter adapts .spec files for PLD Linux.
-# $Id$
+# Adapter adapts .spec files for PLD Linux.
#
# Copyright (C) 1999-2008 PLD-Team <feedback at pld-linux.org>
# Authors:
@@ -25,12 +24,18 @@
# - 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-
+# - it should change: /%source([0-9]+)/i to %{SOURCE\1}
+# - extra quote on LDFLAGS line: https://bugs.launchpad.net/pld-linux/+bug/385836
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)"
+ RCSID = "$Id$"
+ rev = RCSID # TODO: parse from RCSID
+ VERSION = "0.31/" rev
+
+ 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|Auto(Req|Prov))"
usedigest = 0 # Enable to switch to rpm 4.4.6+ md5 digests
@@ -47,60 +52,19 @@
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 at 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")
+ import_rpm_macros()
+
+ packages_dir = topdir "/packages"
+ groups_file = packages_dir "/rpm.groups"
+
+ system("cd "packages_dir"; [ -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.
@@ -136,6 +100,7 @@
# force order
gsub(/^Summary\(/, "11Summary(", s);
gsub(/^Summary/, "10Summary", s);
+
gsub(/^Name/, "2Name", s);
gsub(/^Version/, "3Version", s);
gsub(/^Release/, "4Release", s);
@@ -156,6 +121,9 @@
gsub(/^ExcludeArch/, "X7ExcludeArch", s);
gsub(/^BuildRoot/, "X9BuildRoot", s);
+ gsub(/^AutoProv/, "Xx1AutoProv", s);
+ gsub(/^AutoReq/, "Xx2AutoReq", s);
+
# printf("%s -> %s\n", a""b, s);
return s;
}
@@ -529,7 +497,9 @@
if ($0 ~ /^%files/)
defattr = 1
- use_files_macros()
+ if (!use_files_macros()) {
+ next
+ }
}
##############
@@ -1037,13 +1007,22 @@
}
}
-function fixedsub(s1,s2,t, ind) {
# substitutes fixed strings (not regexps)
+function fixedsub(s1,s2,t, ind) {
if (ind = index(t,s1))
t = substr(t, 1, ind-1) s2 substr(t, ind+length(s1))
return t
}
+# replace s with s2 if it equals to s1
+function replace(s, s1, s2) {
+ if (s == s1) {
+ return s2;
+ } else {
+ return s;
+ }
+}
+
# There should be one or two tabs after the colon.
function format_preamble()
{
@@ -1097,6 +1076,7 @@
gsub(ruby_rubylibdir, "%{ruby_rubylibdir}")
gsub(ruby_sitearchdir, "%{ruby_sitearchdir}")
gsub(ruby_sitelibdir, "%{ruby_sitelibdir}")
+ gsub(ruby_rdocdir, "%{ruby_rdocdir}")
gsub("%{_datadir}/applications", "%{_desktopdir}")
gsub("%{_datadir}/pixmaps", "%{_pixmapsdir}")
@@ -1180,11 +1160,18 @@
continue;
if ($c ~ sysconfdir "/dbus-1")
continue;
+ if ($c ~ sysconfdir "/tmpwatch")
+ continue;
gsub(sysconfdir, "%{_sysconfdir}", $c)
}
- gsub(kdedocdir, "%{_kdedocdir}")
gsub(docdir, "%{_docdir}")
+
+ gsub(kdedocdir, "%{_kdedocdir}")
+
+ gsub(gtkdocdir, "%{_gtkdocdir}")
+ gsub("%{_docdir}/gtk-doc/html", "%{_gtkdocdir}")
+
gsub(php_pear_dir, "%{php_pear_dir}")
gsub(php_data_dir, "%{php_data_dir}")
@@ -1354,13 +1341,13 @@
}
-function use_files_macros( i, n, t, a)
+function use_files_macros( i, n, t, a, l)
{
use_macros()
# skip comments
if (/^#/) {
- return;
+ return 1;
}
sub("^%doc %{_mandir}", "%{_mandir}")
@@ -1391,6 +1378,8 @@
gsub("%{_sysconfdir}/certs", "/etc/certs")
gsub("%{_sysconfdir}/init.d", "/etc/init.d")
gsub("%{_sysconfdir}/dbus-1", "/etc/dbus-1")
+ gsub("%{_sysconfdir}/pki", "/etc/pki")
+ gsub("%{_sysconfdir}/tmpwatch", "/etc/tmpwatch")
# /etc/init.d -> /etc/rc.d/init.d
if (!/^\/etc\/init\.d$/) {
@@ -1478,6 +1467,32 @@
$(NF + 1) = "# FIXME consider using %find_lang"
}
+ # python egg-infos
+ if (match($0, "^%{py_site(script)?dir}/.+-py"py_ver".egg-info$")) {
+ # tests:
+ #%{py_sitedir}/*-py2.4.egg-info
+ #%{py_sitescriptdir}/GnuPGInterface-%{version}-py2.4.egg-info
+ #%{py_sitescriptdir}/python_mpd-%{version}-py2.4.egg-info
+ #%{py_sitescriptdir}/mechanize-0.1.6b-py2.4.egg-info
+
+ l = index($0, "/");
+ t = substr($0, 0, l);
+ s = substr($0, l + 1, RLENGTH - l - length("-py"py_ver".egg-info"));
+ if (match(s, "[^-]+$")) {
+#printf("s[%s]; start[%d]; length[%d]\n", s, RSTART, RLENGTH);
+ if (RSTART > 1) {
+ s = substr(s, 0, RSTART - 1);
+ }
+#printf("s2[%s]\n", s);
+ print "%if \"%{py_ver}\" > \"2.4\""
+#print t "/.+.egg-info"
+ gsub(t "/.+.egg-info", t "/" s "-*.egg-info");
+ print
+ print "%endif"
+ return 0;
+ }
+ }
+
# atrpms
$0 = fixedsub("%{perl_man1dir}", "%{_mandir}/man1", $0);
$0 = fixedsub("%{perl_man3dir}", "%{_mandir}/man3", $0);
@@ -1492,6 +1507,8 @@
gsub("%{_datadir}/pixmaps", "%{_pixmapsdir}");
gsub("%{_datadir}/pear", "%{php_pear_dir}");
gsub("%{_datadir}/php", "%{php_data_dir}");
+
+ return 1
}
function use_script_macros()
@@ -1555,6 +1572,7 @@
{
# sourceforge urls
+ # Docs about sourceforge mirror system: http://sourceforge.net/docs/B05/
sub("[?&]big_mirror=.*$", "", url);
sub("[?&]modtime=.*$", "", url);
sub("[?]use_mirror=.*$", "", url);
@@ -1680,16 +1698,26 @@
# jpackages
sub(/^java-devel$/, "jdk", $2);
- sub(/^log4j$/, "logging-log4j", $2);
- sub(/^jakarta-log4j$/, "logging-log4j", $2);
- sub(/^oro$/, "jakarta-oro", $2);
+ sub(/^log4j$/, "java-log4j", $2);
+ sub(/^logging-log4j$/, "java-log4j", $2);
+ sub(/^jakarta-log4j$/, "java-log4j", $2);
+ sub(/^oro$/, "java-oro", $2);
+ sub(/^jakarta-oro$/, "java-oro", $2);
sub(/^jakarta-ant$/, "ant", $2);
- sub(/^xerces-j2$/, "xerces-j", $2);
+ sub(/^xerces-j2$/, "java-xerces", $2);
+ sub(/^xerces-j$/, "java-xerces", $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);
+ sub(/^xalan-j2$/, "java-xalan", $2);
+ sub(/^xalan-j$/, "java-xalan", $2);
+ sub(/^gnu-regexp$/, "java-gnu-regexp", $2);
+ sub(/^gnu.regexp$/, "java-gnu-regexp", $2);
+ sub(/^jakarta-commons-httpclient$/, "java-commons-httpclient", $2);
+ sub(/^xml-commons-resolver$/, "java-xml-commons-resolver", $2);
+ sub(/^axis$/, "java-axis", $2);
+ sub(/^wsdl4j$/, "java-wsdl4j", $2);
+ sub(/^uddi4j$/, "java-uddi4j", $2);
+ sub(/^hamcrest$/, "java-hamcrest", $2);
# redhat virtual
sub(/^tftp-server$/, "tftpdaemon", $2);
@@ -1733,54 +1761,116 @@
}
}
-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)
+# Load rpm macros
+# you should update the list also in adapter when making changes here
+function import_rpm_macros() {
+ # File with rpm groups
+ topdir = ENVIRON["_topdir"]
+
+ if (!topdir) {
+ print "adapter.awk should not not be invoked directly, but via adapter script" > "/dev/stderr"
+ do_not_touch_anything = 1
+ exit(1);
+ }
+
+ # get cvsaddress for changelog section
+ # using rpm macros as too lazy to add ~/.adapterrc parsing support.
+ _cvsmaildomain = ENVIRON["_cvsmaildomain"]
+ _cvsmailfeedback = ENVIRON["_cvsmailfeedback"]
+
+ prefix = ENVIRON["_prefix"]
+ bindir = ENVIRON["_bindir"]
+ sbindir = ENVIRON["_sbindir"]
+ libdir = ENVIRON["_libdir"]
+ sysconfdir = ENVIRON["_sysconfdir"]
+ datadir = ENVIRON["_datadir"]
+ includedir = ENVIRON["_includedir"]
+ mandir = ENVIRON["_mandir"]
+ infodir = ENVIRON["_infodir"]
+ examplesdir = ENVIRON["_examplesdir"]
+ docdir = ENVIRON["_defaultdocdir"]
+ kdedocdir = ENVIRON["_kdedocdir"]
+ gtkdocdir = ENVIRON["_gtkdocdir"]
+ desktopdir = ENVIRON["_desktopdir"]
+ pixmapsdir = ENVIRON["_pixmapsdir"]
+ javadir = ENVIRON["_javadir"]
+
+ perl_sitearch = ENVIRON["perl_sitearch"]
+ perl_archlib = ENVIRON["perl_archlib"]
+ perl_privlib = ENVIRON["perl_privlib"]
+ perl_vendorlib = ENVIRON["perl_vendorlib"]
+ perl_vendorarch = ENVIRON["perl_vendorarch"]
+ perl_sitelib = ENVIRON["perl_sitelib"]
+
+ py_sitescriptdir = ENVIRON["py_sitescriptdir"]
+ py_sitedir = ENVIRON["py_sitedir"]
+ py_scriptdir = ENVIRON["py_scriptdir"]
+ py_ver = ENVIRON["py_ver"]
+
+ ruby_archdir = ENVIRON["ruby_archdir"]
+ ruby_ridir = ENVIRON["ruby_ridir"]
+ ruby_rubylibdir = ENVIRON["ruby_rubylibdir"]
+ ruby_sitearchdir = ENVIRON["ruby_sitearchdir"]
+ ruby_sitelibdir = ENVIRON["ruby_sitelibdir"]
+ ruby_rdocdir = ENVIRON["ruby_rdocdir"]
+
+ php_pear_dir = ENVIRON["php_pear_dir"]
+ php_data_dir = ENVIRON["php_data_dir"]
+ tmpdir = ENVIRON["tmpdir"]
+}
+
+function replace_groupnames(group) {
+ group = replace(group, "Amusements/Games/Strategy/Real Time", "X11/Applications/Games/Strategy");
+ group = replace(group, "Application/Multimedia", "Applications/Multimedia");
+ group = replace(group, "Application/System", "Applications/System");
+ group = replace(group, "Applications/Compilers", "Development/Languages");
+ group = replace(group, "Applications/Daemons", "Daemons");
+ group = replace(group, "Applications/Internet", "Applications/Networking");
+ group = replace(group, "Applications/Internet/Peer to Peer", "Applications/Networking");
+ group = replace(group, "Applications/Productivity", "X11/Applications");
+ group = replace(group, "Database", "Applications/Databases");
+ group = replace(group, "Development/C", "Development/Libraries");
+ group = replace(group, "Development/Code Generators", "Development");
+ group = replace(group, "Development/Docs", "Documentation");
+ group = replace(group, "Development/Documentation", "Documentation");
+ group = replace(group, "Development/Java", "Development/Languages/Java");
+ group = replace(group, "Development/Languages/Other", "Development/Languages");;
+ group = replace(group, "Development/Languages/Ruby", "Development/Languages");
+ group = replace(group, "Development/Libraries/C and C++", "Development/Libraries");
+ group = replace(group, "Development/Libraries/Java", "Development/Languages/Java");
+ group = replace(group, "Development/Libraries/Python", "Development/Languages/Python");
+ group = replace(group, "Development/Libraries/TCL", "Development/Languages/Tcl");;
+ group = replace(group, "Development/Other", "Development");
+ group = replace(group, "Development/Python", "Development/Languages/Python");
+ group = replace(group, "Development/Testing", "Development");
+ group = replace(group, "Emulators", "Applications/Emulators");
+ group = replace(group, "Games", "Applications/Games");
+ group = replace(group, "Library/Development", "Development/Libraries");
+ group = replace(group, "Networking/Deamons", "Networking/Daemons");
+ group = replace(group, "Productivity/Databases/Servers", "Applications/Databases");
+ group = replace(group, "Productivity/Networking/Web/Servers", "Networking/Daemons/HTTP");;
+ group = replace(group, "Shells", "Applications/Shells");
+ group = replace(group, "System Environment/Base", "Base");
+ group = replace(group, "System Environment/Daemons", "Daemons");
+ group = replace(group, "System Environment/Kernel", "Base/Kernel");
+ group = replace(group, "System Environment/Libraries", "Libraries");
+ group = replace(group, "System", "Base");
+ group = replace(group, "System/Base", "Base");
+ group = replace(group, "System/Kernel and hardware", "Base/Kernel");
+ group = replace(group, "System/Libraries", "Libraries");
+ group = replace(group, "System/Servers", "Daemons");
+ group = replace(group, "Text Processing/Markup/HTML", "Applications/Text");
+ group = replace(group, "Text Processing/Markup/XML", "Applications/Text");
+ group = replace(group, "Web/Database", "Applications/WWW");
+ group = replace(group, "X11/GNOME", "X11/Applications");
+ group = replace(group, "X11/GNOME/Applications", "X11/Applications");
+ group = replace(group, "X11/GNOME/Development/Libraries", "X11/Development/Libraries");
+ group = replace(group, "X11/Games", "X11/Applications/Games");
+ group = replace(group, "X11/Games/Strategy", "X11/Applications/Games/Strategy");
+ group = replace(group, "X11/Library", "X11/Libraries");
+ group = replace(group, "X11/Utilities", "X11/Applications");
+ group = replace(group, "X11/XFree86", "X11");
+ group = replace(group, "X11/Xserver", "X11/Servers");
return group;
}
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/adapter.awk?r1=1.8&r2=1.9&f=u
More information about the pld-cvs-commit
mailing list