# HG changeset patch # User Aleksej Bobylev # Date 1419599641 -7200 # Node ID f32370a207125afef25f54942ad44eab00d4dd39 # Parent f9554d3c23b7670d49e890aa2c01e58c62140f77 pkgs.cgi: show licenses. diff -r f9554d3c23b7 -r f32370a20712 tazpanel/pkgs.cgi --- a/tazpanel/pkgs.cgi Wed Dec 24 17:29:07 2014 +0200 +++ b/tazpanel/pkgs.cgi Fri Dec 26 15:14:01 2014 +0200 @@ -314,9 +314,8 @@ { if (num_pages == 1) exit p = int(NR/100) + 1 - if (p != page) current = ""; else current=" current" - if (NR%100 == 1) printf "%s ", $6, p - 1 } END{ @@ -327,6 +326,19 @@ } +# Show links for "info" page + +show_info_links() { + if [ -n "$1" ]; then + echo -n "$2" + echo $1 | tr ' ' $'\n' | awk -vt="$3" '{ + printf "%s ", t?("?"t"="):"", gensub(/\+/, "%2B", "g", $1), $1 + }' + echo "" + fi +} + + # # Commands @@ -740,14 +752,15 @@ cd $PKGS_DB LOADING_MSG=$(_ 'Getting package info...') loading_msg - IFS='|' - set -- $(grep -hs "^$pkg |" packages.desc undigest/*/packages.desc) - unset IFS - PACKAGE=$1 - VERSION="$(echo $2)" - SHORT_DESC="$(echo $3)" - CATEGORY="$(echo $4)" - WEB_SITE="$(echo $5)" + eval "$(awk -F$'\t' -vp=$pkg ' + $1==p{ + printf "PACKAGE=\"%s\"; VERSION=\"%s\"; CATEGORY=\"%s\"; ", $1, $2, $3 + printf "SHORT_DESC=\"%s\"; WEB_SITE=\"%s\"; TAGS=\"%s\"; ", $4, $5, $6 + printf "SIZES=\"%s\"; DEPENDS=\"%s\"", $7, $8 + }' packages.info undigest/*/packages.info)" + PACKED_SIZE=${SIZES% *} + UNPACKED_SIZE=${SIZES#* } + action="Install" temp="${pkg#get-}" fi @@ -759,7 +772,6 @@

EOT if [ "$temp" != "$pkg" -a "$action" == "Install" ]; then - temp="$(echo $pkg | sed 's/get-//g')" show_button "do=Install&$temp&nf" else show_button "do=$action&$pkg" @@ -785,55 +797,33 @@ $(_ 'Name')$PACKAGE $(_ 'Version')$VERSION + $(_ 'Category')$CATEGORY $(_ 'Description')$SHORT_DESC - $(_ 'Category')$CATEGORY -EOT - if [ -d $INSTALLED/$pkg ]; then - cat << EOT - $(_ 'Maintainer')$MAINTAINER + $([ -n "$MAINTAINER" ] && echo "$(_ 'Maintainer')$MAINTAINER") + $([ -n "$LICENSE" ] && echo "$(_ 'License')$LICENSE") $(_ 'Website')$WEB_SITE + $(show_info_links "$TAGS" "$(_ 'Tags')" 'tag') $(_ 'Sizes')$PACKED_SIZE/$UNPACKED_SIZE -EOT - if [ -n "$DEPENDS" ]; then - echo "$(_ 'Depends')" - for i in $DEPENDS; do - pkg_info_link $i - done - echo "" - fi - if [ -n "$SUGGESTED" ]; then - echo "$(_ 'Suggested')" - for i in $SUGGESTED; do - pkg_info_link $i - done - echo "" - fi - [ -n "$TAGS" ] && echo "$(_ 'Tags')$TAGS" - I_FILES=$(cat $INSTALLED/$pkg/files.list | wc -l) - cat << EOT + $(show_info_links "$DEPENDS" "$(_ 'Depends')" 'info') + $(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info') EOT - DESC="$(tazpkg desc $pkg)" - [ -n "$DESC" ] && echo "

$DESC
" + DESC="$(tazpkg desc $pkg)" + [ -n "$DESC" ] && echo "
$DESC
" + if [ -d $INSTALLED/$pkg ]; then cat << EOT -

$(_ 'Installed files: %s' $I_FILES)

+

$(_ 'Installed files: %s' $(wc -l < $INSTALLED/$pkg/files.list))

$(sort $INSTALLED/$pkg/files.list)
EOT else cat << EOT -$(_ 'Website')$WEB_SITE -$(_ 'Sizes')$(grep -hsA 3 ^$pkg$ packages.txt undigest/*/packages.txt | \ - tail -n 1 | sed 's/ *//') - - -

$(_ 'Installed files:')

+

$(_ 'Installed files: %s' ' ')

-$(lzcat files.list.lzma undigest/*/files.list.lzma 2> /dev/null | \
- sed "/^$pkg: /!d;s/^$pkg: //" | sort)
+$(lzcat files.list.lzma undigest/*/files.list.lzma 2> /dev/null | awk -vp="$pkg:" '$1==p{print $2}' | sort)
 
EOT fi @@ -1053,8 +1043,95 @@ break done fi - ;; - *) + ;; + + + *\ license\ *) + # + # Show licenses for installed packages + # + search_form + sidebar + pkg=$(GET license) + case $pkg in + /*) + [ -e $pkg ] && { + echo "

