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

Cool Apps for New Packagers


#1

So here is a cool app called TreeSheets someone may want to package for Void. Post your ideas.


Distribution of the Year
(Masato the Empty) #2

Seems interesting at first glance.

developed on github.
ZLIB license (free, permissive, nonviral).
needs wxWidgets; author has some suggestions about how that should be built. Hopefully not a build-killer. Otherwise build instructions seem straightforward.

No release versions, so would need a decision to override current policy (no -git revisions last I read) if it were to go into Void. On the other hand, nothing preventing us from passing around xbps build templates.

@nixit Have you built it yourself in Void / are you using it? Does it resemble any other applications you know of?


(Masato the Empty) #3

required version of wsWidgets is 3.1 (feb 2016) but we’ve got 3.0.
According to wxWidgets github release page, 3.1 is considered devel branch, with a few ABI changes that are incompatible with 3.0 branch.

So it depends on what those changes are, and if treesheets uses any affected interfaces.


#4

First spreadsheet, mind mapper that does not use Java… Holy **** I am all in! It does not seem to be heavily developed, but for once, I actually like that. It also seems that it still has a long road to even get close to other solutions, but it has potential. True that it has no real release build… One could ask the developer to create one or we could use a specific time or (commit) to build it…

Anyhow, many thanks nixit!!


(Masato the Empty) #5

Well, build is successful even with our 3.0 version of wxWidgets.
(CXXFLAGS="-fPIE -pie" make)
The resulting binary makes use of support files relative to the location of the executable. I’m trying to figure out the best way to package that. (I think a method I’ve seen is to put those things in usr/lib, and then make a script (just run /usr/lib/treesheets/treesheets $@) for /usr/bin…

Haven’t played with the program to confirm functionality.


(Masato the Empty) #6

So I started off by trying to fit everything into FHS, but it made for an over-long do_install, with no real reason other than an obsessive-compulsive need to fit it into our unixy directory structure.

So I canned that idea and just let it all sit in /usr/lib/treesheets, with just a couple of things copied out elsewhere. The thing is written more like a portable application (in fact, as long as you keep the structure intact, you can run it from any location).

@nixit, @ferviron - try this on for size. again, I haven’t played with it much yet.

srcpkgs/treesheets/template

# Template file for 'treesheets'
pkgname=treesheets
version=git20161120
revision=1
_gituser=aardappel
_gitrev=7baabf3
_binname=treesheets
build_style=gnu-makefile
hostmakedepends="${makedepends}"
makedepends="wxWidgets-devel"
short_desc="Open Source Free Form Data Organizer"
maintainer="local <root@localhost>"
license="ZLIB"
homepage="http://strlen.com/treesheets/"
distfiles="https://github.com/${_gituser}/${pkgname}/tarball/${_gitrev}"
checksum=ddfbed86ad1ca5c8559ddb1fcf9b34f6f07bed309752244e1a9272dd5e937332
wrksrc="${_gituser}-${pkgname}-${_gitrev}"

do_extract() {
	tar -x --no-same-permissions --no-same-owner -f ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_gitrev} -C "$XBPS_BUILDDIR"
	if [ $? -ne 0 ]; then
		msg_error "extracting ${_gitrev} into $XBPS_BUILDDIR.\n"
	fi
}

do_build() {
	cd $wrksrc/src
	CXXFLAGS="-fPIE -pie" make
}

do_install() {
	sed \
		-e "s|%PKGNAME%|${pkgname}|" \
		-e "s|%EXENAME%|${_binname}|" \
		${FILESDIR}/treesheets.sh.in > ${wrksrc}/treesheets.sh
	vbin ${wrksrc}/treesheets.sh treesheets
	vlicense ${wrksrc}/ZLIB_LICENSE.txt
	vmkdir usr/lib/${pkgname} 755
	vcopy ${wrksrc}/TS/docs usr/lib/${pkgname}
	vinstall ${wrksrc}/TS/readme.html 644 usr/lib/${pkgname}
	vcopy ${wrksrc}/TS/examples usr/lib/${pkgname}
	vcopy ${wrksrc}/TS/images usr/lib/${pkgname}
	vinstall ${wrksrc}/TS/treesheets 755 usr/lib/${pkgname}
	vinstall ${wrksrc}/TS/treesheets.desktop 644 usr/share/applications
	vinstall ${wrksrc}/TS/images/icon32.png 644 usr/share/pixmaps treesheets.png
	vinstall ${wrksrc}/TS/images/icon16.png 644 usr/share/pixmaps treesheets-16x16.png
	vdoc ${wrksrc}/TODO.txt
}

srcpkgs/treesheets/files/treesheets.sh.in

#!/bin/sh
exec /usr/lib/%PKGNAME%/%EXENAME% "$@"

#7

No but you’re on the way, it appears. Don’t forget musl builds.

I used TreeSheets in other distros. I just wanted to start a thread for crowd-sourcing cool but obscure apps for Void. One or two forum people seemed interested in making packages.

PS The more portable the better.


(Masato the Empty) #8

well, the template is for any arch. I built it with no code patching on x86_64 glibc. won’t really know until somebody else uses the template for other arch/libc, but being a pretty small program with only wxWidgets needed on top of standard libc, there’s a good chance it’ll build just fine elsewhere. As long as it doesn’t do something that musl disallowed, should be fine.

