slitaz-dev-tools rev 13
Add tazpkg-web.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Thu Feb 24 04:33:56 2011 +0000 (2011-02-24) |
parents | 3ad78186f531 |
children | d9f1a561b634 |
files | tazpkg-web/README tazpkg-web/html/footer.html tazpkg-web/html/header.html tazpkg-web/html/home.html tazpkg-web/html/menu.html tazpkg-web/search.cgi tazpkg-web/style/favicon.ico tazpkg-web/style/pics/tazpkg.png tazpkg-web/style/pics/website/header-img.png tazpkg-web/style/pics/website/logo.png tazpkg-web/style/pics/website/network.png tazpkg-web/style/pics/website/text.png tazpkg-web/style/pics/website/xhtml10.png tazpkg-web/style/slitaz.css tazpkg-web/tazpkg-web tazpkg-web/tazpkg-web.conf tazpkg-web/xml/rss-header.xml |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tazpkg-web/README Thu Feb 24 04:33:56 2011 +0000 1.3 @@ -0,0 +1,24 @@ 1.4 +Tazpkg-web - SliTaz Packages Web interface 1.5 +=============================================================================== 1.6 + 1.7 + 1.8 +Tazpkg-web package provides the files, scripts and search engine used for the 1.9 +SliTaz packages web interface. It doesn't depend on the Tazpkg package manager 1.10 +or Tazwok, but needs a wok with a receipt and a packages (*.tazpkg) repository 1.11 +to scan and build the static xHTML pages. Here is a brief overview of the files 1.12 +provided: 1.13 + 1.14 + 1.15 + * html/ : Split xHTML template used to generate the full pages 1.16 + * style/ : CSS stylesheets, pics and favicon 1.17 + * xml/ : RSS template (will be used when merged with tazrss) 1.18 + * search.cgi : CGI search engine using awk, grep, etc (all xHTML hardcoded) 1.19 + * tazpkg-web : Utility which generates the categories and index pages 1.20 + * tazpkg-web.conf : Tazpkg-web utility configuration file 1.21 + 1.22 + 1.23 +Online : http://pkgs.slitaz.org/ 1.24 + 1.25 + 1.26 +=============================================================================== 1.27 +
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/tazpkg-web/html/footer.html Thu Feb 24 04:33:56 2011 +0000 2.3 @@ -0,0 +1,33 @@ 2.4 +<!-- End of content --> 2.5 +</div> 2.6 + 2.7 +<!-- Footer --> 2.8 +<div id="footer"> 2.9 + <div class="right_box"> 2.10 + <h4>SliTaz Network</h4> 2.11 + <ul> 2.12 + <li><a href="http://www.slitaz.org/">Main Website</a></li> 2.13 + <li><a href="http://doc.slitaz.org/">Documentation</a></li> 2.14 + <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 2.15 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 2.16 + <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 2.17 + <li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li> 2.18 + </ul> 2.19 + </div> 2.20 + <h4>SliTaz Packages</h4> 2.21 + <ul> 2.22 + <li><a href="#header">Top of the page</a></li> 2.23 + <li>Copyright © <span class="year"></span> 2.24 + <a href="http://www.slitaz.org/">SliTaz</a></li> 2.25 + <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 2.26 + <li><a href="http://pkgs.slitaz.org/search.cgi">Search packages</a></li> 2.27 + <li>Page modified the _DATE_</li> 2.28 + <li><a href="http://validator.w3.org/check?uri=referer"><img 2.29 + src="http://pkgs.slitaz.org/pics/website/xhtml10.png" 2.30 + title="Valid XHTML 1.0" alt="Valid XHTML 1.0" 2.31 + style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 2.32 + </ul> 2.33 +</div> 2.34 + 2.35 +</body> 2.36 +</html>
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/tazpkg-web/html/header.html Thu Feb 24 04:33:56 2011 +0000 3.3 @@ -0,0 +1,34 @@ 3.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3.5 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3.7 +<head> 3.8 + <title>SliTaz _RELEASE_ Packages - _PAGE_</title> 3.9 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 3.10 + <meta name="description" content="Au sujet de SliTaz GNU/Linux mini système d'exploitation" /> 3.11 + <meta name="keywords" lang="fr" content="Système, libre, gnu, linux, opensource, livecd" /> 3.12 + <meta name="robots" content="index, follow, all" /> 3.13 + <meta name="revisit-after" content="7 days" /> 3.14 + <meta name="expires" content="never" /> 3.15 + <meta name="modified" content="_DATE_" /> 3.16 + <meta name="author" content="SliTaz Contributors"/> 3.17 + <meta name="generator" content="ash, grep, sed and cat"/> 3.18 + <meta name="publisher" content="www.slitaz.org" /> 3.19 + <link rel="shortcut icon" href="http://pkgs.slitaz.org/favicon.ico" /> 3.20 + <link rel="stylesheet" type="text/css" href="http://pkgs.slitaz.org/slitaz.css" /> 3.21 + <link rel="alternate" type="application/rss+xml" title="SliTaz Stable Packages" href="/rss/stable.xml" /> 3.22 + <link rel="alternate" type="application/rss+xml" title="SliTaz Cooking Packages" href="/rss/cooking.xml" /> 3.23 +</head> 3.24 +<body> 3.25 + 3.26 +<!-- Header --> 3.27 +<div id="header"> 3.28 + <!-- Logo --> 3.29 + <a href="http://pkgs.slitaz.org/"><img id="logo" 3.30 + src="/pics/website/logo.png" 3.31 + title="pkgs.slitaz.org" alt="pkgs.slitaz.org" /></a> 3.32 + <p id="titre">#!/Packages</p> 3.33 +</div> 3.34 + 3.35 +<!-- Content --> 3.36 +<div id="content-full"> 3.37 +
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/tazpkg-web/html/home.html Thu Feb 24 04:33:56 2011 +0000 4.3 @@ -0,0 +1,60 @@ 4.4 +<!-- Block begin --> 4.5 +<div class="block"> 4.6 + <!-- Nav block begin --> 4.7 + <div id="block_nav" style="height: 220px;"> 4.8 + <h3><img src="/pics/website/network.png" alt=".png" />Tools</h3> 4.9 + <ul> 4.10 + <li><a href="http://hg.slitaz.org/wok">Hg Repos</a></li> 4.11 + <li><a href="http://bb.slitaz.org/">Build Bot</a></li> 4.12 + <li><a href="http://labs.slitaz.org/issues">Bug Tracker</a></li> 4.13 + </ul> 4.14 + <h3><img src="/pics/website/text.png" alt=".png" />Documentation</h3> 4.15 + <ul> 4.16 + <li><a href="http://doc.slitaz.org/en:cookbook:wok">Wok & Tools</a></li> 4.17 + <li><a href="http://doc.slitaz.org/en:cookbook:receipt">Receipts</a></li> 4.18 + </ul> 4.19 + <!-- Nav block end --> 4.20 + </div> 4.21 + <!-- Top block begin --> 4.22 + <div id="block_top" style="height: 220px;"> 4.23 + <h1>Packages</h1> 4.24 + <p> 4.25 + Welcome to the SliTaz packages web interface. The site allows 4.26 + you to search and view all of the software packages available 4.27 + on the SliTaz mirror. The pages are automatically updated daily 4.28 + via a cron job. 4.29 + </p> 4.30 + <p> 4.31 + Browse the packages web interface: <a href="stable/">Stable packages</a> 4.32 + | <a href="cooking/">Cooking packages</a> 4.33 + </p> 4.34 + <!-- Top block end --> 4.35 + </div> 4.36 +<!-- Block end --> 4.37 +</div> 4.38 + 4.39 +<div class="pkgs-search"> 4.40 + <form method="post" action="http://pkgs.slitaz.org/search.cgi"> 4.41 + <p> 4.42 + <input type="text" name="query" size="30" /> 4.43 + <input type="submit" name="search" value="Search" /> 4.44 + </p> 4.45 + <select name="object"> 4.46 + <option>Package</option> 4.47 + <option>Desc</option> 4.48 + <option>Tags</option> 4.49 + <option>Receipt</option> 4.50 + <option>Depends</option> 4.51 + <option>BuildDepends</option> 4.52 + <option>File</option> 4.53 + <option>File_list</option> 4.54 + <option>FileOverlap</option> 4.55 + </select> 4.56 + <select name="version"> 4.57 + <option>stable</option> 4.58 + <option>cooking</option> 4.59 + <option>2.0</option> 4.60 + <option>1.0</option> 4.61 + </select> 4.62 + </form> 4.63 +</div>
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/tazpkg-web/html/menu.html Thu Feb 24 04:33:56 2011 +0000 5.3 @@ -0,0 +1,47 @@ 5.4 +<!-- Block begin --> 5.5 +<div class="block"> 5.6 + <!-- Nav block begin --> 5.7 + <div id="block_nav" style="height: 220px;"> 5.8 + <h3><img src="/pics/tazpkg.png" alt=".png" />Categories</h3> 5.9 + <div class="right_box"> 5.10 + <ul> 5.11 + <li><a href="development.html">Development</a></li> 5.12 + <li><a href="system-tools.html">System-tools</a></li> 5.13 + <li><a href="security.html">Security</a></li> 5.14 + <li><a href="misc.html">Misc</a></li> 5.15 + <li><a href="meta.html">Meta packages</a></li> 5.16 + <li><a href="non-free.html">Non free</a></li> 5.17 + </ul> 5.18 + </div> 5.19 + <ul> 5.20 + <li><a href="base-system.html">Base-system</a></li> 5.21 + <li><a href="x-window.html">X-window</a></li> 5.22 + <li><a href="utilities.html">Utilities</a></li> 5.23 + <li><a href="network.html">Network</a></li> 5.24 + <li><a href="games.html">Games</a></li> 5.25 + <li><a href="graphics.html">Graphics</a></li> 5.26 + <li><a href="multimedia.html">Multimedia</a></li> 5.27 + <li><a href="office.html">Office</a></li> 5.28 + </ul> 5.29 + <!-- Nav block end --> 5.30 + </div> 5.31 + <!-- Top block begin --> 5.32 + <div id="block_top" style="height: 220px;"> 5.33 + <h1>Packages _RELEASE_</h1> 5.34 + <p> 5.35 + The SliTaz packages web interface allows you to search and view 5.36 + all of the software packages available for SliTaz. The pages are 5.37 + updated daily via a cron job. 5.38 + </p> 5.39 + <p> 5.40 + Documentation: 5.41 + <a href="http://doc.slitaz.org/en:handbook:packages">Package manager</a> 5.42 + </p> 5.43 + <p> 5.44 + Browse the packages web interface: <a href="../stable/">Stable packages</a> 5.45 + | <a href="../cooking/">Cooking packages</a> 5.46 + </p> 5.47 + <!-- Top block end --> 5.48 + </div> 5.49 +<!-- Block end --> 5.50 +</div>
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/tazpkg-web/search.cgi Thu Feb 24 04:33:56 2011 +0000 6.3 @@ -0,0 +1,647 @@ 6.4 +#!/bin/sh 6.5 +# Tiny CGI search engine for SliTaz packages on http://pkgs.slitaz.org/ 6.6 +# Christophe Lincoln <pankso@slitaz.org> 6.7 +# 6.8 + 6.9 +read QUERY_STRING 6.10 +for i in $(echo $QUERY_STRING | sed 's/&/ /g'); do 6.11 + eval $i 6.12 +done 6.13 +LANG=$lang 6.14 +SEARCH=$query 6.15 +SLITAZ_VERSION=$version 6.16 +OBJECT=$object 6.17 +DATE=`date +%Y-%m-%d\ \%H:%M:%S` 6.18 +VERSION=cooking 6.19 +if [ "$REQUEST_METHOD" = "GET" ]; then 6.20 + SEARCH="" 6.21 + VERBOSE=0 6.22 + for i in $(echo $REQUEST_URI | sed 's/[?&]/ /g'); do 6.23 + SLITAZ_VERSION=cooking 6.24 + case "$(echo $i | tr [A-Z] [a-z])" in 6.25 + search=*) 6.26 + SEARCH=${i#*=};; 6.27 + object=*) 6.28 + OBJECT=${i#*=};; 6.29 + verbose=*) 6.30 + VERBOSE=${i#*=};; 6.31 + lang=*) 6.32 + LANG=${i#*=};; 6.33 + file=*) 6.34 + SEARCH=${i#*=} 6.35 + OBJECT=File;; 6.36 + desc=*) 6.37 + SEARCH=${i#*=} 6.38 + OBJECT=Desc;; 6.39 + tags=*) 6.40 + SEARCH=${i#*=} 6.41 + OBJECT=Tags;; 6.42 + receipt=*) 6.43 + SEARCH=${i#*=} 6.44 + OBJECT=Receipt;; 6.45 + filelist=*) 6.46 + SEARCH=${i#*=} 6.47 + OBJECT=File_list;; 6.48 + package=*) 6.49 + SEARCH=${i#*=} 6.50 + OBJECT=Package;; 6.51 + depends=*) 6.52 + SEARCH=${i#*=} 6.53 + OBJECT=Depends;; 6.54 + builddepends=*) 6.55 + SEARCH=${i#*=} 6.56 + OBJECT=BuildDepends;; 6.57 + fileoverlap=*) 6.58 + SEARCH=${i#*=} 6.59 + OBJECT=FileOverlap;; 6.60 + version=s*|version=3*) 6.61 + SLITAZ_VERSION=stable;; 6.62 + version=[1-9]*) 6.63 + i=${version%%.*} 6.64 + SLITAZ_VERSION=${i#*=}.0;; 6.65 + esac 6.66 + done 6.67 + [ -n "$SEARCH" ] && REQUEST_METHOD="POST" 6.68 +fi 6.69 + 6.70 +case "$OBJECT" in 6.71 +File) selected_file="selected";; 6.72 +Desc) selected_desc="selected";; 6.73 +Tags) selected_tags="selected";; 6.74 +Receipt) selected_receipt="selected";; 6.75 +File_list) selected_file_list="selected";; 6.76 +Depends) selected_depends="selected";; 6.77 +BuildDepends) selected_build_depends="selected";; 6.78 +FileOverlap) selected_overlap="selected";; 6.79 +esac 6.80 + 6.81 +case "$SLITAZ_VERSION" in 6.82 +1.0) selected_1="selected";; 6.83 +2.0) selected_2="selected";; 6.84 +stable) selected_stable="selected";; 6.85 +esac 6.86 + 6.87 +# unescape query 6.88 +SEARCH="$(echo $SEARCH | sed 's/%2B/+/g' | sed 's/%3A/:/g' | sed 's|%2F|/|g')" 6.89 + 6.90 +if [ -z "$LANG" ]; then 6.91 + for i in $(echo $HTTP_ACCEPT_LANGUAGE | sed 's/[,;]/ /g'); do 6.92 + case "$i" in 6.93 + fr|de|pt|cn) 6.94 + LANG=$i 6.95 + break;; 6.96 + esac 6.97 + done 6.98 +fi 6.99 + 6.100 +package="Package" 6.101 +file="File" 6.102 +desc="Description" 6.103 +tags="Tags" 6.104 +receipt="Receipt" 6.105 +file_list="File list" 6.106 +depends="Depends" 6.107 +bdepends="Build depends" 6.108 +search="Search" 6.109 +cooking="cooking" 6.110 +stable="stable" 6.111 +result="Result for : $SEARCH" 6.112 +noresult="No package $SEARCH" 6.113 +deptree="Dependency tree for : $SEARCH" 6.114 +rdeptree="Reverse dependency tree for : $SEARCH" 6.115 +bdeplist="$SEARCH needs these packages to be built" 6.116 +rbdeplist="Packages who need $SEARCH to be built" 6.117 +overloading="Theses packages may overload files of " 6.118 +overlap="common files" 6.119 +charset="ISO-8859-1" 6.120 + 6.121 +case "$LANG" in 6.122 + 6.123 +fr) package="Paquet" 6.124 + receipt="Recette" 6.125 + depends="Dépendances" 6.126 + bdepends="Fabrication" 6.127 + search="Recherche" 6.128 + result="Recherche de : $SEARCH" 6.129 + noresult="Paquet $SEARCH introuvable" 6.130 + deptree="Arbre des dépendances de $SEARCH" 6.131 + rdeptree="Arbre inversé des dépendances de $SEARCH" 6.132 + bdeplist="$SEARCH a besion de ces paquets pour être fabriqué" 6.133 + rbdeplist="Paquets ayant besion de $SEARCH pour être fabriqués" 6.134 + overloading="Paquets pouvant écraser des fichiers de " 6.135 + overlap="Fichiers communs" 6.136 + file_list="Liste des fichiers" 6.137 + file="Fichier";; 6.138 + 6.139 +de) package="Paket" 6.140 + depends="Abhängigkeiten" 6.141 + desc="Beschreibung" 6.142 + search="Suche" 6.143 + cooking="Cooking" 6.144 + stable="Stable" 6.145 + result="Resultate für : $SEARCH" 6.146 + noresult="Kein Paket für $SEARCH" 6.147 + deptree="Abhängigkeiten von: $SEARCH" 6.148 + rdeptree="Abhängigkeit für: $SEARCH" 6.149 + file_list="Datei liste" 6.150 + file="Datei";; 6.151 + 6.152 +pt) package="Pacote" 6.153 + search="Buscar" 6.154 + cooking="cooking" 6.155 + stable="stable" 6.156 + result="Resultado para : $SEARCH" 6.157 + noresult="Sem resultado: $SEARCH" 6.158 + deptree="Árvore de dependências para: $SEARCH" 6.159 + rdeptree="Árvore de dependências reversa para: $SEARCH" 6.160 + depends="Dependências" 6.161 + desc="Descrição" 6.162 + file_list="Arquivo lista" 6.163 + file="Arquivo";; 6.164 + 6.165 +cn) package="软件包:" 6.166 + cooking="å¼€å‘版" 6.167 + stable="稳定版" 6.168 + desc="æè¿°" 6.169 + tags="æ ‡ç¾" 6.170 + depends="ä¾èµ–" 6.171 + file="文件" 6.172 + file_list="文件列表" 6.173 + search="Search" 6.174 + result="Result for : $SEARCH" 6.175 + noresult="No package $SEARCH" 6.176 + deptree="Dependency tree for : $SEARCH" 6.177 + rdeptree="Reverse dependency tree for : $SEARCH" 6.178 + charset="UTF-8";; 6.179 + 6.180 +*) LANG="en";; 6.181 + 6.182 +esac 6.183 + 6.184 +WOK=/home/slitaz/$SLITAZ_VERSION/wok 6.185 +PACKAGES_REPOSITORY=/home/slitaz/$SLITAZ_VERSION/packages 6.186 + 6.187 +echo Content-type: text/html 6.188 +echo 6.189 + 6.190 +# Search form 6.191 +search_form() 6.192 +{ 6.193 + cat << _EOT_ 6.194 + 6.195 +<div style="text-align: center; padding: 20px;"> 6.196 +<form method="post" action="search.cgi"> 6.197 + <input type="hidden" name="lang" value="$LANG" /> 6.198 + <select name="object"> 6.199 + <option value="Package">$package</option> 6.200 + <option $selected_desc value="Desc">$desc</option> 6.201 + <option $selected_tags value="Tags">$tags</option> 6.202 + <option $selected_receipt value="Receipt">$receipt</option> 6.203 + <option $selected_depends value="Depends">$depends</option> 6.204 + <option $selected_build_depends value="BuildDepends">$bdepends</option> 6.205 + <option $selected_file value="File">$file</option> 6.206 + <option $selected_file_list value="File_list">$file_list</option> 6.207 + <option $selected_overlap value="FileOverlap">$overlap</option> 6.208 + </select> 6.209 + <strong>:</strong> 6.210 + <input type="text" name="query" size="20" value="$SEARCH" /> 6.211 + <select name="version"> 6.212 + <option value="cooking">$cooking</option> 6.213 + <option $selected_stable value="stable">$stable</option> 6.214 + <option $selected_1 value="1.0">1.0</option> 6.215 + <option $selected_2 value="2.0">2.0</option> 6.216 + </select> 6.217 + <input type="submit" name="search" value="$search" /> 6.218 +</form> 6.219 +</div> 6.220 +_EOT_ 6.221 +} 6.222 + 6.223 +# xHTML Header. 6.224 +xhtml_header() 6.225 +{ 6.226 + cat << _EOF_ 6.227 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 6.228 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 6.229 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="$LANG" lang="$LANG"> 6.230 +<head> 6.231 + <title>SliTaz Packages - Search $SEARCH</title> 6.232 + <meta http-equiv="content-type" content="text/html; charset=$charset" /> 6.233 + <meta name="description" content="Au sujet de SliTaz GNU/Linux mini système d'exploitation" /> 6.234 + <meta name="keywords" lang="fr" content="Système, libre, gnu, linux, opensource, livecd" /> 6.235 + <meta name="robots" content="index, follow, all" /> 6.236 + <meta name="revisit-after" content="7 days" /> 6.237 + <meta name="expires" content="never" /> 6.238 + <meta name="modified" content="$DATE" /> 6.239 + <meta name="author" content="ash, awk, grep, sed and cat"/> 6.240 + <meta name="publisher" content="www.slitaz.org" /> 6.241 + <link rel="shortcut icon" href="/favicon.ico" /> 6.242 + <link rel="stylesheet" type="text/css" href="/slitaz.css" /> 6.243 +</head> 6.244 +<body> 6.245 + 6.246 +<!-- Header --> 6.247 +<div id="header"> 6.248 + <!-- Logo --> 6.249 + <a href="http://pkgs.slitaz.org/"><img id="logo" 6.250 + src="/pics/website/logo.png" 6.251 + title="pkgs.slitaz.org" alt="pkgs.slitaz.org" /></a> 6.252 + <p id="titre">#!/Packages</p> 6.253 +</div> 6.254 +_EOF_ 6.255 +} 6.256 + 6.257 +# xHTML Footer. 6.258 +xhtml_footer() 6.259 +{ 6.260 + cat << _EOT_ 6.261 +<center> 6.262 +<i>$(ls $WOK/ | wc -l) packages and $(unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | wc -l) files in $SLITAZ_VERSION database</i> 6.263 +</center> 6.264 + 6.265 +<!-- End of content --> 6.266 +</div> 6.267 + 6.268 +<!-- Footer --> 6.269 +<div id="footer"> 6.270 + <div class="right_box"> 6.271 + <h4>SliTaz Network</h4> 6.272 + <ul> 6.273 + <li><a href="http://www.slitaz.org/">Main Website</a></li> 6.274 + <li><a href="http://doc.slitaz.org/">Documentation</a></li> 6.275 + <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 6.276 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 6.277 + <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 6.278 + <li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li> 6.279 + </ul> 6.280 + </div> 6.281 + <h4>SliTaz Packages</h4> 6.282 + <ul> 6.283 + <li><a href="#header">Top of the page</a></li> 6.284 + <li>Copyright © <span class="year"></span> 6.285 + <a href="http://www.slitaz.org/">SliTaz</a></li> 6.286 + <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 6.287 + <li><a href="http://pkgs.slitaz.org/search.cgi">Search packages</a></li> 6.288 + <li>Page modified the _DATE_</li> 6.289 + <li><a href="http://validator.w3.org/check?uri=referer"><img 6.290 + src="http://pkgs.slitaz.org/pics/website/xhtml10.png" 6.291 + title="Code validé XHTML 1.0" alt="Valid XHTML 1.0" 6.292 + style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 6.293 + </ul> 6.294 +</div> 6.295 + 6.296 +</body> 6.297 +</html> 6.298 +_EOT_ 6.299 +} 6.300 + 6.301 +installed_size() 6.302 +{ 6.303 +[ $VERBOSE -gt 0 ] && 6.304 +grep -A 3 "^$1\$" /home/slitaz/$SLITAZ_VERSION/packages/packages.txt | \ 6.305 + grep installed | sed 's/.*(\(.*\) installed.*/(\1) /' 6.306 +} 6.307 + 6.308 +package_entry() 6.309 +{ 6.310 +if [ -s "$(dirname $0)/$SLITAZ_VERSION/$CATEGORY.html" ]; then 6.311 + cat << _EOT_ 6.312 +<a href="$SLITAZ_VERSION/$CATEGORY.html#$PACKAGE">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC 6.313 +_EOT_ 6.314 +else 6.315 + cat << _EOT_ 6.316 +<a href="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC 6.317 +_EOT_ 6.318 +fi 6.319 +} 6.320 + 6.321 +# recursive dependencies scan 6.322 +dep_scan() 6.323 +{ 6.324 +for i in $1; do 6.325 + case " $ALL_DEPS " in 6.326 + *\ $i\ *) continue;; 6.327 + esac 6.328 + ALL_DEPS="$ALL_DEPS $i" 6.329 + if [ -n "$2" ]; then 6.330 + echo -n "$2" 6.331 + ( 6.332 + . $WOK/$i/receipt 6.333 + package_entry 6.334 + ) 6.335 + fi 6.336 + [ -f $WOK/$i/receipt ] || continue 6.337 + DEPENDS="" 6.338 + . $WOK/$i/receipt 6.339 + [ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2 " 6.340 +done 6.341 +} 6.342 + 6.343 +# recursive reverse dependencies scan 6.344 +rdep_scan() 6.345 +{ 6.346 +SEARCH=$1 6.347 +case "$SEARCH" in 6.348 +glibc-base|gcc-lib-base) cat <<EOT 6.349 + glibc-base and gcc-lib-base are implicit dependencies, 6.350 + <b>every</b> package is supposed to depend on them. 6.351 +EOT 6.352 + return;; 6.353 +esac 6.354 +for i in $WOK/* ; do 6.355 + DEPENDS="" 6.356 + . $i/receipt 6.357 + echo "$(basename $i) $(echo $DEPENDS)" 6.358 +done | awk -v search=$SEARCH ' 6.359 +function show_deps(deps, all_deps, pkg, space) 6.360 +{ 6.361 + if (all_deps[pkg] == 1) return 6.362 + all_deps[pkg] = 1 6.363 + if (space != "") printf "%s%s\n",space,pkg 6.364 + for (i = 1; i <= split(deps[pkg], mydeps, " "); i++) { 6.365 + show_deps(deps, all_deps, mydeps[i],"////" space) 6.366 + } 6.367 +} 6.368 + 6.369 +{ 6.370 + all_deps[$1] = 0 6.371 + for (i = 2; i <= NF; i++) 6.372 + deps[$i] = deps[$i] " " $1 6.373 +} 6.374 + 6.375 +END { 6.376 + show_deps(deps, all_deps, search, "") 6.377 +} 6.378 +' | while read pkg; do 6.379 + . $WOK/${pkg##*/}/receipt 6.380 + cat << _EOT_ 6.381 +$(echo ${pkg%/*} | sed 's|/| |g') $(package_entry) 6.382 +_EOT_ 6.383 +done 6.384 +} 6.385 + 6.386 +# Check package exists 6.387 +package_exist() 6.388 +{ 6.389 + [ -f $WOK/$1/receipt ] && return 0 6.390 + cat << _EOT_ 6.391 + 6.392 +<h3>$noresult</h3> 6.393 +<pre class="package"> 6.394 +_EOT_ 6.395 + return 1 6.396 +} 6.397 + 6.398 +# Display < > & 6.399 +htmlize() 6.400 +{ 6.401 + sed -e 's/&/\&/g' -e 's/</\</g' -e 's/>/\>/g' 6.402 +} 6.403 + 6.404 +display_packages_and_files() 6.405 +{ 6.406 +last="" 6.407 +while read pkg file; do 6.408 + pkg=${pkg%:} 6.409 + if [ "$pkg" != "$last" ]; then 6.410 + . $WOK/$pkg/receipt 6.411 + 6.412 + package_entry 6.413 + last=$pkg 6.414 + fi 6.415 + echo " $file" 6.416 +done 6.417 +} 6.418 + 6.419 +# Display search form and result if requested. 6.420 +if [ "$REQUEST_METHOD" != "POST" ]; then 6.421 + xhtml_header 6.422 + cat << _EOT_ 6.423 + 6.424 +<!-- Content --> 6.425 +<div id="content"> 6.426 + 6.427 +<h1>$package</h1> 6.428 +<h2>$search</h2> 6.429 +_EOT_ 6.430 + search_form 6.431 + xhtml_footer 6.432 +else 6.433 + xhtml_header 6.434 + cat << _EOT_ 6.435 + 6.436 +<!-- Content --> 6.437 +<div id="content"> 6.438 + 6.439 +<h1>$package</h1> 6.440 +<h2>$search</h2> 6.441 +_EOT_ 6.442 + search_form 6.443 + if [ "$OBJECT" = "Depends" ]; then 6.444 + if package_exist $SEARCH ; then 6.445 + cat << _EOT_ 6.446 + 6.447 +<h3>$deptree</h3> 6.448 +<pre class="package"> 6.449 +_EOT_ 6.450 + ALL_DEPS="" 6.451 + dep_scan $SEARCH "" 6.452 + SUGGESTED="" 6.453 + . $WOK/$SEARCH/receipt 6.454 + if [ -n "$SUGGESTED" ]; then 6.455 + cat << _EOT_ 6.456 +</pre> 6.457 + 6.458 +<h3>$deptree (SUGGESTED)</h3> 6.459 +<pre class="package"> 6.460 +_EOT_ 6.461 + ALL_DEPS="" 6.462 + dep_scan "$SUGGESTED" " " 6.463 + fi 6.464 + cat << _EOT_ 6.465 +</pre> 6.466 + 6.467 +<h3>$rdeptree</h3> 6.468 +<pre class="package"> 6.469 +_EOT_ 6.470 + ALL_DEPS="" 6.471 + rdep_scan $SEARCH 6.472 + cat << _EOT_ 6.473 +</pre> 6.474 +_EOT_ 6.475 + fi 6.476 + elif [ "$OBJECT" = "BuildDepends" ]; then 6.477 + if package_exist $SEARCH ; then 6.478 + cat << _EOT_ 6.479 + 6.480 +<h3>$bdeplist</h3> 6.481 +<pre class="package"> 6.482 +_EOT_ 6.483 + BUILD_DEPENDS="" 6.484 + . $WOK/$SEARCH/receipt 6.485 + [ -n "$BUILD_DEPENDS" ] && for dep in $BUILD_DEPENDS ; do 6.486 + if [ ! -s $WOK/$dep/receipt ]; then 6.487 + cat << _EOT_ 6.488 +$dep: not found ! 6.489 +_EOT_ 6.490 + continue 6.491 + fi 6.492 + . $WOK/$dep/receipt 6.493 + package_entry 6.494 + done 6.495 + cat << _EOT_ 6.496 +</pre> 6.497 + 6.498 +<h3>$rbdeplist</h3> 6.499 +<pre class="package"> 6.500 +_EOT_ 6.501 + for dep in $(grep -l $SEARCH $WOK/*/receipt); do 6.502 + BUILD_DEPENDS="" 6.503 + . $dep 6.504 + echo " $BUILD_DEPENDS " | grep -q " $SEARCH " && 6.505 + package_entry 6.506 + done 6.507 + cat << _EOT_ 6.508 +</pre> 6.509 +_EOT_ 6.510 + fi 6.511 + elif [ "$OBJECT" = "FileOverlap" ]; then 6.512 + if package_exist $SEARCH ; then 6.513 + cat << _EOT_ 6.514 + 6.515 +<h3>$overloading $SEARCH</h3> 6.516 +<pre class="package"> 6.517 +_EOT_ 6.518 + ( unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep ^$SEARCH: ; 6.519 + unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep -v ^$SEARCH: ) | awk ' 6.520 +BEGIN { pkg=""; last="x" } 6.521 +{ 6.522 + if ($2 == "") next 6.523 + if (index($2,last) == 1 && substr($2,1+length(last),1) == "/") 6.524 + delete file[last] 6.525 + last=$2 6.526 + if (pkg == "") pkg=$1 6.527 + if ($1 == pkg) file[$2]=$1 6.528 + else if (file[$2] == pkg) print 6.529 +} 6.530 +' | display_packages_and_files 6.531 + cat << _EOT_ 6.532 +</pre> 6.533 +_EOT_ 6.534 + fi 6.535 + elif [ "$OBJECT" = "File" ]; then 6.536 + cat << _EOT_ 6.537 + 6.538 +<h3>$result</h3> 6.539 +<pre class="package"> 6.540 +_EOT_ 6.541 + last="" 6.542 + unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \ 6.543 + | grep $SEARCH | while read pkg file; do 6.544 + echo "$file" | grep -q $SEARCH || continue 6.545 + if [ "$last" != "${pkg%:}" ]; then 6.546 + last=${pkg%:} 6.547 + ( 6.548 + . $WOK/$last/receipt 6.549 + cat << _EOT_ 6.550 + 6.551 +<i>$(package_entry)</i> 6.552 +_EOT_ 6.553 + ) 6.554 + fi 6.555 + echo " $file" 6.556 + done 6.557 + elif [ "$OBJECT" = "File_list" ]; then 6.558 + package_exist $SEARCH && cat << _EOT_ 6.559 + 6.560 +<h3>$result</h3> 6.561 +<pre class="package"> 6.562 +_EOT_ 6.563 + last="" 6.564 + unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \ 6.565 + | grep ^$SEARCH: | sed 's/.*: / /' | sort 6.566 + elif [ "$OBJECT" = "Desc" ]; then 6.567 + if [ -f $WOK/$SEARCH/description.txt ]; then 6.568 + cat << _EOT_ 6.569 + 6.570 +<h3>$result</h3> 6.571 +<pre class="package"> 6.572 +<pre> 6.573 +$(htmlize < $WOK/$SEARCH/description.txt) 6.574 +</pre> 6.575 +_EOT_ 6.576 + else 6.577 + cat << _EOT_ 6.578 + 6.579 +<h3>$result</h3> 6.580 +<pre class="package"> 6.581 +_EOT_ 6.582 + last="" 6.583 + grep -i $SEARCH $PACKAGES_REPOSITORY/packages.desc | \ 6.584 + sort | while read pkg extras ; do 6.585 + . $WOK/$pkg/receipt 6.586 + package_entry 6.587 + done 6.588 + fi 6.589 + elif [ "$OBJECT" = "Tags" ]; then 6.590 + cat << _EOT_ 6.591 + 6.592 +<h3>$result</h3> 6.593 +<pre class="package"> 6.594 +_EOT_ 6.595 + last="" 6.596 + grep ^TAGS= $WOK/*/receipt | grep -i $SEARCH | \ 6.597 + sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do 6.598 + . $WOK/$pkg/receipt 6.599 + package_entry 6.600 + done 6.601 + elif [ "$OBJECT" = "Receipt" ]; then 6.602 + package_exist $SEARCH && cat << _EOT_ 6.603 + 6.604 +<h3>$result</h3> 6.605 +<pre class="package"> 6.606 +<pre> 6.607 +$(if [ -f $WOK/$SEARCH/taz/*/receipt ]; then 6.608 + cat $WOK/$SEARCH/taz/*/receipt 6.609 + else 6.610 + cat $WOK/$SEARCH/receipt 6.611 + fi | htmlize) 6.612 +</pre> 6.613 +_EOT_ 6.614 + else 6.615 + cat << _EOT_ 6.616 + 6.617 +<h3>$result</h3> 6.618 +<pre class="package"> 6.619 +_EOT_ 6.620 + for pkg in `ls $WOK/ | grep $SEARCH` 6.621 + do 6.622 + . $WOK/$pkg/receipt 6.623 + DESC=" <a href=\"?desc=$pkg\">description</a>" 6.624 + [ -f $WOK/$pkg/description.txt ] || DESC="" 6.625 + cat << _EOT_ 6.626 +$(package_entry)$DESC 6.627 +_EOT_ 6.628 + done 6.629 + equiv=$PACKAGES_REPOSITORY/packages.equiv 6.630 + vpkgs="$(cat $equiv | cut -d= -f1 | grep $SEARCH)" 6.631 + for vpkg in $vpkgs ; do 6.632 + cat << _EOT_ 6.633 +</pre> 6.634 + 6.635 +<h3>$result (package providing $vpkg)</h3> 6.636 +<pre class="package"> 6.637 +_EOT_ 6.638 + for pkg in $(grep $vpkg= $equiv | sed "s/$vpkg=//"); do 6.639 + . $WOK/${pkg#*:}/receipt 6.640 + package_entry 6.641 + done 6.642 + done 6.643 + fi 6.644 + cat << _EOT_ 6.645 +</pre> 6.646 +_EOT_ 6.647 + xhtml_footer 6.648 +fi 6.649 + 6.650 +exit 0
7.1 Binary file tazpkg-web/style/favicon.ico has changed
8.1 Binary file tazpkg-web/style/pics/tazpkg.png has changed
9.1 Binary file tazpkg-web/style/pics/website/header-img.png has changed
10.1 Binary file tazpkg-web/style/pics/website/logo.png has changed
11.1 Binary file tazpkg-web/style/pics/website/network.png has changed
12.1 Binary file tazpkg-web/style/pics/website/text.png has changed
13.1 Binary file tazpkg-web/style/pics/website/xhtml10.png has changed
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/tazpkg-web/style/slitaz.css Thu Feb 24 04:33:56 2011 +0000 14.3 @@ -0,0 +1,446 @@ 14.4 +/* 14.5 + CSS style for SliTaz Network - (c) 2011 SliTaz GNU/Linux 14.6 +*/ 14.7 + 14.8 +html { 14.9 + min-height: 102%; 14.10 +} 14.11 +body { 14.12 + background: #ffffff; 14.13 + color: black; 14.14 + font: 13px sans-serif, vernada, arial; 14.15 + margin: 0; 14.16 + border-top: 34px solid #f1f1f1; 14.17 +} 14.18 +a { text-decoration: underline; color: #103a5e; } 14.19 +a:hover { text-decoration: none; color: blue; } 14.20 +img { border: 0pt none; } 14.21 + 14.22 +/* Accessibility */ 14.23 + 14.24 +#access { 14.25 + position: absolute; 14.26 + top: 4px; 14.27 + right: 0px; 14.28 + text-align: right; 14.29 + width: auto; 14.30 + margin: 0; 14.31 + padding: 4px 4px 4px 20px; 14.32 + font-size: 11px; 14.33 + font-weight: bold; 14.34 +} 14.35 +#access a { 14.36 + background: transparent; 14.37 + color: #0F314E; 14.38 + text-decoration: none; 14.39 +} 14.40 +#access a:hover { color: #b64b22; } 14.41 +#access img { vertical-align: middle; } 14.42 + 14.43 +/* Header */ 14.44 + 14.45 +#header { 14.46 + background: #351a0a url(pics/website/header-img.png) no-repeat top right; 14.47 + color: black; 14.48 + width: 100%; 14.49 + height: 42px; 14.50 + border-top: 1px solid black; 14.51 + border-bottom: 1px solid #999; 14.52 + margin-bottom: 33px; 14.53 +} 14.54 +#titre { 14.55 + position: absolute; 14.56 + font-size: 14px; 14.57 + font-weight: bolder ; 14.58 + left: 180px; 14.59 + top: 4px; 14.60 +} 14.61 +#logo { 14.62 + position: absolute; 14.63 + float: left; 14.64 + left: 16px; 14.65 + top: -10px; 14.66 + width: 200px; 14.67 + height: 74px; 14.68 +} 14.69 + 14.70 +/* Side bar */ 14.71 + 14.72 +#nav { 14.73 + position: absolute; 14.74 + top: 102px; 14.75 + right: 80px; 14.76 + color: #555555; 14.77 + float: right; 14.78 + width: 250px; 14.79 + line-height: 1.5em; 14.80 + text-align: left; 14.81 + font-size: 12px; 14.82 +} 14.83 +#nav h4 { 14.84 + font-size: 120%; 14.85 + color: #666666; 14.86 + font-weight: bold; 14.87 + margin: 0; 14.88 + padding: 0 0 1px 0; 14.89 + border-bottom: 1px solid #cecece; 14.90 +} 14.91 +#nav a { 14.92 + color: #0F314E; 14.93 + background: inherit; 14.94 + display: block; 14.95 + text-decoration: none; 14.96 + font-weight: bold; 14.97 +} 14.98 +#nav a:hover { 14.99 + color: #b64b22; 14.100 + text-decoration: none; 14.101 + display: block; 14.102 +} 14.103 +#nav .nav_box ul { 14.104 + list-style-type: none; 14.105 + margin: 0; 14.106 + padding: 10px 24px 10px 0px; 14.107 + background-color: inherit; 14.108 +} 14.109 +#nav li { display: inline; } 14.110 +#nav ul { 14.111 + -moz-border-radius: 8px; 14.112 + -webkit-border-radius: 8px; 14.113 + border-radius: 8px; 14.114 + list-style-type: none; 14.115 + margin: 10px 0; 14.116 + padding: 10px 24px 10px 24px; 14.117 + background-color: #eaeaea; 14.118 +} 14.119 +.nav_box { 14.120 + margin: 10px 0; 14.121 + padding: 10px 24px 10px 24px; 14.122 + background-color: #eaeaea; 14.123 + text-align: justify; 14.124 +} 14.125 +#nav .nav_box p { line-height: 1.3em; } 14.126 +#nav .nav_box p a { 14.127 + display: inline; 14.128 + font-weight: normal; 14.129 + text-decoration: underline; 14.130 +} 14.131 +#nav .nav_box p a:hover { 14.132 + text-decoration: none; 14.133 + color: blue; 14.134 + background: inherit; 14.135 +} 14.136 + 14.137 +/* Page content */ 14.138 + 14.139 +#content, #content-full { 14.140 + background: white; 14.141 + color: black; 14.142 + text-align: justify; 14.143 + height: auto; 14.144 +} 14.145 +#content, #content-full { 14.146 + margin: 6px 320px 0px 0px; 14.147 + padding: 0px 40px 60px 80px; 14.148 +} 14.149 +#content-full { 14.150 + margin: 0; 14.151 + padding: 0px 80px 40px 80px; 14.152 +} 14.153 +#content li, #content-full li { 14.154 + line-height: 1.5em; 14.155 + text-align: left; 14.156 +} 14.157 +#news li { 14.158 + list-style-type: square; 14.159 + border-bottom: 1px dotted #BEBEBE; 14.160 + margin-left: -25px; 14.161 + padding: 4px 0px 4px 0px; 14.162 +} 14.163 +#news a { text-decoration: none; } 14.164 + 14.165 +/* Box and block. */ 14.166 + 14.167 +.infobox { 14.168 + margin: 20px 60px; 14.169 + padding: 12px; 14.170 + background: #f8f8f8; 14.171 +} 14.172 +.infobox img { vertical-align: middle; } 14.173 +.infobox:hover { background-color: #FBFBFB; } 14.174 +.block { 14.175 + /*padding-bottom: 35%;*/ 14.176 + color: black; 14.177 + min-height: 200px; 14.178 + margin-bottom: 40px; 14.179 +} 14.180 +.block ul { 14.181 + list-style-type: none; 14.182 + margin: 0; 14.183 + padding: 0 20px; 14.184 +} 14.185 +.block_left { 14.186 + width: 46%; 14.187 + float: left; 14.188 + background-color: #eaeaea; 14.189 + margin: 4px 2px; 14.190 + padding: 0 10px 10px 10px; 14.191 +} 14.192 +.block_right { 14.193 + width: 46%; 14.194 + float: right; 14.195 + background-color: #eaeaea; 14.196 + margin: 4px 2px; 14.197 + padding: 0 10px 10px 10px; 14.198 +} 14.199 +#block_top { 14.200 + color: black; 14.201 + background-color: #eaeaea; 14.202 + min-height: 180px; 14.203 + margin-bottom: 40px; 14.204 + margin-right: 340px; 14.205 + padding: 0 10px; 14.206 +} 14.207 +#block_nav { 14.208 + width: 300px; 14.209 + min-height: 180px; 14.210 + float: right; 14.211 + background-color: #eaeaea; 14.212 + margin: 0; 14.213 + padding: 0 10px; 14.214 +} 14.215 +.nav_box, .infobox, .block_left, .block_right, #block_top, 14.216 +#block_nav, #footer { 14.217 + -moz-border-radius: 8px; 14.218 + -webkit-border-radius: 8px; 14.219 + border-radius: 8px; 14.220 + -moz-box-shadow: 0 1px 3px #666; 14.221 + -webkit-box-shadow: 0 1px 3px #666; 14.222 + box-shadow: 0 1px 3px #666; 14.223 + /* CSS3 transition */ 14.224 + -webkit-transition-property: background-color; 14.225 + -webkit-transition-duration: 2s; 14.226 + -moz-transition-property: background-color; 14.227 + -moz-transition-duration: 2s; 14.228 + transition-property: background-color; 14.229 + transition-duration: 2s; 14.230 +} 14.231 +#block_nav { font-weight: bold; } 14.232 +#block_nav a { text-decoration: none; } 14.233 +#block_nav li a:hover { color: #b64b22; } 14.234 +#block_nav ul { margin: 0; list-style-type: none; } 14.235 +#block_nav h3 { font-size: 110%; } 14.236 +.nav_box:hover, .block_left:hover, .block_right:hover, 14.237 +#block_top:hover, #block_nav:hover, #footer:hover { 14.238 + background-color: #f8f8f8; 14.239 +} 14.240 +.right_box { 14.241 + width: 50%; 14.242 + float: right; 14.243 +} 14.244 +/* Text transform at 45deg */ 14.245 +.floor { 14.246 + color: #999999; 14.247 + font-size: 20px; 14.248 + -webkit-transform: rotate(-45deg) skew(15deg, 15deg); 14.249 + -moz-transform: rotate(-45deg) skew(15deg, 15deg); 14.250 + -o-transform: rotate(-45deg) skew(15deg, 15deg); 14.251 + -ms-transform: rotate(-45deg) skew(15deg, 15deg); 14.252 + transform: rotate(-45deg) skew(15deg, 15deg); 14.253 +} 14.254 +#twitter, .feedbox { 14.255 + margin-top: 20px; 14.256 + -moz-border-radius: 8px; 14.257 + -webkit-border-radius: 8px; 14.258 + border-radius: 8px; 14.259 + -moz-box-shadow: 0 1px 3px #666; 14.260 + -webkit-box-shadow: 0 1px 3px #666; 14.261 + box-shadow: 0 1px 3px #666; 14.262 +} 14.263 +.feedbox { 14.264 + background-color: #f9f9f9; 14.265 + padding: 10px 20px; 14.266 + margin: 20px 100px; 14.267 +} 14.268 +.feedbox div { 14.269 + height: 320px; 14.270 + overflow: auto; 14.271 +} 14.272 +.feedbox ul { list-style-type: none; margin: 0; } 14.273 + 14.274 +/* Button */ 14.275 + 14.276 +.button { margin-left: 20px; } 14.277 +.button a { 14.278 + background-color: #b64b22; 14.279 + color: #ffffff; 14.280 + margin-right: 6px; 14.281 + padding: 6px 10px; 14.282 + font-size: 14px; 14.283 + -moz-border-radius: 4px; 14.284 + -webkit-border-radius: 4px; 14.285 + border-radius: 4px; 14.286 + -moz-box-shadow: 0 1px 3px #666; 14.287 + -webkit-box-shadow: 0 1px 3px #666; 14.288 + box-shadow: 0 1px 3px #666; 14.289 +} 14.290 +.button a:hover, input[type=submit]:hover { 14.291 + background-color: #a3431f; 14.292 + color: #ffffff; 14.293 +} 14.294 +input[type=submit] { 14.295 + border: 1px solid #b64b22; 14.296 + background-color: #b64b22; 14.297 + color: white; 14.298 + font-weight: bold; 14.299 + cursor: pointer; 14.300 + padding: 3px 10px; 14.301 + font-size: 14px; 14.302 + -moz-border-radius: 2px; 14.303 + -webkit-border-radius: 2px; 14.304 + border-radius: 2px; 14.305 + -moz-box-shadow: 0 0 5px #666; 14.306 + -webkit-box-shadow: 0 0 5px#666; 14.307 + box-shadow: 0 0 5px #666; 14.308 + margin-left: -5px; 14.309 +} 14.310 +input[type=text] { 14.311 + border: 1px solid #333333; 14.312 + padding: 3px; 14.313 + width: 100%; 14.314 +} 14.315 + 14.316 +/* Clouds */ 14.317 + 14.318 +#cloud { 14.319 + padding: 10px 0px; 14.320 + line-height: 3em; 14.321 + text-align: center; 14.322 +} 14.323 +#cloud a { padding: 0 2px; color: #444444; } 14.324 +#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } 14.325 +#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } 14.326 +#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } 14.327 +#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } 14.328 +#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } 14.329 +#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } 14.330 +#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } 14.331 +#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } 14.332 +#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } 14.333 +#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } 14.334 + 14.335 +/* Slideshow and gallery */ 14.336 + 14.337 +#slideshow 14.338 +{ 14.339 + overflow: hidden; 14.340 + margin: 10px auto 10px; 14.341 + position: relative; 14.342 + width: 260px; 14.343 + height: 163px; 14.344 +} 14.345 +#slideshow img 14.346 +{ 14.347 + border: 0; 14.348 + width: 260px; 14.349 + height: 163px; 14.350 +} 14.351 +#gallery { text-align: center; } 14.352 + 14.353 +/* HTML styles */ 14.354 + 14.355 +h1 { 14.356 + color: #444444; 14.357 + background: transparent; 14.358 + text-align: left; 14.359 + margin: 0px 0px 4px 0px; 14.360 + font-size: 150%; 14.361 + font-weight: bold; 14.362 + padding: 5px 0 0 10px; 14.363 +} 14.364 +h2 { 14.365 + color: #b64b22; 14.366 + padding: 0; 14.367 + margin: 20px 0 0 0; 14.368 + font-size: 130%; 14.369 + font-weight: bold; 14.370 +} 14.371 +h3 { 14.372 + font-weight: bold; 14.373 + color: #666666; 14.374 + background: transparent; 14.375 +} 14.376 +h3 img, h2 img { 14.377 + vertical-align: middle; 14.378 + width: 20px; 14.379 + height: 20px; 14.380 + padding-right: 4px; 14.381 +} 14.382 +code, tt { 14.383 + font-size: 12px; 14.384 + color: #669900; 14.385 +} 14.386 +pre, pre.script { 14.387 + padding: 10px; 14.388 + color: black; 14.389 + background: #E8E8E8; 14.390 + border: 1px inset #606060; 14.391 +} 14.392 + 14.393 +/* Packages pages */ 14.394 + 14.395 +.pkg_nav { 14.396 + border-top: 1px solid black; 14.397 + margin-top: 10px; 14.398 + padding-top: 10px; 14.399 +} 14.400 +pre.package { 14.401 + padding: 0px; 14.402 + color: black; 14.403 + background: white; 14.404 +} 14.405 +p.get { 14.406 + text-align: center; 14.407 + padding: 10px; 14.408 + color: black; 14.409 + background: #F3F3F3; 14.410 + border: 1px solid #DEDEDE; 14.411 + border-radius: 4px; 14.412 + -moz-border-radius: 4px; 14.413 + -webkit-border-radius: 4px; 14.414 +} 14.415 +p.get a { 14.416 + font-weight: bold; 14.417 + text-decoration: none; 14.418 +} 14.419 +.pkgs-search { 14.420 + text-align: center; 14.421 + padding: 40px 20px 80px 20px; 14.422 +} 14.423 + 14.424 +/* Footer */ 14.425 + 14.426 +#footer { 14.427 + margin: 0px 80px 80px 80px; 14.428 + padding: 10px; 14.429 + background: #eaeaea; 14.430 + color: #666666; 14.431 + height: 180px; 14.432 + clear: both; 14.433 + border-radius: 8px; 14.434 + -moz-border-radius: 8px; 14.435 + -webkit-border-radius: 8px; 14.436 + -moz-box-shadow: 0 1px 3px #666; 14.437 + -webkit-box-shadow: 0 1px 3px #666; 14.438 + box-shadow: 0 1px 3px #666; 14.439 +} 14.440 +#footer a { color: #666666; } 14.441 +#footer a:hover { color: #333333; } 14.442 +#footer ul { list-style-type: none; } 14.443 +#footer li { padding: 2px; } 14.444 +#footer h4 { margin: 0 20px; font-size: 125%; } 14.445 + 14.446 +.year:after { 14.447 + /* content: "2007-2011"; */ 14.448 + content: "2011"; 14.449 +}
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/tazpkg-web/tazpkg-web Thu Feb 24 04:33:56 2011 +0000 15.3 @@ -0,0 +1,290 @@ 15.4 +#!/bin/sh 15.5 +# SliTaz Packages Web interface generator: http://pkgs.slitaz.org/ 15.6 +# 15.7 +# (C) 2011 SliTaz project - GNU General Public License v3. 15.8 +# Christophe Lincoln <pankso@slitaz.org> 15.9 +# 15.10 + 15.11 +. /etc/slitaz/tazpkg-web.conf 15.12 + 15.13 +RELEASE="$1" 15.14 +PAGES_DIR=$WEB_INTERFACE/$RELEASE 15.15 +DATE=`date +%Y-%m-%d\ \%H:%M:%S` 15.16 +YEAR=`date +%Y` 15.17 + 15.18 +status() 15.19 +{ 15.20 + local CHECK=$? 15.21 + echo -en "\033[70G" 15.22 + if [ $CHECK = 0 ]; then 15.23 + echo "Done" 15.24 + else 15.25 + echo "Failed" 15.26 + fi 15.27 + return $CHECK 15.28 +} 15.29 + 15.30 +# Search from option with current version in first so users dont have 15.31 +# to select the correct one. 15.32 +search_form_option() 15.33 +{ 15.34 + if [ "$RELEASE" == "stable" ]; then 15.35 + cat << _EOT_ 15.36 + <option>stable</option> 15.37 + <option>cooking</option> 15.38 + <option>2.0</option> 15.39 + <option>1.0</option> 15.40 +_EOT_ 15.41 + else 15.42 + cat << _EOT_ 15.43 + <option>cooking</option> 15.44 + <option>stable</option> 15.45 + <option>2.0</option> 15.46 + <option>1.0</option> 15.47 +_EOT_ 15.48 + fi 15.49 +} 15.50 + 15.51 +# xHTML Header. 15.52 +xhtml_header() 15.53 +{ 15.54 + cat $LIB_DIR/html/header.html > $PAGES_DIR/$page.html 15.55 + sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html 15.56 + sed -i s/"_PAGE_"/"$page"/ $PAGES_DIR/$page.html 15.57 + sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html 15.58 +} 15.59 + 15.60 +# xHTML Footer. 15.61 +xhtml_footer() 15.62 +{ 15.63 + cat $LIB_DIR/html/footer.html >> $PAGES_DIR/$page.html 15.64 + sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html 15.65 + sed -i s/"_YEAR_"/"$YEAR"/ $PAGES_DIR/$page.html 15.66 +} 15.67 + 15.68 +# Index pages with categories and search form. 15.69 +gen_index_content() 15.70 +{ 15.71 + cat >> $PAGES_DIR/$page.html << _EOT_ 15.72 + 15.73 +<div class="pkgs-search"> 15.74 + <form method="post" action="http://pkgs.slitaz.org/search.cgi"> 15.75 + <p> 15.76 + <input type="text" name="query" size="32" /> 15.77 + <input type="submit" name="search" value="Search" /> 15.78 + </p> 15.79 + <select name="object"> 15.80 + <option>Package</option> 15.81 + <option>Desc</option> 15.82 + <option>Tags</option> 15.83 + <option>Receipt</option> 15.84 + <option>Depends</option> 15.85 + <option>BuildDepends</option> 15.86 + <option>File</option> 15.87 + <option>File_list</option> 15.88 + <option>FileOverlap</option> 15.89 + </select> 15.90 + <select name="version"> 15.91 +`search_form_option` 15.92 + </select> 15.93 + </form> 15.94 + <p> 15.95 + $packages packages - Database generated on: $DATE 15.96 + </p> 15.97 +</div> 15.98 +_EOT_ 15.99 + sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html 15.100 +} 15.101 + 15.102 +# Packages <h3> and infos in <pre>. Some packages use EXTRAVERSION in 15.103 +# the receipt so keep the value or set it to the kernel version. 15.104 +pkgs_pages_content() 15.105 +{ 15.106 + for pkg in $WOK/* 15.107 + do 15.108 + DEPENDS="" 15.109 + DEPENDS_LINKS="" 15.110 + EXTRAVERSION="" 15.111 + . $pkg/receipt 15.112 + packages=$(($packages+1)) 15.113 + cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ 15.114 + 15.115 +<a name="$PACKAGE"></a> 15.116 +<h3> 15.117 +<a href="tazpkg://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg"> 15.118 +<img src="/pics/tazpkg.png" 15.119 + title="install" alt="install" 15.120 + style="vertical-align: middle; width: 24px; height: 24px;" /></a> 15.121 +$PACKAGE</h3> 15.122 +<pre class="package"> 15.123 +Version : $VERSION 15.124 +Short desc : $SHORT_DESC 15.125 +Web site : <a href="$WEB_SITE">$WEB_SITE</a> 15.126 +_EOT_ 15.127 + [ -z "$EXTRAVERSION" ] && EXTRAVERSION="_$KERNEL" 15.128 + # Extraversion string or not 15.129 + if [ -f "$PACKAGES_REPOSITORY/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" ]; then 15.130 + cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ 15.131 +Download : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg">$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg</a> 15.132 +_EOT_ 15.133 + echo '</pre>' >> $PAGES_DIR/$CATEGORY.html 15.134 + else 15.135 + # Check if package exists, could be virtual? 15.136 + [ -f "$PACKAGES_REPOSITORY/$PACKAGE-$VERSION.tazpkg" ] && 15.137 + cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ 15.138 +Download : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-$VERSION.tazpkg">$PACKAGE-$VERSION.tazpkg</a> 15.139 +_EOT_ 15.140 + echo '</pre>' >> $PAGES_DIR/$CATEGORY.html 15.141 + fi 15.142 + # Dependencies with link to the package information using 15.143 + # category.html#anchor 15.144 + if [ -n "$DEPENDS" ]; then 15.145 + for dep in $DEPENDS 15.146 + do 15.147 + receipt=$WOK/$dep/receipt 15.148 + if [ -f "$receipt" ]; then 15.149 + cat=`grep CATEGORY $receipt | sed s/CATEGORY=\"// | sed s/\"//` 15.150 + DEPENDS_LINKS=${DEPENDS_LINKS}"<a href=\"$cat.html#$dep\">$dep</a> " 15.151 + fi 15.152 + done 15.153 + cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ 15.154 +<p>Depends : $DEPENDS_LINKS</p> 15.155 +_EOT_ 15.156 + fi 15.157 + done 15.158 +} 15.159 + 15.160 +# Pages footer 15.161 +pages_footer() 15.162 +{ 15.163 + for page in $CATEGORIES 15.164 + do 15.165 + # Gen categories menu/links 15.166 + echo '' >> $PAGES_DIR/$page.html 15.167 + echo '<div class="infobox"><p>' >> $PAGES_DIR/$page.html 15.168 + echo 'Categories' >> $PAGES_DIR/$page.html 15.169 + for i in $CATEGORIES 15.170 + do 15.171 + cat >> $PAGES_DIR/$page.html << _EOF_ 15.172 +| <a href="$i.html">$i</a> 15.173 +_EOF_ 15.174 + done 15.175 + echo '</p></div>' >> $PAGES_DIR/$page.html 15.176 + xhtml_footer 15.177 + done 15.178 +} 15.179 + 15.180 +# Home page with search form and tag cloud. 15.181 +home_page() 15.182 +{ 15.183 + PAGES_DIR=$WEB_INTERFACE 15.184 + page="index" 15.185 + h2="Web interface" 15.186 + RELEASE="" 15.187 + xhtml_header 15.188 + cat $LIB_DIR/html/home.html >> $PAGES_DIR/$page.html 15.189 + xhtml_footer 15.190 +} 15.191 + 15.192 +# Generate all categories pages and release index. 15.193 +gen_all_pages() 15.194 +{ 15.195 + # Clean previews files. 15.196 + rm -rf $PAGES_DIR 15.197 + mkdir -p $PAGES_DIR 15.198 + echo -e "\nStarting to build the $RELEASE Web interface... " 15.199 + echo "================================================================================" 15.200 + # Packages pages header, menu and content top at first. 15.201 + echo -n "Generating all page headers..." 15.202 + for page in $CATEGORIES 15.203 + do 15.204 + h2=$page 15.205 + xhtml_header 15.206 + cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html 15.207 + sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html 15.208 + echo "<h2>Category: $h2</h2>" >> $PAGES_DIR/$page.html 15.209 + done 15.210 + status 15.211 + # Scan the wok and classify packages by category. 15.212 + echo -n "Scanning the wok and generating page contents..." 15.213 + pkgs_pages_content 15.214 + status 15.215 + # Gen all packages pages footer. 15.216 + echo -n "Generating all page footers..." 15.217 + pages_footer 15.218 + status 15.219 + # Stable or Cooking index with categories and home page. 15.220 + echo -n "Generating the main index..." 15.221 + page="index" 15.222 + h2="Categories" 15.223 + xhtml_header 15.224 + cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html 15.225 + gen_index_content 15.226 + xhtml_footer 15.227 + home_page 15.228 + status 15.229 + echo "================================================================================" 15.230 + echo -e "Pages generated: $WEB_INTERFACE\n" 15.231 +} 15.232 + 15.233 +# Prefer the Hg wok in the chroot. On host running Tazbb the wok's 15.234 +# are updated and copied automatically and so more up-to-date. 15.235 + 15.236 +case "$1" in 15.237 + stats) 15.238 + size=`du -sh $WEB_INTERFACE | awk '{ print $1 }'` 15.239 + pages=`find $WEB_INTERFACE -name *.html | wc -l` 15.240 + stable=`find $WEB_INTERFACE/stable -name *.html | wc -l` 15.241 + cooking=`find $WEB_INTERFACE/cooking -name *.html | wc -l` 15.242 + cat << _EOT_ 15.243 + 15.244 +Tazpkg-web statistics 15.245 +================================================================================ 15.246 +Web interface : $WEB_INTERFACE ($size) 15.247 +xHTML pages : $pages (Stable $stable - Cooking $cooking) 15.248 +Library path : $LIB_DIR 15.249 +Stable path : $STABLE 15.250 +Cooking path : $COOKING 15.251 +================================================================================ 15.252 + 15.253 +_EOT_ 15.254 + ;; 15.255 + check) 15.256 + RELEASE=$2 15.257 + [ -z "$RELEASE" ] && RELEASE=cooking 15.258 + echo -e "\nChecking: $WEB_INTERFACE/$RELEASE\n" 15.259 + for page in `cd $WEB_INTERFACE/$RELEASE && ls *.html` 15.260 + do 15.261 + if ! echo "$CATEGORIES index" | grep -qw ${page%.html}; then 15.262 + echo "Wrong category: ${page%.html}" 15.263 + fi 15.264 + done && echo "" ;; 15.265 + stable) 15.266 + PACKAGES_REPOSITORY=$STABLE/packages 15.267 + if [ -d $STABLE/chroot/home/slitaz/hg/wok ]; then 15.268 + WOK=$STABLE/chroot/home/slitaz/hg/wok 15.269 + else 15.270 + WOK=$STABLE/wok 15.271 + fi 15.272 + KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2` 15.273 + gen_all_pages ;; 15.274 + cooking) 15.275 + PACKAGES_REPOSITORY=$COOKING/packages 15.276 + if [ -d $COOKING/chroot/home/slitaz/hg/wok ]; then 15.277 + WOK=$COOKING/chroot/home/slitaz/hg/wok 15.278 + else 15.279 + WOK=$COOKING/wok 15.280 + fi 15.281 + KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2` 15.282 + gen_all_pages ;; 15.283 + *|usage) 15.284 + cat << _EOT_ 15.285 + 15.286 +Tazpkg-web - SliTaz Packages Web interface generator. 15.287 +Usage: `basename $0` [slitaz-release|stats|check] 15.288 + 15.289 +_EOT_ 15.290 + ;; 15.291 +esac 15.292 + 15.293 +exit 0
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/tazpkg-web/tazpkg-web.conf Thu Feb 24 04:33:56 2011 +0000 16.3 @@ -0,0 +1,29 @@ 16.4 +# tazpkg-web.conf: SliTaz packages Web interface configuration file. 16.5 +# 16.6 + 16.7 +# Path to the Web interface. 16.8 +WEB_INTERFACE="/var/www/vhosts/pkgs" 16.9 + 16.10 +# Path to xHTML and XML templates. 16.11 +LIB_DIR="/var/lib/tazpkg-web" 16.12 + 16.13 +# Path to each version. 16.14 +STABLE="/home/slitaz/stable" 16.15 +COOKING="/home/slitaz/cooking" 16.16 + 16.17 +# Packages categories. 16.18 +CATEGORIES=" 16.19 +base-system 16.20 +x-window 16.21 +utilities 16.22 +network 16.23 +graphics 16.24 +multimedia 16.25 +office 16.26 +development 16.27 +system-tools 16.28 +security 16.29 +games 16.30 +misc 16.31 +meta 16.32 +non-free"
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/tazpkg-web/xml/rss-header.xml Thu Feb 24 04:33:56 2011 +0000 17.3 @@ -0,0 +1,15 @@ 17.4 +<?xml version="1.0" ?> 17.5 +<rss version="2.0"> 17.6 +<channel> 17.7 + <title>SliTaz _RELEASE_ packages</title> 17.8 + <link>http://www.slitaz.org/</link> 17.9 + <lastBuildDate>_DATE_</lastBuildDate> 17.10 + <description>Latest packages releases for SliTaz GNU/Linux</description> 17.11 + <language>en</language> 17.12 + <generator>Tazpkg-web</generator> 17.13 + 17.14 + <image> 17.15 + <title>SliTaz GNU/Linux</title> 17.16 + <url>../pics/website/slitaz-spider.png</url> 17.17 + <link>http://pkgs.slitaz.org/</link> 17.18 + </image>