Sorry, forgot the patch.
Here it is.

Vlad

-- 
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 9f3bbb2..ebc6087 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -961,6 +961,75 @@ write_pkginfo() {
        fi
 }
 
+write_srcinfo() {
+# usage: write_srcinfo name
+
+       local packager
+       if [[ -n ${PACKAGER} ]]; then packager="${PACKAGER}"
+       else packager="none"; fi
+       local builddate=$(date -u "+%s")
+
+       msg2 "$(gettext "Generating .SRCINFO file...")"
+       echo "# Generated by makepkg $myver"
+       echo "# $(LC_ALL=C date -u)"
+       # use "global" as tag for vars needed in entire $BUILDFILE
+       if (( SPLITPKG )); then
+               echo "global pkgbase = ${pkgbase}"
+               printf "global pkgname = %s\n"  "${pkgna...@]}"
+       else echo "global pkgname = $1"
+       fi
+       echo "global pkgver = ${pkgver}-${pkgrel}"
+       echo "global pkgdesc = ${pkgdesc}"
+       echo "global url = ${url}"
+       echo "global packager = ${packager}"
+       echo "global builddate = $builddate"
+       [[ ${changelog} ]]    && echo "global changelog = ${changelog}"
+
+  # arrays
+       [[ ${source} ]]       && printf "global source = %s\n"       
"${sour...@]}" 
+       [[ ${license} ]]      && printf "global license = %s\n"     
"${licen...@]}"
+       [[ ${groups} ]]       && printf "global group = %s\n"       
"${grou...@]}"
+       printf "global arch = %s\n"        "${ar...@]}"
+       [[ ${backup} ]]       && printf "global backup = %s\n"      
"${back...@]}"
+       [[ ${depends} ]]      && printf "global depends = %s\n"      
"${depen...@]}"
+       [[ ${makedepends} ]]  && printf "global makedepends = %s\n"  
"${makedepen...@]}"
+       [[ ${optdepends} ]]   && printf "global optdepends = %s\n"   
"${optdepen...@]}"
+       [[ ${conflicts} ]]    && printf "global conflict = %s\n"    
"${conflic...@]}"
+       [[ ${provides} ]]     && printf "global provides = %s\n"    
"${provid...@]}"
+       [[ ${replaces} ]]     && printf "global replaces = %s\n"    
"${replac...@]}"
+
+       if (( SPLITPKG )); then 
+               local name vararray override tempvar
+               IFS=$'\n'
+               for name in "${pkgna...@]}"; do
+                       # use $name as tag for vars needed only in 
package_$name 
+                       # standardize function formatting: delete 
whitespaces/tabs at the beginning and 
+                       # change trailing character to \n at the end of each 
line inside function; grep the variables  
+                       vararray=( $(declare -f "package_${name}" | /bin/sed -e 
"s/^[ \t]*//" -e "s/;$/\n/" | /bin/grep -e "^[[:alpha:]]*=") )
+                       for override in "${vararr...@]}"; do
+                               tempvar="${override%%=*}"
+                               # first check if var is in allowed overrides 
(splitpkg_overrides)
+                               if [[ ${splitpkg_overrides[*]} =~ " ${tempvar} 
" ]]; then
+                                       declare -a temparray 
+                                       eval temparray="${override#*=}"
+                                       [[ "${tempvar}" == "pkgrel" ]] && 
printf "${name} pkgver = ${pkgver}-${temparray[0]}\n" && continue
+                                       printf "${name} ${tempvar} = %s\n" 
"${temparr...@]}"
+                                       unset temparray
+                               fi
+                               unset tempvar
+                       done
+               done
+               unset IFS
+       fi      
+
+       # TODO maybe remove this at some point
+       # warn if license array is not present or empty
+       if [[ -z ${license} ]]; then
+               warning "$(gettext "Please add a license line to your %s!")" 
"${BUILDSCRIPT}"
+               plain "$(gettext "Example for GPL\'ed software: 
license=('GPL').")"
+       fi
+}
+
 check_package() {
        cd "$pkgdir"
 
@@ -1091,6 +1160,8 @@ create_srcpackage() {
        local srclinks="$(mktemp -d "$startdir"/srclinks.XXXXXXXXX)"
        mkdir "${srclinks}"/${pkgbase}
 
+       write_srcinfo ${pkgbase} > "${srclinks}/${pkgbase}/.SRCINFO"
+
        msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
        ln -s "${BUILDFILE}" "${srclinks}/${pkgbase}/${BUILDSCRIPT}"
 


Reply via email to