17 Commits

Author SHA1 Message Date
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
98bdc48716 force https in opensearch xml
All checks were successful
Github-Actions / build (push) Successful in 56s
Docker Image CI / build (push) Successful in 4m27s
2024-08-01 22:54:28 -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
19 changed files with 154 additions and 94 deletions

View File

@@ -37,15 +37,15 @@ jobs:
- name: Set up docker - name: Set up docker
run: curl -fsSL https://get.docker.com | sh run: curl -fsSL https://get.docker.com | sh
- name: Set up QEMU - 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 - name: Set up Docker Buildx
id: buildx id: buildx
uses: https://github.com/docker/setup-buildx-action@v2 uses: https://github.com/docker/setup-buildx-action@v3
with: with:
install: true install: true
- name: Log in to the Container registry - 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') if: startsWith(gitea.ref, 'refs/tags/v')
with: with:
registry: ${{ env.REGISTRY }} registry: ${{ env.REGISTRY }}
@@ -53,7 +53,7 @@ jobs:
password: ${{ secrets.PAT }} password: ${{ secrets.PAT }}
- name: Log in to the Docker Hub - 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') if: startsWith(gitea.ref, 'refs/tags/v')
with: with:
registry: ${{ env.DH_REGISTRY }} registry: ${{ env.DH_REGISTRY }}
@@ -94,7 +94,7 @@ jobs:
- name: Build and push release Docker image - name: Build and push release Docker image
if: startsWith(gitea.ref, 'refs/tags/v') 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: with:
file: Dockerfile file: Dockerfile
target: deploy target: deploy
@@ -106,7 +106,7 @@ jobs:
- name: Build develop Docker image - name: Build develop Docker image
if: "!startsWith(gitea.ref, 'refs/tags/v')" 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: with:
file: Dockerfile file: Dockerfile
target: deploy target: deploy

View File

@@ -10,6 +10,7 @@ version: '2'
# docker compose run --rm packages_web python manage.py generate_keyring pgp.surfnet.nl ./config/keyring # docker compose run --rm packages_web python manage.py generate_keyring pgp.surfnet.nl ./config/keyring
# docker compose run --rm packages_web python manage.py pgp_import ./config/keyring # docker compose run --rm packages_web python manage.py pgp_import ./config/keyring
## go to /admin/devel/developerkey/ and set the owner (and parent) for the ownerless key ## go to /admin/devel/developerkey/ and set the owner (and parent) for the ownerless key
## go to /admin/sites/site/1/change/ and set the domain
services: services:

View File

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

View File

