jnrowe-misc - Gentoo overlay

Important

As of 2014-06-26, the jnrowe-misc repository is shuttered. The environments where I use Gentoo have vanished, and I don’t expect any to arise in the near future. [1]

I plan on maintaining the packages in this overlay for as long as people report bugs, but won’t promise speedy bug resolution.

What this repository really needs is a new maintainer, so if you’re a user it is time to step up!

jnrowe-misc is for packages that don’t naturally fit in to one of my other themed overlays. You’ll find a large selection of Python packages, some tools to make working with git more fun and various other things I can’t live without.

If you find any problems with an ebuild in this overlay either file an issue or drop me an email.

Warning

This repository uses thin manifests, which requires a moderately recent version of portage to function correctly(2.1.10.18 or newer). Using older versions is not supported!

This documentation reflects the overlay state as of 2017-04-19.

Contents

Installation

oilman integration

If you use oilman to manage your repositories you can call:

# oilman --add-repository jnrowe::misc

Or, if you’d rather use the rsync mirror:

# oilman --method=rsync --add-repository jnrowe::misc

To sync the repository:

# oilman --sync jnrowe::misc  # Sync this repository only
# oilman --sync all  # or sync all repositories

layman integration

If you use layman to sync your repositories you can easily add this repository to the supported list.

If you’re using layman v1.2.4 or newer, then the support/layman2.xml should be added to the overlays section of /etc/layman/layman.conf, for example:

overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml
            https://github.com/JNRowe/jnrowe-misc/raw/master/support/layman2.xml

If you’re using layman v1.2.3 or earlier, then support/layman.xml should be added to the overlays section of /etc/layman/layman.conf, for example:

overlays  : http://www.gentoo.org/proj/en/overlays/layman-global.txt
            https://github.com/JNRowe/jnrowe-misc/raw/master/support/layman.xml

Then you can add the overlay using layman:

# layman -a jnrowe-misc

Note

You may need to run layman --fetch or perform a sync operation before this command will work.

To sync the repository you can use layman directly, either syncing just this overlay or all your overlays at once:

# layman -s jnrowe-misc  # Sync just jnrowe-misc
# layman -S  # or sync all layman managed overlays

Or if you’re an eix user you can use eix-sync to update the repositories and the eix database at the same time, first tell eix-sync to update the repository:

# echo "jnrowe-misc" >>/etc/eix-sync.conf  # Sync just jnrowe-misc
# echo "*" >>/etc/eix-sync.conf  # or sync all layman managed overlays

Finally, call eix-sync to update the specified repositories and the eix package database.

Manual installation

To manually manage this overlay just clone the git repository to a location accessible by portage, and edit /etc/portage/make.conf‘s PORTDIR_OVERLAY setting. See the make.conf(5) manual page for details.

Packages

app-admin

  • Creates symlinks from one directory hierarchy to another(like stow)
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 0.8 amd64, x86

app-misc

  • Simple time tracking with git backend
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Enjoy the mysteries of the sea from the safety of your own terminal
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 1.1 amd64, x86
  • Simple client for GitHub issues
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • 0.17.5 ~amd64 (due 2017-05-05), ~x86 (due 2017-06-18)
  • Convert JSON to a UNIX-friendly line-based format
  • Licence: public-domain
  • Status: maintained
  • Versions:
  • Grep GnuPG-encrypted YAML password safe
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • A tool to log and analyse your exercise regime
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • Simple time tracking for simple people
  • Licence: GPL-3
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.13.1 ~amd64 (due 2017-05-05), ~x86 (due 2017-06-18)
  • Sometimes you need a repl
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Tool for calculating sunrise and sunset, and sleeping until such an event
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • Utilities to record and replay a terminal program session
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • 1.2 amd64, x86
  • TuDu is a comand line interface to manage hierarchical todos.
  • Licence: GPL-3+
  • Status: deprecated, see GitHub #751
  • Versions:
  • Create an ASCII animation that simulates the weather
  • Licence: GPL-2
  • Status: maintained
  • Versions:

app-mobilephone

  • Accessing Huawei modems in Python, including SMS and data calls.
  • Licence: BSD
  • Status: maintained
  • Versions:

app-text

  • Convert HTML to reStructuredText
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Spreadsheet directive for docutils and Sphinx.
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Sphinx extension to convert ANSI colour sequences to coloured HTML output.
  • Licence: BSD-2
  • Status: maintained
  • Versions:
  • 0.6 amd64, x86
  • dev-python/sphinx extension to create charts using the Google API
  • Licence: BSD-2
  • Status: deprecated, see GitHub #751
  • Versions:

dev-lang

  • A programmer friendly language that compiles to Lua
  • Licence: MIT
  • Status: maintained
  • Versions:
  • A compiled programming language with syntax and semantics similar to Python
  • Licence: GPL-2+
  • Status: deprecated, see GitHub #751
  • Versions:

dev-lua

  • Lua bindings to getopt_long
  • Licence: MIT
  • Status: maintained
  • Versions:
  • A Lua binding for the Linux inotify library
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.2 amd64, x86

dev-perl

  • ASCII sprite animation framework
  • Licence: Artistic
  • Status: maintained
  • Versions:
  • 2.6 amd64, x86
  • Extension for retrieving weather information from wunderground.com
  • Licence: Artistic
  • Status: maintained
  • Versions:

