Package Details: unofficial-homestuck-collection 2.7.2-1

Git Clone URL: https://aur.archlinux.org/unofficial-homestuck-collection.git (read-only, click to copy)
Package Base: unofficial-homestuck-collection
Description: The Unofficial Homestuck Collection
Upstream URL: https://homestuck.giovanh.com/unofficial-homestuck-collection/
Licenses: GPL-3.0-or-later, LicenseRef-chrome, LicenseRef-electron
Submitter: AquilaIrreale
Maintainer: AquilaIrreale
Last Packager: AquilaIrreale
Votes: 1
Popularity: 0.000000
First Submitted: 2021-04-22 15:26 (UTC)
Last Updated: 2025-08-25 23:06 (UTC)

Pinned Comments

AquilaIrreale commented on 2023-05-17 17:30 (UTC) (edited on 2025-05-10 15:46 (UTC) by AquilaIrreale)

IMPORTANT NOTICE

Since the removal of nodejs-lts-fermium from the Arch repositories, this package is BROKEN. It can still probabily be built by manually installing Node 14 through tools such as nvm and removing the dependency from the PKGBUILD, but until a more appropriate solution is found, it would probably be easier to switch to the sister package unofficial-homestuck-collection-bin

Update: nodejs-lts-fermium is now available in the AUR

Update to the update: as I am unable to successfully build nodejs-lts-fermium on my machine, this package is now broken.

Update: package seems to build fine and run with nodejs-lts-hydrogen nodejs-lts-jod, I have not done extensive testing so feel free to report any issues you should have here and I'll see what can be done.

Original message:
README

When installing for the first time, remember to download the Asset Pack v2 from the original author's page https://bambosh.dev/unofficial-homestuck-collection/#download and unpack it anywhere you like on your system.

Broken asset pack selector workaround

The asset pack selector menu looks still broken, if unofficial-homestuck-collection fails to start after a fresh install, try manually editing ~/.config/unofficial-homestuck-collection/config.json, setting localData.assetDir with the absolute path to your unpacked copy of the Asset Pack v2.

Latest Comments

1 2 Next › Last »

AquilaIrreale commented on 2025-08-25 23:39 (UTC)

@HurricanePootis no no, thank you for your input, this kind of discussion is very valuable

I compile dependency lists using namcap

Yeah, I don't know how I missed it for so long, it's pretty handy

One thing that namcap cannot do is list any packages that are called during runtime/not linked

Yeah, like libxcrypt-compat in our case

Btw I thought you shouldn't list base packages in depends, but TIL apparently that rule only applies to base-devel and makedepends. I've really got to go through my other packages as soon as I have time to spare and check for this kind of stuff

considering that this app is almost 90% chrome and that is installed into /usr/lib, I think this should be in /usr/lib

If you are talking about the official chromium package then yes, that installs under /usr/lib. Strictly speaking google-chrome goes under /opt, I understand it's an AUR package, still they do it that way because the deb package it's based on (built and distributed by the vendor---Google) is made that way.

other packages doing things poorly

It's not that clear cut, /opt is definitely valid per the FHS (and more appropriate in my opinion, which is also prominent third party software vendors' opinion for whatever it's worth). But I understand the OS vendor (Arch) may prefer to use /usr/lib in cases such as this, as demonstrated by chromium, which I can respect. I don't really have strong feelings about it---v2.7.2 goes under /usr/lib.

I've been meaning to try and have it build an ASAR and run it using system electron anyways sometime in the future, that will definitely stay under /usr/lib as previously discussed and be much cleaner/lighter.

P.s. I'm back from vacation, will touch up the -bin package soon, lmk if anything else comes up

HurricanePootis commented on 2025-08-15 10:36 (UTC)

@AquilaIrreale I compile dependency lists using namcap. In my opinion, every arch maintainer should use this tool, as it will tell you what packages your package is dynamically linked too and if there are any other package errors/warnings. From my experience of packaging packages, these dependencies I listed are in line for anything that bundles chrome with it. I highly suggest you go throw every package you maintain and run namcap on it, it is a life changer. Also, a lot of times, even I, miss out listening depends() on bin packages, which namcap will point out. One thing that namcap cannot do is list any packages that are called during runtime/not linked. Think how SDL calls a billion things but isn't linked to them.

Also, about the /opt vs /usr/lib thing, I know having a lot of a loose files mean you can go into /opt, but considering that this app is almost 90% chrome and that is installed into /usr/lib, I think this should be in /usr/lib, as listing other packages doing things poorly doesn't make it any better.

Thank you for taking the time to consider my responses :).

AquilaIrreale commented on 2025-08-13 14:34 (UTC) (edited on 2025-08-13 14:35 (UTC) by AquilaIrreale)

