summarylogtreecommitdiffstats
diff options
context:
space:
mode:
author0strodamus2016-03-23 14:23:54 -0700
committer0strodamus2016-03-23 14:23:54 -0700
commitd55bd76f09554c1ee564844294e71523c883e90a (patch)
tree2bcdbca45cc05ec63662e3b1f7a1b9a69e05f12b
parent23dd850d9c5ae7cc7e7ce41beb72406094fe29de (diff)
downloadaur-d55bd76f09554c1ee564844294e71523c883e90a.tar.gz
added updates for AUR4/ALA from Qt5 package sources
-rw-r--r--.SRCINFO12
-rw-r--r--001-pkgbrowser-qt4-build-fixes.patch (renamed from 001-pkgbrowser-qt4-fixes.patch)23
-rw-r--r--002-pkgbrowser-qt4-aur4-fixes.patch634
-rw-r--r--PKGBUILD14
4 files changed, 651 insertions, 32 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0345e0a7d523..ab2bda009b04 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Mon Feb 1 19:50:29 UTC 2016
+# Wed Mar 23 21:20:34 UTC 2016
pkgbase = pkgbrowser-qt4
- pkgdesc = A utility for browsing pacman databases and the AUR (Qt4 Version)
+ pkgdesc = A utility for browsing pacman databases and the AUR (Qt4 version)
pkgver = 0.18.1
- pkgrel = 2
+ pkgrel = 3
url = https://bitbucket.org/kachelaqa/pkgbrowser
install = pkgbrowser.install
arch = i686
@@ -16,9 +16,11 @@ pkgbase = pkgbrowser-qt4
conflicts = pkgbrowser
replaces = pkgbrowser
source = https://bitbucket.org/kachelaqa/pkgbrowser/downloads/pkgbrowser-0.18.1.tar.gz
- source = 001-pkgbrowser-qt4-fixes.patch
+ source = 001-pkgbrowser-qt4-build-fixes.patch
+ source = 002-pkgbrowser-qt4-aur4-fixes.patch
sha256sums = 5edcb712ac97b0a616a2bfbee07a4549b4cc8f5e2d777b2e0d12015554e2189b
- sha256sums = 9de7d8bcd20177e2c978a6df88948b6a1c19704e211f3a7a2d9378a797631aea
+ sha256sums = dbf6b6883759a5a05cfe88f2dab510cf8d1ce1a258bb1f9087eb351fffe0b9b1
+ sha256sums = dc5bb5cbe809183648f44861f779fc1fa1d88217f357c423198acff0c10d3911
pkgname = pkgbrowser-qt4
diff --git a/001-pkgbrowser-qt4-fixes.patch b/001-pkgbrowser-qt4-build-fixes.patch
index b6fdb146a06e..5eb142c862c4 100644
--- a/001-pkgbrowser-qt4-fixes.patch
+++ b/001-pkgbrowser-qt4-build-fixes.patch
@@ -19,25 +19,4 @@ diff -aur a/Makefile b/Makefile
+ install -m 644 $(APPNAME)/ui/__pycache__/*.pyc $(APPLIB)/ui/__pycache__
install -m 644 $(APPNAME).desktop $(DESKTOPDIR)
install -m 644 icons/app.png $(ICONDIR)/$(APPNAME).png
- install -m 755 $(APPNAME).sh $(BINDIR)/$(APPNAME)
-diff -aur a/pkgbrowser/backend.py b/pkgbrowser/backend.py
---- a/pkgbrowser/backend.py 2015-03-29 10:41:41.000000000 -0700
-+++ b/pkgbrowser/backend.py 2015-11-13 20:15:15.105038000 -0700
-@@ -3,7 +3,7 @@
- import sys, os, re, glob, copy, errno, socket, json
- import urllib.request, urllib.error, http.client
- from zipfile import ZipFile, BadZipfile
--from html.parser import HTMLParser, HTMLParseError
-+from html.parser import HTMLParser
- from traceback import format_exception
- from functools import cmp_to_key
- from collections import defaultdict
-@@ -286,7 +286,7 @@
- self.reset()
- try:
- self.feed(data.decode('utf-8', 'replace'))
-- except (HTMLParseError, AssertionError):
-+ except AssertionError:
- pass
- return self._info
-
+ install -m 755 $(APPNAME).sh $(BINDIR)/$(APPNAME) \ No newline at end of file
diff --git a/002-pkgbrowser-qt4-aur4-fixes.patch b/002-pkgbrowser-qt4-aur4-fixes.patch
new file mode 100644
index 000000000000..dfe2c14b3ad6
--- /dev/null
+++ b/002-pkgbrowser-qt4-aur4-fixes.patch
@@ -0,0 +1,634 @@
+diff -aur a/pkgbrowser/backend.py b/pkgbrowser/backend.py
+--- a/pkgbrowser/backend.py 2015-03-29 10:41:41.000000000 -0700
++++ b/pkgbrowser/backend.py 2016-03-23 14:13:05.226042675 -0700
+@@ -1,9 +1,9 @@
+-# Copyright (C) 2010-2015, kachelaqa <kachelaqa@gmail.com>
++# Copyright (C) 2010-2016, kachelaqa <kachelaqa@gmail.com>
+
+ import sys, os, re, glob, copy, errno, socket, json
+ import urllib.request, urllib.error, http.client
+ from zipfile import ZipFile, BadZipfile
+-from html.parser import HTMLParser, HTMLParseError
++from html.parser import HTMLParser
+ from traceback import format_exception
+ from functools import cmp_to_key
+ from collections import defaultdict
+@@ -11,19 +11,19 @@
+ from threading import Thread
+ from queue import Queue
+ from pkgbrowser import alpm, conf, utils
+-from pkgbrowser.enum import State, Source, Category
++from pkgbrowser.enum import State, Source
+
+
+ AUR_DOM = os.environ.get('AUR_DOM', 'https://aur.archlinux.org')
+ AUR_RPC = AUR_DOM + '/rpc.php'
+ AUR_HTM = AUR_DOM + '/packages.php'
+-AUR_PKG = AUR_DOM + '%s/PKGBUILD'
++AUR_SRC = AUR_DOM + '/cgit/aur.git/plain/.SRCINFO'
+ PACNET_DOM = ('http://pacnet.karbownicki.com',
+ 'http://pacnet.archlinux.pl')
+ PACNET_CAT = '/api/categories/'
+ PACNET_LIST = '/api/category/%s/'
+-ARM_DOM = os.environ.get('ARM_DOM', 'http://repo-arm.archlinuxcn.org')
+-ARM_SEARCH = ARM_DOM + '/search'
++ALA_DOM = os.environ.get('ALA_DOM', 'https://archive.archlinux.org')
++ALA_LIST = ALA_DOM + '/packages/%s/%s/'
+ ARCH_PKG = 'https://www.archlinux.org/packages/%s/%s/%s'
+
+ _arch_repos = set([
+@@ -199,24 +199,28 @@
+ source.extend(entry.decode('utf-8').splitlines())
+ except (IOError, BadZipfile):
+ cls.clear(key)
+- if not cls._offline and ARM_DOM:
+- compare = cmp_to_key(lambda a, b:
+- alpm.pkg_vercmp(conf.match_pkgfile(b).group(2),
+- conf.match_pkgfile(a).group(2)))
+- urls = [utils.make_url(ARM_SEARCH,
+- arch=architectures[0], pkgname=name)
++ if not cls._offline and ALA_DOM:
++ parser = AlaParser()
++ urls = [utils.make_url(ALA_LIST % (name[0], name))
+ for name in names]
+ downloads = Downloader.download(urls)
+ for index, url in enumerate(urls):
+ data = downloads.get(url)
+- if data is not None:
+- data = data.decode('utf-8', 'replace')
+- for line in data.strip().splitlines():
+- try:
+- sources[index].append(line.split('|')[4])
+- except IndexError:
+- pass
+- sources[index].sort(key=compare)
++ if data is None:
++ continue
++ source = sources[index]
++ data = parser.read(data)
++ for arch in architectures:
++ path = '%s/%s' % (names[index], arch)
++ if path not in data:
++ continue
++ for package in data[path]:
++ source.append(os.path.join(url, package))
++ compare = cmp_to_key(
++ lambda a, b, cmp=alpm.pkg_vercmp, match=conf.match_pkgfile:
++ cmp(match(b).group(2), match(a).group(2)))
++ for source in sources:
++ source.sort(key=compare)
+ return sources
+
+ @classmethod
+@@ -275,6 +279,34 @@
+ self._tasks.task_done()
+
+
++class AlaParser(HTMLParser):
++ def __init__(self):
++ HTMLParser.__init__(self)
++
++ def read(self, data):
++ self._link = False
++ self._info = defaultdict(list)
++ self.reset()
++ try:
++ self.feed(data.decode('utf-8', 'replace'))
++ except AssertionError:
++ pass
++ return self._info
++
++ def handle_starttag(self, tag, attrs):
++ self._link = tag == 'a'
++
++ def handle_data(self, data):
++ if self._link:
++ data = data.strip()
++ match = conf.match_pkgfile(data)
++ if match is not None:
++ self._info['%s/%s' % match.group(1, 3)].append(data)
++
++ def handle_endtag(self, tag):
++ self._link = False
++
++
+ class AurParser(HTMLParser):
+ def __init__(self):
+ HTMLParser.__init__(self)
+@@ -286,7 +318,7 @@
+ self.reset()
+ try:
+ self.feed(data.decode('utf-8', 'replace'))
+- except (HTMLParseError, AssertionError):
++ except AssertionError:
+ pass
+ return self._info
+
+@@ -565,10 +597,11 @@
+ targets['multiinfo'].append(alpm.pkg_get_name(package))
+ for info in self._fetch_packages(targets):
+ items.append((info['Name'], (
+- info['ID'],
+- info['URLPath'],
++ info['PackageBase'],
+ info['Version'],
+ info['Maintainer'] or '',
++ info['NumVotes'],
++ info['Popularity'],
+ )))
+ return items
+
+@@ -673,7 +706,7 @@
+ def pkg_get_maintainer(item):
+ name = alpm.pkg_get_name(item)
+ if name in self._rpcs:
+- return self._rpcs[name][3]
++ return self._rpcs[name][2]
+ return alpm.pkg_get_packager(item)
+ dispatch = {
+ 'name': alpm.pkg_get_name,
+@@ -697,70 +730,62 @@
+ key, limit = 'arg[]', 300
+ else:
+ key, limit = 'arg', 1
+- query = defaultdict(list, type=mode, v=2)
++ query = defaultdict(list, type=mode, v=4)
+ for index, target in enumerate(targets, 1):
+ query[key].append(target)
+ if not index % limit or index == last:
+ urls.append(utils.make_url(AUR_RPC, **query))
+- query = defaultdict(list, type=mode, v=2)
++ query = defaultdict(list, type=mode, v=4)
+ for url, data in Downloader.download(urls).items():
+ data = json.loads(data.decode('utf-8', 'replace'))
+ if data['type'] == 'error':
+- raise NetworkError(url, data['results'])
++ raise NetworkError(url, data['error'])
+ elif data['resultcount']:
+- if data['type'] == 'info':
+- packages.append(data['results'])
+- else:
+- packages.extend(data['results'])
++ packages.extend(data['results'])
+ return packages
+
+- def _fetch_package(self, identifier, urlpath=None, update=False):
++ def _fetch_package(self, name, basename=None, update=False):
+ if not self._offline:
+ info = None
+- urls = {'rpc': utils.make_url(
+- AUR_RPC, type='info', arg=identifier, v=2)}
++ urls = {
++ 'rpc': utils.make_url(AUR_RPC, type='info', arg=name, v=4),
++ 'htm': utils.make_url(AUR_HTM, N=name),
++ }
+ while True:
+- if urlpath:
+- urls['pkg'] = utils.make_url(
+- AUR_PKG % os.path.dirname(urlpath))
+- urls['htm'] = utils.make_url(
+- AUR_HTM, ID=identifier)
++ if basename:
++ urls['src'] = utils.make_url(AUR_SRC, h=basename)
+ downloads = Downloader.download(urls.values())
+- if info is None:
++ if 'rpc' in urls:
+ url = urls.pop('rpc')
+ data = downloads.get(url)
+ if data is not None:
+ data = json.loads(data.decode('utf-8', 'replace'))
+ if data['type'] == 'error':
+- raise NetworkError(url, data['results'])
++ raise NetworkError(url, data['error'])
+ elif data['resultcount']:
+- info = data['results']
+- if not urlpath:
+- identifier = info['ID']
+- urlpath = info['URLPath']
++ info = data['results'][0]
++ data = downloads.get(urls.pop('htm'))
++ if data is not None:
++ info.update(self._aurparser.read(data))
++ if not basename:
++ basename = info['PackageBase']
+ continue
+ if info is not None:
+- data = downloads.get(urls['htm'])
+- if data is not None:
+- info.update(self._aurparser.read(data))
+- data = downloads.get(urls['pkg'])
++ data = downloads.get(urls['src'])
+ if data is not None:
+- pkgbuild = conf.load_pkgbuild(data)[0]
+- if pkgbuild:
+- info.update(pkgbuild)
++ info.update(conf.load_srcinfo(name, data))
+ return AurPackage(info, update=update)
+ break
+- return NullPackage(identifier)
++ return NullPackage(name)
+
+ def get_package(self, target, location=None, state=State.Unknown):
+ if isinstance(target, Summary):
+ state = target.state
+ if state & State.AUR and not state & State.Installed:
+- location = target.urlpath
+- target = target.identifier
++ location = target.basename
+ else:
+ location = target.repository
+- target = target.name
++ target = target.name
+ update = bool(state & State.Update)
+ if state & State.AUR and not state & State.Installed:
+ return self._fetch_package(target, location, update)
+@@ -782,10 +807,11 @@
+ return NullPackage(target)
+ if (local is not None and
+ (not locations or state & State.Installed)):
+- if state & State.Foreign or state & State.Unknown:
++ if ((state & State.Foreign or state & State.Unknown) and
++ not state & State.Database):
+ rpc = self._rpcs.get(target)
+ if rpc is not None:
+- aur = self._fetch_package(rpc[0], rpc[1], update)
++ aur = self._fetch_package(target, rpc[0], update)
+ return Package(local, aur)
+ return Package(local)
+ elif not locations and state & State.Unknown:
+@@ -795,7 +821,8 @@
+ replacer = alpm.db_find_replacer(target, 0)
+ if replacer is not None:
+ return Package(replacer)
+- return self._fetch_package(target, None, update)
++ if not state & State.Database:
++ return self._fetch_package(target, None, update)
+ return NullPackage(target)
+
+ def find(self, text, filters=0, keys=()):
+@@ -864,8 +891,9 @@
+ summary.version = package['Version']
+ summary.repository = 'aur'
+ summary.state = State.NonInstalled | State.AUR
+- summary.identifier = package['ID']
+- summary.urlpath = package['URLPath']
++ summary.basename = package['PackageBase']
++ summary.votes = package['NumVotes']
++ summary.popularity = package['Popularity']
+ output.append(summary)
+ return output
+
+@@ -907,12 +935,12 @@
+ if summary.repository in (local, 'aur'):
+ rpc = self._rpcs.get(summary.name)
+ if rpc is not None:
+- identifier, urlpath, version = rpc[:3]
+ summary.repository = 'aur'
+- summary.identifier = identifier
+- summary.urlpath = urlpath
+- summary.version = version
++ summary.basename = rpc[0]
++ summary.version = rpc[1]
+ summary.state |= State.AUR
++ summary.votes = rpc[3]
++ summary.popularity = rpc[4]
+ elif summary.repository == local:
+ summary.repository = alpm.pkg_get_repository(package)
+ if filters & State.Update:
+@@ -937,17 +965,18 @@
+ return self._call([['_list_targets', targets]])
+
+ def _list_targets(self, targets):
+- aur = []
++ unknown = []
+ packages = []
+- for target in targets:
+- package = self.get_package(target)
+- state = package['state']
+- if state & State.AUR and not state & State.Installed:
+- aur.append(package.base())
+- elif not state & State.Unknown:
++ for target in set(targets):
++ package = self.get_package(
++ target, state=(State.Database | State.Unknown))
++ if package['state'] & State.Unknown:
++ unknown.append(target)
++ else:
+ packages.append((package['repository'], package.base()))
+ items = self._filter_packages(packages)
+- items.extend(self._filter_aur(aur))
++ items.extend(self._filter_aur(
++ self._fetch_packages({'multiinfo': unknown})))
+ return items
+
+ def list_packages(self, filters=0, location=None):
+@@ -1034,11 +1063,12 @@
+ name = ''
+ version = ''
+ repository = ''
+- identifier = ''
+- urlpath = ''
++ basename = ''
+ state = 0
+ date = 0
+ size = -1
++ votes = -1
++ popularity = -1
+
+
+ class BasePackage(object):
+@@ -1282,14 +1312,14 @@
+ pass
+ elif key == 'votes':
+ try:
+- return str(int(self._base.get('NumVotes')))
++ return int(self._base.get('NumVotes'))
+ except (ValueError, TypeError):
+ pass
+- elif key == 'category':
++ elif key == 'popularity':
+ try:
+- return int(self._base.get('CategoryID'))
++ return float(self._base.get('Popularity'))
+ except (ValueError, TypeError):
+- return Category.Unknown
++ pass
+ elif key == 'repository':
+ return 'aur'
+ elif key == 'installed':
+diff -aur a/pkgbrowser/conf.py b/pkgbrowser/conf.py
+--- a/pkgbrowser/conf.py 2015-03-29 10:41:40.000000000 -0700
++++ b/pkgbrowser/conf.py 2016-03-23 11:06:00.000000000 -0700
+@@ -122,62 +122,45 @@
+ zip.writestr(path, '\n'.join(filenames).encode('utf-8'))
+ return ZipFile(temp)
+
+-def load_pkgbuild(data):
+- pkgbuild = {}
+- errors = None
+- if data:
+- if b'\r' in data:
+- data = b'\n'.join(data.splitlines())
+- cwd = tempfile.mkdtemp()
+- env = dict(os.environ)
+- env['PATH'] = ''
+- env['CARCH'] = os.uname()[4]
+- process = Popen(['/bin/bash', '--noprofile', '--norc', '-r'],
+- stdin=PIPE, stdout=PIPE, stderr=PIPE,
+- env=env, cwd=cwd)
+- output, errors = process.communicate(data + br"""
+- print_args() {
+- if [ -n "$2" ]; then
+- echo "$1"
+- shift
+- for arg in "$@"; do
+- echo -e "\t$arg"
+- done
+- echo
+- fi
+- }
+- echo -ne "\f\n"
+- print_args '@name' "${pkgname[@]}"
+- print_args '^version' "${pkgver:+$pkgver${pkgrel:+-$pkgrel}}"
+- print_args '^description' "$pkgdesc"
+- print_args '^url' "$url"
+- print_args '@license' "${license[@]}"
+- print_args '@groups' "${groups[@]}"
+- print_args '@arch' "${arch[@]}"
+- print_args '@conflicts' "${conflicts[@]}"
+- print_args '@depends' "${depends[@]}"
+- print_args '@makedepends' "${makedepends[@]}"
+- print_args '@optdepends' "${optdepends[@]}"
+- print_args '@provides' "${provides[@]}"
+- print_args '@replaces' "${replaces[@]}"
+- """)
+- output = output.decode('utf-8', 'replace').partition('\f\n')[-1]
+- for line in output.splitlines(True):
+- start = line[0]
+- line = line[1:].strip()
+- if start == '^':
+- key, value = line, ''
+- elif start == '@':
+- key, value = line, []
+- elif start == '\t':
+- if isinstance(value, list):
+- value.append(line)
++def load_srcinfo(pkgname, data):
++ if isinstance(data, bytes):
++ data = data.decode('utf-8', 'replace')
++ keys = {
++ 'name': True,
++ 'version': False,
++ 'description': False,
++ 'url': False,
++ 'license': True,
++ 'groups': True,
++ 'arch': True,
++ 'conflicts': True,
++ 'depends': True,
++ 'makedepends': True,
++ 'optdepends': True,
++ 'provides': True,
++ 'replaces': True,
++ }
++ pkgbase = {}
++ srcinfo = {}
++ info = None
++ for line in data.splitlines():
++ key, sep, value = [part.strip() for part in line.partition('=')]
++ if line.startswith('\t'):
++ if info is not None and key in keys:
++ if keys[key]:
++ if key in info:
++ info[key].append(value)
++ else:
++ info[key] = [value]
+ else:
+- value = line
+- else:
+- pkgbuild[key] = value
+- shutil.rmtree(cwd, True)
+- return pkgbuild, errors or None
++ info[key] = value
++ elif key == 'pkgbase':
++ pkgbase.clear()
++ info = pkgbase
++ elif key == 'pkgname' and value == pkgname:
++ info = srcinfo
++ srcinfo.update(pkgbase)
++ return srcinfo
+
+ def _process_archive(args):
+ path, root, urls, comment = args
+diff -aur a/pkgbrowser/enum.py b/pkgbrowser/enum.py
+--- a/pkgbrowser/enum.py 2015-03-29 10:41:40.000000000 -0700
++++ b/pkgbrowser/enum.py 2016-03-23 11:06:00.000000000 -0700
+@@ -17,6 +17,7 @@
+ Group = alpm.PKG_STATUS_MAX << 1
+ Category = alpm.PKG_STATUS_MAX << 2
+ Unknown = alpm.PKG_STATUS_MAX << 3
++ Database = alpm.PKG_STATUS_MAX << 4
+ del alpm
+
+
+@@ -44,26 +45,3 @@
+ Foreign = 4
+ Group = 8
+ AUR = 16
+-
+-
+-class Category(object):
+- Unknown = 1
+- Daemons = 2
+- Development = 3
+- Editors = 4
+- Emulators = 5
+- Games = 6
+- Gnome = 7
+- I18n = 8
+- KDE = 9
+- Libraries = 10
+- Modules = 11
+- Multimedia = 12
+- Network = 13
+- Office = 14
+- Science = 15
+- System = 16
+- X11 = 17
+- Xfce = 18
+- Kernels = 19
+- Fonts = 20
+diff -aur a/pkgbrowser/fmt.py b/pkgbrowser/fmt.py
+--- a/pkgbrowser/fmt.py 2015-03-29 10:41:40.000000000 -0700
++++ b/pkgbrowser/fmt.py 2016-03-23 11:06:00.000000000 -0700
+@@ -3,7 +3,7 @@
+ import os
+ from datetime import datetime
+ from email.utils import parsedate
+-from pkgbrowser.enum import State, Validation, Category, Backup
++from pkgbrowser.enum import State, Validation, Backup
+
+
+ class Format(object):
+@@ -22,6 +22,14 @@
+ return '%.*f GiB' % (precision, size / 1024)
+
+ @staticmethod
++ def number(number, precision=2, signed=False):
++ if signed or number >= 0:
++ if isinstance(number, float):
++ return '%.*f' % (precision, number)
++ return str(number)
++ return ''
++
++ @staticmethod
+ def date(date, locale=True):
+ result = ''
+ if isinstance(date, str):
+@@ -111,8 +119,8 @@
+ rows.append(('state', self.tr('Status')))
+ rows.append(('repository', self.tr('Repository')))
+ if state & State.AUR:
+- rows.append(('category', self.tr('Category')))
+ rows.append(('votes', self.tr('Votes')))
++ rows.append(('popularity', self.tr('Popularity')))
+ rows.append(('outdated', self.tr('Out Of Date')))
+ rows.append(('groups', self.tr('Groups')))
+ rows.append(('provides', self.tr('Provides')))
+@@ -223,6 +231,9 @@
+ dates = set((
+ 'installed', 'built', 'submitted', 'modified', 'outdated',
+ ))
++ numbers = set((
++ 'votes', 'popularity',
++ ))
+ flagged = dates.union((
+ 'name', 'version', 'description', 'packager',
+ ))
+@@ -272,11 +283,11 @@
+ value = self.tr('Yes')
+ else:
+ value = self.tr('No')
+- elif key == 'category':
+- value = self.category(value)
+ else:
+ if key == 'size' or key == 'download':
+ value = self.size(value)
++ elif key in numbers:
++ value = self.number(value)
+ elif key in dates:
+ value = self.date(value)
+ if not value:
+@@ -408,45 +419,3 @@
+ if not string:
+ string = self.tr('Unknown')
+ return string
+-
+- def category(self, identifier):
+- if identifier == Category.Daemons:
+- return self.tr('Daemons')
+- elif identifier == Category.Development:
+- return self.tr('Development')
+- elif identifier == Category.Editors:
+- return self.tr('Editors')
+- elif identifier == Category.Emulators:
+- return self.tr('Emulators')
+- elif identifier == Category.Games:
+- return self.tr('Games')
+- elif identifier == Category.Gnome:
+- return self.tr('Gnome')
+- elif identifier == Category.I18n:
+- return self.tr('I18n')
+- elif identifier == Category.KDE:
+- return self.tr('KDE')
+- elif identifier == Category.Kernels:
+- return self.tr('Kernels')
+- elif identifier == Category.Libraries:
+- return self.tr('Libraries')
+- elif identifier == Category.Modules:
+- return self.tr('Modules')
+- elif identifier == Category.Multimedia:
+- return self.tr('Multimedia')
+- elif identifier == Category.Network:
+- return self.tr('Network')
+- elif identifier == Category.Office:
+- return self.tr('Office')
+- elif identifier == Category.Science:
+- return self.tr('Science')
+- elif identifier == Category.System:
+- return self.tr('System')
+- elif identifier == Category.X11:
+- return self.tr('X11')
+- elif identifier == Category.Xfce:
+- return self.tr('Xfce')
+- elif identifier == Category.Fonts:
+- return self.tr('Fonts')
+- else:
+- return self.tr('Unknown')
+diff -aur a/pkgbrowser/window.py b/pkgbrowser/window.py
+--- a/pkgbrowser/window.py 2015-03-29 10:45:16.000000000 -0700
++++ b/pkgbrowser/window.py 2016-03-23 11:06:00.000000000 -0700
+@@ -71,6 +71,8 @@
+ self.tr('Status'),
+ self.tr('Date'),
+ self.tr('Size'),
++ self.tr('Votes'),
++ self.tr('Popularity'),
+ ])
+ self.packages.setModel(model)
+ self.packages.header().setMovable(False)
+@@ -1081,9 +1083,14 @@
+ QStandardItem(status, self.format.status(item.state, False)),
+ QStandardItem(self.format.date(item.date, False)),
+ QStandardItem(self.format.size(item.size)),
++ QStandardItem(self.format.number(item.votes)),
++ QStandardItem(self.format.number(item.popularity)),
+ )
+ row[0].setData(item, Qt.UserRole)
++ row[4].setData(item.date, Qt.UserRole)
+ row[5].setData(item.size, Qt.UserRole)
++ row[6].setData(item.votes, Qt.UserRole)
++ row[7].setData(item.popularity, Qt.UserRole)
+ if item.state & State.NonInstalled:
+ row[5].setForeground(disabled)
+ if item.state & State.Group:
diff --git a/PKGBUILD b/PKGBUILD
index e443f3b8c8a1..e6edbfba098d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,8 +6,8 @@
pkgname=pkgbrowser-qt4
_pkgname=pkgbrowser
pkgver=0.18.1
-pkgrel=2
-pkgdesc="A utility for browsing pacman databases and the AUR (Qt4 Version)"
+pkgrel=3
+pkgdesc="A utility for browsing pacman databases and the AUR (Qt4 version)"
arch=('i686' 'x86_64')
url="https://bitbucket.org/kachelaqa/pkgbrowser"
license=('GPL2')
@@ -17,14 +17,18 @@ conflicts=($_pkgname)
replaces=($_pkgname)
install=pkgbrowser.install
source=("$url/downloads/$_pkgname-$pkgver.tar.gz"
- '001-pkgbrowser-qt4-fixes.patch')
+ '001-pkgbrowser-qt4-build-fixes.patch'
+ '002-pkgbrowser-qt4-aur4-fixes.patch')
sha256sums=('5edcb712ac97b0a616a2bfbee07a4549b4cc8f5e2d777b2e0d12015554e2189b'
- '9de7d8bcd20177e2c978a6df88948b6a1c19704e211f3a7a2d9378a797631aea')
+ 'dbf6b6883759a5a05cfe88f2dab510cf8d1ce1a258bb1f9087eb351fffe0b9b1'
+ 'dc5bb5cbe809183648f44861f779fc1fa1d88217f357c423198acff0c10d3911')
prepare() {
cd "$srcdir/$_pkgname-$pkgver"
# fixes to enable building Qt4 version - see https://bbs.archlinux.org/viewtopic.php?pid=1578506#p1578506
- patch -Np1 -i ../001-pkgbrowser-qt4-fixes.patch
+ patch -Np1 -i ../001-pkgbrowser-qt4-build-fixes.patch
+ # fixes for AUR4 and Arch Linux Archive
+ patch -Np1 -i ../002-pkgbrowser-qt4-aur4-fixes.patch
}
build() {