diff options
46 files changed, 12398 insertions, 736 deletions
@@ -2,4 +2,4 @@ *.swp local_settings.py archweb.db - +testing/ @@ -13,26 +13,17 @@ For a simple testing installation: 1. Install dependencies. - pacman -S django python-pysqlite sqlite3 - - 2. Fetch and extract test database - For simple testing, sqlite is a good option. We have provided an - example test database. - wget http://dev.archlinux.org/~eliott/archweb_sqlite.db.gz -O - | zcat > archweb.db - - 3. Copy local_settings.py.example to local_settings.py and modify - Make sure to uncomment the sqlite section. - - 4. Use the following commands to start a service instance - export PYTHONPATH=`pwd`:${PYTHONPATH} - export DJANGO_SETTINGS_MODULE=archweb_dev.settings - python manage.py runserver - - 5. The test database has a few test accounts in it. - To login, use the following credentails. - User: admin - Pass: pass - - You can then reset the password on any of the test users by - going into the django admin interface and doing so. + $ pacman -S django python-pysqlite sqlite3 + + 2. Copy local_settings.py.example to local_settings.py and modify. + Make sure to uncomment the appropriate db section (either sqlite or mysql). + + 3. Sync the database to create it. + $ python manage.py syncdb + + 4. Load the fixtures to prepopulate some data. + $ python manage.py loaddata arches.json repos.json + + 5. Use the following commands to start a service instance + $ python manage.py runserver diff --git a/devel/models.py b/devel/models.py deleted file mode 100644 index d78989f5..00000000 --- a/devel/models.py +++ /dev/null @@ -1,56 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User - -class Mirror(models.Model): - id = models.AutoField(primary_key=True) - domain = models.CharField(maxlength=255) - country = models.CharField(maxlength=255) - url = models.CharField(maxlength=255) - protocol_list = models.CharField(maxlength=255, null=True, blank=True) - admin_email = models.CharField(maxlength=255, null=True, blank=True) - def __str__(self): - return self.domain - class Meta: - db_table = 'common_mirror' - class Admin: - list_display = ('domain', 'country') - list_filter = ('country',) - ordering = ['domain'] - search_fields = ('domain') - pass - -class Donator(models.Model): - id = models.AutoField(primary_key=True) - name = models.CharField(maxlength=255) - def __str__(self): - return self.name - class Meta: - db_table = 'common_donator' - class Admin: - ordering = ['name'] - search_fields = ('name') - pass - -class UserProfile(models.Model): - id = models.AutoField(primary_key=True) # not technically needed - notify = models.BooleanField("Send notifications", default=True, help_text="When enabled, user will recieve 'flag out of date' notifications") - alias = models.CharField(core=True, maxlength=50, help_text="Required field") - public_email = models.CharField(core=True, maxlength=50, help_text="Required field") - other_contact = models.CharField(maxlength=100, null=True, blank=True) - website = models.URLField(null=True, blank=True) - yob = models.IntegerField(null=True, blank=True) - location = models.CharField(maxlength=50, null=True, blank=True) - languages = models.CharField(maxlength=50, null=True, blank=True) - interests = models.CharField(maxlength=255, null=True, blank=True) - occupation = models.CharField(maxlength=50, null=True, blank=True) - roles = models.CharField(maxlength=255, null=True, blank=True) - favorite_distros = models.CharField(maxlength=255, null=True, blank=True) - picture = models.FileField(upload_to='devs', default='devs/silhouette.png') - user = models.ForeignKey(User, edit_inline=models.STACKED, num_in_admin=1, min_num_in_admin=1, max_num_in_admin=1, num_extra_on_change=0, unique=True) - class Meta: - db_table = 'user_profiles' - verbose_name = 'Additional Profile Data' - verbose_name_plural = 'Additional Profile Data' - -# vim: set ts=4 sw=4 et: - diff --git a/devel/views.py b/devel/views.py index 65dde8ae..d825e31d 100644 --- a/devel/views.py +++ b/devel/views.py @@ -1,19 +1,13 @@ from django.http import HttpResponse, HttpResponseRedirect -from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.core import validators -from archweb_dev.lib.utils import render_response -from archweb_dev.packages.models import Package, Repo -from archweb_dev.todolists.models import Todolist, TodolistPkg -from archweb_dev.lib.utils import validate -from archweb_dev.devel.models import UserProfile -from archweb_dev.news.models import News -from archweb_dev.devel.models import Donator, Mirror +from archweb_dev.main.utils import render_response, validate +from archweb_dev.main.models import Package, Todolist, TodolistPkg +from archweb_dev.main.models import Arch, Repo +from archweb_dev.main.models import UserProfile, News, Donor, Mirror from django.http import HttpResponse from django.template import Context, loader - -@login_required def index(request): try: thismaint = User.objects.get(username=request.user.username) @@ -27,26 +21,36 @@ def index(request): stats = Package.objects.get_flag_stats() if thismaint: # get list of flagged packages for this maintainer - pkgs = Package.objects.filter(maintainer=thismaint.id).filter(needupdate=True).order_by('repo', 'pkgname') + pkgs = Package.objects.filter( + maintainer=thismaint.id).filter( + needupdate=True).order_by('repo', 'pkgname') else: pkgs = None + arch_stats = [] + for xarch in Arch.objects.all(): + arch_stats.append({ + 'name': xarch.name, + 'count': Package.objects.filter(arch=xarch).count(), + 'flagged': Package.objects.filter(arch=xarch).filter( + needupdate=True).exclude( + repo__name__iexact='testing').count() + }) + repo_stats = [] - for repo in Repo.objects.all(): + for xrepo in Repo.objects.all(): repo_stats.append({ - 'name': repo.name, - 'count': Package.objects.filter(repo__exact = repo).count(), - 'flagged': Package.objects.filter(repo__exact = repo).filter(needupdate=True).count() + 'name': xrepo.name, + 'count': Package.objects.filter(repo=xrepo).count(), + 'flagged': Package.objects.filter( + repo=xrepo).filter(needupdate=True).count() }) - return render_response(request, 'devel/index.html', - {'stats':stats, - 'pkgs':pkgs, - 'todos':todos, - 'maint':thismaint, - 'repos': repo_stats}) + return render_response( + request, 'devel/index.html', + {'stats': stats, 'pkgs': pkgs, 'todos': todos, 'maint': thismaint, + 'repos': repo_stats, 'arches': arch_stats}) -@login_required #@is_maintainer def change_notify(request): maint = User.objects.get(username=request.user.username) @@ -58,7 +62,6 @@ def change_notify(request): maint.get_profile().save() return HttpResponseRedirect('/devel/') -@login_required def change_profile(request): errors = {} if request.POST: @@ -77,7 +80,6 @@ def change_profile(request): return HttpResponseRedirect('/devel/') return render_response(request, 'devel/profile.html', {'errors':errors,'email':request.user.email}) -@login_required def guide(request): t = loader.get_template('devel/pkgmaint_guide.txt') c = Context() @@ -88,9 +90,11 @@ def guide(request): def siteindex(request): # get the most recent 10 news items news = News.objects.order_by('-postdate', '-id')[:10] - pkgs = Package.objects.exclude(repo__name__exact='Testing').order_by('-last_update')[:15] - repos = Repo.objects.order_by('name') - return render_response(request, 'devel/siteindex.html', {'news_updates':news,'pkg_updates':pkgs,'repos':repos}) + pkgs = Package.objects.exclude(repo__name__iexact='testing').order_by('-last_update')[:15] + repos = Repo.objects.all() + return render_response( + request, 'devel/siteindex.html', + {'news_updates': news, 'pkg_updates': pkgs, 'repos': repos}) def cvs(request): return render_response(request, 'devel/cvs.html') @@ -99,13 +103,17 @@ def developers(request): devs = User.objects.filter(is_active=True).order_by('username') return render_response(request, 'devel/developers.html', {'devs':devs}) +def fellows(request): + fellows = User.objects.filter(is_active=False).order_by('username') + return render_response(request, 'devel/fellows.html', {'fellows':fellows}) + def donate(request): - donor_count = Donator.objects.count() + donor_count = Donor.objects.count() splitval = donor_count / 4 - slice1 = Donator.objects.all()[:splitval] - slice2 = Donator.objects.all()[(splitval):(splitval*2)] - slice3 = Donator.objects.all()[(splitval*2):(donor_count-splitval)] - slice4 = Donator.objects.all()[(donor_count-splitval):donor_count] + slice1 = Donor.objects.all()[:splitval] + slice2 = Donor.objects.all()[(splitval):(splitval*2)] + slice3 = Donor.objects.all()[(splitval*2):(donor_count-splitval)] + slice4 = Donor.objects.all()[(donor_count-splitval):donor_count] return render_response(request, 'devel/donate.html', {'slice1':slice1,'slice2':slice2,'slice3':slice3,'slice4':slice4}) diff --git a/lib/sitelogin.py b/lib/sitelogin.py deleted file mode 100644 index 53721095..00000000 --- a/lib/sitelogin.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.contrib.auth.views import logout_then_login, login -from django.conf import settings - -class SiteLogin: - def __init__(self): - self.login_path = settings.LOGIN_URL - def process_request(self, request): - if request.user.is_anonymous() and request.path != self.login_path: - if request.POST: - return login(request) - else: - return HttpResponseRedirect('%s?next=%s' % (self.login_path, request.path)) - -# vim: set ts=4 sw=4 et: - diff --git a/local_settings.py.example b/local_settings.py.example index a154f12d..d6358eeb 100644 --- a/local_settings.py.example +++ b/local_settings.py.example @@ -20,13 +20,6 @@ ADMINS = ( #DATABASE_HOST = '' #DATABASE_PORT = '' -## Define cache middleware settings -CACHE = False -CACHE_BACKEND = 'file:///tmp/ALdjangocache?timeout=900' -CACHE_MIDDLEWARE_SECONDS = 900 -CACHE_MIDDLEWARE_KEY_PREFIX = 'arch' -CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True - ## location for saving dev pictures MEDIA_ROOT = '/var/www/archlinux/htdocs/img/' diff --git a/lib/__init__.py b/main/__init__.py index e69de29b..e69de29b 100644 --- a/lib/__init__.py +++ b/main/__init__.py diff --git a/main/fixtures/arches.json b/main/fixtures/arches.json new file mode 100644 index 00000000..171e84b0 --- /dev/null +++ b/main/fixtures/arches.json @@ -0,0 +1,23 @@ +[ + { + "pk": "1", + "model": "main.arch", + "fields": { + "name": "any" + } + }, + { + "pk": "2", + "model": "main.arch", + "fields": { + "name": "i686" + } + }, + { + "pk": "3", + "model": "main.arch", + "fields": { + "name": "x86_64" + } + } +] diff --git a/main/fixtures/repos.json b/main/fixtures/repos.json new file mode 100644 index 00000000..2831598c --- /dev/null +++ b/main/fixtures/repos.json @@ -0,0 +1,30 @@ +[ + { + "pk": "1", + "model": "main.repo", + "fields": { + "name": "Core" + } + }, + { + "pk": "2", + "model": "main.repo", + "fields": { + "name": "Extra" + } + }, + { + "pk": "3", + "model": "main.repo", + "fields": { + "name": "Testing" + } + }, + { + "pk": "4", + "model": "main.repo", + "fields": { + "name": "Unstable" + } + } +] diff --git a/main/fixtures/test_packages.json b/main/fixtures/test_packages.json new file mode 100644 index 00000000..bc3be6d1 --- /dev/null +++ b/main/fixtures/test_packages.json @@ -0,0 +1,11118 @@ +[ + { + "pk": "1", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities to download and work with the Arch Build System (ABS)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "abs", + "arch": 2, + "pkgver": "2.0" + } + }, + { + "pk": "2", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library for filesystem ACL support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "acl", + "arch": 2, + "pkgver": "2.2.47" + } + }, + { + "pk": "3", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers for atl2 ethernet card", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "atl2", + "arch": 2, + "pkgver": "2.0.4" + } + }, + { + "pk": "4", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Extended attribute support library for ACL support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "attr", + "arch": 2, + "pkgver": "2.4.41" + } + }, + { + "pk": "5", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU tool for automatically configuring source code", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "autoconf", + "arch": 2, + "pkgver": "2.61" + } + }, + { + "pk": "6", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU tool for automatically creating Makefiles", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "automake", + "arch": 2, + "pkgver": "1.10.1" + } + }, + { + "pk": "7", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU Bourne Again shell", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "bash", + "arch": 2, + "pkgver": "3.2.033" + } + }, + { + "pk": "8", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "firmware extractor for the bcm43xx kernel module", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "bcm43xx-fwcutter", + "arch": 2, + "pkgver": "006" + } + }, + { + "pk": "9", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A complete 8086 assembler and loader", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "bin86", + "arch": 2, + "pkgver": "0.16.17" + } + }, + { + "pk": "10", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A set of programs to assemble and manipulate binary and object files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "binutils", + "arch": 2, + "pkgver": "2.18" + } + }, + { + "pk": "11", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU general-purpose parser generator", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "bison", + "arch": 2, + "pkgver": "2.3" + } + }, + { + "pk": "12", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Layer2 ethernet bridging for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "bridge-utils", + "arch": 2, + "pkgver": "1.2" + } + }, + { + "pk": "13", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A high-quality data compression program", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "bzip2", + "arch": 2, + "pkgver": "1.0.4" + } + }, + { + "pk": "14", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "capi utils for isdn cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "capi4k-utils", + "arch": 2, + "pkgver": "050718" + } + }, + { + "pk": "15", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The basic file, shell and text manipulation utilities of the GNU operating system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "coreutils", + "arch": 2, + "pkgver": "6.10" + } + }, + { + "pk": "16", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool to copy files into or out of a cpio or tar archive", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "cpio", + "arch": 2, + "pkgver": "2.9" + } + }, + { + "pk": "17", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Password Checking Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "cracklib", + "arch": 2, + "pkgver": "2.8.10" + } + }, + { + "pk": "18", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "cryptsetup", + "arch": 2, + "pkgver": "1.0.6" + } + }, + { + "pk": "19", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "csup - cvsup rewritten in C", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "csup", + "arch": 2, + "pkgver": "20060318" + } + }, + { + "pk": "20", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A POSIX compliant shell that aims to be as small as possible", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "dash", + "arch": 2, + "pkgver": "0.5.4" + } + }, + { + "pk": "21", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Berkeley DB embedded database system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "db", + "arch": 2, + "pkgver": "4.6.21" + } + }, + { + "pk": "22", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Dillon's Cron Daemon", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "dcron", + "arch": 2, + "pkgver": "3.2" + } + }, + { + "pk": "23", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Device mapper userspace library and tools.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "device-mapper", + "arch": 2, + "pkgver": "1.02.24" + } + }, + { + "pk": "24", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A DHCP client daemon", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "dhcpcd", + "arch": 2, + "pkgver": "3.2.1" + } + }, + { + "pk": "25", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool to display dialog boxes from shell scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "dialog", + "arch": 2, + "pkgver": "1.1_20071028" + } + }, + { + "pk": "26", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility programs used for creating patch files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "diffutils", + "arch": 2, + "pkgver": "2.8.1" + } + }, + { + "pk": "27", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Data migration API", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "dmapi", + "arch": 2, + "pkgver": "2.2.8" + } + }, + { + "pk": "28", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Device mapper RAID interface", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "dmraid", + "arch": 2, + "pkgver": "1.0.0.rc14" + } + }, + { + "pk": "29", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Various DNS utilities - dig host nslookup nsupdate", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "dnsutils", + "arch": 2, + "pkgver": "9.4.2" + } + }, + { + "pk": "30", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "DOS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "dosfstools", + "arch": 2, + "pkgver": "2.11" + } + }, + { + "pk": "31", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Ext2 filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "e2fsprogs", + "arch": 2, + "pkgver": "1.40.8" + } + }, + { + "pk": "32", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A POSIX-compliant line editor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "ed", + "arch": 2, + "pkgver": "0.9" + } + }, + { + "pk": "33", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A new API to format and send structured log messages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "eventlog", + "arch": 2, + "pkgver": "0.2.5" + } + }, + { + "pk": "34", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Gives a fake root environment, useful for building packages as a non-privileged user", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "fakeroot", + "arch": 2, + "pkgver": "1.9.3" + } + }, + { + "pk": "35", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "File type identification utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "file", + "arch": 2, + "pkgver": "4.23" + } + }, + { + "pk": "36", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Base filesystem", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "filesystem", + "arch": 2, + "pkgver": "2008.03" + } + }, + { + "pk": "37", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU utilities to locate files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "findutils", + "arch": 2, + "pkgver": "4.2.33" + } + }, + { + "pk": "38", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool for generating text-scanning programs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "flex", + "arch": 2, + "pkgver": "2.5.33" + } + }, + { + "pk": "39", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library that makes it possible to implement a filesystem in a userspace program.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "fuse", + "arch": 2, + "pkgver": "2.7.3" + } + }, + { + "pk": "40", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Gnu version of awk", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "gawk", + "arch": 2, + "pkgver": "3.1.6" + } + }, + { + "pk": "41", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU Compiler Collection", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "gcc", + "arch": 2, + "pkgver": "4.3.0" + } + }, + { + "pk": "42", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Runtime libraries shipped by GCC for C and C++ languages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "gcc-libs", + "arch": 2, + "pkgver": "4.3.0" + } + }, + { + "pk": "43", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU database library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "gdbm", + "arch": 2, + "pkgver": "1.8.3" + } + }, + { + "pk": "44", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Program to compress initramfs images", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "gen-init-cpio", + "arch": 2, + "pkgver": "2.6.17" + } + }, + { + "pk": "45", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU internationalization library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "gettext", + "arch": 2, + "pkgver": "0.17" + } + }, + { + "pk": "46", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Common C routines used by GTK+ 2.4 and other libs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "glib2", + "arch": 2, + "pkgver": "2.16.2" + } + }, + { + "pk": "47", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU C Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "9", + "pkgname": "glibc", + "arch": 2, + "pkgver": "2.7" + } + }, + { + "pk": "48", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A free library for arbitrary precision arithmetic", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "gmp", + "arch": 2, + "pkgver": "4.2.2" + } + }, + { + "pk": "49", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A mouse server for the console and xterm", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "7", + "pkgname": "gpm", + "arch": 2, + "pkgver": "1.20.1" + } + }, + { + "pk": "50", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A string search utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "grep", + "arch": 2, + "pkgver": "2.5.3" + } + }, + { + "pk": "51", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU troff text-formatting system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "groff", + "arch": 2, + "pkgver": "1.19.2" + } + }, + { + "pk": "52", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU multiboot boot loader", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "12", + "pkgname": "grub", + "arch": 2, + "pkgver": "0.97" + } + }, + { + "pk": "53", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU compression utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "gzip", + "arch": 2, + "pkgver": "1.3.12" + } + }, + { + "pk": "54", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A shell utility for manipulating Linux IDE drive\/driver parameters", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "hdparm", + "arch": 2, + "pkgver": "8.6" + } + }, + { + "pk": "55", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Heimdal Kerberos V5 libraries", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "heimdal", + "arch": 2, + "pkgver": "1.0.1" + } + }, + { + "pk": "56", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Hardware detection script with loading modules and mkinitcpio.conf \/ rc.conf support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "hwdetect", + "arch": 2, + "pkgver": "0.9" + } + }, + { + "pk": "57", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility for bonding ethernet interfaces", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "ifenslave", + "arch": 2, + "pkgver": "1.1.0" + } + }, + { + "pk": "58", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "System initialization\/bootup scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "initscripts", + "arch": 2, + "pkgver": "2008.03" + } + }, + { + "pk": "59", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "IP Routing Utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "iproute", + "arch": 2, + "pkgver": "2.6.24_rc7" + } + }, + { + "pk": "60", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A Linux kernel packet control tool", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "iptables", + "arch": 2, + "pkgver": "1.4.0" + } + }, + { + "pk": "61", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "IP Configuration Utilities (and Ping)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "iputils", + "arch": 2, + "pkgver": "20070202" + } + }, + { + "pk": "62", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW2100", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw2100-fw", + "arch": 2, + "pkgver": "1.3" + } + }, + { + "pk": "63", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW2200", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw2200-fw", + "arch": 2, + "pkgver": "3.0" + } + }, + { + "pk": "64", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Driver for the Intel PRO\/Wireless 3945ABG miniPCI express adapter", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "8", + "pkgname": "ipw3945", + "arch": 2, + "pkgver": "1.2.2" + } + }, + { + "pk": "65", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW3945", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw3945-ucode", + "arch": 2, + "pkgver": "1.14.2" + } + }, + { + "pk": "66", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Regulatory daemon for IPW3945", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "ipw3945d", + "arch": 2, + "pkgver": "1.7.22" + } + }, + { + "pk": "67", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "User space administration programs and tools for ISDN", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "isdn4k-utils", + "arch": 2, + "pkgver": "3.2p1" + } + }, + { + "pk": "68", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel wireless firmware for IPW3945 (iwlwifi driver)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "iwlwifi-3945-ucode", + "arch": 2, + "pkgver": "2.14.1.5" + } + }, + { + "pk": "69", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel wireless firmware for IPW4965 (iwlwifi driver)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "iwlwifi-4965-ucode", + "arch": 2, + "pkgver": "4.44.1.20" + } + }, + { + "pk": "70", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "JFS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "jfsutils", + "arch": 2, + "pkgver": "1.1.12" + } + }, + { + "pk": "71", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Keytable files and keyboard utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "kbd", + "arch": 2, + "pkgver": "1.14.1.20080309" + } + }, + { + "pk": "72", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Kernel headers sanitized for use in userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "kernel-headers", + "arch": 2, + "pkgver": "2.6.24.3" + } + }, + { + "pk": "73", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Linux Kernel and modules", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "kernel26", + "arch": 2, + "pkgver": "2.6.24.4" + } + }, + { + "pk": "74", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a minimal libc made for early-userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "klibc", + "arch": 2, + "pkgver": "1.5" + } + }, + { + "pk": "75", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Extra apps for klibc early-userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "klibc-extras", + "arch": 2, + "pkgver": "2.4" + } + }, + { + "pk": "76", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Keytable files and keyboard utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "klibc-kbd", + "arch": 2, + "pkgver": "1.15.20080312" + } + }, + { + "pk": "77", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing modules from the Linux kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "klibc-module-init-tools", + "arch": 2, + "pkgver": "3.2.2" + } + }, + { + "pk": "78", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "udevd compiled under klibc", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "klibc-udev", + "arch": 2, + "pkgver": "116" + } + }, + { + "pk": "79", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A terminal based program for viewing text files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "less", + "arch": 2, + "pkgver": "418" + } + }, + { + "pk": "80", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "library that can create and read several streaming archive formats", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "libarchive", + "arch": 2, + "pkgver": "2.4.17" + } + }, + { + "pk": "81", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "URL based download library, forked from libfetch", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "libdownload", + "arch": 2, + "pkgver": "1.3" + } + }, + { + "pk": "82", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "libelf is a free ELF object file access library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "libelf", + "arch": 2, + "pkgver": "0.8.10" + } + }, + { + "pk": "83", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "libevent", + "arch": 2, + "pkgver": "1.3e" + } + }, + { + "pk": "84", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a general purpose crypto library based on the code used", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1.1", + "pkgname": "libgcrypt", + "arch": 2, + "pkgver": "1.4.0" + } + }, + { + "pk": "85", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Support library for libgcrypt", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "libgpg-error", + "arch": 2, + "pkgver": "1.6" + } + }, + { + "pk": "86", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "LDAP client libraries", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "libldap", + "arch": 2, + "pkgver": "2.3.39" + } + }, + { + "pk": "87", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A system-independent interface for user-level packet capture", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "libpcap", + "arch": 2, + "pkgver": "0.9.8" + } + }, + { + "pk": "88", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Cyrus Simple Authentication Service Layer (SASL) library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "libsasl", + "arch": 2, + "pkgver": "2.1.22" + } + }, + { + "pk": "89", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A generic library support script", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "libtool", + "arch": 2, + "pkgver": "2.2" + } + }, + { + "pk": "90", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library to enable user space application programs to communicate with USB devices", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "libusb", + "arch": 2, + "pkgver": "0.1.12" + } + }, + { + "pk": "91", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The standard licenses distribution package", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "licenses", + "arch": 2, + "pkgver": "2.3" + } + }, + { + "pk": "92", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A bootloader for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "lilo", + "arch": 2, + "pkgver": "22.8" + } + }, + { + "pk": "93", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A text WWW browser, similar to Lynx", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "links", + "arch": 2, + "pkgver": "2.1pre33" + } + }, + { + "pk": "94", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers and tools to support ATM networking under Linux.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "linux-atm", + "arch": 2, + "pkgver": "2.4.1" + } + }, + { + "pk": "95", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Rotates system logs automatically", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "logrotate", + "arch": 2, + "pkgver": "3.7.5" + } + }, + { + "pk": "96", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Logical Volume Manager 2 utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "lvm2", + "arch": 2, + "pkgver": "2.02.33" + } + }, + { + "pk": "97", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a portable lossless data compression library written in ANSI C", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "lzo2", + "arch": 2, + "pkgver": "2.02" + } + }, + { + "pk": "98", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "m4 macro processor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "m4", + "arch": 2, + "pkgver": "1.4.10" + } + }, + { + "pk": "99", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "madwifi", + "arch": 2, + "pkgver": "0.9.4.3382" + } + }, + { + "pk": "100", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Userspace tools of madwifi drivers for Atheros wireless chipsets.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "madwifi-utils", + "arch": 2, + "pkgver": "0.9.4.3382" + } + }, + { + "pk": "101", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A commandline utility for sending email", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "mailx", + "arch": 2, + "pkgver": "8.1.1" + } + }, + { + "pk": "102", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU make utility to maintain groups of programs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "make", + "arch": 2, + "pkgver": "3.81" + } + }, + { + "pk": "103", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility for reading man pages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "man", + "arch": 2, + "pkgver": "1.6f" + } + }, + { + "pk": "104", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Linux man pages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "man-pages", + "arch": 2, + "pkgver": "2.79" + } + }, + { + "pk": "105", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool for managing\/monitoring Linux md device arrays, also known as Software RAID", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "mdadm", + "arch": 2, + "pkgver": "2.6.4" + } + }, + { + "pk": "106", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Advanced, modular initramfs image creation utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "mkinitcpio", + "arch": 2, + "pkgver": "0.5.18.1" + } + }, + { + "pk": "107", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Faster merging drop-in for slocate", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "mlocate", + "arch": 2, + "pkgver": "0.18" + } + }, + { + "pk": "108", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing modules from the Linux kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "module-init-tools", + "arch": 2, + "pkgver": "3.2.2" + } + }, + { + "pk": "109", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "multiple-precision floating-point library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "mpfr", + "arch": 2, + "pkgver": "2.3.1" + } + }, + { + "pk": "110", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Pico editor clone with enhancements", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "nano", + "arch": 2, + "pkgver": "2.0.7" + } + }, + { + "pk": "111", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A System V Release 4.0 curses emulation library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "ncurses", + "arch": 2, + "pkgver": "5.6" + } + }, + { + "pk": "112", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "ndiswrapper", + "arch": 2, + "pkgver": "1.52" + } + }, + { + "pk": "113", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Binaries for ndiswrapper module", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "ndiswrapper-utils", + "arch": 2, + "pkgver": "1.52" + } + }, + { + "pk": "114", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Configuration tools for Linux networking", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "13", + "pkgname": "net-tools", + "arch": 2, + "pkgver": "1.60" + } + }, + { + "pk": "115", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Network configuration and profile scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "netcfg", + "arch": 2, + "pkgver": "2.0.6" + } + }, + { + "pk": "116", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A telnet client (and server)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "7", + "pkgname": "netkit-telnet", + "arch": 2, + "pkgver": "0.17" + } + }, + { + "pk": "117", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Support programs for Network File Systems", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "nfs-utils", + "arch": 2, + "pkgver": "1.1.0" + } + }, + { + "pk": "118", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library to help mapping IDs, mainly for NFSv4", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "nfsidmap", + "arch": 2, + "pkgver": "0.20" + } + }, + { + "pk": "119", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Third generation Linux NTFS driver", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "ntfs-3g", + "arch": 2, + "pkgver": "1.2310" + } + }, + { + "pk": "120", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "NTFS Resizing Tool", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "ntfsprogs", + "arch": 2, + "pkgver": "2.0.0" + } + }, + { + "pk": "121", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A Secure SHell server\/client", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "openssh", + "arch": 2, + "pkgver": "4.7p1" + } + }, + { + "pk": "122", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Open Source toolkit for Secure Sockets Layer and Transport Layer Security", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "openssl", + "arch": 2, + "pkgver": "0.9.8g" + } + }, + { + "pk": "123", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Open Source implementation of IPsec for the Linux operating system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "openswan", + "arch": 2, + "pkgver": "2.4.11" + } + }, + { + "pk": "124", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "openvpn", + "arch": 2, + "pkgver": "2.0.9" + } + }, + { + "pk": "125", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library-based package manager with dependency support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "pacman", + "arch": 2, + "pkgver": "3.1.4" + } + }, + { + "pk": "126", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "PAM (Pluggable Authentication Modules) library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "pam", + "arch": 2, + "pkgver": "0.99.9.0" + } + }, + { + "pk": "127", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility to apply patch files to original sources", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "patch", + "arch": 2, + "pkgver": "2.5.4" + } + }, + { + "pk": "128", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "PCI bus configuration space access library and tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "pciutils", + "arch": 2, + "pkgver": "2.2.8" + } + }, + { + "pk": "129", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing PCMCIA cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "pcmciautils", + "arch": 2, + "pkgver": "014" + } + }, + { + "pk": "130", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library that implements Perl 5-style regular expressions", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "pcre", + "arch": 2, + "pkgver": "7.6" + } + }, + { + "pk": "131", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Practical Extraction and Report Language", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "perl", + "arch": 2, + "pkgver": "5.10.0" + } + }, + { + "pk": "132", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A system for managing library compile\/link flags", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "pkgconfig", + "arch": 2, + "pkgver": "0.22" + } + }, + { + "pk": "133", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A commandline option parser", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "popt", + "arch": 2, + "pkgver": "1.10.6" + } + }, + { + "pk": "134", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "RPC connection manager", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "portmap", + "arch": 2, + "pkgver": "6.0" + } + }, + { + "pk": "135", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A daemon which implements the PPP protocol for dial-up networking", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "6", + "pkgname": "ppp", + "arch": 2, + "pkgver": "2.4.4" + } + }, + { + "pk": "136", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "pptpclient", + "arch": 2, + "pkgver": "1.7.1" + } + }, + { + "pk": "137", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Displays useful information from \/proc", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "procinfo", + "arch": 2, + "pkgver": "19" + } + }, + { + "pk": "138", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for monitoring your system and processes on your system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "procps", + "arch": 2, + "pkgver": "3.2.7" + } + }, + { + "pk": "139", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Miscellaneous procfs tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "psmisc", + "arch": 2, + "pkgver": "22.6" + } + }, + { + "pk": "140", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU readline library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "7", + "pkgname": "readline", + "arch": 2, + "pkgver": "5.2" + } + }, + { + "pk": "141", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Reiserfs utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "reiserfsprogs", + "arch": 2, + "pkgver": "3.6.20" + } + }, + { + "pk": "142", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Roaring Penguin's Point-to-Point Protocol over Ethernet client", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "rp-pppoe", + "arch": 2, + "pkgver": "3.8" + } + }, + { + "pk": "143", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers for rt2500 chipset wireless cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "21", + "pkgname": "rt2500", + "arch": 2, + "pkgver": "1.1.0_B4" + } + }, + { + "pk": "144", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the rt2x00 wireless drivers", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "rt2x00-rt61-fw", + "arch": 2, + "pkgver": "1.2" + } + }, + { + "pk": "145", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the rt2x00 wireless drivers", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "rt2x00-rt71w-fw", + "arch": 2, + "pkgver": "1.8" + } + }, + { + "pk": "146", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "An utility similar to hdparm but for SCSI devices", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "sdparm", + "arch": 2, + "pkgver": "1.02" + } + }, + { + "pk": "147", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU stream editor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "sed", + "arch": 2, + "pkgver": "4.1.5" + } + }, + { + "pk": "148", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Shadow password file utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "shadow", + "arch": 2, + "pkgver": "4.0.18.2" + } + }, + { + "pk": "149", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Give certain users the ability to run some commands as root", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "sudo", + "arch": 2, + "pkgver": "1.6.9p12" + } + }, + { + "pk": "150", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "System Utilities Based on Sysfs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "sysfsutils", + "arch": 2, + "pkgver": "2.1.0" + } + }, + { + "pk": "151", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Next-generation syslogd with advanced networking and filtering capabilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "syslog-ng", + "arch": 2, + "pkgver": "2.0.6" + } + }, + { + "pk": "152", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Linux System V Init", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "sysvinit", + "arch": 2, + "pkgver": "2.86" + } + }, + { + "pk": "153", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility used to store, backup, and transport files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "tar", + "arch": 2, + "pkgver": "1.19" + } + }, + { + "pk": "154", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Monitors and Controls incoming TCP connections", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "8", + "pkgname": "tcp_wrappers", + "arch": 2, + "pkgver": "7.6" + } + }, + { + "pk": "155", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "texinfo", + "arch": 2, + "pkgver": "4.11" + } + }, + { + "pk": "156", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "OpenSource module for Texas Instruments ACX100\/ACX111 wireless chips. For stock arch 2.6 kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "tiacx", + "arch": 2, + "pkgver": "20080210" + } + }, + { + "pk": "157", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for Texas Instruments ACX100\/ACX111 wireless chips.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "tiacx-firmware", + "arch": 2, + "pkgver": "2" + } + }, + { + "pk": "158", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Sources for time zone and daylight saving time data", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "tzdata", + "arch": 2, + "pkgver": "2008b" + } + }, + { + "pk": "159", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The userspace dev tools (udev)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "udev", + "arch": 2, + "pkgver": "119" + } + }, + { + "pk": "160", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "USB Device Utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "5", + "pkgname": "usbutils", + "arch": 2, + "pkgver": "0.73" + } + }, + { + "pk": "161", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Miscellaneous system utilities for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "util-linux-ng", + "arch": 2, + "pkgver": "2.13.0.1" + } + }, + { + "pk": "162", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a highly configurable, improved version of the vi text editor (basic version)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "vi", + "arch": 2, + "pkgver": "7.1.267" + } + }, + { + "pk": "163", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "VPN client for cisco3000 VPN Concentrators", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "vpnc", + "arch": 2, + "pkgver": "0.5.1" + } + }, + { + "pk": "164", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A network utility to retrieve files from the Web", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "wget", + "arch": 2, + "pkgver": "1.11" + } + }, + { + "pk": "165", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility to show the full path of commands", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "which", + "arch": 2, + "pkgver": "2.19" + } + }, + { + "pk": "166", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "wireless_tools", + "arch": 2, + "pkgver": "29" + } + }, + { + "pk": "167", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Lan usb modules. For kernel26.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "15", + "pkgname": "wlan-ng26", + "arch": 2, + "pkgver": "0.2.8" + } + }, + { + "pk": "168", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Lan userspace tools.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "wlan-ng26-utils", + "arch": 2, + "pkgver": "0.2.8" + } + }, + { + "pk": "169", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility providing key negotiation for WPA wireless networks", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "wpa_supplicant", + "arch": 2, + "pkgver": "0.5.10" + } + }, + { + "pk": "170", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "XFS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "1", + "pkgname": "xfsprogs", + "arch": 2, + "pkgver": "2.9.7" + } + }, + { + "pk": "171", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "xinetd is a secure replacement for inetd", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "3", + "pkgname": "xinetd", + "arch": 2, + "pkgver": "2.3.14" + } + }, + { + "pk": "172", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the in-kernel26 zd1211rw wireless driver", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "2", + "pkgname": "zd1211-firmware", + "arch": 2, + "pkgver": "1.4" + } + }, + { + "pk": "173", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A compression\/decompression Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:02:44", + "repo": 1, + "pkgrel": "4", + "pkgname": "zlib", + "arch": 2, + "pkgver": "1.2.3" + } + }, + { + "pk": "174", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities to download and work with the Arch Build System (ABS)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "abs", + "arch": 3, + "pkgver": "2.0" + } + }, + { + "pk": "175", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library for filesystem ACL support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "acl", + "arch": 3, + "pkgver": "2.2.47" + } + }, + { + "pk": "176", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers for atl2 ethernet card", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "atl2", + "arch": 3, + "pkgver": "2.0.4" + } + }, + { + "pk": "177", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Extended attribute support library for ACL support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "attr", + "arch": 3, + "pkgver": "2.4.41" + } + }, + { + "pk": "178", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU tool for automatically configuring source code", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "autoconf", + "arch": 3, + "pkgver": "2.61" + } + }, + { + "pk": "179", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU tool for automatically creating Makefiles", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "automake", + "arch": 3, + "pkgver": "1.10.1" + } + }, + { + "pk": "180", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU Bourne Again shell", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "bash", + "arch": 3, + "pkgver": "3.2.033" + } + }, + { + "pk": "181", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "firmware extractor for the bcm43xx kernel module", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "bcm43xx-fwcutter", + "arch": 3, + "pkgver": "006" + } + }, + { + "pk": "182", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A complete 8086 assembler and loader", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "bin86", + "arch": 3, + "pkgver": "0.16.17" + } + }, + { + "pk": "183", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A set of programs to assemble and manipulate binary and object files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "binutils", + "arch": 3, + "pkgver": "2.18" + } + }, + { + "pk": "184", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU general-purpose parser generator", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "bison", + "arch": 3, + "pkgver": "2.3" + } + }, + { + "pk": "185", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Layer2 ethernet bridging for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "bridge-utils", + "arch": 3, + "pkgver": "1.2" + } + }, + { + "pk": "186", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A high-quality data compression program", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "bzip2", + "arch": 3, + "pkgver": "1.0.4" + } + }, + { + "pk": "187", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "capi utils for isdn cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "capi4k-utils", + "arch": 3, + "pkgver": "050718" + } + }, + { + "pk": "188", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The basic file, shell and text manipulation utilities of the GNU operating system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "coreutils", + "arch": 3, + "pkgver": "6.10" + } + }, + { + "pk": "189", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool to copy files into or out of a cpio or tar archive", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "cpio", + "arch": 3, + "pkgver": "2.9" + } + }, + { + "pk": "190", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Password Checking Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "cracklib", + "arch": 3, + "pkgver": "2.8.10" + } + }, + { + "pk": "191", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "cryptsetup", + "arch": 3, + "pkgver": "1.0.6" + } + }, + { + "pk": "192", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "csup - cvsup rewritten in C", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "csup", + "arch": 3, + "pkgver": "20060318" + } + }, + { + "pk": "193", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A POSIX compliant shell that aims to be as small as possible", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "dash", + "arch": 3, + "pkgver": "0.5.4" + } + }, + { + "pk": "194", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Berkeley DB embedded database system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "db", + "arch": 3, + "pkgver": "4.6.21" + } + }, + { + "pk": "195", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Dillon's Cron Daemon", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "dcron", + "arch": 3, + "pkgver": "3.2" + } + }, + { + "pk": "196", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Device mapper userspace library and tools.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "device-mapper", + "arch": 3, + "pkgver": "1.02.24" + } + }, + { + "pk": "197", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A DHCP client daemon", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "dhcpcd", + "arch": 3, + "pkgver": "3.2.1" + } + }, + { + "pk": "198", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool to display dialog boxes from shell scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "dialog", + "arch": 3, + "pkgver": "1.1_20071028" + } + }, + { + "pk": "199", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility programs used for creating patch files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "diffutils", + "arch": 3, + "pkgver": "2.8.1" + } + }, + { + "pk": "200", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Data migration API", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "dmapi", + "arch": 3, + "pkgver": "2.2.8" + } + }, + { + "pk": "201", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Device mapper RAID interface", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "dmraid", + "arch": 3, + "pkgver": "1.0.0.rc14" + } + }, + { + "pk": "202", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Various DNS utilities - dig host nslookup nsupdate", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "dnsutils", + "arch": 3, + "pkgver": "9.4.2" + } + }, + { + "pk": "203", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "DOS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "dosfstools", + "arch": 3, + "pkgver": "2.11" + } + }, + { + "pk": "204", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Ext2 filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "e2fsprogs", + "arch": 3, + "pkgver": "1.40.8" + } + }, + { + "pk": "205", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A POSIX-compliant line editor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "ed", + "arch": 3, + "pkgver": "0.9" + } + }, + { + "pk": "206", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A new API to format and send structured log messages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "eventlog", + "arch": 3, + "pkgver": "0.2.5" + } + }, + { + "pk": "207", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Gives a fake root environment, useful for building packages as a non-privileged user", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "fakeroot", + "arch": 3, + "pkgver": "1.9.3" + } + }, + { + "pk": "208", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "File type identification utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "file", + "arch": 3, + "pkgver": "4.23" + } + }, + { + "pk": "209", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Base filesystem", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "filesystem", + "arch": 3, + "pkgver": "2008.03" + } + }, + { + "pk": "210", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU utilities to locate files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "findutils", + "arch": 3, + "pkgver": "4.2.33" + } + }, + { + "pk": "211", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool for generating text-scanning programs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "flex", + "arch": 3, + "pkgver": "2.5.33" + } + }, + { + "pk": "212", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library that makes it possible to implement a filesystem in a userspace program.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "fuse", + "arch": 3, + "pkgver": "2.7.3" + } + }, + { + "pk": "213", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Gnu version of awk", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "gawk", + "arch": 3, + "pkgver": "3.1.6" + } + }, + { + "pk": "214", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The GNU Compiler Collection", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "gcc", + "arch": 3, + "pkgver": "4.3.0" + } + }, + { + "pk": "215", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Runtime libraries shipped by GCC for C and C++ languages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "gcc-libs", + "arch": 3, + "pkgver": "4.3.0" + } + }, + { + "pk": "216", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU database library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "gdbm", + "arch": 3, + "pkgver": "1.8.3" + } + }, + { + "pk": "217", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Program to compress initramfs images", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "gen-init-cpio", + "arch": 3, + "pkgver": "2.6.17" + } + }, + { + "pk": "218", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU internationalization library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "gettext", + "arch": 3, + "pkgver": "0.17" + } + }, + { + "pk": "219", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Common C routines used by GTK+ 2.4 and other libs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "glib2", + "arch": 3, + "pkgver": "2.16.3" + } + }, + { + "pk": "220", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU C Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "9", + "pkgname": "glibc", + "arch": 3, + "pkgver": "2.7" + } + }, + { + "pk": "221", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A free library for arbitrary precision arithmetic", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "gmp", + "arch": 3, + "pkgver": "4.2.2" + } + }, + { + "pk": "222", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A mouse server for the console and xterm", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "7", + "pkgname": "gpm", + "arch": 3, + "pkgver": "1.20.1" + } + }, + { + "pk": "223", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A string search utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "grep", + "arch": 3, + "pkgver": "2.5.3" + } + }, + { + "pk": "224", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU troff text-formatting system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "groff", + "arch": 3, + "pkgver": "1.19.2" + } + }, + { + "pk": "225", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A GNU multiboot boot loader", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "12", + "pkgname": "grub", + "arch": 3, + "pkgver": "0.97" + } + }, + { + "pk": "226", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU compression utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "gzip", + "arch": 3, + "pkgver": "1.3.12" + } + }, + { + "pk": "227", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A shell utility for manipulating Linux IDE drive\/driver parameters", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "hdparm", + "arch": 3, + "pkgver": "8.6" + } + }, + { + "pk": "228", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Heimdal Kerberos V5 libraries", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "heimdal", + "arch": 3, + "pkgver": "1.0.1" + } + }, + { + "pk": "229", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Hardware detection script with loading modules and mkinitcpio.conf \/ rc.conf support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "hwdetect", + "arch": 3, + "pkgver": "0.9" + } + }, + { + "pk": "230", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility for bonding ethernet interfaces", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "ifenslave", + "arch": 3, + "pkgver": "1.1.0" + } + }, + { + "pk": "231", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "System initialization\/bootup scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "initscripts", + "arch": 3, + "pkgver": "2008.03" + } + }, + { + "pk": "232", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "IP Routing Utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "iproute", + "arch": 3, + "pkgver": "2.6.24_rc7" + } + }, + { + "pk": "233", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A Linux kernel packet control tool", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "iptables", + "arch": 3, + "pkgver": "1.4.0" + } + }, + { + "pk": "234", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "IP Configuration Utilities (and Ping)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "iputils", + "arch": 3, + "pkgver": "20070202" + } + }, + { + "pk": "235", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW2100", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw2100-fw", + "arch": 3, + "pkgver": "1.3" + } + }, + { + "pk": "236", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW2200", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw2200-fw", + "arch": 3, + "pkgver": "3.0" + } + }, + { + "pk": "237", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Driver for the Intel PRO\/Wireless 3945ABG miniPCI express adapter", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "8", + "pkgname": "ipw3945", + "arch": 3, + "pkgver": "1.2.2" + } + }, + { + "pk": "238", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel Centrino Drivers firmware for IPW3945", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "ipw3945-ucode", + "arch": 3, + "pkgver": "1.14.2" + } + }, + { + "pk": "239", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Regulatory daemon for IPW3945", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "ipw3945d", + "arch": 3, + "pkgver": "1.7.22" + } + }, + { + "pk": "240", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "User space administration programs and tools for ISDN", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "isdn4k-utils", + "arch": 3, + "pkgver": "3.2p1" + } + }, + { + "pk": "241", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel wireless firmware for IPW3945 (iwlwifi driver)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "iwlwifi-3945-ucode", + "arch": 3, + "pkgver": "2.14.1.5" + } + }, + { + "pk": "242", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Intel wireless firmware for IPW4965 (iwlwifi driver)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "iwlwifi-4965-ucode", + "arch": 3, + "pkgver": "4.44.1.20" + } + }, + { + "pk": "243", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "JFS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "jfsutils", + "arch": 3, + "pkgver": "1.1.12" + } + }, + { + "pk": "244", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Keytable files and keyboard utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "kbd", + "arch": 3, + "pkgver": "1.14.1.20080309" + } + }, + { + "pk": "245", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Kernel headers sanitized for use in userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "kernel-headers", + "arch": 3, + "pkgver": "2.6.24.3" + } + }, + { + "pk": "246", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Linux Kernel and modules", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "kernel26", + "arch": 3, + "pkgver": "2.6.24.4" + } + }, + { + "pk": "247", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a minimal libc made for early-userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "klibc", + "arch": 3, + "pkgver": "1.5" + } + }, + { + "pk": "248", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Extra apps for klibc early-userspace", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "klibc-extras", + "arch": 3, + "pkgver": "2.4" + } + }, + { + "pk": "249", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Keytable files and keyboard utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "klibc-kbd", + "arch": 3, + "pkgver": "1.15.20080312" + } + }, + { + "pk": "250", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing modules from the Linux kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "klibc-module-init-tools", + "arch": 3, + "pkgver": "3.2.2" + } + }, + { + "pk": "251", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "udevd compiled under klibc", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "klibc-udev", + "arch": 3, + "pkgver": "116" + } + }, + { + "pk": "252", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A terminal based program for viewing text files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "less", + "arch": 3, + "pkgver": "418" + } + }, + { + "pk": "253", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "library that can create and read several streaming archive formats", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "libarchive", + "arch": 3, + "pkgver": "2.4.17" + } + }, + { + "pk": "254", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "URL based download library, forked from libfetch", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "libdownload", + "arch": 3, + "pkgver": "1.3" + } + }, + { + "pk": "255", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "libelf is a free ELF object file access library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3.1", + "pkgname": "libelf", + "arch": 3, + "pkgver": "0.8.10" + } + }, + { + "pk": "256", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "libevent", + "arch": 3, + "pkgver": "1.3e" + } + }, + { + "pk": "257", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a general purpose crypto library based on the code used", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "libgcrypt", + "arch": 3, + "pkgver": "1.4.0" + } + }, + { + "pk": "258", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Support library for libgcrypt", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "libgpg-error", + "arch": 3, + "pkgver": "1.6" + } + }, + { + "pk": "259", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "LDAP client libraries", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "libldap", + "arch": 3, + "pkgver": "2.3.39" + } + }, + { + "pk": "260", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A system-independent interface for user-level packet capture", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "libpcap", + "arch": 3, + "pkgver": "0.9.8" + } + }, + { + "pk": "261", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Cyrus Simple Authentication Service Layer (SASL) library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "libsasl", + "arch": 3, + "pkgver": "2.1.22" + } + }, + { + "pk": "262", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A generic library support script", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "libtool", + "arch": 3, + "pkgver": "2.2" + } + }, + { + "pk": "263", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library to enable user space application programs to communicate with USB devices", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "libusb", + "arch": 3, + "pkgver": "0.1.12" + } + }, + { + "pk": "264", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The standard licenses distribution package", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "licenses", + "arch": 3, + "pkgver": "2.3" + } + }, + { + "pk": "265", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A bootloader for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "lilo", + "arch": 3, + "pkgver": "22.8" + } + }, + { + "pk": "266", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A text WWW browser, similar to Lynx", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "links", + "arch": 3, + "pkgver": "2.1pre33" + } + }, + { + "pk": "267", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers and tools to support ATM networking under Linux.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "linux-atm", + "arch": 3, + "pkgver": "2.4.1" + } + }, + { + "pk": "268", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Rotates system logs automatically", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "logrotate", + "arch": 3, + "pkgver": "3.7.5" + } + }, + { + "pk": "269", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Logical Volume Manager 2 utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "lvm2", + "arch": 3, + "pkgver": "2.02.33" + } + }, + { + "pk": "270", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a portable lossless data compression library written in ANSI C", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "lzo2", + "arch": 3, + "pkgver": "2.02" + } + }, + { + "pk": "271", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "m4 macro processor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "m4", + "arch": 3, + "pkgver": "1.4.10" + } + }, + { + "pk": "272", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "madwifi", + "arch": 3, + "pkgver": "0.9.4.3382" + } + }, + { + "pk": "273", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Userspace tools of madwifi drivers for Atheros wireless chipsets.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "madwifi-utils", + "arch": 3, + "pkgver": "0.9.4.3382" + } + }, + { + "pk": "274", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A commandline utility for sending email", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "mailx", + "arch": 3, + "pkgver": "8.1.1" + } + }, + { + "pk": "275", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU make utility to maintain groups of programs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "make", + "arch": 3, + "pkgver": "3.81" + } + }, + { + "pk": "276", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility for reading man pages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "man", + "arch": 3, + "pkgver": "1.6f" + } + }, + { + "pk": "277", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Linux man pages", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "man-pages", + "arch": 3, + "pkgver": "2.79" + } + }, + { + "pk": "278", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A tool for managing\/monitoring Linux md device arrays, also known as Software RAID", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "mdadm", + "arch": 3, + "pkgver": "2.6.4" + } + }, + { + "pk": "279", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Advanced, modular initramfs image creation utility", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "mkinitcpio", + "arch": 3, + "pkgver": "0.5.18.1" + } + }, + { + "pk": "280", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Faster merging drop-in for slocate", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "mlocate", + "arch": 3, + "pkgver": "0.18" + } + }, + { + "pk": "281", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing modules from the Linux kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "module-init-tools", + "arch": 3, + "pkgver": "3.2.2" + } + }, + { + "pk": "282", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "multiple-precision floating-point library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "mpfr", + "arch": 3, + "pkgver": "2.3.1" + } + }, + { + "pk": "283", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Pico editor clone with enhancements", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "nano", + "arch": 3, + "pkgver": "2.0.7" + } + }, + { + "pk": "284", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A System V Release 4.0 curses emulation library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "ncurses", + "arch": 3, + "pkgver": "5.6" + } + }, + { + "pk": "285", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "ndiswrapper", + "arch": 3, + "pkgver": "1.52" + } + }, + { + "pk": "286", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Binaries for ndiswrapper module", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "ndiswrapper-utils", + "arch": 3, + "pkgver": "1.52" + } + }, + { + "pk": "287", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Configuration tools for Linux networking", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "13", + "pkgname": "net-tools", + "arch": 3, + "pkgver": "1.60" + } + }, + { + "pk": "288", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Network configuration and profile scripts", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "netcfg", + "arch": 3, + "pkgver": "2.0.6" + } + }, + { + "pk": "289", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A telnet client (and server)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "7", + "pkgname": "netkit-telnet", + "arch": 3, + "pkgver": "0.17" + } + }, + { + "pk": "290", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Support programs for Network File Systems", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "nfs-utils", + "arch": 3, + "pkgver": "1.1.0" + } + }, + { + "pk": "291", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Library to help mapping IDs, mainly for NFSv4", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "nfsidmap", + "arch": 3, + "pkgver": "0.20" + } + }, + { + "pk": "292", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Third generation Linux NTFS driver", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "ntfs-3g", + "arch": 3, + "pkgver": "1.2310" + } + }, + { + "pk": "293", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "NTFS Resizing Tool", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "ntfsprogs", + "arch": 3, + "pkgver": "2.0.0" + } + }, + { + "pk": "294", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A Secure SHell server\/client", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "openssh", + "arch": 3, + "pkgver": "4.7p1" + } + }, + { + "pk": "295", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The Open Source toolkit for Secure Sockets Layer and Transport Layer Security", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "openssl", + "arch": 3, + "pkgver": "0.9.8g" + } + }, + { + "pk": "296", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Open Source implementation of IPsec for the Linux operating system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "openswan", + "arch": 3, + "pkgver": "2.4.11" + } + }, + { + "pk": "297", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "openvpn", + "arch": 3, + "pkgver": "2.0.9" + } + }, + { + "pk": "298", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library-based package manager with dependency support", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "pacman", + "arch": 3, + "pkgver": "3.1.4" + } + }, + { + "pk": "299", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "PAM (Pluggable Authentication Modules) library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "pam", + "arch": 3, + "pkgver": "0.99.9.0" + } + }, + { + "pk": "300", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility to apply patch files to original sources", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "patch", + "arch": 3, + "pkgver": "2.5.4" + } + }, + { + "pk": "301", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "PCI bus configuration space access library and tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "pciutils", + "arch": 3, + "pkgver": "2.2.8" + } + }, + { + "pk": "302", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for inserting and removing PCMCIA cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "pcmciautils", + "arch": 3, + "pkgver": "014" + } + }, + { + "pk": "303", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A library that implements Perl 5-style regular expressions", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "pcre", + "arch": 3, + "pkgver": "7.6" + } + }, + { + "pk": "304", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Practical Extraction and Report Language", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "perl", + "arch": 3, + "pkgver": "5.10.0" + } + }, + { + "pk": "305", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A system for managing library compile\/link flags", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "pkgconfig", + "arch": 3, + "pkgver": "0.22" + } + }, + { + "pk": "306", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A commandline option parser", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "popt", + "arch": 3, + "pkgver": "1.10.6" + } + }, + { + "pk": "307", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "RPC connection manager", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "portmap", + "arch": 3, + "pkgver": "6.0" + } + }, + { + "pk": "308", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A daemon which implements the PPP protocol for dial-up networking", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "6", + "pkgname": "ppp", + "arch": 3, + "pkgver": "2.4.4" + } + }, + { + "pk": "309", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "pptpclient", + "arch": 3, + "pkgver": "1.7.1" + } + }, + { + "pk": "310", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Displays useful information from \/proc", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "procinfo", + "arch": 3, + "pkgver": "19" + } + }, + { + "pk": "311", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities for monitoring your system and processes on your system", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "procps", + "arch": 3, + "pkgver": "3.2.7" + } + }, + { + "pk": "312", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Miscellaneous procfs tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "psmisc", + "arch": 3, + "pkgver": "22.6" + } + }, + { + "pk": "313", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU readline library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "7", + "pkgname": "readline", + "arch": 3, + "pkgver": "5.2" + } + }, + { + "pk": "314", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Reiserfs utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "reiserfsprogs", + "arch": 3, + "pkgver": "3.6.20" + } + }, + { + "pk": "315", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Roaring Penguin's Point-to-Point Protocol over Ethernet client", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "rp-pppoe", + "arch": 3, + "pkgver": "3.8" + } + }, + { + "pk": "316", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Drivers for rt2500 chipset wireless cards", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "21", + "pkgname": "rt2500", + "arch": 3, + "pkgver": "1.1.0_B4" + } + }, + { + "pk": "317", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the rt2x00 wireless drivers", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "rt2x00-rt61-fw", + "arch": 3, + "pkgver": "1.2" + } + }, + { + "pk": "318", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the rt2x00 wireless drivers", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "rt2x00-rt71w-fw", + "arch": 3, + "pkgver": "1.8" + } + }, + { + "pk": "319", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "An utility similar to hdparm but for SCSI devices", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "sdparm", + "arch": 3, + "pkgver": "1.02" + } + }, + { + "pk": "320", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "GNU stream editor", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "sed", + "arch": 3, + "pkgver": "4.1.5" + } + }, + { + "pk": "321", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Shadow password file utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "shadow", + "arch": 3, + "pkgver": "4.0.18.2" + } + }, + { + "pk": "322", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Give certain users the ability to run some commands as root", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "sudo", + "arch": 3, + "pkgver": "1.6.9p12" + } + }, + { + "pk": "323", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "System Utilities Based on Sysfs", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "sysfsutils", + "arch": 3, + "pkgver": "2.1.0" + } + }, + { + "pk": "324", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Next-generation syslogd with advanced networking and filtering capabilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "syslog-ng", + "arch": 3, + "pkgver": "2.0.6" + } + }, + { + "pk": "325", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Linux System V Init", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "sysvinit", + "arch": 3, + "pkgver": "2.86" + } + }, + { + "pk": "326", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utility used to store, backup, and transport files", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "tar", + "arch": 3, + "pkgver": "1.19" + } + }, + { + "pk": "327", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Monitors and Controls incoming TCP connections", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "8", + "pkgname": "tcp_wrappers", + "arch": 3, + "pkgver": "7.6" + } + }, + { + "pk": "328", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "texinfo", + "arch": 3, + "pkgver": "4.11" + } + }, + { + "pk": "329", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "OpenSource module for Texas Instruments ACX100\/ACX111 wireless chips. For stock arch 2.6 kernel", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "tiacx", + "arch": 3, + "pkgver": "20080210" + } + }, + { + "pk": "330", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for Texas Instruments ACX100\/ACX111 wireless chips.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "tiacx-firmware", + "arch": 3, + "pkgver": "2" + } + }, + { + "pk": "331", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Sources for time zone and daylight saving time data", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "tzdata", + "arch": 3, + "pkgver": "2008b" + } + }, + { + "pk": "332", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "The userspace dev tools (udev)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "udev", + "arch": 3, + "pkgver": "119" + } + }, + { + "pk": "333", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "USB Device Utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "5", + "pkgname": "usbutils", + "arch": 3, + "pkgver": "0.73" + } + }, + { + "pk": "334", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Miscellaneous system utilities for Linux", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "util-linux-ng", + "arch": 3, + "pkgver": "2.13.0.1" + } + }, + { + "pk": "335", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "a highly configurable, improved version of the vi text editor (basic version)", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "vi", + "arch": 3, + "pkgver": "7.1.267" + } + }, + { + "pk": "336", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "VPN client for cisco3000 VPN Concentrators", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "vpnc", + "arch": 3, + "pkgver": "0.5.1" + } + }, + { + "pk": "337", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A network utility to retrieve files from the Web", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "wget", + "arch": 3, + "pkgver": "1.11" + } + }, + { + "pk": "338", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility to show the full path of commands", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "which", + "arch": 3, + "pkgver": "2.19" + } + }, + { + "pk": "339", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Tools", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "wireless_tools", + "arch": 3, + "pkgver": "29" + } + }, + { + "pk": "340", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Lan usb modules. For kernel26.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "15", + "pkgname": "wlan-ng26", + "arch": 3, + "pkgver": "0.2.8" + } + }, + { + "pk": "341", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Wireless Lan userspace tools.", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "wlan-ng26-utils", + "arch": 3, + "pkgver": "0.2.8" + } + }, + { + "pk": "342", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A utility providing key negotiation for WPA wireless networks", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "wpa_supplicant", + "arch": 3, + "pkgver": "0.5.10" + } + }, + { + "pk": "343", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "XFS filesystem utilities", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "1", + "pkgname": "xfsprogs", + "arch": 3, + "pkgver": "2.9.7" + } + }, + { + "pk": "344", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "xinetd is a secure replacement for inetd", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "3", + "pkgname": "xinetd", + "arch": 3, + "pkgver": "2.3.14" + } + }, + { + "pk": "345", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "Firmware for the in-kernel26 zd1211rw wireless driver", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "2", + "pkgname": "zd1211-firmware", + "arch": 3, + "pkgver": "1.4" + } + }, + { + "pk": "346", + "model": "main.package", + "fields": { + "maintainer": 1, + "pkgdesc": "A compression\/decompression Library", + "url": "", + "needupdate": 0, + "last_update": "2008-04-18 03:03:05", + "repo": 1, + "pkgrel": "4", + "pkgname": "zlib", + "arch": 3, + "pkgver": "1.2.3" + } + }, + { + "pk": "1", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 1 + } + }, + { + "pk": "2", + "model": "main.packagedepend", + "fields": { + "depname": "rsync", + "depvcmp": "", + "pkg": 1 + } + }, + { + "pk": "3", + "model": "main.packagedepend", + "fields": { + "depname": "attr", + "depvcmp": ">=2.4.41", + "pkg": 2 + } + }, + { + "pk": "4", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.4-1", + "pkg": 3 + } + }, + { + "pk": "5", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<2.6.25", + "pkg": 3 + } + }, + { + "pk": "6", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 4 + } + }, + { + "pk": "7", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 5 + } + }, + { + "pk": "8", + "model": "main.packagedepend", + "fields": { + "depname": "m4", + "depvcmp": "", + "pkg": 5 + } + }, + { + "pk": "9", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 5 + } + }, + { + "pk": "10", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 5 + } + }, + { + "pk": "11", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 6 + } + }, + { + "pk": "12", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 6 + } + }, + { + "pk": "13", + "model": "main.packagedepend", + "fields": { + "depname": "readline", + "depvcmp": ">=5.2", + "pkg": 7 + } + }, + { + "pk": "14", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 7 + } + }, + { + "pk": "15", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 8 + } + }, + { + "pk": "16", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 9 + } + }, + { + "pk": "17", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7", + "pkg": 10 + } + }, + { + "pk": "18", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 11 + } + }, + { + "pk": "19", + "model": "main.packagedepend", + "fields": { + "depname": "m4", + "depvcmp": "", + "pkg": 11 + } + }, + { + "pk": "20", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 12 + } + }, + { + "pk": "21", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 13 + } + }, + { + "pk": "22", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 14 + } + }, + { + "pk": "23", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 14 + } + }, + { + "pk": "24", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7-7", + "pkg": 15 + } + }, + { + "pk": "25", + "model": "main.packagedepend", + "fields": { + "depname": "shadow", + "depvcmp": ">=4.0.18.2-2", + "pkg": 15 + } + }, + { + "pk": "26", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": ">=0.99.9.0-2", + "pkg": 15 + } + }, + { + "pk": "27", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": ">=2.2.45-2", + "pkg": 15 + } + }, + { + "pk": "28", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 16 + } + }, + { + "pk": "29", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 17 + } + }, + { + "pk": "30", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 18 + } + }, + { + "pk": "31", + "model": "main.packagedepend", + "fields": { + "depname": "libgcrypt", + "depvcmp": "", + "pkg": 18 + } + }, + { + "pk": "32", + "model": "main.packagedepend", + "fields": { + "depname": "popt", + "depvcmp": "", + "pkg": 18 + } + }, + { + "pk": "33", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 18 + } + }, + { + "pk": "34", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 19 + } + }, + { + "pk": "35", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 19 + } + }, + { + "pk": "36", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 19 + } + }, + { + "pk": "37", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 21 + } + }, + { + "pk": "38", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 21 + } + }, + { + "pk": "39", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 22 + } + }, + { + "pk": "40", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 23 + } + }, + { + "pk": "41", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 24 + } + }, + { + "pk": "42", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 25 + } + }, + { + "pk": "43", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 26 + } + }, + { + "pk": "44", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 27 + } + }, + { + "pk": "45", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 28 + } + }, + { + "pk": "46", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8e", + "pkg": 29 + } + }, + { + "pk": "47", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 30 + } + }, + { + "pk": "48", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 31 + } + }, + { + "pk": "49", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 32 + } + }, + { + "pk": "50", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 33 + } + }, + { + "pk": "51", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 34 + } + }, + { + "pk": "52", + "model": "main.packagedepend", + "fields": { + "depname": "filesystem", + "depvcmp": "", + "pkg": 34 + } + }, + { + "pk": "53", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 34 + } + }, + { + "pk": "54", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 34 + } + }, + { + "pk": "55", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 35 + } + }, + { + "pk": "56", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 35 + } + }, + { + "pk": "57", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 37 + } + }, + { + "pk": "58", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 38 + } + }, + { + "pk": "59", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 38 + } + }, + { + "pk": "60", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 39 + } + }, + { + "pk": "61", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 40 + } + }, + { + "pk": "62", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 40 + } + }, + { + "pk": "63", + "model": "main.packagedepend", + "fields": { + "depname": "binutils", + "depvcmp": ">=2.18-3", + "pkg": 41 + } + }, + { + "pk": "64", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": ">=4.3.0", + "pkg": 41 + } + }, + { + "pk": "65", + "model": "main.packagedepend", + "fields": { + "depname": "mpfr", + "depvcmp": ">=2.3.1", + "pkg": 41 + } + }, + { + "pk": "66", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7", + "pkg": 42 + } + }, + { + "pk": "67", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 43 + } + }, + { + "pk": "68", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 44 + } + }, + { + "pk": "69", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 45 + } + }, + { + "pk": "70", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": "", + "pkg": 45 + } + }, + { + "pk": "71", + "model": "main.packagedepend", + "fields": { + "depname": "pcre", + "depvcmp": ">=7.6-3", + "pkg": 46 + } + }, + { + "pk": "72", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 47 + } + }, + { + "pk": "73", + "model": "main.packagedepend", + "fields": { + "depname": "kernel-headers", + "depvcmp": ">=2.6.24.3", + "pkg": 47 + } + }, + { + "pk": "74", + "model": "main.packagedepend", + "fields": { + "depname": "tzdata", + "depvcmp": "", + "pkg": 47 + } + }, + { + "pk": "75", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 48 + } + }, + { + "pk": "76", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 49 + } + }, + { + "pk": "77", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 50 + } + }, + { + "pk": "78", + "model": "main.packagedepend", + "fields": { + "depname": "pcre", + "depvcmp": "", + "pkg": 50 + } + }, + { + "pk": "79", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 51 + } + }, + { + "pk": "80", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 51 + } + }, + { + "pk": "81", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 52 + } + }, + { + "pk": "82", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 52 + } + }, + { + "pk": "83", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 52 + } + }, + { + "pk": "84", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 53 + } + }, + { + "pk": "85", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 53 + } + }, + { + "pk": "86", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 54 + } + }, + { + "pk": "87", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 55 + } + }, + { + "pk": "88", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 55 + } + }, + { + "pk": "89", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 55 + } + }, + { + "pk": "90", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 56 + } + }, + { + "pk": "91", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 56 + } + }, + { + "pk": "92", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 56 + } + }, + { + "pk": "93", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 56 + } + }, + { + "pk": "94", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 56 + } + }, + { + "pk": "95", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 57 + } + }, + { + "pk": "96", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "97", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "98", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "99", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "100", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "101", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "102", + "model": "main.packagedepend", + "fields": { + "depname": "udev", + "depvcmp": ">=118", + "pkg": 58 + } + }, + { + "pk": "103", + "model": "main.packagedepend", + "fields": { + "depname": "net-tools", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "104", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 58 + } + }, + { + "pk": "105", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 59 + } + }, + { + "pk": "106", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 60 + } + }, + { + "pk": "107", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 61 + } + }, + { + "pk": "108", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 62 + } + }, + { + "pk": "109", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 63 + } + }, + { + "pk": "110", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 64 + } + }, + { + "pk": "111", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 64 + } + }, + { + "pk": "112", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 64 + } + }, + { + "pk": "113", + "model": "main.packagedepend", + "fields": { + "depname": "ipw3945-ucode", + "depvcmp": "", + "pkg": 64 + } + }, + { + "pk": "114", + "model": "main.packagedepend", + "fields": { + "depname": "ipw3945d", + "depvcmp": "", + "pkg": 64 + } + }, + { + "pk": "115", + "model": "main.packagedepend", + "fields": { + "depname": "udev", + "depvcmp": "", + "pkg": 65 + } + }, + { + "pk": "116", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 66 + } + }, + { + "pk": "117", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 67 + } + }, + { + "pk": "118", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 70 + } + }, + { + "pk": "119", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 71 + } + }, + { + "pk": "120", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 73 + } + }, + { + "pk": "121", + "model": "main.packagedepend", + "fields": { + "depname": "module-init-tools", + "depvcmp": "", + "pkg": 73 + } + }, + { + "pk": "122", + "model": "main.packagedepend", + "fields": { + "depname": "mkinitcpio", + "depvcmp": ">=0.5.18", + "pkg": 73 + } + }, + { + "pk": "123", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 75 + } + }, + { + "pk": "124", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 76 + } + }, + { + "pk": "125", + "model": "main.packagedepend", + "fields": { + "depname": "kbd", + "depvcmp": "", + "pkg": 76 + } + }, + { + "pk": "126", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 77 + } + }, + { + "pk": "127", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 78 + } + }, + { + "pk": "128", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 78 + } + }, + { + "pk": "129", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 79 + } + }, + { + "pk": "130", + "model": "main.packagedepend", + "fields": { + "depname": "file", + "depvcmp": "", + "pkg": 79 + } + }, + { + "pk": "131", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 80 + } + }, + { + "pk": "132", + "model": "main.packagedepend", + "fields": { + "depname": "bzip2", + "depvcmp": "", + "pkg": 80 + } + }, + { + "pk": "133", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": "", + "pkg": 80 + } + }, + { + "pk": "134", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 81 + } + }, + { + "pk": "135", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 82 + } + }, + { + "pk": "136", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 83 + } + }, + { + "pk": "137", + "model": "main.packagedepend", + "fields": { + "depname": "libgpg-error", + "depvcmp": ">=1.6", + "pkg": 84 + } + }, + { + "pk": "138", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 85 + } + }, + { + "pk": "139", + "model": "main.packagedepend", + "fields": { + "depname": "libsasl", + "depvcmp": "", + "pkg": 86 + } + }, + { + "pk": "140", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8f", + "pkg": 86 + } + }, + { + "pk": "141", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 87 + } + }, + { + "pk": "142", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 88 + } + }, + { + "pk": "143", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 89 + } + }, + { + "pk": "144", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 90 + } + }, + { + "pk": "145", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 92 + } + }, + { + "pk": "146", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 92 + } + }, + { + "pk": "147", + "model": "main.packagedepend", + "fields": { + "depname": "bzip2", + "depvcmp": "", + "pkg": 93 + } + }, + { + "pk": "148", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 93 + } + }, + { + "pk": "149", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 93 + } + }, + { + "pk": "150", + "model": "main.packagedepend", + "fields": { + "depname": "gpm", + "depvcmp": "", + "pkg": 93 + } + }, + { + "pk": "151", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 94 + } + }, + { + "pk": "152", + "model": "main.packagedepend", + "fields": { + "depname": "popt", + "depvcmp": "", + "pkg": 95 + } + }, + { + "pk": "153", + "model": "main.packagedepend", + "fields": { + "depname": "cron", + "depvcmp": "", + "pkg": 95 + } + }, + { + "pk": "154", + "model": "main.packagedepend", + "fields": { + "depname": "gzip", + "depvcmp": "", + "pkg": 95 + } + }, + { + "pk": "155", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": ">=1.02.22", + "pkg": 96 + } + }, + { + "pk": "156", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 97 + } + }, + { + "pk": "157", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 98 + } + }, + { + "pk": "158", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 98 + } + }, + { + "pk": "159", + "model": "main.packagedepend", + "fields": { + "depname": "madwifi-utils", + "depvcmp": "", + "pkg": 99 + } + }, + { + "pk": "160", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 99 + } + }, + { + "pk": "161", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 99 + } + }, + { + "pk": "162", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 100 + } + }, + { + "pk": "163", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 101 + } + }, + { + "pk": "164", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 102 + } + }, + { + "pk": "165", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 102 + } + }, + { + "pk": "166", + "model": "main.packagedepend", + "fields": { + "depname": "groff", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "167", + "model": "main.packagedepend", + "fields": { + "depname": "less", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "168", + "model": "main.packagedepend", + "fields": { + "depname": "gzip", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "169", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "170", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "171", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "172", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 103 + } + }, + { + "pk": "173", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 105 + } + }, + { + "pk": "174", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-5", + "pkg": 106 + } + }, + { + "pk": "175", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-extras", + "depvcmp": ">=2.4", + "pkg": 106 + } + }, + { + "pk": "176", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-udev", + "depvcmp": ">=116-3", + "pkg": 106 + } + }, + { + "pk": "177", + "model": "main.packagedepend", + "fields": { + "depname": "gen-init-cpio", + "depvcmp": "", + "pkg": 106 + } + }, + { + "pk": "178", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-module-init-tools", + "depvcmp": "", + "pkg": 106 + } + }, + { + "pk": "179", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 106 + } + }, + { + "pk": "180", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 106 + } + }, + { + "pk": "181", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-kbd", + "depvcmp": "", + "pkg": 106 + } + }, + { + "pk": "182", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 107 + } + }, + { + "pk": "183", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 108 + } + }, + { + "pk": "184", + "model": "main.packagedepend", + "fields": { + "depname": "gmp", + "depvcmp": ">=4.2.2", + "pkg": 109 + } + }, + { + "pk": "185", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 110 + } + }, + { + "pk": "186", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 110 + } + }, + { + "pk": "187", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 111 + } + }, + { + "pk": "188", + "model": "main.packagedepend", + "fields": { + "depname": "ndiswrapper-utils", + "depvcmp": "=1.52", + "pkg": 112 + } + }, + { + "pk": "189", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 112 + } + }, + { + "pk": "190", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 112 + } + }, + { + "pk": "191", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 113 + } + }, + { + "pk": "192", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 113 + } + }, + { + "pk": "193", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 114 + } + }, + { + "pk": "194", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 115 + } + }, + { + "pk": "195", + "model": "main.packagedepend", + "fields": { + "depname": "wpa_supplicant", + "depvcmp": "", + "pkg": 115 + } + }, + { + "pk": "196", + "model": "main.packagedepend", + "fields": { + "depname": "net-tools", + "depvcmp": "", + "pkg": 115 + } + }, + { + "pk": "197", + "model": "main.packagedepend", + "fields": { + "depname": "mktemp", + "depvcmp": "", + "pkg": 115 + } + }, + { + "pk": "198", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 116 + } + }, + { + "pk": "199", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 117 + } + }, + { + "pk": "200", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 117 + } + }, + { + "pk": "201", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 117 + } + }, + { + "pk": "202", + "model": "main.packagedepend", + "fields": { + "depname": "portmap", + "depvcmp": "", + "pkg": 117 + } + }, + { + "pk": "203", + "model": "main.packagedepend", + "fields": { + "depname": "nfsidmap", + "depvcmp": "", + "pkg": 117 + } + }, + { + "pk": "204", + "model": "main.packagedepend", + "fields": { + "depname": "libevent", + "depvcmp": ">=1.3e", + "pkg": 117 + } + }, + { + "pk": "205", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 118 + } + }, + { + "pk": "206", + "model": "main.packagedepend", + "fields": { + "depname": "libldap", + "depvcmp": "", + "pkg": 118 + } + }, + { + "pk": "207", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 119 + } + }, + { + "pk": "208", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 120 + } + }, + { + "pk": "209", + "model": "main.packagedepend", + "fields": { + "depname": "fuse", + "depvcmp": "", + "pkg": 120 + } + }, + { + "pk": "210", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 120 + } + }, + { + "pk": "211", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8g", + "pkg": 121 + } + }, + { + "pk": "212", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 121 + } + }, + { + "pk": "213", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 121 + } + }, + { + "pk": "214", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 121 + } + }, + { + "pk": "215", + "model": "main.packagedepend", + "fields": { + "depname": "heimdal", + "depvcmp": "", + "pkg": 121 + } + }, + { + "pk": "216", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 122 + } + }, + { + "pk": "217", + "model": "main.packagedepend", + "fields": { + "depname": "iproute", + "depvcmp": "", + "pkg": 123 + } + }, + { + "pk": "218", + "model": "main.packagedepend", + "fields": { + "depname": "gmp", + "depvcmp": "", + "pkg": 123 + } + }, + { + "pk": "219", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 123 + } + }, + { + "pk": "220", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 124 + } + }, + { + "pk": "221", + "model": "main.packagedepend", + "fields": { + "depname": "lzo2", + "depvcmp": "", + "pkg": 124 + } + }, + { + "pk": "222", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 125 + } + }, + { + "pk": "223", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 125 + } + }, + { + "pk": "224", + "model": "main.packagedepend", + "fields": { + "depname": "libarchive", + "depvcmp": ">=2.4.17", + "pkg": 125 + } + }, + { + "pk": "225", + "model": "main.packagedepend", + "fields": { + "depname": "libdownload", + "depvcmp": ">=1.3", + "pkg": 125 + } + }, + { + "pk": "226", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 126 + } + }, + { + "pk": "227", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 126 + } + }, + { + "pk": "228", + "model": "main.packagedepend", + "fields": { + "depname": "cracklib", + "depvcmp": "", + "pkg": 126 + } + }, + { + "pk": "229", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 127 + } + }, + { + "pk": "230", + "model": "main.packagedepend", + "fields": { + "depname": "ed", + "depvcmp": "", + "pkg": 127 + } + }, + { + "pk": "231", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 128 + } + }, + { + "pk": "232", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 129 + } + }, + { + "pk": "233", + "model": "main.packagedepend", + "fields": { + "depname": "sysfsutils", + "depvcmp": "", + "pkg": 129 + } + }, + { + "pk": "234", + "model": "main.packagedepend", + "fields": { + "depname": "module-init-tools", + "depvcmp": ">=3.2pre9", + "pkg": 129 + } + }, + { + "pk": "235", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 130 + } + }, + { + "pk": "236", + "model": "main.packagedepend", + "fields": { + "depname": "gdbm", + "depvcmp": "", + "pkg": 131 + } + }, + { + "pk": "237", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 131 + } + }, + { + "pk": "238", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 131 + } + }, + { + "pk": "239", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 131 + } + }, + { + "pk": "240", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 131 + } + }, + { + "pk": "241", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 132 + } + }, + { + "pk": "242", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 133 + } + }, + { + "pk": "243", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 134 + } + }, + { + "pk": "244", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 135 + } + }, + { + "pk": "245", + "model": "main.packagedepend", + "fields": { + "depname": "libpcap", + "depvcmp": ">=0.9.8", + "pkg": 135 + } + }, + { + "pk": "246", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 136 + } + }, + { + "pk": "247", + "model": "main.packagedepend", + "fields": { + "depname": "ppp", + "depvcmp": "", + "pkg": 136 + } + }, + { + "pk": "248", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 137 + } + }, + { + "pk": "249", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 137 + } + }, + { + "pk": "250", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 137 + } + }, + { + "pk": "251", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 138 + } + }, + { + "pk": "252", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 139 + } + }, + { + "pk": "253", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 139 + } + }, + { + "pk": "254", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 140 + } + }, + { + "pk": "255", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 140 + } + }, + { + "pk": "256", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 141 + } + }, + { + "pk": "257", + "model": "main.packagedepend", + "fields": { + "depname": "ppp", + "depvcmp": "", + "pkg": 142 + } + }, + { + "pk": "258", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 143 + } + }, + { + "pk": "259", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 143 + } + }, + { + "pk": "260", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 146 + } + }, + { + "pk": "261", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 147 + } + }, + { + "pk": "262", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 148 + } + }, + { + "pk": "263", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 149 + } + }, + { + "pk": "264", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 149 + } + }, + { + "pk": "265", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 150 + } + }, + { + "pk": "266", + "model": "main.packagedepend", + "fields": { + "depname": "logrotate", + "depvcmp": "", + "pkg": 151 + } + }, + { + "pk": "267", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 151 + } + }, + { + "pk": "268", + "model": "main.packagedepend", + "fields": { + "depname": "shadow", + "depvcmp": "", + "pkg": 152 + } + }, + { + "pk": "269", + "model": "main.packagedepend", + "fields": { + "depname": "util-linux", + "depvcmp": "", + "pkg": 152 + } + }, + { + "pk": "270", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 152 + } + }, + { + "pk": "271", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 152 + } + }, + { + "pk": "272", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 152 + } + }, + { + "pk": "273", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 153 + } + }, + { + "pk": "274", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 153 + } + }, + { + "pk": "275", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 154 + } + }, + { + "pk": "276", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 154 + } + }, + { + "pk": "277", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 155 + } + }, + { + "pk": "278", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 156 + } + }, + { + "pk": "279", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 156 + } + }, + { + "pk": "280", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<2.6.25", + "pkg": 156 + } + }, + { + "pk": "281", + "model": "main.packagedepend", + "fields": { + "depname": "tiacx-firmware", + "depvcmp": "", + "pkg": 156 + } + }, + { + "pk": "282", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 159 + } + }, + { + "pk": "283", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 159 + } + }, + { + "pk": "284", + "model": "main.packagedepend", + "fields": { + "depname": "util-linux", + "depvcmp": "", + "pkg": 159 + } + }, + { + "pk": "285", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 160 + } + }, + { + "pk": "286", + "model": "main.packagedepend", + "fields": { + "depname": "libusb", + "depvcmp": "", + "pkg": 160 + } + }, + { + "pk": "287", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 161 + } + }, + { + "pk": "288", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 161 + } + }, + { + "pk": "289", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 161 + } + }, + { + "pk": "290", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 161 + } + }, + { + "pk": "291", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 162 + } + }, + { + "pk": "292", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 162 + } + }, + { + "pk": "293", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 162 + } + }, + { + "pk": "294", + "model": "main.packagedepend", + "fields": { + "depname": "libgcrypt", + "depvcmp": "", + "pkg": 163 + } + }, + { + "pk": "295", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 163 + } + }, + { + "pk": "296", + "model": "main.packagedepend", + "fields": { + "depname": "iproute", + "depvcmp": "", + "pkg": 163 + } + }, + { + "pk": "297", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 164 + } + }, + { + "pk": "298", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 164 + } + }, + { + "pk": "299", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 165 + } + }, + { + "pk": "300", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 166 + } + }, + { + "pk": "301", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 167 + } + }, + { + "pk": "302", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 167 + } + }, + { + "pk": "303", + "model": "main.packagedepend", + "fields": { + "depname": "wlan-ng26-utils", + "depvcmp": "", + "pkg": 167 + } + }, + { + "pk": "304", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 168 + } + }, + { + "pk": "305", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 168 + } + }, + { + "pk": "306", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 169 + } + }, + { + "pk": "307", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 170 + } + }, + { + "pk": "308", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 171 + } + }, + { + "pk": "309", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 171 + } + }, + { + "pk": "310", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 173 + } + }, + { + "pk": "311", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 174 + } + }, + { + "pk": "312", + "model": "main.packagedepend", + "fields": { + "depname": "rsync", + "depvcmp": "", + "pkg": 174 + } + }, + { + "pk": "313", + "model": "main.packagedepend", + "fields": { + "depname": "attr", + "depvcmp": ">=2.4.41", + "pkg": 175 + } + }, + { + "pk": "314", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.4-1", + "pkg": 176 + } + }, + { + "pk": "315", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<2.6.25", + "pkg": 176 + } + }, + { + "pk": "316", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 177 + } + }, + { + "pk": "317", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 178 + } + }, + { + "pk": "318", + "model": "main.packagedepend", + "fields": { + "depname": "m4", + "depvcmp": "", + "pkg": 178 + } + }, + { + "pk": "319", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 178 + } + }, + { + "pk": "320", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 178 + } + }, + { + "pk": "321", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 179 + } + }, + { + "pk": "322", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 179 + } + }, + { + "pk": "323", + "model": "main.packagedepend", + "fields": { + "depname": "readline", + "depvcmp": ">=5.2", + "pkg": 180 + } + }, + { + "pk": "324", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 180 + } + }, + { + "pk": "325", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 181 + } + }, + { + "pk": "326", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 182 + } + }, + { + "pk": "327", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7", + "pkg": 183 + } + }, + { + "pk": "328", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 184 + } + }, + { + "pk": "329", + "model": "main.packagedepend", + "fields": { + "depname": "m4", + "depvcmp": "", + "pkg": 184 + } + }, + { + "pk": "330", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 185 + } + }, + { + "pk": "331", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 186 + } + }, + { + "pk": "332", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 187 + } + }, + { + "pk": "333", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 187 + } + }, + { + "pk": "334", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7-7", + "pkg": 188 + } + }, + { + "pk": "335", + "model": "main.packagedepend", + "fields": { + "depname": "shadow", + "depvcmp": ">=4.0.18.2-2", + "pkg": 188 + } + }, + { + "pk": "336", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": ">=0.99.9.0-2", + "pkg": 188 + } + }, + { + "pk": "337", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": ">=2.2.45-2", + "pkg": 188 + } + }, + { + "pk": "338", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 189 + } + }, + { + "pk": "339", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 190 + } + }, + { + "pk": "340", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 191 + } + }, + { + "pk": "341", + "model": "main.packagedepend", + "fields": { + "depname": "libgcrypt", + "depvcmp": "", + "pkg": 191 + } + }, + { + "pk": "342", + "model": "main.packagedepend", + "fields": { + "depname": "popt", + "depvcmp": "", + "pkg": 191 + } + }, + { + "pk": "343", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 191 + } + }, + { + "pk": "344", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 192 + } + }, + { + "pk": "345", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 192 + } + }, + { + "pk": "346", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 192 + } + }, + { + "pk": "347", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 194 + } + }, + { + "pk": "348", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 194 + } + }, + { + "pk": "349", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 195 + } + }, + { + "pk": "350", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 196 + } + }, + { + "pk": "351", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 197 + } + }, + { + "pk": "352", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 198 + } + }, + { + "pk": "353", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 199 + } + }, + { + "pk": "354", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 200 + } + }, + { + "pk": "355", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 201 + } + }, + { + "pk": "356", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8e", + "pkg": 202 + } + }, + { + "pk": "357", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 203 + } + }, + { + "pk": "358", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 204 + } + }, + { + "pk": "359", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 205 + } + }, + { + "pk": "360", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 206 + } + }, + { + "pk": "361", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 207 + } + }, + { + "pk": "362", + "model": "main.packagedepend", + "fields": { + "depname": "filesystem", + "depvcmp": "", + "pkg": 207 + } + }, + { + "pk": "363", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 207 + } + }, + { + "pk": "364", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 207 + } + }, + { + "pk": "365", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 208 + } + }, + { + "pk": "366", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 208 + } + }, + { + "pk": "367", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 210 + } + }, + { + "pk": "368", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 211 + } + }, + { + "pk": "369", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 211 + } + }, + { + "pk": "370", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 212 + } + }, + { + "pk": "371", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 213 + } + }, + { + "pk": "372", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 213 + } + }, + { + "pk": "373", + "model": "main.packagedepend", + "fields": { + "depname": "binutils", + "depvcmp": ">=2.18-3", + "pkg": 214 + } + }, + { + "pk": "374", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": ">=4.3.0", + "pkg": 214 + } + }, + { + "pk": "375", + "model": "main.packagedepend", + "fields": { + "depname": "mpfr", + "depvcmp": ">=2.3.1", + "pkg": 214 + } + }, + { + "pk": "376", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": ">=2.7", + "pkg": 215 + } + }, + { + "pk": "377", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 216 + } + }, + { + "pk": "378", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 217 + } + }, + { + "pk": "379", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 218 + } + }, + { + "pk": "380", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": "", + "pkg": 218 + } + }, + { + "pk": "381", + "model": "main.packagedepend", + "fields": { + "depname": "pcre", + "depvcmp": ">=7.6-3", + "pkg": 219 + } + }, + { + "pk": "382", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 220 + } + }, + { + "pk": "383", + "model": "main.packagedepend", + "fields": { + "depname": "kernel-headers", + "depvcmp": ">=2.6.24.3", + "pkg": 220 + } + }, + { + "pk": "384", + "model": "main.packagedepend", + "fields": { + "depname": "tzdata", + "depvcmp": "", + "pkg": 220 + } + }, + { + "pk": "385", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 221 + } + }, + { + "pk": "386", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 222 + } + }, + { + "pk": "387", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 223 + } + }, + { + "pk": "388", + "model": "main.packagedepend", + "fields": { + "depname": "pcre", + "depvcmp": "", + "pkg": 223 + } + }, + { + "pk": "389", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 224 + } + }, + { + "pk": "390", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 224 + } + }, + { + "pk": "391", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 225 + } + }, + { + "pk": "392", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 225 + } + }, + { + "pk": "393", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 225 + } + }, + { + "pk": "394", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 226 + } + }, + { + "pk": "395", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 226 + } + }, + { + "pk": "396", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 227 + } + }, + { + "pk": "397", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 228 + } + }, + { + "pk": "398", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 228 + } + }, + { + "pk": "399", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 228 + } + }, + { + "pk": "400", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 229 + } + }, + { + "pk": "401", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 229 + } + }, + { + "pk": "402", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 229 + } + }, + { + "pk": "403", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 229 + } + }, + { + "pk": "404", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 229 + } + }, + { + "pk": "405", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 230 + } + }, + { + "pk": "406", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "407", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "408", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "409", + "model": "main.packagedepend", + "fields": { + "depname": "grep", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "410", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "411", + "model": "main.packagedepend", + "fields": { + "depname": "sed", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "412", + "model": "main.packagedepend", + "fields": { + "depname": "udev", + "depvcmp": ">=118", + "pkg": 231 + } + }, + { + "pk": "413", + "model": "main.packagedepend", + "fields": { + "depname": "net-tools", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "414", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 231 + } + }, + { + "pk": "415", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 232 + } + }, + { + "pk": "416", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 233 + } + }, + { + "pk": "417", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 234 + } + }, + { + "pk": "418", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 235 + } + }, + { + "pk": "419", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 236 + } + }, + { + "pk": "420", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 237 + } + }, + { + "pk": "421", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 237 + } + }, + { + "pk": "422", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 237 + } + }, + { + "pk": "423", + "model": "main.packagedepend", + "fields": { + "depname": "ipw3945-ucode", + "depvcmp": "", + "pkg": 237 + } + }, + { + "pk": "424", + "model": "main.packagedepend", + "fields": { + "depname": "ipw3945d", + "depvcmp": "", + "pkg": 237 + } + }, + { + "pk": "425", + "model": "main.packagedepend", + "fields": { + "depname": "udev", + "depvcmp": "", + "pkg": 238 + } + }, + { + "pk": "426", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 239 + } + }, + { + "pk": "427", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 240 + } + }, + { + "pk": "428", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 243 + } + }, + { + "pk": "429", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 244 + } + }, + { + "pk": "430", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 246 + } + }, + { + "pk": "431", + "model": "main.packagedepend", + "fields": { + "depname": "module-init-tools", + "depvcmp": "", + "pkg": 246 + } + }, + { + "pk": "432", + "model": "main.packagedepend", + "fields": { + "depname": "mkinitcpio", + "depvcmp": ">=0.5.18", + "pkg": 246 + } + }, + { + "pk": "433", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 248 + } + }, + { + "pk": "434", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 249 + } + }, + { + "pk": "435", + "model": "main.packagedepend", + "fields": { + "depname": "kbd", + "depvcmp": "", + "pkg": 249 + } + }, + { + "pk": "436", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 250 + } + }, + { + "pk": "437", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 251 + } + }, + { + "pk": "438", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-4", + "pkg": 251 + } + }, + { + "pk": "439", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 252 + } + }, + { + "pk": "440", + "model": "main.packagedepend", + "fields": { + "depname": "file", + "depvcmp": "", + "pkg": 252 + } + }, + { + "pk": "441", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 253 + } + }, + { + "pk": "442", + "model": "main.packagedepend", + "fields": { + "depname": "bzip2", + "depvcmp": "", + "pkg": 253 + } + }, + { + "pk": "443", + "model": "main.packagedepend", + "fields": { + "depname": "acl", + "depvcmp": "", + "pkg": 253 + } + }, + { + "pk": "444", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 254 + } + }, + { + "pk": "445", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 255 + } + }, + { + "pk": "446", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 256 + } + }, + { + "pk": "447", + "model": "main.packagedepend", + "fields": { + "depname": "libgpg-error", + "depvcmp": ">=1.6", + "pkg": 257 + } + }, + { + "pk": "448", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 258 + } + }, + { + "pk": "449", + "model": "main.packagedepend", + "fields": { + "depname": "libsasl", + "depvcmp": "", + "pkg": 259 + } + }, + { + "pk": "450", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8f", + "pkg": 259 + } + }, + { + "pk": "451", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 260 + } + }, + { + "pk": "452", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 261 + } + }, + { + "pk": "453", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 262 + } + }, + { + "pk": "454", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 263 + } + }, + { + "pk": "455", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": "", + "pkg": 265 + } + }, + { + "pk": "456", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 265 + } + }, + { + "pk": "457", + "model": "main.packagedepend", + "fields": { + "depname": "bzip2", + "depvcmp": "", + "pkg": 266 + } + }, + { + "pk": "458", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 266 + } + }, + { + "pk": "459", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 266 + } + }, + { + "pk": "460", + "model": "main.packagedepend", + "fields": { + "depname": "gpm", + "depvcmp": "", + "pkg": 266 + } + }, + { + "pk": "461", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 267 + } + }, + { + "pk": "462", + "model": "main.packagedepend", + "fields": { + "depname": "popt", + "depvcmp": "", + "pkg": 268 + } + }, + { + "pk": "463", + "model": "main.packagedepend", + "fields": { + "depname": "cron", + "depvcmp": "", + "pkg": 268 + } + }, + { + "pk": "464", + "model": "main.packagedepend", + "fields": { + "depname": "gzip", + "depvcmp": "", + "pkg": 268 + } + }, + { + "pk": "465", + "model": "main.packagedepend", + "fields": { + "depname": "device-mapper", + "depvcmp": ">=1.02.22", + "pkg": 269 + } + }, + { + "pk": "466", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 270 + } + }, + { + "pk": "467", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 271 + } + }, + { + "pk": "468", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 271 + } + }, + { + "pk": "469", + "model": "main.packagedepend", + "fields": { + "depname": "madwifi-utils", + "depvcmp": "", + "pkg": 272 + } + }, + { + "pk": "470", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 272 + } + }, + { + "pk": "471", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 272 + } + }, + { + "pk": "472", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 273 + } + }, + { + "pk": "473", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 274 + } + }, + { + "pk": "474", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 275 + } + }, + { + "pk": "475", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 275 + } + }, + { + "pk": "476", + "model": "main.packagedepend", + "fields": { + "depname": "groff", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "477", + "model": "main.packagedepend", + "fields": { + "depname": "less", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "478", + "model": "main.packagedepend", + "fields": { + "depname": "gzip", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "479", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "480", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "481", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "482", + "model": "main.packagedepend", + "fields": { + "depname": "diffutils", + "depvcmp": "", + "pkg": 276 + } + }, + { + "pk": "483", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 278 + } + }, + { + "pk": "484", + "model": "main.packagedepend", + "fields": { + "depname": "klibc", + "depvcmp": ">=1.5-5", + "pkg": 279 + } + }, + { + "pk": "485", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-extras", + "depvcmp": ">=2.4", + "pkg": 279 + } + }, + { + "pk": "486", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-udev", + "depvcmp": ">=116-3", + "pkg": 279 + } + }, + { + "pk": "487", + "model": "main.packagedepend", + "fields": { + "depname": "gen-init-cpio", + "depvcmp": "", + "pkg": 279 + } + }, + { + "pk": "488", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-module-init-tools", + "depvcmp": "", + "pkg": 279 + } + }, + { + "pk": "489", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 279 + } + }, + { + "pk": "490", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 279 + } + }, + { + "pk": "491", + "model": "main.packagedepend", + "fields": { + "depname": "klibc-kbd", + "depvcmp": "", + "pkg": 279 + } + }, + { + "pk": "492", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 280 + } + }, + { + "pk": "493", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 281 + } + }, + { + "pk": "494", + "model": "main.packagedepend", + "fields": { + "depname": "gmp", + "depvcmp": ">=4.2.2", + "pkg": 282 + } + }, + { + "pk": "495", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 283 + } + }, + { + "pk": "496", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 283 + } + }, + { + "pk": "497", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 284 + } + }, + { + "pk": "498", + "model": "main.packagedepend", + "fields": { + "depname": "ndiswrapper-utils", + "depvcmp": "=1.52", + "pkg": 285 + } + }, + { + "pk": "499", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 285 + } + }, + { + "pk": "500", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 285 + } + }, + { + "pk": "501", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 286 + } + }, + { + "pk": "502", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 286 + } + }, + { + "pk": "503", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 287 + } + }, + { + "pk": "504", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 288 + } + }, + { + "pk": "505", + "model": "main.packagedepend", + "fields": { + "depname": "wpa_supplicant", + "depvcmp": "", + "pkg": 288 + } + }, + { + "pk": "506", + "model": "main.packagedepend", + "fields": { + "depname": "net-tools", + "depvcmp": "", + "pkg": 288 + } + }, + { + "pk": "507", + "model": "main.packagedepend", + "fields": { + "depname": "mktemp", + "depvcmp": "", + "pkg": 288 + } + }, + { + "pk": "508", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 289 + } + }, + { + "pk": "509", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 290 + } + }, + { + "pk": "510", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 290 + } + }, + { + "pk": "511", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 290 + } + }, + { + "pk": "512", + "model": "main.packagedepend", + "fields": { + "depname": "portmap", + "depvcmp": "", + "pkg": 290 + } + }, + { + "pk": "513", + "model": "main.packagedepend", + "fields": { + "depname": "nfsidmap", + "depvcmp": "", + "pkg": 290 + } + }, + { + "pk": "514", + "model": "main.packagedepend", + "fields": { + "depname": "libevent", + "depvcmp": ">=1.3e", + "pkg": 290 + } + }, + { + "pk": "515", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 291 + } + }, + { + "pk": "516", + "model": "main.packagedepend", + "fields": { + "depname": "libldap", + "depvcmp": "", + "pkg": 291 + } + }, + { + "pk": "517", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 292 + } + }, + { + "pk": "518", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 293 + } + }, + { + "pk": "519", + "model": "main.packagedepend", + "fields": { + "depname": "fuse", + "depvcmp": "", + "pkg": 293 + } + }, + { + "pk": "520", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 293 + } + }, + { + "pk": "521", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": ">=0.9.8g", + "pkg": 294 + } + }, + { + "pk": "522", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 294 + } + }, + { + "pk": "523", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 294 + } + }, + { + "pk": "524", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 294 + } + }, + { + "pk": "525", + "model": "main.packagedepend", + "fields": { + "depname": "heimdal", + "depvcmp": "", + "pkg": 294 + } + }, + { + "pk": "526", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 295 + } + }, + { + "pk": "527", + "model": "main.packagedepend", + "fields": { + "depname": "iproute", + "depvcmp": "", + "pkg": 296 + } + }, + { + "pk": "528", + "model": "main.packagedepend", + "fields": { + "depname": "gmp", + "depvcmp": "", + "pkg": 296 + } + }, + { + "pk": "529", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 296 + } + }, + { + "pk": "530", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 297 + } + }, + { + "pk": "531", + "model": "main.packagedepend", + "fields": { + "depname": "lzo2", + "depvcmp": "", + "pkg": 297 + } + }, + { + "pk": "532", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 298 + } + }, + { + "pk": "533", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 298 + } + }, + { + "pk": "534", + "model": "main.packagedepend", + "fields": { + "depname": "libarchive", + "depvcmp": ">=2.4.17", + "pkg": 298 + } + }, + { + "pk": "535", + "model": "main.packagedepend", + "fields": { + "depname": "libdownload", + "depvcmp": ">=1.3", + "pkg": 298 + } + }, + { + "pk": "536", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 299 + } + }, + { + "pk": "537", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 299 + } + }, + { + "pk": "538", + "model": "main.packagedepend", + "fields": { + "depname": "cracklib", + "depvcmp": "", + "pkg": 299 + } + }, + { + "pk": "539", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 300 + } + }, + { + "pk": "540", + "model": "main.packagedepend", + "fields": { + "depname": "ed", + "depvcmp": "", + "pkg": 300 + } + }, + { + "pk": "541", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 301 + } + }, + { + "pk": "542", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 302 + } + }, + { + "pk": "543", + "model": "main.packagedepend", + "fields": { + "depname": "sysfsutils", + "depvcmp": "", + "pkg": 302 + } + }, + { + "pk": "544", + "model": "main.packagedepend", + "fields": { + "depname": "module-init-tools", + "depvcmp": ">=3.2pre9", + "pkg": 302 + } + }, + { + "pk": "545", + "model": "main.packagedepend", + "fields": { + "depname": "gcc-libs", + "depvcmp": "", + "pkg": 303 + } + }, + { + "pk": "546", + "model": "main.packagedepend", + "fields": { + "depname": "gdbm", + "depvcmp": "", + "pkg": 304 + } + }, + { + "pk": "547", + "model": "main.packagedepend", + "fields": { + "depname": "db", + "depvcmp": ">=4.6", + "pkg": 304 + } + }, + { + "pk": "548", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 304 + } + }, + { + "pk": "549", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 304 + } + }, + { + "pk": "550", + "model": "main.packagedepend", + "fields": { + "depname": "sh", + "depvcmp": "", + "pkg": 304 + } + }, + { + "pk": "551", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 305 + } + }, + { + "pk": "552", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 306 + } + }, + { + "pk": "553", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 307 + } + }, + { + "pk": "554", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 308 + } + }, + { + "pk": "555", + "model": "main.packagedepend", + "fields": { + "depname": "libpcap", + "depvcmp": ">=0.9.8", + "pkg": 308 + } + }, + { + "pk": "556", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 309 + } + }, + { + "pk": "557", + "model": "main.packagedepend", + "fields": { + "depname": "ppp", + "depvcmp": "", + "pkg": 309 + } + }, + { + "pk": "558", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 310 + } + }, + { + "pk": "559", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 310 + } + }, + { + "pk": "560", + "model": "main.packagedepend", + "fields": { + "depname": "perl", + "depvcmp": "", + "pkg": 310 + } + }, + { + "pk": "561", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 311 + } + }, + { + "pk": "562", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 312 + } + }, + { + "pk": "563", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 312 + } + }, + { + "pk": "564", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 313 + } + }, + { + "pk": "565", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 313 + } + }, + { + "pk": "566", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 314 + } + }, + { + "pk": "567", + "model": "main.packagedepend", + "fields": { + "depname": "ppp", + "depvcmp": "", + "pkg": 315 + } + }, + { + "pk": "568", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 316 + } + }, + { + "pk": "569", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 316 + } + }, + { + "pk": "570", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 319 + } + }, + { + "pk": "571", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 320 + } + }, + { + "pk": "572", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 321 + } + }, + { + "pk": "573", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 322 + } + }, + { + "pk": "574", + "model": "main.packagedepend", + "fields": { + "depname": "pam", + "depvcmp": "", + "pkg": 322 + } + }, + { + "pk": "575", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 323 + } + }, + { + "pk": "576", + "model": "main.packagedepend", + "fields": { + "depname": "logrotate", + "depvcmp": "", + "pkg": 324 + } + }, + { + "pk": "577", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 324 + } + }, + { + "pk": "578", + "model": "main.packagedepend", + "fields": { + "depname": "shadow", + "depvcmp": "", + "pkg": 325 + } + }, + { + "pk": "579", + "model": "main.packagedepend", + "fields": { + "depname": "util-linux", + "depvcmp": "", + "pkg": 325 + } + }, + { + "pk": "580", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 325 + } + }, + { + "pk": "581", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 325 + } + }, + { + "pk": "582", + "model": "main.packagedepend", + "fields": { + "depname": "awk", + "depvcmp": "", + "pkg": 325 + } + }, + { + "pk": "583", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 326 + } + }, + { + "pk": "584", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 326 + } + }, + { + "pk": "585", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 327 + } + }, + { + "pk": "586", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 327 + } + }, + { + "pk": "587", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 328 + } + }, + { + "pk": "588", + "model": "main.packagedepend", + "fields": { + "depname": "wireless_tools", + "depvcmp": "", + "pkg": 329 + } + }, + { + "pk": "589", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 329 + } + }, + { + "pk": "590", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<2.6.25", + "pkg": 329 + } + }, + { + "pk": "591", + "model": "main.packagedepend", + "fields": { + "depname": "tiacx-firmware", + "depvcmp": "", + "pkg": 329 + } + }, + { + "pk": "592", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 332 + } + }, + { + "pk": "593", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 332 + } + }, + { + "pk": "594", + "model": "main.packagedepend", + "fields": { + "depname": "util-linux", + "depvcmp": "", + "pkg": 332 + } + }, + { + "pk": "595", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 333 + } + }, + { + "pk": "596", + "model": "main.packagedepend", + "fields": { + "depname": "libusb", + "depvcmp": "", + "pkg": 333 + } + }, + { + "pk": "597", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 334 + } + }, + { + "pk": "598", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 334 + } + }, + { + "pk": "599", + "model": "main.packagedepend", + "fields": { + "depname": "zlib", + "depvcmp": "", + "pkg": 334 + } + }, + { + "pk": "600", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 334 + } + }, + { + "pk": "601", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 335 + } + }, + { + "pk": "602", + "model": "main.packagedepend", + "fields": { + "depname": "ncurses", + "depvcmp": "", + "pkg": 335 + } + }, + { + "pk": "603", + "model": "main.packagedepend", + "fields": { + "depname": "coreutils", + "depvcmp": "", + "pkg": 335 + } + }, + { + "pk": "604", + "model": "main.packagedepend", + "fields": { + "depname": "libgcrypt", + "depvcmp": "", + "pkg": 336 + } + }, + { + "pk": "605", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 336 + } + }, + { + "pk": "606", + "model": "main.packagedepend", + "fields": { + "depname": "iproute", + "depvcmp": "", + "pkg": 336 + } + }, + { + "pk": "607", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 337 + } + }, + { + "pk": "608", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 337 + } + }, + { + "pk": "609", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 338 + } + }, + { + "pk": "610", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 339 + } + }, + { + "pk": "611", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": ">=2.6.24.3-4", + "pkg": 340 + } + }, + { + "pk": "612", + "model": "main.packagedepend", + "fields": { + "depname": "kernel26", + "depvcmp": "<=2.6.25-0", + "pkg": 340 + } + }, + { + "pk": "613", + "model": "main.packagedepend", + "fields": { + "depname": "wlan-ng26-utils", + "depvcmp": "", + "pkg": 340 + } + }, + { + "pk": "614", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 341 + } + }, + { + "pk": "615", + "model": "main.packagedepend", + "fields": { + "depname": "bash", + "depvcmp": "", + "pkg": 341 + } + }, + { + "pk": "616", + "model": "main.packagedepend", + "fields": { + "depname": "openssl", + "depvcmp": "", + "pkg": 342 + } + }, + { + "pk": "617", + "model": "main.packagedepend", + "fields": { + "depname": "e2fsprogs", + "depvcmp": "", + "pkg": 343 + } + }, + { + "pk": "618", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 344 + } + }, + { + "pk": "619", + "model": "main.packagedepend", + "fields": { + "depname": "tcp_wrappers", + "depvcmp": "", + "pkg": 344 + } + }, + { + "pk": "620", + "model": "main.packagedepend", + "fields": { + "depname": "glibc", + "depvcmp": "", + "pkg": 346 + } + } +] diff --git a/lib/markdown.py b/main/markdown.py index d780994f..d780994f 100644 --- a/lib/markdown.py +++ b/main/markdown.py diff --git a/main/middleware.py b/main/middleware.py new file mode 100644 index 00000000..01734f5e --- /dev/null +++ b/main/middleware.py @@ -0,0 +1,52 @@ +### +# Copyright (c) 2006-2007, Jared Kuolt +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the SuperJared.com nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +### + +from django.conf import settings +from django.contrib.auth.views import login +from django.http import HttpResponseRedirect +import re + +class RequireLoginMiddleware(object): + """ + Require Login middleware. If enabled, each Django-powered page will + require authentication. + + If an anonymous user requests a page, he/she is redirected to the login + page set by LOGIN_URL. + """ + def __init__(self): + self.exceptionre = re.compile("(^/media/)|(^/robots.txt)|(^/login/)") + + def process_request(self, request): + if request.user.is_anonymous() and not self.exceptionre.search(request.path): + if request.POST: + return login(request) + else: + return HttpResponseRedirect('%s?next=%s' % (settings.LOGIN_URL, request.path)) + diff --git a/main/models.py b/main/models.py new file mode 100644 index 00000000..bc236296 --- /dev/null +++ b/main/models.py @@ -0,0 +1,298 @@ +from django.db import models +from django.db.models import Q +from django.contrib.auth.models import User +import re + +########################### +### User Profile Class #### +########################### +class UserProfile(models.Model): + id = models.AutoField(primary_key=True) # not technically needed + notify = models.BooleanField( + "Send notifications", + default=True, + help_text="When enabled, send user 'flag out of date' notifications") + alias = models.CharField( + core=True, + maxlength=50, + help_text="Required field") + public_email = models.CharField( + core=True, + maxlength=50, + help_text="Required field") + other_contact = models.CharField(maxlength=100, null=True, blank=True) + website = models.URLField(null=True, blank=True) + yob = models.IntegerField(null=True, blank=True) + location = models.CharField(maxlength=50, null=True, blank=True) + languages = models.CharField(maxlength=50, null=True, blank=True) + interests = models.CharField(maxlength=255, null=True, blank=True) + occupation = models.CharField(maxlength=50, null=True, blank=True) + roles = models.CharField(maxlength=255, null=True, blank=True) + favorite_distros = models.CharField(maxlength=255, null=True, blank=True) + picture = models.FileField(upload_to='devs', default='devs/silhouette.png') + user = models.ForeignKey( + User, related_name='userprofile_user', + edit_inline=models.STACKED, num_in_admin=1, + min_num_in_admin=1, max_num_in_admin=1, + num_extra_on_change=0, unique=True) + class Meta: + db_table = 'user_profiles' + verbose_name = 'Additional Profile Data' + verbose_name_plural = 'Additional Profile Data' + + +####################### +### Manager Classes ### +####################### +class TodolistManager(models.Manager): + def get_incomplete(self): + results = [] + for l in self.all().order_by('-date_added'): + if TodolistPkg.objects.filter(list=l.id).filter( + complete=False).count() > 0: + results.append(l) + return results + +class PackageManager(models.Manager): + def get_flag_stats(self): + results = [] + # first the orphans + noflag = self.filter(maintainer=0).count() + flagged = self.filter(maintainer=0).filter( + needupdate=True).exclude( + repo__name__iexact='testing').count() + results.append( + (User(id=0,first_name='Orphans'), noflag, flagged)) + # now the rest + for maint in User.objects.all().order_by('first_name'): + noflag = self.filter(maintainer=maint.id).count() + flagged = self.filter(maintainer=maint.id).filter( + needupdate=True).exclude( + repo__name__iexact='testing').count() + results.append((maint, noflag, flagged)) + return results + + +############################# +### General Model Classes ### +############################# +class Mirror(models.Model): + id = models.AutoField(primary_key=True) + domain = models.CharField(maxlength=255) + country = models.CharField(maxlength=255) + url = models.CharField(maxlength=255) + protocol_list = models.CharField(maxlength=255, null=True, blank=True) + admin_email = models.CharField(maxlength=255, null=True, blank=True) + def __str__(self): + return self.domain + class Meta: + db_table = 'mirrors' + class Admin: + list_display = ('domain', 'country') + list_filter = ('country',) + ordering = ['domain'] + search_fields = ('domain') + pass + +class Press(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(maxlength=255) + url = models.CharField(maxlength=255) + def __str__(self): + return self.name + class Meta: + db_table = 'press' + verbose_name_plural = 'press' + class Admin: + list_display = ('name', 'url') + ordering = ['name'] + search_fields = ('name') + pass + +class AltForum(models.Model): + id = models.AutoField(primary_key=True) + language = models.CharField(maxlength=255) + url = models.CharField(maxlength=255) + name = models.CharField(maxlength=255) + def __str__(self): + return self.name + class Meta: + db_table = 'alt_forums' + verbose_name = 'AltForum' + class Admin: + list_display = ('language', 'name') + list_filter = ('language',) + ordering = ['name'] + search_fields = ('name') + pass + +class Donor(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(maxlength=255) + def __str__(self): + return self.name + class Meta: + db_table = 'donors' + class Admin: + ordering = ['name'] + search_fields = ('name') + pass + +class News(models.Model): + id = models.AutoField(primary_key=True) + author = models.ForeignKey(User, related_name='news_author') + postdate = models.DateField(auto_now_add=True) + title = models.CharField(maxlength=255) + content = models.TextField() + def __str__(self): + return self.title + class Meta: + db_table = 'news' + verbose_name_plural = 'news' + get_latest_by = 'postdate' + ordering = ['-postdate', '-id'] + + def get_absolute_url(self): + return '/news/%i/' % self.id + +class Arch(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(maxlength=255,unique=True) + def __str__(self): + return self.name + class Meta: + db_table = 'arches' + ordering = ['name'] + verbose_name_plural = 'arches' + class Admin: + pass + +class Repo(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(maxlength=255,unique=True) + def __str__(self): + return self.name + class Meta: + db_table = 'repos' + ordering = ['name'] + verbose_name_plural = 'repos' + class Admin: + pass + +class Package(models.Model): + id = models.AutoField(primary_key=True) + repo = models.ForeignKey(Repo) + arch = models.ForeignKey(Arch) + maintainer = models.ForeignKey(User, related_name='package_maintainer') + needupdate = models.BooleanField(default=False) + pkgname = models.CharField(maxlength=255) + pkgver = models.CharField(maxlength=255) + pkgrel = models.CharField(maxlength=255) + pkgdesc = models.CharField(maxlength=255) + url = models.CharField(maxlength=255) + last_update = models.DateTimeField(null=True, blank=True) + objects = PackageManager() + class Meta: + db_table = 'packages' + get_latest_by = 'last_update' + ordering = ('-last_update',) + + def __str__(self): + return self.pkgname + + def get_absolute_url(self): + return '/packages/%i/' % self.id + + def get_requiredby(self): + """ + Returns a list of package objects. + """ + reqs = [] + requiredby = PackageDepend.objects.filter(depname=self.pkgname).filter( + Q(pkg__arch=self.arch) | Q(pkg__arch__name__iexact='any')) + for req in requiredby: + reqs.append(req.pkg) + ## sort the resultant list. Django has problems in the orm with + ## trying to shoehorn the sorting into the reverse foreign key + ## reference in the query above. :( + reqs.sort(lambda a,b: cmp(a.pkgname,b.pkgname)) + return reqs + + def get_depends(self): + """ + Returns a list of tuples(3). + + Each tuple in the list is one of: + - (packageid, dependname, depend compare string) if a matching + package is found. + - (None, dependname, None) if no matching package is found, eg + it is a virtual dep. + """ + deps = [] + for dep in self.packagedepend_set.order_by('depname'): + # we only need depend on same-arch-packages + pkgs = Package.objects.filter( + Q(arch__name__iexact='any') | Q(arch=self.arch), + pkgname=dep.depname) + if len(pkgs) == 0: + # couldn't find a package in the DB + # it should be a virtual depend (or a removed package) + deps.append({'dep': dep, 'pkg': None}) + continue + else: + for pkg in pkgs: + deps.append({'dep': dep, 'pkg': pkg}) + return deps + +class PackageFile(models.Model): + id = models.AutoField(primary_key=True) + pkg = models.ForeignKey('Package') + path = models.CharField(maxlength=255) + class Meta: + db_table = 'package_files' + +class PackageDepend(models.Model): + id = models.AutoField(primary_key=True) + pkg = models.ForeignKey('Package') + depname = models.CharField(db_index=True, maxlength=255) + depvcmp = models.CharField(maxlength=255) + class Meta: + db_table = 'package_depends' + +class Todolist(models.Model): + id = models.AutoField(primary_key=True) + creator = models.ForeignKey(User, related_name='todolist_creator') + name = models.CharField(maxlength=255) + description = models.TextField() + date_added = models.DateField(auto_now_add=True) + objects = TodolistManager() + def __str__(self): + return self.name + class Meta: + db_table = 'todolists' + +class TodolistPkg(models.Model): + id = models.AutoField(primary_key=True) + list = models.ForeignKey('Todolist') + pkg = models.ForeignKey('Package') + complete = models.BooleanField(default=False) + class Meta: + db_table = 'todolist_pkgs' + unique_together = (('list','pkg'),) + +class Wikipage(models.Model): + """Wiki page storage""" + title = models.CharField(maxlength=255) + content = models.TextField() + last_author = models.ForeignKey(User, related_name='wikipage_last_author') + class Meta: + db_table = 'wikipages' + + def editurl(self): + return "/wiki/edit/" + self.title + "/" + + def __str__(self): + return self.title + +# vim: set ts=4 sw=4 et: + diff --git a/main/tests.py b/main/tests.py new file mode 100644 index 00000000..d0e87729 --- /dev/null +++ b/main/tests.py @@ -0,0 +1,51 @@ +## test cases +from django.test import TestCase +from main.models import Mirror, Press, AltForum, Donor, News +from main.models import Arch, Repo, Package, PackageFile, PackageDepend +from main.models import Todolist, TodolistPkg, Wikipage +from django.contrib.auth.models import User + +class ModelTest(TestCase): + fixtures = ['arches.json', 'repos.json', 'test_packages.json'] + + def setUp(self): + self.user = User(id=1,username='tester',first_name='test', + last_name='user', password='testuser', + is_active=True, is_staff=True) + self.user.save() + self.orphan = User(id=0,first_name='Orphans') + pass + + def testPackageGetDepends(self): + """ + Test the Package object's get_depends() method + """ + p = Package.objects.get(pkgname='abs',arch__name__iexact='i686') + dep1 = {'dep': PackageDepend.objects.get(id=1), + 'pkg': Package.objects.get(id=7)} + dep2 = {'dep': PackageDepend.objects.get(id=2), 'pkg': None} + expected = [dep1, dep2] + results = p.get_depends() + self.failUnlessEqual(results, expected) + del p + + def testPackageGetRequiredBy(self): + """ + Test the Package object's get_requiredby() method + """ + p = Package.objects.get(pkgname='iproute',arch__name__iexact='i686') + expected = [Package.objects.get(id=123),Package.objects.get(id=163)] + results = p.get_requiredby() + self.failUnlessEqual(results, expected) + del p + + def testGetFlagStats(self): + """ + Test the PackageManager get_flag_stats method + """ + results = Package.objects.get_flag_stats() + expected = [(self.orphan, 0L, 0L),(self.user, 346L, 0L)] + self.failUnlessEqual(results, expected) + del results + + diff --git a/lib/utils.py b/main/utils.py index 0813ac22..0813ac22 100644 --- a/lib/utils.py +++ b/main/utils.py diff --git a/media/arch.css b/media/arch.css index ec00eb31..e411ff5e 100644 --- a/media/arch.css +++ b/media/arch.css @@ -269,9 +269,7 @@ table#art { .devpic { vertical-align: top; padding-right: 15px; -} -.devpic img { - padding-top: 25px; + padding-top: 10px; } table.deventry { padding-bottom: 25px; diff --git a/media/jquery.js b/media/jquery.js new file mode 100644 index 00000000..cd439dad --- /dev/null +++ b/media/jquery.js @@ -0,0 +1,14 @@ +/* + * jQuery - Current + * http://jquery.com/ + * + * To use, download this file to your server, save as jquery.js, + * and add this HTML into the <head>...</head> of your web page: + * <script type="text/javascript" src="jquery.js"></script> + * + * Copyright (c) 2006 John Resig + * Licensed under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + */ +/* Built Fri May 12 13:01:23 2006 */ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 $(a,c){8 $a=a||$.14||R;8 $c=c&&c.$4k&&c.1l(0)||c;l(1O 4g!="2r"){l($a.N==1g){8 S=I 1i("[^a-41-6z-6y-]");l(!S.3Z($a)){$c=$c&&$c.2L||R;l($c.2t($a).q==0){8 1m=$c.25($a);l(1m!=C)k 1m}}}H l($a.N==36){k $.1w($a,7(b){l(b.N==1g)k R.25(b);k b})}}8 T={B:$.2d($a,$c),$4k:"$6x: 29 $",1E:7(){k 6.1l().q},1l:7(i){k i==C?6.B:6.B[i]},E:7(f){D(8 i=0;i<6.1E();i++)$.1f(6.1l(i),f,[i]);k 6},3e:7(a,b){k 6.E(7(){l(b==C)D(8 j 1d a)$.W(6,j,a[j]);H $.W(6,a,b)})},3f:7(h){k h==C&&6.1E()?6.1l(0).1Z:6.3e("1Z",h)},2J:7(h){k h==C&&6.1E()?6.1l(0).2R:6.3e("2R",h)},1n:7(a,b){k a.N!=1g||b?6.E(7(){l(!b)D(8 j 1d a)$.W(6.L,j,a[j]);H $.W(6.L,a,b)}):$.1n(6.1l(0),a)},2s:7(){k 6.E(7(){8 d=$.19(6,"V");l(d=="1z"||d==\'\')$(6).1v();H $(6).1u()})},1v:7(a){k 6.E(7(){6.L.V=6.$$2k?6.$$2k:\'\';l($.19(6,"V")=="1z")6.L.V=\'33\'})},1u:7(a){k 6.E(7(){6.$$2k=$.19(6,"V");l(6.$$2k=="1z")6.$$2k=\'33\';6.L.V=\'1z\'})},6w:7(c){k 6.E(7(){l($.2b(6,c))k;6.1j+=(6.1j.q>0?" ":"")+c})},6v:7(c){k 6.E(7(){6.1j=c==C?\'\':6.1j.1x(I 1i(\'(^|\\\\s*\\\\b[^-])\'+c+\'($|\\\\b(?=[^-]))\',\'g\'),\'\')})},6u:7(c){k 6.E(7(){l($.2b(6,c))6.1j=6.1j.1x(I 1i(\'(\\\\s*\\\\b[^-])\'+c+\'($|\\\\b(?=[^-]))\',\'g\'),\'\');H 6.1j+=(6.1j.q>0?" ":"")+c})},6t:7(){6.E(7(){6.U.4h(6)});6.B=[];k 6},6s:7(){8 a=$.1X(1M);k 6.E(7(){8 b=a[0].2j(Q);6.U.2M(b,6);1G(b.1W)b=b.1W;b.4j(6)})},4i:7(){8 1D=6.1E()>1;8 a=$.1X(1M);k 6.E(7(){D(8 i=0;i<a.q;i++)6.4j(1D?a[i].2j(Q):a[i])})},6r:7(){8 a=1M;k 6.E(7(){D(8 i=0;i<a.q;i++)$(a[i]).4i(6)})},6q:7(){8 1D=6.1E()>1;8 a=$.1X(1M);k 6.E(7(){D(8 i=a.q-1;i>=0;i--)6.2M(1D?a[i].2j(Q):a[i],6.1W)})},6p:7(){8 1D=6.1E()>1;8 a=$.1X(1M);k 6.E(7(){D(8 i=0;i<a.q;i++)6.U.2M(1D?a[i].2j(Q):a[i],6)})},6o:7(){8 1D=6.1E()>1;8 a=$.1X(1M);k 6.E(7(){D(8 i=a.q-1;i>=0;i--)6.U.2M(1D?a[i].2j(Q):a[i],6.6n)})},45:7(){k 6.E(7(){1G(6.1W)6.4h(6.1W)})},21:7(t,f){k 6.E(7(){1F(6,t,f)})},3B:7(t,f){k 6.E(7(){35(6,t,f)})},3A:7(t){k 6.E(7(){2U(6,t)})},2Q:7(t){8 1Y=[],F=[];6.E(7(){1Y[1Y.q]=6;F=$.Y(F,$.2d(t,6))});6.1Y=1Y;6.B=F;k 6},6m:7(){6.B=6.1Y;k 6},46:7(a){6.B=$.1w(6.B,7(d){k d.U});l(a)6.B=$.15(a,6.B).r;k 6},38:7(a){6.B=$.1w(6.B,$.38);l(a)6.B=$.15(a,6.B).r;k 6},6l:7(a){6.B=$.1w(6.B,$.12);l(a)6.B=$.15(a,6.B).r;k 6},15:7(t){6.B=$.15(t,6.B).r;k 6},2G:7(t){6.B=t.N==1g?$.15(t,6.B,16).r:$.1S(6.B,7(a){k a!=t});k 6},6k:7(t){6.B=$.Y(6.B,t.N==1g?$.2d(t):t.N==36?t:[t]);k 6},6j:7(t){k $.15(t,6.B).r.q>0},6i:7(t){k!6.s(t)}};D(8 i 1d $.G){l(T[i]!=C)T["1I"+i]=T[i];T[i]=$.G[i]}l(1O 4g!="2r"&&$a.N!=1g){l($c)$a=T.1l();D(8 i 1d T){(7(j){2P{l($a[j]==C){$a[j]=7(){k $.1f(T,T[j],1M)}}}2N(e){}})(i)}k $a}k T}$.1f=7(o,f,a){a=a||[];l(f.1f)k f.1f(o,a);H{8 p=[];D(8 i=0;i<a.q;i++)p[i]=\'a[\'+i+\']\';o.$$1C=6;8 r=2O(\'o.$$1C(\'+p.3i(\',\')+\')\');o.$$1C=C;k r}};$.19=7(e,p){l(p==\'18\'||p==\'1y\'){l($.19(e,"V")!=\'1z\')k p==\'18\'?e.3U||1J(e.L.18):e.3V||1J(e.L.1y);8 1p=e.L;8 4e=1p.2e;8 1A=1p.1P;8 4f=1p.V;1p.2e=\'1q\';1p.1P=\'3S\';1p.V=\'\';8 4d=e.6h||1J(e.L.18);8 4c=e.6g||1J(e.L.1y);1p.V=4f;1p.1P=1A;1p.2e=4e;k p==\'18\'?4d:4c}l(e.L[p])k e.L[p];H l(e.4b)k e.4b[p];H l(R.3d&&R.3d.4a){p=p.1x(/([A-Z])/g,"-$1");p=p.2W();8 s=R.3d.4a(e,"");8 r=s?s.6f(p):p;k r}H k C};$.1n=$.19;$.1X=7(a){8 r=[];D(8 i=0;i<a.q;i++)l(a[i].N==1g){8 2i=R.6e("2i");2i.1Z=a[i];D(8 j=0;j<2i.1a.q;j++)r[r.q]=2i.1a[j]}H l(a[i].q)D(8 j=0;j<a[i].q;j++)r[r.q]=a[i][j];H l(a[i]!=C)r[r.q]=a[i].2C?a[i]:R.6d(a[i].6c());k r};$.g={\'\':"m[2] == \'*\' || a.2B.39() == m[2].39()",\'#\':"a.2S == m[2]",\':\':{6b:"i < m[3]-0",6a:"i > m[3]-0",2h:"m[3] - 0 == i",69:"m[3] - 0 == i",3c:"i == 0",1e:"i == r.q - 1",49:"i % 2 == 0",48:"i % 2 == 1","3c-2f":"$.12(a,0).B","2h-2f":"(m[3] == \'49\'?$.12(a,m[3]).n % 2 == 0 :(m[3] == \'48\'?$.12(a,m[3]).n % 2 == 1:$.12(a,m[3]).B))","1e-2f":"$.12(a,0,Q).B","2h-1e-2f":"$.12(a,m[3],Q).B","3c-2g-u":"$.1T(a,0)","2h-2g-u":"$.1T(a,m[3])","1e-2g-u":"$.1T(a,0,Q)","2h-1e-2g-u":"$.1T(a,m[3],Q)","47-2g-u":"$.1T(a) == 1","47-2f":"$.12(a).q == 1",46:"a.1a.q > 0",45:"a.1a.q == 0",68:"a == ( a.44 ? a.44 : R ).2L",67:"(a.66 || a.1Z).O(m[3]) != -1",65:"(!a.u || a.u != \'1q\') && ($.19(a,\'V\') != \'1z\' && $.19(a,\'2e\') != \'1q\')",1q:"(a.u && a.u == \'1q\') || $.19(a,\'V\') == \'1z\' || $.19(a,\'2e\') == \'1q\'",3k:"a.3b == 16",3b:"a.3b",2T:"a.2T"},".":"$.2b(a,m[2])","@":{"=":"$.W(a,m[3]) == m[4]","!=":"$.W(a,m[3]) != m[4]","~=":"$.2b($.W(a,m[3]),m[4])","|=":"$.W(a,m[3]).O(m[4]) == 0","^=":"$.W(a,m[3]).O(m[4]) == 0","$=":"$.W(a,m[3]).1o( $.W(a,m[3]).q - m[4].q, m[4].q ) == m[4]","*=":"$.W(a,m[3]).O(m[4]) >= 0","":"m[3] == \'*\' ? a.64.q > 0 : $.W(a,m[3])"},"[":"$.2d(m[2],a).q > 0"};$.G={};$.2d=7(t,14){14=14||$.14||R;l(t.N!=1g)k[t];l(t.O("//")==0){14=14.2L;t=t.1o(2,t.q)}H l(t.O("/")==0){14=14.2L;t=t.1o(1,t.q);l(t.O(\'/\'))t=t.1o(t.O(\'/\'),t.q)}8 F=[14];8 1V=[];8 1e=C;1G(t.q>0&&1e!=t){8 r=[];1e=t;t=$.1L(t);8 S=I 1i("^//","i");t=t.1x(S,"");l(t.O(\'..\')==0||t.O(\'/..\')==0){l(t.O(\'/\')==0)t=t.1o(1,t.q);r=$.1w(F,7(a){k a.U});t=t.1o(2,t.q);t=$.1L(t)}H l(t.O(\'>\')==0||t.O(\'/\')==0){r=$.1w(F,7(a){k(a.1a.q>0?$.12(a.1W):C)});t=t.1o(1,t.q);t=$.1L(t)}H l(t.O(\'+\')==0){r=$.1w(F,7(a){k $.12(a).40});t=t.1o(1,t.q);t=$.1L(t)}H l(t.O(\'~\')==0){r=$.1w(F,7(a){8 r=[];8 s=$.12(a);l(s.n>0)D(8 i=s.n;i<s.q;i++)r[r.q]=s[i];k r});t=t.1o(1,t.q);t=$.1L(t)}H l(t.O(\',\')==0||t.O(\'|\')==0){l(F[0]==14)F.43();1V=$.Y(1V,F);r=F=[14];t=" "+t.1o(1,t.q)}H{8 S=I 1i("^([#.]?)([a-2H-9\\\\*1I-]*)","i");8 m=S.1C(t);l(m[1]=="#"){8 3a=R.25(m[2]);r=3a?[3a]:[];t=t.1x(S,"")}H{l(m[2]==""||m[1]==".")m[2]="*";D(8 i=0;i<F.q;i++){8 o=F[i];l(o){63(m[2]){1c\'*\':r=$.Y($.37(o),r);2K;1c\'1N\':1c\'62\':1c\'61\':1c\'1q\':1c\'60\':1c\'3C\':1c\'5Z\':1c\'5Y\':1c\'3E\':1c\'5X\':r=$.Y($.1S($.1U(o,"2p"),7(a){k a.u==m[2]}),r);2K;1c\'2p\':r=$.Y($.1U(o,"2p"),r);r=$.Y($.1U(o,"3D"),r);r=$.Y($.1U(o,"3l"),r);2K;5W:r=$.Y(r,$.1U(o,m[2]));2K}}}}}8 2J=$.15(t,r);F=r=2J.r;t=$.1L(2J.t)}l(F&&F[0]==14)F.43();1V=$.Y(1V,F);k 1V};$.1U=7(a,b){k a&&1O a.2t!="2r"?a.2t(b):[]};$.W=7(o,a,v){l(a&&a.N==1g){8 2I={\'D\':\'5V\',\'1N\':\'5U\',\'5T\':\'1j\',\'5S\':\'5R\'};a=(2I[a]&&2I[a].1x&&2I[a])||a;8 r=I 1i("-([a-z])","5Q");a=a.1x(r,7(z,b){k b.39()});l(v!=C){o[a]=v;l(o.42)o.42(a,v)}k o[a]||o.5P(a)||\'\'}H k\'\'};$.15=7(t,r,2G){8 g=$.1S;l(2G==16)8 g=7(a,f){k $.1S(a,f,Q)};1G(t.q>0&&t.5O(/^[:\\\\.#\\\\[a-41-Z\\\\*]/)){8 S=I 1i("^\\\\[ *@([a-2H-9\\\\(\\\\)1I-]+) *([~!\\\\|\\\\*$^=]*) *\'?\\"?([^\'\\"]*)\'?\\"? *\\\\]","i");8 m=S.1C(t);l(m!=C){m=[\'\',\'@\',m[2],m[1],m[3]]}H{8 S=I 1i("^(\\\\[) *([^\\\\]]*) *\\\\]","i");8 m=S.1C(t);l(m==C){8 S=I 1i("^(:)([a-2H-9\\\\*1I-]*)\\\\( *[\\"\']?([^ \\\\)\'\\"]*)[\'\\"]? *\\\\)","i");8 m=S.1C(t);l(m==C){8 S=I 1i("^([:\\\\.#]*)([a-2H-9\\\\*1I-]*)","i");8 m=S.1C(t)}}}t=t.1x(S,"");l(m[1]==":"&&m[2]=="2G")r=$.15(m[3],r,16).r;H{l($.g[m[1]].N==1g)8 f=$.g[m[1]];H l($.g[m[1]][m[2]])8 f=$.g[m[1]][m[2]];l(f!=C){2O("f = 7(a,i){k "+f+"}");r=g(r,f)}}}k{r:r,t:t}};$.38=7(a){8 b=[];8 c=a.U;1G(c!=C&&c!=R){b[b.q]=c;c=c.U}k b};$.1L=7(t){k t.1x(/^\\s+|\\s+$/g,\'\')};$.1T=7(a,n,e){8 t=$.1S($.12(a),7(b){k b.2B==a.2B});l(e)n=t.q-n-1;k n!=C?t[n]==a:t.q};$.12=7(a,n,e){8 u=[];8 2c=a.U.1a;D(8 i=0;i<2c.q;i++){l(2c[i].2C==1)u[u.q]=2c[i];l(2c[i]==a)u.n=u.q-1}l(e)n=u.q-n-1;u.B=(u[n]==a);u.5N=(u.n>0?u[u.n-1]:C);u.40=(u.n<u.q-1?u[u.n+1]:C);k u};$.2b=7(e,a){l(e==C)k 16;l(e.1j!=C)e=e.1j;k I 1i("(^|\\\\s)"+a+"(\\\\s|$)").3Z(e)};$.37=7(o,r){r=r||[];8 s=o.1a;D(8 i=0;i<s.q;i++){l(s[i].2C==1){r[r.q]=s[i];$.37(s[i],r)}}k r};$.Y=7(a,b){8 d=[];D(8 j=0;j<b.q;j++)d[j]=b[j];D(8 i=0;i<a.q;i++){8 c=Q;D(8 j=0;j<b.q;j++)l(a[i]==b[j])c=16;l(c)d[d.q]=a[i]}k d};$.1S=7(a,f,s){8 r=[];l(a!=C)D(8 i=0;i<a.q;i++)l((!s&&f(a[i],i))||(s&&!f(a[i],i)))r[r.q]=a[i];k r};$.1w=7(a,f){8 r=[];D(8 i=0;i<a.q;i++){8 t=f(a[i],i);l(t!=C){l(t.N!=36)t=[t];r=$.Y(t,r)}}k r};7 1F(K,u,1B){l(K.5M)K=23;l(!1B.$$1R)1B.$$1R=1F.1R++;l(!K.1b)K.1b={};8 1h=K.1b[u];l(!1h){1h=K.1b[u]={};l(K["2a"+u])1h[0]=K["2a"+u]}1h[1B.$$1R]=1B;K["2a"+u]=2F};1F.1R=1;7 35(K,u,1B){l(K.1b){l(u&&K.1b[u]){l(1B){3Y K.1b[u][1B.$$1R]}H{D(8 i 1d K.1b[u])3Y K.1b[u][i]}}H{D(8 i 1d K.1b)35(K,i)}}};7 2U(K,u,X){X=X||[{u:u}];l(K&&K["2a"+u])$.1f(K,K["2a"+u],X)}7 2F(11){8 2E=Q;11=11||1Q(23.11);8 1h=[];D(8 i 1d 6.1b[11.u])1h[1h.q]=6.1b[11.u][i];D(8 i=0;i<1h.q;i++){2P{l(1h[i].N==20){6.$$2F=1h[i];l(6.$$2F(11)===16){11.24();11.2D();2E=16}}}2N(e){}}k 2E};7 1Q(11){11.24=1Q.24;11.2D=1Q.2D;k 11};1Q.24=7(){6.2E=16};1Q.2D=7(){6.5L=Q};$.G.1N=7(e){e=e||6.B;8 t="";D(8 j=0;j<e.q;j++){D(8 i=0;i<e[j].1a.q;i++)t+=e[j].1a[i].2C!=1?e[j].1a[i].5K:$.G.1N(e[j].1a[i].1a)}k t};$.1K=7(s,o){l(o&&o.N==20)o={1H:o};o=o||{};8 27={"5J":5I,"5H":5G,"5F":5E,"5D":2A,"5C":5B,"5A":5z,"5y":2A};o.28=1O s=="5x"?s:27[s]||2A;k o};$.G.1u=7(a,o){o=$.1K(a,o);k a?6.E(7(){I J.2Y(6,o).1u()}):6.3X()};$.G.1v=7(a,o){o=$.1K(a,o);k a?6.E(7(){I J.2Y(6,o).1v()}):6.3W()};$.G.5w=7(a,o){o=$.1K(a,o);k 6.E(7(){I J.2v(6,o).1v("18")})};$.G.5v=7(a,o){o=$.1K(a,o);k 6.E(7(){I J.2v(6,o).1u("18")})};$.G.5u=7(a,o){o=$.1K(a,o);k a?6.E(7(){I J.2u(6,o).1u()}):6.3X()};$.G.5t=7(a,o){o=$.1K(a,o);k a?6.E(7(){I J.2u(6,o).1v()}):6.3W()};$.G.3T=7(f){k 6.E(7(){l(!f&&6.2B==\'5s\'&&!6.3V&&!6.3U){8 T=6;3O(7(){$(T).3T(Q)},13)}H{8 s=6.L;8 p=6.U;l($.1n(p,"1P")==\'5r\')p.L.1P=\'5q\';s.1P=\'3S\';s.5p=1J(($.1n(p,"1y")-$.1n(6,"1y"))/2)+"32";s.5o=1J(($.1n(p,"18")-$.1n(6,"18"))/2)+"32"}})};$.30=7(e,p){8 a=e.L[p];8 o=$.1n(e,p);e.L[p]=\'31\';8 n=$.1n(e,p);l(o!=n)e.L[p]=a};7 J(M,1A,1t,34){8 z=6;z.a=7(){z.M.L[1t]=z.1s+z.o.3Q};z.3R=7(){k z.M["2x"+1t]||z.M["5n"+34]||z.M["3F"+34]||z.B()};z.B=7(){k 1J($.19(z.M,1t))};z.1v=7(){z.27("33");z.o.31=Q;z.2y(0,z.3R())};z.1u=7(){z.M.$o=$.19(z.M,"2z");z.M["2x"+1t]=6.B();z.2y(z.B(),0)};z.27=7(a){l(y.V!=a)y.V=a};z.2s=7(){l(z.B()>0)z.1u();H z.1v()};z.2w=7(a){z.2y(z.B(),z.B()+a)};z.3P=7(){3t(z.1r);z.1r=C};z.M=M.N==1g?R.25(M):M;8 y=z.M.L;z.3N=y.2z;y.2z="1q";z.o={3Q:"32",28:(1A&&1A.28)||2A,1H:(1A&&1A.1H)||1A};z.3I=7(f,2Z){8 t=(I 3K).3J();8 p=(t-z.s)/z.o.28;l(t>=z.o.28+z.s){z.1s=2Z;z.3P();3O(7(){y.2z=z.3N;l(y.18=="3M"||y.1y=="3M")z.27("1z");l(1t!="26"&&z.o.31){$.30(z.M,"18");$.30(z.M,"1y")}l(z.o.1H.N==20){z.M.$1I=z.o.1H;z.M.$1I()}},13)}H z.1s=((-3L.5m(p*3L.5l)/2)+0.5)*(2Z-f)+f;z.a()};z.2y=7(f,t){l(z.1r)k;6.1s=f;z.a();z.2x=z.B();z.s=(I 3K).3J();z.1r=3r(7(){z.3I(f,t)},13)}}J.G=["1v","1u","2s"];J.1t=["3H","3G","5k","5j"];D(8 i 1d J.1t){(7(){8 c=J.1t[i];J[c]=7(a,b){k I J(a,b,c.2W(),c)}})()}J.2u=7(a,b){8 o=I J(a,b,"26");o.B=7(){k 5i(o.M.L.26)};o.a=7(){8 e=o.M.L;l(o.1s==1)o.1s=0.5h;l(23.2X)e.15="5g(26="+o.1s*5f+")";e.26=o.1s};o.2x=o.1s=1;o.a();k o};J.2v=7(e,o){8 z=6;8 h=I J.3H(e,o);l(o)o.1H=C;8 w=I J.3G(e,o);7 c(a,b,c){k(!a||a==c||b==c)}D(8 i 1d J.G){(7(){8 j=J.G[i];z[j]=7(a,b){l(c(a,b,"18"))h[j]();l(c(a,b,"1y"))w[j]()}})()}z.2w=7(c,d){h.2w(c);w.2w(d)}};J.2Y=7(e,o){8 z=6;8 r=I J.2v(e,o);l(o)o.1H=C;8 p=I J.2u(e,o);D(8 i 1d J.G){(7(){8 j=J.G[i];z[j]=7(a,b){p[j]();r[j](a,b)}})()}};8 e=["5e","5d","5c","2n","5b","3F","5a","3q","59","58","57","56","55","54","3z","3x","53","3E","3D","3C","52","51","50","4Z","4Y","17"];D(8 i=0;i<e.q;i++){(7(){8 o=e[i];$.G[o]=7(f){k 6.21(o,f)};$.G["4X"+o]=7(f){k 6.3B(o,f)};$.G["4W"+o]=7(){k 6.3A(o)};$.G["4V"+o]=7(f){k 6.21(o,7(e){l(6[o+f]!=C)k Q;6[o+f]++;k $.1f(6,f,[e])})};})()}$.G.3u=7(f,g){k 6.E(7(){8 1m=6;1F(6,"3z",7(e){8 p=(e.3y!=C?e.3y:e.3v);1G(p&&p!=1m)p=p.U;l(p==1m)k 16;k $.1f(1m,f,[e])});1F(6,"3x",7(e){8 p=(e.3w!=C?e.3w:e.3v);1G(p&&p!=1m)p=p.U;l(p==1m)k 16;k $.1f(1m,g,[e])})})};$.G.4U=$.G.3u;$.17=7(){l($.$$1r){3t($.$$1r);$.$$1r=C;D(8 i=0;i<$.$$17.q;i++)$.1f(R,$.$$17[i]);$.$$17=C}};l(R.3s)R.3s("4T",$.17,C);1F(23,"2n",$.17);$.G.17=7(f){k 6.E(7(){l($.$$1r){$.$$17.4S(f)}H{8 o=6;$.$$17=[f];$.$$1r=3r(7(){l(o&&o.2t&&o.25&&o.4R)$.17()},10)}})};$.G.4Q=$.G.17;$.G.2s=7(a,b){k a&&b?6.3q(7(e){6.$$1e=6.$$1e==a?b:a;e.24();k $.1f(6,6.$$1e,[e])||16}):6.4P()};l(1O 2V==\'2r\'&&1O 23.2X==\'7\'){8 2V=7(){k I 2X((4O.4N.2W().O(\'4M 5\')>=0)?"4L.3p":"4K.3p")}}$.P=7(u,1k,X,F){8 P=I 2V();l(P){P.4J(u||"2m",1k,Q);l(X)P.4I(\'4H-4G\',\'4F/x-4E-4D-4C\');P.4B=7(){l(P.4A==4){l(F)F(P);$.3n($.2q(P))}};P.4z(X)}};$.2q=7(r,u){k r.4y("4x-u").O("P")>0||u=="P"?r.4w:r.3g};$.1l=7(1k,F,u){$.P("2m",1k,C,7(r){l(F)F($.2q(r,u))})};$.4v=7(1k,F){$.1l(1k,F,"P")};$.3o=7(1k,X,F,u){$.P("3h",1k,$.2l(X),7(r){l(F)F($.2q(r,u))})};$.4u=7(1k,X,F){$.3o(1k,X,F,"P")};$.G.4t=7(2o){$.22=$.Y($.22,6.B);k 6.21(\'3m\',2o)};$.22=[];$.3n=7(X){D(8 i=0;i<$.22.q;i++)2U($.22[i],\'3m\',[X])};$.G.4s=7(2o){k 6.E(7(){8 a={};$(6).2Q("2p:2T,1q,1N,4r[@4q],3l").15(":3k").E(7(){a[6.3j||6.2S||6.U.3j||6.U.2S]=6.2R});$.P(6.4p||"2m",6.4o||"",$.2l(a),2o)})};$.2l=7(a){8 s=[];D(8 i 1d a)s[s.q]=i+"="+4n(a[i]);k s.3i("&")};$.G.2n=7(a,o,f){l(a&&a.N==20)k 6.21("2n",a);8 t="2m";l(o&&o.N==20){f=o;o=C}l(o!=C){o=$.2l(o);t="3h"}8 T=6;$.P(t,a,o,7(h){8 h=h.3g;T.3f(h).2Q("4m").E(7(){2P{2O(6.1N||6.4l||6.1Z)}2N(e){}});l(f)f(h)});k 6};',62,408,'||||||this|function|var||||||||||||return|if|||||length||||type|||||||cur|null|for|each|ret|fn|else|new|fx|element|style|el|constructor|indexOf|xml|true|document|re|self|parentNode|display|attr|data|merge|||event|sibling||context|filter|false|ready|height|getCSS|childNodes|events|case|in|last|apply|String|handlers|RegExp|className|url|get|obj|css|substr|els|hidden|timer|now|ty|hide|show|map|replace|width|none|op|handler|exec|clone|size|addEvent|while|onComplete|_|parseInt|speed|cleanSpaces|arguments|text|typeof|position|fixEvent|guid|grep|ofType|tag|done|firstChild|clean|old|innerHTML|Function|bind|ajaxHandles|window|preventDefault|getElementById|opacity|ss|duration||on|hasWord|tmp|Select|visibility|child|of|nth|div|cloneNode|oldblock|param|GET|load|callback|input|httpData|undefined|toggle|getElementsByTagName|Opacity|Resize|modify|io|custom|overflow|400|nodeName|nodeType|stopPropagation|returnValue|handleEvent|not|z0|fix|val|break|documentElement|insertBefore|catch|eval|try|find|value|id|checked|triggerEvent|XMLHttpRequest|toLowerCase|ActiveXObject|FadeSize|tt|setAuto|auto|px|block|tz|removeEvent|Array|getAll|parents|toUpperCase|oid|disabled|first|defaultView|set|html|responseText|POST|join|name|enabled|textarea|ajax|triggerAJAX|post|XMLHTTP|click|setInterval|addEventListener|clearInterval|hover|relatedTarget|toElement|mouseout|fromElement|mouseover|trigger|unbind|submit|select|reset|scroll|Width|Height|step|getTime|Date|Math|0px|oo|setTimeout|clear|unit|max|absolute|center|offsetHeight|offsetWidth|_show|_hide|delete|test|next|zA|setAttribute|shift|ownerDocument|empty|parent|only|odd|even|getComputedStyle|currentStyle|oWidth|oHeight|ov|od|Prototype|removeChild|append|appendChild|jquery|textContent|script|encodeURIComponent|action|method|selected|option|serialize|handleAJAX|postXML|getXML|responseXML|content|getResponseHeader|send|readyState|onreadystatechange|urlencoded|form|www|application|Type|Content|setRequestHeader|open|Msxml2|Microsoft|msie|userAgent|navigator|_toggle|onready|body|push|DOMContentLoaded|onhover|one|do|un|error|abort|keyup|keypress|keydown|change|mousemove|mouseleave|mouseenter|mouseup|mousedown|dblclick|unload|resize|contextmenu|focus|blur|100|alpha|9999|parseFloat|Top|Left|PI|cos|natural|top|left|relative|static|IMG|fadeIn|fadeOut|slideUp|slideDown|number|normal|75|xfast|200|fast|medium|600|slow|850|xslow|1200|crawl|nodeValue|cancelBubble|location|prev|match|getAttribute|ig|cssFloat|float|class|cssText|htmlFor|default|file|password|image|button|checkbox|radio|switch|attributes|visible|innerText|contains|root|eq|gt|lt|toString|createTextNode|createElement|getPropertyValue|clientWidth|clientHeight|isNot|is|add|siblings|end|nextSibling|after|before|prepend|appendTo|wrap|remove|toggleClass|removeClass|addClass|Rev|9_|Z0'.split('|'),0,{})) diff --git a/news/models.py b/news/models.py deleted file mode 100644 index b8709b48..00000000 --- a/news/models.py +++ /dev/null @@ -1,21 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User -import re - -class News(models.Model): - id = models.AutoField(primary_key=True) - author = models.ForeignKey(User) - postdate = models.DateField(auto_now_add=True) - title = models.CharField(maxlength=255) - content = models.TextField() - class Meta: - db_table = 'news' - verbose_name_plural = 'news' - get_latest_by = 'postdate' - ordering = ['-postdate', '-id'] - - def get_absolute_url(self): - return '/news/%i/' % self.id - -# vim: set ts=4 sw=4 et: - diff --git a/news/views.py b/news/views.py index b618e2f9..cfa2bcd7 100644 --- a/news/views.py +++ b/news/views.py @@ -3,8 +3,8 @@ from django.shortcuts import get_object_or_404 from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.models import User from django import forms -from archweb_dev.lib.utils import render_response -from archweb_dev.news.models import News +from archweb_dev.main.utils import render_response +from archweb_dev.main.models import News from datetime import date def view(request, newsid): diff --git a/packages/models.py b/packages/models.py deleted file mode 100644 index cc3b279e..00000000 --- a/packages/models.py +++ /dev/null @@ -1,96 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User -import re - -class PackageManager(models.Manager): - def get_flag_stats(self): - results = [] - # first the orphans - unflagged = self.filter(maintainer=0).count() - flagged = self.filter(maintainer=0).filter(needupdate=True).count() - flagged_notest = self.filter(maintainer=0).filter(needupdate=True).exclude(repo__name__exact='Testing').count() - results.append((User(id=0,first_name='Orphans'), unflagged, flagged, flagged_notest)) - # now the rest - for maint in User.objects.all().order_by('first_name'): - unflagged = self.filter(maintainer=maint.id).count() - flagged = self.filter(maintainer=maint.id).filter(needupdate=True).count() - flagged_notest = self.filter(maintainer=maint.id).filter(needupdate=True).exclude(repo__name__exact='Testing').count() - results.append((maint, unflagged, flagged, flagged_notest)) - return results - -class Category(models.Model): - id = models.AutoField(primary_key=True) - category = models.CharField(maxlength=255) - class Meta: - db_table = 'categories' - verbose_name_plural = 'categories' - -class Repo(models.Model): - id = models.AutoField(primary_key=True) - name = models.CharField(maxlength=255) - class Meta: - db_table = 'repos' - ordering = ['name'] - def last_update(self): - try: - latest = Package.objects.filter(repo__name__exact=self.name).order_by('-last_update')[0] - return latest.last_update - except IndexError: - return "N/A" - -class Package(models.Model): - id = models.AutoField(primary_key=True) - repo = models.ForeignKey(Repo) - maintainer = models.ForeignKey(User) - category = models.ForeignKey(Category) - needupdate = models.BooleanField(default=False) - pkgname = models.CharField(maxlength=255) - pkgver = models.CharField(maxlength=255) - pkgrel = models.CharField(maxlength=255) - pkgdesc = models.CharField(maxlength=255) - url = models.URLField() - sources = models.TextField() - depends = models.TextField() - last_update = models.DateTimeField(null=True, blank=True) - objects = PackageManager() - class Meta: - db_table = 'packages' - get_latest_by = 'last_update' - - def get_absolute_url(self): - return '/packages/%i/' % self.id - - def depends_urlize(self): - urls = '' - for dep in self.depends.split(' '): - # shave off any version qualifiers - nameonly = re.match(r"([a-z0-9-]+)", dep).group(1) - try: - p = Package.objects.filter(pkgname=nameonly)[0] - except IndexError: - # couldn't find a package in the DB -- it might be a virtual depend - urls = urls + '<li>' + dep + '</li>' - continue - url = '<li><a href="/packages/' + str(p.id) + '">' + dep + '</a></li>' - urls = urls + url - return urls - - def sources_urlize(self): - urls = '' - for source in self.sources.split(' '): - if re.search('://', source): - url = '<li><a href="' + source + '">' + source + '</a></li>' - else: - url = '<li>' + source + '</li>' - urls = urls + url - return urls - -class PackageFile(models.Model): - id = models.AutoField(primary_key=True) - pkg = models.ForeignKey(Package) - path = models.CharField(maxlength=255) - class Meta: - db_table = 'packages_files' - -# vim: set ts=4 sw=4 et: - diff --git a/packages/templatetags/package_extras.py b/packages/templatetags/package_extras.py index 9f165580..5469f297 100644 --- a/packages/templatetags/package_extras.py +++ b/packages/templatetags/package_extras.py @@ -8,7 +8,10 @@ class BuildQueryStringNode(template.Node): def render(self, context): qs = context['querystring'].copy() if qs.has_key('sort') and qs['sort'] == self.sortfield: - qs['sort'] = '-' + self.sortfield + if self.sortfield.startswith('-'): + qs['sort'] = self.sortfield[1:] + else: + qs['sort'] = '-' + self.sortfield else: qs['sort'] = self.sortfield return '?' + qs.urlencode() diff --git a/packages/views.py b/packages/views.py index df0359d2..2a77be53 100644 --- a/packages/views.py +++ b/packages/views.py @@ -3,11 +3,11 @@ from django.shortcuts import get_object_or_404 from django.core.mail import send_mail from django.template import Context, loader from django.core import validators -from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User -from archweb_dev.lib.utils import validate, render_response from datetime import datetime -from archweb_dev.packages.models import Package, PackageFile, Repo, Category +from archweb_dev.main.utils import validate, render_response +from archweb_dev.main.models import Package, PackageFile, PackageDepend +from archweb_dev.main.models import Arch, Repo from django.core.exceptions import ObjectDoesNotExist @@ -37,7 +37,7 @@ def update(request): def details(request, pkgid=0, name='', repo=''): if pkgid == 0: p = Package.objects.filter(pkgname=name) - if repo: p = p.filter(repo__name__exact=repo) + if repo: p = p.filter(repo__name__iexact=repo) # if more then one result, send to the search view if len(p) > 1: return search(request, name) if len(p) < 1: return render_response(request, 'error_page.html', @@ -45,18 +45,7 @@ def details(request, pkgid=0, name='', repo=''): pkgid = p[0].id pkg = get_object_or_404(Package, id=pkgid) - origin_repo = None - if pkg.repo.name == 'Testing': - try: - origin_repo = Package.objects.filter( - pkgname__exact = pkg.pkgname).exclude( - repo__name__exact = pkg.repo.name).get().repo.name - except ObjectDoesNotExist: - origin_repo = None - return render_response( - request, - 'packages/details.html', - {'pkg': pkg, 'origin_repo': origin_repo}) + return render_response(request, 'packages/details.html', {'pkg': pkg}) def search(request, query=''): if request.GET.has_key('q'): @@ -65,19 +54,20 @@ def search(request, query=''): # fetch the form vars repo = request.GET.get('repo', 'all') - category = request.GET.get('category', 'all') + arch = request.GET.get('arch', 'all') lastupdate = request.GET.get('lastupdate', '') limit = int(request.GET.get('limit', '50')) skip = int(request.GET.get('skip', '0')) sort = request.GET.get('sort', '') maint = request.GET.get('maint', 'all') + flagged_only = request.GET.get('flagged_only', 'n') # build the form lists - repos = Repo.objects.order_by('name') - cats = Category.objects.order_by('category') + repos = Repo.objects.all() + arches = Arch.objects.all() # copy GET data over and add the lists c = request.GET.copy() - c['repos'], c['categories'] = repos, cats + c['repos'], c['arches'] = repos, arches c['limit'], c['skip'] = limit, skip c['lastupdate'] = lastupdate c['sort'] = sort @@ -99,19 +89,27 @@ def search(request, query=''): results = res1 | res2 else: results = Package.objects.all() - if repo != 'all': results = results.filter(repo__name__exact=repo) - if category != 'all': results = results.filter(category__category__exact=category) - if maint != 'all': results = results.filter(maintainer=maint) - if lastupdate: results = results.filter(last_update__gte=datetime(int(lastupdate[0:4]),int(lastupdate[5:7]),int(lastupdate[8:10]))) - # select_related() shouldn't be needed -- we're working around a Django bug - #results = results.select_related().order_by('repos.name', 'category', 'pkgname') + if repo != 'all' and repo in [x.name for x in repos]: + results = results.filter(repo__name__iexact=repo) + if arch != 'all' and arch in [x.name for x in arches]: + results = results.filter(arch__name__iexact=arch) + if maint != 'all': + results = results.filter(maintainer=maint) + if flagged_only != 'n': + results = results.filter(needupdate=1) + if lastupdate: + results = results.filter( + last_update__gte=datetime( + int(lastupdate[0:4]), + int(lastupdate[5:7]), + int(lastupdate[8:10]))) # sort results if sort == '': - results = results.order_by('repo', 'category', 'pkgname') + results = results.order_by('repo', 'arch', '-last_update', 'pkgname') else: # duplicate sort fields shouldn't hurt anything - results = results.order_by(sort, 'repo', 'category', 'pkgname') + results = results.order_by(sort, 'repo', 'arch', 'pkgname') qs = request.GET.copy() # build pagination urls @@ -137,50 +135,8 @@ def files(request, pkgid): files = PackageFile.objects.filter(pkg=pkgid) return render_response(request, 'packages/files.html', {'pkg':pkg,'files':files}) -def flaghelp(request): - return render_response(request, 'packages/flaghelp.html') - -def flag(request, pkgid): - pkg = get_object_or_404(Package, id=pkgid) - context = {'pkg': pkg} - if request.POST.has_key('confirmemail'): - email = request.POST['confirmemail'] - if request.POST.has_key('usermessage'): - message = request.POST['usermessage'] - else: - message = None - # validate - errors = {} - validate(errors, 'Email Address', email, validators.isValidEmail, False, request) - if errors: - context['errors'] = errors - return render_response(request, 'packages/flag.html', context) - - context['confirmemail'] = email - pkg.needupdate = 1 - pkg.save() - if pkg.maintainer_id > 0: - # send notification email to the maintainer - t = loader.get_template('packages/outofdate.txt') - c = Context({ - 'email': request.POST['confirmemail'], - 'message': message, - 'pkgname': pkg.pkgname, - 'weburl': 'http://www.archlinux.org/packages/' + str(pkg.id) + '/' - }) - send_mail('arch: Package [%s] marked out-of-date' % pkg.pkgname, - t.render(c), - 'Arch Website Notification <nobody@archlinux.org>', - [pkg.maintainer.email], - fail_silently=True) - return render_response(request, 'packages/flag.html', context) - -@login_required def unflag(request, pkgid): pkg = get_object_or_404(Package, id=pkgid) - if pkg.maintainer_id == 0 or \ - pkg.maintainer.username != request.user.username: - return render_response(request, 'error_page.html', {'errmsg': 'You do not own this package.'}) pkg.needupdate = 0 pkg.save() return HttpResponseRedirect('/packages/%d/' % (pkg.id)) diff --git a/scripts/reporead.py b/scripts/reporead.py new file mode 100755 index 00000000..08bf038d --- /dev/null +++ b/scripts/reporead.py @@ -0,0 +1,361 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +reporead.py + +Parses a repo.db.tar.gz file and updates the Arch database with the relevant +changes. + +Usage: reporead.py ARCH PATH + ARCH: architecture to update, and can be one of: i686, x86_64 + PATH: full path to the repo.db.tar.gz file. + +Example: + reporead.py i686 /tmp/core.db.tar.gz + +""" + +### +### User Variables +### + +# multi value blocks +REPOVARS = ['arch', 'backup', 'builddate', 'conflicts', 'csize', + 'deltas', 'depends', 'desc', 'filename', 'files', 'force', + 'groups', 'installdate', 'isize', 'license', 'md5sum', + 'name', 'optdepends', 'packager', 'provides', 'reason', + 'replaces', 'size', 'url', 'version'] + +### +### Imports +### + +import os +import re +import sys +import gzip +import tarfile +import logging +from datetime import datetime +from django.core.management import setup_environ +# mung the sys path to get to django root dir, no matter +# where we are called from +archweb_app_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +os.chdir(archweb_app_path) +sys.path[0] = archweb_app_path +import settings +setup_environ(settings) +from pprint import pprint as pp +from cStringIO import StringIO +from logging import CRITICAL,ERROR,WARNING,INFO,DEBUG +from main.models import Arch, Package, PackageFile, PackageDepend, Repo + +### +### Initialization +### + +logging.basicConfig( + level=WARNING, + format='%(asctime)s -> %(levelname)s: %(message)s', + datefmt='%Y-%m-%d %H:%M:%S', + stream=sys.stderr) +logger = logging.getLogger() + + +### +### function and class definitions +### + +class Pkg(object): + """An interim 'container' object for holding Arch package data.""" + + def __init__(self, val): + selfdict = {} + squash = ['arch', 'builddate', 'csize', 'desc', 'filename', + 'installdate', 'isize', 'license', 'md5sum', + 'packager', 'size', 'url'] + + selfdict['name'] = val['name'][0] + del val['name'] + if 'desc' not in val: + logger.warning("Package %s has no description" % selfdict['name']) + val['desc'] = '' + if 'url' not in val: + val['url'] = '' + for x in val.keys(): + if x in squash: + if len(val[x]) == 0: + logger.warning("Package %s has no %s" % (selfdict['name'],x)) + selfdict[x] = ''.join(val[x]) + # make sure we don't have elements larger than the db char + # fields + if len(selfdict[x]) > 255: + selfdict[x] = selfdict[x][:254] + elif x == 'force': + selfdict[x] = True + elif x == 'version': + version = val[x][0].rsplit('-') + selfdict['ver'] = version[0] + selfdict['rel'] = version[1] + elif x == 'reason': + selfdict[x] = int(val[x][0]) + else: + selfdict[x] = val[x] + self.__dict__ = selfdict + + def __getattr__(self,name): + if name == 'force': + return False + else: + return None + + +def usage(): + """Print the usage of this application.""" + print __doc__.strip() + + +def fetchiter_dict(cursor): + """ + Given a DB API 2.0 cursor object that has been executed, returns a + dictionary that maps each field to a column index + """ + rows = cursor.fetchmany(size=30) + while rows: + for row in rows: + #pp(rows) + #for row in rows: + yield dictize(cursor,row) + rows = cursor.fetchmany(size=30) + + +def fetchone_dict(cursor): + """ + Given a DB API 2.0 cursor object that has been executed, returns a + dictionary that maps each field to a column index + """ + results = {} + row = cursor.fetchone() + return dictize(cursor,row) + + +def dictize(cursor,row): + result = {} + for column,desc in enumerate(cursor.description): + result[desc[0]] = row[column] + return result + + +def db_update(archname, pkgs): + """ + Parses a list and updates the Arch dev database accordingly. + + Arguments: + pkgs -- A list of Pkg objects. + + """ + logger.info('Updating Arch: %s' % archname) + repository = Repo.objects.get(name__iexact=pkgs[0].repo) + architecture = Arch.objects.get(name__iexact=archname) + dbpkgs = Package.objects.filter(arch=architecture, repo=repository) + now = datetime.now() + + # go go set theory! + # thank you python for having a set class <3 + logger.debug("Creating sets") + dbset = set([pkg.pkgname for pkg in dbpkgs]) + syncset = set([pkg.name for pkg in pkgs]) + + # packages in syncdb and not in database (add to database) + logger.debug("Set theory: Packages in syncdb not in database") + in_sync_not_db = syncset - dbset + for p in [x for x in pkgs if x.name in in_sync_not_db]: + logger.debug("Adding package %s", p.name) + ## note: maintainer is being set to orphan for now + ## maybe later we can add logic to match pkgbuild maintainers + ## to db maintainer ids + pkg = Package( + repo = repository, arch=architecture, maintainer_id = 0, + needupdate = False, url = p.url, last_update = now, + pkgname = p.name, pkgver = p.ver, pkgrel = p.rel, + pkgdesc = p.desc) + pkg.save() + # files are not in the repo.db.tar.gz + #for x in p.files: + # pkg.packagefile_set.create(path=x) + if 'depends' in p.__dict__: + for y in p.depends: + # make sure we aren't adding self depends.. + # yes *sigh* i have seen them in pkgbuilds + dpname,dpvcmp = re.match(r"([a-z0-9_-]+)(.*)", y).groups() + if dpname == p.name: + logger.warning('Package %s has a depend on itself' % p.name) + continue + pkg.packagedepend_set.create(depname=dpname, depvcmp=dpvcmp) + logger.debug('Added %s as dep for pkg %s' % (dpname,p.name)) + + # packages in database and not in syncdb (remove from database) + logger.debug("Set theory: Packages in database not in syncdb") + in_db_not_sync = dbset - syncset + for p in in_db_not_sync: + logger.info("Removing package %s from database", p) + Package.objects.get( + pkgname=p, arch=architecture, repo=repository).delete() + + # packages in both database and in syncdb (update in database) + logger.debug("Set theory: Packages in database and syncdb") + pkg_in_both = syncset & dbset + for p in [x for x in pkgs if x.name in pkg_in_both]: + logger.debug("Looking for package updates") + dbp = dbpkgs.get(pkgname=p.name) + if ''.join((p.ver,p.rel)) == ''.join((dbp.pkgver,dbp.pkgrel)): + continue + logger.info("Updating package %s in database", p.name) + pkg = Package.objects.get( + pkgname=p.name,arch=architecture, repo=repository) + pkg.pkgver = p.ver + pkg.pkgrel = p.rel + pkg.pkgdesc = p.desc + pkg.needupdate = False + pkg.last_update = now + pkg.save() + + # files are not in the repo.db.tar.gz + #pkg.packagefile_set.all().delete() + #for x in p.files: + # pkg.packagefile_set.create(path=x) + pkg.packagedepend_set.all().delete() + if 'depends' in p.__dict__: + for y in p.depends: + dpname,dpvcmp = re.match(r"([a-z0-9-]+)(.*)", y).groups() + pkg.packagedepend_set.create(depname=dpname, depvcmp=dpvcmp) + logger.info('Finished updating Arch: %s' % archname) + + +def parse_inf(iofile): + """ + Parses an Arch repo db information file, and returns variables as a list. + + Arguments: + iofile -- A StringIO, FileType, or other object with readlines method. + + """ + store = {} + lines = iofile.readlines() + blockname = None + max = len(lines) + i = 0 + while i < max: + line = lines[i].strip() + if len(line) > 0 and line[0] == '%' and line[1:-1].lower() in REPOVARS: + blockname = line[1:-1].lower() + logger.debug("Parsing package block %s",blockname) + store[blockname] = [] + i += 1 + while i < max and len(lines[i].strip()) > 0: + store[blockname].append(lines[i].strip()) + i += 1 + # here is where i would convert arrays to strings + # based on count and type, but i dont think it is needed now + i += 1 + return store + + +def parse_repo(repopath): + """ + Parses an Arch repo db file, and returns a list of Pkg objects. + + Arguments: + repopath -- The path of a repository db file. + + """ + logger.info("Starting repo parsing") + if not os.path.exists(repopath): + logger.error("Could not read file %s", repopath) + + logger.info("Reading repo tarfile") + filename = os.path.split(repopath)[1] + rindex = filename.rindex('.db.tar.gz') + reponame = filename[:rindex] + + repodb = tarfile.open(repopath,"r:gz") + ## assuming well formed tar, with dir first then files after + ## repo-add enforces this + logger.debug("Starting package parsing") + pkgs = [] + tpkg = None + while True: + tarinfo = repodb.next() + if tarinfo == None or tarinfo.isdir(): + if tpkg != None: + tpkg.reset() + data = parse_inf(tpkg) + p = Pkg(data) + p.repo = reponame + logger.debug("Done parsing package %s", p.name) + pkgs.append(p) + if tarinfo == None: + break + # set new tpkg + tpkg = StringIO() + if tarinfo.isreg(): + if os.path.split(tarinfo.name)[1] in ('desc','depends'): + tpkg.write(repodb.extractfile(tarinfo).read()) + tpkg.write('\n') # just in case + repodb.close() + logger.info("Finished repo parsing") + return pkgs + + +def main(argv=None): + """ + Parses repo.db.tar.gz file and returns exit status. + + Keyword Arguments: + argv -- A list/array simulating a sys.argv (default None) + If left empty, sys.argv is used + + """ + if argv == None: + argv = sys.argv + if len(argv) != 3: + usage() + return 0 + # check if arch is valid + available_arches = Arch.objects.all() + if argv[1] not in [x.name for x in available_arches]: + usage() + return 0 + else: + primary_arch = argv[1] + + repo_file = os.path.normpath(argv[2]) + packages = parse_repo(repo_file) + + # sort packages by arch -- to handle noarch stuff + packages_arches = {} + for arch in available_arches: + packages_arches[arch.name] = [] + + for package in packages: + if package.arch not in [x.name for x in available_arches]: + logger.warning("Package %s arch = %s" % (package.name,package.arch)) + package.arch = primary_arch + packages_arches[package.arch].append(package) + + logger.info('Starting database updates.') + for (arch, pkgs) in packages_arches.iteritems(): + if len(pkgs) > 0: + db_update(arch,pkgs) + logger.info('Finished database updates.') + return 0 + + +### +### Main eval +### + +if __name__ == '__main__': + logger.level = INFO + sys.exit(main()) + diff --git a/settings.py b/settings.py index 7051f0ca..515d63bd 100644 --- a/settings.py +++ b/settings.py @@ -1,6 +1,10 @@ import os # Django settings for archweb_dev project. +# setup some var defaults +DEBUG = True +CACHE = False + ## Import local settings from local_settings import * @@ -21,6 +25,7 @@ TIME_ZONE = 'US/Eastern' # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes # http://blogs.law.harvard.edu/tech/stories/storyReader$15 LANGUAGE_CODE = 'en-us' +DEFAULT_CHARSET = 'utf-8' SITE_ID = 1 @@ -37,9 +42,9 @@ LOGIN_URL = '/login/' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = ( + 'django.template.loaders.eggs.load_template_source', 'django.template.loaders.filesystem.load_template_source', 'django.template.loaders.app_directories.load_template_source', -# 'django.template.loaders.eggs.load_template_source', ) MIDDLEWARE_CLASSES = ( @@ -55,6 +60,7 @@ if CACHE == True: MIDDLEWARE_CLASSES += ( "django.middleware.common.CommonMiddleware", "django.middleware.doc.XViewMiddleware", + "archweb_dev.main.middleware.RequireLoginMiddleware", ) ROOT_URLCONF = 'archweb_dev.urls' @@ -67,7 +73,7 @@ TEMPLATE_DIRS = ( # Set django's User stuff to use our profile model # format is app.model -AUTH_PROFILE_MODULE = 'devel.UserProfile' +AUTH_PROFILE_MODULE = 'main.UserProfile' INSTALLED_APPS = ( 'django.contrib.auth', @@ -75,6 +81,7 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', + 'archweb_dev.main', # contains shared models and libs 'archweb_dev.news', 'archweb_dev.packages', 'archweb_dev.todolists', diff --git a/templates/base.html b/templates/base.html index 5aa52152..9aa05c58 100644 --- a/templates/base.html +++ b/templates/base.html @@ -26,8 +26,6 @@ </ul> {% endblock %} </div> - {% block ads %} - {% if not user.is_anonymous %} <div id="dev_nav"> <ul> <li><a href="/accounts/logout/">Logout</a></li> @@ -38,8 +36,6 @@ <li><a href="/devel/">Dashboard</a></li> </ul> </div> - {% endif %} - {% endblock %} </div> <div id="content"> {% block content %} diff --git a/templates/devel/developers.html b/templates/devel/developers.html index 6b1fe8b7..179e03aa 100644 --- a/templates/devel/developers.html +++ b/templates/devel/developers.html @@ -6,7 +6,7 @@ <br /><br /> <div id="devlist"> {% for dev in devs %} - <a href="#{{ dev.first_name}}">{{ dev.first_name }}</a> + <a href="#{{ dev.first_name}}{{ dev.last_name.0|upper }}">{{ dev.first_name }}{{ dev.last_name.0|upper }}</a> {% endfor %} </div><br /><br /> @@ -16,7 +16,7 @@ <td class="devpic"> <img src="{{ dev.get_profile.get_picture_url }}" height="175" width="175" style="border:1px solid black"> </td><td> - <a name="{{ dev.first_name }}" /> + <a name="{{ dev.first_name }}{{ dev.last_name.0|upper }}" /> <table class="deventry" cellspacing="5"> <tr> <th>Name:</th> diff --git a/templates/devel/fellows.html b/templates/devel/fellows.html new file mode 100644 index 00000000..8457f7e4 --- /dev/null +++ b/templates/devel/fellows.html @@ -0,0 +1,63 @@ +{% extends "base.html" %} + +{% block content %} +<div class="box"> + <h2 class="title">Arch Linux Fellows</h2> + Below you can find a list of ex-developers (aka Project Fellows). These folks helped make Arch + what it is today. Thanks! + <br /><br /> + <div id="devlist"> + {% for fellow in fellows %} + <a href="#{{ fellow.first_name}}{{ fellow.last_name.0|upper }}">{{ fellow.first_name }}{{ fellow.last_name.0|upper }}</a> + {% endfor %} + </div><br /><br /> + + <table class="center" cellpadding="20"> + {% for fellow in fellows %} + <tr> + <td class="devpic"> + <img src="{{ fellow.get_profile.get_picture_url }}" height="175" width="175" style="border:1px solid black"> + </td><td> + <a name="{{ fellow.first_name }}{{ fellow.last_name.0|upper }}" /> + <table class="deventry" cellspacing="5"> + <tr> + <th>Name:</th> + <td>{{ fellow.get_full_name }}</td> + </tr><tr> + <th>Alias:</th> + <td>{{ fellow.get_profile.alias }}</td> + </tr><tr> + <th>Past Roles:</th> + <td>{{ fellow.get_profile.roles }}<br /> + </td> + </tr><tr> + <th>Website:</th> + <td>{{ fellow.get_profile.website }}</td> + </tr><tr> + <th>Occupation:</th> + <td>{{ fellow.get_profile.occupation }}</td> + </tr><tr> + <th>YOB:</th> + <td>{% if fellow.get_profile.yob %}{{ fellow.get_profile.yob }}{% else %} {% endif %}</td> + </tr><tr> + <th>Location:</th> + <td>{{ fellow.get_profile.location }}</td> + </tr><tr> + <th>Languages:</th> + <td>{{ fellow.get_profile.languages }}</td> + </tr><tr> + <th>Interests:</th> + <td>{{ fellow.get_profile.interests }}</td> + </tr><tr> + <th>Favorite Distros:</th> + <td>{{ fellow.get_profile.favorite_distros }}</td> + </tr> + </table> + </td> + </tr> + {% endfor %} + </table> +</div> +<br /><br /> +{% endblock %} + diff --git a/templates/devel/index.html b/templates/devel/index.html index 939e7ecd..8c621cc5 100644 --- a/templates/devel/index.html +++ b/templates/devel/index.html @@ -23,18 +23,36 @@ {% endif %} <div class="greybox"> - <h3 class="title">Repository Package Stats</h3> + <h3 class="title">Stats by Architecture</h3> + <table class="results" width="100%"> + <tr> + <th width="50%">Arch</th> + <th># Packages</th> + <th># Flagged</th> + </tr> + {% for arch in arches %} + <tr class="{% cycle pkgr2,pkgr1 %}"> + <td><strong>{{ arch.name }}</strong></td> + <td><a href="/packages/?arch={{ arch.name }}"><strong>{{ arch.count }}</strong> packages</a></td> + <td><a href="/packages/?arch={{ arch.name }}&flagged_only=y"><strong>{{ arch.flagged }}</strong> packages</a></td> + </tr> + {% endfor %} + </table> + </div> + <br /><br /> + <div class="greybox"> + <h3 class="title">Stats by Repository</h3> <table class="results" width="100%"> <tr> <th width="50%">Repository</th> - <th># Package</th> + <th># Packages</th> <th># Flagged</th> </tr> {% for repo in repos %} <tr class="{% cycle pkgr2,pkgr1 %}"> - <td><a href="/packages/?repo={{ repo.name }}">{{ repo.name }}</a></td> - <td><strong>{{ repo.count }}</strong> packages</td> - <td><strong>{{ repo.flagged }}</strong> packages</td> + <td><strong>{{ repo.name }}</strong></td> + <td><a href="/packages/?repo={{ repo.name }}"><strong>{{ repo.count }}</strong> packages</a></td> + <td><a href="/packages/?repo={{ repo.name }}&flagged_only=y"><strong>{{ repo.flagged }}</strong> packages</a></td> </tr> {% endfor %} </table> @@ -42,20 +60,18 @@ <br /><br /> <div class="greybox"> - <h3 class="title">Maintainer Package Stats</h3> + <h3 class="title">Stats by Maintainer</h3> <table class="results" width="100%"> <tr> <th width="50%">Maintainer</th> - <th># Package</th> + <th># Packages</th> <th># Flagged</th> - <th># Flagged notesting</th> </tr> {% for maint in stats %} <tr class="{% cycle pkgr2,pkgr1 %}"> - <td><a href="/packages/?maint={{ maint.0.id }}">{{ maint.0.get_full_name }}</a></td> - <td><strong>{{ maint.1 }}</strong> packages</td> - <td><strong>{{ maint.2 }}</strong> packages</td> - <td><strong>{{ maint.3 }}</strong> packages</td> + <td><strong>{{ maint.0.get_full_name }}</strong></td> + <td><a href="/packages/?maint={{ maint.0.id }}"><strong>{{ maint.1 }}</strong> packages</a></td> + <td><a href="/packages/?maint={{ maint.0.id }}&flagged_only=y"><strong>{{ maint.2 }}</strong> packages</a></td> </tr> {% endfor %} </table> @@ -86,7 +102,7 @@ </ul> <ul class="small"> {% for pkg in pkgs %} - <li><a href="/packages/{{ pkg.id }}/">{{ pkg.repo.name }}::{{ pkg.pkgname }} {{ pkg.pkgver }}</a></li> + <li><a href="/packages/{{ pkg.id }}/">{{ pkg.repo.name }}::{{ pkg.pkgname }} {{ pkg.pkgver }} {{ pkg.arch.name }}</a></li> {% endfor %} </ul> {% endif %} diff --git a/templates/devel/siteindex.html b/templates/devel/siteindex.html index 0c25fd8b..37bdba42 100644 --- a/templates/devel/siteindex.html +++ b/templates/devel/siteindex.html @@ -21,7 +21,7 @@ {% for pkg in pkg_updates %} <tr> <td><a href="{{ pkg.get_absolute_url }}">{{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }}</a></td> - <td style="text-align:right">{{ pkg.category.category }}</td> + <td style="text-align:right">{{ pkg.arch.name }}</td> </tr> {% endfor %} <tr> @@ -101,29 +101,17 @@ <p><b>Package Search:</b> <input type="text" name="q" size="20" maxlength="200" /></p> </form> </div> - <br /> - <div class="greybox"> - <h3>Package Repositories</h3> - <table id="repolinks"> - {% for repo in repos %} - <tr> - <th><a href="/packages/?repo={{ repo.name }}">{{ repo.name }}</a></th> - <td>{{ repo.last_update }}</td> - </tr> - {% endfor %} - </table> - </div> - <br /> - <h3>Dev Links:</h3> - <ul class="links"> - <li><a href="/devel/">Dev Dashboard</a></li> - <li><a href="/developers/">Developer List</a></li> - </ul> - <br /> + <br clear="all" /> + <h3>Dev Links:</h3> + <ul class="links"> + <li><a href="/devel/">Dev Dashboard</a></li> + <li><a href="/developers/">Developer List</a></li> + <li><a href="/fellows/">Fellows List</a></li> + </ul> <h3>Main Site Links:</h3> <ul class="links"> <li><a href="http://bugs.archlinux.org">Bug Tracker</a></li> - <li><a href="http://archlinux.org/cvs/">CVS</a></li> + <li><a href="http://repos.archlinux.org/viewvc.cgi/">SVN</a></li> <li><a href="http://projects.archlinux.org">Projects</a></li> </ul> {% endblock %} diff --git a/templates/feeds/news_description.html b/templates/feeds/news_description.html deleted file mode 100644 index 26e1cbbe..00000000 --- a/templates/feeds/news_description.html +++ /dev/null @@ -1 +0,0 @@ -{{ obj.content }} diff --git a/templates/feeds/news_title.html b/templates/feeds/news_title.html deleted file mode 100644 index d355de5b..00000000 --- a/templates/feeds/news_title.html +++ /dev/null @@ -1 +0,0 @@ -{{ obj.title }} diff --git a/templates/feeds/packages_description.html b/templates/feeds/packages_description.html deleted file mode 100644 index 6b9c47b3..00000000 --- a/templates/feeds/packages_description.html +++ /dev/null @@ -1 +0,0 @@ -{{ obj.pkgdesc }} diff --git a/templates/feeds/packages_title.html b/templates/feeds/packages_title.html deleted file mode 100644 index a2731625..00000000 --- a/templates/feeds/packages_title.html +++ /dev/null @@ -1 +0,0 @@ -{{ obj.pkgname }} {{ obj.pkgver }}-{{ obj.pkgrel }} diff --git a/templates/packages/details.html b/templates/packages/details.html index 8daae748..c3b214e0 100644 --- a/templates/packages/details.html +++ b/templates/packages/details.html @@ -1,77 +1,80 @@ {% load package_extras %} {% extends "base.html" %} +{% block title %}Pkg: {{ pkg.pkgname }} - Arch Linux Package Details{% endblock %} {% block content %} - <div class="box"> - <h2 class="title">{{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }}</h2> - <div style="float:right" class="listing"> - <ul class="small"> - <li><a href="http://svn.archlinux.org/viewvc.cgi/{{ pkg.pkgname }}/repos/">View SVN Entries</a></li> - <li><a href="/packages/files/{{ pkg.id }}/">View File List</a></li> - <li> - {% if pkg.needupdate %} - <span style="font-size:x-small"><em>This package has been flagged out-of-date</em></span> - {% if not user.is_anonymous %} + <div class="box"> + <h2 class="title">{{ pkg.pkgname }} {{ pkg.pkgver }}-{{ pkg.pkgrel }}</h2> + <div style="float:right" class="listing"> + <ul class="small"> + <li><a href="http://repos.archlinux.org/viewvc.cgi/{{ pkg.pkgname }}/repos/{{ pkg.repo.name|lower }}-{{ pkg.arch.name|lower }}/">View SVN Entries</a></li> + <!-- <li><a href="/packages/files/{{ pkg.id }}/">View File List</a></li> --> + {% if pkg.needupdate %} + <li> + <span style="font-size:x-small"><em>This package has been flagged out-of-date</em></span> <br /> <a href="/packages/unflag/{{ pkg.id }}/">Click here to unflag</a> - {% endif %} - {% else %} - <a href="/packages/flag/{{ pkg.id }}/" onclick="return !window.open('/packages/flag/{{ pkg.id }}/','FlagHelp','height=250,width=450,location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no');">Flag Package Out-of-Date</a> - <a href="/packages/flaghelp" onclick="return !window.open('/packages/flaghelp','FlagHelp','height=250,width=450,location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no');"><span style="font-size:x-small">(?)</span></a> - {% endif %} - </li> - {% if not user.is_anonymous %} - <li> </li> - <li> - <form name="devaction" method="post" action="/packages/update/"> - <input type="hidden" name="pkgid" value="{{ pkg.id }}" /> - <input type="submit" style="background: #e1e3e6;" name="adopt" value="Adopt Package" /> - <input type="submit" style="background: #e1e3e6;" name="disown" value="Disown Package" /> - </form> - </li> - {% endif %} - </ul> - </div> - <table class="listing"> - <tr> - <th>Repository:</th> - <td>{{ pkg.repo.name }}</td> - </tr><tr> - <th>Category:</th> - <td>{{ pkg.category.category }}</td> - </tr><tr> - <th>Description:</th> - <td>{{ pkg.pkgdesc }}</td> - </tr><tr> - <th>URL:</th> - <td><a href="{{ pkg.url }}">{{ pkg.url }}</a></td> - </tr><tr> - <th>Maintainer:</th> - <td>{% if pkg.maintainer %}{{ pkg.maintainer.get_full_name }}{% else %}None{% endif %}</td> - </tr><tr> - <th>LastUpdated:</th> + </li> + {% endif %} + <li> </li> + <li> + <form name="devaction" method="post" action="/packages/update/"> + <input type="hidden" name="pkgid" value="{{ pkg.id }}" /> + <input type="submit" style="background: #e1e3e6;" name="adopt" value="Adopt Package" /> + <input type="submit" style="background: #e1e3e6;" name="disown" value="Disown Package" /> + </form> + </li> + </ul> + </div> + <table class="listing"> + <tr> + <th>Architecture:</th> + <td>{{ pkg.arch.name }}</td> + </tr><tr> + <th>Repository:</th> + <td>{{ pkg.repo.name|capfirst }}</td> + </tr><tr> + <th>Description:</th> + <td>{{ pkg.pkgdesc }}</td> + </tr><tr> + <th>Upstream URL:</th> + <td><a href="{{ pkg.url }}">{{ pkg.url }}</a></td> + </tr><tr> + <th>Maintainer:</th> + <td>{% if pkg.maintainer %}{{ pkg.maintainer.get_full_name }}{% else %}None{% endif %}</td> + </tr><tr> + <th>LastUpdated:</th> <td>{{ pkg.last_update|date:"Y-m-d" }}</td> - </tr> - </table> - <br /> - <table width="100%"> - <tr> - <td valign="top"> - <div class="listing"> - <h4>Dependencies:</h4> - <ul style="font-size:small;list-style:none"> - {{ pkg.depends_urlize }} - </ul> - </div> - </td><td colspan="2" valign="top"> - <div class="listing"> - <h4>Sources:</h4> - <ul style="font-size:small;list-style:none"> - {{ pkg.sources_urlize }} - </ul> - </div> - </td> - </tr> - </table> - </div> + </tr> + </table> + <br /> + <table width="100%"> + <tr> + <td valign="top" width="50%"> + <div class="listing"> + <h4>Dependencies:</h4> + <ul style="font-size:small;list-style:none"> + {% for depend in pkg.get_depends %} + {% ifequal depend.pkg None %} + <li>{{ depend.dep.depname }} (virtual)</li> + {% else %} + <li><a href="/packages/{{ depend.pkg.id }}/">{{ depend.dep.depname }}</a>{{ depend.dep.depvcmp }}</li> + {% endifequal %} + {% endfor %} + </ul> + </div> + </td> + <td valign="top"> + <div class="listing"> + <h4>Required By:</h4> + <ul style="font-size:small;list-style:none"> + {% for req in pkg.get_requiredby %} + <li><a href="/packages/{{ req.id }}/">{{ req.pkgname }}{% ifequal req.repo.name "Testing" %} (testing){% endifequal %}{% ifequal req.repo.name "Unstable" %} (unstable){% endifequal %}</a></li> + {% endfor %} + </ul> + </div> + </td> + </tr> + </table> + </div> {% endblock %} diff --git a/templates/packages/flag.html b/templates/packages/flag.html deleted file mode 100644 index 215b6fa8..00000000 --- a/templates/packages/flag.html +++ /dev/null @@ -1,26 +0,0 @@ -{% load validation %} -<html> -<head><title>Flagging Packages</title></head> -<body> -{% if errors %} - {% print_errors errors %} -{% endif %} -<span style="font-family: verdana, arial, helvetica"> -{% if confirmemail %} - Thank you. Maintainers have been notified. -{% else %} -<form method="post" action="."> - Please confirm your flag request.<br /> - <br /> - Email Address: (required) <br /> - <input type="text" name="confirmemail" size="40" maxlength="128" /><br /> - <br /> - Message to dev: (optional)<br /> - <textarea name="usermessage" rows="3" cols="40"></textarea><br /> - <input type="submit" value=" Confirm " /> -</form> -{% endif %} -</span> -</body> -</html> - diff --git a/templates/packages/flaghelp.html b/templates/packages/flaghelp.html deleted file mode 100644 index 09f7530b..00000000 --- a/templates/packages/flaghelp.html +++ /dev/null @@ -1,14 +0,0 @@ -<html> -<head><title>Flagging Packages</title></head> -<body> -<span style="font-family: verdana, arial, helvetica"> -If you notice that one of Arch's packages is out of date (ie, there is a newer -<b>stable</b> release available), then please notify us by using the <b>Flag</b> -button in the <i>Package Details</i> screen. This will notify the maintainer -responsible for that package so they can update it. -<br><br> -<b>Note:</b> Please do <i>not</i> use this facility if the package is broken! -Use the <a target="_blank" href='http://bugs.archlinux.org'>bugtracker</a> instead. -</span> -</body> -</html> diff --git a/templates/packages/outofdate.txt b/templates/packages/outofdate.txt deleted file mode 100644 index 7b863608..00000000 --- a/templates/packages/outofdate.txt +++ /dev/null @@ -1,13 +0,0 @@ - -* Note: this is an automated message - -{{ email }} wants to notify you that the following package may be out -of date: - - {{ pkgname }} ({{ weburl }}) -{% if message %} -The user provided the following additional text: - -{{ message }} -{% endif %} - diff --git a/templates/packages/search.html b/templates/packages/search.html index c5006cd6..a64b92a2 100644 --- a/templates/packages/search.html +++ b/templates/packages/search.html @@ -1,47 +1,47 @@ {% load validation %} {% load package_extras %} {% extends "base.html" %} - +{% block title %}Arch Linux - Package Search{% endblock %} {% block head %} <script type="text/JavaScript" src="/media/calendar.js"></script> <link href="/media/calendar.css" rel="stylesheet" type="text/css" /> {% endblock %} {% block content %} - <div class="greybox"> - <h4 style="text-align: right">Search Criteria</h4> - {% if errors %} - {% print_errors errors %} - {% endif %} - <hr /> - <form method="get" action="/packages/search/"> - <table width="100%"> - <tr> - <td><span class="smalltext">Repository</span></td> - <td><span class="smalltext">Category</span></td> - <td><span class="smalltext">Keywords</span></td> - <td><span class="smalltext">Last Update</span></td> - <td><span class="smalltext">Per Page</span></td> - </tr><tr> - <td> - <select name="repo"> - <option value="all">All</option> - {% for r in repos %} - <option value="{{ r.name }}"{% ifequal repo r.name %} selected{% endifequal %}>{{ r.name|capfirst }}</option> - {% endfor %} - </select> - </td><td> - <select name="category"> - <option value="all">All</option> - {% for c in categories %} - <option value="{{ c.category }}"{% ifequal category c.category %} selected{% endifequal %}>{{ c.category|capfirst }}</option> - {% endfor %} - </select> - </td><td> - <input type="text" name="q" value="{{ query|escape }}" size="30" maxlength="200" /> - </td><td> - <input type="text" name="lastupdate" value="{{ lastupdate|escape }}" size="10" maxlength="10" id="f_lastupdate" /> <button type="reset" id="f_trigger">...</button> - <script type="text/javascript"> + <div class="greybox"> + <h4 style="text-align: right">Search Criteria</h4> + {% if errors %} + {% print_errors errors %} + {% endif %} + <hr /> + <form method="get" action="/packages/search/"> + <table width="100%"> + <tr> + <td><span class="smalltext">Arch</span></td> + <td><span class="smalltext">Repository</span></td> + <td><span class="smalltext">Keywords</span></td> + <td><span class="smalltext">Last Update</span></td> + <td><span class="smalltext">Per Page</span></td> + </tr><tr> + <td> + <select name="arch"> + <option value="all">All</option> + {% for a in arches %} + <option value="{{ a.name }}"{% ifequal arch a.name %} selected{% endifequal %}>{{ a.name }}</option> + {% endfor %} + </select> + </td><td> + <select name="repo"> + <option value="all">All</option> + {% for r in repos %} + <option value="{{ r.name }}"{% ifequal repo r.name %} selected{% endifequal %}>{{ r.name|capfirst }}</option> + {% endfor %} + </select> + </td><td> + <input type="text" name="q" value="{{ query|escape }}" size="30" maxlength="200" /> + </td><td> + <input type="text" name="lastupdate" value="{{ lastupdate|escape }}" size="10" maxlength="10" id="f_lastupdate" /> <button type="reset" id="f_trigger">...</button> + <script type="text/javascript"> Calendar.setup({ inputField : "f_lastupdate", // id of the input field ifFormat : "%Y-%m-%d", // format of the input field @@ -50,71 +50,65 @@ singleClick : true, // double-click mode step : 1 // show all years in drop-down boxes (instead of every other year as default) }); - </script> - </td><td> - <select name="limit"> - <option value="50"{% ifequal limit 50 %} selected{% endifequal %}>50</option> - <option value="100"{% ifequal limit 100 %} selected{% endifequal %}>100</option> - <option value="250"{% ifequal limit 250 %} selected{% endifequal %}>250</option> - <option value="0"{% ifequal limit 0 %} selected{% endifequal %}>All</option> - </select> - </td><td> - <input type="submit" value=" Search " /> - </td> - </tr> - </table> - </form> - </div> - <br /><br /> + </script> + </td><td> + <select name="limit"> + <option value="50"{% ifequal limit 50 %} selected{% endifequal %}>50</option> + <option value="100"{% ifequal limit 100 %} selected{% endifequal %}>100</option> + <option value="250"{% ifequal limit 250 %} selected{% endifequal %}>250</option> + <option value="0"{% ifequal limit 0 %} selected{% endifequal %}>All</option> + </select> + </td><td> + <input type="submit" value=" Search " /> + </td> + </tr> + </table> + </form> + </div> + <br /><br /> - {% if results %} - <div class="greybox"> - <table class="results" width="100%"> - <tr> - {% if not user.is_anonymous %} - <form method="post" action="/packages/update/"> - <th> </th> - {% endif %} - <th><a href="{% buildsortqs "repo" %}">Repo</a></th> - <th><a href="{% buildsortqs "category" %}">Category</a></th> - <th><a href="{% buildsortqs "pkgname" %}">Name</a></th> - <th>Version</th> - <th>Description</th> - <th><a href="{% buildsortqs "last_update" %}">Last Updated</a></th> - </tr> - {% for pkg in results %} + {% if results %} + <div class="greybox"> + <table class="results" width="100%"> + <tr> + <form method="post" action="/packages/update/"> + <th> </th> + <th><a href="{% buildsortqs "arch" %}">Arch</a></th> + <th><a href="{% buildsortqs "repo" %}">Repo</a></th> + <th><a href="{% buildsortqs "pkgname" %}">Name</a></th> + <th>Version</th> + <th>Description</th> + <th><a href="{% buildsortqs "-last_update" %}">Last Updated</a></th> + </tr> + {% for pkg in results %} <tr class="{% cycle pkgr2,pkgr1 %}"> - {% if not user.is_anonymous %} - <td><input type="checkbox" name="pkgid" value="{{ pkg.id }}" /></td> - {% endif %} - <td>{{ pkg.repo.name }}</td> - <td>{{ pkg.category.category }}</td> - <td><a href="{{ pkg.get_absolute_url }}">{{ pkg.pkgname }}</a></td> - {% if pkg.needupdate %} - <td><span style="color:red">{{ pkg.pkgver }}-{{ pkg.pkgrel }}</span></td> - {% else %} - <td>{{ pkg.pkgver }}-{{ pkg.pkgrel }}</td> - {% endif %} - <td>{{ pkg.pkgdesc }}</td> - <td>{{ pkg.last_update|date:"Y-m-d" }}</td> - </tr> - {% endfor %} - <tr> - <td colspan="2" style="font-size:x-small">{% if prevpage %}<br /><a href="{{ prevpage }}"><<< Prev</a>{% endif %}</td> - <td colspan="2"> </td> - <td colspan="2" style="font-size:x-small;text-align:right">{% if nextpage %}<br /><a href="{{ nextpage }}">Next >>></a>{% endif %}</td> - </tr> - {% if not user.is_anonymous %} - <tr> - <td colspan="3"> </td> - <td colspan="2" style="text-align:center"><input type="submit" name="adopt" value="Adopt Packages"></td> - <td colspan="1" style="text-align:center"><input type="submit" name="disown" value="Disown Packages"></td> - <td colspan="1"> </td> - </tr> - </form> - {% endif %} - </table> - </div> - {% endif %} + <td><input type="checkbox" name="pkgid" value="{{ pkg.id }}" /></td> + <td>{{ pkg.arch.name }}</td> + <td>{{ pkg.repo.name|capfirst }}</td> + <td><a href="{{ pkg.get_absolute_url }}">{{ pkg.pkgname }}</a></td> + {% if pkg.needupdate %} + <td><span style="color:red">{{ pkg.pkgver }}-{{ pkg.pkgrel }}</span></td> + {% else %} + <td>{{ pkg.pkgver }}-{{ pkg.pkgrel }}</td> + {% endif %} + <td>{{ pkg.pkgdesc }}</td> + <td>{{ pkg.last_update|date:"Y-m-d" }}</td> + </tr> + {% endfor %} + <tr> + <td colspan="2" style="font-size:x-small">{% if prevpage %}<br /><a href="{{ prevpage }}"><<< Prev</a>{% endif %}</td> + <td colspan="2"> </td> + <td colspan="2" style="font-size:x-small;text-align:right">{% if nextpage %}<br /><a href="{{ nextpage }}">Next >>></a>{% endif %}</td> + </tr> + <tr> + <td colspan="3"> </td> + <td colspan="2" style="text-align:center"><input type="submit" name="adopt" value="Adopt Packages"></td> + <td colspan="1" style="text-align:center"><input type="submit" name="disown" value="Disown Packages"></td> + <td colspan="1"> </td> + </tr> + </form> + </table> + </div> + {% endif %} {% endblock %} diff --git a/templates/todolists/list.html b/templates/todolists/list.html index 714e1139..6edf1324 100644 --- a/templates/todolists/list.html +++ b/templates/todolists/list.html @@ -1,4 +1,5 @@ {% extends "base.html" %} + {% block content %} <div class="greybox"> {% if perms.todolists.add_todolist %} @@ -8,26 +9,26 @@ {% endif %} <h2 class="title">Package ToDo lists</h2> <table class="results" width="100%"> - <thead> - <tr> - <th>Name</th> - <th>Creation Date</th> - <th>Creator</th> - <th>Description</th> - <th>Status</th> - </tr> - </thead> - <tbody> - {% for list in lists %} - <tr class="{% cycle pkgr2,pkgr1 %}"> - <td style="white-space:nowrap"><a href="/todo/{{ list.id }}/">{{ list.name }}</a></td> - <td>{{ list.date_added }}</td> - <td>{{ list.creator.get_full_name }}</td> - <td>{{ list.description }}</td> - <td>{% if list.complete %}<span style="color:blue">Complete</span>{% else %}<span style="color:red">Incomplete</span>{% endif %}</td> - </tr> - {% endfor %} - </tbody> + <thead> + <tr> + <th>Name</th> + <th>Creation Date</th> + <th>Creator</th> + <th>Description</th> + <th>Status</th> + </tr> + </thead> + <tbody> + {% for list in lists %} + <tr class="{% cycle pkgr2,pkgr1 %}"> + <td style="white-space:nowrap"><a href="/todo/{{ list.id }}/">{{ list.name }}</a></td> + <td>{{ list.date_added }}</td> + <td>{{ list.creator.get_full_name }}</td> + <td>{{ list.description }}</td> + <td>{% if list.complete %}<span style="color:blue">Complete</span>{% else %}<span style="color:red">Incomplete</span>{% endif %}</td> + </tr> + {% endfor %} + </tbody> </table> </div> {% endblock %} diff --git a/templates/todolists/view.html b/templates/todolists/view.html index c0c0dc90..1ebf810c 100644 --- a/templates/todolists/view.html +++ b/templates/todolists/view.html @@ -4,62 +4,64 @@ <script type="text/javascript" src="/media/jquery.tablesorter.min.js"></script> <script type="text/javascript"> $(document).ready( - function(){ + function(){ $("#todotable").tablesorter({widgets: ['zebra']}); - } + } ); </script> <style type="text/css"> -table#todotable thead tr .header { - background-image: url('/media/bg.gif'); - background-repeat: no-repeat; - background-position: center right; - cursor: pointer; -} -table#todotable thead tr .headerSortUp { - background-image: url('/media/asc.gif'); -} -table#todotable thead tr .headerSortDown { - background-image: url('/media/desc.gif'); -} -table#todotable thead tr .headerSortDown, table#todotable thead tr .headerSortUp { - background-color: #8dbdd8; -} -table#todotable tbody tr.odd { - background-color: #eee4cb; -} + table#todotable thead tr .header { + background-image: url('/media/bg.gif'); + background-repeat: no-repeat; + background-position: center right; + cursor: pointer; + } + table#todotable thead tr .headerSortUp { + background-image: url('/media/asc.gif'); + } + table#todotable thead tr .headerSortDown { + background-image: url('/media/desc.gif'); + } + table#todotable thead tr .headerSortDown, table.todotable thead tr .headerSortUp { + background-color: #8dbdd8; + } + table#todotable tbody tr.odd { + background-color: #eee4cb; + } </style> {% endblock %} {% block content %} <div class="greybox"> - <h3 class="title">ToDo List: {{ list.name }}</h2> + <h2 class="title">ToDo List: {{ list.name }}</h2> <table id="todotable" class="results" width="100%"> - <thead> - <tr> - <th>ID</th> - <th>Repo</th> - <th>Name</th> - <th>Maintainer</th> - <th>Status</th> - </tr> - </thead> - <tbody> - {% for pkg in pkgs %} - <tr class="{% cycle even,odd %}"> - <td><a href="/packages/{{ pkg.pkg.id }}/">{{ pkg.pkg.id }}</a></td> - <td>{{ pkg.pkg.repo.name }}</td> - <td>{{ pkg.pkg.pkgname }}</td> - <td>{{ pkg.pkg.maintainer.get_full_name }}</td> - <td> - {% if pkg.complete %} - <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/"><span style="color:blue">Complete</span></a> - {% else %} - <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/"><span style="color:red">Incomplete</span></a> - {% endif %} - </td> - </tr> - {% endfor %} - </tbody> + <thead> + <tr> + <th>ID</th> + <th>Arch</th> + <th>Repo</th> + <th>Name</th> + <th>Maintainer</th> + <th>Status</th> + </tr> + </thead> + <tbody> + {% for pkg in pkgs %} + <tr class="{% cycle even,odd %}"> + <td><a href="/packages/{{ pkg.pkg.id }}/">{{ pkg.pkg.id }}</a></td> + <td>{{ pkg.pkg.arch.name }}</td> + <td>{{ pkg.pkg.repo.name|capfirst }}</td> + <td>{{ pkg.pkg.pkgname }}</td> + <td>{{ pkg.pkg.maintainer.get_full_name|default:"Orphan" }}</td> + <td> + {% if pkg.complete %} + <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/"><span style="color:blue">Complete</span></a> + {% else %} + <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/"><span style="color:red">Incomplete</span></a> + {% endif %} + </td> + </tr> + {% endfor %} + </tbody> </table> </div> {% endblock %} diff --git a/todolists/models.py b/todolists/models.py deleted file mode 100644 index ec24d5ed..00000000 --- a/todolists/models.py +++ /dev/null @@ -1,33 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User -from archweb_dev.packages.models import Package - -class TodolistManager(models.Manager): - def get_incomplete(self): - results = [] - for l in self.all().order_by('-date_added'): - if TodolistPkg.objects.filter(list=l.id).filter(complete=False).count() > 0: - results.append(l) - return results - -class Todolist(models.Model): - id = models.AutoField(primary_key=True) - creator = models.ForeignKey(User) - name = models.CharField(maxlength=255) - description = models.TextField() - date_added = models.DateField(auto_now_add=True) - objects = TodolistManager() - class Meta: - db_table = 'todolists' - -class TodolistPkg(models.Model): - id = models.AutoField(primary_key=True) - list = models.ForeignKey(Todolist) - pkg = models.ForeignKey(Package) - complete = models.BooleanField(default=False) - class Meta: - db_table = 'todolists_pkgs' - unique_together = (('list','pkg'),) - -# vim: set ts=4 sw=4 et: - diff --git a/todolists/views.py b/todolists/views.py index cce92a6c..3a96dc87 100644 --- a/todolists/views.py +++ b/todolists/views.py @@ -1,17 +1,15 @@ from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import get_object_or_404 -from django.contrib.auth.decorators import login_required, user_passes_test +from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.models import User -from archweb_dev.lib.utils import render_response -from archweb_dev.todolists.models import Todolist, TodolistPkg -from archweb_dev.packages.models import Package +from archweb_dev.main.utils import render_response +from archweb_dev.main.models import Todolist, TodolistPkg, Package +from archweb_dev.main.models import Arch, Repo # FIXME: ugly hackery. http://code.djangoproject.com/ticket/3450 import django.db IntegrityError = django.db.backend.Database.IntegrityError -@login_required -#@is_maintainer def flag(request, listid, pkgid): list = get_object_or_404(Todolist, id=listid) pkg = get_object_or_404(TodolistPkg, id=pkgid) @@ -19,21 +17,21 @@ def flag(request, listid, pkgid): pkg.save() return HttpResponseRedirect('/todo/%s/' % (listid)) -@login_required def view(request, listid): list = get_object_or_404(Todolist, id=listid) pkgs = TodolistPkg.objects.filter(list=list.id).order_by('pkg') - return render_response(request, 'todolists/view.html', {'list':list,'pkgs':pkgs}) + return render_response( + request, + 'todolists/view.html', + {'list':list,'pkgs':pkgs}) -@login_required def list(request): lists = Todolist.objects.order_by('-date_added') for l in lists: - l.complete = TodolistPkg.objects.filter(list=l.id,complete=False).count() == 0 + l.complete = TodolistPkg.objects.filter( + list=l.id,complete=False).count() == 0 return render_response(request, 'todolists/list.html', {'lists':lists}) -@login_required -#@is_maintainer @user_passes_test(lambda u: u.has_perm('todolists.add_todolist')) def add(request): if request.POST: @@ -50,7 +48,8 @@ def add(request): todo.save() # now link in packages for p in request.POST.get('packages').split("\n"): - for pkg in Package.objects.filter(pkgname=p.strip()): + for pkg in Package.objects.filter( + pkgname=p.strip()).order_by('arch'): todopkg = TodolistPkg( list = todo, pkg = pkg) @@ -1,12 +1,10 @@ from django.conf.urls.defaults import * from django.conf import settings -from archweb_dev.news.models import News +from archweb_dev.main.models import News from django.views.decorators.cache import cache_page urlpatterns = patterns('', # Dynamic Stuff - (r'^packages/flag/(\d+)/$', 'archweb_dev.packages.views.flag'), - (r'^packages/flaghelp/$', 'archweb_dev.packages.views.flaghelp'), (r'^packages/unflag/(\d+)/$', 'archweb_dev.packages.views.unflag'), (r'^packages/files/(\d+)/$', 'archweb_dev.packages.views.files'), (r'^packages/search/$', 'archweb_dev.packages.views.search'), @@ -45,6 +43,7 @@ urlpatterns = patterns('', (r'^art/$', 'archweb_dev.devel.views.art'), (r'^cvs/$', 'archweb_dev.devel.views.cvs'), (r'^developers/$', 'archweb_dev.devel.views.developers'), + (r'^fellows/$', 'archweb_dev.devel.views.fellows'), (r'^donate/$', 'archweb_dev.devel.views.donate'), (r'^download/$', 'archweb_dev.devel.views.download'), (r'^irc/$', 'archweb_dev.devel.views.irc'), diff --git a/wiki/models.py b/wiki/models.py deleted file mode 100644 index 85f0726c..00000000 --- a/wiki/models.py +++ /dev/null @@ -1,19 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User - -class Wikipage(models.Model): - """Wiki page storage""" - title = models.CharField(maxlength=255) - content = models.TextField() - last_author = models.ForeignKey(User) - class Meta: - db_table = 'wikipages' - - def editurl(self): - return "/wiki/edit/" + self.title + "/" - - def __repr__(self): - return self.title - -# vim: set ts=4 sw=4 et: - diff --git a/wiki/templatetags/wikitags.py b/wiki/templatetags/wikitags.py index c8c1cd38..da662e8a 100644 --- a/wiki/templatetags/wikitags.py +++ b/wiki/templatetags/wikitags.py @@ -1,6 +1,6 @@ from django.template import Library from django.conf import settings -from archweb_dev.lib import markdown +from archweb_dev.main import markdown import re register = Library() diff --git a/wiki/views.py b/wiki/views.py index 796f5f98..90378346 100644 --- a/wiki/views.py +++ b/wiki/views.py @@ -2,11 +2,9 @@ # Based on code from http://e-scribe.com/news/210 # from django.http import HttpResponse, HttpResponseRedirect -from django.contrib.auth.decorators import login_required -from archweb_dev.lib.utils import render_response -from archweb_dev.wiki.models import Wikipage +from archweb_dev.main.utils import render_response +from archweb_dev.main.models import Wikipage -@login_required def index(request): """Return a list of all wiki pages""" pages = Wikipage.objects.all().order_by('title') @@ -16,7 +14,6 @@ def main(request): """Return the Index wiki page""" return HttpResponseRedirect("/wiki/WikiIndex/") -@login_required def page(request, title): """Display page, or redirect to root if page doesn't exist yet""" try: @@ -25,7 +22,6 @@ def page(request, title): except Wikipage.DoesNotExist: return HttpResponseRedirect("/wiki/edit/%s/" % title) -@login_required def edit(request, title): """Process submitted page edits (POST) or display editing form (GET)""" if request.POST: @@ -48,7 +44,6 @@ def edit(request, title): page.body = "<!-- Enter content here -->" return render_response(request, 'wiki/edit.html', {'page':page}) -@login_required def delete(request): """Delete a page""" if request.POST: |