Home | News | Download | Packages | Forum | Wiki | Github

"User-contrib" repo/wiki: Is there one? Should there be?

(Lon Willett) #1

In my limited time working with Void, I’ve already collected a good few self-made packages that are potentially useful for others, but not really appropriate for inclusion in the main distribution.

The reasons why they aren’t appropriate include:

  • Limited audience
  • Lack of importance
  • No desire to maintain
  • Dodgy upstream source
  • Still more of a WIP than a completed package

But these packages could still be useful for others, either as-is, or as a base for an improved package.

The problem is that I’m not aware of an appropriate forum for sharing them. Is there one that I’ve missed? Should one be created? I haven’t really given much thought as to exactly how it should work (git repo(s)? wiki?), but it does seem to me that it would be nice to have some standard place to share this sort of thing. Maybe just a page on the wiki (expanding to multiple pages when needed), with a list of short descriptions and links to appropriate github branches.

Some examples of the sort of packages that I’m talking about:

  • bbk_cli – This is just a repackaging of the binary-only .deb CLI for BredbandsKollen’s internet speed test service (in Sweden). I have been moving house and travelling lately, and have done an inordinate amount of network testing, so this was handy for me. But it definitely has a limited audience, and I’m not really interested in maintaining it, and its proprietary nature makes it a poor candidate for general release.

  • rtl8812au-dkms – I needed to (temporarily) connect my desktop wirelessly, and it turned out that the USB WiFi dongle I got didn’t have a driver in the kernel yet. But there are various drivers out there. After spending some time googling and browsing, I ended up with this. The source from RealTek is GPL, but their distribution of it is a mess (many different versions, completely disorganised). The original source is just a FTP tarball (user name and password required, although made public). I found a nice git repository that took this, and added a few devices and dkms support. So I packaged it up. But I don’t want to maintain it (I’m not even using the dongle any more), and I imagine it violates a good many of the rules for inclusion in the standard Void repositories. But if someone else ends up with such a device, they may find this handy.

  • opencpn – I intend to put together a(some) package(s) for OpenCPN. I made a usable basic package, and then progress stalled because I’ve had to do other things. So as it stands, it’s more of a WIP than a ready-to-release package. But it is useful, even in its current state. And perhaps someone else will want to fix it up before I get back to it.

  • gandi-cli – Packaging of Gandi.net CLI interface to their service. Actually, maybe I’ll submit this one; I noticed that the Scaleway CLI made it into the repos. But it does have a rather limited audience.

  • etc.

What do others think? Do we need something more? If so, how should it work?

(oliver) #2

I had similar thoughts a while back


jcjordyn made a VUR POC helper script here, but it doesn’t seem to have caught on yet.

I would suggest another (sneaky) approach by making Void new package pull requests.
You see, the pull requests are stored on Git Hub and fully searchable, including the rejected and closed pull requests. The relevant commits are still visible even if the submitter later deletes their fork for the submission. This means you can search and find the templates and also see any discussion as to why they were rejected, and then use that template and any accompanying files either as it is or as a base for an improved version.
So submit the packages - if they are accepted, fine, and if they are not accepted, or get kicked out later for being unmaintained, then well, it’s in the Git Hub closed pull request VUR!
This is unofficial advice from me but it is merely using the available tools and procedures as advised… :smirk:

(Michael Aldridge) #4

This is explicitly and aggressively unsupported.

The bar is so low to get packages into the real repositories that if your package can’t stumble across it, it probably needs substantial work to be usable anyway.

And I can assure you that however obscure you think your templates are, I have some far more obscure ones in the package tree.

EDIT: If you want to read a wall of text where I sort of ramble through an explanation of this, check out this post: Store user submitted templates on the wiki?


can I see those obscure ones? :3

(Michael Aldridge) #6

you could just git grep my maintainer field value, but I think the packages supporting the ax25 stack are pretty obscure as a reference point.

(oliver) #7

What’s the thought on almost obsolete(?) programs like npapi-sdk (which I needed to compile icedtea-web 1.7)? Worth submitting?


Agree 100% with your wall of text, but thought something else.

This idea of a user contrib playground keeps popping up. Oviously, Void needs better outreach to make users more comfortable doing PRs. Otherwise they would not keep asking this same question. You’ll know outreach succeeds when this question stops.

I don’t know what outreach might be, but it need not be technical, just signposts and tips perhaps.

I would correct one detail. Void PR bar is low only if you don’t count musl patching. Outreach should include advice related to that.

(Jacob Moen) #9

I made a package for libtcod, but I am probably not going to contribute it because I still haven’t figured out how to separate it properly into main and devel.
I am likely to not do that, because I made the package just for myself.
Still, it could be useful as a starting point for someone else, though.
I guess we just post it here in the forum.
A recipe category, maybe? :slight_smile:

(Michael Aldridge) #10

@oliver As long as its a stable, tagged release feel free to submit it. We have plenty of long obsolete software in the repos that fills specific niches.

@nixit What did you have in mind?

@jacmoe As mentioned in the wall of text, the templates being wildly distributed outside the package system make up a shitty VUR. We have no desire to support or enable this and so no category will be available to store them in. As far as splitting main and devel, the subpackage example in Manual.md works for 99% of packages.


