Koji-1.7.1-1.fc17 repository toplink failure
by Anthony Joseph Messina
After upgrading to koji-1.7.1 on my private hub and builders, my builders are
no longer able to use the repositories they create when building subsequent
dependent packages. When attempting to install locally built packages, the
following error is issued in the root.log:
error was [Errno 2] Local file does not exist:
/tmp/koji/tasks/9129/19129/repo_3627_premerge/toplink/packages/...
The repos are created successfully:
$ /usr/bin/createrepo -vd -o /tmp/koji/tasks/9129/19129/repo -i
/mnt/koji/repos/f17-build/3627/x86_64/pkglist -g /mnt/koji/repos/f17-
build/3627/groups/comps.xml --update --skip-stat /mnt/koji/repos/f17-
build/3627/x86_64
Scanning old repo data
Spawning worker 0 with 36 pkgs
Worker 0: reading toplink/packages/dahdi-tools/2.6.1/3.fc17.1/x86_64/dahdi-
tools-2.6.1-3.fc17.1.x86_64.rpm
Worker 0: reading toplink/packages/dahdi-tools/2.6.1/3.fc17.1/x86_64/dahdi-
tools-devel-2.6.1-3.fc17.1.x86_64.rpm
Worker 0: reading toplink/packages/dahdi-tools/2.6.1/3.fc17.1/x86_64/dahdi-
tools-libs-2.6.1-3.fc17.1.x86_64.rpm
...
...
I believe the issue is related to the following commit:
https://fedorahosted.org/koji/changeset/da6dd0b1832e9929565a1ab03ab844aac...
I'm not sure why when building packages, the builders are inserting
'/tmp/koji/tasks/9129/19129/repo_3627_premerge/toplink'
instead of topdir or topurl, such as
'/mnt/koji' or 'http://example.com/kojifiles'
Right now I'm working on selectively reverting that commit to see if I can
build packages against other local packages.
Any assistance is appreciated. Thanks. -Anthony
--
Anthony - http://messinet.com - http://messinet.com/~amessina/gallery
8F89 5E72 8DF0 BCF0 10BE 9967 92DC 35DC B001 4A4E
9 years, 11 months
Error building EL6 packages in private Koji repo
by Anthony Joseph Messina
I am getting the following error when I try to build packages in my
EL6/CentOS6 Koji repository:
DEBUG util.py:264: Error unpacking rpm package hunspell-1.2.8-16.el6.i686
DEBUG util.py:264: error: unpacking of archive failed on file
/usr/share/man/hu/man4/hunspell.4.gz;51015d8e: cpio: open failed - No such
file or directory
DEBUG util.py:264: error: hunspell-1.2.8-16.el6.i686: install failed
The Koji builders and the client from which I send the fedpkg command have
been upgraded to Fedora 18. The entire Koji system is running koji-1.7.1-2
Does anyone have any pointers on how to figure this out?
Thanks in advance. -A
--
Anthony - http://messinet.com - http://messinet.com/~amessina/gallery
8F89 5E72 8DF0 BCF0 10BE 9967 92DC 35DC B001 4A4E
10 years, 4 months
[koji PATCH 1/2] accept tag also when doing a single build
by Dan Horák
A single build with the prefer-new option will be possible when an information
about the tag will be provided.
---
util/koji-shadow | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/util/koji-shadow b/util/koji-shadow
index 4bbbd31..023511d 100755
--- a/util/koji-shadow
+++ b/util/koji-shadow
@@ -1259,15 +1259,21 @@ class BuildTracker(object):
def main(args):
tracker = BuildTracker()
- #binfo = remote.getBuild(args[0], strict=True)
- #tracker.scanBuild(binfo['id'])
- tag=None
+ try:
+ tag = args[0]
+ except IndexError:
+ tag = None
+
if options.build:
binfo = remote.getBuild(options.build, strict=True)
- tracker.scanBuild(binfo['id'])
+ tracker.scanBuild(binfo['id'], tag=tag)
else:
- tag = args[0]
- tracker.scanTag(tag)
+ if tag is None:
+ print "Tag is required"
+ return
+ else:
+ print "Working on tag %s" % (tag)
+ tracker.scanTag(tag)
tracker.report()
tracker.runRebuilds(tag)
--
1.7.7.6
10 years, 4 months
[koji PATCH] Strip leading and trailing whitespace from search terms.
by Chi Zhang
Signed-off-by: Chi Zhang <czhang(a)twitter.com>
---
www/kojiweb/index.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/www/kojiweb/index.py b/www/kojiweb/index.py
index 0505c9c..c9f8cc1 100644
--- a/www/kojiweb/index.py
+++ b/www/kojiweb/index.py
@@ -2160,7 +2160,7 @@ def search(environ, start=None, order='name'):
form = environ['koji.form']
if form.has_key('terms') and form['terms']:
- terms = form['terms'].value
+ terms = form['terms'].value.strip()
type = form['type'].value
match = form['match'].value
values['terms'] = terms
--
1.7.11.7
10 years, 4 months
[koji PATCH 1/2] use the closest newer build not the latest
by Dan Horák
Recently when a build is missing, the prefer_new option is set and a newer build exists,
the latest build is included in the buildroot. We should rather be using a closest newer
build if it exists, the latest one can be too new, with different dependencies etc.
---
util/koji-shadow | 27 ++++++++++++++++-----------
1 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/util/koji-shadow b/util/koji-shadow
index 1967fbd..3ae2e85 100755
--- a/util/koji-shadow
+++ b/util/koji-shadow
@@ -649,21 +649,26 @@ class BuildTracker(object):
return -1
def newerBuild(self, build, tag):
- #XXX: secondary arches need a policy to say if we have newer builld localy it will be the substitute
- localLatestBuild = session.getLatestBuilds(tag, package=str(build.name))
- if not localLatestBuild == []:
- parentevr = (str(build.epoch), build.version, build.release)
- parentnvr = (str(build.name), build.version, build.release)
- latestevr = (str(localLatestBuild[0]['epoch']), localLatestBuild[0]['version'], localLatestBuild[0]['release'])
+ #XXX: secondary arches need a policy to say if we have newer build localy it will be the substitute
+ localBuilds = session.listTagged(tag, inherit=True, package=str(build.name))
+ newer = None
+ parentevr = (str(build.epoch), build.version, build.release)
+ parentnvr = (str(build.name), build.version, build.release)
+ for b in localBuilds:
+ latestevr = (str(b['epoch']), b['version'], b['release'])
newestRPM = self.rpmvercmp( parentevr, latestevr)
if options.debug:
print "remote evr: %s \nlocal evr: %s \nResult: %s" % (parentevr, latestevr, newestRPM)
if newestRPM == -1:
- #the local is newer
- info = session.getBuild("%s-%s-%s" % (str(localLatestBuild[0]['name']), localLatestBuild[0]['version'], localLatestBuild[0]['release'] ))
- if info:
- build = LocalBuild(info)
- self.substitute_idx[parentnvr] = build
+ newer = b
+ else:
+ break
+ #the local is newer
+ if newer is not None:
+ info = session.getBuild("%s-%s-%s" % (str(newer['name']), newer['version'], newer['release'] ))
+ if info:
+ build = LocalBuild(info)
+ self.substitute_idx[parentnvr] = build
return build
return None
--
1.7.7.6
10 years, 4 months
[pungi PATCH] add a switch for creating the repo without repoview data
by Dan Horák
---
src/bin/pungi.py | 4 +++-
src/pypungi/__init__.py | 2 +-
src/pypungi/config.py | 1 +
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/bin/pungi.py b/src/bin/pungi.py
index a80e29d..0f69a0f 100755
--- a/src/bin/pungi.py
+++ b/src/bin/pungi.py
@@ -214,8 +214,10 @@ if __name__ == '__main__':
help='Create the source isos (other arch runs must be done)')
parser.add_option("--force", default=False, action="store_true",
help='Force reuse of an existing destination directory (will overwrite files)')
- parser.add_option("--isfinal", default=False, action="store_true",
+ parser.add_option("--isfinal", default=False, action="store_true",
help='Specify this is a GA tree, which causes betanag to be turned off during install')
+ parser.add_option("--norepoview", default=False, action="store_true",
+ help='disable creating of repoview pages')
parser.add_option("--nohash", default=False, action="store_true",
help='disable hashing the Packages trees')
parser.add_option("--full-archlist", action="store_true",
diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py
index ffacbf1..234b39d 100644
--- a/src/pypungi/__init__.py
+++ b/src/pypungi/__init__.py
@@ -891,7 +891,7 @@ class Pungi(pypungi.PungiBase):
cachedir = self.config.get('pungi', 'cachedir')
# setup the createrepo call
- self._makeMetadata(self.topdir, cachedir, compsfile, repoview=True, repoviewtitle=repoviewtitle)
+ self._makeMetadata(self.topdir, cachedir, compsfile, repoview=not self.config.get('pungi', 'norepoview'), repoviewtitle=repoviewtitle)
# create repodata for debuginfo
if self.config.getboolean('pungi', 'debuginfo'):
diff --git a/src/pypungi/config.py b/src/pypungi/config.py
index 4e076de..37bc07b 100644
--- a/src/pypungi/config.py
+++ b/src/pypungi/config.py
@@ -45,5 +45,6 @@ class Config(SafeConfigParser):
self.set('pungi', 'alldeps', "True")
self.set('pungi', 'isfinal', "False")
self.set('pungi', 'nohash', "False")
+ self.set('pungi', 'norepoview', "False")
self.set('pungi', 'full_archlist', "False")
--
1.7.7.6
10 years, 4 months
Patches for Kerberos with Active Directory
by Parsons, Aron
Active Directory uses non-standard Kerberos principal names (e.g., HOSTNAME$) instead of the more common host/hostname@REALM. SPN queries fail (e.g., "Server not found in Kerberos database") when you don't use the HOSTNAME$ version, even when the proper service principals are added to the system.
These two patches allow Koji to be configured to play nicely in an Active Directory environment when using Kerberos.
/aron
10 years, 4 months