Package Details: gtfs-to-html 2.10.10-1

Git Clone URL: https://aur.archlinux.org/gtfs-to-html.git (read-only, click to copy)
Package Base: gtfs-to-html
Description: Build human readable transit timetables as HTML or PDF from GTFS.
Upstream URL: https://gtfstohtml.com/
Licenses: MIT
Submitter: michael_wzq
Maintainer: michael_wzq
Last Packager: michael_wzq
Votes: 0
Popularity: 0.000000
First Submitted: 2024-06-11 08:56 (UTC)
Last Updated: 2025-04-04 23:44 (UTC)

Latest Comments

dreieck commented on 2026-06-04 08:20 (UTC)

Patch to PKGBUILD which brings this package up to date and fixes build errors and makes only one run of npm:

--- PKGBUILD.orig   2026-06-04 09:44:44.891935471 +0200
+++ PKGBUILD    2026-06-04 10:19:22.739832107 +0200
@@ -3,3 +3,3 @@
 pkgname=gtfs-to-html
-pkgver=2.10.10
+pkgver=2.12.12
 pkgrel=1
@@ -12,4 +12,4 @@
    bash
-   gcc-libs
    glibc
+   libstdc++.so
    nodejs
@@ -26,6 +26,7 @@
 source=("https://registry.npmjs.org/$pkgname/-/$pkgname-$pkgver.tgz")
-b2sums=('4c8daca90b6083034f93568ec5cbc4931245670eeb83b086c57860d28897f40ab526586a14813b26157e12843f50007892258851738e3fba0ddbdd3189bb65f0')
+b2sums=('6d93a88830a5889df0b33884a3110bcee137e2e79b097eeeea7db5d6342d811371c64055f04f2fb1e60cdf5e72182500e815d906a4b8c0086b74dde86d928b0a')

 prepare() {
-   npm install --cache "${srcdir}/npm-cache" -g --prefix "${pkgdir}/usr" "${srcdir}/${pkgname}-${pkgver}.tgz"
+   # Downloads dependencies, so we do it here.
+   npm install -g --cache "${srcdir}/.npm-cache" --prefix "${srcdir}/build" --verbose --production --omit=dev "${srcdir}/${pkgname}-${pkgver}.tgz"
 }
@@ -33,5 +34,11 @@
 package() {
-   npm install --cache "${srcdir}/npm-cache" -g --prefix "${pkgdir}/usr" "${srcdir}/${pkgname}-${pkgver}.tgz" --offline
-   install -Dm644 package/LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.md"
-   install -Dm644 package/config-sample.json "${pkgdir}/usr/share/doc/${pkgname}/config-sample.json"
+   # Optional: Add '-v' flag to 'install' and 'cp' commands to show what is going on.
+   install -dm755 "${pkgdir}/usr"
+   cp -dR --preserve=mode,timestamps,links build/{lib,bin} "${pkgdir}/usr/"
+   install -dm755 "${pkgdir}/usr/share/doc/${pkgname}"
+   install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
+   cd "${pkgdir}/usr/share/doc/${pkgname}"
+   ln -s /usr/lib/node_modules/gtfs-to-html/{README.md,config-sample.json} .
+   cd "${pkgdir}/usr/share/licenses/${pkgname}"
+   ln -s /usr/lib/node_modules/gtfs-to-html/LICENSE.md .
    chown -R root:root "$pkgdir"

New PKGBUILD ↗ here.

Regards!

dreieck commented on 2026-06-04 07:44 (UTC)

package() fails for me:

[...]
npm error code 1
npm error path /var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/puppeteer
npm error command failed
npm error command sh -c node install.mjs
npm error **INFO** Skipping Firefox download as instructed.
npm error Error: ERROR: Failed to set up chrome-headless-shell v148.0.7778.97! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
npm error     at downloadBrowser (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:26:15)
npm error     at async Promise.all (index 1)
npm error     at async downloadBrowsers (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:84:9) {
npm error   [cause]: Error: All providers failed for chrome-headless-shell 148.0.7778.97:
npm error     - DefaultProvider: The browser folder (/home/felics/.cache/puppeteer/chrome-headless-shell/linux-148.0.7778.97) exists but the executable (/home/felics/.cache/puppeteer/chrome-headless-shell/linux-148.0.7778.97/chrome-headless-shell-linux64/chrome-headless-shell) is missing
npm error       at installWithProviders (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/@puppeteer/browsers/lib/esm/install.js:108:11)
npm error       at async install (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/@puppeteer/browsers/lib/esm/install.js:118:12)
npm error       at async downloadBrowser (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:14:24)
npm error       at async Promise.all (index 1)
npm error       at async downloadBrowsers (file:///var/cache/makepkg/build/gtfs-to-html/pkg/gtfs-to-html/usr/lib/node_modules/gtfs-to-html/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:84:9)
npm error }
npm error A complete log of this run can be found in: /var/cache/makepkg/build/gtfs-to-html/src/npm-cache/_logs/2026-06-04T07_41_19_587Z-debug-0.log

Regards!

dreieck commented on 2026-06-04 07:41 (UTC) (edited on 2026-06-04 07:42 (UTC) by dreieck)

Suggestion: Add verbose flag to npm actions to actually see the ongoing process.

And, I have packaged nodejs-gtfs (with only one npm run in prepare(), by the way, and in package() I locally copy prepared things into place; maybe you are interested in that way of doing things), which this software actually also uses. Maybe you find a way that it uses system-installed package and then depend on that, so this package does not need to download and bundle it's own copy of node-gtfs and it's dependencies?

Regards and thanks for the package!

dreieck commented on 2024-09-11 13:45 (UTC)

It still downloads stuff in package().

dreieck commented on 2024-07-04 10:45 (UTC)

Can you install an example config.json to /usr/share/doc/gtfs-to-html/config.example.json?

That would be helpful.

Regards!

dreieck commented on 2024-07-04 10:43 (UTC)

Please make sure that

  • all the npm dependency download happens in prepare(), not in package()!,
  • it is downloaded to a subdirectory of $srcdir (to not clutter the build user's $HOME directory).

Also, dependencies are missing:

  • nodejs, and maybe:
  • gcc-libs, bash, glibc.

Also, this seems to not be an arch=('any') package. According to namcap:

gtfs-to-html E: ELF file ('usr/lib/node_modules/gtfs-to-html/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare') found in an 'any' package.
gtfs-to-html E: ELF file ('usr/lib/node_modules/gtfs-to-html/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare') found in an 'any' package.
gtfs-to-html E: ELF file ('usr/lib/node_modules/gtfs-to-html/node_modules/bare-os/prebuilds/linux-arm64/bare-os.bare') found in an 'any' package.
gtfs-to-html E: ELF file ('usr/lib/node_modules/gtfs-to-html/node_modules/bare-os/prebuilds/linux-x64/bare-os.bare') found in an 'any' package.
gtfs-to-html E: ELF file ('usr/lib/node_modules/gtfs-to-html/node_modules/better-sqlite3/build/Release/better_sqlite3.node') found in an 'any' package.

And you need to install the license into /usr/share/licenses/${pkgname}/:

gtfs-to-html E: Uncommon license identifiers such as 'MIT' require license files below /usr/share/licenses/gtfs-to-html/ or switching to common license identifiers. Found 0/1 required license files.

Regards and thanks for the package!