audio/*: remove useless USES=pathfixa542853b79
Port details
audio/libfishsound 1.0.1_1
Programming interface to decode/encode audio data
Port info
- Maintainer
- sunpoet@FreeBSD.org
- Packages
- latest: 1.0.1_1
- Upstream
- up to date
- Last update
- to 1.0.1_1 · a542853b79
- Quarterly
- 2026Q4: 1.0.1_1
- WWW
- https://www.xiph.org/fishsound/
- Links
- cgit · VuXML
Install
- Package
# pkg install libfishsoundinstalls 1.0.1_1 fromlatest; fromquarterly(2026Q4) 1.0.1_1- Port
# cd /usr/ports/audio/libfishsound && make install clean# make -C /usr/ports/audio/libfishsound config # change options first
- Size
- 180 KiB download · 1.1 MiB installed
- Depends on
- audio/flac 1.5.0,1, audio/libvorbis 1.3.7_2,3, audio/speex 1.2.1_1,1
- License
- BSD3CLAUSE
- Options
- 1 of 1 on in the package: DOCS
Packages by version and architecture
latest
| FreeBSD version | amd64 | aarch64 | i386 |
|---|---|---|---|
| FreeBSD 16 | 1.0.1_1 | 1.0.1_1 | – |
| FreeBSD 15 | 1.0.1_1 | 1.0.1_1 | – |
| FreeBSD 14 | 1.0.1_1 | 1.0.1_1 | 1.0.1_1 |
quarterly (2026Q4)
| FreeBSD version | amd64 | aarch64 | i386 |
|---|---|---|---|
| FreeBSD 15 | 1.0.1_1 | 1.0.1_1 | – |
| FreeBSD 14 | 1.0.1_1 | 1.0.1_1 | 1.0.1_1 |
version as in the ports tree (latest) or the most common one (quarterly) · different version · ✗ not built · – no packages for this platform. Package sets that have not been rebuilt for 60 days are left out.
Unaddressed and VuXML only (0)
No unaddressed CVE and nothing reported by
pkg audit for the packaged version 1.0.1_1.Fixed (0)
No VuXML entries for this package.
Problem reports (0) · open in Bugzilla, most recently changed first
None.
Commits (41)
*/*: bump PORTREVISION after audio/flac update153b006fd6
audio/libfishsound: Update to 1.0.1 - Update MASTER_SITES - Remove my LOCAL from MASTER_SITES - Update WWW - Remove DOXYGEN option: it is already built and shipped in the tarball - Convert REINPLACE_CMD to patch file Changes: https://gitlab.xiph.org/xiph/libfishsound/-/releases3cbc36947b
audio/libfishsound: Fix PLIST after Doxygen update6a2fa4c406
audio/libfishsound: Fix build with Clang 16 and remove the workaround
flac.c:253:8: error: incompatible function pointer types passing 'FLAC__StreamDecoderReadStatus (const FLAC__StreamDecoder *, FLAC__byte *, unsigned int *, void *)' (aka 'FLAC__StreamDecoderReadStatus (const FLAC__StreamDecoder *, unsigned char *, unsigned int *, void *)') to parameter of type 'FLAC__StreamDecoderReadCallback' (aka 'FLAC__StreamDecoderReadStatus (*)(const FLAC__StreamDecoder *, unsigned char *, unsigned long *, void *)') [-Wincompatible-function-pointer-types]
fs_flac_read_callback,
^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/FLAC/stream_decoder.h:1092:34: note: passing argument to parameter 'read_callback' here
FLAC__StreamDecoderReadCallback read_callback,
^
flac.c:597:8: error: incompatible function pointer types passing 'FLAC__StreamEncoderWriteStatus (const FLAC__StreamEncoder *, const FLAC__byte *, unsigned int, unsigned int, unsigned int, void *)' (aka 'FLAC__StreamEncoderWriteStatus (const FLAC__StreamEncoder *, const unsigned char *, unsigned int, unsigned int, unsigned int, void *)') to parameter of type 'FLAC__StreamEncoderWriteCallback' (aka 'FLAC__StreamEncoderWriteStatus (*)(const FLAC__StreamEncoder *, const unsigned char *, unsigned long, unsigned int, unsigned int, void *)') [-Wincompatible-function-pointer-types]
fs_flac_enc_write_callback,
^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/FLAC/stream_encoder.h:1532:136: note: passing argument to parameter 'write_callback' here
FLAC_API FLAC__StreamEncoderInitStatus FLAC__stream_encoder_init_stream(FLAC__StreamEncoder *encoder, FLAC__StreamEncoderWriteCallback write_callback, FLAC__StreamEncoderSeekCallback seek_callback, FLAC__StreamEncoderTellCallback tell_callback, FLAC__StreamEncoderMetadataCallback metadata_callback, void *client_data);
16 warnings and 2 errors generated.
Tested on: 14.0-CURRENT (1400093)d19fe7ff24*/*: Fix build with llvm16 on 13.2-STABLE As like as HEAD(14.0-RELEASE) llvm16 was merged in base for 13.2-STABLE with the OSVERSION 1302507. - Utilize USE_CXXSTD=c++14 or similar solution where applicable - Update conditionals to addtionally check for OSVERSION greater than 1302507 and less than 1400000 Approved by: portmgr (blanket) Sponsored by: The FreeBSD Foundation95274bf4f9
audio/libfishsound: Fix build with llvm16 Approved by: portmgr (blanket) Sponsored by: The FreeBSD Foundation9e0e70affe
audio/flac: bump port revision of consumers after update to 1.4.11e5aaab3fc
Remove WWW entries moved into port Makefiles Commit b7f05445c00f has added WWW entries to port Makefiles based on WWW: lines in pkg-descr files. This commit removes the WWW: lines of moved-over URLs from these pkg-descr files. Approved by: portmgr (tcberner)fb16dfecae
Add WWW entries to port Makefiles It has been common practice to have one or more URLs at the end of the ports' pkg-descr files, one per line and prefixed with "WWW:". These URLs should point at a project website or other relevant resources. Access to these URLs required processing of the pkg-descr files, and they have often become stale over time. If more than one such URL was present in a pkg-descr file, only the first one was tarnsfered into the port INDEX, but for many ports only the last line did contain the port specific URL to further information. There have been several proposals to make a project URL available as a macro in the ports' Makefiles, over time. This commit implements such a proposal and moves one of the WWW: entries of each pkg-descr file into the respective port's Makefile. A heuristic attempts to identify the most relevant URL in case there is more than one WWW: entry in some pkg-descr file. URLs that are not moved into the Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr files in order to preserve them. There are 1256 ports that had no WWW: entries in pkg-descr files. These ports will not be touched in this commit. The portlint port has been adjusted to expect a WWW entry in each port Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as deprecated. Approved by: portmgr (tcberner)b7f05445c0
audio: remove 'Created by' lines A big Thank You to the original contributors of these ports: * <dmagda+libsamplerate@ee.ryerson.ca> * <trasz@FreeBSD.org> * Adam Weinberger * Adam Weinberger <adamw@FreeBSD.org> * Akinori MUSHA aka knu <knu@idaemons.org> * Aleksander Fafula <alex@bsdguru.org> * Alex Allan <alex@kamaz.org.uk> * Alexander Botero-Lowry <alex@foxybanana.com> * Alexander Kojevnikov <alexander@kojevnikov.com> * Alexander Nedotsukov <bland@FreeBSD.org> * Alexander Vereeken <Alexander88207@protonmail.com> * Alexander Yerenkow <yerenkow@gmail.com> * Alexandr Kovalenko <never@nevermind.kiev.ua> * Alexey Dokuchaev <danfe@FreeBSD.org> * Anders Nordby <anders@FreeBSD.org> * Anders Nordby <anders@fix.no> * Andreas Kohn <andreas@syndrom23.de> * Andrew Pantyukhin <infofarmer@FreeBSD.org> * Andrey Zakhvatov * Anes Mukhametov <anes@anes.su> * Anthony Ginepro <anthony.ginepro@laposte.net> * Anton Yuzhaninov <citrin@citrin.ru> * Aragon Gouveia <aragon@phat.za.net> * Ashish SHUKLA <wahjava@gmail.com> * Ayumi M <ayu@commun.jp> * Ayumi Mitsui <ayu@commun.jp> * Bartoletti <lbartoletti@FreeBSD.org> * Bernard Spil <brnrd@FreeBSD.org> * Bill Fenner <fenner@FreeBSD.org> * Brad Walker <tha_walka@hotmail.com> * Brett Taylor <brett@peloton.physics.montana.edu> * Byung-Hee HWANG <bh@izb.knu.ac.kr> * Carey Jones <mcj@acquiesce.org> * Carlos J. Puga Medina <cpm@FreeBSD.org> * Cezary Morga <cm@therek.net> * Chao Shin <quakelee@cn.freebsd.org> * Charles Mercadal <mercadal@diablonet.net> * Chia-liang Kao <clkao@CirX.ORG> * Chip Marshall <chip@eboai.org> * Choi Jun Ho <junker@moderato.snu.ac.kr> * Chris Piazza <cpiazza@FreeBSD.org> * Christian Laursen <xi@borderworlds.dk> * Christopher Key <cjk32@cam.ac.uk> * Daniel Menelkir <dmenelkir@gmail.com> * Daniel O'Connor * David Bushong <david@bushong.net> * David Le Brun <david@dyn-ns.net> * David MacKenzie <djm@pix.net> * David Naylor <dbn@FreeBSD.org> * David Naylor <naylor.b.david@gmail.com> * David Yeske <dyeske@gmail.com> * Denise H. G. <darcsis@gmail.com> * Dennis Herrmann <adox@mcx2.org> * Dennis Herrmann <dhn@FreeBSD.org> * Devon Ryan <dpryan@dpryan.com> * Ditesh Shashikant Gathani <ditesh@gathani.org> * Dmitry Afanasiev <KOT@MATPOCKuH.Ru> * Dominic Mitchell <dom@happygiraffe.net> * Dominique Goncalves <dominique.goncalves@gmail.com> * Dryice Liu <dryice@dryice.name> * Edward Tomasz Napierala <trasz@FreeBSD.org> * Edward Tomasz Napierala <trasz@pin.if.uz.zgora.pl> * Emanuel Haupt <ehaupt@FreeBSD.org> * Emanuel Haupt <ehaupt@critical.ch> * Eric Anholt <anholt@FreeBSD.org> * Erik Cederstrand <erich@FreeBSD.org> * Francisco Gomez <francisco@gomezmarin.com> * Frank Laszlo <laszlof@vonostingroup.com> * František Dvořák <valtri@civ.zcu.cz> * Fraser Tweedale <frase@frase.id.au> * Gabor Kovesdan * Gabor Zahemszky <Gabor@Zahemszky.HU> * Ganael Laplanche <ganael.laplanche@martymac.org> * Gea-Suan Lin <gslin@gslin.org> * Gennady Sorokopud <gena@NetVision.net.il> * George Reid <greid@FreeBSD.org> * George Reid <greid@ukug.uk.freebsd.org> * Goran Mekić <meka@tilda.center> * Grzegorz Blach <gblach@FreeBSD.org> * Gustau Perez <gustau.perez@gmail.com> * Hans Petter Selasky <hselasky@FreeBSD.org> * Hans Petter Selasky <hselasky@freebsd.org> * Hye-Shik Chang * Hye-Shik Chang <perky@FreeBSD.org> * Jaap Akkerhuis <jaap@NLnetLabs.nl> * Jamie Heckford <jamie@blackhole.net> * Jean-Marc Zucconi <jmz@FreeBSD.org> * Jean-Yves Lefort <jylefort@FreeBSD.org> * Jean-Yves Lefort <jylefort@brutele.be> * Jerry Eriksson <jerry@freebsd.se> * Jim Mock <jim@FreeBSD.org> * Jin-Shan Tseng <tjs@cdpa.nsysu.edu.tw> * Joao Carlos Mendes Luis <jonny@jonny.eng.br> * Joe Marcus Clarke <marcus@FreeBSD.org> * John Hixson <jhixson@FreeBSD.org> * John Hixson <john@pcbsd.org> * Jonathan Lennox <lennox@cs.columbia.edu> * Joris Vandalon <joris@vandalon.nl> * Juha Erkkilä <erkkila@cc.jyu.fi> * Juha Nygard <juha.nygard1@netikka.fi> * Kawaguti Ginga <ginga@athena.club.ne.jp> * Kengo Ichiki <kichiki@users.sourceforge.net> * Koine Yuusuke(koinec) <koinec@users.osdn.me> * Konstantinos Konstantinidis <kkonstan@daemon.gr> * Koop Mast <kwm@FreeBSD.org> * Lars Engels <lars.engels@0x20.net> * Lars Engels <lme@FreeBSD.org> * Lars Thegler <lth@FreeBSD.org> * Leo Kim <leo@florida.sarang.net> * Liam J. Foy <liamfoy@sepulcrum.org> * Manuel Creach <manuel.creach@icloud.com> * Marc van Woerkom <3d@FreeBSD.org> * Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org> * Mark Felder <feld@FreeBSD.org> * Mark Kane <mark@mkproductions.org> * Mark Pulford <mark@kyne.com.au> * Mark Reidel <ports@mark.reidel.info> * Mark Reidel <ports@mark.reidle.info> * Martin Blapp <mbr@FreeBSD.org> * Martin Dieringer <Martin.Dieringer@t-online.de> * Martin Kraft <martin.kraft@fal.de> * Martin Matuska <mm@FreeBSD.org> * Martin Wilke (miwi@FreeBSD.org) * Martin Wilke <miwi@FreeBSD.org> * Masanori Kiriake <seiken@nbs.co.jp> * Mathew Kanner <mat@hak.cnd.mcgill.ca> * Matt Tosto <datahead4@gmail.com> * Matthias Andree <matthias.andree@gmx.de> * Maxim Sobolev <sobomax@FreeBSD.org> * Michael Beer <beerml@sigma6audio.de> * Michael Haro <mharo@area51.fremont.ca.us> * Michael Johnson <ahze@FreeBSD.org> * Michael Johnson <ahze@ahze.net> * Michael Nottebrock <michaelnottebrock@gmx.net> * Michael Vasilenko <acid@stu.cn.ua> * Mike Makonnen <mtm@identd.net> * Munish Chopra <mchopra@engmail.uwaterloo.ca> * Mykola Dzham <i@levsha.me> * Nadelyaev Stanislav <funkblaster@n11.bmstu.ru> * Necati Ersen SISECI <siseci@enderunix.org> * Nicola Vitale <nivit@FreeBSD.org> * Nicola Vitale <nivit@email.it> * Nicolas Herry <nicolasherry@gmail.com> * Oliver Breuninger <ob@breuninger.org> * Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de> * Oliver Lehmann <oliver@FreeBSD.org> * Olivier Duchateau * Oyvind Moll <oyvindmo@initio.no> * Pav Lucistnik <pav@FreeBSD.org> * Pav Lucistnik <pav@oook.cz> * Peter Pentchev <roam@FreeBSD.org> * Philip Paeps <philip@paeps.cx> * Philippe Audeoud <jadawin@tuxaco.net> * Pietro Cerutti <gahr@FreeBSD.org> * Piotr Kubaj <emulation@FreeBSD.org$ * Piotr Kubaj <pkubaj@anongoth.pl> * Po-Chuan Hsieh <sunpoet@FreeBSD.org> * Putrya Statislav * Rahul Siddharthan <rsidd@online.fr> * Rich Neese <r.neese@gmail.com> * Richard Neese * Rob Zinkov <rzinkov@gmail.com> * Romain Tartiere <romain@blogreen.org> * Romain Tartière <romain@blogreen.org> * Roman Bogorodskiy * Roman Shterenzon <roman@xpert.com> * Sander Janssen <janssen@rendo.dekooi.nl> * Sascha Klauder <sklauder@trimind.de> * Satoshi Taoka <taoka@FreeBSD.org> * Sean McGovern <sean@sfarc.net> * Sergey Akifyev <asa@gascom.ru> * Seth Kingsley <sethk@osd.bsdi.com> * Simon 'corecode' Schubert <corecode@corecode.ath.cx> * Simon Barner <barner@gmx.de> * Stas Timokhin <stast@bsdportal.ru> * Stefan Ehmann <shoesoft@gmx.net> * Stefan Jahn <stefan.jahn@nemesis-sektor.de> * Stefan Zehl <sec@42.org> * Stepan Zastupov [RedChrom] <redchrom@gmail.com> * Steve Wills <swills@FreeBSD.org> * Sue Blake <sue@FreeBSD.org> * Sunpoet Po-Chuan Hsieh <sunpoet@sunpoet.net> * TOMIDA, Hiroaki <t.hiroaki.209 at gmail.com> * Tatsuki Makino <tatsuki_makino@hotmail.com> * The Anarcat <anarcat@anarcat.dyndns.org> * Thomas Gellekum <tg@FreeBSD.org> * Thomas M. Hermann <tmh.public@gmail.com> * Thomas Runge <runge@rostock.zgdv.de> * Thomas Zander <riggs@FreeBSD.org> * Tilman Linneweh <arved@FreeBSD.org> * Tim Bishop <tdb@FreeBSD.org> * Timothy Beyer <beyert@cs.ucr.edu> * Tobias Rehbein <tobias.rehbein@web.de> * Tyler Spivey * Ulrich Spoerlein <q@uni.de> * Ulrich Spoerlein <uspoerlein@gmail.com> * Vanilla I. Shu <vanilla@FreeBSD.org> * Veniamin Gvozdikov <vg@FreeBSD.org> * Vincent Tantardini <vinc@FreeBSD-fr.org> * Wen Heping <wen@FreeBSD.org> * Wen Heping <wenheping@gmail.com> * Yanhui Shen <shen.elf@gmail.com> * Yar Tikhiy <yar@FreeBSD.org> * Yar Tikhiy <yar@comp.chem.msu.su> * Ying-Chieh Liao <ijliao@FreeBSD.org> * Yoichi Asai <yatt@luna2.org> * Yoichi Asai <yatt@msc.biglobe.ne.jp> * Yoshiaki Uchikawa * Yoshihide SONODA <ysonoda@dontaku.csce.kyushu-u.ac.jp> * Yuri Victorovich * Yuri Victorovich <yuri@FreeBSD.org> * Yuri Victorovich <yuri@rawbw.com> * Zach Zurflu <zach@pabst.bendnet.com> * Zane C. Bowers * Zane C. Bowers-Hadley <vvelox@vvelox.net> * Zhihao Yuan <lichray@gmail.com> * ache * arved * chinsan * chinsan <chinsan.tw@gmail.com> * ericb@thedeepsky.com * erich@FreeBSD.org * faulkner@mpd.tandem.com * gahr * greg * hrkfrd@googlemail.com * ijliao * janek@gaja.ipan.lublin.pl * jkh * jockl <jockl@pianojockl.org> * kbyanc@posi.net * kwm@rainbow-runner.nl * lazyklimm <lazyklimm@gmail.com> * leo * lx * mahonmesr@googlemail.com * marius nuennerich * mathias.picker@gmx.de * michael johnson <ahze@ahze.net> * michaelnottebrock@gmx.net and lioux@FreeBSD.org * mtm@identd.net * nemysis <nemysis@gmx.ch> * nork@FreeBSD.org * nox@jelal.kn-bremen.de * numisemis at yahoo dot com * patrick * pjm <pierrejacqes.mimifir@gmail.com> * pozar * pst * r.neese * rene@FreeBSD.org (repocopied from audio/py-mpd) * sethk * shanee@augusta.de * sobomax * squell@alumina.nl * swallace * t.vanklaveren@student.utwente.nl * torstenb * trasz <trasz@FreeBSD.org * trasz <trasz@pin.if.uz.zgora.pl> * trevor * ugen * will * yoshiaki Uchikawa With hat: portmgr213b0b7a75
audio/libfishsound: Fix PLIST after Doxygen 1.9.4 update (e686f2196c4da731aced2099b20c462efd9a16bc)e072b7e9ac
*/*: Add a backup master site to all Xiph.org ports The downloads.xiph.org master site requires TLS1.3, which is not supported by FreeBSD 11's OpenSSL and fetch(1). Add ftp.osuosl.org as a backup to all Xiph.org ports. PR: 256515 Reported by: Daniel Engbergdcf17d14a7
Remove # $FreeBSD$ from Makefiles.305f148f48
Fix spelling mistakes, typos, poor wording, hyphenation, jargonisms, contractions, "<portname> is ..." cases, missing Oxford commas, and other miscellaneous style bugs in the COMMENT line.ee895ff14c
Convert PORTDOCS to PLIST entriesa22c30ce5f
Update WWW19e9688d9f
Remove ${PORTSDIR}/ from dependencies, Mk and categories a, b, and c.
With hat: portmgr
Sponsored by: Absolight7f4572eae4- Add LICENSE_FILE - Update BUILD_DEPENDS: remove redundant LOCALBASE/binbc30cb60b8
Convert ports to use the options helpers in categories [abc]*, and minor fixes. Sponsored by: Absolight Differential Revision: https://reviews.freebsd.org/D3412?bb271f0bf7
- Use INSTALL_TARGET=install-strip instead of STRIP_CMD0637ff72d0
Replace USES=libtool:oldver with USES=libtool or USES=libtool:keepla in the 32 ports that still use it. Bump PORTREVISION on their dependent ports except the ones that depend on these: audio/libogg audio/libvorbis devel/pcre ftp/curl graphics/jpeg graphics/libart_lgpl graphics/tiff textproc/expat2 textproc/libxslt In these cases the same trick as in the recent gettext update is used. The ports install a symlink with the old library version. When enough of their dependent ports have had regular updates the remaining ones can get a PORTREVISION bump and the links can be removed. Also remove the devel/pcre dependency from USE_GNOME=glib20. It causes over 2200 packages to depend on devel/pcre while less than 200 actually link with it. The glib20 package still depends on devel/pcre so this should not make a difference for ports with USE_GNOME=glib20. Also, libdata/pkgconfig/glib-2.0.pc lists pcre as a private library so USE_GNOME=glib20 should not propagate it. PR: 195724 Exp-run by: antoine Approved by: portmgr (antoine)60945f0277
Cleanup plista6abc3b420
- Strip shared library in post-install:000a88cbf4
- Switch to USES=libtool, drop .la files Approved by: portmgr blanketbeb2a5a284
- Update LICENSE6636d0b1ea
- Strip shared library - Fix packaging with pkgng [1] - Cleanup Makefile Reported by: pkg-fallout [1]23c7b466a7
- Support STAGEDIR19d965192e
Add NO_STAGE all over the place in preparation for the staging support (cat: audio)183c2ed74f
- Convert to new LIB_DEPENDS format - Move PORTDOCS upward1010c68c45
Eliminate USE_GNOME=pkgconfig from audio While here: - trim headers - convert USE_GMAKE -> USES=gmake - convert USE_GNOME=gnomehack -> USES=pathfix - convert USE_PERL5 -> USES=perl549ac0257b5
- Use !${PORT_OPTIONS:Mfoo} instead of empty(PORT_OPTIONS:Mfoo)20c1eacf2b- Remove leading indefinite article from COMMENTfa1716b118
* Major update to FLAC 1.3.0, including shared library bumps. * Chase the update in dependent ports. PR: 1790721f2b1eac8e
- Add LICENSE - Move OPTIONS_* upward Feature safe: yes2628c2e8ef
- Cleanup Makefile header - Convert to new options framework98c7023971
libogg.so.8: Bump PORTREVISION for ports that depend on libogg, directly or indirectly (via libvorbis, libtheora).bcd6fbdee4
- Get Rid MD5 supporta9481afc8a
- Use LOCAL/sunpoet as backup MASTER_SITES Approved by: pgollucci (mentor)0d5e39c89e
- Update MAINTAINER to my FreeBSD.org address Approved by: pgollucci (mentor)e475c19a24
libfishsound provides a simple programming interface for decoding and encoding audio data using the Xiph.org codecs (FLAC, Speex and Vorbis). libfishsound by itself is designed to handle raw codec streams from a lower level layer such as UDP datagrams. When these codecs are used in files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex and Ogg Vorbis files. libfishsound is a wrapper around the existing codec libraries and provides a consistent, higher-level programming interface. It has been designed for use in a wide variety of applications; it has no direct dependencies on Ogg encapsulation, though it is most commonly used in conjunction with liboggz to decode or encode FLAC, Speex or Vorbis audio tracks in Ogg files, including Ogg Theora and Annodex. WWW: http://www.xiph.org/fishsound/ PR: 147332 Submitted by: Sunpoet Po-Chuan Hsieh <sunpoet@sunpoet.net>45d0fc436e