The AUR is part of the official Arch distro, managed and maintained by Arch dev’s. It’s also the method by which users submit packages as popular ones are then placed in the binary repos. As Void allows users to submit packages directly to the binary repos an AUR style VUR is pointless. If you have a working template then the best way to check it remains valid is to run it through the build server, so then if it fails it won’t be a user that is inconvenienced. Perhaps there are malware scans that are done quietly (at a guess) to ensure users safety. :oncoming_police_car: Unlike Arch, Void clearly has no lack of CPU power or storage space to prevent the expansion of it’s binary repos.
But I think what people are requesting here is more a venue for template development, where they can post strange or incomplete templates on an informal basis. How can collaborative development happen if they are not allowed to publicly share and discuss their work? While expert users might write a template and submit a pull request in a few minutes, also think about enthusiastic school kids, patiently studying xbps for months and proudly offering their semi functional templates. :smile: Less competent users sometimes go on to become more accomplished and would then be able to help out more, you never know what people might become in future. The only real disadvantage I can think of is if it then discouraged people from submitting their templates properly, providing it was clearly signposted as a ‘Testing - user beware’ feature. But I suppose if the Void team then felt some moral obligation to closely monitor and test everything it would place an extra workload on them so that would explain the reluctance. How far is this ‘templates must be submitted and only submitted’ going to extend though? Many respectable upstream software developers provide debs and rpm’s, are you saying they should never provide an xbps-src template of their own accord as well? What is the point of using the BSD license if you don’t want to provide your software under those terms? :confused:
Don’t get me wrong though, I like binary packages, it’s quicker then building them, but sometimes if you have to build things and have problems then any help is welcome.
A shortcut to finding out what goes in a dev package is to look at the file lists for the equivalent dev packages in some of the distros that split packages in much the same way, like Suse and Debian, although clearly apply a little consideration to this, but it should provide a helpful reference to check against I think. :cherries:

(Jacob Moen) #12

I posted my template in the forum when I ran into problems, and the amazing community helped me get to the other side.
One of the reasons why I am loving the Void distribution so much: community!

(Michael Aldridge) #13

@hralgmir I had a difficult time reading the wall of text, maybe somethings wrong with the formatting when you submitted it?

My stance is that the forum is a place for threaded messages and discussion. If you want to do development, there’s a tool for that and its called github. It also has threaded messaging but it also has more specialized features to make sure that comments that are tied to specific lines expire among other things.

Ultimately people can do dev wherever they want, but as far as resources that Void provides we are a little more picky since they are limited by the resources we have (the forum already occupies a massive server on its own).

As an aside, the disk and CPU space we have available is actually really small, we just do some neat things with it to make it appear bigger.

(Jacob Moen) #14

That’s the Discourse (and Ruby) way: to make it work, just throw more resources at it. :slight_smile:


Sorry, I copied and pasted it from Mousepad, it looks normal here but perhaps it wrapped to my screen width somehow. I did read yours (and the linked article) on the other threads in return. :grinning: So, if there was a VUR it should be on Github? Like jcjordyn120 's one, although acknowledging all those pull requests could be a lot to ask of any one person if it did get popular. Using existing features in new ways, how about this suggestion : Users submit templates as they do at present. A new repo is created on the Void GitHub account, which is hosted by GitHub and should be free for a project like this - but probably better to OK this with GitHub help and support first. Then templates which are deemed more or less OK but not suitable for the binary repos - like unwanted extra browsers, no support for this or that, git pulls, weird stuff - can be put in this VUR, rejects, caveat emptor, junk yard repo or whatever it should be called. Also users would then be allowed to submit templates that don’t meet the existing package standards stating their intention to have the template placed in this new non binary template category. Then the moderators can decide for themselves where it should go, as sometimes they might want to use it anyway, as the guidelines state exceptions might be made. This would encourage more templates to be submitted but (hopefully) not interfere with the current workflow.

(Michael Aldridge) #16

I think you may have missed my point so I’ll be quite blunt. There is no VUR, there will be no supported VUR, and users that continue to push for a VUR may find that they make their way into the /ignore filters of particular maintainers (indeed more aggressive strategies may be employed depending on how much time such a side project wastes). Keeping Void running as is is already enough, I have no desire to waste my time helping people with broken systems full of shitty packages that don’t pass even a basic quality check; my hat is off to the people who do this with Arch, I do not have such patience for fixing such bad software practices.

I think I’ve repeated this until I’m blue in the face but I’ll say it here again: we do not condone, support, or enable user repositories similar to an AUR model. If you want that, go use Arch, but Void will never have such a “feature”.

(francesc) #17

Maldrige for president !!!

Now, on a serious note, I couldn’t agree more with you. Void is OK the way it is.


It was only a suggestion, and after what you had said, and knowing that many packages like browsers are being refused entry to the repo on the grounds they take up too many resources, it was just a possible solution that might keep everyone happy here. But I don’t want to personally set up a VUR and maintain it so I can understand why you don’t want to either.
In fact there are few things that are missing from the repos I use and I’ve no trouble installing them. The main question I have is if XBPS templates are provided by software providers, is that also forbidden. XBPS is not limited to Void and is available as a package in other distros and could potentially be used elsewhere, and from the XBPS license:
Redistribution and use in source and binary forms, with or without modification, are permitted …
Upstream providers might want to help their users by adding an xbps template to their source repo, in Void and perhaps elsewhere. The template format is BSD licensed, it is clear that this should be allowed from my understanding. But when you say users cannot create templates and post them publicly online here (which is your venue, so I guess is your decision) - or anywhere else - without incurring your great displeasure, well I’m sure you can see why I am confused.

(Jacob Moen) #19

Wall of text … have you heard of paragraphs and whitespace? :wink:
Whitespace does not cost anything.
Not using whitespace incurs an unnecessary cost for all who reads it.

Please do not complicate things for yourself.

If you, like me, need a package that is not in the Void repositories, and write it yourself (like me), then feel free to create a pull request on Github, i.e. use the proper channel, or not.

Otherwise, don’t be confused. There is nothing to be confused about. :slight_smile:


I was writing an app that might be useful in Void and was going to write a template for it to be helpful, but now I find I could be banned for doing so. :disappointed: