#!/bin/awk -f
#
-# This is adapter v0.27. Adapter adapts .spec files for PLD.
+# This is adapter v0.27. Adapter adapts .spec files for PLD Linux.
#
-# Copyright (C) 1999-2003 PLD-Team <feedback@pld-linux.org>
+# Copyright (C) 1999-2005 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>
-# Elan Ruusamäe <glen@pld-linux.org>
+# Elan Ruusamä¤e <glen@pld-linux.org>
+#
+# See cvs log adapter{,.awk} for list of contributors
+#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# TODO
# - 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"
+ SECTIONS = "^%(" RPM_SECTIONS ")"
+
preamble = 1 # Is it part of preamble? Default - yes
boc = 4 # Beginning of %changelog
bod = 0 # Beginning of %description
"rpm --eval %_mandir" | getline mandir
"rpm --eval %_infodir" | getline infodir
"rpm --eval %_examplesdir" | getline examplesdir
+ "rpm --eval %_defaultdocdir" | getline docdir
"rpm --eval %perl_sitearch" | getline perl_sitearch
"rpm --eval %perl_archlib" | getline perl_archlib
next
}
-# Remove defining _applnkdir (this macro has been included in rpm-3.0.4)
/^%define/ {
+ # Remove defining _applnkdir (this macro has been included in rpm-3.0.4)
if ($2 == "_applnkdir") {
next
}
sbindir = $3
if ($2 ~ /_libdir/)
libdir = $3
- if ($2 ~ /_sysconfdir/ && $3 !~ /^%\(/)
- sysconfdir = $3
+ if ($2 ~ /_sysconfdir/) {
+ if ($3 ~ /^%\(/) {
+ # TODO: should escape for latter checks like: ($c ~ sysconfdir "/{?cron.")
+ sysconfdir = "%%%%%%%%%%%%%%"
+ } else {
+ sysconfdir = $3
+ }
+ }
if ($2 ~ /_datadir/)
datadir = $3
if ($2 ~ /_includedir/)
mandir = $3
if ($2 ~ /_infodir/)
infodir = $3
+ if ($2 ~ /_docdir/)
+ docdir = $3
# version related macros
if ($2 ~ /^_beta$/)
################
# %description #
################
-/^%description/, (/^%[a-z]+/ && !/^%description/ && !/^%((end)?if|else)/) {
+/^%description/, (!/^%description/ && $0 ~ SECTIONS) {
preamble = 0
if (/^%description/) {
#########
# %prep #
#########
-/^%prep/, (/^%[a-z]+$/ && !/^%prep/ && !/^%((end)?if|else)/) {
+/^%prep/, (!/^%prep/ && $0 ~ SECTIONS) {
preamble = 0
use_macros()
##########
# %build #
##########
-/^%build/, (/^%[a-z]+$/ && !/^%build/ && !/^%((end)?if|else)/) {
+/^%build/, (!/^%build/ && $0 ~ SECTIONS) {
preamble = 0
use_macros()
##########
# %clean #
##########
-/^%clean/, (/^%[a-z]+$/ && !/^%clean/ && !/^%((end)?if|else)/) {
+/^%clean/, (!/^%clean/ && $0 ~ SECTIONS) {
did_clean = 1
# prevent next section header like "%post -p /sbin/ldconfig" being adapterized
############
# %install #
############
-/^%install/, (/^%[a-z]+$/ && !/^%install/ && !/^%((end)?if|else)/) {
+/^%install/, (!/^%install/ && $0 ~ SECTIONS) {
preamble = 0
##########
# %files #
##########
-/^%files/, (/^%[a-z \-]+$/ && !/^%files/ && !/^%((end)?if|else)/) {
+/^%files/, (!/^%files/ && $0 ~ SECTIONS) {
preamble = 0
if ($0 ~ /^%files/)
##############
# %changelog #
##############
-/^%changelog/, (/^%[a-z]+$/ && !/^%changelog/) {
+/^%changelog/, (!/^%changelog/ && $0 ~ SECTIONS) {
preamble = 0
has_changelog = 1
skip = 0
###########
# SCRIPTS #
###########
-/^%pre/, (/^%[a-z]+$/ && !/^%pre/) {
+/^%pre/, (!/^%pre/ && $0 ~ SECTIONS) {
preamble = 0
# %useradd and %groupadd may not be wrapped
}
}
-/^%post/, (/^%[a-z]+$/ && !/^%post/) {
+/^%post/, (!/^%post/ && $0 ~ SECTIONS) {
preamble = 0
+ use_macros()
}
-/^%preun/, (/^%[a-z]+$/ && !/^%preun/) {
+/^%preun/, (!/^%preun/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%postun/, (/^%[a-z]+$/ && !/^%postun/) {
+/^%postun/, (!/^%postun/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%triggerin/, (/^%[a-z]+$/ && !/^%triggerin/) {
+/^%triggerin/, (!/^%triggerin/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%triggerun/, (/^%[a-z]+$/ && !/^%triggerun/) {
+/^%triggerun/, (!/^%triggerun/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%triggerpostun/, (/^%[a-z]+$/ && !/^%triggerpostun/) {
+/^%triggerpostun/, (!/^%triggerpostun/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%pretrans/, (/^%[a-z]+$/ && !/^%pretrans/) {
+/^%pretrans/, (!/^%pretrans/ && $0 ~ SECTIONS) {
preamble = 0
}
-/^%posttrans/, (/^%[a-z]+$/ && !/^%posttrans/) {
+/^%posttrans/, (!/^%posttrans/ && $0 ~ SECTIONS) {
preamble = 0
}
field = tolower($1)
fieldnlower = $1
- if (field ~ /summary:/) {
+ if (field ~ /summary:/ && !/etc\.$/) {
sub(/\.$/, "", $0);
}
if (field ~ /group(\([^)]+\)):/)
gsub(sysconfdir, "%{_sysconfdir}", $c)
}
+ gsub(docdir, "%{_docdir}")
+
for (c = 1; c <= NF; c++) {
if ($c ~ datadir "/automake")
continue;
gsub(datadir, "%{_datadir}", $c)
}
- gsub("%_sbindir", "%{_sbindir}")
- gsub("%_mandir", "%{_mandir}")
- gsub("%name", "%{name}")
-
gsub("%{prefix}/share", "%{_datadir}")
if (prefix"/share" == datadir)
gsub("%{_prefix}/share", "%{_datadir}")
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("%_bindir", "%{_bindir}")
gsub("%_datadir", "%{_datadir}")
gsub("%_iconsdir", "%{_iconsdir}")
+ gsub("%_sbindir", "%{_sbindir}")
+ gsub("%_mandir", "%{_mandir}")
+ gsub("%name", "%{name}")
gsub("/usr/src/linux", "%{_kernelsrcdir}")
gsub("%{_prefix}/src/linux", "%{_kernelsrcdir}")