Thanks for your patience @sshaikh, happy to see this merged!
If you want to improve the PKGBUILD
a bit more, here's a diff: http://ix.io/3wvc (TL;DR: use make -C
instead of pushd
and popd
).
Git Clone URL: | https://aur.archlinux.org/i3blocks-contrib-git.git (read-only, click to copy) |
---|---|
Package Base: | i3blocks-contrib-git |
Description: | Official repository of community contributed blocklets |
Upstream URL: | https://github.com/vivien/i3blocks-contrib |
Licenses: | GPL3 |
Groups: | i3 |
Conflicts: | i3blocks-contrib |
Provides: | i3blocks-contrib |
Submitter: | matoro |
Maintainer: | sshaikh |
Last Packager: | sshaikh |
Votes: | 3 |
Popularity: | 0.000000 |
First Submitted: | 2019-09-09 12:28 (UTC) |
Last Updated: | 2021-08-19 11:21 (UTC) |
Thanks for your patience @sshaikh, happy to see this merged!
If you want to improve the PKGBUILD
a bit more, here's a diff: http://ix.io/3wvc (TL;DR: use make -C
instead of pushd
and popd
).
@sshaikh Just so you know, provides=("$_pkgname=$pkgver") should be fine without needing to strip off the extra segments. If the segments are constructed properly (it looks like yours are) then Arch's
vercmp` will know how to compare them relative to stable tags so you don't need to strip it and pretend the Git is as old as/identical to the last tag.
Thank you for all the assistance with this. I've now updated the package to install the scripts in a more "appropriate" place. Further, I've integrated the changes recommended by @a821 which has actually resulted in a version bump to 2.x.
Existing users should expect their existing i3blocks config to break. Using the following in your config should get things working again: command=$SCRIPT_DIR/$BLOCK_NAME
Note about comment history: I've merged i3blocks-contrib-install-git
into this package so many comments below came in from that package. @sshaikh You should adopt this and adapt your PKGBUILD with the path issues fixed and post it to this name.
Great. For clarity the problem was never with upstream but with the package. I take your point that it doesn't matter where a breaking change is if it's made to be "correct".
All moot now as I've submitted the orphan request. If I become maintainer I'll also make the changes you've describes further below.
Many thanks for the input!
@sshaikh With "upstream-changes" I meant, in general, changes made by the upstream developers that may break users' setups. Users should adapt to those changes.
In this particular case, I have no idea if it always was package wrongly, or there was a change made by upstream developers after the other package's original submittion (which is what you are trying to correct with this package). Either way, the package should be packaged correctly (as @alergue points out) and the users should fix their systems. If you adopt and fix the other package, informing the users with the required changes by for example a pinned comment will be great.
I've requested this package be orphaned as per https://aur.archlinux.org/packages/i3blocks-contrib-install-git/#comment-822105
@alerque
Sounds good, will do! If we can keep this around till then that would be appreciated. Once fixed I'll file the delete request myself if that's okay.
@a821
What do you mean by "upstream changes" here? Upstream hasn't changed, the potential error is in the way the package is being building it, ie in the AUR package ie it does not follow the install instructions provided by upstream.
The question is whether this should now be corrected, given how users have now adapted to been using the "broken" package. Doing it right now will break things for users who are perfectly happy.
Again, I don't have any objection in doing that, but neither do I necessarily want to be responsible for breaking systems the next time existing users update i3blocks-contrib-git, unless that's something that's been "signed off" by those in a position to do so.
This should be fixed in the other repository. The entire point of a package is a recipe to install something to your system. Cloning a repo and stuffing the files on a system is useless if that's not how they need to be used. Upstream may be just a dumping ground for scripts and not have an installer, but if there is going to be a package at all it needs to install things where they need to be to run.
Please file an orphan request on the other package and then set it up to be usable. Having a -install
package for something that already exists as a package is never the right solution.
Pinned Comments
sshaikh commented on 2021-08-16 11:28 (UTC) (edited on 2021-08-16 11:52 (UTC) by sshaikh)
@thiagowfx
The i3blocks-contrib repo contains the source code for various contributed to be used by i3blocks. As per upstream[1] they are not meant to be used "raw" by cloning but in fact are meant to be selectively built/copied into an existing script directory.
This allows upstream's default/example config to work correctly, as block names are by default taken from filenames in the script directory (ie it doesn't handle subfolders elegantly). So to answer your question directly, the difference between this package and i3blocks-contrib-git is that the latter simply clones and copies the repo (sub directories and all), while this one "flattens" it into an appropriate script directory.
There's more discussion in upstream's issue #255[2], including the inspiration for the code in this PKGBUILD.
@a821
I have raised this (as well as offering a solution) on i3blocks-contrib-git's AUR page[3], but received no meaningful response. As I was unable to determine if this was by design/preference or that the users of this package were actively expected to configure their systems in a way contrary to upstream, I didn't feel it was appropriate to adopt and correct it in a way that would break it for an existing audience. And so I uploaded an alternative package.
Hope that helps!
[1]https://github.com/vivien/i3blocks-contrib/wiki/Installation [2]https://github.com/vivien/i3blocks-contrib/issues/255 [3]https://aur.archlinux.org/packages/i3blocks-contrib-git/#comment-776755