commit 681a4871ef0d9c9e9b5b1e685e773f81e60fa9fd
Author: kura <[email protected]>
Date:   Tue Nov 16 16:11:11 1999 +0000

    version 0.2
    - "Copyright:" is replaced with "License:" if it is (L)GPL or BSD
    - added using %{name} and %{version} in the filenames in "Source:" (if
      there is "ftp:" or "http:" on the beggining of filename)
    - If the Group is started with X11 - add defines of _prefix and _mandir
    - '-m' is removed fro parametrs list of 'install' only if sets modes to 644
    - '-g' and '-u' are removed from parameters list of 'install' only if
      sets user/group to root
    - lines contain 'chown' or 'chgrp' are removed only if changes owner/group
      to root
    - lines contain 'chmod' are removed only if chmod sets the modes to 644
    - some cosmetics
    
    Changed files:
        adapter.awk -> 1.2

 adapter.awk | 82 +++++++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 61 insertions(+), 21 deletions(-)
---
diff --git a/adapter.awk b/adapter.awk
index ce278b3..637f767 100644
--- a/adapter.awk
+++ b/adapter.awk
@@ -1,28 +1,31 @@
 #!/bin/awk -f
 #
-# This is adapter v0.1. Adapter adapts .spec files for PLD.
+# This is adapter v0.2. Adapter adapts .spec files for PLD.
 # Copyright (C) 1999 Micha� Kuratczyk <[email protected]>
 
 BEGIN {
        preamble = 1;
-       BOF = 1;        # Beggining of file
-       BOC = 2;        # Beggining of %changelog
+       bof = 1;        # Beggining of file
+       boc = 2;        # Beggining of %changelog
 }
 
 # There should be a comment with CVS keywords on the first line of file.
-BOF == 1 {
+bof == 1 {
        if (!/# \$Revision:/)
                 print "# $Revision$, $Date$";
-       BOF = 0;
+       bof = 0;
 }
 
 # descriptions:
 /%description/, (/^%[a-z]+/ && !/%description/) {
        preamble = 0;
 
-       # I have not idea what to put here, but it is possible that some
-       # descriptions contain lines with "Word:" on the beggining of line,
-       # so for %descriptions preamble is zero.
+       # Define _prefix and _mandir if it is X11 application
+       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;
+       }
 }
 
 # %prep section:
@@ -49,12 +52,20 @@ BOF == 1 {
        if (/mkdir -p/)
                sub(/mkdir -p/, "install -d");
                
-       # no '-m', '-u' or '-g' for 'install'
-       if (/^install/ && /-[mug][ \t]*[a-z0-7]+/)
-               gsub(/-[mug][ \t]*[a-z0-7]+/, "\b");
+       # no '-u root' or '-g root' for 'install'
+       if (/^install/ && /-[ug][ \t]*root/)
+               gsub(/-[ug][ \t]*root/, "\b");
+       
+       if (/^install/ && /-m[ \t]*644/)
+               gsub(/-m[ \t]*644/, "\b");
+       
+       # no lines contain 'chown' or 'chgrp', which changes
+       # owner/group to 'root'
+       if ($1 ~ /chown|chgrp/ && $2 ~ /root|root.root/)
+               noprint = 1;
        
-       # no lines contain either of 'chmod', 'chown' or 'chgrp'
-       if ($1 ~ /chmod|chown|chgrp/)
+       # no lines contain 'chmod' if it sets the modes to '644'
+       if ($1 ~ /chmod/ && $2 ~ /644/)
                noprint = 1;
        
        # 'gzip -9nf' for compressing
@@ -78,29 +89,58 @@ BOF == 1 {
        preamble = 0;
        
        # There should be some CVS keywords on the first line of %changelog.
-       if (BOC == 1) {
+       if (boc == 1) {
                if (!/PLD Team/) {
                        print "* %{date} PLD Team <[email protected]>";
                        printf "All below listed persons can be reached on";
                        print "<_login>@pld.org.pl\n"
                }
-               BOC = 0;
+               boc = 0;
        }
        
-       if (BOC == 2)
-               BOC--;
+       if (boc == 2)
+               boc--;
 }
 
 # preambles:
 preamble == 1 {
+       # There should not be a space after the name of field
+       # and before the colon.
+       sub(/[ \t]*:/, ":");
+       
        if (tolower($1) ~ /buildroot:/)
                $2 = "/tmp/%{name}-%{version}-root";
+
+       # Is it X11 application?
+       if (tolower($1) ~ /group/ && $2 ~ /^X11/ && x11 == 0)
+               x11 = 1;
+               
+       # Do not add %define of _prefix if it already is.
+       if ($1 ~ /%define/ && $2 ~ /_prefix/)
+               x11 = 2;
+                       
+       # Use "License" instead of "Copyright" if it is (L)GPL or BSD
+       if (tolower($1) ~ /copyright:/ && $2 ~ /GPL|BSD/)
+               $1 = "License:";
        
-       # There should not be a space after the name of field and before the
-       # colon, but there should be one or two tabs after the colon.
-       sub(/[ \t]*:/, ":");
+       if (tolower($1) ~ /name:/)
+               name = $2;
+
+       if (tolower($1) ~ /version:/)
+               version = $2;
+
+       # Use %{name} and %{version} in the filenames in "Source:"
+       if (tolower($1) ~ /source/ && $2 ~ /^ftp:|^http:/) {
+               n = split($2, url, /\//);
+               filename = url[n];
+               sub(name, "%{name}", url[n]);
+               sub(version, "%{version}", url[n]);
+               sub(filename, url[n], $2);
+       }
+               
+       # There should be one or two tabs after the colon.
        sub(/:[ \t]*/, ":");
-       if (match($0, /[#A-Z][A-Za-z0-9()]+[ \t]*:[ \t]*/) == 1) {
+       if (match($0, /[A-Za-z0-9()# \t]+[ \t]*:[ \t]*/) == 1) {
                if (RLENGTH < 8)
                        sub(/:/, ":\t\t");
                else
================================================================

---- gitweb:

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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to