dev-python

  • Modern, Pythonic unit testing
  • Licence: BSD-2
  • Status: maintained
  • Versions:
  • A local static PyPI repository builder
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 1.0 amd64, x86
  • A small utility to benchmark your Python code
  • Licence: public-domain
  • Status: deprecated, see GitHub #751
  • Versions:
  • Funky sass-a-like CSS preprocessor
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 0.1 amd64, x86
  • Makes creating apps as simple as defining callbacks to handle options
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Creates files and directories from templates
  • Licence: BSD-2
  • Status: maintained
  • Versions:
  • An astonishingly awesome application argument helper
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Calculations for the position of the sun and moon
  • Licence: Apache-2.0
  • Status: deprecated, see GitHub #751
  • Versions:
  • A simple Python package for easily generating Atom feeds
  • Licence: EPL-1.0
  • Status: maintained
  • Versions:
  • Bash-style pipelining syntax for Python generators
  • Licence: public-domain
  • Status: maintained
  • Versions:
  • A nice sphinx theme named ‘Cloud’, and some related extensions
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 1.6 amd64, x86
  • Formats docstrings to follow PEP 257
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • Tools to run doctests on code and text files within a directory
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Add options to doctest examples while they are running
  • Licence: MIT
  • Status: maintained
  • Versions:
  • 0.1 amd64, x86
  • Expecter Gadget, a better expectation (assertion) library
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Makes your terminal output totally fabulous
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Colourful TAB completion for Python prompt
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 0.4 amd64, x86
  • Wrapper for the Universal Feed Parser which caches the results
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Clone of the Cucumber BDD framework for Python
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • Automatic generation of zsh completion functions
  • Licence: BSD
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.5 amd64, x86
  • OO representation of GPX and conversion utilities between GPX, KML and OVL
  • Licence: GPL-2
  • Status: maintained
  • Versions:
  • A module to manipulate color information easily
  • Licence: Apache-2.0
  • Status: maintained
  • Versions:
  • simple, elegant HTML/XHTML generation
  • Licence: BSD
  • Status: maintained
  • Versions:
  • A simple way to transform a HTML file or URL to structured data
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Provides an interactive console for doctests
  • Licence: LGPL-2.1
  • Status: deprecated, see GitHub #751
  • Versions:
  • 1.2 amd64, x86
  • Cucumber-ish BDD for python
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • Declarative dictionary-based model classes for Python
  • Licence: Unlicense
  • Status: maintained
  • Versions:
  • Convert any Python module to a doctest ready doc string
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Machine parsable output plugin for nose
  • Licence: PSF-2.4
  • Status: maintained
  • Versions:
  • Add additional directories to sys.path for nose
  • Licence: Apache-2.0
  • Status: maintained
  • Versions:
  • Nose plugin to show progress bar and tracebacks during tests
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • 1.4 amd64, x86
  • A plugin to run nosetests more interactively
  • Licence: LGPL-2.1
  • Status: maintained
  • Versions:
  • An enhanced drop-in replacement for pdb
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Python docstring style checker
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Check PEP-8 naming conventions, plugin for flake8
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Extensions for the nose testing framework
  • Licence: MIT
  • Status: maintained
  • Versions:
  • 0.1 amd64, x86
  • The smartest command line arguments parser in the world
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Password generation and security checking
  • Licence: MIT
  • Status: maintained
  • Versions:
  • 0.4 amd64, x86
  • A Scss compiler for Python
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • A Cucumber-like BDD framework built on top of Pyhistorian
  • Licence: MIT
  • Status: maintained
  • Versions:
  • 0.2 amd64, x86
  • Access the web service of del.icio.us via it’s API through python
  • Licence: BSD
  • Status: maintained
  • Versions:
  • A BDD tool for writing specs using Given-When-Then template
  • Licence: MIT
  • Status: maintained
  • Versions:
  • A module for working with 10- and 13-digit ISBNs
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • A library for building flexible Python command line interfaces
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Generate placeholder data
  • Licence: BSD
  • Status: maintained
  • Versions:
  • A super easy console highlighter. Text goes in, colour comes out
  • Licence: MIT
  • Status: maintained
  • Versions:
  • A script to help you with authoring reStructuredText
  • Licence: GPL-3
  • Status: maintained
  • Versions:
  • 0.4 amd64, x86
  • Structured Data for Humans
  • Licence: BSD
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.5 amd64, x86
  • A human-readable alternative to Python’s dir()
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Doctest/UnitTest for shell
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Should assertions in Python as clear and readable as possible
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Painless Debugging and Inspection for Python
  • Licence: MIT
  • Status: maintained
  • Versions:
  • nose/pytest output colourising plugin
  • Licence: MIT
  • Status: maintained
  • Versions:
  • A Given/When/Then BDD stories parser
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Simple Python plugin loader inspired by twisted.plugin
  • Licence: MIT
  • Status: maintained
  • Versions:
  • Declarative terminal tool programming
  • Licence: MIT
  • Status: maintained
  • Versions:
  • 1.0 amd64, x86
  • Python Port of John Gruber’s titlecase.pl
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • Modules for working with points on Earth
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • Tools for detecting and expanding shortened URLs
  • Licence: BSD-2
  • Status: maintained
  • Versions:
  • Easy access to PyPI download stats
  • Licence: GPL-2+
  • Status: deprecated, see GitHub #751
  • Versions:
  • A tool to programmatically control windows inside X
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 0.1 amd64, x86
  • Parses a shell session, test the commands compare the output
  • Licence: GPL-3
  • Status: maintained
  • Versions:
  • Simple copy and paste in Python
  • Licence: MIT
  • Status: maintained
  • Versions:

dev-tcltk

  • Create UDP sockets in Tcl
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:

dev-util

  • Minimalistic Python build tool inspired by Rake
  • Licence: GPL-3
  • Status: maintained
  • Versions:
  • Utility to manage ccache and distcc
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • Produces metrics for C, C++, Javascript, and Python programs
  • Licence: MIT
  • Status: maintained
  • Versions:

dev-vcs

  • Annotates RCS files in a style similar to CVS’s annotate command
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • A helper tool for git that mimics mercurial’s serve command
  • Licence: GPL-2
  • Status: maintained
  • Versions:
  • Retrieve statistics and generate reports from source code repositories
  • Licence: GPL-3+
  • Status: maintained
  • Versions:

games-action

  • A rewrite of the engine used in the game Flashback
  • Licence: GPL-3+
  • Status: maintained
  • Versions:

games-puzzle

  • Brain teaser game/trainer to have fun and keep your brain trained
  • Licence: GPL-2+
  • Status: deprecated, see GitHub #751
  • Versions:

mail-filter

  • maildir processor using Python as its configuration language
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • maildir processor using Python as its configuration language
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • Quick Spam Filter, with support for multiple databases
  • Licence: Artistic-2
  • Status: maintained
  • Versions:

media-gfx

  • Render/convert graphs in/from various formats
  • Licence: GPL-2
  • Status: deprecated, see GitHub #751
  • Versions:
  • Graph::Easy output as Scalable Vector Graphics (SVG)
  • Licence: GPL-2
  • Status: maintained
  • Versions:
  • ASCII art figures parsed and output as SVG, PNG, and more
  • Licence: BSD
  • Status: maintained
  • Versions:
  • Generate activity-diagram image file from spec-text file
  • Licence: Apache-2.0
  • Status: deprecated, see GitHub #751
  • Versions:
  • Gruffy is Python implementation of Gruff(Ruby Graphing Library)
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.3.3 ~amd64 (due 2017-06-04), ~x86 (due 2017-05-01)
  • Generate network-diagram images from spec-text file
  • Licence: Apache-2.0
  • Status: deprecated, see GitHub #751
  • Versions:
  • Generate sequence-diagram image files from spec-text files
  • Licence: Apache-2.0
  • Status: deprecated, see GitHub #751
  • Versions:
  • dev-python/sphinx extension to support media-gfx/aafigure
  • Licence: BOLA
  • Status: maintained
  • Versions:
  • Sphinx extension to support media-gfx/gruffy graphs
  • Licence: BSD
  • Status: maintained
  • Versions:
  • 0.1.1 ~amd64 (due 2017-06-04), ~x86 (due 2017-06-18)
  • Sphinx extension to include mscgen’s sequence charts
  • Licence: BOLA
  • Status: maintained
  • Versions:
  • 0.4 amd64, x86

