20 Commits

Author SHA1 Message Date
1a1d963ca4 use Artix org in Docker Hub
Some checks failed
Github-Actions / build (push) Successful in 8m11s
Docker Image CI / build (push) Failing after 1m51s
2024-10-22 22:09:19 -05:00
f8d5473c25 Merge branch 'upstream'
All checks were successful
Docker Image CI / build (push) Successful in 3m31s
Github-Actions / build (push) Successful in 9m0s
2024-10-09 10:56:22 -05:00
dependabot[bot]
c15b22203a build(deps): bump django from 5.0.8 to 5.0.9
Some checks failed
Github-Actions / build (push) Failing after 8s
Bumps [django](https://github.com/django/django) from 5.0.8 to 5.0.9.
- [Commits](https://github.com/django/django/compare/5.0.8...5.0.9)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 09:32:10 +02:00
nl6720
b39c4c9385 Use ISO 8601 date format
Explicitly specify the ISO 8601 format `Y-m-d H:i` in the date template.

Django 5.0.5 removed the USE_L10N setting making the locale-specific
formats override DATE_FORMAT and DATETIME_FORMAT. See
https://forum.djangoproject.com/t/datetime-format/30811/10 for details.

Fixes https://github.com/archlinux/archweb/issues/520
2024-10-01 12:07:28 +02:00
43c333727d Merge branch 'upstream'
All checks were successful
Github-Actions / build (push) Successful in 1m14s
Docker Image CI / build (push) Successful in 4m22s
2024-09-30 16:48:13 -05:00
nl6720
3da96a4007 Update package issue tracker link in "Flag Package" page
Some checks failed
Github-Actions / build (push) Failing after 10s
Link to the package's issue tracker on gitlab.archlinux.org instead of
the old bug tracker.
2024-09-26 14:53:40 +02:00
eda6dd9f3f Merge branch 'upstream'
All checks were successful
Docker Image CI / build (push) Successful in 4m11s
Github-Actions / build (push) Successful in 8m2s
2024-09-16 17:49:26 -05:00
Christian Heusel
fc191bbe84 enhancement: add transparent background to sponsor images 2024-09-14 11:22:27 +02:00
Jelle van der Waa
c68204d6bb public: make bittorrent and iso downloads from mirrors more visible 2024-09-14 11:14:52 +02:00
004064c15c This page is only big enough for one upstream link, and it's going to be me
All checks were successful
Github-Actions / build (push) Successful in 56s
Docker Image CI / build (push) Successful in 4m29s
2024-08-27 13:36:59 -05:00
305cbdc3d8 different take on the dark theme media query
All checks were successful
Github-Actions / build (push) Successful in 47s
Docker Image CI / build (push) Successful in 4m34s
2024-08-08 19:14:06 -05:00
9a05c787d7 feature: use light colors if light color scheme is preferred
All checks were successful
Github-Actions / build (push) Successful in 47s
Docker Image CI / build (push) Successful in 4m34s
This one's for you, nottherealstevie!
2024-08-08 13:08:45 -05:00
46f4123e45 Update distro name in opensearch.xml 2024-08-08 12:29:04 -05:00
498f565866 Merge upstream changes
All checks were successful
Github-Actions / build (push) Successful in 47s
Docker Image CI / build (push) Successful in 4m38s
2024-08-08 09:29:45 -05:00
60ef0b9766 fix mangled hardcoded protocol 2024-08-08 09:28:36 -05:00
Jelle van der Waa
59ef2de085 packages: handle a package with 0 dependencies
Some checks failed
Github-Actions / build (push) Failing after 10s
2024-08-08 11:31:40 +02:00
dependabot[bot]
b3f923d5f4 build(deps): bump django from 5.0.7 to 5.0.8
Bumps [django](https://github.com/django/django) from 5.0.7 to 5.0.8.
- [Commits](https://github.com/django/django/compare/5.0.7...5.0.8)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-08 11:21:31 +02:00
e83a93055a update actions
All checks were successful
Github-Actions / build (push) Successful in 52s
Docker Image CI / build (push) Successful in 3m54s
2024-08-02 00:05:48 -05:00
Jelle van der Waa
31333d3516 devel: logout is a POST only action since Django 5.0
We can no longer logout with a GET and as folks probably don't want to
depend on JavaScript for logging out, add a form and style the input as
an anchor to make POST'ing work.

Closes: #511
2024-07-29 21:02:29 +02:00
Jelle van der Waa
f8995eb72e releng: cache the torrent urls 2024-07-29 21:02:14 +02:00
21 changed files with 159 additions and 103 deletions

View File

@@ -22,7 +22,7 @@ jobs:
REGISTRY: gitea.artixlinux.org
DH_REGISTRY: docker.io
REPO_ORG: ${{ gitea.repository_owner }}
DH_ORG: corysanin
DH_ORG: artixlinux
IMAGE_NAME: archweb
DH_IMAGE_NAME: archweb
ABSOLUTE_IMAGE: ${{ env.REGISTRY }}/${{ env.REPO_ORG }}/${{ env.IMAGE_NAME }}
@@ -37,15 +37,15 @@ jobs:
- name: Set up docker
run: curl -fsSL https://get.docker.com | sh
- name: Set up QEMU
uses: https://github.com/docker/setup-qemu-action@v2
uses: https://github.com/docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: https://github.com/docker/setup-buildx-action@v2
uses: https://github.com/docker/setup-buildx-action@v3
with:
install: true
- name: Log in to the Container registry
uses: https://github.com/docker/login-action@v2
uses: https://github.com/docker/login-action@v3
if: startsWith(gitea.ref, 'refs/tags/v')
with:
registry: ${{ env.REGISTRY }}
@@ -53,7 +53,7 @@ jobs:
password: ${{ secrets.PAT }}
- name: Log in to the Docker Hub
uses: https://github.com/docker/login-action@v2
uses: https://github.com/docker/login-action@v3
if: startsWith(gitea.ref, 'refs/tags/v')
with:
registry: ${{ env.DH_REGISTRY }}
@@ -94,7 +94,7 @@ jobs:
- name: Build and push release Docker image
if: startsWith(gitea.ref, 'refs/tags/v')
uses: https://github.com/docker/build-push-action@v4
uses: https://github.com/docker/build-push-action@v5
with:
file: Dockerfile
target: deploy
@@ -106,7 +106,7 @@ jobs:
- name: Build develop Docker image
if: "!startsWith(gitea.ref, 'refs/tags/v')"
uses: https://github.com/docker/build-push-action@v4
uses: https://github.com/docker/build-push-action@v5
with:
file: Dockerfile
target: deploy

View File

@@ -21,7 +21,7 @@ from ..utils import get_wrong_permissions, multilib_differences
@require_safe
@cache_control(public=True, max_age=86400)
def opensearch(request):
domain = "%ss://%s" % ('https', request.META.get('HTTP_HOST'))
domain = "%s://%s" % ('https', request.META.get('HTTP_HOST'))
return render(request, 'packages/opensearch.xml',
{'domain': domain},

View File

@@ -1,5 +1,6 @@
from django.conf.urls import include
from django.urls import path, re_path
from django.views.decorators.cache import cache_page
from releng import views
@@ -8,8 +9,8 @@ from .views import ReleaseDetailView, ReleaseListView
releases_patterns = [
path('', ReleaseListView.as_view(), name='releng-release-list'),
path('json/', views.releases_json, name='releng-release-list-json'),
re_path(r'^(?P<version>[-.\w]+)/$', ReleaseDetailView.as_view(), name='releng-release-detail'),
re_path(r'^(?P<version>[-.\w]+)/torrent/$', views.release_torrent, name='releng-release-torrent'),
re_path(r'^(?P<version>[-.\w]+)/$', cache_page(311)(ReleaseDetailView.as_view()), name='releng-release-detail'),
re_path(r'^(?P<version>[-.\w]+)/torrent/$', cache_page(311)(views.release_torrent), name='releng-release-torrent'),
]
netboot_patterns = [

View File

@@ -1,5 +1,5 @@
-e git+https://github.com/fredj/cssmin.git@master#egg=cssmin
Django==5.0.7
Django==5.0.9
IPy==1.1
Markdown==3.3.7
bencode.py==4.0.0

View File

@@ -41,9 +41,6 @@ SITE_ID = 1
DATE_FORMAT = 'Y-m-d'
DATETIME_FORMAT = 'Y-m-d H:i'
# Disable so our own DATE_FORMAT/DATETIME_FORMAT is used.
USE_L10N = False
# Login URL configuration
LOGIN_URL = '/login/'
LOGIN_REDIRECT_URL = '/'

View File

@@ -1197,3 +1197,24 @@ ul.signoff-list {
.pgp-key-ids {
display: inline-block;
}
.logout-form {
display: inline-block;
/* style input as a normal anchor */
input {
background: none!important;
border: none;
padding: 0!important;
/*optional*/
font-family: arial, sans-serif;
font-size: 0.9em;
/*input has OS specific font-family*/
color: #07b;
}
input:hover {
text-decoration: underline;
cursor: pointer;
}
}

View File

@@ -1,7 +1,17 @@
html body {
min-width: 100px;
background: #1a1a1a;
color: #d9d9d9;
}
a:link,
a:visited,
th a:visited {
color: #0a6682;
}
a:hover,
a:focus,
a:visited:hover {
color: #1696bd;
}
#archnavbarlogo {
@@ -10,45 +20,9 @@ html body {
}
#archnavbar#archnavbar {
border-bottom: 5px #0a6682 solid !important;
}
a:link,
a:visited,
th a:visited {
color: #53bffc;
}
a:hover,
a:focus,
a:visited:hover {
color: #92D7FC;
}
#pkgdetails #pkginfo .recent {
color: #B39DDB;
}
div.box.box {
background-color: #2a2a2a;
border: 1px solid #858585;
}
table th.tablesorter-header {
background-image: url(data:image/gif;base64,R0lGODlhFQAJAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=);
}
table thead th.tablesorter-headerAsc {
background-color: #173f59;
background-image: url(data:image/gif;base64,R0lGODlhFQAEAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==);
}
table thead th.tablesorter-headerDesc {
background-color: #173f59;
background-image: url(data:image/gif;base64,R0lGODlhFQAEAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==);
}
th,
td {
white-space: initial;
@@ -60,54 +34,26 @@ table.results.results {
.results.results td,
.results.results th {
border: 1px solid #858585;
text-align: left;
overflow-x: auto;
overflow-wrap: anywhere;
padding: 8px;
}
.results.results tr:nth-child(2n+1) {
background-color: #1a1a1a;
}
.results.results tr:nth-child(even) {
background-color: #111;
}
.results th {
color: #fff;
background-color: #0f3147;
border: 1px solid #0A6682;
white-space: nowrap;
}
#pkglist-results .results tr:hover {
background: #0d0d0d;
}
#pkgdetails #detailslinks>div {
background-color: rgba(255, 255, 255, 0.1);
}
input,
select {
vertical-align: middle;
background: #1a1a1a;
color: #bbb;
border: 1px solid #858585;
border-radius: 4px;
border: 1px solid #858585;
padding: .25em;
max-width: 85vw;
max-width: calc(92vw - 16px);
}
select option:checked {
background: linear-gradient(#0A6682, #0A6682);
background-color: #0A6682;
color: #fff;
}
#pkglist-results-form {
overflow-x: auto;
}
@@ -116,10 +62,6 @@ tr :nth-child(7) {
display: none;
}
#pkgfilelist li.d {
color: #92929a;
}
@media screen and (max-width: 750px) {
tr :nth-child(5) {
display: none;
@@ -160,4 +102,89 @@ tr :nth-child(7) {
float: none;
width: initial;
}
}
@media not all and (prefers-color-scheme: light) {
html body {
background: #1a1a1a;
color: #d9d9d9;
}
a:link,
a:visited,
th a:visited {
color: #53bffc;
}
a:hover,
a:focus,
a:visited:hover {
color: #92D7FC;
}
#pkgdetails #pkginfo .recent {
color: #B39DDB;
}
div.box.box {
background-color: #2a2a2a;
border: 1px solid #858585;
}
table th.tablesorter-header {
background-image: url(data:image/gif;base64,R0lGODlhFQAJAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=);
}
table thead th.tablesorter-headerAsc {
background-color: #173f59;
background-image: url(data:image/gif;base64,R0lGODlhFQAEAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==);
}
table thead th.tablesorter-headerDesc {
background-color: #173f59;
background-image: url(data:image/gif;base64,R0lGODlhFQAEAPABAOTu/wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==);
}
.results.results td,
.results.results th {
border: 1px solid #858585;
}
.results.results tr:nth-child(2n+1) {
background-color: #1a1a1a;
}
.results.results tr:nth-child(even) {
background-color: #111;
}
.results th {
color: #fff;
background-color: #0f3147;
border: 1px solid #0A6682;
}
#pkglist-results .results tr:hover {
background: #0d0d0d;
}
#pkgdetails #detailslinks>div {
background-color: rgba(255, 255, 255, 0.1);
}
input,
select {
background: #1a1a1a;
color: #bbb;
}
select option:checked {
background: linear-gradient(#0A6682, #0A6682);
background-color: #0A6682;
color: #fff;
}
#pkgfilelist li.d {
color: #92929a;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -59,7 +59,11 @@
{% if user|in_groups:'Developers:Package Maintainers:Support Staff' %}
<li><a href="/devel/tier0mirror/" title="Your Tier 0 Mirror information">Tier0 mirror</a></li>
{% endif %}
<li><a href="/logout/" title="Logout of the developer interface">Logout</a></li>
<li>
<form class="logout-form" method="post" action="/logout/">{% csrf_token %}
<input type="submit" title="Logout of the developer interface" value="Logout"/>
</form>
</li>
</ul>
{% endif %}
</div>

View File

@@ -30,7 +30,7 @@
<tbody>
{% for entry in admin_log %}
<tr>
<th scope="row">{{ entry.action_time|date:"DATETIME_FORMAT" }}</th>
<th scope="row">{{ entry.action_time|date:"Y-m-d H:i" }}</th>
{% if log_user %}
<td>{{ entry.user.username }}{% if entry.user.get_full_name %} ({{ entry.user.get_full_name }}){% endif %}</td>
{% else %}

View File

@@ -85,6 +85,9 @@ function collapseDependsList(list) {
// enough items, or the link already exists.
const limit = 20;
const elem = document.querySelector(list);
if (!elem)
return;
const linkid = elem.getAttribute('id') + 'link';
const items = Array.from(elem.querySelectorAll('li')).slice(limit);

View File

@@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load package_extras %}
{% load humanize %}
{% load details_link %}
{% block title %}Arch Linux - Flag Package - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %}
{% block head %}<meta name="robots" content="noindex"/>{% endblock %}
@@ -29,9 +30,9 @@
with your additional text.</p>
<p><strong>Note:</strong> Do <em>not</em> use this facility if the
package is broken! The package will be unflagged and the report will be ignored!
<a href="https://bugs.archlinux.org/" title="Arch Linux Bugtracker">Use the
bugtracker to file a bug</a> instead.</p>
package is broken! The package will be unflagged and the report will be ignored! File an issue on
<a href="{% bugs_list package %}" title="Bug tickets for {{ package }}">the package's GitLab repository</a>
instead.</p>
<p>Please confirm your flag request for {{package.pkgname}}:</p>

View File

@@ -1,9 +1,9 @@
{% load static %}<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Arch Packages</ShortName>
<LongName>Arch Linux Package Repository Search</LongName>
<Description>Search the Arch Linux package repositories by keyword in package names and descriptions.</Description>
<Tags>linux archlinux package software</Tags>
<ShortName>Artix Packages</ShortName>
<LongName>Artix Linux Package Repository Search</LongName>
<Description>Search the Artix Linux package repositories by keyword in package names and descriptions.</Description>
<Tags>linux artixlinux package software</Tags>
<Image height="16" width="16" type="image/png">{{ domain }}{% static "favicon.png" %}</Image>
<Image height="64" width="64" type="image/png">{{ domain }}{% static "logos/icon-transparent-64x64.png" %}</Image>
<Language>en-us</Language>

View File

@@ -123,7 +123,7 @@
<th>Description:</th>
<td class="wrap" itemprop="description">{{ pkg.pkgdesc|default:"" }}</td>
</tr><tr>
<th>Upstream URL:</th>
<th>Homepage:</th>
<td>{% if pkg.url %}<a itemprop="url" href="{{ pkg.url }}"
title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url|url_unquote }}</a>{% endif %}</td>
</tr><tr>
@@ -188,19 +188,19 @@
{% else %}{{ pkg.packager_str }}{% endif %}{% endwith %}</td>
</tr><tr>
<th>Build Date:</th>
<td>{{ pkg.build_date|date:"DATETIME_FORMAT" }} UTC</td>
<td>{{ pkg.build_date|date:"Y-m-d H:i" }} UTC</td>
</tr>{% if pkg.signature %}<tr>
<th>Signed By:</th>
<td>{% with signer=pkg.signer %}{% if signer %}{% pgp_key_link pkg.signature.key_id signer.get_full_name|safe %}{% else %}Unknown ({% pgp_key_link pkg.signature.key_id|safe %}){% endif %}{% endwith %}</td>
</tr><tr>
<th>Signature Date:</th>
<td>{{ pkg.signature.creation_time|date:"DATETIME_FORMAT" }} UTC</td>
<td>{{ pkg.signature.creation_time|date:"Y-m-d H:i" }} UTC</td>
</tr>{% else %}<tr>
<th>Signed By:</th>
<td>Unsigned</td>
</tr>{% endif %}<tr>
<th>Last Updated:</th>
<td>{{ pkg.last_update|date:"DATETIME_FORMAT" }} UTC{% if pkg.is_recent %} <span class="recent" title="Your mirror may not yet have this package version">({{ pkg.last_update|naturaltime }})</span>{% endif %}</td>
<td>{{ pkg.last_update|date:"Y-m-d H:i" }} UTC{% if pkg.is_recent %} <span class="recent" title="Your mirror may not yet have this package version">({{ pkg.last_update|naturaltime }})</span>{% endif %}</td>
</tr>
{% if user.is_authenticated %}<tr>
<th>Reproducible Status:</th>

View File

@@ -25,6 +25,8 @@
It is intended for new installations only; an existing Arch Linux system
can always be updated with <code>pacman -Syu</code>.</p>
<p>Images for installing Arch can be downloaded via <a href="#bittorrent-download">BitTorrent</a> or right here in your browser from one of the <a href="#http-downloads">Arch HTTP(S) mirrors down below</a>.</p>
<ul>
{% if release.version %}<li><strong>Current Release:</strong> {{ release.version }}</li>{% endif %}
{% if release.kernel_version %}<li><strong>Included Kernel:</strong> {{ release.kernel_version }}</li>{% endif %}
@@ -52,7 +54,7 @@
to update your existing system. You may be looking for
<a href="{% url 'mirrorlist' %}">an updated mirrorlist</a> instead.</p>
<h3>BitTorrent Download (recommended)</h3>
<h3 id="bittorrent-download">BitTorrent Download (recommended)</h3>
<p>If you can spare the bytes, please leave the client open after your
download is finished, so you can seed it back to others.
@@ -91,10 +93,10 @@
<p>Official virtual machine images are available for download on our <a href="https://gitlab.archlinux.org/archlinux/arch-boxes/-/packages">GitLab instance</a>, more information is available in the <a href="https://gitlab.archlinux.org/archlinux/arch-boxes/">README</a>.</p>
<h3>HTTP Direct Downloads</h3>
<h3 id="http-downloads">HTTP Direct Downloads</h3>
<p>In addition to the BitTorrent links above, install images can also be
downloaded via HTTP from the mirror sites listed below. Please
downloaded via HTTP from the <a href="#download-mirrors">mirror sites listed below</a>. Please
ensure the download image matches the checksum from the <code>sha256sums.txt</code> or <code>b2sums.txt</code> file linked below.</p>
<h4 id="checksums">Checksums and signatures</h4>

View File

@@ -203,7 +203,7 @@
</a>
<a href="https://www.privateinternetaccess.com/" title="Private Internet Access">
<img src="{% static "pia_button.png" %}"
<img src="{% static "pia_logo.png" %}"
title="" alt="Private Internet Access logo"/>
</a>

View File

@@ -38,7 +38,7 @@
<ul>
<li><strong>Comment:</strong> {{ torrent.comment }}</li>
<li><strong>Creation Date:</strong> {{ torrent.creation_date|date:"DATETIME_FORMAT" }} UTC</li>
<li><strong>Creation Date:</strong> {{ torrent.creation_date|date:"Y-m-d H:i" }} UTC</li>
<li><strong>Created By:</strong> {{ torrent.created_by }}</li>
<li><strong>Announce URL:</strong> {{ torrent.announce }}</li>
<li><strong>File Name:</strong> {{ torrent.file_name }}</li>