Pan is a Usenet newsreader that's good at both text and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB, binary uploading, PGP handling, multiple servers, and secure connections. It's also the only Unix newsreader to get a perfect score on the Good Net-Keeping Seal of Approval evaluations. It runs on Unix and Unix-like operating systems, Mac OS X, and Windows.
- Git repo:
- Open bugs:
- Mailing lists:
- IRC channel:
- #pan on Freenode
Everybody with a good understanding of GTK+, GLib or newsreaders and the Usenet in general is encouraged to participate. Feel free to drop in any time in either the channel or the mailing lists.
The following is a small collection of useful links for our aspiring developers:
Pan is a GTK+ application written in C++, so we would prefer if you adhered to the coding styles mentioned here: GTK+/BestPractices
Also, please try to embed your additions to the code as good as possible into the structure of the existing source.
Overview of the Pan Latest Enhancements
Some of these features need tweaking or bugfixing, most are reported to work flawlessly or without any issues.
- PGP signing / encryption support
- TLS / SSL support for encryption
- Gnome Keyring support for password storage
- Automatic actions based on article scores (delete, cache, mark read etc.)
- D-Bus Support for multiple instances ( articles can be batch-queued by command prompt)
Iconv, gtkspell3 support, custom CTE
Ideas for Feature Development
- GnuPG code review/cleanup
- Make GTK3 the new target, fix all the bugs there (unwanted resizing of tabs etc.)
- Don't throw away server settings on name update
- Apply server SSL settings / cert settings right away
- Re-implement wrap algorithm
- Add flag to (not) revert wrap on loading new article/refreshing Header Pane
- HTML preview in Body Pane
- Bring back draft, sent, trash , .... folders (?)
Database integration with sqlite3 (see the details)
Fix all errors on bugzilla
Follow this link to get a brief overview of the appropriate sections in code belonging to the features mentioned above. /CodeOverview
Making a Release
Follow the generic instructions on the MaintainersCorner/Releasing page. Instructions specific to Pan are as follows.
- Get updates for the NEWS file by running:
- Check that the README file is updated.
- Run a command similar to the following to make the release tarballs and a checksum file:
./autogen.sh && make && make distcheck && sha256sum pan-VERSION.tar.bz2 pan-VERSION.tar.gz > checksum.sha256
- Check the generated tarballs.
- git commit and git push the changes.
- git tag the release:
git tag -a PAN_VERSION_MAJOR_VERSION_MINOR
- Increment the version number, VERSION_MINOR and VERSION_TITLE, and update the release name in configure.ac.
- Upload the tarballs and the checksum file to the download/releases/VERSION/source/ folder on pan.rebelbase.com.
- Update the website.
Optionally, download the website content and sync it with https://github.com/pmkovar/pan-website:
wget -m -nH -X /download/extras,/download/releases http://pan.rebelbase.com/
- Get the release party started!