media-sound

  • A simple command-line based RSS enclosure downloader
  • Licence: GPL-2+ LGPL-2.1+
  • Status: maintained
  • Versions:
  • A hook daemon for mpd, it polls mpd and runs hooks on events
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 0.3 amd64, x86

media-tv

  • Search, index, record and stream BBC’s iplayer content
  • Licence: GPL-3
  • Status: deprecated, see GitHub #751
  • Versions:

net-dns

  • Small DNS server that spoofs blacklisted addresses
  • Licence: MIT
  • Status: deprecated, see GitHub #751
  • Versions:

net-mail

  • Generate statistics from mbox and maildir folders
  • Licence: GPL-2
  • Status: maintained
  • Versions:
  • 3.1 amd64, x86

net-misc

  • Nasty little twitter client
  • Licence: GPL-3+ doc? ( public-domain )
  • Status: maintained
  • Versions:
  • 0.8.0 ~amd64 (due 2017-07-16), ~x86 (due 2017-06-18)

sci-geosciences

  • A utility that generates continuous GPS data for running tests
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • GPXViewer GPS trace viewer
  • Licence: GPL-3+
  • Status: deprecated, see GitHub #751
  • Versions:
  • 0.4.3-r1 ~amd64 (due 2017-06-04), ~x86 (due 2017-04-21)

sci-visualization

  • Another Python SVG Chart Generator that uses CSS smartly
  • Licence: BSD GPL-2
  • Status: maintained
  • Versions:
  • Cairo-based graph plotting module
  • Licence: LGPL-2.1+
  • Status: maintained
  • Versions:
  • 1.1 amd64, x86
  • A library for making charts with Python
  • Licence: LGPL-3+
  • Status: maintained
  • Versions:

sys-apps

  • Read-only compressed file-system emulation
  • Licence: GPL-2+
  • Status: maintained
  • Versions:

virtual

  • python-importlib - no upstream
  • A virtual for the Python argparse module
  • Licence: no source
  • Status: maintained
  • Versions:
  • 0 amd64, x86

www-apps

  • A static weblog compiler, using maildirs and reST
  • Licence: MIT
  • Status: maintained
  • Versions:

www-client

  • A tool to check for updates on web pages
  • Licence: GPL-3+
  • Status: maintained
  • Versions:
  • Interactive shell for issuing HTTP commands to a REST API
  • Licence: MIT
  • Status: maintained
  • Versions:

x11-misc

  • Watches the X selection and displays context sensitive actions
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 1.2 amd64, x86
  • winmatch - no upstream
  • A simple window matching utility, like devilspie
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 0.5 amd64, x86
  • WM agnostic tool to perform window tiling
  • Licence: LGPL-3+
  • Status: maintained
  • Versions:
  • Wrapper to make XOrg function as a proper systemd unit
  • Licence: GPL-2
  • Status: maintained
  • Versions:
  • 4 amd64, x86
  • A simple content sensitive command launcher
  • Licence: GPL-2+
  • Status: maintained
  • Versions:
  • 0.7 amd64, x86

Dead packages

This page lists packages that have been removed from this overlay for various reasons. You can use it to find pointers to their new locations for moved packages, or perhaps to find the last available ebuild if they were simply culled.

Warning

This document is almost entirely generated using git show. If an entry doesn’t make sense take a look at the referenced commit for the full context.

app-admin

stow
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:6a24dd9c
Removal date:2011-09-13

app-misc

libeatmydata
Now available upstream. The upgrade path is very messy, and the package will be maintained in ::shadow for the foreseeable future.
Reason:Moved to ::shadow
Commit:a95b3182
Removal date:2012-10-16

app-text

gist
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:3bdea61f
Removal date:2011-09-13

sphinxcontrib-issuetracker

sphinxcontrib-issuetracker now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:8a2dc994
Removal date:2012-04-07

app-vim

rails
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:274adfb0
Removal date:2011-09-13
snipmate
Available in the main tree.
Reason:Moved to ::shadow
Commit:9073e7c0
Removal date:2011-09-13

dev-lua

luainotify
No longer used at our site.
Reason:Culled
Commit:6d283863
Removal date:2013-01-03

luaposix

luaposix now packaged upstream.

Upgrade path is bad. The ebuild will exist in ::shadow for the foreseeable future.

Reason:Moved to ::shadow
Commit:f1c1ff22
Removal date:2017-03-08
luasocket
Available in the main tree.
Reason:Moved to ::shadow
Commit:e6cbe716
Removal date:2009-09-29

dev-haskell

configfile
Only used by hpodder, which has been removed.
Reason:Culled
Commit:9f861263
Removal date:2010-09-24
hpodder
Haskell support was too brittle to keep this, and castget is a reasonable replacement.
Reason:Culled
Commit:ecf3e688
Removal date:2010-09-24
missingh
Only used by hpodder, which has been removed.
Reason:Culled
Commit:fbe106cc
Removal date:2010-09-24

dev-perl

Net-Twitter-Lite
No longer used at our site.
Reason:Culled
Commit:fd868494
Removal date:2012-04-14

dev-python

argh

An ebuild is now available upstream, unfortunately the upgrade path is currently unusable as it uses the bundled version of six.

It will be maintained there until a usable upgrade path is available, including matching keywords.

Reason:Moved to ::shadow
Commit:b28c2424
Removal date:2012-10-06
async
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:7ef5cf4b
Removal date:2011-09-13
behave
Package has been dead here for some time, with all RDEPs long since dropped. No custom upgrade path is required.
Reason:Available upstream
Commit:a8855a4b
Removal date:2015-05-23
blessings
Now available upstream. This package will be maintained in ::shadow until visibility is matched and upstream’s dependencies are fixed.
Reason:Moved to ::shadow
Commit:c66b472b
Removal date:2015-05-23
bpython
Its line editing support is quite weak, and it provides little benefit over the standard python interpreter. The level of maintenance needed was higher than the benefit it gave.
Reason:Culled
Commit:36cf5f2e
Removal date:2009-08-12
cleancss
It didn’t support enough CSS syntax to be usable for our needs.
Reason:Culled
Commit:38a03c83
Removal date:2010-09-21
clevercss2
The implementation was not suitable for our needs
Reason:Culled
Commit:89dffdfd
Removal date:2010-09-21
colorama
An ebuild is now available upstream. It isn’t a drop in replacement, so this will be maintained in ::shadow for the foreseeable future.
Reason:Moved to ::shadow
Commit:d2f0a364
Removal date:2013-02-18
Issues:GitHub #750
cov-core