@@ -1,5 +1,6 @@
from django.conf.urls import include from django.conf.urls import include
from django.urls import path, re_path from django.urls import path, re_path
from django.views.decorators.cache import cache_page
from releng import views from releng import views
@@ -8,8 +9,8 @@ from .views import ReleaseDetailView, ReleaseListView
releases_patterns = [ releases_patterns = [
path('', ReleaseListView.as_view(), name='releng-release-list'), path('', ReleaseListView.as_view(), name='releng-release-list'),
path('json/', views.releases_json, name='releng-release-list-json'), 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]+)/$', cache_page(311)(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]+)/torrent/$', cache_page(311)(views.release_torrent), name='releng-release-torrent'),
] ]
netboot_patterns = [ netboot_patterns = [

View File

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

View File

@@ -1197,3 +1197,24 @@ ul.signoff-list {
.pgp-key-ids { .pgp-key-ids {
display: inline-block; 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 { html body {
min-width: 100px; 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 { #archnavbarlogo {
@@ -10,45 +20,9 @@ html body {
} }
#archnavbar#archnavbar { #archnavbar#archnavbar {
border-bottom: 5px #0a6682 solid !important; 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, th,
td { td {
white-space: initial; white-space: initial;
@@ -60,54 +34,26 @@ table.results.results {
.results.results td, .results.results td,
.results.results th { .results.results th {
border: 1px solid #858585;
text-align: left; text-align: left;
overflow-x: auto; overflow-x: auto;
overflow-wrap: anywhere; overflow-wrap: anywhere;
padding: 8px; padding: 8px;
} }
.results.results tr:nth-child(2n+1) {
background-color: #1a1a1a;
}
.results.results tr:nth-child(even) {
background-color: #111;
}
.results th { .results th {
color: #fff;
background-color: #0f3147;
border: 1px solid #0A6682;
white-space: nowrap; white-space: nowrap;
} }
#pkglist-results .results tr:hover {
background: #0d0d0d;
}
#pkgdetails #detailslinks>div {
background-color: rgba(255, 255, 255, 0.1);
}
input, input,
select { select {
vertical-align: middle; vertical-align: middle;
background: #1a1a1a;
color: #bbb;
border: 1px solid #858585;
border-radius: 4px; border-radius: 4px;
border: 1px solid #858585;
padding: .25em; padding: .25em;
max-width: 85vw; max-width: 85vw;
max-width: calc(92vw - 16px); max-width: calc(92vw - 16px);
} }
select option:checked {
background: linear-gradient(#0A6682, #0A6682);
background-color: #0A6682;
color: #fff;
}
#pkglist-results-form { #pkglist-results-form {
overflow-x: auto; overflow-x: auto;
} }
@@ -116,10 +62,6 @@ tr :nth-child(7) {
display: none; display: none;
} }
#pkgfilelist li.d {
color: #92929a;
}
@media screen and (max-width: 750px) { @media screen and (max-width: 750px) {
tr :nth-child(5) { tr :nth-child(5) {
display: none; display: none;
@@ -160,4 +102,89 @@ tr :nth-child(7) {
float: none; float: none;
width: initial; 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' %} {% if user|in_groups:'Developers:Package Maintainers:Support Staff' %}
<li><a href="/devel/tier0mirror/" title="Your Tier 0 Mirror information">Tier0 mirror</a></li> <li><a href="/devel/tier0mirror/" title="Your Tier 0 Mirror information">Tier0 mirror</a></li>
{% endif %} {% 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> </ul>
{% endif %} {% endif %}
</div> </div>

View File

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

View File

@@ -1,6 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load package_extras %} {% load package_extras %}
{% load humanize %} {% load humanize %}
{% load details_link %}
{% block title %}Arch Linux - Flag Package - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %} {% block title %}Arch Linux - Flag Package - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %}
{% block head %}<meta name="robots" content="noindex"/>{% endblock %} {% block head %}<meta name="robots" content="noindex"/>{% endblock %}
@@ -29,9 +30,9 @@
with your additional text.</p> with your additional text.</p>
<p><strong>Note:</strong> Do <em>not</em> use this facility if the <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! package is broken! The package will be unflagged and the report will be ignored! File an issue on
<a href="https://bugs.archlinux.org/" title="Arch Linux Bugtracker">Use the <a href="{% bugs_list package %}" title="Bug tickets for {{ package }}">the package's GitLab repository</a>
bugtracker to file a bug</a> instead.</p> instead.</p>
<p>Please confirm your flag request for {{package.pkgname}}:</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"?> {% load static %}<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Arch Packages</ShortName> <ShortName>Artix Packages</ShortName>
<LongName>Arch Linux Package Repository Search</LongName> <LongName>Artix Linux Package Repository Search</LongName>
<Description>Search the Arch Linux package repositories by keyword in package names and descriptions.</Description> <Description>Search the Artix Linux package repositories by keyword in package names and descriptions.</Description>
<Tags>linux archlinux package software</Tags> <Tags>linux artixlinux package software</Tags>
<Image height="16" width="16" type="image/png">{{ domain }}{% static "favicon.png" %}</Image> <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> <Image height="64" width="64" type="image/png">{{ domain }}{% static "logos/icon-transparent-64x64.png" %}</Image>
<Language>en-us</Language> <Language>en-us</Language>

View File

@@ -123,7 +123,7 @@
<th>Description:</th> <th>Description:</th>
<td class="wrap" itemprop="description">{{ pkg.pkgdesc|default:"" }}</td> <td class="wrap" itemprop="description">{{ pkg.pkgdesc|default:"" }}</td>
</tr><tr> </tr><tr>
<th>Upstream URL:</th> <th>Homepage:</th>
<td>{% if pkg.url %}<a itemprop="url" href="{{ pkg.url }}" <td>{% if pkg.url %}<a itemprop="url" href="{{ pkg.url }}"
title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url|url_unquote }}</a>{% endif %}</td> title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url|url_unquote }}</a>{% endif %}</td>
</tr><tr> </tr><tr>

View File

@@ -25,6 +25,8 @@
It is intended for new installations only; an existing Arch Linux system It is intended for new installations only; an existing Arch Linux system
can always be updated with <code>pacman -Syu</code>.</p> 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> <ul>
{% if release.version %}<li><strong>Current Release:</strong> {{ release.version }}</li>{% endif %} {% 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 %} {% 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 to update your existing system. You may be looking for
<a href="{% url 'mirrorlist' %}">an updated mirrorlist</a> instead.</p> <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 <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. 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> <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 <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> 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> <h4 id="checksums">Checksums and signatures</h4>

View File

@@ -203,7 +203,7 @@
</a> </a>
<a href="https://www.privateinternetaccess.com/" title="Private Internet Access"> <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"/> title="" alt="Private Internet Access logo"/>
</a> </a>