Freedom Issue #2890
[octopi:]: various issues
the most recent octopi package, introduced a low-quality PKGBUILD, and a loss of important functionality (probably the most desired functionality of this package)
i started looking at this package because for some reason, the new package ended up in libre; so it did not replace the existing PCR package - im not sure how that happened, but i fixed that - this is an important package for the GUI LiveISOs, so i wanted to check it out thoroughly - once i started looking at the PKGBUILD, i found so many "nit-picky" things which bothered me, that i am opening this ticket to list them all - most of these notes are non-functinal housekeeping issues; but we should correct them
there are multiple policy issues with the AUR PKGBUILD
- GUIDELINE: "Do not add $pkgname to PKGBUILD#provides, as it is always implicitely provided by the package."
- provides=('octopi' 'octopi-repoeditor' 'octopi-cachecleaner')
- conflicts=('octopi') # <- conflicts with itself?
- GUIDELINE: "add a comment ... which contains information about the ... previous contributors"
- acknowlegements of all previous contributors were deleted
- GUIDELINE: "under /usr/share/licenses/common/. If a package is licensed under one of these licenses, the value should be set to the directory name, e.g. ... (L)GPL — (L)GPLv2 or any later version
- this program is GPLv2 or any later version - the license=('GPL2') should be 'GPL'
- GUIDELINE: "Do not create duplicate packages."
- GUIDELINE: "Suffix pkgname with ... -git etc. unless the package fetches a specific release."
- the PKGBUILD violates two different packaging guidelines on this issue
- it builds from an arbitrary git commit, not the versioned upstream release (as it did for previous versions)
- an 'octopi-git' PKGBUILD already existed, when this change was done, and it still does
i understand the value of keeping the diff small; but we should not keep parts which are unnecceray or incorrect, even if it were an arch package - if housekeeping changes make the diff too messy, then someone should contact the maintainer, and try getting the corrections upstreamed
- does not install a .desktop file for the octopi-repoeditor program
- does not build the octopi-notifier program
- this is needed for the liveISOs
- again, thats fine for now; but it needs to be be fixed before new GUI ISOs are made
- the upstream documentation says that the notifier program asks to install AUR helpers - AFAIK, previous versions did not suggest that - this needs investigating and possibly patching
problems that it had before, and still does now:¶
- the license=('GPL2') should be 'GPL'
- does not install the pacman install hook: octopi.install
- this is included in the upstream sources to seed the database upon install; but it looks like parabola never installed it
- the systemd service file which the install hook would enable, does get installed however - unfortunately the user would most likely never know that it exists, without an .install hook, or a wiki article to suggest starting the service
- thats fine for now, because the install hook is systemd-specific; but it could (maybe even should) be fixed
- the ", without nonfree AUR things" appendage to pkgdesc is not needed for PCR packages
- that distinction would make perfect sense if this were another AUR PKGBULD, or if this were a libre replacement for a non-FSDG arch package; but the parabola 'octopi' package is neither
- whenever a pkgdesc is appended in that way, it should indicate a libre replacement on the blacklist; because it raises questions as to why that modification was made
- libre replacements should have an associated freedom bug report for future reference and comments, and a "parabola changes and rationale:" comment in the PKGBUILD; but PCR packages usually have neither
- a package in PCR does not need special explanation to document the rationale why it was modified; because it was not modified - it does not need to distinguish it from a corresponding non-FSDG package, because no non-FSDG package exists
problems that it did not have before, that it does now:¶
- it has both a pkgbase and pkgname, with the identical names, and is not a split package
- pkgbase is completely useless and meaningless for this PKGBULD
- has unsatisfiable optdepends=('octopi-notifier-qt5' 'octopi-notifier-frameworks')
- these can both be built from the same sources as octpoi; but as noted above, neither are built
- at least one of these should be built for parabola
- they are apparently mutually exclusive; so if they both are needed, 'octpoi' should be made into a split package again
- builds from an arbitrary git commit, rather than the versioned release tag
- when this is done, the package name should end with -git
- parabola PKGBUILDs should use versioned releases, for every upstream which has versioned releases
- provides 'octopi' (although nothing else does) and conflicts with 'octopi' (which is only itself)
- its not clear what this was intended to accomplish; but the arch packaging guidelines prohibit it explicitly
- it also provides 'octopi-repoeditor' and 'octopi-cachecleaner', which no other parabola or AUR package requires
- there once were separate packages for 'octopi-cachecleaner', and 'octopi-repoeditor' - that was over two years ago - those package names are meaningless to parabola now
- the AUR maintainer added i686 to the arch=() array - the diff could be minimized by adjusting it
- the AUR PKGBUILD:
- the parabola PKGBUILD:
there are several thing about the list of contributors, which bother me - i may write to the mailing list for discussion about that instead; because they apply to all PKGBUILD genrally
Updated by bill-auger almost 2 years ago
- Priority changed from wish to freedom issue
- Status changed from open to confirmed
- Tracker changed from Housekeeping to Freedom Issue
from the README:
You'll need to install pacaur, pikaur, trizen, or yay in your system.
If neither of the previous tools are found Octopi will download latest "yay-bin" github binary.
from the FAQs:
Octopi supports pacaur, pikaur, trizen and yay out of the box!
whenever you click on the green alien icon on the toolbar,
the program will ask if you want to install an AUR helper, which by default will be yay-bin
yep, it does that too
before that, it firstly downloads a 'yay' binary to ~.config/octopi/, in order to bootstrap the creation of the 'yay-bin' package
Downloading temporary "yay-bin"... Temporary "yay-bin" downloaded.
escalating to 'freedom-issue'