@HurricanePootis wrt your patch:

  1. a) How did you compile that dependency list? b) UHC's license is explicitely GPL 3.0 or later (see README). I will still update the identifier to GPL-3.0+ as per recent SPDX guidelines. (the custom electron and chromium stuff is still needed because we are shipping a copy of Electron in the built package and their licenses don't have official SPDX names)
  2. yeah
  3. also yeah
  4. not really missing, they have it in package.json and yarn.lock, but it's not getting installed for some reason... anyways, a yarn install before make build is sufficient without explicitly re-adding it.
  5. By well established convention, applications that ship lots of random miscellaneous files with their own directory structure should go under /opt/<package> or /opt/<provider>/<package>. See visual-studio-code-bin for a prominent example. Some electron apps that are run using system electron (/usr/bin/electron) (we don't, see (1)) and ship just the (preferably packed) asar archive, put it under /usr/lib. See drawio-desktop for an official package that works this way.
  6. wiggle wiggle :)) (also also yeah)

Unlisted: - --icon=$pkgname is implied

AquilaIrreale commented on 2025-08-13 08:06 (UTC) (edited on 2025-08-28 14:41 (UTC) by AquilaIrreale)

Are you going to move back to GiovanH's homestuck fork considering what has been going on? It's also now two versions head.

@HurricanePootis yep, see discussion on the -bin package. It's technically not even a fork, it's the original repository, moved from Bambosh's to Gio's account after being delisted for some time

HurricanePootis commented on 2025-08-10 10:11 (UTC)

diff --git a/PKGBUILD b/PKGBUILD
index 1e29aa2..09522cf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,17 +2,18 @@
 # Contributor Peri Vance <perivance@posteo.net>

 pkgname=unofficial-homestuck-collection
-pkgver=2.5.7
-pkgrel=2
+pkgver=2.7.0
+pkgrel=1
 pkgdesc="The Unofficial Homestuck Collection"
 arch=('x86_64')
-url='https://homestuck.github.io/'
-license=('custom:chrome' 'custom:electron')
+url='https://github.com/GiovanH/unofficial-homestuck-collection'
+license=('GPL-3.0-only')
 makedepends=('nodejs-lts-jod' 'gendesk' 'yarn' 'electron')
-source=("https://github.com/homestuck/${pkgname}/archive/refs/tags/${pkgver}.tar.gz"
-        node-engines.patch)
-sha512sums=('53f66768e946ae909bfd60703a9a95f4832346de05af120ecbc76561719cc228655d272db32766320f77242490ab979c9a06cb58c829455db7addd2e559d98af'
-            '4c232d99ed96caf0a2f11cdf583642a21014efdf8095460d6e8838bb367f7e89bbb6b2409b29fb250578fc61578c3b373dbd519821e43a714f3d282f3433986a')
+depends=('nss' 'libxrender' 'glibc' 'libxcb' 'libxext' 'libxfixes' 'dbus' 'libxrandr' 'expat' 'alsa-lib' 'libxss' 'cairo' 'libxdamage' 'libdrm' 'libxcomposite' 'libx11' 'gtk3' 'libxcursor' 'hicolor-icon-theme' 'glib2' 'libxtst' 'libxi' 'libcups' 'pango' 'at-spi2-core' 'mesa' 'nspr' 'gdk-pixbuf2' 'gcc-libs')
+source=("$url/archive/refs/tags/v${pkgver}.tar.gz"
+   node-engines.patch)
+sha512sums=('ad41a4b52f1659c2189543fd5cb51452deced51a4f50538c9a73465bbe39e4c4281a2866006430600fd092a22def9f4d76d70b2b803d6e70e29f0e08262dee54'
+            '03bfd768353c72bd4f962a1d34ad83a97077c3189c87ea352a25a9e6eb7604ca144d496a992ea67dac18e98f7c4bc74af44c4c33ac685a95fe84eb86db208137')

 prepare() {
     patch -d "$pkgname-$pkgver" -p1 < node-engines.patch
@@ -22,29 +23,35 @@ prepare() {
         --pkgdesc="${pkgdesc}" \
         --name="Unofficial Homestuck Collection" \
         --categories "Game;" \
-        --exec="/usr/bin/unofficial-homestuck-collection"
+        --exec="/usr/bin/unofficial-homestuck-collection" \
+   --icon=unofficial-homestuck-collection
 }

 build() {
     cd "${pkgname}-${pkgver}"
+    yarn add crc
     SHARP_IGNORE_GLOBAL_LIBVIPS=true make build
 }

 package() {
-    mkdir -p "${pkgdir}/opt/"
-    cp -r "${srcdir}/unofficial-homestuck-collection-${pkgver}/dist_electron/linux-unpacked/" \
-        "${pkgdir}/opt/unofficial-homestuck-collection/"
+    mkdir -p "${pkgdir}/usr/lib/${pkgname}"
+    cp -a -T "${srcdir}/unofficial-homestuck-collection-${pkgver}/dist_electron/linux-unpacked/" \
+        "${pkgdir}/usr/lib/${pkgname}"

     mkdir -p "${pkgdir}/usr/share/licenses/unofficial-homestuck-collection/"
-    ln -s "/opt/unofficial-homestuck-collection/LICENSES.chromium.html" \
+    ln -s "/usr/lib/${pkgname}/LICENSES.chromium.html" \
         "${pkgdir}/usr/share/licenses/unofficial-homestuck-collection/LICENSES.chromium.html"
-    ln -s "/opt/unofficial-homestuck-collection/LICENSE.electron.txt" \
+    ln -s "/usr/lib/${pkgname}/LICENSE.electron.txt" \
         "${pkgdir}/usr/share/licenses/unofficial-homestuck-collection/LICENSE.electron.txt"

     mkdir -p "${pkgdir}/usr/bin/"
-    ln -s "/opt/unofficial-homestuck-collection/unofficial-homestuck-collection" \
-        "${pkgdir}/usr/bin/unofficial-homestuck-collection"
+    ln -s "/usr/lib/${pkgname}/${pkgname}" \
+        "${pkgdir}/usr/bin/${pkgname}"

     mkdir -p "${pkgdir}/usr/share/applications/"
     install -Dm644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+    for _size in 16 24 32 48 64 128 256 512 1024
+    do
+       install -Dm644 "$srcdir/${pkgname}-${pkgver}/build/icons/${_size}x${_size}.png" "$pkgdir/usr/share/icons/hicolor/${_size}x${_size}/apps/${pkgname}.png"
+    done
 }
diff --git a/node-engines.patch b/node-engines.patch
index 5e9b8b4..747f837 100644
--- a/node-engines.patch
+++ b/node-engines.patch
@@ -1,11 +1,11 @@
---- a/package.json 2025-05-10 17:29:53.226652575 +0200
-+++ b/package.json 2025-05-10 17:30:01.837814482 +0200
-@@ -12,7 +12,7 @@
+--- A/package.json 2025-07-07 15:43:41.000000000 -0500
++++ B/package.json 2025-08-10 04:28:57.769405762 -0500
+@@ -13,7 +13,7 @@
      }
    ],
    "engines": {
 -    "node": "18.20"
 +    "node": "22"
    },
