Category Archives: Crux ports

Some Crux ports for console clocks

My real-life commitments are more intense in summer, and so I have to apologize for the blank spot over the past couple of days. It’s not that I didn’t have anything to say, but that I didn’t have much time to myself in the first place, and couldn’t spend it typing or tweaking.

For today, I have wanted to tack up a couple more Crux ports, mostly for the console clocks that I have mentioned in recent history. If you’re not a Crux user you probably won’t find these interesting; if you’re an Arch user you might find them useful as starting points for PKGBUILDS, if they don’t already exist in AUR.

(If Pkgfiles look like primitive PKGBUILDs, that would be because in a way, they are. It’s one of the nice things about Crux: As Arch has matured PKGBUILDs have become a teeny bit more complex, whereas Crux ports are still quite simple.)

Without further delay, binclock

# Description: Displays system time in binary format.
# URL: http://www.ngolde.de/binclock.html
# Depends on: 

name=binclock
version=1.5
release=1
source=(http://www.ngolde.de/download/$name-$version.tar.gz)
build () 
{ 
    cd $name-$version
    install -d m644 $PKG/usr/man/man1/
    install -d m644 $PKG/usr/share/binclock/
    install -d m644 $PKG/etc/
    install -d m644 $PKG/usr/bin
    make PREFIX=/usr 
    make PREFIX=$PKG/usr DESTDIR=$PKG MANPATH=$PKG/usr/man/man1 CONF=$PKG/etc/ INSPATH=$PKG/usr/bin HOME=$PKG/usr/share/binclock install
}

And vtclock

# Description: 	A text-mode full-screen digital clock
# URL:		http://webonastick.com/vtclock
# Depends on:	ncurses

name=vtclock
version=2005-02-20
release=1
source=(http://webonastick.com/$name/$name-$version.tar.gz)

build() {
	cd $name
	sed -i s:/usr/local:/usr:g Makefile
	mkdir $PKG/usr/bin/ -p
	make PREFIX=/usr
	make DESTDIR=$PKG install
}

And finally ticker, which scott kindly mentioned in the wake of my note on vtclock.

# Description:	Generates vertical stock ticker style output on the console.
# URL: 		http://www.fial.com/~scott/ticker
# Depends on:	

name=ticker
version=1.0
release=1
source=(http://www.fial.com/~scott/ticker/ticker-1.0.tar.gz)
build () 
{ 
    cd $SRC/$name-$version
    make
    make DESTDIR=$PKG install
}

Ticker is fun because it does things a little differently than the run-of-the-mill console clock. With this you can stream the date and time — via the date command, or others — down the side of the screen, as opposed to planted in the center as most others do.

And ticker will allow you almost any input, so you can feed it the results of just about any command. It would be nice to be able to customize it a little more — pick a specific block character for readability, or maybe add some color — but as it is it’s unusual and fun to mess with. :)

A few more Crux ports

I have a few more ports that I think I should tack up here, rather than letting them collect dust in a folder somewhere in /usr/ports/local. As always, these are either home-grown or converted from AUR PKGBUILDs via Colin Zheng’s script. First up is the nameless network monitor from a few months ago.

# Description:	ncurses bandwidth monitor
# URL:		http://headhunter123.he.funpic.de/showtopic.php?forum=programme.for&index=1
# Maintainer:	headhunter at c-plusplus dot de
# Packager:	
# Depends on:	ncurses

name=net-monitor
version=1.0
release=1
source=(http://headhunter123.funpic.de/net.tar.gz)

build() {
	cd net
	make PREFIX=/usr
	mkdir -p $PKG/usr/bin/
	cp monitor $PKG/usr/bin/
}

Not much there, but it’s a straightforward little program. This is calcurse, which was a longtime favorite in this household.

# $Id: $
# Description: A text-based personal organizer
# URL: http://culot.org/calcurse/
# Maintainer: 
# Packager: 
# Depends on: ncurses

name=calcurse
version=2.7
release=1
source=(ftp://ftp2.culot.org/culot/$name-$version.tar.gz)

build () {
	cd $name-$version
	./configure --prefix=/usr \
		    --disable-nls

	make
	make prefix=$PKG/usr install

	chown -R root:root $PKG
}

A long time ago someone mentioned zile, and I dutifully compiled it, but it’s not to my liking. Either way it might be interesting to someone who needs a slimmed-down emacs.

# Description: 	Zile Is Lossy Emacs
# URL: 		http://zile.sf.net
# Maintainer: 
# Depends on:

name=zile
version=2.3.9
release=1
source=(http://ftp.gnu.org/gnu/$name/$name-$version.tar.gz)

build()
{
    cd $name-$version
    ./configure --prefix=/usr
    find -name Makefile | xargs -n1 sed -i 's|makeinfo|true|g'
    make
    make DESTDIR=$PKG install
}

I mentioned ncmatrix on the Software page but haven’t really shown it in action. That would be because it looks and behaves so much like cmatrix that it’s difficult to tell them apart sometimes. ;)

# Description:	NCMatrix is a modified version of the CMatrix screen saver with added network traffic monitoring.
# URL:		http://webpages.charter.net/tux/ncmatrix/index.htm
# Maintainer:
# Depends on:	ncurses

name=ncmatrix
version=1.0
release=1
source=(http://webpages.charter.net/tux/$name/$name-$version.zip)

build() {
	cd $name-$version
	./configure --prefix=/usr
	make 
	make DESTDIR=$PKG install
}

Here’s task, which is one of many command-line task organizers.

# Description: A command-line todo list manager
# URL: http://taskwarrior.org/projects/show/taskwarrior/
# Maintainer: 
# Depends on: gcc ncurses 

name=task
version=1.8.3
release=1
source=(http://www.taskwarrior.org/download/$name-$version.tar.gz)
build () 
{ 
    	cd $name-$version
	./configure --prefix=/usr
	make 
    	make DESTDIR=$PKG install
}

And this is microdc2, which I put together one day a long time ago. I don’t know anything about it or how it works or what good it is, which begs the question of why I bothered in the first place.

# Description: Command-line based Direct Connect client that uses the GNU Readline library for user interaction.
# URL: http://corsair626.no-ip.org/microdc
# Maintainer: 
# Depends on: libxml2 readline

name=microdc2
version=0.15.6
release=3
source=(http://corsair626.no-ip.org/$name/$name-$version.tar.gz 
	logfile_segfault.patch 
	libxml2-configure.patch)
build () 
{ 
	cd $name-$version
	patch -p1 -i ../logfile_segfault.patch
	patch -p1 -i ../libxml2-configure.patch
	./configure --prefix=/usr
	make 
	make DESTDIR=$PKG install
	rm -rf $PKG/usr/share/locale
}

I think that’s about it for now; that will at least allow me to trim away some of the bulk in that folder. ;)

An assortment of Crux ports

This is another one of those posts that will only be of use to Crux users, or to me in a few months, if I find myself looking for a port for one of these programs. Most of these, as usual, were stolen rather shamelessly from AUR or from the Arch repositories, and converted in part through Colin Zheng’s fantastic PKGBUILD2Pkgfile script, and with a little nudging from me. No fair laughing at the results.

Here’s a port for bs, which I mentioned the other day among a group of console games.

# Description:  The classic game of Battleships against the computer. Ncurses.
# URL:          http://www.catb.org/~esr/bs/
# Maintainer:
# Depends on:   ncurses

name=bs
version=2.7
release=1
source=(http://www.catb.org/~esr/$name/$name-$version.tar.gz)
build ()
{
        cd $name-$version
        make

        mkdir -p $PKG/usr/bin $PKG/usr/share/man/man6

        cp bs $PKG/usr/bin
        cp bs.6 $PKG/usr/share/man/man6/bs.6
}

And gnuchess, since it too was mentioned.

# Description:  Lets most modern computers play a full game of chess
# URL:          http://www.gnu.org/software/chess/chess.html
# Maintainer:
# Depends on:   glibc ncurses readline

name=gnuchess
version=5.07
release=1
source=(ftp://ftp.gnu.org/pub/gnu/chess/$name-$version.tar.gz

http://repos.archlinux.org/wsvn/packages/$name/repos/extra-i686/$name-gcc4.patch


http://repos.archlinux.org/wsvn/packages/$name/repos/extra-i686/$name-glibc210.patch)

build ()
{
    cd $name-$version
    patch -Np1 -i $SRC/gnuchess-gcc4.patch
    patch -Np0 -i $SRC/gnuchess-glibc210.patch
    ./configure --prefix=/usr --enable-ncurses
    make
    make DESTDIR=$PKG install
}

Come to think of it, I don’t know if including those patches in the source lines will work or not; I had downloaded them manually before I included them in the Pkgfile. I’m still ironing out a way to wget patches and other stuff from the Arch repos. Accessing them via the Web site is actually showing an HTML page, so if your patches don’t quite work right, download them manually and move them into the gnuchess port folder. Sorry. :(

I also mentioned alsaequal a long time ago, but I don’t think I ever made a “backup” of the ports I used to build it. Alsaequal wants ladspa and caps; ladspa is in the contrib repo I believe, but this is for caps.

# Description: C* Audio Plugin Suite
# URL:         http://www.quitte.de/dsp/caps.html
# Maintainer:
# Depends on:  ladspa

name=caps
version=0.4.4
release=1
source=(http://www.quitte.de/dsp/${name}_${version}.tar.gz)

build() {
    cd $name-$version
    make
    make DEST=$PKG/usr/lib/ladspa install
    chmod 755 $PKG/usr/lib/ladspa/*.so
    make RDFDEST=$PKG/usr/share/ladspa/rdf rdf-install
}

I think that one came from the vico ports originally, but I updated it to the current-at-the-time-of-writing version. ;) And here is Alsaequal proper.

# Description: A real-time adjustable equalizer plugin for ALSA sound server.
# URL: http://www.thedigitalmachine.net/alsaequal.html
# Maintainer:
# Depends on: glibc ladspa caps

name=alsaequal
version=0.4
release=1
source=(http://www.thedigitalmachine.net/tools/$name-$version.tar.bz2

http://aur.archlinux.org/packages/$name/$name/$name.patch)

build ()
{
    cd $name
    mkdir -p $PKG/usr/lib/alsa-lib/
    patch < ../alsaequal.patch
    make
    make DESTDIR=$PKG install
}

That time the patch download should work; it’s only from the Arch repos that I have trouble directly downloading the plain, unadulterated patch. AUR works fine.

As a final group, I mentioned abcde a long time ago as a console CD ripper. Other people have since mentioned crip, but to be honest, I find myself gravitating toward the former. No real reason; I just happen to like it. This one needs a lot of help though, and I’ll post the port for abcde first so you can see what you’re getting into.

# Description: A frontend command-line utility that grabs tracks off a CD, encodes them to ogg or mp3 format, and tags them
# URL: 		http://code.google.com/p/abcde
# Maintainer:
# Depends on: 	bash cd-discid wget cdparanoia cdrkit lame vorbis-tools vorbisgain flac id3 id3v2

name=abcde
version=2.4.0
release=2
source=(ftp://ftp.archlinux.org/other/$name/$name-$version.tar.bz2
        ftp://ftp.archlinux.org/other/$name/fix-mp3-tagging.patch)
build ()
{
    cd $name-$version
    patch -Np0 -i $SRC/fix-mp3-tagging.patch
    sed -e "s:normalize-audio:normalize:g" -i $name
    sed -e "s:/usr/bin/less:/bin/less:g" -i $name
    install -Dm 0755 $name $PKG/usr/bin/$name
    install -Dm 0755 cddb-tool $PKG/usr/bin/cddb-tool
    install -Dm 0644 cddb-tool.1 $PKG/usr/share/man/man1/cddb-tool.1
    install -Dm 0644 $name.1 $PKG/usr/share/man/man1/$name.1
    install -Dm 0644 $name.conf $PKG/etc/$name.conf
}

Many of those dependencies are available from within the Crux repos; the ones that are “orphans” are here. First, cd-discid.

# Description: cd-discid is a backend utility to get CDDB discid information from a CD-ROM disc.
# URL: http://lly.org/~rcw/cd-discid/
# Maintainer:
# Depends on: glibc

name=cd-discid
version=0.9
release=1
source=(http://lly.org/~rcw/$name/${name}_${version}.orig.tar.gz)
build ()
{
    cd $name-$version
    make
    make DESTDIR=$PKG install
}

As well as id3 and id3v2.

# Description:  Utility to edit id3v1 and id3v2 tags
# URL:          http://home.wanadoo.nl/squell/id3.html
# Maintainer:
# Depends on:   gcc

name=id3
version=0.78
release=1
source=(http://home.wanadoo.nl/squell/files/$name-$version.tar.gz
        id3-0.78-gcc44.patch)
build ()
{
    cd $name-$version
    patch -Np1 -i $SRC/id3-0.78-gcc44.patch
    make
    make prefix=$PKG/usr mandir=$PKG/usr/share/man install
    install -Dm644 COPYING $PKG/usr/share/licenses/$name/LICENSE
}
# Description:  Utility to edit id3v2 tags
# URL:          http://id3v2.sourceforge.net/
# Maintainer:
# Depends on:   gcc glibc id3lib zlib

name=id3v2
version=0.1.11
release=1
source=(http://downloads.sourceforge.net/sourceforge/$name/$name-$version.tar.gz)
build ()
{
    cd $name-$version
    make clean
    make
    install -Dm 0755 $name $PKG/usr/bin/$name
    install -D -m644 id3v2.1 $PKG/usr/share/man/man1/id3v2.1
}

Unless I am mistaken, the remainder should be filled out by the Crux repos, whether it’s contrib or opt. If I omitted something, let me know. And for those who mentioned crip or perhaps prefer it, there is a port here but I don’t vouch for it. Enjoy.

Crux ports for conky-cli, fe, hoz, net-monitor and tnote

I am trimming out my local ports folder, and I want a place to dump a few extraneous ones. I’ve mentioned most of these over the past few months, and some of them are very useful. Others are just for backup purposes, or were scalped-slash-updated from elsewhere.If you’re a Crux user, this might be somewhat interesting to you. If not … sorry.

Here’s conky-cli.

# Description: Conky command line, without X11 dependencies
# URL: http://conky.sourceforge.net/
# Maintainer: 
# Depends on: 

name=conky-cli
version=1.7.2
release=1
source=(http://downloads.sourceforge.net/conky/conky-$version.tar.gz)
build () 
{ 
    cd conky-$version;
    touch ./data/conky_no_x11.conf
    ./configure --prefix=/usr \
		--sysconfdir=/etc \
		--disable-lua \
		--disable-double-buffer \
		--disable-x11 \
		--disable-xdamage \
		--disable-own-window \
		--disable-xft \
		--disable-hddtemp \
		--disable-portmon
    make 
    make DESTDIR=$PKG install
    install -D -m644 COPYING $PKG/usr/share/licenses/conky/LICENSE
}

And fe, the folding editor I mentioned alongside dehtml and so forth.

# Description:	Fe is a small and easy to use folding editor.
# URL:		http://www.moria.de/~michael/fe/
# Maintainer:
# Packager:
# Depends on:

name=fe
version=1.8
release=1
source=(http://www.moria.de/~michael/$name/$name-$version.tar.gz)

build() {
	cd $name-$version
	./configure --prefix=$PKG/usr --disable-nls --disable-sendmail
	make DESTDIR=$PKG install
	rm -rf $PKG/usr/share/locale
}

This is hoz, the file splitter.

# Description: HOZ is a file splitter. Its file format is the same as the one used by the 'Hacha' software
# URL: http://hoz.sourceforge.net/
# Maintainer: 
# Depends on:  

name=hoz
version=1.65
release=2
source=(http://downloads.sourceforge.net/$name/$name-165.tar.gz)
build () 
{ 
    LANGUAGE='EN'
    cd $name-165
    mkdir -p $PKG/usr/bin
    make LANG=-DHOZ_LANG_${LANGUAGE} BIN=$PKG/usr/bin/$name cli
}

I don’t know what to call this one — the mysterious network monitor. So I called it both the name of the tarball and the name of the executable: net-monitor, version 1.0.

# Description:	ncurses bandwidth monitor
# URL:		http://headhunter123.he.funpic.de/showtopic.php?forum=programme.for&index=1
# Maintainer:	headhunter at c-plusplus dot de
# Packager:	
# Depends on:	ncurses

name=net-monitor
version=1.0
release=1
source=(http://headhunter123.funpic.de/net.tar.gz)

build() {
	cd net
	make PREFIX=/usr
	mkdir -p $PKG/usr/bin/
	cp monitor $PKG/usr/bin/
}

If you remember tnote, this is the port I used to build it in Crux.

# Description:	A small note taking program for the terminal.
# URL:		http://sourceforge.net/projects/tnote/files/
# Maintainer:
# Packager:
# Depends on:	python

name=tnote
version=0.1.1
release=1
source=(http://downloads.sourceforge.net/project/$name/$name/$name-$version/$name-$version.tar.gz)

build() {
	cd $name-$version
	python setup.py install --home=$PKG/usr
}

I think that’s enough for now. This is a bit of a non-post, but it is the kind of thing this blog was intended for. :)

A Crux port for Musca, and a correction

I have (yet another) correction to report. A few days ago I offered a port for e3 but refused to share my port for Musca, because I regularly recompile Musca to adjust the commands and settings.

Fact is though, after a brief skim through a few wiki pages (not least of which the Arch wiki — still the best resource around for information on anything), I realize that I was wrong — there is a configuration file, at .musca_startup, and it’s much easier to use that than to recompile the thing over and over again.

Of course. :roll:

So in the way of an apology, here is the exceedingly brief configuration file I use, which adjusts the keystroke to spawn the terminal and the dmenu command to use the Terminus font.

bind on Mod4+t exec urxvtc
bind on Mod4+Control+Shift+Return exec sudo /sbin/halt
set dmenu dmenu -i -b -fa 'terminus-10'

The middle binding is a little something I add for my own amusement: a keystroke to bring everything to a halt. It’s just quicker than closing out whatever programs I’m running, closing Musca, waiting for X to halt, then typing in the command to shutdown. Call me lazy.

And since I failed to provide at the last opportunity …

# Description:	A simple dynamic window manager for X.
# URL:		http://aerosuidae.net/musca
# Maintainer:
# Depends on:	xorg

name=musca
version=0.9.23
release=1
source=(http://aerosuidae.net/$name-$version.tgz)

build() {
	cd $name-$version
	make DESTDIR=$PKG
	install -Dm755 musca $PKG/usr/bin/$name
	install -Dm644 musca.1 $PKG/usr/share/man/man1/musca.1
}

Of course, the important parts were stolen from the AUR version. Call me lazy. Again. :|

A Crux port for e3, and some ideas

Crux users are few, and the number of Crux users relying on featherlight software to keep Pentium machines alive is even fewer. There might be one or two out there now or in the future though, so here’s a port and a couple of suggestions for you.

Here’s e3, which I mentioned takes up a massive 2.5Kb while running.

# Description:	An ultralight text editor with multiple keybindings.
# URL:		http://mitglied.lycos.de/albkleine/
# Maintainer:
# Depends on:	

name=e3
version=2.7.1
release=1
source=(http://mitglied.lycos.de/albkleine/$name-$version.tar.gz)

build() {
	cd $name-$version
	make DESTDIR=$PKG/usr/bin/
 	mkdir -p $PKG/usr/bin/

	install e3	$PKG/usr/bin
	install e3em	$PKG/usr/bin
	install e3ne	$PKG/usr/bin
	install e3pi	$PKG/usr/bin
	install e3vi	$PKG/usr/bin
	install e3ws	$PKG/usr/bin
}

That’s not a very elegant way to do the actual “installing,” but it was the easiest for me to follow, mentally. Please remember you’re working with a programming clod here. :oops:

For mingetty, I brazenly stole from jaeger’s ports collection, and if you want to use mingetty I recommend you do the same.

I have a tendency to rip off the ports other people compose — partly because I like to customize them slightly, but also because I don’t like syncing an entire collection of ports just to use one small piece of software. And while mingetty isn’t that great an improvement over agetty, it’s worth keeping around.

I also have a port for Musca, but I’m not going to share it. The problem is that for Musca, I have a tendency to manually build and install it, rather than rely on a port. Musca’s keybindings and configuration are done at the source code level, which means if you want to change a keystroke, or the command for dmenu, or even just the colors of the selection box, you end up editing the source code anyway.

There is a note to this effect on the Crux wiki, and a possible workaround for editing source code before compiling it. I don’t know if it’s worth the extra effort of learning to work with pkgmk-resume, if all you want to do is change the color box in Musca though. :roll:

A Crux port for tty-clock

Another little something that I use a lot, but tend to install manually, is xorg62‘s original version of tty-clock. Since yesterday’s port for Charm required quite a bit more work, a quick sweep past tty-clock was easy. The only problem here is that tty-clock isn’t really released, but can be downloaded as a tar.gz from github.

But there’s an issue with the name. The tarball is created with a hash code as part of the name, and rather than install git to install a tiny console clock, I downloaded the source code, repacked it with a 0.0 version number and uploaded it elsewhere. Now the name of the folder it decompresses to is no longer an obstacle.

# Description:	An analog clock in ncurses.
# URL:		http://github.com/xorg62/tty-clock
# Maintainer:	K.Mandla, k dot mandla at gmail dot com
# Depends on:	ncurses

name=tty-clock
version=0.0
release=1
source=(http://omploader.org/vMjVrag/$name-$version.tar.gz)

build() {
	cd $name-$version
	make DESTDIR=$PKG/usr
	install -D $name $PKG/usr/bin/$name
}

Perhaps if tty-clock hits a proper release point, I’ll adjust this to point to it.

I made a point of mentioning that this is for the original version of tty-clock, because someone has already forked it. From what I can tell, it appears that version can function as a screen lock, and has some additional features like shifting the clock around with the cursor keys, or presetting the x and y coordinates. Perhaps the two will merge at some point, and those features will be available for both.

P.S.: Yes, I know there’s a PKGBUILD for this in AUR, but again, that one uses git, which I was trying to avoid.