Commit graph

346 commits

Author SHA1 Message Date
Yorhel
70e47e711b Add FreeBSD 14.4 2026-03-15 06:02:35 +01:00
Yorhel
47b48c843c Stop syncing Fedora 41 2026-01-03 10:32:11 +01:00
Yorhel
e6dfa9bb72 Add Alpine 3.23 2025-12-04 11:03:51 +01:00
Yorhel
e78486ab61 Add FreeBSD 15.0 2025-12-02 20:59:33 +01:00
Yorhel
b808af9e13 Add Fedora 43 2025-10-29 16:59:24 +01:00
Yorhel
044e4218f5 Switch mirror for Centos-stream 2025-10-23 11:45:35 +02:00
Yorhel
2930f0f44a Add Ubuntu 25.10 2025-10-23 11:37:22 +02:00
Yorhel
f4b0d3bcd4 Add OpenBSD 7.8 2025-10-23 08:35:42 +02:00
Yorhel
dfa9419b67 Tuning some numbers 2025-10-23 08:35:31 +02:00
Yorhel
902048e282 Change database dump format + add import & export scripts
The new format allows for downloading and importing only a part of the
database - useful when only the metadata is required - and doesn't
include the wasteful preformatted HTML cache.

This also ensures that the new import.sql script is actually usable and
in sync with the actual database. The old schema.sql was neither.

(And this simplifies my backup scripts)
2025-10-08 09:40:53 +02:00
Yorhel
23b2686672 Mirror & sync changes 2025-10-05 12:42:10 +02:00
Yorhel
9c9c46babf Add Debian Forky 2025-09-02 18:25:44 +02:00
Yorhel
8262e6b7c5 Actually sync Alpine 3.22 2025-07-18 07:55:20 +02:00
Yorhel
fe81079568 Debian: Buster is EOL 2025-07-17 12:34:13 +02:00
Yorhel
9f9b429ad1 Fix 500 on "/manpage"
Broken by FU commit a7868f74bf9f3fa9ce8356b8a5d5476269bc9aa9
2025-07-17 12:33:01 +02:00
Yorhel
42d91dc31f Add Fedora 42 2025-06-18 17:33:31 +02:00
Yorhel
d6b515d941 Add FreeBSD 14.3 2025-06-11 15:56:31 +02:00
Yorhel
1ee9474826 Fix displaying included man pages 2025-06-02 07:37:28 +02:00
Yorhel
56626f2b5d Add Alpine 3.22 2025-06-01 09:41:57 +02:00
Yorhel
9c16eba485 cache-html: Fractional sleep & run after cron 2025-05-26 07:58:20 +02:00
Yorhel
bed455039e cache-html.pl: Now with transaction batching support
Because I'm trying to seed the cache from another machine and this
significantly reduces the effects of network latency.
2025-05-25 15:27:33 +02:00
Yorhel
d3bebc8888 Add support for caching HTML-rendered pages
Downside is that this consumes significant disk space, requires
recreating the entire cache when changing something to the way that
pages are rendered and removes flexibility to add dynamic
render-influencing settings in the future.

Alas, crawlers are getting more aggressive and I don't like the idea of
adding more invasive anti-bot tech.
This might not be enough in the long term, we also have a few slow SQL
queries that I'm not yet sure how to optimize. But this ought to give us
more time, at least.
2025-05-25 14:41:15 +02:00
Yorhel
8edb226a18 FU: Set procname 2025-05-25 14:05:36 +02:00
Yorhel
59a7a16c2a Only resolve .so includes when it's the only thing in a man page
Leaving the rest to be formatted as links to the included man page
instead.

Primary reason for this change is to make it possible to cache formatted
man pages, as they now no longer depend on anything except the raw
source of the page itself.
2025-05-25 14:02:10 +02:00
Yorhel
a14f7b9bac Add OpenBSD 7.7 2025-05-02 15:00:16 +02:00
Yorhel
2aa5bea7b4 Add Ubuntu 25.04 2025-04-18 09:58:20 +02:00
Yorhel
11e6859a85 Fix for FU::Validate changes
Requires FU commit 3382deba9acb1c77e3cca464dc8f59801b62b1c5
2025-03-16 15:41:05 +01:00
Yorhel
adfeffd1d1 FreeBSD 13.5 2025-03-11 19:49:15 +01:00
Yorhel
e33faef861 ManUtils: Fix possible deadlock on groff I/O 2025-03-02 21:37:54 +01:00
Yorhel
026a9bf2ad about: Fix example URL
That link broke, the /man.<hash>/<system>/<package> format only works
when <hash> is available in the latest version of <system> and
<package>, and I suspect broadening the search to fix that isn't worth
the extra resources. The canonical permalink format doesn't include
<package> and is resilient against this problem.
2025-02-28 19:11:44 +01:00
Yorhel
5cc77bc7f1 Fixes and updates for new FU version 2025-02-28 13:55:57 +01:00
Yorhel
c16fe86e7a FU: Use schema validation for query parameters
...much better.

