Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Downside of managing dependencies myself instead of using OS package
manager, now we have these shitty dep update commits. :(
|
|
Subqueries still need an alias in Postgres 15.
|
|
Pretty pointless change given that the extra entries aren't yet used.
This is yak shaving.
|
|
Could add an option to show them, but that's low prio.
|
|
|
|
April fools is over.
|
|
|
|
|
|
Pretty much a copy of TagEdit with some minor differences. Might make
sense to merge these into a single file.
|
|
|
|
|
|
|
|
|
|
|
|
This is a lot more robust than that silly pid file.
|
|
|
|
Good thing there's a big confirmation page to prevent accidents, heh.
|
|
My testing, deployment and backup scripts were getting more complicated
with files from various stages being lumped into a single directory
structure, so all generated files (= anything touched by 'make') and
runtime files (= anything touched by the web backend or multi) have now
been moved into separate directories. These directories are also
configurable with $VNDB_GEN and $VNDB_VAR, making it possible to manage
multiple instances from a single source checkout.
I also got rid of *data/* and *dl/* while I was at it, and moved
*static/st/* (that is, the screenshot thumbnails) to */sf.t/*, to be
consistent with the newer and more flexible image directory naming
scheme.
This commit breaks all existing installations and upgrading requires
manual action. General upgrade instructions:
# BEFORE doing a checkout of this commit
make clean
# AFTER
make
mkdir -p var/static var/log
mv static/st var/static/sf.t
mv static/{sf,ch,cv}{,.orig} var/static/
mv data/conf.pl var/
mv data/log var/
mv data/hibp var/
mv dl var/
util/setup-var.sh
Use `git status` find leftover files to clean up or move.
Don't forget to update conf.pl and web server configuration to make sure
they access the new paths.
|
|
|
|
|
|
|
|
|
|
Somewhat hacked together, should better integrate this feature with
Auth.pm but the code is already annoying enough as it is. :(
|
|
|
|
Broken in 8a8593e91e5252a24fdfa7d46c28134668ab7c9c
Oops.
|
|
This work is to support a safe self-service account deletion feature,
but I haven't implemented that part yet.
|
|
|
|
Slightly helpful for account recovery scenarios when the user doesn't
know their *exact* sign-up address, but that's not too common.
This normalization should become more useful when I implement better
opt-out functionality.
|
|
|
|
|
|
I really want to reorganize the directory structure some more, but let's
start with the easy things.
|
|
|
|
Not particularly useful, but I always enjoy removing dependencies.
|
|
Wanted to upgrade to Alpine 3.19 while I was at it, but getting
postgresql15-dev and libpq-dev installed at the same time didn't go
well. Upgrading to Postgres 16 also didn't go well, I'll probably need
to fix vndbfuncs for that. Later.
|
|
My goals, in particular, were to:
- Make use of a more efficient jpeg encoder; jpegli in this case.
- Sandbox the image handling process to protect against codec
vulnerabilities; implemented with seccomp.
This isn't easy to do with software packaged in typical Linux repos, so
I had to improvise a bit. I switched to libvips as that is easier to
sandbox than ImageMagick and provided a Makefile to fetch and build a
custom libvips that uses jpegli. None of this is very portable, so to
simplify testing setups a simpler "imgproc-portable" binary is built
instead.
Also experimented with different resizing and encoding options,
but the defaults were mostly okay. See https://vndb.org/t21692
(This breaks the Docker setup, I'll fix that later. I'll also see if I
can drop the ImageMagick dependency that's still used for pngsprite.pl,
as it seems a little redundant)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tab is still visible even when count = 0, because there's otherwise no
way to submit a quote.
|
|
|
|
Only on the VN tab though, the global listing is more of a mod feature.
|
|
|
|
|
|
Shouldn't insert a row into the database for an image that isn't on
disk.
|
|
With filters and all. Mostly for moderation purposes.
|
|
|