An ebuild is now available upstream. Unfortunately it can’t be used as it has incorrect dependencies, invalid Python configuration and broken subprocess support.

It will be maintained there until a usable upgrade path is available, including matching keywords.

Reason:Moved to ::shadow
Commit:ccb15265
Removal date:2012-12-03

dexml

dexml now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:b4dce3d5
Removal date:2016-04-06
dulwich
Available in the main tree.
Reason:Moved to ::shadow
Commit:d7b758ee
Removal date:2010-01-05
feedgenerator

feedgenerator now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:f8628c6
Removal date:2012-07-20
Issues:GitHub #639
flake8
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:593791d2
Removal date:2013-10-23
Issues:GitHub #814
funcparserlib
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:0050e9ef
Removal date:2013-10-23
Issues:GitHub #815

fuzzywuzzy

fuzzywuzzy now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:872df022
Removal date:2017-03-08
gevent
This was only required by requests, which has been removed.
Reason:Culled
Commit:8373189c
Removal date:2012-01-16
gistapi
Masked for removal because the dependencies in new releases aren’t supported on our deploy systems.
Reason:Culled
Commit:df715ff0
Removal date:2011-05-10
gitdb
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:1bdc71fe
Removal date:2011-09-13
github2

github2 now packaged upstream.

Upgrade path is ugly. No Python 3 support in Gentoo’s httplib2, no built docs, no 2.4 or 2.5 support. Will be supported for the foreseeable future.

Reason:Moved to ::shadow
Commit:fc7d12f8
Removal date:2012-02-26
Issues:GitHub #551
git-python
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:3384cfe9
Removal date:2011-09-13
httpretty
Package has been dead here for some time, with all RDEPs long since dropped. No upgrade path is required.
Reason:Available upstream
Commit:c833f279
Removal date:2014-02-23
Issues:GitHub #837
importlib
Python 2.6 has been removed upstream, so this package is no longer required.
Reason:Culled
Commit:5b79084f
Removal date:2014-07-08
isodate

Now packaged upstream.

Upgrade path isn’t very clean, and this package will be supported for the foreseeable future.

Reason:Moved to ::shadow
Commit:d639d9f5
Removal date:2012-05-30
Issues:GitHub #613

kitchen

kitchen now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:b55f9811
Removal date:2017-03-08
logbook
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:bd89ae1b
Removal date:2012-01-16
mccabe
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:948f5c6c
Removal date:2013-10-23
Issues:GitHub #816
misaka
Package has been dead here for some time, with all RDEPs long since dropped. No upgrade path is required.
Reason:Available upstream
Commit:69e3fc67
Removal date:2014-02-23
Issues:GitHub #838
multiprocessing
Python 2.5 has been removed upstream, so this package is no longer required.
Reason:Culled
Commit:eaee27c9
Removal date:2013-09-06

nose2

nose2 now packaged upstream.

Upgrade path is clean. The ebuild will exist in ::shadow until a version with matching keywords is available upstream.

Reason:Moved to ::shadow
Commit:5799e1e4
Removal date:2016-04-06

nose2-cov

Recent nose2 versions bundle the coverage plugin.
Reason:Culled
Commit:92640fb7
Removal date:2016-04-06
parse
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:d37eff57
Removal date:2014-11-03
Issues:GitHub #847
pep8
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:7b637d57
Removal date:2011-09-13
pgmagick
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:b22f767f
Removal date:2013-10-23
Issues:GitHub #817
poster
This was only needed by requests, which has been removed.
Reason:Culled
Commit:0195603d
Removal date:2012-01-16
prettytable
An ebuild is now available upstream.
Reason:Culled
Commit:57e69871
Removal date:2012-12-03
pycallgraph
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:e7c0f93e
Removal date:2014-11-03
Issues:GitHub #848
pycparser

pycparser now packaged upstream.

Upgrade path isn’t clean. The ebuild will exist in ::shadow for the foreseeable future.

Reason:Moved to ::shadow
Commit:b27b6de2
Removal date:2012-07-31
Issues:GitHub #643
python-gnupg
Alternatives exist, maintenance costs higher than benefit.
Reason:Culled
Commit:c350e281
Removal date:2010-12-05
python-osmgpsmap
The shadowed ebuild will exist until upstream’s osm-gps-map has matching visibility, and all dependencies are updated to use it.
Reason:Moved to ::shadow
Commit:313b903a
Removal date:2013-04-24
rednose
Doesn’t work correctly with doctests, alternatives exist.
Reason:Culled
Commit:343993fe
Removal date:2010-10-21
requests

New releases bundle libraries, which makes supporting this package quite laborious and prone to error. Releases at the time of removal were not very stable.

See mleighy if you need help porting packages with dependencies on requests to alternatives.

Reason:Culled
Commit:050c16c7
Removal date:2012-01-16
restview
Buggy in places, and upstream is unfortunately on launchpad. rstctl provides similar functionality.
Reason:Culled
Commit:9271790e
Removal date:2011-02-28
rudolf
Significantly increased nose run time, and broke reporting for other plugins we commonly used.
Reason:Culled
Commit:646671c0
Removal date:2010-10-21
scripttest
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:088ab46a
Removal date:2011-09-13
six

Now packaged upstream.

This will remain in ::shadow until upstream has an ebuild available with equal keywords

Reason:Moved to ::shadow
Commit:dafa80f2
Removal date:2012-05-31
Issues:GitHub #614
socksipy
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:f02b5f49
Removal date:2013-10-23
Issues:GitHub #818
sphinx-to-github
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:740ada6b
Removal date:2011-09-13
sphinxcontrib-cheeseshop
Now available upstream. The upgrade path is decidedly messy, and the package will be maintained in ::shadow for the foreseeable future.
Reason:

Moved to ::shadow

Commit:
commit:
Removal date:

2015-03-06

