aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rwxr-xr-xmkadvisories15
-rw-r--r--tmpl/advisories.html12
-rw-r--r--tmpl/advisories_table.html65
-rw-r--r--tmpl/by_cve.html12
-rw-r--r--tmpl/by_rel.html12
-rw-r--r--tmpl/by_src.html12
-rw-r--r--tmpl/index.html15
8 files changed, 131 insertions, 13 deletions
diff --git a/NEWS b/NEWS
index a86f3e5..960422b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
- add advisories html pages
+- add advisories pages by CVE, release, source package
Version 0.1
diff --git a/mkadvisories b/mkadvisories
index 110a791..97a0072 100755
--- a/mkadvisories
+++ b/mkadvisories
@@ -22,7 +22,7 @@ my %basename = (
CVE => sub { $_[0] },
ID => sub { $_[0] },
rel => sub { $_[0] },
- pkg => sub { 'pkg_' . $_[0] },
+ src => sub { 'src_' . $_[0] },
);
my %tools = (
@@ -110,6 +110,18 @@ sub output_pages {
};
process_template($template, 'advisory', $vars, $basename{ID}->($adv));
}
+ foreach my $by (['rel', 'by_rel'], ['CVE', 'by_cve'], ['src', 'by_src']) {
+ foreach my $r (keys %{$advdb->{$by->[1]}}) {
+ my $vars = {
+ config => $config,
+ $by->[0] => $r,
+ advdb => $advdb,
+ basename => \%basename,
+ tools => \%tools,
+ };
+ process_template($template, $by->[1], $vars, $basename{$by->[0]}->($r));
+ }
+ }
my $vars = {
config => $config,
advdb => $advdb,
@@ -117,6 +129,7 @@ sub output_pages {
tools => \%tools,
};
process_template($template, 'index', $vars, 'index');
+ process_template($template, 'advisories', $vars, 'advisories');
}
sub send_adv_mail {
diff --git a/tmpl/advisories.html b/tmpl/advisories.html
new file mode 100644
index 0000000..513672a
--- /dev/null
+++ b/tmpl/advisories.html
@@ -0,0 +1,12 @@
+[% USE date -%]
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Mageia Advisories</title>
+ </head>
+ <body>
+ <h1>Mageia Advisories</h1>
+
+ [% INCLUDE advisories_table.html advlst = advdb.advisories.keys.sort.reverse %]
+ </body>
+</html>
diff --git a/tmpl/advisories_table.html b/tmpl/advisories_table.html
new file mode 100644
index 0000000..6702ace
--- /dev/null
+++ b/tmpl/advisories_table.html
@@ -0,0 +1,65 @@
+ <table border='0'>
+ <tr>
+ <th>
+ Date
+ </th>
+ <th>
+ ID
+ </th>
+ <th>
+ Source Package(s)
+ </th>
+ <th>
+ Type
+ </th>
+ <th>
+ Affected release(s)
+ </th>
+ <th>
+ CVE
+ </th>
+ </tr>
+
+ [% FOREACH adv IN advlst %]
+ <tr>
+ <td width='100'>
+ [% date.format(advdb.advisories.$adv.pubtime, format => '%Y-%m-%d', gmt => 1) %]
+ </td>
+ <td width='150'><a href="[% basename.ID(adv) %].html">[% adv %]</a></td>
+ <td>
+ [% SET sep = '' %]
+ [% SET pkgs = {} %]
+ [% FOREACH rel IN advdb.advisories.$adv.src.keys %]
+ [% FOREACH media IN advdb.advisories.$adv.src.$rel.keys %]
+ [% FOREACH srpm IN advdb.advisories.$adv.src.$rel.$media %]
+ [% SET srcname = tools.pkgname(srpm) %]
+ [% IF ! pkgs.$srcname %]
+ [% SET pkgs.$srcname = 1 %]
+ [% sep %]
+ [% SET sep = ', ' %]
+ <a href="[% basename.src(srcname) %].html">[% srcname %]</a>
+ [% END %]
+ [% END %]
+ [% END %]
+ [% END %]
+ </td>
+ <td>[% advdb.advisories.$adv.type %]</td>
+ <td>
+ [% SET sep = '' %]
+ [% FOREACH rel IN advdb.advisories.$adv.src.keys %]
+ [% sep %]
+ [% SET sep = ', ' %]
+ <a href="[% basename.rel(rel) %].html">[% rel %]</a>
+ [% END %]
+ </td>
+ <td>
+ [% SET sep = '' %]
+ [% FOREACH cve IN advdb.advisories.$adv.CVE %]
+ [% sep %]
+ [% SET sep = ', ' %]
+ <a href="[% basename.CVE(cve) %].html">[% cve %]</a>
+ [% END %]
+ </td>
+ </tr>
+ [% END %]
+ </table>
diff --git a/tmpl/by_cve.html b/tmpl/by_cve.html
new file mode 100644
index 0000000..788f19a
--- /dev/null
+++ b/tmpl/by_cve.html
@@ -0,0 +1,12 @@
+[% USE date -%]
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>[% CVE %]</title>
+ </head>
+ <body>
+ <h1><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=[% CVE %]">[% CVE %]</a></h1>
+
+ [% INCLUDE advisories_table.html advlst = advdb.by_cve.$CVE.sort.reverse %]
+ </body>
+</html>
diff --git a/tmpl/by_rel.html b/tmpl/by_rel.html
new file mode 100644
index 0000000..f3729e3
--- /dev/null
+++ b/tmpl/by_rel.html
@@ -0,0 +1,12 @@
+[% USE date -%]
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Mageia [% rel %] Advisories</title>
+ </head>
+ <body>
+ <h1>Mageia [% rel %] Advisories</h1>
+
+ [% INCLUDE advisories_table.html advlst = advdb.by_rel.$rel.sort.reverse %]
+ </body>
+</html>
diff --git a/tmpl/by_src.html b/tmpl/by_src.html
new file mode 100644
index 0000000..a792c81
--- /dev/null
+++ b/tmpl/by_src.html
@@ -0,0 +1,12 @@
+[% USE date -%]
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Mageia advisories for package [% src %]</title>
+ </head>
+ <body>
+ <h1>Mageia advisories for package [% src %]</h1>
+
+ [% INCLUDE advisories_table.html advlst = advdb.by_src.$src.sort.reverse %]
+ </body>
+</html>
diff --git a/tmpl/index.html b/tmpl/index.html
index bb1691f..34dc474 100644
--- a/tmpl/index.html
+++ b/tmpl/index.html
@@ -7,9 +7,10 @@
<body>
<h1>Mageia Advisories</h1>
<ul>
- [%- FOREACH adv IN advdb.advisories.keys.sort.reverse -%]
- <li><a href="[% basename.ID(adv) %].html">[% adv %]</a>: [% advdb.advisories.$adv.subject %]</li>
+ [% FOREACH rel IN advdb.by_rel.keys.sort -%]
+ <li><a href="[% basename.rel(rel) %].html">Mageia [% rel %] advisories</a></li>
[%- END -%]
+ <li><a href="advisories.html">All advisories</a></li>
</ul>
<h1>Older Advisories</h1>
Older advisories are available on Mageia wiki :
@@ -20,15 +21,5 @@
<h1>DB Dump</h1>
A dump of all advisories is available as <a href="advisories.yaml">a yaml file</a>.
-
- <h1>Work in progress</h1>
- This website is a work in progress. New versions should provide :
- <ul>
- <li>Advisories html pages</li>
- <li>RSS feeds</li>
- <li>Per CVE pages</li>
- <li>Per distribution pages</li>
- <li>Automatic packages move</li>
- </ul>
</body>
</html>