diff options
Diffstat (limited to 'rox-base/zeroinstall-injector')
-rw-r--r-- | rox-base/zeroinstall-injector/Manifest | 28 | ||||
-rw-r--r-- | rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27 | 3 | ||||
-rw-r--r-- | rox-base/zeroinstall-injector/files/global-0.27 | 5 | ||||
-rw-r--r-- | rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg | bin | 0 -> 911 bytes | |||
-rw-r--r-- | rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg | 0 | ||||
-rw-r--r-- | rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg | bin | 0 -> 1240 bytes | |||
-rw-r--r-- | rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch | 121 | ||||
-rw-r--r-- | rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild | 65 |
8 files changed, 222 insertions, 0 deletions
diff --git a/rox-base/zeroinstall-injector/Manifest b/rox-base/zeroinstall-injector/Manifest new file mode 100644 index 0000000..f0ee967 --- /dev/null +++ b/rox-base/zeroinstall-injector/Manifest @@ -0,0 +1,28 @@ +AUX global-0.27 73 RMD160 b6fb0f8dfb500500d3b2719224dabf4c8160aed2 SHA1 a1e2a0d9b60ec2a02ad4bed98ee16ad7b9966132 SHA256 e081270dcfa04acf9da2e363c55be02c02b719ec2616b875a3f9118a5778423e +MD5 a6cb42c31e5b742d67f4abc5e23481ee files/global-0.27 73 +RMD160 b6fb0f8dfb500500d3b2719224dabf4c8160aed2 files/global-0.27 73 +SHA256 e081270dcfa04acf9da2e363c55be02c02b719ec2616b875a3f9118a5778423e files/global-0.27 73 +AUX gpgInfo/pubring.gpg 911 RMD160 c155ac32769a7588ce4cefdb0042e88e2210e70d SHA1 465084f9f17a060f46d749bc9604b767125bc636 SHA256 4006d375e1669ee5b5352794777f0e1e905c6aed0cf685822a952c7196ab2052 +MD5 5c5e7dd2f87fbcd4cbd2a4bb09d944af files/gpgInfo/pubring.gpg 911 +RMD160 c155ac32769a7588ce4cefdb0042e88e2210e70d files/gpgInfo/pubring.gpg 911 +SHA256 4006d375e1669ee5b5352794777f0e1e905c6aed0cf685822a952c7196ab2052 files/gpgInfo/pubring.gpg 911 +AUX gpgInfo/secring.gpg 0 RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +MD5 d41d8cd98f00b204e9800998ecf8427e files/gpgInfo/secring.gpg 0 +RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/gpgInfo/secring.gpg 0 +SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/gpgInfo/secring.gpg 0 +AUX gpgInfo/trustdb.gpg 1240 RMD160 d44385143431ac246b9f7aff85811cb673fc3be5 SHA1 de2e7f3e491087b9568d2d54e2e30fed053d81fb SHA256 4abab858a3b869c3ea0aadab45e99e2d0019fc4fe98a317177fbad7e4db7e94c +MD5 6c68fc931a179f58525fcfdb56da019d files/gpgInfo/trustdb.gpg 1240 +RMD160 d44385143431ac246b9f7aff85811cb673fc3be5 files/gpgInfo/trustdb.gpg 1240 +SHA256 4abab858a3b869c3ea0aadab45e99e2d0019fc4fe98a317177fbad7e4db7e94c files/gpgInfo/trustdb.gpg 1240 +AUX zeroinstall-injector-0.27-local_feed.patch 4523 RMD160 0e4b4c4e558b66dff2e582c1fc002f7ff791c2bc SHA1 286b7588476a49b54b129bc409f3f52e0977c805 SHA256 f4f171da592e06a76024530c5217d8fd2ad1e2fa6158815779f8af31376032ea +MD5 c007022076415ed52863823b69cf2cfe files/zeroinstall-injector-0.27-local_feed.patch 4523 +RMD160 0e4b4c4e558b66dff2e582c1fc002f7ff791c2bc files/zeroinstall-injector-0.27-local_feed.patch 4523 +SHA256 f4f171da592e06a76024530c5217d8fd2ad1e2fa6158815779f8af31376032ea files/zeroinstall-injector-0.27-local_feed.patch 4523 +DIST zeroinstall-injector-0.27.tar.gz.gpg 127113 RMD160 f93d87ae38c23eb73c7bc092d6a358932050ecf0 SHA1 b8f417d2174f17f1bfa3952bb319e112ba47af16 SHA256 9e2b532c61f1687f965bbbdd8f96c6aede6163fce2335b86b815b74f1d154761 +EBUILD zeroinstall-injector-0.27.ebuild 1805 RMD160 7512660da1082a745e171bfdddffaa0080b73648 SHA1 9f28e8fb3bb7eee0326b0462ab7a14ad83ae7b8f SHA256 57cbd574af4bc2c9d1f9db88d212a17a826052e1c1a34d3f65bb3b9c04af1a17 +MD5 db2725fdf5c3f2eb4c67d97bc3ea0d47 zeroinstall-injector-0.27.ebuild 1805 +RMD160 7512660da1082a745e171bfdddffaa0080b73648 zeroinstall-injector-0.27.ebuild 1805 +SHA256 57cbd574af4bc2c9d1f9db88d212a17a826052e1c1a34d3f65bb3b9c04af1a17 zeroinstall-injector-0.27.ebuild 1805 +MD5 b0fffbea1faf95e435aa67cba14972a4 files/digest-zeroinstall-injector-0.27 289 +RMD160 00e180c2a3c61bd3154702b47e9fa1e7632be1ef files/digest-zeroinstall-injector-0.27 289 +SHA256 5d32564926e8b07092190403b10bb6eacb63dc93726237ab0939107635456772 files/digest-zeroinstall-injector-0.27 289 diff --git a/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27 b/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27 new file mode 100644 index 0000000..b3eee05 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27 @@ -0,0 +1,3 @@ +MD5 124b5f5794c6950c53c11df9c538ac3c zeroinstall-injector-0.27.tar.gz.gpg 127113 +RMD160 f93d87ae38c23eb73c7bc092d6a358932050ecf0 zeroinstall-injector-0.27.tar.gz.gpg 127113 +SHA256 9e2b532c61f1687f965bbbdd8f96c6aede6163fce2335b86b815b74f1d154761 zeroinstall-injector-0.27.tar.gz.gpg 127113 diff --git a/rox-base/zeroinstall-injector/files/global-0.27 b/rox-base/zeroinstall-injector/files/global-0.27 new file mode 100644 index 0000000..8db0727 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/global-0.27 @@ -0,0 +1,5 @@ +[global] +freshness = -1 +help_with_testing = False +network_use = minimal + diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg Binary files differnew file mode 100644 index 0000000..e0de7b9 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg Binary files differnew file mode 100644 index 0000000..642e546 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg diff --git a/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch b/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch new file mode 100644 index 0000000..a7fa7dc --- /dev/null +++ b/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch @@ -0,0 +1,121 @@ +diff -ur zeroinstall-orig/0launch-gui/properties.py zeroinstall/0launch-gui/properties.py +--- zeroinstall-orig/0launch-gui/properties.py 2007-04-08 04:50:32.000000000 -0600 ++++ zeroinstall/0launch-gui/properties.py 2007-05-07 09:48:41.000000000 -0600 +@@ -263,7 +263,13 @@ + model, miter = sel.get_selected() + if not miter: return # build in progress + iface = model[miter][Feeds.URI] +- self.remove_feed_button.set_sensitive(iface != self.interface.uri) ++ # Only enable removing user_override feeds ++ enable_remove = False ++ for x in self.interface.feeds: ++ if x.uri == iface: ++ if x.user_override: ++ enable_remove = True ++ self.remove_feed_button.set_sensitive( enable_remove ) + self.description.set_details(iface_cache.get_interface(iface)) + + def updated(self): +diff -ur zeroinstall-orig/injector/model.py zeroinstall/injector/model.py +--- zeroinstall-orig/injector/model.py 2007-04-06 13:22:30.000000000 -0600 ++++ zeroinstall/injector/model.py 2007-05-07 09:48:41.000000000 -0600 +@@ -70,6 +70,7 @@ + developer = Stability(10, 'developer', 'Work-in-progress - bugs likely') + testing = Stability(20, 'testing', 'Stability unknown - please test!') + stable = Stability(30, 'stable', 'Tested - no serious problems found') ++packaged = Stability(35, 'packaged', 'Supplied by the local package manager') + preferred = Stability(40, 'preferred', 'Best of all - must be set manually') + + class Restriction(object): +diff -ur zeroinstall-orig/injector/reader.py zeroinstall/injector/reader.py +--- zeroinstall-orig/injector/reader.py 2007-04-07 02:47:20.000000000 -0600 ++++ zeroinstall/injector/reader.py 2007-05-07 12:33:27.000000000 -0600 +@@ -41,7 +41,7 @@ + before = parse_version(e.getAttribute('before')))) + + def update_from_cache(interface): +- """Read a cached interface and any user overrides. ++ """Read a cached interface and any local feeds or user overrides. + @param interface: the interface object to update + @type interface: L{model.Interface} + @return: True if cached version and user overrides loaded OK. +@@ -61,7 +61,11 @@ + debug("Loading cached information for %s from %s", interface, cached) + update(interface, cached) + +- update_user_overrides(interface) ++ if update_local_feeds(interface): ++ cached = True ++ ++ if update_user_overrides(interface): ++ cached = True + + # Special case: add our fall-back local copy of the injector as a feed + if interface.uri == injector_gui_uri: +@@ -70,6 +74,49 @@ + + return bool(cached) + ++def update_local_feeds(interface): ++ """Update an interface with system-supplied local feeds. ++ @param interface: the interface object to update ++ @type interface: L{model.Interface} ++ @return: True if a local feed was loaded. ++ @rtype: bool""" ++ debug( "update_local_feeds for %s" % escape(interface.uri) ) ++ path = basedir.load_first_config(config_site, 'local_feeds', ++ escape(interface.uri)) ++ ++ if not path: ++ return False ++ ++ debug( "Adding system-supplied local_feed from '%s'" % path ) ++ ++ # Ensure the local feed matches the specified interface ++ root = qdom.parse(file(path)) ++ if root.getAttribute('uri') != interface.uri: ++ match = False ++ for item in root.childNodes: ++ if item.uri != XMLNS_IFACE: continue ++ if item.name == 'feed-for': ++ if interface.uri == item.getAttribute('interface'): ++ match = True ++ break ++ if not match: ++ raise InvalidInterface('Local feed does not match specified interface') ++ ++ realpath = path ++ linkcount = 0 ++ while os.path.islink(realpath): ++ # Add the "real" location, not the link ++ oldpath = realpath ++ realpath = os.readlink(oldpath) ++ if not realpath.startswith('/'): ++ realpath = os.path.join(os.path.dirname(oldpath), realpath) ++ linkcount += 1 ++ if linkcount > 100: ++ raise InvalidInterface('Local feed symlink more than 100 levels deep, skipping') ++ interface.feeds.append(Feed(realpath, None, False)) ++ ++ return True ++ + def update_user_overrides(interface): + """Update an interface with user-supplied information. + @param interface: the interface object to update +@@ -77,7 +124,7 @@ + user = basedir.load_first_config(config_site, config_prog, + 'user_overrides', escape(interface.uri)) + if not user: +- return ++ return False + + root = qdom.parse(file(user)) + +@@ -113,6 +160,7 @@ + if not feed_src: + raise InvalidInterface('Missing "src" attribute in <feed>') + interface.feeds.append(Feed(feed_src, item.getAttribute('arch'), True)) ++ return True + + def check_readable(interface_uri, source): + """Test whether an interface file is valid. diff --git a/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild b/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild new file mode 100644 index 0000000..1018641 --- /dev/null +++ b/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit distutils + +DESCRIPTION="Zeroinstall Injector allows regular users to install software themselves" +HOMEPAGE="http://0install.net/" +SRC_URI="mirror://sourceforge/zero-install/${P}.tar.gz.gpg" + +LICENSE="" +SLOT="0" +KEYWORDS="" +IUSE="" + +DEPEND="app-crypt/gnupg" +RDEPEND=">=dev-python/pygtk-2.0 + ${DEPEND}" + +# If we decide to do RESTRICT="fetch" instead of trying gpg +#pkg_nofetch() { +# einfo "Zeroinstall is distributed only in gpg-signed tarballs, which ebuilds" +# einfo "cannot currently handle. You must:" +# einfo " 1. Download the file ${P}.tar.gz.gpg from" +# einfo " http://downloads.sourceforge.net/zero-install/zeroinstall-injector-0.27.tar.gz.gpg" +# einfo " 2. Verify the signature:" +# einfo " gpg ${P}.tar.gz.gpg" +# einfo " It has the fingerprint 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1" +# einfo " 3. Put the resulting ${P}.tar.gz in ${DISTDIR}." +#} + +src_unpack() { + local GPGSRC=${P}.tar.gz.gpg + local GPGHOME="${WORKDIR}/.gnupg" + local TARSRC=${P}.tar.gz + + # Un-gpg-sign the downloaded archive + cp "${DISTDIR}/${GPGSRC}" "${WORKDIR}" + cp -r "${FILESDIR}/gpgInfo" "${GPGHOME}" + chmod 700 "${GPGHOME}" + cd "${WORKDIR}" + gpg -q --homedir "${GPGHOME}" ${GPGSRC} || die "GPG validation failed" + [ -e ${TARSRC} ] || die "GPG unwrap failed" + + # Unpack the unsigned archive + tar -xzf ${TARSRC} || die "Tar unpack failed" + + # Patches + cd "${S}" + epatch "${FILESDIR}/${P}-local_feed.patch" +} + +src_install() { + distutils_src_install + + exeinto "/usr/bin/" + doexe "${FILESDIR}/0distutils" + + local BASE_XDG_CONFIG="/etc/xdg/0install.net" + + insinto "${BASE_XDG_CONFIG}/injector" + newins "${FILESDIR}/global-${PV}" global + dodir "${BASE_XDG_CONFIG}/local_feeds" +} + |