(Also I remembered why I threw away groff stderr; it's pretty useless)
2025-02-25 15:54:01 +01:00
Yorhel
682321d1be ManUtils: Move, use ExtUtils::MakeMaker and get rid of AnyEvent
I mean, I like AnyEvent, but this can be done with core modules as well
(albeit somewhat more verbose and error-prone...)
2025-02-24 19:00:09 +01:00
Yorhel
2f33e7f4b5 FU: Initial transition from TUWF
Seems to be working alright, and it does clean up a few things. The
biggest missing thing right now is schema-based validation for some
query parameters. I'm also seeing opportunities for FU::Pg to act as a
hash/shorthash codec, simplifying some error-prone manual conversions.
2025-02-24 16:05:51 +01:00
Yorhel
97d15020f7 indexer: Turn error into warning 2025-02-23 16:23:21 +01:00
Yorhel
1f8bd0ef9a *BSD repo updates 2025-01-09 13:24:00 +01:00
Yorhel
147911b750 CentOS 10 & Ubuntu mirror switch 2025-01-04 10:32:58 +01:00
Yorhel
ea99fc71f9 Alpine 3.21 2024-12-06 08:24:55 +01:00
Yorhel
57de5699e8 Repo updates + some /about page wording 2024-10-30 09:58:09 +01:00
Yorhel
ffad28696e Unbreak groff single quotes and backticks character replacements 2024-07-30 13:10:58 +02:00
Yorhel
0c1b140638 FreeBSD 14.1 2024-06-07 07:19:12 +02:00
Yorhel
bb5f1adc1f Alpine 3.20 2024-05-22 15:27:15 +02:00
Yorhel
9ff6bfc93f indexer: Actually commit the transaction that resets the dead flag 2024-05-13 10:38:48 +02:00
Yorhel
c67091f096 indexer: Drop old package-dead-marking code for Arch
A much simpler approach to dead-marking is to do a periodic

  UPDATE packages SET dead = true WHERE system = $1;

before running the indexer. Not as efficient in terms of avoiding
database writes, but there's no need to run this very often anyway.
2024-05-13 08:57:35 +02:00
Yorhel
ca07b78610 www: Fix versions page for multichar sections + add section selector 2024-05-02 20:01:52 +02:00
Yorhel
3bf860f54e www: Don't throw an error on empty search query
(Not that the current page is much better)
2024-05-01 17:04:16 +02:00
Yorhel
cd5d2c6a20 Remove encodings from "locales" table + delete incorrect locales
The frontend always stripped off the encodings already, so no point in
keeping that in the DB indices. The full locale was extracted from the
filename, which we still keep, so no information is list.

SQL "migration" script:

  BEGIN;
  CREATE INDEX files_tmp_locale ON files (locale);

  INSERT INTO locales (locale) VALUES ('pl_PL'), ('is_IS'), ('ko_KR');

  WITH obs(id, locale, lang) AS (
    SELECT id, locale, regexp_replace(locale, '^([^.]+)\..+$', '\1') FROM locales WHERE locale LIKE '%.%'
     UNION ALL
    SELECT id, locale, '' FROM locales WHERE locale LIKE 'node%' OR locale = 'common'
  ), rep(old, new) AS (
    SELECT o.id, x.id FROM obs o LEFT JOIN locales x ON x.locale = o.lang
  ), upd AS (
    UPDATE files SET locale = new FROM rep WHERE locale = old
  ) DELETE FROM locales WHERE id IN(SELECT id FROM obs);

  DROP INDEX files_tmp_locale;

  COMMIT;
2024-05-01 17:04:09 +02:00
Yorhel
1ee5c9c2df SQL: Add packages.c_hasman cache to speed up package listings
Going from average ~100ms to ~10ms or so. The previous query had a
tendency to be much slower sometimes, let's see if this cache also takes
care of those outliers.

Migration script:

  ALTER TABLE packages ADD COLUMN c_hasman boolean NOT NULL DEFAULT FALSE;

  DROP INDEX packages_system_name_key;
  CREATE UNIQUE INDEX packages_system_name_key ON packages (system, name) INCLUDE (id, c_hasman, dead);

  UPDATE packages SET c_hasman = NOT c_hasman
   WHERE c_hasman <> EXISTS(SELECT 1 FROM package_versions pv WHERE pv.package = packages.id AND EXISTS(SELECT 1 FROM files f WHERE f.pkgver = pv.id));
2024-04-29 21:15:40 +02:00
Yorhel
5d56bded66 www: Include package date in versions listing 2024-04-29 16:30:59 +02:00
Yorhel
18b9666e32 www: Replace "versions" tab with separate page
This gets rid of the last remaining feature that only worked with
Javascript.
2024-04-29 16:24:23 +02:00