70 Commity

Autor SHA1 Wiadomość Data
662369b390 Merge branch 'master' into newsletter-20250708
Niektóre etapy nie powiodły się
continuous-integration/drone/pr Build is failing
2025-07-08 09:22:29 +00:00
Ana Galan
b44ef37010 adding newsletter
Niektóre etapy nie powiodły się
continuous-integration/drone/pr Build is failing
2025-07-08 11:14:06 +02:00
f4026a1605 bump library version
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-07-08 10:50:01 +02:00
3f6b038386 Merge pull request 'ADD-event-20250710-01-01-19b43e15da414d3c' (#5134) from ADD-event-20250710-01-01-19b43e15da414d3c into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5134
2025-07-08 07:07:19 +00:00
fsfe-website/cgi-bin/registerevent.php
f25773cdb9 Commit generated by fsfe-website/cgi-bin/registerevent, to add event fsfe.org/events/2025/event-20250710-01.en.xml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
Signed-off-by: fsfe-website/cgi-bin/registerevent.php <syshackers@fsfe.org>
2025-07-07 20:10:11 +00:00
a0c19b1833 PD form functionality
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
if a other rate was added in the PD form, check the radio button automatically to use the other rate.
2025-07-07 15:10:01 +02:00
db16847fe8 fix date
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-07-02 07:55:37 +02:00
d4b2a2e159 fix ampersants
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-07-02 07:37:05 +02:00
0a9053fa2f fix ampersants
Niektóre etapy nie powiodły się
continuous-integration/drone/push Build is failing
2025-07-02 07:35:42 +02:00
52a27375cf fix ampersants
Niektóre etapy nie powiodły się
continuous-integration/drone/push Build is failing
2025-07-02 07:34:05 +02:00
512649365b added Berlin group event
Niektóre etapy nie powiodły się
continuous-integration/drone/push Build is failing
End of 10 - Linux install parties at c-base
2025-07-02 07:31:30 +02:00
bc0ed5c97b move office
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-07-01 14:55:38 +02:00
f06d9ae598 WIP: YH4F update registration link
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-01 14:13:09 +02:00
e26ee41ba2 Merge pull request 'Add Sofía Aritz to jury' (#5132) from sofiaritz/fsfe-website:update-jury-page into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5132
2025-07-01 11:32:04 +00:00
d905ca1578 Clarity 2025-07-01 13:28:41 +02:00
d38e07fba7 Add Sofía Aritz to jury 2025-07-01 11:52:29 +02:00
67d7bd338f Merge pull request 'fix: use same for loop for both subdir stuff' (#5130) from fix/early-dirs into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5130
2025-07-01 08:06:18 +00:00
edd9d73f6f Merge pull request 'ADD-event-20251011-01-01-6baeee84ecbd94bc' (#5131) from ADD-event-20251011-01-01-6baeee84ecbd94bc into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5131
2025-06-30 10:09:27 +00:00
5a642dc67b Merge branch 'master' into ADD-event-20251011-01-01-6baeee84ecbd94bc
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-30 10:08:19 +00:00
c01669313f Update Tübix info after a talk was moved to a different room
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-06-30 11:50:47 +02:00
fsfe-website/cgi-bin/registerevent.php
867c027c48 Commit generated by fsfe-website/cgi-bin/registerevent, to add event fsfe.org/events/2025/event-20251011-01.en.xml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
Signed-off-by: fsfe-website/cgi-bin/registerevent.php <syshackers@fsfe.org>
2025-06-30 09:41:32 +00:00
Darragh Elliott
869d384079 fix: use same for loop for both subdir stuff
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-28 09:46:52 +01:00
03f3139d63 Merge pull request 'updating hightlights tag' (#5129) from news-20250627-highlights into master
Niektóre etapy zgłosiły błędy
continuous-integration/drone/push Build was killed
Reviewed-on: #5129
2025-06-27 09:16:32 +00:00
58b8b6e470 updating hightlights tag
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-27 11:19:08 +02:00
6c2f29f74c Merge pull request 'adding news tag' (#5128) from news-20250627-dma into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5128
2025-06-27 09:12:08 +00:00
021a0c6c80 adding news tag
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-27 11:15:00 +02:00
fbf1599c3e YH4F update Sponsor Logos
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
- [ ] increase space around Proxmox Logo
- [ ] ensure size of logo is appropriate
- [ ] add links to Sponsors webpage
2025-06-26 21:13:53 +02:00
4908593bf7 YH4F: exchange Proxmox logo for better quality
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-26 19:05:34 +02:00
9c7843638f Merge pull request 'feat: use uv' (#5099) from feat/pyproject into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5099
Reviewed-by: tobiasd <tobiasd@fsfe.org>
2025-06-26 08:32:24 +00:00
13fa0cef98 Merge pull request 'feat: add renovate to the website' (#5125) from feat/renovate into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5125
2025-06-26 08:03:06 +00:00
Darragh Elliott
ca3fa0e08b feat: add renovate to the website
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-25 19:16:36 +01:00
Darragh Elliott
c79f5ef415 feat: use uv
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
its faster, and has some nicer features
2025-06-25 18:58:17 +01:00
940813aad0 Merge pull request 'fix: more nonstandard date formats' (#5124) from fix/dates into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5124
2025-06-24 18:52:10 +00:00
Darragh Elliott
0732465bce fix: more nonstandard date formats
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-24 19:49:47 +01:00
e87de63440 Merge pull request 'fix: nonstandard timestamp format in event' (#5123) from fix/date into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5123
2025-06-24 18:43:14 +00:00
Darragh Elliott
b961b340fa fix: nonstandard timestamp format in event
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-24 19:41:03 +01:00
6162d9c692 added Danish AZ link for the peertube
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-06-23 15:50:06 +02:00
72c2d69e00 Merge pull request 'ADD-event-20250530-01-01-6ae16dbf0e0edc00' (#5036) from ADD-event-20250530-01-01-6ae16dbf0e0edc00 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5036
2025-06-23 12:47:23 +00:00
9a8e290e4b fix event
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-23 14:46:11 +02:00
e70d45b88a Merge pull request 'Add delay notice to merch and promo pages' (#5112) from sofiaritz/fsfe-website:order-delay-notice-25 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5112
2025-06-20 09:13:44 +00:00
0c7abbc0ba Merge pull request 'changing ada activity to add the movie too' (#5113) from 20250619-activities into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5113
2025-06-19 14:34:26 +00:00
4952bd6af1 changing ada activity to add the movie too
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-19 16:35:51 +02:00
1b11c4c1ac add delay notice 2025-06-19 16:02:15 +02:00
14cff9b765 Merge pull request 'Update fsfe.org/activities/deviceneutrality/interop-survey.en.xhtml' (#5111) from dario-patch-5 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5111
2025-06-18 13:37:42 +00:00
a891997aef Update fsfe.org/activities/deviceneutrality/interop-survey.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 12:47:44 +00:00
a5ba8c4052 Merge pull request 'Update fsfe.org/news/2025/news-20250618-01.en.xhtml' (#5109) from dario-patch-5 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5109
2025-06-18 11:40:23 +00:00
26132e6818 Merge pull request 'Update fsfe.org/activities/deviceneutrality/interop-survey.en.xhtml' (#5110) from dario-patch-6 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5110
2025-06-18 11:17:35 +00:00
de8f0cd7f1 Update fsfe.org/activities/deviceneutrality/interop-survey.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 11:16:28 +00:00
31669ae88e Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 11:14:46 +00:00
1decc9bf6f fixing news item
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-06-18 13:01:36 +02:00
2d2b5103a9 Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Niektóre etapy nie powiodły się
continuous-integration/drone/pr Build is failing
2025-06-18 10:51:56 +00:00
847e124c84 Merge pull request 'Update fsfe.org/news/2025/news-20250618-01.en.xhtml' (#5107) from dario-patch-4 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5107
2025-06-18 10:37:13 +00:00
5da9e7f788 Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 10:36:17 +00:00
754f531af8 Merge pull request 'Update fsfe.org/news/2025/news-20250618-01.en.xhtml' (#5106) from dario-patch-3 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5106
2025-06-18 10:35:14 +00:00
a91acf6f9f Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 10:33:46 +00:00
c68bf22ad5 Merge pull request 'news-20250618-interop' (#5105) from news-20250618-interop into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5105
2025-06-18 10:19:54 +00:00
e33e223421 Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
adding alt text
2025-06-18 10:18:30 +00:00
3dd38aa574 Update fsfe.org/news/2025/news-20250618-01.en.xhtml
fixing links
2025-06-18 10:14:08 +00:00
c4abce43f1 Merge pull request 'adding banner' (#5104) from fix-lp into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5104
2025-06-18 10:13:17 +00:00
e0ba16076d adding banner
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 12:12:07 +02:00
c76a58e325 Merge pull request 'preparing DN and DMA page for interop-survey publication' (#5100) from interop-survey-minor into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5100
2025-06-18 10:09:04 +00:00
5a9ff72e2b Merge pull request 'Update fsfe.org/news/2025/news-20250618-01.en.xhtml' (#5103) from news-20250618-interop into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5103
2025-06-18 09:59:38 +00:00
a24269f8a0 Update fsfe.org/news/2025/news-20250618-01.en.xhtml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 09:58:08 +00:00
ca83e2b5c8 Merge pull request 'interop-20250618' (#5101) from interop-20250618 into master
Niektóre etapy zgłosiły błędy
continuous-integration/drone/push Build was killed
Reviewed-on: #5101
2025-06-18 09:44:17 +00:00
9d37a55e74 Merge pull request 'news interop survey' (#5102) from news20250618 into master
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
Reviewed-on: #5102
2025-06-18 09:41:56 +00:00
3385fffd6c news interop survey
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 11:39:40 +02:00
3f79cdf2b6 changing file
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
2025-06-18 11:20:28 +02:00
a673e3b84c adding interop survey page 2025-06-18 11:11:58 +02:00
3ef4f69d7d update sofia
Wszystkie etapy powiodły się
continuous-integration/drone/push Build is passing
2025-06-18 10:48:20 +02:00
fsfe-website/cgi-bin/registerevent.php
f880a5ed0d Commit generated by fsfe-website/cgi-bin/registerevent, to add event fsfe.org/events/2025/event-20250530-01.it.xml
Wszystkie etapy powiodły się
continuous-integration/drone/pr Build is passing
Signed-off-by: fsfe-website/cgi-bin/registerevent.php <syshackers@fsfe.org>
2025-05-22 21:12:11 +00:00
84 zmienionych plików z 2337 dodań i 642 usunięć

1
.dockerignore Dowiązanie symboliczne
Wyświetl plik

@@ -0,0 +1 @@
.gitignore

3
.gitignore vendored
Wyświetl plik

@@ -5,9 +5,10 @@ global/data/topbanner/.topbanner.??.xml
.*.xmllist
# Local build stuff
output
# Python venv
# Python stuff
.venv
__pycache__
uv.lock
#Nltk
.nltk_data

Wyświetl plik

@@ -1,33 +1,30 @@
FROM debian:latest
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
# Install deps
RUN apt update
RUN apt install --yes --no-install-recommends \
RUN apt-get update && apt-get install --yes --no-install-recommends \
rsync \
libxslt1.1 \
libxml2 \
golang \
python3 \
python3-venv \
python3-pip \
git \
node-less \
openssh-client \
ca-certificates \
expect
# Set uv project env, to persist stuff moving dirs
ENV UV_PROJECT_ENVIRONMENT=/root/.cache/uv/venv
# Set the workdir
WORKDIR /website-source
# Setup venv
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Copy the requirements
# Copy the pyproject and build deps
# Done in a seperate step for optimal docker caching
COPY ./requirements.txt /website-source/requirements.txt
RUN pip install -r /website-source/requirements.txt
COPY ./pyproject.toml .
RUN uv sync --no-install-package build
# Copy everything else
COPY . /website-source/
WORKDIR /website-source
COPY . .
ENTRYPOINT [ "bash", "./entrypoint.sh" ]

Wyświetl plik

@@ -82,12 +82,12 @@ Alterations to build scripts or the files used site-wide will result in near ful
### Native
We can either install the required dependencies manually using our preferred package manager. If you are a nix use one can run `nix-shell` to enter a shell with the required build dependencies, with the python `virtualenv` already installed and activated.
We can either install the required dependencies manually using our preferred package manager. If you are a nix use one can run `nix-shell` to enter a shell with the required build dependencies.
If installing manually, the required binary names are
```
python3 pip
uv
```
Also needed are the libraries
@@ -96,17 +96,9 @@ Also needed are the libraries
libxml2 libxslt
```
Then, we must activate a Python virtual env and install the python dependencies.
As we are using [UV](https://docs.astral.sh/uv/) we can just run the build process directly, and let it handle deps.
```
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
After getting the dependencies one way or another we can actually build and serve the pages.
The pages can be built and served by running `./build.py`. Try `--help` for more information. The simple web server used lacks the features of `apache` which used on the FSFE web servers. This is why no index is automatically selected for each directory and other behaviours.
The pages can be built and served by running `uv run build`. Try `--help` for more information. The simple web server used lacks the features of `apache` which used on the FSFE web servers. This is why no index is automatically selected for each directory and other behaviours.
### Docker
@@ -129,7 +121,7 @@ KEY_PRIVATE=none KEY_PASSWORD=none GIT_TOKEN=none docker compose
Once your preferred method has been chosen, simply running `docker compose run --service-ports build --serve` should build the webpages and make them available over localhost.
Some more explanation: we are essentially just using docker as a way to provide dependencies and then running the build script. All flags after `build` are passed to `build.py`. The `service-ports` flag is required to open ports from the container for serving the output, not needed if not using the `--serve` flag of the build script.
Some more explanation: we are essentially just using docker as a way to provide dependencies and then running the build script. All flags after `build` are passed to the `build` cli. The `service-ports` flag is required to open ports from the container for serving the output, not needed if not using the `--serve` flag of the build script.
## Githooks

Wyświetl plik

@@ -2,5 +2,6 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
# __init__.py is a special Python file that allows a directory to become
# a Python package so it can be accessed using the 'import' statement.
from .build import main
__all__ = ["main"]

Wyświetl plik

@@ -7,21 +7,20 @@
import argparse
import logging
import multiprocessing
import os
import sys
from pathlib import Path
from build.lib.misc import lang_from_filename
from .lib.misc import lang_from_filename
from build.phase0.full import full
from build.phase0.global_symlinks import global_symlinks
from build.phase0.prepare_early_subdirectories import prepare_early_subdirectories
from .phase0.full import full
from .phase0.global_symlinks import global_symlinks
from .phase0.prepare_early_subdirectories import prepare_early_subdirectories
from build.phase1.run import phase1_run
from build.phase2.run import phase2_run
from .phase1.run import phase1_run
from .phase2.run import phase2_run
from build.phase3.serve_websites import serve_websites
from build.phase3.stage_to_target import stage_to_target
from .phase3.serve_websites import serve_websites
from .phase3.stage_to_target import stage_to_target
logger = logging.getLogger(__name__)
@@ -84,7 +83,11 @@ def parse_arguments() -> argparse.Namespace:
return args
def main(args: argparse.Namespace):
def main():
"""
Main process of the website builder
"""
args = parse_arguments()
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
@@ -118,14 +121,6 @@ def main(args: argparse.Namespace):
pool,
)
# Early subdirs
# for subdir actions that need to be performed very early in the build process. Do not get access to languages to be built in, and other benefits of being ran later.
for site in args.sites:
prepare_early_subdirectories(
site,
args.processes,
)
stage_required = any(
[args.stage, "@" in args.target, ":" in args.target, "," in args.target]
)
@@ -136,6 +131,12 @@ def main(args: argparse.Namespace):
if not site.exists():
logger.critical(f"Site {site} does not exist, exiting")
sys.exit(1)
# Early subdirs
# for subdir actions that need to be performed very early in the build process. Do not get access to languages to be built in, and other benefits of being ran later.
prepare_early_subdirectories(
site,
args.processes,
)
languages = (
args.languages
if args.languages
@@ -158,13 +159,3 @@ def main(args: argparse.Namespace):
if args.serve:
serve_websites(working_target, 2000, 100)
if __name__ == "__main__":
"""
Main process of the website builder
"""
# Change to the dir the script is in.
os.chdir(os.path.dirname(__file__))
args = parse_arguments()
main(args)

Wyświetl plik

@@ -1,21 +1,35 @@
# Contributing
## Build Process Code
### Tooling
We use [UV](https://docs.astral.sh/uv/) for managing python versions, and project dependencies.
Please install it in your prefered package manager, and then use
```
uv run build
```
To run the build process.
We check the validity of python code in the repo using [ruff](https://astral.sh/ruff). We use it for both checking and formatting, with `ruff check` enabled in CI.
To run it in the project using the project config, please use `uv run ruff`.
### Overview Stuff
We try to keep to some design patterns to keep things manageable.
Firstly, each phase as described in [the overview](./overview.md) should handle a meaningfully different kind of interaction. Each phase should be structured, to the greatest degree possible, as a sequence of steps. We consider that each phase should have a `run.py` file that exposes a `ipahse_*run` function that takes the arguments needed for its phase.
Each run function then calls a sequence of functions that are defined in the other files in the `phase*` folder. Each other file in the folder should expose one function, with the same name as the file, minus file extension. For example, `create_files.py` should expose the function `create_files`. It is a common pattern for the first expose function to generate a list of files or things to act on, and then multithread this using another function.
Each run function then calls a sequence of functions that are defined in the other files in the `phase*` folder. Each other file in the folder should expose one function, with the same name as the file, minus file extension. For example, `create_files.py` should expose the function `create_files`. It is a common pattern for the first expose function to generate a list of files or things to act on, and then multithread this using another function.
Each step function should use `logger.info` at the top of its function to declare what it is doing.
### Best Practices
This is a little bit of a mesys list of things we have found that are not perhaps entirely obvious.
This is a little bit of a messy list of things we have found that are not perhaps entirely obvious.
- When doing manipulation of stuff, have a look in the lib functions to see if it is already present. If you find a common pattern, perhaps functionise it.
- In phase 1, only update files using the `update_if_changed` function. This function will, as expected, take a file path and a string, and only update the file with the string if there is a difference. Not doing this means a file will always be updated, and hence anything depending on it will always be rebuild, even if the file has not actually changed.
@@ -23,7 +37,5 @@ This is a little bit of a mesys list of things we have found that are not perhap
- All steps are largely considered to be synchronous, and must be finished before the next step can start. Therefore, async must unfortunately be avoided. There are some steps where performance benefits could be achieved by allowing the next step to run concurrently, but the design complications make this unattractive.
- We use a single process pool to multithread with. This gives a small performance benefit over making and deleting pools continuously.
- All paths are to be handled with `pathlib`, not as strings.
- XML code should be generated with LXML instead of string templating. This is to ensure that we generate valid XML every time, and prevents issues with escaping, etc.
- Where possibly, type hint stuff. We try and keep the codebase reasonably typed to make it comprehensible
- XML code should be generated with LXML instead of string templating. This is to ensure that we generate valid XML every time, and prevents issues with escaping, etc.
- Where possibly, type hint stuff. We try and keep the codebase reasonably typed to make it comprehensible

Wyświetl plik

@@ -44,4 +44,4 @@ rsync -rlpgoDz --delete --checksum --filter=':- .gitignore' ./ /website-cached/s
cd /website-cached/source
# run build script expaning all args passed to this script
python3 ./build.py "$@"
uv run --reinstall-package build build "$@"

Wyświetl plik

@@ -105,7 +105,7 @@ RewriteRule ^drm.info(/.*)? https://drm.info$1 [R=301,L]
# Youth Hacking 4 Freedom
# Redirect for registration
# TODO please update the link for new registration form
RewriteRule ^activities/yh4f/register https://share.fsfe.org/apps/forms/s/kQX233iKfwe3ZtgiHxwLZJNB [R=301,L]
RewriteRule ^activities/yh4f/register https://share.fsfe.org/apps/forms/s/iqeXngDaatNeDd2z9jyCa8se [R=307,L]
RewriteRule ^activities/yh4f/feedback https://share.fsfe.org/apps/forms/s/LBHwzSmaiyoX3Tmwo2qJgAki [R=301,L]
RewriteRule ^activities/yh4f/mediakit https://download.fsfe.org/YH4F/Youth_Hacking_4_Freedom_2025.pdf [R=301,L]

Wyświetl plik

@@ -73,21 +73,21 @@
<div class="box first">
<img src="https://pics.fsfe.org/uploads/small/3ded562545ac77a12d2ade19bc97b83c.png" style="border: 1px solid black" alt="Karte der Umgebung des Büros der FSFE in Berlin" />
<img src="https://pics.fsfe.org/uploads/small/22/72/bc04a8a1e628da8922da7cb2a94c.png" style="border: 1px solid black" alt="Karte der Umgebung des Büros der FSFE in Berlin" />
</div>
<div class="box">
<p>Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
Stairway 2, 5. floor<br />
10119 Berlin<br />
Revaler Straße 19<br />
5. Stock<br />
10245 Berlin<br />
Germany</p>
<p>Phone: +49-30-27595290</p>
<p><a href="http://www.openstreetmap.org/?mlat=52.52952&amp;mlon=13.41083&amp;node=2466676740#map=18/52.52952/13.41083">See on OpenStreetMap</a></p>
<p><a href="https://www.openstreetmap.org/node/2825035456#map=16/52.50623/13.45958">See on OpenStreetMap</a></p>
</div>

Wyświetl plik

@@ -56,21 +56,21 @@
<div class="box first">
<img src="https://pics.fsfe.org/uploads/small/3ded562545ac77a12d2ade19bc97b83c.png" style="border: 1px solid black" alt="map of the vecinity of the FSFE office in Berlin" />
<img src="https://pics.fsfe.org/uploads/small/22/72/bc04a8a1e628da8922da7cb2a94c.png" style="border: 1px solid black" alt="map of the vecinity of the FSFE office in Berlin" />
</div>
<div class="box">
<p>Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
Stairway 2, 5. floor<br />
10119 Berlin<br />
Revaler Straße 19<br />
5. floor<br />
10245 Berlin<br />
Germany</p>
<p>Phone: +49-30-27595290</p>
<p><a href="http://www.openstreetmap.org/?mlat=52.52952&amp;mlon=13.41083&amp;node=2466676740#map=18/52.52952/13.41083">See on OpenStreetMap</a></p>
<p><a href="https://www.openstreetmap.org/node/2825035456#map=16/52.50623/13.45958">See on OpenStreetMap</a></p>
</div>

Wyświetl plik

@@ -49,21 +49,21 @@
<div class="box first">
<img src="https://pics.fsfe.org/uploads/small/3ded562545ac77a12d2ade19bc97b83c.png" style="border: 1px solid black" alt="Kaart van de omgeving van het FSFE-kantoor in Berlijn" />
<img src="https://pics.fsfe.org/uploads/small/22/72/bc04a8a1e628da8922da7cb2a94c.png" style="border: 1px solid black" alt="Kaart van de omgeving van het FSFE-kantoor in Berlijn" />
</div>
<div class="box">
<p>Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
Stairway 2, 5. floor<br />
10119 Berlin<br />
Revaler Straße 19<br />
5. floor<br />
10245 Berlin<br />
Germany</p>
<p>Telefoon: +49-30-27595290</p>
<p><a href="http://www.openstreetmap.org/?mlat=52.52952&amp;mlon=13.41083&amp;node=2466676740#map=18/52.52952/13.41083">Bekijk op OpenStreetMap</a></p>
<p><a href="https://www.openstreetmap.org/node/2825035456#map=16/52.50623/13.45958">Bekijk op OpenStreetMap</a></p>
</div>

Wyświetl plik

@@ -15,7 +15,7 @@
<p> Free Software Foundation Europe e.V. (FSFE)<br />
Address: Schönhauser Allee 6/7, 10119 Berlin, Germany<br />
Address: Revaler Straße 19, 10245 Berlin, Germany<br />
Email: <email>contact@fsfe.org</email><br />
President: Matthias Kirschner<br />

Wyświetl plik

@@ -14,7 +14,7 @@
<h1>Empreinte</h1>
<p> Free Software Foundation Europe e.V. (FSFE)<br />
Adresse: Schönhauser Allee 6/7, 10119 Berlin, Deutschland<br />
Adresse: Revaler Straße 19, 10245 Berlin, Deutschland<br />
Email: <email>contact@fsfe.org</email><br />
President: Matthias Kirschner<br />

Wyświetl plik

@@ -15,7 +15,7 @@
<p> Free Software Foundation Europe e.V. (FSFE)<br />
Recapito: Schönhauser Allee 6/7, 10119 Berlino, Germania<br />
Recapito: Revaler Straße 19, 10245 Berlino, Germania<br />
Email: <email>contact@fsfe.org</email><br />
Presidente: Matthias Kirschner<br />

Wyświetl plik

@@ -15,7 +15,7 @@
<p> Free Software Foundation Europe e.V. (FSFE)<br />
Adres: Schönhauser Allee 6/7, 10119 Berlijn, Duitsland<br />
Adres: Revaler Straße 19, 10245 Berlijn, Duitsland<br />
E-mail: <email>contact@fsfe.org</email><br />
Voorzitter: Matthias Kirschner<br />

Wyświetl plik

@@ -28,8 +28,8 @@
<h2 id="contact">Kontakt</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br />
Schönhauser Allee 6/7<br />
10119 Berlin, Germany<br />
Revaler Straße 19<br />
10245 Berlin, Germany<br />
Telefon: <email>+49-30-27595290</email><br />
E-Mail: <email>mk@fsfe.org</email><br />
<a href="http://www.gnupg.org/">GnuPG</a>-Schlüssel: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -23,8 +23,8 @@
<h2 id="contact">Τρόποι επικοινωνίας</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br/>
Schönhauser Allee 6/7<br/>
10119 Berlin, Germany<br/>
Revaler Straße 19<br />
10245 Berlin, Germany<br />
Τηλέφωνο: <email>+49-30-27595290</email><br/>
Ηλεκτρονικό ταχυδρομείο: <email>mk@fsfe.org</email><br/>
<a href="http://www.gnupg.org/">GnuPG</a>-Key: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -26,8 +26,8 @@
<h2 id="contact">Contact</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br />
Schönhauser Allee 6/7<br />
10119 Berlin, Germany<br />
Revaler Straße 19<br />
10245 Berlin, Germany<br />
Phone: <email>+49-30-27595290</email><br />
Email: <email>mk@fsfe.org</email><br />
<a href="http://www.gnupg.org/">GnuPG</a>-Key: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -35,8 +35,8 @@
<h2 id="contact">Contatti</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br />
Schönhauser Allee 6/7<br />
10119 Berlin, Germany<br />
Revaler Straße 19<br />
10245 Berlin, Germany<br />
Phone: <email>+49-30-27595290</email><br />
Email: <email>mk@fsfe.org</email><br />
Chiave <a href="http://www.gnupg.org/">GnuPG</a>: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -26,8 +26,8 @@ privacy.</p>
<h2 id="contact">Contact</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br/>
Schönhauser Allee 6/7<br/>
10119 Berlijn, Duitsland<br/>
Revaler Straße 19<br />
10245 Berlijn, Duitsland<br/>
Telefoon: <email>+49-30-27595290</email><br/>
E-mail: <email>mk@fsfe.org</email><br/>
<a href="http://www.gnupg.org/">GnuPG</a>-sleutel: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -28,8 +28,8 @@
<h2 id="contact">Контакт</h2>
<address>
<strong>Free Software Foundation Europe (FSFE)</strong><br />
Schönhauser Allee 6/7<br />
10119 Berlin, Germany<br />
Revaler Straße 19<br />
10245 Berlin, Germany<br />
Телефон: <email>+49-30-27595290</email><br />
Электронная почта: <email>mk@fsfe.org</email><br />
<a href="http://www.gnupg.org/">GnuPG</a>-Key: <a href="kirschner-public.asc">A0616A85CE41AD88</a><br />

Wyświetl plik

@@ -4,9 +4,9 @@
<version>1</version>
<activity id="childrensbook" date="2021-12-01" status="active">
<title>Book "Ada &amp; Zangemann"</title>
<title>"Ada &amp; Zangemann" book and movie</title>
<description>
The illustrated book "Ada &amp; Zangemann - a tale of software, skateboards, and raspberry ice cream" by the FSFE, tells the story of the famous inventor Zangemann and the girl Ada, a curious tinkerer. Ada begins to experiment with hardware and software, and in the process realises how crucial it is for her and others to control technology.
The illustrated book animated movie "Ada &amp; Zangemann - a tale of software, skateboards, and raspberry ice cream" by the FSFE, tells the story of the famous inventor Zangemann and the girl Ada, a curious tinkerer. Ada begins to experiment with hardware and software, and in the process realises how crucial it is for her and others to control technology.
</description>
<link href="/activities/ada-zangemann/" />
<image url="/graphics/logos/childrensbook.png" />

Wyświetl plik

@@ -4,9 +4,9 @@
<version>1</version>
<activity id="childrensbook" date="2021-12-01" status="active">
<title>Libro "Ada &amp; Zangemann"</title>
<title>"Ada &amp; Zangemann", libro y película</title>
<description>
El libro ilustrado "Ada &amp; Zangemann - Un cuento sobre Software, Monopatines y Helado de Frambuesa" de la FSFE, cuenta la historia del famoso inventor Zangemann y la niña Ada, una curiosa juguetona. Ada empieza a experimentar con hardware y software, y en el proceso se da cuenta de lo crucial que es para ella y para los demás controlar la tecnología.
El libro ilustrado y película animada "Ada &amp; Zangemann - Un cuento sobre Software, Monopatines y Helado de Frambuesa" de la FSFE, cuenta la historia del famoso inventor Zangemann y la niña Ada, una curiosa juguetona. Ada empieza a experimentar con hardware y software, y en el proceso se da cuenta de lo crucial que es para ella y para los demás controlar la tecnología.
</description>
<link href="/activities/ada-zangemann/" />
<image url="/graphics/logos/childrensbook.png" />

Wyświetl plik

@@ -48,6 +48,7 @@
<h2>Download Möglichkeiten</h2>
<ul>
<li>FSFE Peertube:
<a href="https://media.fsfe.org/w/7S9bNkf36e7vBnBrBhj7vS">Dänisch</a>,
<a href="https://media.fsfe.org/w/aw4EHJYVBSQGHPS22xXBG2">Deutsch</a>,
<a href="https://media.fsfe.org/w/j1c6LQVZ8qnCLLwpXMuw3M">English</a>,
<a href="https://media.fsfe.org/w/jPLeR3vpYE7zWaTYdsB9JU">Französisch</a>,

Wyświetl plik

@@ -44,6 +44,7 @@
<h2>Download locations</h2>
<ul>
<li>FSFE Peertube:
<a href="https://media.fsfe.org/w/7S9bNkf36e7vBnBrBhj7vS">Dansk</a>,
<a href="https://media.fsfe.org/w/j1c6LQVZ8qnCLLwpXMuw3M">English</a>,
<a href="https://media.fsfe.org/w/jPLeR3vpYE7zWaTYdsB9JU">French</a>,
<a href="https://media.fsfe.org/w/aw4EHJYVBSQGHPS22xXBG2">German</a>,

Wyświetl plik

@@ -37,7 +37,8 @@
<h2>Dónde descargar la película</h2>
<ul>
<li>FSFE Peertube:
<a href="https://media.fsfe.org/w/mPiL4nzoJ21gWiG4JHLATf">Español</a>,
<a href="https://media.fsfe.org/w/7S9bNkf36e7vBnBrBhj7vS">Danés</a>,
<a href="https://media.fsfe.org/w/mPiL4nzoJ21gWiG4JHLATf">Español</a>,
<a href="https://media.fsfe.org/w/j1c6LQVZ8qnCLLwpXMuw3M">Inglés</a>,
<a href="https://media.fsfe.org/w/jPLeR3vpYE7zWaTYdsB9JU">Fránces</a>,
<a href="https://media.fsfe.org/w/aw4EHJYVBSQGHPS22xXBG2">Alemán</a>

Wyświetl plik

@@ -50,6 +50,7 @@
<h2>Sites de téléchargement</h2>
<ul>
<li>FSFE Peertube:
<a href="https://media.fsfe.org/w/7S9bNkf36e7vBnBrBhj7vS">Danois</a>,
<a href="https://media.fsfe.org/w/jPLeR3vpYE7zWaTYdsB9JU">French</a>,
<a href="https://media.fsfe.org/w/j1c6LQVZ8qnCLLwpXMuw3M">English</a>,
<a href="https://media.fsfe.org/w/aw4EHJYVBSQGHPS22xXBG2">German</a>,

Wyświetl plik

@@ -47,6 +47,7 @@ href="/donate/donate.html">Fai una donazione</a> per contribuire allo sviluppo d
<h2>Dove scaricarlo</h2>
<ul>
<li>FSFE Peertube:
<a href="https://media.fsfe.org/w/7S9bNkf36e7vBnBrBhj7vS">Danese</a>,
<a href="https://media.fsfe.org/w/jPLeR3vpYE7zWaTYdsB9JU">Francese</a>,
<a href="https://media.fsfe.org/w/j1c6LQVZ8qnCLLwpXMuw3M">Inglese</a>,
<a href="https://media.fsfe.org/w/aw4EHJYVBSQGHPS22xXBG2">Tedesco</a>,

Wyświetl plik

@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<version>3</version>
<head>
<title>DMA Interoperability Survey</title>
</head>
<body class="article">
<h1>DMA Interoperability Survey</h1>
<div id="introduction">
<p>
Are you a Free Software developer trying to access hardware or
software features under Article 6(7) of the Digital Markets Act
(DMA)? We want to hear from you! Share your experience about how
gatekeepers are handling your interoperability request.
</p>
</div>
<!-- @TRANSLATORS: the banner's source file you find here:
https://download.fsfe.org/device-neutrality/device-neutrality-logo-banner.odp -->
<figure class="max-width-100 no-border">
<img
src="https://pics.fsfe.org/uploads/medium/fd/a2/78ed39d4c12a02fad06ec086ba44.png"
alt="Device neutrality: safeguarding free software in devices" />
</figure>
<p>The <a
href="https://survey.fsfe.org/index.php/699938?lang=en">FSFEs
Interoperability Survey</a> aims to collect structured feedback from
Free Software developers, also known as “access seekers”, about their
experience requesting interoperability under Article 6(7) of the
Digital Markets Act (DMA). This article requires designated
“gatekeepers” to provide, free of charge, access to the software and
hardware features of their Core Platform Services (CPS). The goal is
to foster innovation and support alternative solutions developed by
the Free Software community.</p>
<div class="color-box background" data-color="android-lime">
<p> Take the interoperability survey and share your experience</p>
<a class="btn btn-default" href="https://survey.fsfe.org/index.php/699938?lang=en"> Start the survey</a>
</div>
<h2>The Digital Markets Act and Interoperability</h2>
<p>The <a href="http:///activities/dma/dma.html">Digital Markets Act (DMA)</a> is a
landmark European regulation aimed at curbing the power of large digital
platforms. Under the DMA, these companies must allow interoperability
with their software and hardware features, promoting competition,
innovation, and user choice.</p>
<p>Specifically, <strong><strong>Article 6(7)</strong></strong> empowers
developers to request access to technical functionalities that were
previously restricted. This creates new opportunities for Free Software
projects, and for users to benefit from greater choice and control. </p>
This provision opens the door for Free Software alternatives to services currently dominated by gatekeepers, such as payment systems, app stores, or messaging platforms. Free Software is contained in 90% of todays technology and its relevance is therefore crucial in a fair and just implementation of the DMA.
<h2>Why Your Input Matters</h2>
<p>
At the Free Software Foundation Europe (FSFE), we are committed to
making sure these rights are not just theoretical. We are gathering
first-hand experiences from developers who have submitted, or are
planning to submit, interoperability requests to gatekeepers such as
Apple, Google, Microsoft, and others. For a complete list of all
gatekeepers and their designated Core Platform Services visit this <a
href="https://digital-markets-act.ec.europa.eu/gatekeepers_en">page</a>.
</p>
<p>Your insights will help us:</p>
<ul class="incremental">
<li>Identify common obstacles for Free Software and patterns of non-compliance.</li>
<li>Report issues to the European Commission.</li>
<li>Advocate for enforcement that supports Free Software and small
developers.</li>
</ul>
<p>Whether your request was accepted, denied, delayed, or ignored - we
want to hear from you!</p>
<p>Gatekeepers compliance is not automatic. Many Free Software
developers still face vague procedures, delays, or rejections. Others
may not know how or where to start their request. By sharing your
experience, you help strengthen the case for clear, fair, and
developer-friendly implementation of the DMA. Together, we can ensure
that these new rights translate into real-world opportunities for Free
Software.</p>
<div class="color-box background" data-color="android-lime">
<p> Take the interoperability survey and share your experience</p>
<a class="btn btn-default" href="https://survey.fsfe.org/index.php/699938?lang=en"> Start the survey</a>
</div>
</body>
<sidebar promo="our-work">
<h2>More on Device Neutrality</h2>
<ul>
<li><a href="/activities/deviceneutrality/index.html">Device Neutrality</a>
</li>
<li><a href="/activities/dma/dma.html">Device Neutrality and the DMA</a>
</li>
</ul>
<h2>Free Software and Devices</h2>
<ul>
<li><a href="/activities/routers/">Router Freedom</a></li>
<li><a href="/activities/upcyclingandroid/">Upcycling Android</a></li>
</ul>
<h2>Take the survey now</h2>
<ul>
<li><a href="https://survey.fsfe.org/index.php/699938?lang=en">DMA Interoperability Survey</a></li>
</ul>
<h2>Support the FSFE</h2>
<p>
As a non-profit, non-governmental organisation, Free Software Foundation
Europe works to create general understanding and support for Free Software
and Open Standards in politics, business, law, and society at large.
By becoming a supporter of the FSFE you empower our work and help to
assure our financial independence.
</p>
<fsfe-cd-donate-link class="big-donate">Become a supporter</fsfe-cd-donate-link>
</sidebar>
<related-list tag="dma" />
</html>

Wyświetl plik

@@ -185,8 +185,8 @@ You can find out more about the six inspiring projects <a href="/news/2024/news-
</div>
<div class="center">
<img src="https://pics.fsfe.org/uploads/original/66/1e/e0ae643171bd148f109e38995c04.jpg"/>
<img src="https://pics.fsfe.org/uploads/original/15/ce/d78f723ae4105ed27d875c36150f.png" />
<a href="https://www.proxmox.com"> <img src="https://pics.fsfe.org/uploads/original/24/53/32ae8d70d491553a73dd8d917adb.png"/> </a>
<a href="https://openssf.org/"> <img src="https://pics.fsfe.org/uploads/original/15/ce/d78f723ae4105ed27d875c36150f.png" /> </a>
</div>
<div class="color-box background" data-color="android-blue">

Wyświetl plik

@@ -231,6 +231,19 @@ technology and elsewhere.
</p>
</div>
</li>
<li>
<img src="https://pics.fsfe.org/uploads/original/02/c0/183d22eacad98540e516404c865e.png" class="img-circle" alt="Sofía Aritz" />
<div>
<h3>Sofía Aritz</h3>
<p>
Sofía Aritz has been advocating for software freedom ever since starting to tinker with computers. Seeing
technology as a tool for social transformation, she is working on Free Software projects such as Munin,
which aims to support dementia and palliative care. After becoming one of the winners of the third edition
of Youth Hacking 4 Freedom, she has been an active contributor to the FSFE's activities.
</p>
</div>
</li>
</ul>
</div>

Wyświetl plik

@@ -1,4 +1,5 @@
<?php
/**
* PHPMailer Exception class.
* PHP Version 5.5.
@@ -9,10 +10,10 @@
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
* @author Brent R. Matzelle (original founder)
* @copyright 2012 - 2017 Marcus Bointon
* @copyright 2012 - 2020 Marcus Bointon
* @copyright 2010 - 2012 Jim Jagielski
* @copyright 2004 - 2009 Andy Prevost
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
* @note This program is distributed in the hope that it will be useful - WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
@@ -34,6 +35,6 @@ class Exception extends \Exception
*/
public function errorMessage()
{
return '<strong>' . htmlspecialchars($this->getMessage()) . "</strong><br />\n";
return '<strong>' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "</strong><br />\n";
}
}

Wyświetl plik

@@ -31,7 +31,7 @@ if ($function2 ne "") {
$function .= ", $function2";
}
if ($radioaddress eq "Berlin") { $address = "Schönhauser Allee 6/7, 10119 Berlin, Germany"; }
if ($radioaddress eq "Berlin") { $address = "Revaler Straße 19, 10245 Berlin, Germany"; }
if ($radioaddress eq "other") { $address = "$otheraddress"; }
if ($delivery eq "") {

Wyświetl plik

@@ -13,7 +13,7 @@
<h1 id="spread-the-word">Spread the word!</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" //-->
<div class="toc float-right">

Wyświetl plik

@@ -13,7 +13,7 @@
<h1 id="spread-the-word">Spargi la voce!</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<div class="toc float-right">
<p class="head"><a href="#how-to-order">Ordina ora!</a></p>

Wyświetl plik

@@ -23,7 +23,7 @@
<p>
Recipient: Free Software Foundation Europe e.V.<br/>
Address: Schönhauser Allee 6/7, 10119 Berlin, Germany<br/>
Address: Revaler Straße 19, 10245 Berlin, Germany<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Bank: GLS Gemeinschaftsbank eG, 44774 Bochum, Germany<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-02-27T18:30:00Z" end="2025-02-27:20:00:00Z">
<event start="2025-02-27T18:30:00Z" end="2025-02-27T20:00:00Z">
<title>Treffen der lokalen Gruppe Berlin (online)</title>
<group>
<name>Berlin</name>

Wyświetl plik

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-03-27T18:30:00Z" end="2025-03-27:20:00:00Z">
<event start="2025-03-27T18:30:00Z" end="2025-03-27T20:00:00Z">
<title>Treffen der lokalen Gruppe Berlin (online)</title>
<group>
<name>Berlin</name>

Wyświetl plik

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-05-30T08:30:00Z" end="2025-05-30T11:00:00Z">
<title>Ada &amp; Zangemann day in Pesaro, Italia</title>
<group>
<name>None</name>
<url></url>
</group>
<body>
<p>Final event of the 6/19 project co-funded by Wikimedia Italia and Free Software Foundation Europe, with a reading of Ada &amp; Zangemann tale followed by educational robotics workshops.</p>
<p>It will be held on Friday, 30 May 2025 at the Liceo Scientifico Guglielmo Marconi, via Nanterre, 10, 61122, Pesaro.</p>
<p>We would be pleased if you would attend. There is no registration fee. If you bring children, please be aware that journalists from local television stations and newspapers will be present.</p>
<p>The day will be scheduled as follows</p>
<p>— 8.30 greetings by the school headmaster</p>
<p>— 8.40 reading of Ada &amp; Zangemann</p>
<p>— 9.15 first educational robotics workshop</p>
<p>— 10.00 second educational robotics workshop</p>
<p>— 10.45 Raspberry ice cream for everyone</p>
<p>The event is organised by Giacomo Alessandroni, who will read the book and animate the educational robotics workshops, together with his students who will be adopted by the young children.</p>
<p>The official language of the meeting is Italian.</p>
<p>We look forward to seeing you!</p>
</body>
<tags>
<tag key="it">
Italia </tag>
<tag key="infobooth"/>
<tag key="meeting"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-05-30T08:30:00Z" end="2025-05-30T11:00:00Z">
<title>Ada &amp; Zangemann day in Pesaro, Italia</title>
<group>
<name>None</name>
<url></url>
</group>
<body>
<p>Evento conclusivo del progetto &quot;seidiciannovesimi&quot; cofinanziato da Wikimedia Italia e Free Software Foundation Europe, con lettura di Ada &amp; Zangemann seguito da laboratori di robotica educativa.</p>
<p>Si terrà venerdì, 30 maggio 2025 presso l&#039;aula magna del Liceo Scientifico &quot;Guglielmo Marconi&quot;, via Nanterre, 10, 61122, Pesaro.</p>
<p>Se interverrete ci farà piacere. Non vi sono costi di registrazione. Se portate bambini, sappiate che saranno presenti giornalisti di televisioni e quotidiani locali.</p>
<p>La giornata sarà così scandita:</p>
<p>— 8.30 saluti del dirigente scolastico</p>
<p>— 8.40 lettura di Ada &amp; Zangemann</p>
<p>— 9.15 primo laboratorio di robotica educativa</p>
<p>— 10.00 secondo laboratorio di robotica educativa</p>
<p>— 10.45 gelato al lampone per tutti</p>
<p>L&#039;evento è organizzato da Giacomo Alessandroni, che leggerà il libro e animerà i laboratori di robotica educativa, insieme ai suoi studenti che saranno adottati dai bimbi piccoli.</p>
<p>La lingua ufficiale dell&#039;incontro è l&#039;italiano.</p>
<p>Vi aspettiamo!</p>
</body>
<tags>
<tag key="it">
Italia </tag>
<tag key="infobooth"/>
<tag key="meeting"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -12,7 +12,7 @@
Sand, Tübingen, Deutschland, statt. Der Eintritt ist frei.
</p>
<p>
Um 12:00 Uhr im Raum V2 stellt Florian Snow die
Um 12:00 Uhr im Raum V1 stellt Florian Snow die
<a href="https://reuse.software/">REUSE-Initiative</a> vor, und um
15:30 Uhr im Raum V4 informiert Bonnie Mehring über die 2026-er-Ausgabe
des Wettbewerbs

Wyświetl plik

@@ -12,7 +12,7 @@
Admission is free.
</p>
<p>
At 12:00 in room V2, Florian Snow presents the
At 12:00 in room V1, Florian Snow presents the
<a href="https://reuse.software/">REUSE initiative</a>, and at
15:30 Uhr im Raum V4, Bonnie Mehring informs about the 2026 edition
of the

Wyświetl plik

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-07-10T16:30:00Z" end="2025-07-10T18:00:00Z">
<title>FSFE Zurich local group meeting (online)</title>
<group>
<name>Zurich</name>
<url></url>
</group>
<body>
<p>At the meeting we will discuss the items outlined in the agenda.</p>
</body>
<link>https://wiki.fsfe.org/Events/Zurich/2025-07-10</link>
<tags>
<tag key="localgroup"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-07-19T12:00:00Z" end="2025-07-19T16:00:00Z">
<title>EndOf10 - Linux install event in Berlin, Germany</title>
<group>
<name>Berlin</name>
<url></url>
</group>
<body>
<p>
Die Berlinder Gruppe der FSFE, die digitale Gesellschaft, KDE eco und Bits&amp;Bäume laden ein zur endof10 install Party!
</p>
<p>
💻 Alte Kiste? Neues Leben! 🐧<br />
Bring deinen alten Laptop mit – wir verpassen ihm ein frisches, freies Linux und machen ihn wieder flott! 🌱✨<br />
📅 Termine: 19.07.2025 &amp; 09.08.2025<br />
🕑 Jeweils um 14:00 Uhr<br />
‼️ Wichtig: Bitte mach vorher ein Backup deiner Daten (z.B. auf USB-Stick oder externen Festplatte). Wir freuen uns auf dich! 🙌<br />
</p>
</body>
<page>http://c-base.org/calendar/#view=month&amp;date=2025-07-01&amp;event=b6376760-db9a-4925-9ece-4f1442ebc0e2</page>
<tags>
<tag key="de">Germany</tag>
<tag key="workshop">Workshop</tag>
<tag key="berlin">Berlin</tag>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-07-19T12:00:00Z" end="2025-07-19T16:00:00Z">
<title>EndOf10 - Linux install event in Berlin, Germany</title>
<group>
<name>Berlin</name>
<url></url>
</group>
<body>
<p>
The Berlin group of FSFE, the digitale Gesellschaft, KDE eco and Bits&amp;Bäume invite you to the endof10 install party!
</p>
<p>
💻 Old box? New life! 🐧<br />
Bring your old laptop - we'll give it a fresh, free Linux and get it up and running again! 🌱✨<br />
📅 Dates: 19.07.2025 &amp; 09.08.2025<br />
🕑 Each at 14:00<br />
‼️ Important: Please make a backup of your data beforehand (e.g. on USB stick or external hard disk).
We look forward to seeing you! 🙌
</p>
</body>
<page>http://c-base.org/calendar/#view=month&amp;date=2025-07-01&amp;event=b6376760-db9a-4925-9ece-4f1442ebc0e2</page>
<tags>
<tag key="de">Germany</tag>
<tag key="workshop">Workshop</tag>
<tag key="berlin">Berlin</tag>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-08-09T12:00:00Z" end="2025-08-09T16:00:00Z">
<title>EndOf10 - Linux install event in Berlin, Germany</title>
<group>
<name>Berlin</name>
<url></url>
</group>
<body>
<p>
Die Berlinder Gruppe der FSFE, die digitale Gesellschaft, KDE eco und Bits&amp;Bäume laden ein zur endof10 install Party!
</p>
<p>
💻 Alte Kiste? Neues Leben! 🐧<br />
Bring deinen alten Laptop mit – wir verpassen ihm ein frisches, freies Linux und machen ihn wieder flott! 🌱✨<br />
📅 Termine: 19.07.2025 &amp; 09.08.2025<br />
🕑 Jeweils um 14:00 Uhr<br />
‼️ Wichtig: Bitte mach vorher ein Backup deiner Daten (z.B. auf USB-Stick oder externen Festplatte). Wir freuen uns auf dich! 🙌<br />
</p>
</body>
<page>http://c-base.org/calendar/#view=month&amp;date=2025-08-01&amp;event=5cff058c-d236-40b3-8116-bdc374fcb34a</page>
<tags>
<tag key="de">Germany</tag>
<tag key="workshop">Workshop</tag>
<tag key="berlin">Berlin</tag>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-08-09T12:00:00Z" end="2025-08-09T16:00:00Z">
<title>EndOf10 - Linux install event in Berlin, Germany</title>
<group>
<name>Berlin</name>
<url></url>
</group>
<body>
<p>
The Berlin group of FSFE, the digitale Gesellschaft, KDE eco and Bits&amp;Bäume invite you to the endof10 install party!
</p>
<p>
💻 Old box? New life! 🐧<br />
Bring your old laptop - we'll give it a fresh, free Linux and get it up and running again! 🌱✨<br />
📅 Dates: 19.07.2025 &amp; 09.08.2025<br />
🕑 Each at 14:00<br />
‼️ Important: Please make a backup of your data beforehand (e.g. on USB stick or external hard disk).
We look forward to seeing you! 🙌
</p>
</body>
<page>http://c-base.org/calendar/#view=month&amp;date=2025-08-01&amp;event=5cff058c-d236-40b3-8116-bdc374fcb34a</page>
<tags>
<tag key="de">Germany</tag>
<tag key="workshop">Workshop</tag>
<tag key="berlin">Berlin</tag>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-10-11T08:00:00Z" end="2025-10-11T10:00:00Z">
<title>Free your Android @ VIScon 2025 in Zurich, Switzerland</title>
<group>
<name>Zurich</name>
<url></url>
</group>
<body>
<p>Representatives of the local group Zurich hold a &quot;Free your Android&quot; workshop as part of the VIScon 2025 at ETH Zurich.</p>
</body>
<link>https://git.fsfe.org/fsfe-zh/viscon25</link>
<tags>
<tag key="ch">
Switzerland </tag>
<tag key="workshop"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

Wyświetl plik

@@ -95,9 +95,9 @@
<input type="radio" name="dest" value="44/66" /> Sweden
</label>
<label class="radio-inline">
<input type="radio" name="dest" value="other" /> Other
<input type="radio" name="dest" value="other" id="destOther" /> Other
</label>
<input type="text" name="dest_other" placeholder="14/28" />
<input type="text" name="dest_other" placeholder="14/28" onchange="document.getElementById('destOther').checked='checked'" />
<p>(Other: per diem travel/full (e.g. "14/28" for Germany -> Germany). <a href="https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Steuerarten/Lohnsteuer/2024-12-02-steuerliche-behandlung-reisekosten-2025.pdf?__blob=publicationFile&amp;v=12">(See the different rates per country.)</a> [PDF]</p>
</div>

Wyświetl plik

@@ -47,7 +47,6 @@ Listen to our 34th episode about the <a href="/news/podcast/episode-34.html" >Te
<tag key="pmpc">Public Money? Public Code!</tag>
<tag key="policy">Policy</tag>
<tag key="european-union">European Union</tag>
<tag key="highlights">highlights</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe/114618546576666845"/>

Wyświetl plik

@@ -152,7 +152,6 @@ This competition is running thanks to our donors and sponsors. Please consider s
<tag key="interview">Interview</tag>
<tag key="yh4f">Youth Hacking 4 Freedom</tag>
<tag key="yh4f-project">Youth Hacking 4 Freedom - Project</tag>
<tag key="highlights">highlights</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe/114664300393907483"/>

Wyświetl plik

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<html newsdate="2025-06-18">
<version>1</version>
<head>
<title>DMA: tell us how gatekeepers are handling your interoperability requests</title>
</head>
<body>
<h1>DMA: tell us how gatekeepers are handling your interoperability requests</h1>
<p>Free Software developers: your voice is needed! The Free Software Foundation Europe has launched the Digital Markets Act Interoperability Survey to gather first-hand experiences from developers requesting software interoperability.</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/da73e8f621d03df2c70f873ce6e010e6.png"
alt="Illustration showing a laptop with a green screen and a phone also with a green screen. Around them there are some forms such as circles, lines and squares."/>
</figure>
<p>Imagine you are a developer building a Free Software
payment system for iOS, or an emulator for the iPad, or even an
alternative app store for the iPhone. You are ready to share your
project with the world, but you are denied access to the APIs you need. Or you try to contact Apple, but you get no reply at all to your
interoperability request. Or the documentation online is faulty, and
there is no reaction to your bug filing on Apples tracking system. Or, worst of all, you have your request denied, and no explanation
whatsoever is given of the reasons.</p>
<p>These scenarios are not far-fetched. These are
realities many Free Software developers face in their daily work when
interacting with “gatekeepers” like Apple and other large tech
companies.</p>
<p>The <a
href="/activities/dma/dma.html">Digital
Markets Act (DMA)</a> is a law in the European Union aimed to remediate these issues. Article 6(7) specifically requires gatekeepers, like Apple, Google, Microsoft and Amazon, to provide developers free-of-charge, effective, and documentedaccess to hardware and software features they need for their projects. The idea is simple: enable real competition, encourage innovation, and make room for Free Software alternatives. </p>
<h3>A victory for interoperability!</h3>
<p>During the regulatory dialogues with the European
Commission, the Free Software Foundation Europe (FSFE) has coordinated
efforts within a <a
href="https://download.fsfe.org/campaigns/device-neutrality/202404-FSFE-apple-report-EC.pdf"> coalition
of Free Software projects</a> that
were directly affected, including developers of alternative browsers,
payment systems, app stores, and emulators. We documented their attempts
to request interoperability, and the roadblocks they encountered, vague
procedures, unreasonable requirements, or simply being ignored. We then
presented these findings to the European Commission, calling for clearer
enforcement.</p>
<p>In December 2024, the European Commission started a
regulatory procedure to improve Apples procedures for granting
developers interoperability within iOS and iPadOS. The FSFE engaged with
the Commission providing comprehensive inputs <a
href="/news/2025/news-20250116-01.html">demanding
better policies</a> towards Free
Software developers. In March 2025, the Commission published a decision <a
href="/news/2025/news-20250403-01.html">adopting
several of our suggestions</a>,
substantially improving Apples procedures for interoperability
requests. In its turn, Apple reacted aggressively, <a
href="https://www.euractiv.com/section/tech/news/apple-challenges-european-commissions-unreasonable-demands-in-court-appeal/">starting
new litigation against the
Commission</a> in opposition to these
procedures.</p>
<p>Now, the challenge comes with the enforcement of
these rules. Monitoring is paramount.</p>
<h3>Hackers needed: share your experience with
interoperability</h3>
<p>The recent victory achieved by the decision of the
Commission has underscored the importance of interoperability for
innovation. It is enabling alternatives to proprietary services and
ultimately giving users more choice and control over the technology they
use every day.</p>
<p>The FSFE has launched the <a
href="/activities/deviceneutrality/interop-survey"><strong><strong>DMA
</strong><strong>Interoperability
Survey</strong></strong></a>, aimed at collecting
crucial input from Free Software developers who have tried, or plan to
try, to request interoperability from companies like Apple, Google,
Microsoft, and Amazon under Article 6(7) of the DMA. We want to monitor
how gatekeepers are handling the interoperability requests submitted by
Free Software developers. We want to hear the developers experiences
and to make sure their voices are heard when gatekeepers fall short of
their obligations.</p>
<p><strong><strong>If you are a Free Software developer and made or plan
to make an interoperability request under Article 6(7) of the DMA, we
need your help!</strong></strong> Whether your request was successful, delayed, denied, or
ignored: your insights are valuable. Please, take a look at the survey
or share it with anyone for whom this might be relevant.
</p>
<p>The FSFE will use the findings to identify systemic
issues, advocate for stronger enforcement, and support a full and fair
implementation of the DMA. This protects and empowers developers, and
our software freedom.</p>
<div class="color-box background" data-color="android-lime">
<p> Take the interoperability survey and share your experience</p>
<a class="btn btn-default" href="https://survey.fsfe.org/index.php/699938?lang=en"> Start the survey</a>
</div>
</body>
<tags>
<tag key="news">News</tag>
<tag key="front-page"/>
<tag key="dma">DMA</tag>
<tag key="deviceneutrality">Device Neutrality</tag>
<tag key="highlights">highlights</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe//114703914454575694"/>
<image url="https://pics.fsfe.org/uploads/medium/da73e8f621d03df2c70f873ce6e010e6.png"
alt="Illustration showing a laptop with a green screen and a phone also with a green screen. Around them there are some forms such as circles, lines and squares."/>
</html>

Wyświetl plik

@@ -167,7 +167,6 @@ Ana </p>
<tag key="legal-corner">Legal Corner</tag>
<tag key="pmpc">Public Money? Public Code!</tag>
<tag key="policy">European Public Policy</tag>
<tag key="highlights">Highlights</tag>
</tags>
<discussion href="https://mastodon.social/@fsfe/114623814063685370"/>

Wyświetl plik

@@ -159,7 +159,7 @@ Ana </p>
<tag key="legal-corner">Rincón Legal</tag>
<tag key="pmpc">¿Dinero Público? ¡Codigo Público!</tag>
<tag key="policy">Política Pública Europea</tag>
<tag key="highlights">Destacado</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe/"/>

Wyświetl plik

@@ -162,7 +162,6 @@ Ana </p>
<tag key="legal-corner">Legal Corner</tag>
<tag key="pmpc">Public Money? Public Code!</tag>
<tag key="policy">European Public Policy</tag>
<tag key="highlights">Highlights</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe/"/>

Wyświetl plik

@@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8"?>
<html newsdate="2025-07-08" type="newsletter">
<version>1</version>
<head>
<title>DMA survey +++ SFP ++++ Summer Meeting</title>
</head>
<body>
<h1>DMA survey +++ SFP ++++ Summer Meeting</h1>
<p>Summer has arrived, and with it came our annual Summer Meeting, where
we spent time with our community. Learn more about the latest
developments surrounding the Digital Markets Act, take a few minutes
to share your perspective in our Interoperability Survey, and listen to
the newest episode of our podcast. You can also read the latest news
about Ada &amp; Zangemann and Youth Hacking 4
Freedom.</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/de/18/0861868264de4a2910d77c956ce2.jpg"
alt="Collage of pictures showing a team picture with FSFE volunteers and staffers outside a park, with the river Spree behind them; a picture with an image of Ada and Zangemann in Danish showing at a cinema. We see the screen and the people sitting, as the picture has been taken from the back of the room; and one of the YH4F characters"/>
</figure>
<div class="toc">
<p>Table of contents</p>
<ul id="toc">
<li><a href="#quote-of-the-month"><strong>Quote of the Month</strong></a></li>
<li><a href="#dma"><strong>DMA: tell us how gatekeepers are handling your interoperability requests</strong></a></li>
<li><a href="#sfp"><strong>SFP#35: Policy and EU: Tech sovereignty vote in the ITRE Committee</strong></a></li>
<li><a href="#yh4f"><strong>"YH4F provides teenagers with a platform to express their ideas and develop skills that are crucial for their future careers"</strong></a></li>
<li><a href="#ada"><strong>Ada &amp; Zangemann: thanks to our volunteers we can now enjoy the book and the movie in Danish!</strong></a></li>
<li><a href="interns"><strong>Join Us as an Intern and Help Advance Software Freedom!</strong></a></li>
<li><a href="#conferences"><strong>From the stages to your screen: videos from the latest conferences</strong></a></li>
<li><a href="contribute"><strong>Contribute to our Newsletter</strong></a></li>
</ul>
</div>
<h3 id="quote-of-the-month">Quote of the Month</h3>
<blockquote>
<p>“Coming together with fellow volunteers and staff at the Software
Freedom Flat in Berlin this summer filled me with joy and hope.
Sharing stories, ideas, and laughter with people who care so deeply
about software freedom always reminds me why I do this work and it
recharges my FSFE batteries. It was especially exciting to meet some
people for the first time – your presence meant a lot. I left feeling
energized, and I cant wait to see everyone again and welcome even
more next time.”<br/></p><cite>Florain Snow, FSFE volunteer
.</cite>
</blockquote>
<h3 id="section"><a
href="/news/2025/news-20250618-01.en.html"></a></h3>
<h3 id="dma">DMA: tell us how gatekeepers are handling your
interoperability requests</h3> <p>Free Software developers: your voice
is needed! The FSFE has launched the <a
href="/activities/deviceneutrality/interop-survey">DMA Interoperability
Survey</a>, aimed
at collecting crucial input from Free Software developers who have
tried, or plan to try, to request interoperability from companies like
Apple, Google, Microsoft, and Amazon under Article 6(7) of the DMA.</p>
<p>We want to monitor how gatekeepers are handling the interoperability
requests submitted by Free Software developers. We want to hear the
developers experiences and to make sure their voices are heard when
gatekeepers fall short of their obligations.</p>
<p>If you are a Free Software developer and made or plan to make an
interoperability request under Article 6(7) of the DMA, we need your
help! Whether your request was successful, delayed, denied, or ignored:
your insights are valuable. Please, <a
href="/activities/deviceneutrality/interop-survey">take a look at the
survey or share
it</a> with anyone for whom this might be relevant. </p>
<h3 id="spf">SFP#35: Policy and EU: Tech sovereignty vote in the ITRE
Committee</h3> <p>Our episode number 35 of the Software Freedom Podcast
comes with our monthly update on policy decisions, votes and
discussions in the European Union! Together Bonnie Mehring and
Alexander Sander talk about one specific policy topic in regard to Free
Software. This month they sat down and covered the vote on the Tech
sovereignty INI in the Committee on Industry, Research and Energy
(ITRE). </p>
<p><a href="/news/podcast/episode-35.html">Listen to it now!</a></p>
<h3 id="yh4f">"YH4F provides teenagers with a platform to
express their ideas and develop skills that are crucial for their
future careers"</h3>
<p>The 2025 Youth Hacking 4 Freedom programming
period come to an end at the end of June, marking the start of the
evaluation phase. Among the jury members is Alexios Zavras, who has
been involved since the very first edition of the contest. Let us hear
his insights on the YH4F competition and what motivates him to be part
of the jury. </p>
<p><a href="/news/2025/news-20250611-01.html">Find out more!</a></p>
<h3 id="ada">Ada &amp; Zangemann: thanks to our
volunteers we can now enjoy the book and the movie in Danish!</h3>
<p>You should know by now: our volunteers are really amazing! Thanks to our
Danish local group, the story of Ada &amp; Zangemann can be also found
in Danish in both the book and the movie.</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/1c/12/6388324e837a69f057947ad95113.jpg"
alt="Four White men seated around a low round table, three of them holding copies of Ada and Zangemann in Danish. There is an Ada poster on the table, and some other FSFE merchandise around." />
</figure>
<p>The Danish translation as
well as the voice recording for the film was done on a voluntary basis
by Øjvind Fritjof Arnfred, and the production of the Danish edition of
the film was kindly sponsored by PROSA (the Danish IT Worker's Union)
and David Heinemeier Hansson. The Danish version of the
film had its premiere on March 27, 2025, in the cinema Øst for Paradis
in Århus – followed by a Q&amp;A and debate with the author, FSFE
President Matthias Kirschner. The book was officially
published on June 16, 2025, on which day an official book launch and a
second screening of the film took place in the Empire Cinema in
Copenhagen – followed by a Q&amp;A with the translator and a panel
debate about
digital sovereignty through Free Software featuring, among others, FSFE
Senior Policy Project Manager Johannes Näder. </p> <p>Learn more about
the publishing process through <a
href="https://blogs.fsfe.org/agger/2025/06/24/on-publishing-ada-zangemann-in-danish/">the
blog post of Carsten Agger</a>, one of the volunteers behind this.</p>
<h3 id="interns">Join us as an intern and contribute to software freedom! </h3>
<p>We are looking for passionate <a href="/about/jobs/internship.html">interns to join our team</a> and help us achieve software freedom! Whether you're a coder, a policy enthusiast, eager to sharpen your communication skills, or ready to dive into the world of Free Software licensing, theres a place for you to contribute and grow. This is your chance to learn from our team of experts and see how your daily work can make a real-world impact.
</p>
<h3 id="conferences">From the stages to your
screen: videos from the latest conferences</h3> <p>We really enjoy
attending conferences, and over the past few weeks, weve been quite
busy. The recordings from our talks at <a
href="http://DevConf.CZ/">DevConf.CZ</a> 2025 in Brno, <a
href="https://media.fsfe.org/w/irrxN1PpocEB4FjD34cQxC">DORS/CLUC
2025</a>, and the <a
href="https://media.fsfe.org/w/jmVohZ4nE6p93rWnzkmt6e">openSUSE 2025
Conference</a> are already online and can be watched at <a
href="http://media.fsfe.org/">media.fsfe.org</a>. We also attended
T-DOSE, MERGE-It, and OpenSouthCode!</p>
<p>On the last
weekend of June, we also celebrated our annual FSFE Summer Meeting with
some of our volunteers in Berlin. It was a pleasure to spend time with
some of you there, although we also missed others who couldnt make
it.</p> <p>The 2025 Summer Meeting took place at the Software Freedom
Flat, where we had interesting discussions about our current projects
and our volunteers work, as well as amazing food and Italian homemade
ice cream!</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/4a/b5/4c03ee898fd46089fd42f9e15f42.jpg"
alt="FSFE team and volunteers posing at the Software Freedom Flat terrace." />
<figcaption>The FSFE team and volunteers at the Software Freedom Flat terrace during Summer Meeting 2025</figcaption>
</figure>
<h3 id="contribute">Contribute to our Newsletter</h3>
<p>We would love to hear from you. If you have any thoughts, pictures,
or news to share, please send them to us at newsletter@fsfe.org. You can
also <a href="/donate/donate.html">support us</a>, <a href="/contribute/contribute.html">contribute to our
work</a>, and <a href="/about/groups.html">join our
community</a>. We would like to thank our community and all the
volunteers, supporters, and donors who make our work possible, with a
special mention to our translators who make it possible for you to read
this newsletter in your mother tongue. </p>
<p>Your editor,<br/>
Ana </p>
</body>
<sidebar promo="about-fsfe" />
<date>
<original content="2025-07-08" />
</date>
<followup>donate</followup>
<tags>
<tag key="newsletter">Newsletter</tag>
<tag key="front-page"/>
<tag key="deviceneutrality">Device Neutrality</tag>
<tag key="dma">DMA</tag>
<tag key="yh4f">Youth Hacking 4 Freedom</tag>
<tag key="ada-zangemann">Ada and Zangemann</tag>
<tag key="dk">Denmark</tag>
<tag key="podcast">Software Freedom Podcast</tag>
<tag key="policy">European Public Policy</tag>
</tags>
<discussion href="https://mastodon.social/@fsfe/"/>
<image url="https://pics.fsfe.org/uploads/medium/de/18/0861868264de4a2910d77c956ce2.jpg"
alt="Collage of pictures showing a team picture with FSFE volunteers and staffers outside a park, with the river Spree behind them; a picture with an image of Ada and Zangemann in Danish showing at a cinema. We see the screen and the people sitting, as the picture has been taken from the back of the room; and one of the YH4F characters"/>
</html>

Wyświetl plik

@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<html newsdate="2025-07-08" type="newsletter">
<version>1</version>
<head>
<title>Sondaggio DMA +++ SFP ++++ Summer Meeting</title>
</head>
<body>
<h1>Sondaggio DMA +++ SFP ++++ Summer Meeting</h1>
<p>
L'estate è arrivata e con lei anche l'annuale Summer Meeting per
trascorrere del tempo con la nostra comunità. Scoprite gli ultimi
sviluppi della legge sui mercati digitali (DMA) e condividete il vostro punto di vista
con il nostro sondaggio sull'interoperabilità. Ascoltate l'ultimo
episodio del nostro podcast e leggete le nostre notizie su Ada &amp;
Zangemann e Youth Hacking 4 Freedom.
</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/de/18/0861868264de4a2910d77c956ce2.jpg"
alt="Collage di immagini che mostrano una foto di gruppo con i volontari e lo staff della FSFE all'esterno di un parco, con il fiume Sprea alle loro spalle; una foto con un'immagine di Ada e Zangemann proiettata in un cinema danese. Si vedono lo schermo e le persone sedute, la foto è scattata dal retro della sala; uno dei personaggi di YH4F."/>
</figure>
<div class="toc">
<p>Sommario</p>
<ul id="toc">
<li><a href="#quote-of-the-month"><strong>Citazione del mese</strong></a></li>
<li><a href="#dma"><strong>DMA: diteci come i gatekeeper gestiscono le vostre richieste di interoperabilità</strong></a></li>
<li><a href="#sfp"><strong>SFP#35: politica e UE: voto sul pieno controllo tecnico nella commissione ITRE</strong></a></li>
<li><a href="#yh4f"><strong>“YH4F offre agli adolescenti una piattaforma per esprimere le proprie idee e sviluppare competenze fondamentali per le loro carriere future”</strong></a></li>
<li><a href="#ada"><strong>Ada &amp; Zangemann: grazie ai nostri volontari possiamo goderci il libro e il film in danese!</strong></a></li>
<li><a href="interns"><strong>Unisciti a noi come tirocinante e contribuisci alla libertà del software! </strong></a></li>
<li><a href="#conferences"><strong>Dai palchi al monitor: i video delle ultime conferenze</strong></a></li>
<li><a href="contribute"><strong>Contribuisci alla nostra Newsletter</strong></a></li>
</ul>
</div>
<h3 id="quote-of-the-month">Citazione del mese</h3>
<blockquote>
<p>«L'incontro di quest'estate con i colleghi, i volontari e lo staff al Software
Freedom Flat di Berlino mi ha riempito di gioia e
speranza. Condividere storie, idee e risate con persone che hanno così
a cuore la libertà del software mi ricorda costantemente perché faccio
questo lavoro e ricarica le mie batterie della FSFE. È stato
particolarmente emozionante incontrare alcune persone per la prima
volta: la vostra presenza è stata davvero preziosa. Ritorno pieno di
energie e non vedo l'ora di rivedere tutti e di dare il benvenuto a un
numero ancora maggiore di persone la prossima volta».</p>
<cite>Florain Snow, volontario FSFE.</cite>
</blockquote>
<h3 id="section"><a
href="/news/2025/news-20250618-01.en.html"></a></h3>
<h3 id="dma">DMA: diteci come i gatekeeper gestiscono le vostre richieste di interoperabilità</h3>
<p>
Agli sviluppatori di Software Libero serve la vostra voce! La FSFE ha
lanciato un <a
href="/activities/deviceneutrality/interop-survey">sondaggio
sull'interoperabilità del DMA</a> (Digital Market Act, Legge sui mercati
digitali), finalizzato a raccogliere i
contributi fondamentali degli sviluppatori di Software Libero che hanno
cercato, o intendono cercare, di richiedere l'interoperabilità ad
aziende come Apple, Google, Microsoft e Amazon ai sensi dell'articolo
6(7) del DMA.
</p>
<p>
Vogliamo vigilare su come i gatekeeper gestiscono le richieste di
interoperabilità presentate dagli sviluppatori di Software Libero.
Vogliamo ascoltare le esperienze degli sviluppatori e assicurarci che la
loro voce sia sentita quando i gatekeeper non rispettano i propri
obblighi.
</p>
<p>
Se sviluppate Software Libero e avete fatto o avete intenzione di fare
una richiesta di interoperabilità ai sensi dell'articolo 6(7) del DMA,
abbiamo bisogno del vostro aiuto! Indipendentemente dal fatto che la
vostra richiesta sia stata accolta, rinviata, negata o ignorata: le
vostre informazioni sono preziose. <a
href="/activities/deviceneutrality/interop-survey">Date un'occhiata al
sondaggio o condividetelo</a> con chiunque possa essere interessato.
</p>
<h3 id="spf">SFP#35: Politica e UE: voto sul pieno controllo tecnico nella commissione ITRE</h3>
<p>L'episodio numero 35 del Software Freedom Podcast presenta il nostro
aggiornamento mensile sulle decisioni politiche, le votazioni e le
discussioni nell'Unione Europea! Bonnie Mehring e Alexander
Sander ci parlano di un argomento politico specifico riguardante il
Software Libero. Questo mese si sono occupati del voto sul pieno
controllo tecnico dell'INI nella commissione per l'industria, la
ricerca e
l'energia (ITRE).</p>
<p><a href="/news/podcast/episode-35.html">Ascoltalo adesso!</a></p>
<h3 id="yh4f">“YH4F offre agli adolescenti una piattaforma per esprimere le proprie idee e sviluppare competenze fondamentali per le loro carriere future”</h3>
<p>
Il periodo di programmazione del 2025 Youth Hacking 4 Freedom si è
concluso alla fine di giugno, segnando l'inizio della fase di
valutazione. Un membro della giuria è Alexios Zavras, coinvolto fin
dalla prima edizione del concorso. Sentiamo le sue opinioni sul concorso
YH4F e cosa lo spinge a far parte della giuria.
</p>
<p><a href="/news/2025/news-20250611-01.html">Clicca qui per saperne di più!</a>
</p>
<h3 id="ada">Ada &amp; Zangemann: grazie ai nostri volontari possiamo goderci il libro e il film in danese!</h3>
<p>
Ormai dovreste saperlo: i nostri volontari sono davvero straordinari!
Grazie al nostro gruppo locale danese, la fiaba di Ada e Zangemann è
disponibile anche in danese, come pure il film.
</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/1c/12/6388324e837a69f057947ad95113.jpg"
alt="Uomini con carnagione chiara in posa mentre mostrano Ada e Zangemann in danese. Sono tutti seduti e ci sono alcuni poster di Ada e altri oggetti della FSFE intorno a loro." />
</figure>
<p>
La traduzione danese e la registrazione audio del film sono state
effettuate su base volontaria da Øjvind Fritjof Arnfred, mentre la
produzione dell'edizione danese del film è stata gentilmente
sponsorizzata da PROSA (il sindacato danese dei lavoratori IT) e da
David Heinemeier Hansson. La versione danese del film è stata presentata
in anteprima il 27 marzo 2025, nel cinema Øst for Paradis di Århus,
seguita da domande e un dibattito con l'autore, il presidente della FSFE
Matthias Kirschner. Il libro è stato pubblicato ufficialmente il 16
giugno 2025, giorno in cui si è tenuta una presentazione ufficiale del
libro e una seconda proiezione del film presso l'Empire Cinema di
Copenaghen, seguita da un incontro con il traduttore e una tavola
rotonda sul pieno controllo digitale attraverso il Software Libero a cui ha
partecipato, tra gli altri, il responsabile senior di progetto delle politiche della FSFE
Johannes Näder.
</p>
<p>
Per saperne di più sul processo di pubblicazione, consultate <a
href="https://blogs.fsfe.org/agger/2025/06/24/on-publishing-ada-zangemann-in-danish/">il
post di Carsten Agger</a>, uno dei volontari che si occupano di questo
progetto.
</p>
<h3 id="interns">Unisciti a noi come tirocinante e contribuisci alla
libertà del software! </h3> <p>Siamo alla ricerca di appassionati <a
href="/about/jobs/internship.html">tirocinanti che si uniscano al
nostro team</a> e ci aiutino a promuovere la libertà del software! Che
tu sia un coder, un appassionato di politiche pubbliche, desideroso di
affinare le tue capacità comunicative o pronto a immergerti nel mondo
delle licenze del Software Libero, c'è un posto per te in cui
contribuire e crescere. Questa è la giusta occasione per imparare dal
nostro team di esperti e vedere come il tuo lavoro può avere un impatto
reale.</p>
<h3 id="conferences">Dai palchi al monitor: i video delle ultime conferenze</h3>
<p>
Ci piace molto partecipare ai convegni e nelle ultime settimane siamo
stati decisamente impegnati. Le registrazioni dei nostri interventi alla <a href="http://DevConf.CZ/">
DevConf.CZ</a> 2025 di Bruna, alla <a
href="https://media.fsfe.org/w/irrxN1PpocEB4FjD34cQxC">DORS/CLUC
2025</a>, e la <a
href="https://media.fsfe.org/w/jmVohZ4nE6p93rWnzkmt6e">Conferenza
openSUSE 2025</a> sono già online e possono essere visualizzate su <a
href="http://media.fsfe.org/">media.fsfe.org</a>. Abbiamo anche
partecipato a T-DOSE, MERGE-It e OpenSouthCode!
</p>
<p>
L'ultimo fine settimana di giugno abbiamo anche celebrato il nostro
annuale incontro estivo della FSFE con alcuni dei nostri volontari a
Berlino. È stato un piacere trascorrere del tempo con alcuni di voi,
anche se abbiamo sentito la mancanza di altri che non sono riusciti a
partecipare.
</p>
<p>
Il Summer Meeting 2025 si è svolto presso il Software Freedom Flat, dove
abbiamo avuto interessanti discussioni sui nostri progetti in corso e
sul lavoro dei nostri volontari, oltre a ottimo cibo e gelato italiano
fatto in casa!
</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/4a/b5/4c03ee898fd46089fd42f9e15f42.jpg"
alt="Il team FSFE e i volontari in posa sulla terrazza del Software Freedom Flat" />
<figcaption>
Il team FSFE e i volontari durante il Summer Meeting 2025 sulla terrazza del Software Freedom Flat
</figcaption>
</figure>
<h3 id="contribute">Contribuisci alla nostra Newsletter</h3>
<p>Ci piacerebbe sapere cosa pensi! Se hai idee, immagini o novità da
condividere, inviacele a newsletter@fsfe.org. Puoi anche <a
href="/donate/donate.html">sostenerci</a>, <a
href="/contribute/contribute.it.html">contribuire al nostro lavoro</a>,
e <a href="/about/groups.it.html">unirti alla nostra comunità</a>.
Vorremmo anche ringraziare la nostra comunità
e tutti i volontari, i sostenitori e i donatori che rendono possibile il
nostro lavoro, con una menzione speciale per i nostri traduttori che
rendono possibile la lettura di questa newsletter anche nella tua linga.</p>
<p>Un saluto da chi ti scrive,<br/>
Ana </p>
</body>
<sidebar promo="about-fsfe" />
<date>
<original content="2025-07-08" />
</date>
<followup>donate</followup>
<tags>
<tag key="newsletter">Newsletter</tag>
<tag key="front-page"/>
<tag key="deviceneutrality">Neutralità del Dispositivo</tag>
<tag key="dma">DMA</tag>
<tag key="yh4f">Youth Hacking 4 Freedom</tag>
<tag key="ada-zangemann">Ada e Zangemann</tag>
<tag key="dk">Danimarca</tag>
<tag key="podcast">Software Freedom Podcast</tag>
<tag key="policy">Politica Pubblica Europea</tag>
</tags>
<discussion href="https://mastodon.social/@fsfe/"/>
<image url="https://pics.fsfe.org/uploads/medium/de/18/0861868264de4a2910d77c956ce2.jpg"
alt="Collage di immagini che mostrano una foto di gruppo con i volontari e lo staff della FSFE all'esterno di un parco, con il fiume Sprea alle loro spalle; una foto con un'immagine di Ada e Zangemann proiettata in un cinema danese. Si vedono lo schermo e le persone sedute, la foto è scattata dal retro della sala, e uno dei personaggi di YH4F."/>
<translator>Giacomo Alessandroni</translator>
</html>

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Fanartikel</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Merchandise</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Productos promocionales</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Marchandise</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Prodotti</h1>
<!-- module id="order-delay" //-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -10,7 +10,7 @@
<body class="toplevel">
<h1>Fan-artikelen</h1>
<!-- module id="order-delay" />-->
<module id="order-delay" />
<!-- module id="merch-sale" /> -->
<div class="toc float-right">

Wyświetl plik

@@ -35,7 +35,7 @@
<p>
Empfänger: Free Software Foundation Europe e.V.<br/>
Adresse: Schönhauser Allee 6/7, 10119 Berlin, Deutschland<br/>
Adresse: Revaler Straße 19, 10245 Berlin, Deutschland<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Bank: GLS Gemeinschaftsbank eG, 44774 Bochum, Deutschland<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -36,7 +36,7 @@
<p>
Recipient: Free Software Foundation Europe e.V.<br/>
Address: Schönhauser Allee 6/7, 10119 Berlin, Germany<br/>
Address: Revaler Straße 19, 10245 Berlin, Germany<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Bank: GLS Gemeinschaftsbank eG, 44774 Bochum, Germany<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -36,7 +36,7 @@
<p>
Destinatario: Free Software Foundation Europe e.V.<br/>
Dirección: Schönhauser Allee 6/7, 10119 Berlín, Alemania<br/>
Dirección: Revaler Straße 19, 10245 Berlin, Alemania<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Banco: GLS Gemeinschaftsbank eG, 44774 Bochum, Alemania<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -36,7 +36,7 @@
<p>
Beneficiario: Free Software Foundation Europe e.V.<br/>
Indirizzo beneficiario: Schönhauser Allee 6/7, 10119 Berlin, Germany<br/>
Indirizzo beneficiario: Revaler Straße 19, 10245 Berlin, Germany<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Banca beneficiario: GLS Gemeinschaftsbank eG, 44774 Bochum, Germany<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -36,7 +36,7 @@ volgende data:
<p>
Ontvanger: Free Software Foundation Europe e.V.<br/>
Adres: Schönhauser Allee 6/7, 10119 Berlijn, Duitsland<br/>
Adres: Revaler Straße 19, 10245 Berlijn, Duitsland<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Bank: GLS Gemeinschaftsbank eG, 44774 Bochum, Duitsland<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -36,7 +36,7 @@
<p>
Alıcı: Free Software Foundation Europe e.V.<br/>
Adres: Schönhauser Allee 6/7, 10119 Berlin, Germany<br/>
Adres: Revaler Straße 19, 10245 Berlin, Germany<br/>
IBAN: DE47 4306 0967 2059 7908 01<br/>
Banka: GLS Gemeinschaftsbank eG, 44774 Bochum, Germany<br/>
BIC: GENODEM1GLS<br/>

Wyświetl plik

@@ -78,8 +78,8 @@
<address>
Free Software Foundation Europe e.V.<br/>
Schönhauser Allee 6/7<br/>
10119 Berlin<br/>
Revaler Straße 19<br />
10245 Berlin<br />
Deutschland
</address>

Wyświetl plik

@@ -33,8 +33,8 @@
</p>
<address>
Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
10119 Berlin<br />
Revaler Straße 19<br />
10245 Berlin<br />
Germany
</address>
<p>

Wyświetl plik

@@ -68,8 +68,8 @@
<address>
Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
10119 Berlín<br />
Revaler Straße 19<br />
10245 Berlin<br />
Alemania
</address>

Wyświetl plik

@@ -80,8 +80,8 @@
<address>
Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
10119 Berlin<br />
Revaler Straße 19<br />
10245 Berlin<br />
Germany
</address>

Wyświetl plik

@@ -77,8 +77,8 @@
<address>
Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
10119 Berlin<br />
Revaler Straße 19<br />
10245 Berlin<br />
Germany
</address>

Wyświetl plik

@@ -67,8 +67,8 @@
<address>
Free Software Foundation Europe e.V.<br />
Schönhauser Allee 6/7<br />
10119 Berlin<br />
Revaler Straße 19<br />
10245 Berlin<br />
Germany
</address>

Wyświetl plik

@@ -17,7 +17,7 @@
<option value="Johannes Näder|jn|81">Johannes Näder </option>
<option value="Lucas Lasota|lucas.lasota|61">Lucas Lasota </option>
<option value="Matthias Kirschner|mk|12">Matthias Kirschner</option>
<option value="Sofia Escobades|sofiaritz|93">Sofia Escobades </option>
<option value="Sofia Escobes|sofiaritz|93">Sofia Escobes </option>
<option value="Tobias Diekershoff|tobiasd|82">Tobias Diekershoff </option>
</module>
</data>

35
pyproject.toml Normal file
Wyświetl plik

@@ -0,0 +1,35 @@
[project]
name = "build"
version = "0.0.0"
description = "Python tooling to build the fsfe websites"
readme = "README.md"
# Pinned to 3.12 as a known working version, that also has a prebuild wheel for tdewolff-minify
requires-python = "==3.12.*"
dependencies = [
# XML parser
"lxml==5.3.2",
# For getting english language names of languages from two letter codes.
"python-iso639==2025.2.18",
# For stopwords for the search index
"nltk==3.9.1",
# For minification html css and js
"tdewolff-minify==2.20.37",
# For HTTP requests
"requests==2.32.3",
]
[project.scripts]
build = "build:main"
[dependency-groups]
dev = [
"ruff"
]
[build-system]
requires = ["uv_build"]
build-backend = "uv_build"
[tool.uv.build-backend]
module-name = "build"
module-root = ""

6
renovate.json Normal file
Wyświetl plik

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

3
renovate.json.license Normal file
Wyświetl plik

@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2022 Free Software Foundation Europe <https://fsfe.org>
SPDX-License-Identifier: CC0-1.0

Wyświetl plik

@@ -1,10 +0,0 @@
# XML parser
lxml==5.3.2
# For getting english language names of languages from two letter codes.
python-iso639==2025.2.18
# For stopwords for the search index
nltk==3.9.1
# For minification html css and js
tdewolff-minify==2.20.37
# For HTTP requests
requests==2.32.3

Wyświetl plik

@@ -8,49 +8,53 @@ let
treefmt-nixSrc = builtins.fetchTarball "https://github.com/numtide/treefmt-nix/archive/refs/heads/master.tar.gz";
treefmt-nix = import treefmt-nixSrc;
in
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
# The main required tool python
python3
# needed by lxml
libxslt
libxml2
# For less compilation
lessc
# Needed for git clean in full rebuilds
git
# Needed for compiling minifiers
libffi
go
# Formatter
(treefmt-nix.mkWrapper pkgs {
# Used to find the project root
projectRootFile = "shell.nix";
enableDefaultExcludes = true;
programs = {
ruff-check.enable = true;
ruff-format.enable = true;
nixfmt.enable = true;
};
settings = {
global = {
on-unmatched = "debug";
excludes = [
".nltk_data"
".venv"
];
(pkgs.buildFHSEnv {
name = "simple-env";
# Installed for host pc only
targetPkgs =
pkgs:
(with pkgs; [
# For getting python deps
uv
# needed by lxml
libxslt
libxml2
# For less compilation
lessc
# Needed for git clean in full rebuilds
git
# Needed for compiling minifiers
libffi
go
# Formatter
(treefmt-nix.mkWrapper pkgs {
# Used to find the project root
projectRootFile = "shell.nix";
enableDefaultExcludes = true;
programs = {
ruff-check.enable = true;
ruff-format.enable = true;
nixfmt.enable = true;
};
};
})
# Packages for git hooks
mediainfo
perl
file
];
shellHook = ''
export PIP_DISABLE_PIP_VERSION_CHECK=1;
python -m venv .venv;
source .venv/bin/activate;
pip install -r requirements.txt;
'';
}
settings = {
global = {
on-unmatched = "debug";
excludes = [
".nltk_data"
".venv"
];
};
};
})
# Packages for git hooks
mediainfo
perl
file
]);
# Installed for every architecture: only install the lib outputs
multiPkgs =
pkgs:
(with pkgs; [
]);
# runScript = '''';
}).env