···102102}
103103```
104104105105-Fortunately, there is [`wrapGAppsHook`]{#ssec-gnome-hooks-wrapgappshook}. It works in conjunction with other setup hooks that populate environment variables, and it will then wrap all executables in `bin` and `libexec` directories using said variables.
105105+Fortunately, there is [`wrapGAppsHook`]{#ssec-gnome-hooks-wrapgappshook}. It works in conjunction with other setup hooks that populate environment variables, and it will then wrap all executables in `bin` and `libexec` directories using said variables. For convenience, it also adds `dconf.lib` for a GIO module implementing a GSettings backend using `dconf`, `gtk3` for GSettings schemas, and `librsvg` for GdkPixbuf loader to the closure.
106106107107-For convenience, it also adds `dconf.lib` for a GIO module implementing a GSettings backend using `dconf`, `gtk3` for GSettings schemas, and `librsvg` for GdkPixbuf loader to the closure. There is also [`wrapGAppsHook4`]{#ssec-gnome-hooks-wrapgappshook4}, which replaces GTK 3 with GTK 4. And in case you are packaging a program without a graphical interface, you might want to use [`wrapGAppsNoGuiHook`]{#ssec-gnome-hooks-wrapgappsnoguihook}, which runs the same script as `wrapGAppsHook` but does not bring `gtk3` and `librsvg` into the closure.
107107+There is also [`wrapGAppsHook4`]{#ssec-gnome-hooks-wrapgappshook4}, which replaces GTK 3 with GTK 4. Instead of `wrapGAppsHook`, this should be used for all GTK4 applications.
108108+109109+In case you are packaging a program without a graphical interface, you might want to use [`wrapGAppsNoGuiHook`]{#ssec-gnome-hooks-wrapgappsnoguihook}, which runs the same script as `wrapGAppsHook` but does not bring `gtk3` and `librsvg` into the closure.
108110109111- `wrapGAppsHook` itself will add the package’s `share` directory to `XDG_DATA_DIRS`.
110112
···18181919[Synapse](https://github.com/element-hq/synapse) is
2020the reference homeserver implementation of Matrix from the core development
2121-team at matrix.org. The following configuration example will set up a
2121+team at matrix.org.
2222+2323+Before deploying synapse server, a postgresql database must be set up.
2424+For that, please make sure that postgresql is running and the following
2525+SQL statements to create a user & database called `matrix-synapse` were
2626+executed before synapse starts up:
2727+2828+```sql
2929+CREATE ROLE "matrix-synapse";
3030+CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse"
3131+ TEMPLATE template0
3232+ LC_COLLATE = "C"
3333+ LC_CTYPE = "C";
3434+```
3535+3636+Usually, it's sufficient to do this once manually before
3737+continuing with the installation.
3838+3939+Please make sure to set a different password.
4040+4141+The following configuration example will set up a
2242synapse server for the `example.org` domain, served from
2343the host `myhostname.example.org`. For more information,
2444please refer to the
···4161 networking.firewall.allowedTCPPorts = [ 80 443 ];
42624363 services.postgresql.enable = true;
4444- services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" ''
4545- CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse';
4646- CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse"
4747- TEMPLATE template0
4848- LC_COLLATE = "C"
4949- LC_CTYPE = "C";
5050- '';
51645265 services.nginx = {
5366 enable = true;
···11+diff --git a/public/robots.txt b/public/robots.txt
22+index 7fb2544..6e921ba 100644
33+--- a/public/robots.txt
44++++ b/public/robots.txt
55+@@ -15,4 +15,4 @@ Allow: /*.ico$
66+ Allow: /*.svg$
77+ Disallow: *
88+99+-Sitemap: https://crab.fit/sitemap.xml
1010++Sitemap: https://@FRONTEND_URL@/sitemap.xml
1111+diff --git a/public/sitemap.xml b/public/sitemap.xml
1212+index 072442a..32f0e75 100644
1313+--- a/public/sitemap.xml
1414++++ b/public/sitemap.xml
1515+@@ -1,15 +1,15 @@
1616+ <?xml version="1.0" encoding="UTF-8"?>
1717+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
1818+ <url>
1919+- <loc>https://crab.fit/</loc>
2020++ <loc>https://@FRONTEND_URL@/</loc>
2121+ <priority>1.0</priority>
2222+ </url>
2323+ <url>
2424+- <loc>https://crab.fit/how-to</loc>
2525++ <loc>https://@FRONTEND_URL@/how-to</loc>
2626+ <priority>0.4</priority>
2727+ </url>
2828+ <url>
2929+- <loc>https://crab.fit/privacy</loc>
3030++ <loc>https://@FRONTEND_URL@/privacy</loc>
3131+ <priority>0.2</priority>
3232+ </url>
3333+ </urlset>
3434+diff --git a/src/app/[id]/page.tsx b/src/app/[id]/page.tsx
3535+index a3af022..7d2494d 100644
3636+--- a/src/app/[id]/page.tsx
3737++++ b/src/app/[id]/page.tsx
3838+@@ -49,10 +49,10 @@ const Page = async ({ params }: PageProps) => {
3939+ >{t('common:created', { date: relativeTimeFormat(Temporal.Instant.fromEpochSeconds(event.created_at), i18n.language) })}</span>
4040+4141+ <Copyable className={styles.info}>
4242+- {`https://crab.fit/${event.id}`}
4343++ {`https://@FRONTEND_URL@/${event.id}`}
4444+ </Copyable>
4545+ <p className={makeClass(styles.info, styles.noPrint)}>
4646+- <Trans i18nKey="event:nav.shareinfo" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('event:nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('event:nav.email_body')} https://crab.fit/${event.id}`)}`}>_</a>_</Trans>
4747++ <Trans i18nKey="event:nav.shareinfo" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('event:nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('event:nav.email_body')} https://@FRONTEND_URL@/${event.id}`)}`}>_</a>_</Trans>
4848+ </p>
4949+ </Content>
5050+ </Suspense>
5151+diff --git a/src/app/layout.tsx b/src/app/layout.tsx
5252+index d4c1466..3d37088 100644
5353+--- a/src/app/layout.tsx
5454++++ b/src/app/layout.tsx
5555+@@ -13,7 +13,7 @@ import './global.css'
5656+ const karla = Karla({ subsets: ['latin'] })
5757+5858+ export const metadata: Metadata = {
5959+- metadataBase: new URL('https://crab.fit'),
6060++ metadataBase: new URL('https://@FRONTEND_URL@'),
6161+ title: {
6262+ absolute: 'Crab Fit',
6363+ template: '%s - Crab Fit',
6464+diff --git a/src/components/CreateForm/components/EventInfo/EventInfo.tsx b/src/components/CreateForm/components/EventInfo/EventInfo.tsx
6565+index 4376001..c404233 100644
6666+--- a/src/components/CreateForm/components/EventInfo/EventInfo.tsx
6767++++ b/src/components/CreateForm/components/EventInfo/EventInfo.tsx
6868+@@ -16,10 +16,10 @@ const EventInfo = ({ event }: EventInfoProps) => {
6969+ return <div className={styles.wrapper}>
7070+ <h2>{event.name}</h2>
7171+ <Copyable className={styles.info}>
7272+- {`https://crab.fit/${event.id}`}
7373++ {`https://@FRONTEND_URL@/${event.id}`}
7474+ </Copyable>
7575+ <p className={styles.info}>
7676+- <Trans i18nKey="event:nav.shareinfo_alt" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('nav.email_body')} https://crab.fit/${event.id}`)}`} target="_blank">_</a>_</Trans>
7777++ <Trans i18nKey="event:nav.shareinfo_alt" t={t} i18n={i18n}>_<a href={`mailto:?subject=${encodeURIComponent(t('nav.email_subject', { event_name: event.name }))}&body=${encodeURIComponent(`${t('nav.email_body')} https://@FRONTEND_URL@/${event.id}`)}`} target="_blank">_</a>_</Trans>
7878+ </p>
7979+ </div>
8080+ }
8181+diff --git a/src/i18n/locales/de/help.json b/src/i18n/locales/de/help.json
8282+index 0dbe707..564a83d 100644
8383+--- a/src/i18n/locales/de/help.json
8484++++ b/src/i18n/locales/de/help.json
8585+@@ -6,7 +6,7 @@
8686+8787+ "s1": "Schritt 1",
8888+8989+- "p3": "Benutze das Formular auf <1>crab.fit</1>, um einen neuen Termin zu erfassen. Du brauchst nur einen groben Zeitrahmen für den Termin anzugeben, aber noch nicht deine Verfügbarkeit",
9090++ "p3": "Benutze das Formular auf <1>@FRONTEND_URL@</1>, um einen neuen Termin zu erfassen. Du brauchst nur einen groben Zeitrahmen für den Termin anzugeben, aber noch nicht deine Verfügbarkeit",
9191+ "p4": "Beispiel: \"Jennys Geburtstags-Lunch\". Jenny will den Lunch in derselben Woche haben wie ihren Geburtstag, den 15. April, aber sie weiss, dass nicht alle ihre Freunde am 15. frei sind. Sie will ihn auch nicht am Wochenende",
9292+ "p5": "Jenny weiss auch, dass der Lunch zwischen 11 und 5 Uhr stattfinden muss.",
9393+9494+diff --git a/src/i18n/locales/en-GB/help.json b/src/i18n/locales/en-GB/help.json
9595+index 4d0f1c7..02f985f 100644
9696+--- a/src/i18n/locales/en-GB/help.json
9797++++ b/src/i18n/locales/en-GB/help.json
9898+@@ -6,7 +6,7 @@
9999+100100+ "s1": "Step 1",
101101+102102+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
103103++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
104104+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
105105+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
106106+107107+diff --git a/src/i18n/locales/en/help.json b/src/i18n/locales/en/help.json
108108+index 4d0f1c7..02f985f 100644
109109+--- a/src/i18n/locales/en/help.json
110110++++ b/src/i18n/locales/en/help.json
111111+@@ -6,7 +6,7 @@
112112+113113+ "s1": "Step 1",
114114+115115+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
116116++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
117117+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
118118+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
119119+120120+diff --git a/src/i18n/locales/es/help.json b/src/i18n/locales/es/help.json
121121+index 1bcd264..ccf4c85 100644
122122+--- a/src/i18n/locales/es/help.json
123123++++ b/src/i18n/locales/es/help.json
124124+@@ -6,7 +6,7 @@
125125+126126+ "s1": "Paso 1",
127127+128128+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
129129++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
130130+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
131131+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
132132+133133+diff --git a/src/i18n/locales/fr/help.json b/src/i18n/locales/fr/help.json
134134+index 24603e1..395787f 100644
135135+--- a/src/i18n/locales/fr/help.json
136136++++ b/src/i18n/locales/fr/help.json
137137+@@ -6,7 +6,7 @@
138138+139139+ "s1": "Étape 1",
140140+141141+- "p3": "Utilisez le formulaire sur <1>crab.fit</1> pour créer un nouvel événement. Vous devez seulement indiquer la période approximative de votre événement ici, et non vos disponibilités.",
142142++ "p3": "Utilisez le formulaire sur <1>@FRONTEND_URL@</1> pour créer un nouvel événement. Vous devez seulement indiquer la période approximative de votre événement ici, et non vos disponibilités.",
143143+ "p4": "Par exemple, nous allons utiliser « Fête d'anniversaire de Jenny ». Jenny souhaite que sa fête d'anniversaire ait lieu la même semaine que son anniversaire, le 15 avril, mais elle sait que tous·tes ses ami·e·es ne sont pas disponibles le 15. Elle ne veut pas non plus le faire le week-end.",
144144+ "p5": "Jenny sait également que, comme il s'agit d'un déjeuner, elle ne peut pas commencer avant 11 heures ni se terminer après 17 heures.",
145145+146146+diff --git a/src/i18n/locales/hi/help.json b/src/i18n/locales/hi/help.json
147147+index 4d0f1c7..02f985f 100644
148148+--- a/src/i18n/locales/hi/help.json
149149++++ b/src/i18n/locales/hi/help.json
150150+@@ -6,7 +6,7 @@
151151+152152+ "s1": "Step 1",
153153+154154+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
155155++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
156156+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
157157+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
158158+159159+diff --git a/src/i18n/locales/id/help.json b/src/i18n/locales/id/help.json
160160+index 4d0f1c7..02f985f 100644
161161+--- a/src/i18n/locales/id/help.json
162162++++ b/src/i18n/locales/id/help.json
163163+@@ -6,7 +6,7 @@
164164+165165+ "s1": "Step 1",
166166+167167+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
168168++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
169169+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
170170+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
171171+172172+diff --git a/src/i18n/locales/it/help.json b/src/i18n/locales/it/help.json
173173+index 1df32db..7cf6673 100644
174174+--- a/src/i18n/locales/it/help.json
175175++++ b/src/i18n/locales/it/help.json
176176+@@ -6,7 +6,7 @@
177177+178178+ "s1": "Passo 1",
179179+180180+- "p3": "Usa il modulo su <1>crab.fit</1> per creare un nuovo evento. Devi solo impostare il periodo di tempo indicativo per l'evento qui, non la tua disponibilità.",
181181++ "p3": "Usa il modulo su <1>@FRONTEND_URL@</1> per creare un nuovo evento. Devi solo impostare il periodo di tempo indicativo per l'evento qui, non la tua disponibilità.",
182182+ "p4": "Per esempio, possiamo usare \"Il pranzo di compleanno di Jenny\". Jenny vuole che il suo pranzo di compleanno sia nella stessa settimana del suo compleanno, il 15 di Aprile, ma sa che non tutti i suoi amici saranno disponibili il 15. Lei non vuole neanche organizzarlo nel fine settimana.",
183183+ "p5": "Jenny sa anche che, essendo un pranzo, non può iniziare prima delle 11 o continuare oltre le 15.",
184184+185185+diff --git a/src/i18n/locales/ko/help.json b/src/i18n/locales/ko/help.json
186186+index 2f7a221..2bbd04d 100644
187187+--- a/src/i18n/locales/ko/help.json
188188++++ b/src/i18n/locales/ko/help.json
189189+@@ -6,7 +6,7 @@
190190+191191+ "s1": "1 단계",
192192+193193+- "p3": "<1>crab.fit</1>의 양식을 사용하여 새 이벤트를 만드세요. 여기서 이벤트가 발생하는 대략적인 기간 만 입력하면됩니다.",
194194++ "p3": "<1>@FRONTEND_URL@</1>의 양식을 사용하여 새 이벤트를 만드세요. 여기서 이벤트가 발생하는 대략적인 기간 만 입력하면됩니다.",
195195+ "p4": "예를 들어 \"Jenny의 생일 점심을\" 사용합니다. Jenny는 4 월 15 일 생일과 같은 주에 생일 점심 식사를하기를 원하지만 모든 친구가 15 일에 참석할 수있는 것은 아니라는 것을 알고 있습니다. 그녀는 또한 주말에하고 싶지 않습니다.",
196196+ "p5": "Jenny는 점심 행사이기 때문에 오전 11시 이전에 시작하거나 오후 5시 이후에 갈 수 없다는 것도 알고 있습니다.",
197197+198198+diff --git a/src/i18n/locales/pt-BR/help.json b/src/i18n/locales/pt-BR/help.json
199199+index fd5ef7d..e9433fd 100644
200200+--- a/src/i18n/locales/pt-BR/help.json
201201++++ b/src/i18n/locales/pt-BR/help.json
202202+@@ -6,7 +6,7 @@
203203+204204+ "s1": "Passo 1",
205205+206206+- "p3": "Preenche os dados em <1>crab.fit</1> para criar seu evento. Escolhe um peíodo de tempo aproximado no qual o evento deve occorer, i.e. as possíveis datas e horários. Sua disponibilidade pessoal será num outro passo.",
207207++ "p3": "Preenche os dados em <1>@FRONTEND_URL@</1> para criar seu evento. Escolhe um peíodo de tempo aproximado no qual o evento deve occorer, i.e. as possíveis datas e horários. Sua disponibilidade pessoal será num outro passo.",
208208+ "p4": "Por exemplo \"Almoço de aniversário da Marina\". Ela quer convidar os amigos na mesma semana do seu aniversário no dia 15 de abril. Ela sabe que nem todo mundo tem tempo no dia 15 e tambêm não quer fazer no fim de semana.",
209209+ "p5": "Marina quer que seja no horário do almoço, então não deve começar antes das 11 da manhã e nem terminar depois das 5 da tarde.",
210210+211211+diff --git a/src/i18n/locales/pt-PT/help.json b/src/i18n/locales/pt-PT/help.json
212212+index 5141873..a25c608 100644
213213+--- a/src/i18n/locales/pt-PT/help.json
214214++++ b/src/i18n/locales/pt-PT/help.json
215215+@@ -6,7 +6,7 @@
216216+217217+ "s1": "Passo 1",
218218+219219+- "p3": "Usa o formulário em <1>crab.fit</1>para criares um evento novo. Aqui só precisas de inserir aproximadamente o período durante o qual o teu evento vai acontecer.",
220220++ "p3": "Usa o formulário em <1>@FRONTEND_URL@</1>para criares um evento novo. Aqui só precisas de inserir aproximadamente o período durante o qual o teu evento vai acontecer.",
221221+ "p4": "Por exemplo, vamos criar o \"Almoço de Aniversário da Jenny\". A Jenny quer que o almoço seja na mesma semana que o seu aniversário, a 15 de abril. No entanto, ela sabe que nem todos os seus amigos estarão disponíveis no dia 15. Ela também não quer que o almoço seja no fim de semana.",
222222+ "p5": "A Jenny também sabe que, como é um almoço, não pode começar antes das 11 da manhã nem terminar depois das 5 da tarde.",
223223+224224+diff --git a/src/i18n/locales/ru/help.json b/src/i18n/locales/ru/help.json
225225+index 4d0f1c7..02f985f 100644
226226+--- a/src/i18n/locales/ru/help.json
227227++++ b/src/i18n/locales/ru/help.json
228228+@@ -6,7 +6,7 @@
229229+230230+ "s1": "Step 1",
231231+232232+- "p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
233233++ "p3": "Use the form at <1>@FRONTEND_URL@</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
234234+ "p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
235235+ "p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
236236+
···6262 ];
63636464 postPatch = ''
6565- # Allow cffi versions with a different patch level to be used
6666- substituteInPlace pyproject.toml --replace "cffi==1.15.0" "cffi==1.15.*"
6565+ # Allow newer cffi versions to be used
6666+ substituteInPlace pyproject.toml --replace "cffi==1.15.*" "cffi>=1.15"
6767 '';
68686969 # Make MIP use the Gurobi solver, if configured to do so
···2424 # but it gets deleted quickly and would provoke 404 errors
2525 owner = "OpenPrinting";
2626 repo = "foomatic-db-engine";
2727- rev = "fa91bdfd87da9005591ac2ef2c9c7b8ecdd19511";
2828- hash = "sha256-Ufy9BtYMD7sUUVfraTmO5e8+nZ4C4up5a5GXeGTtejg=";
2727+ rev = "a2b12271e145fe3fd34c3560d276a57e928296cb";
2828+ hash = "sha256-qM12qtGotf9C0cjO9IkmzlW9GWCkT2Um+6dU3mZm3DU=";
2929 };
30303131 outputs = [ "out" ];
···3737 ];
38383939 buildInputs =
4040+ [ curl ]
4041 # provide some "cups-*" commands to `foomatic-{configure,printjob}`
4142 # so that they can manage a local cups server (add queues, add jobs...)
4242- lib.optionals withCupsAccess [ cups cups-filters curl ]
4343+ ++ lib.optionals withCupsAccess [ cups cups-filters ]
4344 # the commands `foomatic-{configure,getpjloptions}` need
4445 # netcat if they are used to query or alter a network
4546 # printer via AppSocket/HP JetDirect protocol