Package Details: r2modman-bin 3.1.49-1

Git Clone URL: https://aur.archlinux.org/r2modman-bin.git (read-only, click to copy)
Package Base: r2modman-bin
Description: A simple and easy to use mod manager for several games using Thunderstore.
Upstream URL: https://github.com/ebkr/r2modmanPlus
Licenses: MIT
Conflicts: r2modman
Provides: r2modman
Submitter: oynyo
Maintainer: oynyo
Last Packager: oynyo
Votes: 10
Popularity: 0.87
First Submitted: 2023-03-25 21:55 (UTC)
Last Updated: 2024-06-18 18:51 (UTC)

Latest Comments

1 2 Next › Last »

oynyo commented on 2024-01-21 19:58 (UTC)

@nova8x Are these issues new with the latest version? Given that two installations are experiencing the same problem, it would likely be worth it to raise an issue on the upstream and not here.

nova8x commented on 2024-01-20 19:28 (UTC) (edited on 2024-01-20 19:28 (UTC) by nova8x)

I seem to be experiencing some flickering in both this and the appimage officially distributed whilst in the app. The UI lags behind and goes black occasionally. Tried with both --no-sanbox and --in-process-gpu. Plasma-Wayland and nvidia proprietary drivers

xiota commented on 2024-01-03 21:50 (UTC) (edited on 2024-01-03 22:01 (UTC) by xiota)

The initial download is cached and would be retained if still needed. Rebuilds of the same version are usually not needed. Since the last change did not change the resulting package at all, pkgrel should not have been bumped. (There is a package guideline stating this. But what's done is done, and changes like this are rare.)

Unless you use makepkg -e, the sources are unpacked again into srcdir, overwriting old files, still incurring the writes. Building with old files left over can cause problems. Unless debugging a package, usually better to build with fresh destination directories, makepkg -C.

rsync would also incur writes because pkgdir is cleared, unless you use makepkg -R. rsync does have an option to use hardlinks, but that is only on the destination side. It won't link between source and destination. rsync does not support reflinks without a patch. aur/rsync-reflink

An extreme case are the davinci-resolve packages. They require 21+ GB to build. That can be reduced to 12GB by deleting temp files and moving files to pkgdir instead of copying.

luluco250 commented on 2024-01-03 21:12 (UTC) (edited on 2024-01-03 21:12 (UTC) by luluco250)

mv would cause redundant writes due to causing the package to no longer be up to date when extracting the source files every time you attempted to build, no?

I get the argument for optimizing out the writes though. I'd use rsync personally but it's unreasonable to have it as a build dependency for such a small optimization.

xiota commented on 2024-01-03 16:29 (UTC)

mv reduces time and writes because the blocks are not duplicated. Whether reflink makes a difference depends on file system support, like btrfs and xfs. Similar effect could be achieved with hard links (cp -rl). Also, when using cp, you might have to fix permissions (chmod -R u=rwX,go=rX "$pkgdir").

Many packaging practices originated before SSDs and Btrfs even existed. Only relatively recently has their use started to become more common. Reducing writes using mv, hard links or reflinks can help reduce SSD wear.

oynyo commented on 2024-01-03 14:22 (UTC)

I don't follow why cp --reflink=auto -r or mv would reduce the packaging time or writes. I searched for an example of this in other PKGBUILDs. However, I only found uses of cp -a (likely better than cp -r), but this does not make the requested changes. If you could give an example or show that this does reduce packaging time, then I will change it.

xiota commented on 2023-12-30 07:50 (UTC) (edited on 2023-12-30 07:56 (UTC) by xiota)

Consider using cp --reflink=auto -r (or even mv) instead of cp -r to reduce packaging time and unnecessary writes.

oynyo commented on 2023-12-19 13:44 (UTC)

@luluco250 Thanks for the input. I agree that is much simpler, but it also looks like you were missing ln -sf "/opt/${_name}/${_name}" "${pkgdir}/usr/bin/${_name}". I've added this in as well so that r2modman can be run from the command line.

luluco250 commented on 2023-12-15 17:54 (UTC) (edited on 2023-12-15 19:02 (UTC) by luluco250)

Looks like the author releases pacman packages through GitHub, but calls it *.pacman.

I was able to install it just fine with pacman -U, so maybe it'd make sense to just switch to that instead of using the *.rpm?

Edit:

Here's how you can extract the files from the pacman package they provide, far simpler than dealing with the RPM file IMO:

source=(
    "$_name-$pkgver-${arch[0]}.pkg.tar.xz::$url/releases/download/v$pkgver/$_name-$pkgver.pacman"
    "$url/raw/v$pkgver/LICENSE"
)
sha256sums=(
    'e704772a4b9d6f37a51c8c3e1bd3a3f445361841d08acf378aafe1b1cb8dd641'
    'ab4643c18a58edee5b0beac8278517f6475b2956d5999b40e3176297b9a0ce18'
)

package() {
    cp -r "$srcdir"/{opt,usr} "$pkgdir/"
    install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

I haven't figured out a way to just have makepkg skip building a package and just use the one from GitHub directly.

begin-theadventu commented on 2023-04-01 22:15 (UTC) (edited on 2023-04-01 22:37 (UTC) by begin-theadventu)

I think it'd be better to use .rpm; it has a desktop file, icons and weights less than .tar.gz:

source=("${url}/releases/download/v${pkgver}/${_name}-$pkgver.x86_64.rpm"
    "LICENSE")
md5sums=(
    '5f71c1b7f9e16f30804bcc9422258c3a'
    'cdc88d3d1b56736d0dbc702aaa7de854')

package() {
  mkdir -p ${pkgdir}/opt
  mkdir -p ${pkgdir}/usr/bin
  cp -a opt/$_name $pkgdir/opt/$_name
  ln -fs /opt/$_name/$_name ${pkgdir}/usr/bin/$_name
  for i in 16 24 32 48 64 128 256; do
    install -Dm644 usr/share/icons/hicolor/${i}x${i}/apps/$_name.png "${pkgdir}"/usr/share/icons/hicolor/${i}x${i}/apps/$_name.png
  done
  install -Dm644 usr/share/applications/$_name.desktop "$pkgdir/usr/share/applications/$_name.desktop"
  install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/$_name"
}