-   "version": "2.5.7",
-   "license": "GPL-3.0",
+   "version": "2.7.0",
+   "license": "GPL-3.0*",
  1. Add depends(), propper SPDX license
  2. Move back to GiovanH's fork
  3. Add icon to desktop file
  4. Add crc missing module
  5. Install into /usr/lib/unofficial-homestuck-collection. Other chromium apps install into /usr/lib/, like most browsers do (even firefox). /opt/ is useless.
  6. Update node patch

HurricanePootis commented on 2025-08-10 09:25 (UTC)

Are you going to move back to GiovanH's homestuck fork considering what has been going on? It's also now two versions head.

AquilaIrreale commented on 2023-05-17 17:30 (UTC) (edited on 2025-05-10 15:46 (UTC) by AquilaIrreale)

IMPORTANT NOTICE

Since the removal of nodejs-lts-fermium from the Arch repositories, this package is BROKEN. It can still probabily be built by manually installing Node 14 through tools such as nvm and removing the dependency from the PKGBUILD, but until a more appropriate solution is found, it would probably be easier to switch to the sister package unofficial-homestuck-collection-bin

Update: nodejs-lts-fermium is now available in the AUR

Update to the update: as I am unable to successfully build nodejs-lts-fermium on my machine, this package is now broken.

Update: package seems to build fine and run with nodejs-lts-hydrogen nodejs-lts-jod, I have not done extensive testing so feel free to report any issues you should have here and I'll see what can be done.

Original message:
README

When installing for the first time, remember to download the Asset Pack v2 from the original author's page https://bambosh.dev/unofficial-homestuck-collection/#download and unpack it anywhere you like on your system.

Broken asset pack selector workaround

The asset pack selector menu looks still broken, if unofficial-homestuck-collection fails to start after a fresh install, try manually editing ~/.config/unofficial-homestuck-collection/config.json, setting localData.assetDir with the absolute path to your unpacked copy of the Asset Pack v2.

AquilaIrreale commented on 2022-04-19 11:32 (UTC)

@perivance perfect, I didn't know about that one flag, that fixes it.

Merged

nexcydran commented on 2022-04-18 02:41 (UTC) (edited on 2022-04-18 02:42 (UTC) by nexcydran)

I believe that the current issue is due to an unexpected interaction between Electron and the system libvips package.

As a workaround, SHARP_IGNORE_GLOBAL_LIBVIPS=true will force Make to ignore the system package for building.

Here is a quick patch:

diff --git a/PKGBUILD b/PKGBUILD
index 94d5640..38995c3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -23,7 +23,7 @@ prepare() {

 build() {
     cd "${pkgname}-${pkgver}"
-    make publish
+    SHARP_IGNORE_GLOBAL_LIBVIPS=true make publish
 }

 package() {

AquilaIrreale commented on 2022-03-30 09:57 (UTC)

@clino looking at your logs it would seem you still have libvips installed while building the package.

sharp: Detected globally-installed libvips v8.12.2

I think with yay you could do something like:

sudo pacman -Rdds libvips
yay -Sd unofficial-homestuck-collection
sudo pacman -S --asdeps libvips

But if you don't actually care about building from sources you could just switch to unofficial-homestuck-collection-bin, it's gonna be faster to install and should work out of the box.