tazpkg rev 727
pkgs.cgi: show licenses.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Dec 26 15:14:01 2014 +0200 (2014-12-26) |
parents | f9554d3c23b7 |
children | a16752d6a1b1 |
files | tazpanel/pkgs.cgi |
line diff
1.1 --- a/tazpanel/pkgs.cgi Wed Dec 24 17:29:07 2014 +0200 1.2 +++ b/tazpanel/pkgs.cgi Fri Dec 26 15:14:01 2014 +0200 1.3 @@ -314,9 +314,8 @@ 1.4 { 1.5 if (num_pages == 1) exit 1.6 p = int(NR/100) + 1 1.7 - if (p != page) current = ""; else current=" current" 1.8 1.9 - if (NR%100 == 1) printf "<a class=\"pages%s\" href=\"?%s%s\" title=\"%s\n···\n", current, url, p, $6 1.10 + if (NR%100 == 1) printf "<a class=\"pages%s\" href=\"?%s%s\" title=\"%s\n···\n", p==page?" current":"", url, p, $6 1.11 if (NR%100 == 0) printf "%s\">%s</a> ", $6, p - 1 1.12 } 1.13 END{ 1.14 @@ -327,6 +326,19 @@ 1.15 } 1.16 1.17 1.18 +# Show links for "info" page 1.19 + 1.20 +show_info_links() { 1.21 + if [ -n "$1" ]; then 1.22 + echo -n "<tr><td><b>$2</b></td><td>" 1.23 + echo $1 | tr ' ' $'\n' | awk -vt="$3" '{ 1.24 + printf "<a href=\"%s%s\">%s</a> ", t?("?"t"="):"", gensub(/\+/, "%2B", "g", $1), $1 1.25 + }' 1.26 + echo "</td></tr>" 1.27 + fi 1.28 +} 1.29 + 1.30 + 1.31 1.32 # 1.33 # Commands 1.34 @@ -740,14 +752,15 @@ 1.35 cd $PKGS_DB 1.36 LOADING_MSG=$(_ 'Getting package info...') 1.37 loading_msg 1.38 - IFS='|' 1.39 - set -- $(grep -hs "^$pkg |" packages.desc undigest/*/packages.desc) 1.40 - unset IFS 1.41 - PACKAGE=$1 1.42 - VERSION="$(echo $2)" 1.43 - SHORT_DESC="$(echo $3)" 1.44 - CATEGORY="$(echo $4)" 1.45 - WEB_SITE="$(echo $5)" 1.46 + eval "$(awk -F$'\t' -vp=$pkg ' 1.47 + $1==p{ 1.48 + printf "PACKAGE=\"%s\"; VERSION=\"%s\"; CATEGORY=\"%s\"; ", $1, $2, $3 1.49 + printf "SHORT_DESC=\"%s\"; WEB_SITE=\"%s\"; TAGS=\"%s\"; ", $4, $5, $6 1.50 + printf "SIZES=\"%s\"; DEPENDS=\"%s\"", $7, $8 1.51 + }' packages.info undigest/*/packages.info)" 1.52 + PACKED_SIZE=${SIZES% *} 1.53 + UNPACKED_SIZE=${SIZES#* } 1.54 + 1.55 action="Install" 1.56 temp="${pkg#get-}" 1.57 fi 1.58 @@ -759,7 +772,6 @@ 1.59 <p> 1.60 EOT 1.61 if [ "$temp" != "$pkg" -a "$action" == "Install" ]; then 1.62 - temp="$(echo $pkg | sed 's/get-//g')" 1.63 show_button "do=Install&$temp&nf" 1.64 else 1.65 show_button "do=$action&$pkg" 1.66 @@ -785,55 +797,33 @@ 1.67 <tbody> 1.68 <tr><td><b>$(_ 'Name')</b></td><td>$PACKAGE</td></tr> 1.69 <tr><td><b>$(_ 'Version')</b></td><td>$VERSION</td></tr> 1.70 + <tr><td><b>$(_ 'Category')</b></td><td><a href="?cat=$CATEGORY">$CATEGORY</a></td></tr> 1.71 <tr><td><b>$(_ 'Description')</b></td><td>$SHORT_DESC</td></tr> 1.72 - <tr><td><b>$(_ 'Category')</b></td><td>$CATEGORY</td></tr> 1.73 -EOT 1.74 - if [ -d $INSTALLED/$pkg ]; then 1.75 - cat << EOT 1.76 - <tr><td><b>$(_ 'Maintainer')</b></td><td>$MAINTAINER</td></tr> 1.77 + $([ -n "$MAINTAINER" ] && echo "<tr><td><b>$(_ 'Maintainer')</b></td><td>$MAINTAINER</td></tr>") 1.78 + $([ -n "$LICENSE" ] && echo "<tr><td><b>$(_ 'License')</b></td><td><a href=\"?license=$pkg\">$LICENSE</a></td></tr>") 1.79 <tr><td><b>$(_ 'Website')</b></td><td><a href="$WEB_SITE">$WEB_SITE</a></td></tr> 1.80 + $(show_info_links "$TAGS" "$(_ 'Tags')" 'tag') 1.81 <tr><td><b>$(_ 'Sizes')</b></td><td>$PACKED_SIZE/$UNPACKED_SIZE</td></tr> 1.82 -EOT 1.83 - if [ -n "$DEPENDS" ]; then 1.84 - echo "<tr><td><b>$(_ 'Depends')</b></td><td>" 1.85 - for i in $DEPENDS; do 1.86 - pkg_info_link $i 1.87 - done 1.88 - echo "</td></tr>" 1.89 - fi 1.90 - if [ -n "$SUGGESTED" ]; then 1.91 - echo "<tr><td><b>$(_ 'Suggested')</b></td><td>" 1.92 - for i in $SUGGESTED; do 1.93 - pkg_info_link $i 1.94 - done 1.95 - echo "</td></tr>" 1.96 - fi 1.97 - [ -n "$TAGS" ] && echo "<tr><td><b>$(_ 'Tags')</b></td><td>$TAGS</td></tr>" 1.98 - I_FILES=$(cat $INSTALLED/$pkg/files.list | wc -l) 1.99 - cat << EOT 1.100 + $(show_info_links "$DEPENDS" "$(_ 'Depends')" 'info') 1.101 + $(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info') 1.102 </tbody> 1.103 </table> 1.104 EOT 1.105 - DESC="$(tazpkg desc $pkg)" 1.106 - [ -n "$DESC" ] && echo "<pre>$DESC</pre>" 1.107 + DESC="$(tazpkg desc $pkg)" 1.108 + [ -n "$DESC" ] && echo "<pre>$DESC</pre>" 1.109 1.110 + if [ -d $INSTALLED/$pkg ]; then 1.111 cat << EOT 1.112 -<p>$(_ 'Installed files: %s' $I_FILES)</p> 1.113 +<p>$(_ 'Installed files: %s' $(wc -l < $INSTALLED/$pkg/files.list))</p> 1.114 1.115 <pre>$(sort $INSTALLED/$pkg/files.list)</pre> 1.116 EOT 1.117 else 1.118 cat << EOT 1.119 -<tr><td><b>$(_ 'Website')</b></td><td><a href="$WEB_SITE">$WEB_SITE</a></td></tr> 1.120 -<tr><td><b>$(_ 'Sizes')</b></td><td>$(grep -hsA 3 ^$pkg$ packages.txt undigest/*/packages.txt | \ 1.121 - tail -n 1 | sed 's/ *//')</td></tr> 1.122 -</table> 1.123 - 1.124 -<p>$(_ 'Installed files:')</p> 1.125 +<p>$(_ 'Installed files: %s' ' ')</p> 1.126 1.127 <pre> 1.128 -$(lzcat files.list.lzma undigest/*/files.list.lzma 2> /dev/null | \ 1.129 - sed "/^$pkg: /!d;s/^$pkg: //" | sort) 1.130 +$(lzcat files.list.lzma undigest/*/files.list.lzma 2> /dev/null | awk -vp="$pkg:" '$1==p{print $2}' | sort) 1.131 </pre> 1.132 EOT 1.133 fi 1.134 @@ -1053,8 +1043,95 @@ 1.135 break 1.136 done 1.137 fi 1.138 - ;; 1.139 - *) 1.140 + ;; 1.141 + 1.142 + 1.143 + *\ license\ *) 1.144 + # 1.145 + # Show licenses for installed packages 1.146 + # 1.147 + search_form 1.148 + sidebar 1.149 + pkg=$(GET license) 1.150 + case $pkg in 1.151 + /*) 1.152 + [ -e $pkg ] && { 1.153 + echo "<h2>${pkg#/usr/share/licenses/}</h2>" 1.154 + case $pkg in 1.155 + *.htm*) 1.156 + cat $pkg ;; 1.157 + *) 1.158 + echo "<pre style=\"white-space: pre-wrap\">" 1.159 + cat $pkg | htmlize | sed 's|\([hf]t*t*ps*://[a-zA-Z0-9./_-]*[a-zA-Z0-9/_-]\)|<a href="\1">\1</a>|' 1.160 + echo "</pre>" 1.161 + ;; 1.162 + esac 1.163 + } ;; 1.164 + *) 1.165 + echo "<h2>$(_ 'Licenses for package %s' $pkg)</h2>" 1.166 + ONLINE=''; OFFLINE='' 1.167 + 1.168 + if [ -e "$PKGS_DB/installed/$pkg" ]; then 1.169 + for license in $(. $PKGS_DB/installed/$pkg/receipt; echo "$LICENSE"); do 1.170 + OSL=''; GNU=''; USR=''; LIC='' 1.171 + case $license in 1.172 + Apache) OSL='Apache-2.0'; URL='http://www.apache.org/licenses/' ;; 1.173 + Artistic) OSL='Artistic-2.0' ;; 1.174 + BSD) OSL='BSD-2-Clause' ;; 1.175 + BSD3) OSL='BSD-3-Clause' ;; 1.176 + 1.177 + CC-BY-SA*|CC-SA*) CCO='by-sa/4.0/' ;; 1.178 + CC-BY-ND*) CCO='by-nd/4.0/' ;; 1.179 + CC-BY-NC-SA*) CCO='by-nc-sa/4.0/' ;; 1.180 + CC-BY-NC-ND*) CCO='by-nc-nd/4.0/' ;; 1.181 + CC-BY-NC*) CCO='by-nc/4.0/' ;; 1.182 + CC-BY*) CCO='by/4.0/' ;; 1.183 + 1.184 + cc-pd) URL='http://creativecommons.org/publicdomain/' ;; 1.185 + CCPL) ;; 1.186 + CDDL*) OSL='CDDL-1.0' ;; 1.187 + CECILL*) OSL='CECILL-2.1' ;; 1.188 + Eclipse|EPL*) OSL='EPL-1.0' ;; 1.189 + FDL) GNU='fdl' ;; 1.190 + GPL) GNU='gpl'; OSL='gpl-license'; LIC='gpl.txt' ;; 1.191 + GPL2) GNU='old-licenses/gpl-2.0'; OSL='GPL-2.0' ;; 1.192 + GPL3) GNU='gpl'; OSL='GPL-3.0'; LIC='gpl.txt' ;; 1.193 + ISC) OSL='ISC' ;; 1.194 + LGPL) GNU='lgpl'; OSL='lgpl-license' ;; 1.195 + LGPL2) GNU='old-licenses/lgpl-2.0' ;; 1.196 + LGPL2.1) GNU='old-licenses/lgpl-2.1'; OSL='LGPL-2.1'; LIC='lgpl.txt' ;; 1.197 + LGPL3) GNU='lgpl'; OSL='LGPL-3.0' ;; 1.198 + LPPL*) OSL='LPPL-1.3c' ;; 1.199 + MIT) OSL='MIT'; LIC='mit.txt' ;; 1.200 + MPL) OSL='MPL-2.0'; LIC='mozilla.txt' ;; 1.201 + MPL2) OSL='MPL-2.0' ;; 1.202 + FL) OSL='Fair' ;; # ? 1.203 + PSL) ;; 1.204 + PublicDomain) ;; 1.205 + QPL*) OSL='QPL-1.0' ;; 1.206 + SIL_OFL*) OSL='OFL-1.1' ;; 1.207 + zlib/libpng) OSL='Zlib' ;; 1.208 + esac 1.209 + 1.210 + [ -n "$OSL" ] && ONLINE="$ONLINE <li><a href=\"http://opensource.org/licenses/$OSL\">$(_ '%s license on %s website' "<b>$OSL</b>" "OSL")</a></li>\n" 1.211 + [ -n "$GNU" ] && ONLINE="$ONLINE <li><a href=\"https://www.gnu.org/licenses/$GNU.html\">$(_ '%s license on %s website' "<b>${GNU#*/}</b>" "GNU")</a></li>\n" 1.212 + [ -n "$CCO" ] && ONLINE="$ONLINE <li><a href=\"http://creativecommons.org/licenses/$CCO\">$(_ '%s license on %s website' "<b>${CCO%%/*}</b>" "Creative Commons")</a></li>\n" 1.213 + [ -n "$URL" ] && ONLINE="$ONLINE <li><a href=\"$URL\">$URL</a></li>\n" 1.214 + [ -n "$LIC" ] && OFFLINE="$OFFLINE <li><a href=\"?license=/usr/share/licenses/$LIC\">licenses/<b>$LIC</b></a></li>\n" 1.215 + done 1.216 + 1.217 + for lic in $(grep /usr/share/licenses/ $PKGS_DB/installed/$pkg/files.list); do 1.218 + OFFLINE="$OFFLINE <li><a href=\"?license=$lic\">licenses/<b>${lic#/usr/share/licenses/}</b></a></li>\n" 1.219 + done 1.220 + fi 1.221 + [ -n "$ONLINE" ] && echo -e "<p>$(_ 'Read online:')</p>\n<ul>\n$ONLINE</ul>\n" 1.222 + [ -n "$OFFLINE" ] && echo -e "<p>$(_ 'Read local:')</p>\n<ul>\n$OFFLINE</ul>\n" 1.223 + ;; 1.224 + esac 1.225 + ;; 1.226 + 1.227 + 1.228 + *) 1.229 # 1.230 # Default to summary 1.231 #