diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 20 | ||||
-rwxr-xr-x | get_latest_info.py | 131 | ||||
-rwxr-xr-x | update_pkgbuild.sh | 95 |
4 files changed, 11 insertions, 243 deletions
@@ -1,15 +1,15 @@ pkgbase = keepass-plugin-rpc pkgdesc = RPC plugin for Keepass (used by the KeeFox addon for Firefox) - pkgver = 1.7.0 + pkgver = 1.7.3 pkgrel = 1 epoch = 1 - url = http://keefox.org/ + url = https://github.com/kee-org/keepassrpc install = keepass-plugin-rpc.install arch = any license = GPL depends = keepass - source = https://addons.mozilla.org/firefox/downloads/file/659059/keefox-1.7.0-fx+tb-linux.xpi?src=api - sha384sums = 40dab624c1deda7342d09c9a4107533f38439be6f68dc7353da9e9ab054343169890e44a245e805a660681e4ce9e1cb5 + source = https://github.com/kee-org/keepassrpc/releases/download/v1.7.3.1/KeePassRPC.plgx + sha384sums = a08e6c433a220ff9ee221dabacd3459f0f14d3911c200e311ba048209d328ca7b81581f6d95a750aa45508bd39bc96c3 pkgname = keepass-plugin-rpc @@ -1,28 +1,22 @@ # Maintainer: Tilman Blumenbach <tilman AT ax86 DOT net> pkgname=keepass-plugin-rpc -pkgrel=1 epoch=1 +pkgver=1.7.3 +_git_tag=1.7.3.1 +pkgrel=1 pkgdesc="RPC plugin for Keepass (used by the KeeFox addon for Firefox)" arch=(any) -url="http://keefox.org/" +url="https://github.com/kee-org/keepassrpc" license=('GPL') depends=(keepass) install="${pkgname}.install" +source=("https://github.com/kee-org/keepassrpc/releases/download/v${_git_tag}/KeePassRPC.plgx") package() { - cd "$srcdir/deps" + cd "$srcdir" install -m 644 -D KeePassRPC.plgx "${pkgdir}/usr/share/keepass/plugins/KeePassRPC.plgx" } -_amo_id=306880 -_amo_os=Linux -#@ -#@ -------------------------------------------- -#@ Lines below automatically added by update_pkgbuild.sh. -pkgver='1.7.0' -source=('https://addons.mozilla.org/firefox/downloads/file/659059/keefox-1.7.0-fx+tb-linux.xpi?src=api') -#@ -------------------------------------------- -#@ -sha384sums=('40dab624c1deda7342d09c9a4107533f38439be6f68dc7353da9e9ab054343169890e44a245e805a660681e4ce9e1cb5') +sha384sums=('a08e6c433a220ff9ee221dabacd3459f0f14d3911c200e311ba048209d328ca7b81581f6d95a750aa45508bd39bc96c3') diff --git a/get_latest_info.py b/get_latest_info.py deleted file mode 100755 index 7a9743256b00..000000000000 --- a/get_latest_info.py +++ /dev/null @@ -1,131 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (c) 2015, Tilman Blumenbach -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -# following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following -# disclaimer. -# -# 2. 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. -# -# 3. Neither the name of the copyright holder 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 HOLDER 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. - -import requests -import requests.exceptions -import sys - -from argparse import ArgumentParser -from xml.etree import ElementTree as ET - - -def setup_argparser(): - arg_parser = ArgumentParser( - description="Retrieve latest information for a Mozilla add-on. This " - "includes the latest version and the current download URL." - ) - - arg_parser.add_argument( - "-u", - "--url-prefix", - default="", - help="Optional string to prepend to URL before outputting it." - ) - arg_parser.add_argument( - "-o", - "--os", - help="If given, fetch URL for the given operating system. Not " - "specifying this option fetches the first URL in the API response." - ) - arg_parser.add_argument( - "-p", - "--pkgbuild", - action="store_true", - help="Output appropriate lines for a PKGBUILD." - ) - - arg_parser.add_argument( - "addon_id", - type=int, - help="ID of add-on to retrieve information for." - ) - - return arg_parser - -def get_latest_addon_info(addon_id, os): - resp = requests.get( - "https://services.addons.mozilla.org/api/1.5/addon/%d" % addon_id - ) - resp.raise_for_status() - - # Now we got the API response, so parse it. - parsed_resp = ET.fromstring(resp.text) - - install_xpath = "install" - if os is not None: - install_xpath += "[@os='%s']" % os - - install = None - for elm in parsed_resp.findall(install_xpath): - if elm.get("status") != "Beta": - install = elm.text - break - - return parsed_resp.findtext("version"), install - - -parsed_args = setup_argparser().parse_args() - -try: - version, url = get_latest_addon_info(parsed_args.addon_id, parsed_args.os) -except (requests.exceptions.RequestException, ET.ParseError) as e: - print( - "E: Could not retrieve latest information: %s" % e, - file=sys.stderr - ) - sys.exit(2) - -if version is None: - print( - "E: No version information found in API response. API may be malfunctioning.", - file=sys.stderr - ) - sys.exit(2) - -if url is None: - print( - "E: No match for OS `%s' found." % parsed_args.os, - file=sys.stderr - ) - sys.exit(3) - - -version = version.replace("-", "_") -url = parsed_args.url_prefix + url - -if not parsed_args.pkgbuild: - print( - "VERSION=%s" % version - ) - print( - "URL=%s" % url - ) -else: - print( - "pkgver='%s'" % version - ) - print( - "source=('%s')" % url - ) diff --git a/update_pkgbuild.sh b/update_pkgbuild.sh deleted file mode 100755 index a7a7d80592a4..000000000000 --- a/update_pkgbuild.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2015, Tilman Blumenbach -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -# following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following -# disclaimer. -# -# 2. 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. -# -# 3. Neither the name of the copyright holder 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 HOLDER 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. - -# Make sure we can find our own utilities. -MYDIR=$(dirname "$(readlink -e "${0}")") -PATH="${MYDIR}${PATH:+:${PATH}}" - - -# Which PKGBUILD to use? Default is the PKGBUILD in the current -# working directory. -pkgbuild_path=./PKGBUILD -if [ ${#} -ge 1 ]; then - # User explicitly specified a PKGBUILD to modify. - pkgbuild_path=${1} -fi - -if [ ! -f "${pkgbuild_path}" ]; then - echo "E: PKGBUILD file '${pkgbuild_path}' does not exist. Aborting." >&2 - exit 2 -fi - -echo "I: Using PKGBUILD file '${pkgbuild_path}'." >&2 - - -# Set defaults for config variables... -_amo_id= -_amo_os= -_amo_url_prefix= - -# ...source the PKGBUILD... -. "${pkgbuild_path}" || exit 2 - -# ...and make sure we at least have an AMO addon ID. -if [ -z "${_amo_id}" ]; then - echo "E: No AMO addon ID found in PKGBUILD." >&2 - exit 3 -fi - -echo "I: AMO addon ID : ${_amo_id}" >&2 -echo "I: AMO OS filter: ${_amo_os:-(none, use first result)}" >&2 -echo "I: AMO URL prefix: ${_amo_url_prefix:-(empty)}" >&2 - - -# Now get the addon info from AMO. -echo "I: Fetching information from AMO..." >&2 -amo_info=$(get_latest_info.py \ - ${_amo_os:+--os "${_amo_os}"} ${_amo_url_prefix:+--url-prefix "${_amo_url_prefix}"} \ - --pkgbuild "${_amo_id}" -) - -ret=$? -if [ $ret -ne 0 ]; then - # Could not retrieve addon info. - exit $ret -fi - - -# Good, we have the data, so add it to the PKGBUILD after deleting the old -# pkgver, source and *sums variables as well as our own informational comments. -sed -i '/^[[:space:]]*\(#@\|pkgver=\|source=\|[[:alnum:]]*sums=\)/d' "${pkgbuild_path}" - -{ - echo "#@" - echo "#@ --------------------------------------------" - echo "#@ Lines below automatically added by ${0##*/}." - echo "${amo_info}" - echo "#@ --------------------------------------------" - echo "#@" -} >> "${pkgbuild_path}" - -echo "I: PKGBUILD updated, generating checksums." >&2 -cd "$(dirname "$pkgbuild_path")" && \ - makepkg -g -p "$(basename "$pkgbuild_path")" >> "$pkgbuild_path" |