debian-koji/www/kojiweb/rpminfo.chtml
2025-05-07 14:07:03 +02:00

315 lines
11 KiB
Text

#set _PASSTHROUGH = ['rpmID', 'fileOrder', 'fileStart', 'buildrootOrder', 'buildrootStart']
#include "includes/header2.chtml"
#set epoch = (rpm.epoch|string + ':' if rpm.epoch != None else '')
<h4>Information for RPM <a href="rpminfo?rpmID={{ rpm.id }}">{{ rpm.name }}-{{ epoch }}{{ rpm.version }}-{{ rpm.release }}.{{rpm.arch}}.rpm</a></h4>
<table>
<tr>
<th>ID</th><td>{{ rpm.id }}</td>
</tr>
#if build
<tr>
<th>Build</th><td><a href="buildinfo?buildID={{ build.id }}">{{ koji.buildLabel(build) }}</a></td>
</tr>
#endif
<tr>
#if build
<th>Name</th><td><a href="packageinfo?packageID={{ build.package_id }}">{{ rpm.name }}</a></td>
#else
<th>Name</th><td>{{ rpm.name }}</td>
#endif
</tr>
<tr>
#if build
<th>Version</th><td><a href="buildinfo?buildID={{ build.id }}">{{ rpm.version }}</a></td>
#else
<th>Version</th><td>{{ rpm.version }}</td>
#endif
</tr>
<tr>
<th>Release</th><td>{{ rpm.release }}</td>
</tr>
<tr>
<th>Epoch</th><td>{{ rpm.epoch }}</td>
</tr>
<tr>
<th>Arch</th><td>{{ rpm.arch }}</td>
</tr>
<tr>
#if rpm.draft
<th>Draft</th><td>True</td>
#else
<th>Draft</th><td>False</td>
#endif
#if rpm.external_repo_id == 0
<tr>
<th>Summary</th><td class="rpmheader">{{ summary }}</td>
</tr>
<tr>
<th>Description</th><td class="rpmheader">{{ description }}</td>
</tr>
#endif
<tr>
<th>Build Time</th><td>{{ time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(rpm.buildtime)) }} GMT</td>
</tr>
#if build and build.state == koji.BUILD_STATES.DELETED
<tr>
<th>State</th><td class="deleted">deleted</td>
</tr>
#endif
#if rpm.external_repo_id
<tr>
<th>External Repository</th><td><a href="externalrepoinfo?extrepoID={{ rpm.external_repo_id }}">{{ rpm.external_repo_name }}</a></td>
</tr>
#endif
<tr>
<th>Size</th><td><span title="{{ util.formatThousands(rpm.size) }}">{{ util.formatNatural(rpm.size) }}</span></td>
</tr>
<tr>
<th><label title="The MD5 digest of the combined header and payload contents. You can query it by `rpmkeys -Kv foo.rpm`">SIGMD5</label></th><td>{{ rpm.payloadhash }}</td>
</tr>
#if rpm.external_repo_id == 0
<tr>
<th>License</th><td>{{ license }}</td>
</tr>
#if vcs
<tr>
<th><label title="Package source code VCS location">VCS</label></th><td>{{ util.formatLink(vcs) }}</td>
</tr>
#endif
#if disturl
<tr>
<th>DistURL</th><td>{{ util.formatLink(disturl) }}</td>
</tr>
#endif
#endif
#if builtInRoot
<tr>
<th>Buildroot</th><td><a href="buildrootinfo?buildrootID={{ builtInRoot.id }}">{{ util.brLabel(builtInRoot) }}</a></td>
</tr>
#endif
#if rpm.get('extra')
<tr>
<th>Extra</th><td class="usertext">{{ pformat(rpm.extra) }}</td>
</tr>
#endif
#if rpm.external_repo_id == 0
<tr>
<th>Provides</th>
<td class="container">
#if (provides |length) > 0
<table class="nested">
#for dep in provides
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Provides
#endif
</td>
</tr>
<tr>
<th>Obsoletes</th>
<td class="container">
#if (obsoletes |length) > 0
<table class="nested">
#for dep in obsoletes
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Obsoletes
#endif
</td>
</tr>
<tr>
<th>Conflicts</th>
<td class="container">
#if (conflicts |length) > 0
<table class="nested">
#for dep in conflicts
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Conflicts
#endif
</td>
</tr>
<tr>
<th>Requires</th>
<td class="container">
#if (requires |length) > 0
<table class="nested">
#for dep in requires
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Requires
#endif
</td>
</tr>
<tr>
<th>Recommends</th>
<td class="container">
#if (recommends |length) > 0
<table class="nested">
#for dep in recommends
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Recommends
#endif
</td>
</tr>
<tr>
<th>Suggests</th>
<td class="container">
#if (suggests |length) > 0
<table class="nested">
#for dep in suggests
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Suggests
#endif
</td>
</tr>
<tr>
<th>Supplements</th>
<td class="container">
#if (supplements |length) > 0
<table class="nested">
#for dep in supplements
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Supplements
#endif
</td>
</tr>
<tr>
<th>Enhances</th>
<td class="container">
#if (enhances |length) > 0
<table class="nested">
#for dep in enhances
<tr>
<td>{{ util.formatDep(dep.name, dep.version, dep.flags) }}</td>
</tr>
#endfor
</table>
#else
No Enhances
#endif
</td>
</tr>
<tr>
<th id="filelist">Files</th>
<td class="container">
#if (files |length) > 0
<table class="nested data-list">
<tr>
<td class="paginate" colspan="2">
#if (filePages |length) > 1
<form class="pageJump" action="">
Page:
<select onchange="javascript: window.location = 'rpminfo?fileStart=' + this.value * {{ fileRange }} + '{{ util.passthrough_except('fileStart') }}#filelist';">
#for pageNum in filePages
<option value="{{ pageNum }}"{{ ' selected' if pageNum == fileCurrentPage else '' }}>{{ pageNum + 1 }}</option>
#endfor
</select>
</form>
#endif
#if fileStart > 0
<a href="rpminfo?fileStart={{ fileStart - fileRange }}{{ util.passthrough_except('fileStart') }}#filelist">&lt;&lt;&lt;</a>
#endif
<strong>{{ fileStart + 1 }} through {{ fileStart + fileCount }} of {{ totalFiles }}</strong>
#if fileStart + fileCount < totalFiles
<a href="rpminfo?fileStart={{ fileStart + fileRange }}{{ util.passthrough_except('fileStart') }}#filelist">&gt;&gt;&gt;</a>
#endif
</td>
</tr>
<tr class="list-header">
<th><a href="rpminfo?fileOrder={{ util.toggleOrder('name', 'fileOrder') }}{{ util.passthrough_except('fileOrder', 'fileStart') }}#filelist">Name</a> {{ util.sortImage('name', 'fileOrder') }}</th>
<th align="right"><a href="rpminfo?fileOrder={{ util.toggleOrder('size', 'fileOrder') }}{{ util.passthrough_except('fileOrder', 'fileStart') }}#filelist">Size</a> {{ util.sortImage('size', 'fileOrder') }}</th>
</tr>
#for file in files
<tr class="{{ util.rowToggle() }}">
<td><a href="fileinfo?rpmID={{ rpm.id }}&amp;filename={{ file.name|urlencode }}">{{ file.name }}</a></td><td align="right"><span title="{{ util.formatThousands(file.size) }}">{{ util.formatNatural(file.size) }}</span></td>
</tr>
#endfor
</table>
#else
No Files
#endif
</td>
</tr>
#endif
<tr>
<th id="buildrootlist">Component&nbsp;of</th>
<td class="container">
#if (buildroots |length) > 0
<table class="nested data-list">
<tr>
<td class="paginate" colspan="3">
#if (buildrootPages |length) > 1
<form class="pageJump" action="">
Page:
<select onchange="javascript: window.location = 'rpminfo?buildrootStart=' + this.value * {{ buildrootRange }} + '{{ util.passthrough_except('buildrootStart') }}#buildrootlist';">
#for pageNum in buildrootPages
<option value="{{ pageNum }}"{{ ' selected' if pageNum == buildrootCurrentPage else '' }}>{{ pageNum + 1 }}</option>
#endfor
</select>
</form>
#endif
#if buildrootStart > 0
<a href="rpminfo?buildrootStart={{ buildrootStart - buildrootRange }}{{ util.passthrough_except('buildrootStart') }}#buildrootlist">&lt;&lt;&lt;</a>
#endif
<strong>{{ buildrootStart + 1 }} through {{ buildrootStart + buildrootCount }} of {{ totalBuildroots }}</strong>
#if buildrootStart + buildrootCount < totalBuildroots
<a href="rpminfo?buildrootStart={{ buildrootStart + buildrootRange }}{{ util.passthrough_except('buildrootStart') }}#buildrootlist">&gt;&gt;&gt;</a>
#endif
</td>
</tr>
<tr class="list-header">
<th><a href="rpminfo?buildrootOrder={{ util.toggleOrder('id', 'buildrootOrder') }}{{ util.passthrough_except('buildrootOrder', 'buildrootStart') }}#buildrootlist">Buildroot</a> {{ util.sortImage('id', 'buildrootOrder') }}</th>
<th><a href="rpminfo?buildrootOrder={{ util.toggleOrder('create_event_time', 'buildrootOrder') }}{{ util.passthrough_except('buildrootOrder', 'buildrootStart') }}#buildrootlist">Created</a> {{ util.sortImage('create_event_time', 'buildrootOrder') }}</th>
<th><a href="rpminfo?buildrootOrder={{ util.toggleOrder('state', 'buildrootOrder') }}{{ util.passthrough_except('buildrootOrder', 'buildrootStart') }}#buildrootlist">State</a> {{ util.sortImage('state', 'buildrootOrder') }}</th>
</tr>
#for buildroot in buildroots
<tr class="{{ util.rowToggle() }}">
<td><a href="buildrootinfo?buildrootID={{ buildroot.id }}">{{ util.brLabel(buildroot) }}</a></td>
<td>{{ util.formatTime(buildroot.create_event_time) }}</td>
<td>{{ util.imageTag(util.brStateName(buildroot.state)) }}</td>
</tr>
#endfor
</table>
#else
No Buildroots
#endif
</td>
</tr>
</table>
#include "includes/footer2.chtml"