${pkg#/usr/share/licenses/}

" + case $pkg in + *.htm*) + cat $pkg ;; + *) + echo "
"
+						cat $pkg | htmlize | sed 's|\([hf]t*t*ps*://[a-zA-Z0-9./_-]*[a-zA-Z0-9/_-]\)|\1|'
+						echo "
" + ;; + esac + } ;; + *) + echo "

$(_ 'Licenses for package %s' $pkg)

" + ONLINE=''; OFFLINE='' + + if [ -e "$PKGS_DB/installed/$pkg" ]; then + for license in $(. $PKGS_DB/installed/$pkg/receipt; echo "$LICENSE"); do + OSL=''; GNU=''; USR=''; LIC='' + case $license in + Apache) OSL='Apache-2.0'; URL='http://www.apache.org/licenses/' ;; + Artistic) OSL='Artistic-2.0' ;; + BSD) OSL='BSD-2-Clause' ;; + BSD3) OSL='BSD-3-Clause' ;; + + CC-BY-SA*|CC-SA*) CCO='by-sa/4.0/' ;; + CC-BY-ND*) CCO='by-nd/4.0/' ;; + CC-BY-NC-SA*) CCO='by-nc-sa/4.0/' ;; + CC-BY-NC-ND*) CCO='by-nc-nd/4.0/' ;; + CC-BY-NC*) CCO='by-nc/4.0/' ;; + CC-BY*) CCO='by/4.0/' ;; + + cc-pd) URL='http://creativecommons.org/publicdomain/' ;; + CCPL) ;; + CDDL*) OSL='CDDL-1.0' ;; + CECILL*) OSL='CECILL-2.1' ;; + Eclipse|EPL*) OSL='EPL-1.0' ;; + FDL) GNU='fdl' ;; + GPL) GNU='gpl'; OSL='gpl-license'; LIC='gpl.txt' ;; + GPL2) GNU='old-licenses/gpl-2.0'; OSL='GPL-2.0' ;; + GPL3) GNU='gpl'; OSL='GPL-3.0'; LIC='gpl.txt' ;; + ISC) OSL='ISC' ;; + LGPL) GNU='lgpl'; OSL='lgpl-license' ;; + LGPL2) GNU='old-licenses/lgpl-2.0' ;; + LGPL2.1) GNU='old-licenses/lgpl-2.1'; OSL='LGPL-2.1'; LIC='lgpl.txt' ;; + LGPL3) GNU='lgpl'; OSL='LGPL-3.0' ;; + LPPL*) OSL='LPPL-1.3c' ;; + MIT) OSL='MIT'; LIC='mit.txt' ;; + MPL) OSL='MPL-2.0'; LIC='mozilla.txt' ;; + MPL2) OSL='MPL-2.0' ;; + FL) OSL='Fair' ;; # ? + PSL) ;; + PublicDomain) ;; + QPL*) OSL='QPL-1.0' ;; + SIL_OFL*) OSL='OFL-1.1' ;; + zlib/libpng) OSL='Zlib' ;; + esac + + [ -n "$OSL" ] && ONLINE="$ONLINE
  • $(_ '%s license on %s website' "$OSL" "OSL")
  • \n" + [ -n "$GNU" ] && ONLINE="$ONLINE
  • $(_ '%s license on %s website' "${GNU#*/}" "GNU")
  • \n" + [ -n "$CCO" ] && ONLINE="$ONLINE
  • $(_ '%s license on %s website' "${CCO%%/*}" "Creative Commons")
  • \n" + [ -n "$URL" ] && ONLINE="$ONLINE
  • $URL
  • \n" + [ -n "$LIC" ] && OFFLINE="$OFFLINE
  • licenses/$LIC
  • \n" + done + + for lic in $(grep /usr/share/licenses/ $PKGS_DB/installed/$pkg/files.list); do + OFFLINE="$OFFLINE
  • licenses/${lic#/usr/share/licenses/}
  • \n" + done + fi + [ -n "$ONLINE" ] && echo -e "

    $(_ 'Read online:')

    \n\n" + [ -n "$OFFLINE" ] && echo -e "

    $(_ 'Read local:')

    \n\n" + ;; + esac + ;; + + + *) # # Default to summary #