sphinxcontrib-httpdomain
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:56ea0e11
Removal date:2013-06-11
sure
Package has been dead here for some time, with all RDEPs long since dropped. No upgrade path is required.
Reason:Available upstream
Commit:966db0f4
Removal date:2014-02-23
Issues:GitHub #839
termcolor
An ebuild is now available upstream. It isn’t a drop in replacement as it has incorrect PYTHON_COMPAT values and is missing documentation, so this will be maintained in ::shadow for the foreseeable future.
Reason:Moved to ::shadow
Commit:350f353
Removal date:2013-03-06
Issues:{issue.title} (#{issue.id})
termstyle
Unfortunately no longer packaged in a standard manner, and plenty of alternatives exist.
Reason:Culled
Commit:06e15f17
Removal date:2010-12-04
texttable
The shadowed ebuild will exist until upstream’s has matching visibility at the very least.
Reason:Moved to ::shadow
Commit:82edcb9e
Removal date:2014-11-03
Issues:GitHub #849
tox

Available in the main tree.

This will remain in ::shadow until upstream has an ebuild available with equal keywords.

Reason:Moved to ::shadow
Commit:b65bcbc0
Removal date:2012-03-05
tweepy

An ebuild is now available upstream. Unfortunately it can’t be used as it bundles dependencies.

It will be maintained there until a usable upgrade path is available, including matching keywords.

Reason:Moved to ::shadow
Commit:f961a594
Removal date:2012-12-03
twython
The latest release, 1.4.6, has unsupported dependencies and as such is unusable on our systems. Alternatives include tweepy, which is available in this overlay.
Reason:Culled
Commit:090e1c3c
Removal data:2012-03-02
virtualenv5
No longer needed by tox.
Reason:Culled
Commit:fe12bc3b
Removal date:2011-06-28
virtualenvwrapper

An ebuild is now available upstream, unfortunately the upgrade path is incredibly messy. Upstream’s ebuild installs to invalid paths, has incorrect python dependencies and doesn’t include documentation.

This package was already masked for removal in 5b1273c, but the breakage introduced now means it is moving to ::shadow immediately. It will be maintained there until a usable upgrade path is available.

Reason:Moved to ::shadow
Commit:409c46c3
Removal date:2012-03-20
webcolors
Now available upstream. This package will be maintained in ::shadow until visibility is matched and upstream’s dependencies are fixed.
Reason:Moved to ::shadow
Commit:681391b2
Removal date:2015-09-16

dev-util

be
The release we were using is incompatible with the then current codebase. The newer code was far slower and a little too unstable for everyday use. Alternatives to Bugs Everywhere such as ditz exist.
Reason:Culled
Commit:b24e7c8e
Removal date:2010-04-04

cram

cram now packaged upstream.

Upgrade path is clean-ish. The ebuild will exist in ::shadow for the foreseeable future.

Reason:Moved to ::shadow
Commit:ede45a23
Removal date:2017-03-08
ditz
The versions of Ruby that ditz works with no longer exist in the upstream tree.
Reason:Culled
Commit:d5f7c95d
Removal date:2015-09-16
fossil

There is now a version in the tree, although the ebuilds will still exist in ::fixes until an upstream ebuild has equivalent keywords. The upgrade isn’t exactly seamless, but shouldn’t cause significant problems.

Note the version numbers in the in-tree versions, if you’re authoring ebuilds with dependencies on fossil

Reason:Moved to ::shadow
Commit:1954746e
Removal date:2010-01-26
hg-git
Available in the main tree.
Reason:Moved to ::shadow
Commit:e4f47fae
Removal date:2009-12-08
wingide

The upstream packaging was a shocking mess. Both versions supported by the ebuilds contain bundled releases of Python and GTK+ with easily exploitable security vulnerabilities, and only the GTK+ problems are easily worked around.

After some months, nobody stepped up to maintain the ebuilds beyond one-off bugfixes.

Reason:Culled
Commit:52a983f5
Removal date:2010-02-27

dev-vcs

gitflow

Upgrade path is quite messy: upstream uses invalid paths, has missing zsh completion and requires a package move.

This will be maintained in ::shadow for the foreseeable future.

Reason:Available upstream
Commit:ab070046
Removal date:2014-03-25
Issues:GitHub #845
git-sync
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:a49d852e
Removal date:2011-09-13
hub
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:2b66e43f
Removal date:2011-09-13

games-puzzle

sgt-puzzles
This exists in ::shadow until an upstream ebuild has equivalent keywords.
Reason:Moved to ::shadow
Commit:36eb5d09
Removal date:2010-01-08

mail-client

notmuch
There is now an upstream ebuild for notmuch, and the local version will be removed at some point. The upgrade path is incredibly ugly and some features are not supported, so this situation may last sometime.
Reason:Moved to ::shadow
Commit:66e7659e
Removal date:2011-12-13
notmuch-gtk
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:fe7077bc
Removal date:2011-09-13

media-gfx

blockdiag

blockdiag now packaged upstream.

Upgrade path is bad. The ebuild will exist in ::shadow for the foreseeable future.

Reason:Moved to ::shadow
Commit:75f1a534
Removal date:2017-03-08

sphinxcontrib-blockdiag

blockdiag now packaged upstream.

Upgrade path is bad. The ebuild will exist in ::shadow for the foreseeable future.

Reason:Moved to ::shadow
Commit:d9214cc3
Removal date:2017-03-08
psplash
Supported alternatives exist, including busybox‘s fbsplash and plymouth.
Reason:Culled
Commit:39fc52f8
Removal date:2011-02-26
Issues:GitHub #141
sng
Made obsolete by upng, which is available from the AST ::graphics overlay.
Reason:Culled
Commit:c88cb29d
Removal date:2012-03-30
sxiv
Package now exists upstream.
Reason:Culled
Commit:523c0450
Removal date:2011-08-27
Issues:GitHub #457

media-sound

mpdcron

Maintenance is passing to mleighy‘s group.

Releases still maintained in jnrowe-misc.

Reason:Moved to ::live
Commit:6ab396d7
Removal date:2011-09-13

media-tv

ontv
Upstream is dropping dependencies, and the effort required to keep this package is excessive given that this overlay is moribund.
Reason:Culled
Commit:a8fcc941
Removal date:2014-11-11

net-irc

twirssi
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:9c9b2cf7
Removal date:2011-09-13

net-mail

rss2email

This one was a very, very, very long time coming...

This can’t be handled by just moving the current ebuild to ::fixes, as the upgrade path is fiercely ugly. The shadowed ebuild is expected to be around for quite some time still.

Reason:Moved to ::shadow
Commit:2f09d163
Removal date:2011-05-12

sci-geosciences

osm-gps-map
The shadowed ebuild will exist until upstream’s has matching visibility.
Reason:Moved to ::shadow
Commit:9c3cb374
Removal date:2013-04-24

sys-fs

fslint
An ebuild is now available upstream. It is a drop in replacement.
Reason:Culled
Commit:47db2ee8
Removal date:2013-03-29
Issues:{issue.title} (#{issue.id})
unionfs-fuse
There is now a version in the tree, and the ebuilds will still exist in ::fixes until a version has equivalent keywords. See the linked bug for some unfortunate details of the upgrade path.
Reason:Moved to ::shadow
Commit:61af9a27
Removal date:2010-01-20
Issues:AST#249971

virtual

python-multiprocessing
Python 2.5 has been removed upstream, so this package is no longer required.
Reason:Culled
Commit:eaee27c9
Removal date:2013-09-06
python-importlib
Python 2.6 has been removed upstream, so this package is no longer required.
Reason:Culled
Commit:1be0cab7
Removal date:2014-07-08

www-apps

rstblog
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:06351abd
Removal date:2011-09-13

www-client

github-cli
No longer used at our site.
Reason:Culled
Commit:9ab12d24
Removal date:2012-03-21
opera-remote
Doesn’t work correctly with recent Opera versions, and the built-in command line interface has improved greatly.
Reason:Culled
Commit:77683d8f
Removal date:2010-08-08
surfraw
This was causing problems with the kinesis resolver.
Reason:Moved to ::shadow
Commit:29d5b356
Removal date:2011-09-13

x11-libs

ghosd
No longer used at our site.
Reason:Culled
Commit:7181a803
Removal date:2013-01-03

x11-misc

notify-osd
This packages was found to be unsupportable, even to the level required while it was masked.
Reason:Moved to ::shadow
Commit:d8741f96
Removal date:2011-06-02

x11-plugins

obvious
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:a240cd77
Removal date:2011-09-13`
vicious
Users should have migrated to the new upstream ebuilds, but the upgrade path isn’t very clean so it is expected some ebuilds will remain in ::shadow for some time.
Reason:Moved to ::shadow
Commit:9072fe6a
Removal date:2011-06-16

x11-themes

notify-osd-icons
They’re definitely very pretty, but without notify-osd they provide little additional value.
Reason:Culled
Commit:0ccd124c
Removal date:2011-07-02

x11-wm

matwm2
Moved to ::fixes until a working version with equivalent keywords is available.
Reason:Moved to ::shadow
Commit:e36fcf7b
Removal date:2010-01-06
parti
An ebuild now exists upstream.
Reason:Moved to ::shadow
Commit:c3d01805
Removal date:2010-10-08
Issues:GitHub #6
subtle
It is unsupportable in its current state.
Reason:Culled
Commit:a6d131d3
Removal date:2010-03-04
wmfs
Maintenance is passing to mleighy‘s group.
Reason:Moved to ::live
Commit:a73b09d3
Removal date:2011-09-13

Contributors

I’d like to thank the following people who have contributed to this repository.

Patches

  • Leon Bird
  • Rachel Holmes
  • Matt Leighton
  • Bashshar Qaraja Maloof

Bug reports

  • Jake Archer
  • Daniel Brew
  • Dennis Bruce
  • Kristian Cole
  • Fabien Courtois
  • Stephen Cutts
  • Ed Lyle
  • anna ruda
  • Erin Sandusky
  • Shi Tang
  • Jesper Tremblay
  • Matthew Turner
  • Jens Wulf

Ideas

  • Jamie Ashton
  • Robert Kincade
  • Scott Hunter
  • Ryan Lewis
  • Tony McKenzie
  • Patrick Sauvé

If I’ve forgotten to include your name I wholeheartedly apologise. Just drop me an email and I’ll update the list!

Note

Some of these contributors pre-date the move to GitHub, but if you have access to the AST overlay you can see their contributions in its repository history.

Licence

The contents of this repository are licensed under the GPL v2.

Copyright © 2009-2017  James Rowe <jnrowe@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Download

You can download this project as a tarball. Or, you can clone the project with Git by running:

$ git clone git://github.com/JNRowe/jnrowe-misc.git

Maintenance tools

Makefile.py is used for many of the repetitive and maintenance-related tasks in this overlay. The custom code was chosen over make as the original Makefile was simply becoming too unwieldy, and as many of the support tools were already written in Python this trade felt like a good choice.

Repository level support

all

This task performs all building tasks for the repository. It is purely a wrapper that executes any taks whose name begins with gen-, and doesn’t need to be manually updated for new generators.

check

This task runs all the defined checks for the repository. It is simply a wrapper that executes any task whose name ends with -check, and doesn’t need to be manually updated for new checks.

clean

This task removes generated files, such as HTML generated from reST sources.

distclean

In addition to the files removed by the clean target this task also removes all the Manifest files in the repository.

eclass-doc-check

Check the syntax of eclass documentation using the awk script from app-portage/eclass-manpages.

task-doc-check

Check all tasks are documented here.

cupage support

gen-cupage-conf

This task recreates the support/cupage.conf file for this repository, see watch files.

cupage-check

This task checks that a watch file exists for every package in the repository, see watch files.

layman support

layman-check

This task performs a XML validation check on the layman support files.

Maintenance support tasks

gen-stable

This task creates a support/stabilisation.rem snippet to use a stabilisation reminder. It requires a full <category>/<package>-<version> string as its only argument. See the stabilisation.rem documentation.

keyword-check

This task is used to check whether packages have stable, or at least unstable, keywords available on amd64 and x86. These are the only supported archs in this repository, and packages should be available on both where possible.

Previously arm was also supported, but this is no longer the case as the packages that were most useful on arm have moved to another overlay.

open-bug

This task will open a bug in the GitHub repository’s issue tracker. It requires one argument, which will be used as the bug’s title. If you give a second argument it will be used for the bug’s body. A third argument, if given, will be used for the initial label for the bug.

The examples below should make the usage clear:

▶ ./Makefile.py open-bug 'new title'
▶ ./Makefile.py open-bug 'title' 'with extended body content'
▶ ./Makefile.py open-bug 'title' 'body' 'initial label'
▶ ./Makefile.py open-bug 'title' '' 'initial label'

It reads your GitHub authentication data using git config, see the setup help page on GitHub for more information.

Note

This task fetches the repository identifier from the remote.origin.url setting. See git-config(1).

bump-pkg

This task is a special case of the open-bug task whose sole purpose is to file bump requests with the minimum of fuss. It requires a full <category>/<package>-<version> string as its only argument.

It reads your GitHub authentication data using git config, see the setup help page on GitHub for more information.

Note

This task fetches the repository identifier from the remote.origin.url setting. See git-config(1).

portage support

gen-categories

This task recreates the overlay’s categories list in profiles/categories.

gen-manifests

This task will regenerate any missing, or stale, Manifest files in the repository.

Note

If you have a PORTAGE_GPG_KEY setting in /etc/portage/make.conf it will use that key to sign the created files. See make.conf(5) for more information on Manifest signing.

gen-news-sigs

This task is used regenerate any missing, or stale, signatures for news files. See the GLEP 42 documentation for more information.

This task requires you have PORTAGE_GPG_KEY set in /etc/portage/make.conf to function, see make.conf(5) for details.

gen-use-local-desc

This task generates the profiles/use.local.desc file using the USE flag information in each package’s metadata.xml definitions. See egencache(1) and the devmanual’s metadata.xml documentation for more information.

remind support

gen-removals

This task is used to generate removals.rem, see the package.mask documentation for more information.

reminders

This task is just a shortcut for using remind to display the currently active stabilisation and removal records.

reStructuredText support

gen-html

This task generates HTML from all files ending in .rst. It uses the equivalent of the rst2html.py command’s --strict flag, and will fail if any errors or warnings are issued.

gen-sphinx-html

This task rebuilds the documentation contained in doc/ using Sphinx.

gen-thanks

This task is used to create doc/thanks.rst from README.rst, its purpose is to remove the error-prone manual edits of both files when adding contributor information.

rst-check

This task parses all files ending in .rst for conformity. It uses the equivalent of the rst2html.py command’s --strict flag, and will fail if any errors or warnings are issued.

tasks.utils

This module is used to provide support functionality for use in other tasks. The few developer facing functions are described below.

newer(file1, file2) → Bool

This function returns True if file1 is newer than file2. It handles the case of file arguments that don’t yet exist.

dep(targets, sources[, mapping=False]) → function

dep is to be used for checking whether a target needs executing. If the target is up to date the task is not run.

If the mappings argument is True then rebuilds are only performed if a source is newer than a target when the arguments are paired. If False a rebuild is performed if any source is a newer than a target.

Parameters:
  • targets (list) – Targets to check against
  • sources (list) – Sources to check against
  • mapping (bool) – Whether targets map directly to sources
cmd_output(command)

A simple wrapper for check_output() that call commands and returns the result with any whitespace padding removed

Parameters:command (str) – Command to execute

cupage integration

cupage is used to keep packages in sync with their releases. cupage v0.5.4, or above, is required if you wish to make use of this functionality.

All packages in this repository must have an entry in cupage configuration file support/cupage.conf, and those entries are generated from the watch files in package directories.

watch file format

For packages hosted on one of the hosting sites supported by cupage a watch file can be very simple [1]. For example, the watch file for dev-python/aaargh contains only one line:

site = pypi

The above definition tells cupage to check for updates to the package named argh on PyPI.

For packages where the name differs between upstream and this repository for some reason you must specify the name in the watch file. From dev-python/pyscss:

[pyScss]
site = pypi

If the package you are adding is not in the list of supported sites then you’ll need to manually define the watch information. app-misc/weatherspect provides a useful example:

url = http://www.robobunny.com/projects/weatherspect/
select = td a
match_type = re
match = weatherspect_v[\d\.]+\.tar\.gz

This tells cupage to search the defined URL for a elements that are children of td in the HTML, and to match their href attributes against the match regular expression.

A more thorough explanation of the format and available options can be found in the cupage documentation.

[1]Use cupage.py --list-sites to see the list supported sites in your version of cupage

Contact

If you wish to contact me about the contents of this overlay, then the simplest way is by email. If you’ve found a problem I would prefer that you open an issue on github, but emails are fine as a fallback method.

Commit signing

This tree has been using signed commits since June 2012, and those commits have been signed with 0xC0174749. That key has now been retired, and future commits will be signed using 0xABC68E07 with the following fingerprint:

3ACF 2658 BC4D 35F6 E470  0DAF FDA3 C542 ABC6 8E07

You can find a signed version of this file on GitHub.

Contributing

A few notes, beyond the advice in the excellent devmanual, that should be taken in to consideration when contributing to this overlay.

Package naming

The devmanual’s suggestion that filenames should not contain uppercase characters only causes complex PN/P rewriting or duplication, and as such is ignored in this overlay.

Commit messages

Commit messages should be of the form [<pkg>] <summary>, or simply <summary> for commits that aren’t bound to a single package.

Try to follow Tim Pope’s excellent commit message advice. There is some leeway on the length of the summary to take in to account the package prefix, but beyond that the rules make perfect sense here.

Note

Occasionally I forget or mis-step on the above rule, and from today(2013-04-05) I’ll owe you a coffee every time you point out an infraction. Take advantage, it is the only way I’ll learn!

Patches vs sed

It is common practice in Gentoo repositories to fix minor problems using sed, presumably because it appears to be quick and easy. This type of usage is banned in this overlay. Some of the reasons for this policy are:

  • It is very easy to mis-apply transformations
  • It is very easy for transformations to not be applied at all without anyone noticing
  • For people with poor knowledge of sed it leads to horrendous use of grouping and back-references
  • Well written, correctly addressed, sed expressions tend to be hard for people with only a basic knowledge of the s command to comprehend(far harder than unified diff output)
  • Many people seem to misunderstand what the common sed || die construct does, leading to a false sense of safety. [And frankly, if your die calls are triggered because of missing or mispelt files there are much greater problems than a poorly defined call to sed.]

Note

Users inside the AST firewall often rely on our sed wrappers to alert them of broken sed usage, and that process isn’t changing. I’m not applying this rule to all the overlays I maintain, just ones for external users.

die usage

There are few differences between how die is commonly used in the upstream tree, and how it is used in this overlay. The rules in the overlay aren’t always strictly enforced, but documenting this will hopefully reduce the number of usage questions I’m asked.

do* and die

It is common practise within the main Gentoo repository that calls to the likes of dodoc or doman do not call die on failure. This is not acceptable in this overlay.

Usage of wildcards in calls to do* is also frowned upon, but not enough to clean up previous usage [yet].

All entities that should be installed should raise a failure if they are not installed, there is no middle ground for some specific types of files.

HOMEPAGE usage

Against the advice given in the ebuild variables section of the devmanual, you should feel free to refer to variables in the HOMEPAGE definition.

Even within the upstream repository this advice is seemingly ignored at will, as it serves little purpose.

RESTRICT usage

All usage of RESTRICT in an ebuild should be accompanied by an explanation of the reason for the restriction. It should be obvious to someone looking at an ebuild the reason why tests, for example, are blocked for a given package.

Of course, it is preferable to fix the underlying reason for needing a RESTRICT definition, especially in the case of test and userpriv restrictions.

stabilisation.rem

support/stabilisation.rem is a remind compatible data file that contains the best case stabilisation dates for packages. When a new arch keyword is added, or a package receives a version bump, this file is updated to reflect the earliest possible time a package can migrate to stable.

The format is simple enough:

REM <|stable_date|> *1 MSG %"Stabilise |arch| |CPV|%" %a

Note

The initial stable date value is 30 days in the future, although it can be longer if more testing is likely to be necessary.

package.mask

The profiles/package.mask file includes special syntax for generating removal reminders for packages. An example should explain it adequately:

# James Rowe <jnrowe@gmail.com> (27 Jan 2011)
# Better alternatives available including busybox's fbsplash, plymouth, ksplash
# and many others.
# X-Removal: 2011-02-26
media-gfx/psplash

The format is identical to that defined in portage(5) with the addition of the X-Removal tag that is used by the support/gen_removal.py script to create an remind compatible data file.

A simple, but important, extension that makes it easier to keep on top of important admin tasks.

distutils-r1.eclass usage

When using the PYTHON_COMPAT functionality from distutils-r1.eclass it is important to state the reason why a certain Python version isn’t supported.

This should, in theory, make it easier to track updates. Also, it should make it immediately clear how much work is required to support a specific Python version if the need arises.

A simple example from the ebuild for rad would be:

# 2.5 is restricted due to except...as syntax
# 3.x is restricted due to print command
PYTHON_COMPAT=(python2_{6,7})

You should feel free to use nested brace expansion and sequence expressions in the PYTHON_COMPAT declaration, it makes for far more readable definitions than either of the methods preferred upstream. Compare upstream’s colorama package:

PYTHON_COMPAT=( python2_5 python2_6 python2_7 python3_1 python3_2 )

or upstream’s pep8 package where brace expansion is used:

PYTHON_COMPAT=( python{2_5,2_6,2_7,3_1,3_2,3_3} )

with the preferred style for this overlay using flake8 as an example:

PYTHON_COMPAT=(python{2_{5..7},3_{1..3}})

distutils.eclass usage

Important

At this point you should not be using distutils.eclass for ebuilds, use distutils-r1 for all new packages and upgrade packages when bumping.

When using the RESTRICTED_PYTHON_ABIS functionality from distutils.eclass it is important to state the reason why a certain Python version is restricted. See distutils-r1 for more information.

A simple example from an old ebuild for rad would be:

SUPPORT_PYTHON_ABIS="1"
PYTHON_DEPEND="2:2.6"
# 2.4 is restricted due to relative imports and except...as syntax
# 2.5 is restricted due to except...as syntax
# 3.x is restricted due to print command
RESTRICT_PYTHON_ABIS="2.[45] 3.*"

watch files

Each package directory contains a watch file that is used to generate support/cupage.conf. The support/cupage.conf file is a config file for cupage, which helps us to keep up with new package releases by automating the process of checking project sites.

The format is basically quite simple, but there are a few caveats. First, an easy example from www-client/cupage:

site = github
user = JNRowe

This configuration is all that is needed to check for new tags in the JNRowe/cupage project on GitHub.

The output of cupage.py --list-sites shows all the possible definitions for the site option. If the upstream project is located on one of those sites then the watch file should be extremely simple.

For projects not using one of cupage‘s supported sites a manual matcher must be built. An example from dev-python/astral should be quite illustrative:

url = http://www.sffjunkie.co.uk/python-astral.html
select = td a
match_type = zip

This tells cupage to check the defined URL for a tags that are descendants of td tags, and whose href attributes appear to match zip file names.

For more information about configuring cupage visit the cupage documentation.

Caveats

If the package name does not match the project name then the project name must be specified in the watch file. A live example from this repository would be dev-python/straight-plugin:

[straight.plugin]
site = pypi

Note

Project names are almost always case-sensitive, and project names must be specified when the package and project names differ as in the example above.

For a live ebuild, or an upstream that has since disappeared, where using cupage is unworkable a special entry should be placed in a package’s watch file.

For a live ebuild add the string # Live ebuild to the start of the file. It is possible to add other information to the end of the file.

For a package where the upstream site is dead add the string upstream is dead somewhere in the watch file. It is possible to add informative notes to the file, such as the previous location or package author data.

Frequently Asked Questions

Why don’t you submit these to Bugzilla?

At one time I did submit new ebuilds to Gentoo’s bugzilla, but it tended to be very unproductive for me.

The purpose of this overlay is to provide packaging for things I use, and that means they’re used today.

Resolution for new package bugs tends to take an awful lot of time(if it happens at all), and when they are resolved there are occasionally incompatible changes made. Each incompatible change means I get to make the choice of whether I attempt to shift our users to the in-tree version via some possibly hairy migration path, or simply continue to maintain the out of tree ebuild indefinitely.

Basically the end result is just far more work, with fast approaching zero benefit from upstreaming. To see the amount of work involved check out ::shadow, it only exists to handle packages with migration issues and it demonstrates the situation quite well.

Why isn’t this listed in the layman repo?

I’ve never used layman, so it isn’t something I would test very often.

A few users have asked in the past, but they normally find the Installation method for layman satisfies their needs when it is pointed out. Perhaps, it could be more discoverable(ideas how to make it so are very welcome).

Why are there so many merge commits?

As a result of the way my overlays are managed I have to maintain a bunch of different branches to work around supporting the many different configurations; on top of gentoo-x86, stacked on the EADS main tree, using upstream’s python eclasses, &c. The simplest way to do it is using a very heavy branching structure.

If you scroll back through the repository history to a time when I wasn’t supporting people using portage as their package manager or gentoo-x86 as a base, you’ll see the history was a lot cleaner.

Appendix

HOMEPAGE

Package’s home page, see ebuild(5) and variables in Gentoo Development Guide.

P

Package name and version, see ebuild(5) and variables in Gentoo Development Guide.

PN

Package name, see ebuild(5) and variables in Gentoo Development Guide.

RESTRICT

Portage features to disable for given ebuild, see ebuild(5) and variables in Gentoo Development Guide.

PORTAGE_GPG_KEY

gnupg key to sign commits with, see make.conf(5).

PORTDIR_OVERLAY

Location of extra ebuild repositories, see make.conf(5).

Indices and tables

[1]If you want to hear the many and varied reasons, ask me in person the next time we meet at a conference. You’ll be able to enjoy the relentless chadenfraude of my disappointment, and you’ll win yourself a few free beers at the same time.