[packages/adapter: 15/631] version 1.0 :^) - added inserting macros - added inserting "%defattr(644,root,root,755)" - some bu

glen glen at pld-linux.org
Mon Sep 12 19:35:43 CEST 2016


commit 43c05c3c17cf749e9d03b108b9c726f3e4138444
Author: kura <kura at pld-linux.org>
Date:   Sun Jan 16 12:15:17 2000 +0000

    version 1.0   :^)
    - added inserting macros
    - added inserting "%defattr(644,root,root,755)"
    - some bugfixes
    
    Changed files:
        adapter.awk -> 1.15

 adapter.awk | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 72 insertions(+), 15 deletions(-)
---
diff --git a/adapter.awk b/adapter.awk
index 3bffb6c..ba63805 100644
--- a/adapter.awk
+++ b/adapter.awk
@@ -1,6 +1,6 @@
 #!/bin/awk -f
 #
-# This is adapter v0.9+. Adapter adapts .spec files for PLD.
+# This is adapter v1.0. Adapter adapts .spec files for PLD.
 # Copyright (C) 1999 Micha� Kuratczyk <kura at pld.org.pl>
 
 BEGIN {
@@ -13,6 +13,16 @@ BEGIN {
 	# Is 'date' macro already defined?
 	if (is_there_line("%define date"))
 		date = 1;
+	
+	"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
 }
 
 # There should be a comment with CVS keywords on the first line of file.
@@ -25,6 +35,15 @@ FNR == 1 {
 	next;				# It is enough for first line
 }
 
+# If the latest line matched /%files/
+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;
+}
+
 # descriptions:
 /%description/, (/^%[a-z]+/ && !/%description/) {
 	preamble = 0;
@@ -36,7 +55,8 @@ FNR == 1 {
 	if (/^%description$/ && x11 == 1) {
 		print "%define\t\t_prefix\t\t/usr/X11R6";
 		print "%define\t\t_mandir\t\t%{_prefix}/man\n";
-		x11 == 2;
+		prefix = "/usr/X11R6";
+		x11 = 2;
 	}
 
         # Collect whole text of description
@@ -79,7 +99,7 @@ FNR == 1 {
 /%prep/, (/^%[a-z]+$/ && !/%prep/) {
 	preamble = 0;
 	
-	# add '-q' to %setup
+	# Add '-q' to %setup
 	if (/%setup/ && !/-q/)
 		sub(/%setup/, "%setup -q");
 }
@@ -88,30 +108,32 @@ FNR == 1 {
 /%build/, (/^%[a-z]+$/ && !/%build/) {
 	preamble = 0;
 
-	# Any ideas?
+	use_macros();
 }
 
 # %install section:
 /%install/, (/^[a-z]+$/ && !/%install/) {
 	preamble = 0;
 	
+	use_macros();
+
 	# 'install -d' instead 'mkdir -p'
 	if (/mkdir -p/)
 		sub(/mkdir -p/, "install -d");
 		
-	# no '-u root' or '-g root' for 'install'
+	# No '-u root' or '-g root' for 'install'
 	if (/^install/ && /-[ug][ \t]*root/)
 		gsub(/-[ug][ \t]*root /, "");
 	
 	if (/^install/ && /-m[ \t]*644/)
 		gsub(/-m[ \t]*644 /, "");
 	
-	# no lines contain 'chown' or 'chgrp', which changes
+	# No lines contain 'chown' or 'chgrp', which changes
 	# owner/group to 'root'
-	if ($1 ~ /chown|chgrp/ && $2 ~ /root|root.root/)
+	if (($1 ~ /chown/ && $2 ~ /root\.root/) || ($1 ~ /chgrp/ && $2 ~ /root/))
 		next;
 	
-	# no lines contain 'chmod' if it sets the modes to '644'
+	# No lines contain 'chmod' if it sets the modes to '644'
 	if ($1 ~ /chmod/ && $2 ~ /644/)
 		next;
 	
@@ -124,11 +146,13 @@ FNR == 1 {
 }
 
 # %files section:
-/%files/, (/^%[a-z]+$/ && !/%files/) {
+/%files/, (/^%[a-z \-]+$/ && !/%files/) {
 	preamble = 0;
 	
-	if (/%defattr/)
-		$0 = "%defattr(644,root,root,755)";
+	if ($0 ~ /%files/)
+		defattr = 1;
+	
+	use_macros();
 }
 
 # %changelog section:
@@ -204,10 +228,29 @@ preamble == 1 {
 
 	format_preamble();
 	
-	# Do not add %define of _prefix if it already is.
-	if ($1 ~ /%define/ && $2 ~ /_prefix/)
-		x11 = 2;
-			
+	if ($1 ~ /%define/) {
+		# Do not add %define of _prefix if it already is.
+	       	if ($2 ~ /_prefix/) {
+			prefix = $3;
+			x11 = 2;
+		}
+		if ($2 ~ /_bindir/ && !/_sbindir/)
+			bindir = $3;
+		if ($2 ~ /_sbindir/)
+			sbindir = $3;
+		if ($2 ~ /_libdir/)
+			libdir = $3;
+		if ($2 ~ /_sysconfdir/)
+			sysconfdir = $3;
+		if ($2 ~ /_datadir/)
+			datadir = $3;
+		if ($2 ~ /_includedir/)
+			includedir = $3;
+		if ($2 ~ /_mandir/)
+			mandir = $3;
+		if ($2 ~ /_infodir/)
+			infodir = $3;
+	}
 }
 
 {
@@ -284,3 +327,17 @@ function format_preamble()
 	}
 }
 
+# Replace directly specified directories with macros
+function use_macros()
+{
+	gsub(bindir, "%{_bindir}");
+	gsub(sbindir, "%{_sbindir}");
+	gsub(libdir, "%{_libdir}");
+	gsub(sysconfdir, "%{_sysconfdir}");
+	gsub(datadir, "%{_datadir}");
+	gsub(includedir, "%{_includedir}");
+	gsub(mandir, "%{_mandir}");
+	gsub(infodir, "%{_infodir}");
+	gsub(prefix, "%{_prefix}");
+}
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/adapter.git/commitdiff/6ca0126d4d0c8c79feb7db10b0a0fade0f3b8885



More information about the pld-cvs-commit mailing list