There was a thread a short time back regarding the idea of a “VUR”. A lot of people were against that. It’s probably too much for the core to worry about (it’s under the Void name, so they’ll still be expected to police it, lack of QC can damage Void’s rep) Gets messy (Arch is still illegally distributing binary flash as of last week).

But I think a new forum category for template exchange would be kind of cool. It’s also a good way for people on different versions of Void to work with each other, where one only tests it on his own system, and lets others try building/using it on theirs. More distributed/collaborative.


(Masato the Empty) #9

So I’ve been using it, and it seems to work as intended.

I’m currently organizing a project I’ve had ongoing; notes used to be spread across several disparate files, and I recently started consolidating things into one document. But this is much better than a flat file layout.

And while setting up a document takes a bit of thought the first time around, once you get going, it gets easier quite quickly (take a few minutes before your first project to go through the tutorial example; it really pays off).

This is the first time I’ve used any program like this, and for this type of purpose, and I think I like it. So thanks @nixit!

Note that some keyboard/mouse shortcuts might conflict with your Window Manager, in which case you’ll need to decide whether to turn them off in your WM, or live without them in the program.


#10

I’m glad you like TreeSheets. And I’m glad you built it successfully. Here in this thread I was hoping for links to other apps too, with terse comments.

My proposal is to get newbie packagers making pull requests on GitHub and ultimately maintaining packages. I appreciate DIY templates but official packages are best. Submit templates on GitHub.

We can use forums to help each other debug and polish templates before submission but an official package should be the goal. I would view the forums as a “prefilter” to the final PR.

Any other cool apps out there? Perhaps clpbar and similar helpers. I nominate ddrescue-gui for sure.


(Masato the Empty) #11

Other applications…
Well, I’ve got some that I’ve built templates for in the last few months, but haven’t decided to do PRs for various reasons (they might need cleanup, may not be of interest to enough Voiders, I’m somewhat self-conscious about the quality of my “work”).

They’re mainly things I wanted in order to make myself feel at home in this (new-to-me) distro. Last I checked, none were yet in Void.

  • GNS3/dynamips - I’ve also done the extra python deps that are not in Void. I’ve not done all the packages, just the ones I use (dynamips, client, server)
  • Quodlibet - Gstreamer-based media player, but I use it for its mutagen-based tagging frontend * exfalso. PyGTK. All deps are in Void.
  • black-box - my favorite version of that logic game (from linux-games.com). SDL.
  • ssvnc - Tunneling ssl/ssh VNC viewer from Karl Runge (x11vnc author) Beats doing manual ssh tunnels/port forwards.
  • kodi-pvr-hts - TVHeadend plugin for Kodi. This one’s sort of a pain to build; because it needs parts of the Kodi source tree and Void doesn’t package them in a kodi-devel package, you have to download the entire kodi source release as part of the build process.

I’d abandon that last one if we had another HTSP-capable frontend in Void (or mythTV, which I was more familiar with. I don’t feel like trying to build/package that beast; GNS3 is the biggest thing I’ve tackled so far, and that’s just made of a few smaller pieces).

They’re all in my void-packages fork; if anyone is interested in any of those, I’ll link to them here (I figure this post is already advertisey enough, so I won’t try to sell if nobody is buying).

And if anybody has a version of your own for any of these, I’d love to compare notes.


#12

List of github devs modding void-packages.

Crowd-sourced software recommendations at Alternative To.


#13

One application that looks very cool is Smuxi.

I’ve been using Irssi for years, but Smuxi, based on Irssi, seems better:

  • Smuxi can be detached. Start a server, and connect to it from any computer, anywhere
  • Can also handle Twitter, Facebook Chat, Google Talk, Jabber / XMPP, Campfire and SignalR’s JabbR natively

#14

The Tor Browser Bundle is patched firefox-esr. The latter is in Void. I think TBB has reproducible builds. I think the “bundle” branding means a stand-alone tor executable runs itself with the browser. Like firefox-esr, tor is already in Void. So much Void boilerplate exists for TBB.

Anything recommended by EFF is good.


Web Browsers Respecting Privacy
#15

One of the few wikis without a database requirement is PmWiki in PHP. This category is sometimes called “flat file” or “NoSQL” though I think PmWiki can work with SQL if you want.

Previous forum threads: text editors, file renamers.


(Masato the Empty) #16

Of course, there are also reasons to keep TBB as a portable app totally separate from your running system (like a cheaper and easily-destructble USB stick). It just depends on whether you’re trying to bypass firewalls/spies and hide current activity, or also leave no trace of past activity.


#17

TBB needs an operating system and a very secure one could be built from Void if TBB were in the repos.

Another pkg idea: anything-sync-daemon. Void already has profile-sync-daemon so again, boilerplate exists.


#18

2016 Members Choice Awards at LinuxQuestions


#19

Another very cool application IMO is subuser

Subuser turns a docker container into a normal program. But this program is not fully privileged. It can only access the directory from which it was called, not my entire home dir. Each subuser is assigned a specific set of permissions, just like in Android. You can see an example permissions.json file below:

{
“description” : “A web browser.”
,“maintainer” : “Timothy Hobbs <timothyhobbs (at) seznam dot cz>”
,“executable” : “/usr/bin/firefox”
,“user-dirs” : [ “Downloads”]
,“gui” : {“clipboard”:true,“cursors”:true,“border-color”:“red”}
,“sound-card” : true
,“allow-network-access” : true
}


#20

The TLDR man pages are useful to everyone (h/t Distrowatch).