--- /dev/null
+# port for HTTP (descriptions, SOAP, media transfer) traffic
+port=8200
+
+# network interfaces to serve, comma delimited
+network_interface=green0,blue0
+
+# set this to the directory you want scanned.
+# * if have multiple directories, you can have multiple media_dir= lines
+# * if you want to restrict a media_dir to a specific content type, you
+# can prepend the type, followed by a comma, to the directory:
+# + "A" for audio (eg. media_dir=A,/home/jmaggard/Music)
+# + "V" for video (eg. media_dir=V,/home/jmaggard/Videos)
+# + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
+media_dir=/var/mp3
+
+# set this if you want to customize the name that shows up on your clients
+#friendly_name=My DLNA Server
+
+# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
+db_dir=/var/cache/minidlna
+
+# set this if you would like to specify the directory where you want MiniDLNA to store its log file
+#log_dir=/var/log
+
+# set this to change the verbosity of the information that is logged
+# each section can use a different level: off, fatal, error, warn, info, or debug
+#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
+
+# this should be a list of file names to check for when searching for album art
+# note: names should be delimited with a forward slash ("/")
+album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
+
+# set this to no to disable inotify monitoring to automatically discover new files
+# note: the default is yes
+inotify=yes
+
+# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
+enable_tivo=no
+
+# set this to strictly adhere to DLNA standards.
+# * This will allow server-side downscaling of very large JPEG images,
+# which may hurt JPEG serving performance on (at least) Sony DLNA products.
+strict_dlna=no
+
+# default presentation url is http address on port 80
+#presentation_url=http://www.mylan/index.php
+
+# notify interval in seconds. default is 895 seconds.
+notify_interval=900
+
+# serial and model number the daemon will report to clients
+# in its XML description
+serial=12345678
+model_number=1
+
+# specify the path to the MiniSSDPd socket
+#minissdpdsocket=/var/run/minissdpd.sock
+
+# use different container as root of the tree
+# possible values:
+# + "." - use standard container (this is the default)
+# + "B" - "Browse Directory"
+# + "M" - "Music"
+# + "V" - "Video"
+# + "P" - "Pictures"
+# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
+#root_container=.
#usr/bin/nasm
#usr/bin/ndisasm
-#usr/man/man1/nasm.1
-#usr/man/man1/ndisasm.1
+#usr/share/man/man1/nasm.1
+#usr/share/man/man1/ndisasm.1
etc/system-release
etc/issue
+srv/web/ipfire/cgi-bin/connections.cgi
+usr/lib/gconv
--- /dev/null
+usr/bin/flac
+usr/bin/metaflac
+#usr/include/FLAC
+#usr/include/FLAC++
+#usr/include/FLAC++/all.h
+#usr/include/FLAC++/decoder.h
+#usr/include/FLAC++/encoder.h
+#usr/include/FLAC++/export.h
+#usr/include/FLAC++/metadata.h
+#usr/include/FLAC/all.h
+#usr/include/FLAC/assert.h
+#usr/include/FLAC/callback.h
+#usr/include/FLAC/export.h
+#usr/include/FLAC/format.h
+#usr/include/FLAC/metadata.h
+#usr/include/FLAC/ordinals.h
+#usr/include/FLAC/stream_decoder.h
+#usr/include/FLAC/stream_encoder.h
+#usr/lib/libFLAC++.a
+#usr/lib/libFLAC++.la
+#usr/lib/libFLAC++.so
+usr/lib/libFLAC++.so.6
+usr/lib/libFLAC++.so.6.2.0
+#usr/lib/libFLAC.a
+#usr/lib/libFLAC.la
+#usr/lib/libFLAC.so
+usr/lib/libFLAC.so.8
+usr/lib/libFLAC.so.8.2.0
+#usr/lib/pkgconfig/flac++.pc
+#usr/lib/pkgconfig/flac.pc
+#usr/man/man1/flac.1
+#usr/man/man1/metaflac.1
+#usr/share/aclocal/libFLAC++.m4
+#usr/share/aclocal/libFLAC.m4
+#usr/share/doc/flac-1.2.1
+#usr/share/doc/flac-1.2.1/FLAC.tag
+#usr/share/doc/flac-1.2.1/html
+#usr/share/doc/flac-1.2.1/html/api
+#usr/share/doc/flac-1.2.1/html/api/+_2all_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2export_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2export_8h.html
+#usr/share/doc/flac-1.2.1/html/api/+_2metadata_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2metadata_8h.html
+#usr/share/doc/flac-1.2.1/html/api/all_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/annotated.html
+#usr/share/doc/flac-1.2.1/html/api/assert_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/callback_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/callback_8h.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream_1_1State-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream_1_1State.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream_1_1State-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream_1_1State.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain_1_1Status-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain_1_1Status.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet_1_1Track-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet_1_1Track.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Iterator-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Iterator.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator_1_1Status-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator_1_1Status.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment_1_1Entry-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment_1_1Entry.html
+#usr/share/doc/flac-1.2.1/html/api/classes.html
+#usr/share/doc/flac-1.2.1/html/api/decoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/decoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000000.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000001.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000002.html
+#usr/share/doc/flac-1.2.1/html/api/dirs.html
+#usr/share/doc/flac-1.2.1/html/api/doxygen.css
+#usr/share/doc/flac-1.2.1/html/api/doxygen.png
+#usr/share/doc/flac-1.2.1/html/api/encoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/encoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/export_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/export_8h.html
+#usr/share/doc/flac-1.2.1/html/api/files.html
+#usr/share/doc/flac-1.2.1/html/api/format_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/format_8h.html
+#usr/share/doc/flac-1.2.1/html/api/functions.html
+#usr/share/doc/flac-1.2.1/html/api/functions_func.html
+#usr/share/doc/flac-1.2.1/html/api/functions_vars.html
+#usr/share/doc/flac-1.2.1/html/api/globals.html
+#usr/share/doc/flac-1.2.1/html/api/globals_0x66.html
+#usr/share/doc/flac-1.2.1/html/api/globals_0x67.html
+#usr/share/doc/flac-1.2.1/html/api/globals_defs.html
+#usr/share/doc/flac-1.2.1/html/api/globals_enum.html
+#usr/share/doc/flac-1.2.1/html/api/globals_eval.html
+#usr/share/doc/flac-1.2.1/html/api/globals_func.html
+#usr/share/doc/flac-1.2.1/html/api/globals_type.html
+#usr/share/doc/flac-1.2.1/html/api/globals_vars.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__callbacks.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__export.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__format.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level0.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level1.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level2.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__object.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__stream__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__stream__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__export.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level0.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level1.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level2.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__object.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__2__to__1__1__3.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__3__to__1__1__4.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__4__to__1__2__0.html
+#usr/share/doc/flac-1.2.1/html/api/hierarchy.html
+#usr/share/doc/flac-1.2.1/html/api/index.html
+#usr/share/doc/flac-1.2.1/html/api/metadata_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/metadata_8h.html
+#usr/share/doc/flac-1.2.1/html/api/modules.html
+#usr/share/doc/flac-1.2.1/html/api/ordinals_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__decoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__decoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/stream__encoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__encoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRice-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRice.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRiceContents-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRiceContents.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Frame-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Frame.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameFooter-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameFooter.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameHeader-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameHeader.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____IOCallbacks-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____IOCallbacks.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamDecoder-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamDecoder.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamEncoder-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamEncoder.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Application-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Application.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Index-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Index.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Track-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Track.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Padding-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Padding.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Picture-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Picture.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekPoint-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekPoint.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekTable-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekTable.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__StreamInfo-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__StreamInfo.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Unknown-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Unknown.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment__Entry-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment__Entry.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Constant-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Constant.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Fixed-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Fixed.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__LPC-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__LPC.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Verbatim-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Verbatim.html
+#usr/share/doc/flac-1.2.1/html/changelog.html
+#usr/share/doc/flac-1.2.1/html/comparison.html
+#usr/share/doc/flac-1.2.1/html/comparison__chopin_prelude_24.html
+#usr/share/doc/flac-1.2.1/html/comparison__dream_theater_600.html
+#usr/share/doc/flac-1.2.1/html/comparison__eddie_warner_titus.html
+#usr/share/doc/flac-1.2.1/html/comparison__fanfare_de_l_eventail_de_jeanne.html
+#usr/share/doc/flac-1.2.1/html/comparison__gloria_estefan_conga.html
+#usr/share/doc/flac-1.2.1/html/comparison__hand_in_my_pocket.html
+#usr/share/doc/flac-1.2.1/html/comparison__l_sub_raga_sivapriya.html
+#usr/share/doc/flac-1.2.1/html/comparison__laetatus_sum.html
+#usr/share/doc/flac-1.2.1/html/comparison__mummified_in_barbed_wire.html
+#usr/share/doc/flac-1.2.1/html/comparison__prokofiev_pcon3_3.html
+#usr/share/doc/flac-1.2.1/html/comparison__ravel_sq4_4.html
+#usr/share/doc/flac-1.2.1/html/comparison__scarlatti_k42.html
+#usr/share/doc/flac-1.2.1/html/comparison__tool_forty_six_and_2.html
+#usr/share/doc/flac-1.2.1/html/comparison__white_room.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_cpudectime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_cpuenctime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_procdectime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_procenctime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_ratio.html
+#usr/share/doc/flac-1.2.1/html/developers.html
+#usr/share/doc/flac-1.2.1/html/documentation.html
+#usr/share/doc/flac-1.2.1/html/documentation_bugs.html
+#usr/share/doc/flac-1.2.1/html/documentation_example_code.html
+#usr/share/doc/flac-1.2.1/html/documentation_format_overview.html
+#usr/share/doc/flac-1.2.1/html/documentation_tasks.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_flac.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_metaflac.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_plugins.html
+#usr/share/doc/flac-1.2.1/html/download.html
+#usr/share/doc/flac-1.2.1/html/faq.html
+#usr/share/doc/flac-1.2.1/html/favicon.ico
+#usr/share/doc/flac-1.2.1/html/features.html
+#usr/share/doc/flac-1.2.1/html/flac.css
+#usr/share/doc/flac-1.2.1/html/format.html
+#usr/share/doc/flac-1.2.1/html/id.html
+#usr/share/doc/flac-1.2.1/html/images
+#usr/share/doc/flac-1.2.1/html/images/1x1.gif
+#usr/share/doc/flac-1.2.1/html/images/cafebug.gif
+#usr/share/doc/flac-1.2.1/html/images/hw
+#usr/share/doc/flac-1.2.1/html/images/hw/Blackbird_Front_low3_325x87.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/MS300frontsmall_270x108.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/MediaBox_Frt_170x325.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/SB_Hero_Black_325x182.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/Sooloos-ControlOne_325x328.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/Z500_front_325x94.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/a2_01_325x252.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/arcus_325x135.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/bmp-1430_325x241.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/cs505_front_lrg_325x113.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/enus_3-4lft-hires_product_eva8000_325x127.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/escient_ProductLine_325x163.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/hifidelio_bl_front_Z_RGB_325x163.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/i-station-mini-dx_325x237.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/iwod-g10_325x257.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/knc_hr-2800_325x209.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/mediaready_prodmain_MRMCa_325x232.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/meizu_m6_325x206.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/musica_artwork_325x90.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/neodigits_x5000_325x124.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/onda-vx737_325x240.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/request_n_front_325x103.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/rio_karma_279x254.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/sonos_family_RGB_325x200.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/teclast-tl29_325x244.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/transporter_hero_grey_325x208.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/tvix-4000_325x204.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/vibez_nofm_combi_black_b_325x220.jpg
+#usr/share/doc/flac-1.2.1/html/images/logo100.gif
+#usr/share/doc/flac-1.2.1/html/images/logo130.gif
+#usr/share/doc/flac-1.2.1/html/index.html
+#usr/share/doc/flac-1.2.1/html/itunes.html
+#usr/share/doc/flac-1.2.1/html/license.html
+#usr/share/doc/flac-1.2.1/html/links.html
+#usr/share/doc/flac-1.2.1/html/news.html
+#usr/share/doc/flac-1.2.1/html/ogg_mapping.html
+#usr/share/doc/flac-1.2.1/html/ru
+#usr/share/doc/flac-1.2.1/html/ru/authors.html
+#usr/share/doc/flac-1.2.1/html/ru/comparison.html
+#usr/share/doc/flac-1.2.1/html/ru/developers.html
+#usr/share/doc/flac-1.2.1/html/ru/documentation.html
+#usr/share/doc/flac-1.2.1/html/ru/download.html
+#usr/share/doc/flac-1.2.1/html/ru/features.html
+#usr/share/doc/flac-1.2.1/html/ru/format.html
+#usr/share/doc/flac-1.2.1/html/ru/goals.html
+#usr/share/doc/flac-1.2.1/html/ru/id.html
+#usr/share/doc/flac-1.2.1/html/ru/index.html
+#usr/share/doc/flac-1.2.1/html/ru/links.html
+#usr/share/doc/flac-1.2.1/html/ru/news.html
--- /dev/null
+#usr/include/libexif
+#usr/include/libexif/_stdint.h
+#usr/include/libexif/exif-byte-order.h
+#usr/include/libexif/exif-content.h
+#usr/include/libexif/exif-data-type.h
+#usr/include/libexif/exif-data.h
+#usr/include/libexif/exif-entry.h
+#usr/include/libexif/exif-format.h
+#usr/include/libexif/exif-ifd.h
+#usr/include/libexif/exif-loader.h
+#usr/include/libexif/exif-log.h
+#usr/include/libexif/exif-mem.h
+#usr/include/libexif/exif-mnote-data.h
+#usr/include/libexif/exif-tag.h
+#usr/include/libexif/exif-utils.h
+#usr/lib/libexif.la
+#usr/lib/libexif.so
+usr/lib/libexif.so.12
+usr/lib/libexif.so.12.3.3
+usr/lib/pkgconfig/libexif.pc
+#usr/share/doc/libexif
+#usr/share/doc/libexif/ABOUT-NLS
+#usr/share/doc/libexif/AUTHORS
+#usr/share/doc/libexif/COPYING
+#usr/share/doc/libexif/ChangeLog
+#usr/share/doc/libexif/NEWS
+#usr/share/doc/libexif/README
+#usr/share/locale/be/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/bs
+#usr/share/locale/bs/LC_MESSAGES
+#usr/share/locale/bs/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/cs/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/da/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/de/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_AU
+#usr/share/locale/en_AU/LC_MESSAGES
+#usr/share/locale/en_AU/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_CA
+#usr/share/locale/en_CA/LC_MESSAGES
+#usr/share/locale/en_CA/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_GB/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/es/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/fr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/it/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/ja/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/nl/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pl/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pt
+#usr/share/locale/pt/LC_MESSAGES
+#usr/share/locale/pt/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/ru/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sk/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sq
+#usr/share/locale/sq/LC_MESSAGES
+#usr/share/locale/sq/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sv/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/tr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/uk/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/vi/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/libexif-12.mo
--- /dev/null
+etc/minidlna.conf
+usr/sbin/minidlna
}
}
+# Add Orange Firewall Interface
+push(@network, $netsettings{'ORANGE_ADDRESS'});
+push(@masklen, "255.255.255.255" );
+push(@colour, ${Header::colourfw} );
+
# Add Orange Network
if ($netsettings{'ORANGE_DEV'}) {
push(@network, $netsettings{'ORANGE_NETADDRESS'});
# Source and destination.
my $sip;
+ my $sip_ret;
my $dip;
+ my $dip_ret;
my $sport;
+ my $sport_ret;
my $dport;
+ my $dport_ret;
my @packets;
my @bytes;
switch ($key) {
case "src" {
- $sip = $val;
+ if ($sip == "") {
+ $sip = $val;
+ } else {
+ $dip_ret = $val;
+ }
}
case "dst" {
- $dip = $val;
+ if ($dip == "") {
+ $dip = $val;
+ } else {
+ $sip_ret = $val;
+ }
}
case "sport" {
- $sport = $val;
+ if ($sport == "") {
+ $sport = $val;
+ } else {
+ $dport_ret = $val;
+ }
}
case "dport" {
- $dport = $val;
+ if ($dport == "") {
+ $dport = $val;
+ } else {
+ $sport_ret = $val;
+ }
}
case "packets" {
push(@packets, $val);
my $sserv = '';
if ($sport < 1024) {
$sserv = uc(getservbyport($sport, lc($l4proto)));
- if ($sserv ne '') {
- $sserv = " ($sserv)";
- }
}
my $dserv = '';
if ($dport < 1024) {
$dserv = uc(getservbyport($dport, lc($l4proto)));
- if ($dserv ne '') {
- $dserv = " ($dserv)";
- }
}
my $bytes_in = format_bytes($bytes[0]);
# Format TTL
$ttl = format_time($ttl);
+ my $sip_extra;
+ if ($sip ne $sip_ret) {
+ $sip_extra = "<font color='#FFFFFF'>></font> ";
+ $sip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$sip_ret'>";
+ $sip_extra .= " <font color='#FFFFFF'>$sip_ret</font>";
+ $sip_extra .= "</a>";
+ }
+
+ my $dip_extra;
+ if ($dip ne $dip_ret) {
+ $dip_extra = "<font color='#FFFFFF'>></font> ";
+ $dip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$dip_ret'>";
+ $dip_extra .= " <font color='#FFFFFF'>$dip_ret</font>";
+ $dip_extra .= "</a>";
+ }
+
+
+ my $sport_extra;
+ if ($sport ne $sport_ret) {
+ my $sserv_ret = '';
+ if ($sport_ret < 1024) {
+ $sserv_ret = uc(getservbyport($sport_ret, lc($l4proto)));
+ }
+
+ $sport_extra = "<font color='#FFFFFF'>></font> ";
+ $sport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$sport_ret' target='top' title='$sserv_ret'>";
+ $sport_extra .= " <font color='#FFFFFF'>$sport_ret</font>";
+ $sport_extra .= "</a>";
+ }
+
+ my $dport_extra;
+ if ($dport ne $dport_ret) {
+ my $dserv_ret = '';
+ if ($dport_ret < 1024) {
+ $dserv_ret = uc(getservbyport($dport_ret, lc($l4proto)));
+ }
+
+ $dport_extra = "<font color='#FFFFFF'>></font> ";
+ $dport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$dport_ret' target='top' title='$dserv_ret'>";
+ $dport_extra .= " <font color='#FFFFFF'>$dport_ret</font>";
+ $dport_extra .= "</a>";
+ }
+
print <<END;
<tr>
<td align='center'>$l4proto</td>
<a href='/cgi-bin/ipinfo.cgi?ip=$sip'>
<font color='#FFFFFF'>$sip</font>
</a>
+ $sip_extra
</td>
<td align='center' bgcolor='$sip_colour'>
- <a href='http://isc.sans.org/port_details.php?port=$sport' target='top'>
- <font color='#FFFFFF'>$sport$sserv</font>
+ <a href='http://isc.sans.org/port_details.php?port=$sport' target='top' title='$sserv'>
+ <font color='#FFFFFF'>$sport</font>
</a>
+ $sport_extra
</td>
<td align='center' bgcolor='$dip_colour'>
<a href='/cgi-bin/ipinfo.cgi?ip=$dip'>
<font color='#FFFFFF'>$dip</font>
</a>
+ $dip_extra
</td>
<td align='center' bgcolor='$dip_colour'>
- <a href='http://isc.sans.org/port_details.php?port=$dport' target='top'>
- <font color='#FFFFFF'>$dport$dserv</font>
+ <a href='http://isc.sans.org/port_details.php?port=$dport' target='top' title='$dserv'>
+ <font color='#FFFFFF'>$dport</font>
</a>
+ $dport_extra
</td>
<td align='center'>
$bytes_in / $bytes_out
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# 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 3 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, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 1.2.1
+
+THISAPP = flac-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = flac
+PAK_VER = 1
+
+DEPS = "libogg"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 153c8b15a54da428d1f0fadc756c22c7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-asm.patch
+ cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/flac-1.2.1-bitreader.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-cflags.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-gcc43.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-hidesyms.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-tests.patch
+ cd $(DIR_APP) && ./autogen.sh -V
+ cd $(DIR_APP) && \
+ ./configure \
+ --prefix=/usr \
+ --disable-xmms-plugin \
+ --disable-thorough-tests
+ cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+ cd $(DIR_APP) && make install
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
include Config
-VER = 0.9.6
+VER = 0.9.7
THISAPP = icecc-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = icecc
-PAK_VER = 2
+PAK_VER = 3
DEPS = ""
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c6dacb3f28eade45f603a99245cde4fd
+$(DL_FILE)_MD5 = c06900c2f4011428d0d48826a04f74fb
install : $(TARGET)
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/icecream-rename-scheduler.patch
+ cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/icecream-0.9.7-platform-arm.patch
cd $(DIR_APP) && ./configure \
--prefix=/opt/icecream
cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# 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 3 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, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 0.6.21
+
+THISAPP = libexif-$(VER)
+DL_FILE = $(THISAPP).tar.bz2
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = libexif
+PAK_VER = 1
+
+DEPS = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 27339b89850f28c8f1c237f233e05b27
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
+ cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+ cd $(DIR_APP) && make install
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# 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 3 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, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 1.0.25
+
+THISAPP = minidlna-$(VER)
+DL_FILE = minidlna_$(VER)_src.tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = minidlna
+PAK_VER = 1
+
+DEPS = "ffmpeg flac libexif libid3tag libogg"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d966256baf2f9b068b9de871ab5dade5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+ cd $(DIR_APP) && make install
+
+ # Install configuration.
+ install -m 644 $(DIR_SRC)/config/minidlna/minidlna.conf /etc
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
include Config
-VER = 0.98.39
+VER = 2.10.03
THISAPP = nasm-$(VER)
-DL_FILE = $(THISAPP).tar.bz2
+DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2032ad44c7359f7a9a166a40a633e772
+$(DL_FILE)_MD5 = a5d0ed070476a7c5b4f0893dc4a4ea4b
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-security_fix-1.patch
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
ipfiremake libnl
ipfiremake libidn
ipfiremake libjpeg
+ ipfiremake libexif
ipfiremake libpng
ipfiremake libtiff
ipfiremake libart
ipfiremake libogg
ipfiremake libvorbis
ipfiremake libdvbpsi
+ ipfiremake flac
ipfiremake lame
ipfiremake sox
ipfiremake libshout
ipfiremake lcd4linux
ipfiremake mtr
ipfiremake tcpick
+ ipfiremake minidlna
echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
echo >> $BASEDIR/build/var/ipfire/firebuild
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/stream_decoder.c.asm flac-1.2.1/src/libFLAC/stream_decoder.c
+--- flac-1.2.1/src/libFLAC/stream_decoder.c.asm 2007-09-13 17:38:05.000000000 +0200
++++ flac-1.2.1/src/libFLAC/stream_decoder.c 2008-01-29 10:32:17.000000000 +0100
+@@ -421,7 +421,7 @@ static FLAC__StreamDecoderInitStatus ini
+ #ifdef FLAC__CPU_IA32
+ FLAC__ASSERT(decoder->private_->cpuinfo.type == FLAC__CPUINFO_TYPE_IA32);
+ #ifdef FLAC__HAS_NASM
+-#if 1 /*@@@@@@ OPT: not clearly faster, needs more testing */
++#if 0 /*@@@@@@ OPT: not clearly faster, needs more testing */
+ if(decoder->private_->cpuinfo.data.ia32.bswap)
+ decoder->private_->local_bitreader_read_rice_signed_block = FLAC__bitreader_read_rice_signed_block_asm_ia32_bswap;
+ #endif
+diff -up flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm 2008-01-29 10:34:09.000000000 +0100
+@@ -1507,5 +1507,5 @@ cident FLAC__lpc_restore_signal_asm_ia32
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/Makefile.am.asm flac-1.2.1/src/libFLAC/ia32/Makefile.am
+--- flac-1.2.1/src/libFLAC/ia32/Makefile.am.asm 2007-04-04 02:01:13.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/Makefile.am 2008-03-17 14:04:37.000000000 +0100
+@@ -37,7 +37,6 @@ STRIP_NON_ASM = sh $(top_srcdir)/strip_n
+
+ noinst_LTLIBRARIES = libFLAC-asm.la
+ libFLAC_asm_la_SOURCES = \
+- bitreader_asm.nasm \
+ cpu_asm.nasm \
+ fixed_asm.nasm \
+ lpc_asm.nasm \
+diff -up flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm.asm 2007-03-30 02:54:53.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm 2008-01-29 10:32:57.000000000 +0100
+@@ -564,5 +564,5 @@ cident FLAC__bitreader_read_rice_signed_
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm 2008-01-29 10:33:52.000000000 +0100
+@@ -308,5 +308,5 @@ cident FLAC__fixed_compute_best_predicto
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm 2008-01-29 10:33:24.000000000 +0100
+@@ -117,5 +117,5 @@ cident FLAC__cpu_info_extended_amd_asm_i
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.asm 2007-06-19 22:01:27.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm 2008-01-29 10:34:40.000000000 +0100
+@@ -155,5 +155,5 @@ cident precompute_partition_info_sums_32
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
--- /dev/null
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 14 Mar 2008 11:07:07 -0000
+@@ -69,13 +69,12 @@
+ #endif
+ /* counts the # of zero MSBs in a word */
+ #define COUNT_ZERO_MSBS(word) ( \
+- (word) <= 0xffff ? \
+- ( (word) <= 0xff? byte_to_unary_table[word] + 24 : byte_to_unary_table[(word) >> 8] + 16 ) : \
+- ( (word) <= 0xffffff? byte_to_unary_table[word >> 16] + 8 : byte_to_unary_table[(word) >> 24] ) \
++ word > 0xffffff ? byte_to_unary_table[(word) >> 24] : \
++ !word ? 32 : \
++ word > 0xffff ? byte_to_unary_table[word >> 16] + 8 : \
++ word > 0xff ? byte_to_unary_table[(word) >> 8] + 16 : \
++ byte_to_unary_table[word] + 24 \
+ )
+-/* this alternate might be slightly faster on some systems/compilers: */
+-#define COUNT_ZERO_MSBS2(word) ( (word) <= 0xff ? byte_to_unary_table[word] + 24 : ((word) <= 0xffff ? byte_to_unary_table[(word) >> 8] + 16 : ((word) <= 0xffffff ? byte_to_unary_table[(word) >> 16] + 8 : byte_to_unary_table[(word) >> 24])) )
+-
+
+ /*
+ * This should be at least twice as large as the largest number of words
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 14 Mar 2008 13:19:46 -0000
+@@ -149,6 +148,7 @@
+ FLAC__CPUInfo cpu_info;
+ };
+
++#if FLAC__BYTES_PER_WORD == 4 && FLAC__CPU_IA32
+ #ifdef _MSC_VER
+ /* OPT: an MSVC built-in would be better */
+ static _inline FLAC__uint32 local_swap32_(FLAC__uint32 x)
+@@ -173,6 +173,15 @@
+ done1:
+ }
+ }
++#elif __GNUC__
++static void local_swap32_block_(FLAC__uint32 *start, FLAC__uint32 len)
++{
++ FLAC__uint32 *end;
++
++ for(end = start + len; start < end; start++)
++ asm ("bswap %0" : "=r"(*start) : "0"(*start));
++}
++#endif
+ #endif
+
+ static FLaC__INLINE void crc16_update_word_(FLAC__BitReader *br, brword word)
+@@ -263,7 +272,7 @@
+ #if WORDS_BIGENDIAN
+ #else
+ end = (br->words*FLAC__BYTES_PER_WORD + br->bytes + bytes + (FLAC__BYTES_PER_WORD-1)) / FLAC__BYTES_PER_WORD;
+-# if defined(_MSC_VER) && (FLAC__BYTES_PER_WORD == 4)
++# if FLAC__CPU_IA32 && (__GNUC__ || defined(_MSC_VER)) && FLAC__BYTES_PER_WORD == 4
+ if(br->cpu_info.type == FLAC__CPUINFO_TYPE_IA32 && br->cpu_info.data.ia32.bswap) {
+ start = br->words;
+ local_swap32_block_(br->buffer + start, end - start);
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 17 Mar 2008 15:42:57 -0000
+@@ -803,379 +812,144 @@
+ }
+
+ /* this is by far the most heavily used reader call. it ain't pretty but it's fast */
+-/* a lot of the logic is copied, then adapted, from FLAC__bitreader_read_unary_unsigned() and FLAC__bitreader_read_raw_uint32() */
+ FLAC__bool FLAC__bitreader_read_rice_signed_block(FLAC__BitReader *br, int vals[], unsigned nvals, unsigned parameter)
+-/* OPT: possibly faster version for use with MSVC */
+-#ifdef _MSC_VER
+ {
+- unsigned i;
+- unsigned uval = 0;
+- unsigned bits; /* the # of binary LSBs left to read to finish a rice codeword */
+-
+ /* try and get br->consumed_words and br->consumed_bits into register;
+ * must remember to flush them back to *br before calling other
+- * bitwriter functions that use them, and before returning */
+- register unsigned cwords;
+- register unsigned cbits;
++ * bitreader functions that use them, and before returning */
++ unsigned cwords, words, lsbs, msbs, x, y;
++ unsigned ucbits; /* keep track of the number of unconsumed bits in word */
++ brword b;
++ int *val, *end;
+
+ FLAC__ASSERT(0 != br);
+ FLAC__ASSERT(0 != br->buffer);
+ /* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
+ FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
+ FLAC__ASSERT(parameter < 32);
+- /* the above two asserts also guarantee that the binary part never straddles more that 2 words, so we don't have to loop to read it */
+-
+- if(nvals == 0)
+- return true;
+-
+- cbits = br->consumed_bits;
+- cwords = br->consumed_words;
++ /* the above two asserts also guarantee that the binary part never straddles more than 2 words, so we don't have to loop to read it */
+
+- while(1) {
++ val = vals;
++ end = vals + nvals;
+
+- /* read unary part */
+- while(1) {
+- while(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- brword b = br->buffer[cwords] << cbits;
+- if(b) {
+-#if 0 /* slower, probably due to bad register allocation... */ && defined FLAC__CPU_IA32 && !defined FLAC__NO_ASM && FLAC__BITS_PER_WORD == 32
+- __asm {
+- bsr eax, b
+- not eax
+- and eax, 31
+- mov i, eax
+- }
+-#else
+- i = COUNT_ZERO_MSBS(b);
+-#endif
+- uval += i;
+- bits = parameter;
+- i++;
+- cbits += i;
+- if(cbits == FLAC__BITS_PER_WORD) {
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- }
+- goto break1;
+- }
+- else {
+- uval += FLAC__BITS_PER_WORD - cbits;
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* at this point we've eaten up all the whole words; have to try
+- * reading through any tail bytes before calling the read callback.
+- * this is a repeat of the above logic adjusted for the fact we
+- * don't have a whole word. note though if the client is feeding
+- * us data a byte at a time (unlikely), br->consumed_bits may not
+- * be zero.
+- */
+- if(br->bytes) {
+- const unsigned end = br->bytes * 8;
+- brword b = (br->buffer[cwords] & (FLAC__WORD_ALL_ONES << (FLAC__BITS_PER_WORD-end))) << cbits;
+- if(b) {
+- i = COUNT_ZERO_MSBS(b);
+- uval += i;
+- bits = parameter;
+- i++;
+- cbits += i;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- goto break1;
+- }
+- else {
+- uval += end - cbits;
+- cbits += end;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
++ if(parameter == 0) {
++ while(val < end) {
++ /* read the unary MSBs and end bit */
++ if(!FLAC__bitreader_read_unary_unsigned(br, &msbs))
+ return false;
+- cwords = br->consumed_words;
+- }
+-break1:
+- /* read binary part */
+- FLAC__ASSERT(cwords <= br->words);
+-
+- if(bits) {
+- while((br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits < bits) {
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
+- return false;
+- cwords = br->consumed_words;
+- }
+- if(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- const unsigned n = FLAC__BITS_PER_WORD - cbits;
+- const brword word = br->buffer[cwords];
+- if(bits < n) {
+- uval <<= bits;
+- uval |= (word & (FLAC__WORD_ALL_ONES >> cbits)) >> (n-bits);
+- cbits += bits;
+- goto break2;
+- }
+- uval <<= n;
+- uval |= word & (FLAC__WORD_ALL_ONES >> cbits);
+- bits -= n;
+- crc16_update_word_(br, word);
+- cwords++;
+- cbits = 0;
+- if(bits) { /* if there are still bits left to read, there have to be less than 32 so they will all be in the next word */
+- uval <<= bits;
+- uval |= (br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits));
+- cbits = bits;
+- }
+- goto break2;
+- }
+- else {
+- FLAC__ASSERT(bits < FLAC__BITS_PER_WORD);
+- uval <<= bits;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits);
+- cbits = bits;
+- goto break2;
+- }
+- }
+- else {
+- /* in this case we're starting our read at a partial tail word;
+- * the reader has guaranteed that we have at least 'bits' bits
+- * available to read, which makes this case simpler.
+- */
+- uval <<= bits;
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- FLAC__ASSERT(cbits + bits <= br->bytes*8);
+- uval |= (br->buffer[cwords] & (FLAC__WORD_ALL_ONES >> cbits)) >> (FLAC__BITS_PER_WORD-cbits-bits);
+- cbits += bits;
+- goto break2;
+- }
+- else {
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits);
+- cbits += bits;
+- goto break2;
+- }
+- }
+- }
+-break2:
+- /* compose the value */
+- *vals = (int)(uval >> 1 ^ -(int)(uval & 1));
+
+- /* are we done? */
+- --nvals;
+- if(nvals == 0) {
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- return true;
++ *val++ = (int)(msbs >> 1) ^ -(int)(msbs & 1);
+ }
+
+- uval = 0;
+- ++vals;
+-
++ return true;
+ }
+-}
+-#else
+-{
+- unsigned i;
+- unsigned uval = 0;
+
+- /* try and get br->consumed_words and br->consumed_bits into register;
+- * must remember to flush them back to *br before calling other
+- * bitwriter functions that use them, and before returning */
+- register unsigned cwords;
+- register unsigned cbits;
+- unsigned ucbits; /* keep track of the number of unconsumed bits in the buffer */
++ FLAC__ASSERT(parameter > 0);
+
+- FLAC__ASSERT(0 != br);
+- FLAC__ASSERT(0 != br->buffer);
+- /* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
+- FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
+- FLAC__ASSERT(parameter < 32);
+- /* the above two asserts also guarantee that the binary part never straddles more than 2 words, so we don't have to loop to read it */
++ cwords = br->consumed_words;
++ words = br->words;
+
+- if(nvals == 0)
+- return true;
++ /* if we've not consumed up to a partial tail word... */
++ if(cwords >= words) {
++ x = 0;
++ goto process_tail;
++ }
++
++ ucbits = FLAC__BITS_PER_WORD - br->consumed_bits;
++ b = br->buffer[cwords] << br->consumed_bits; /* keep unconsumed bits aligned to left */
++
++ while(val < end) {
++ /* read the unary MSBs and end bit */
++ x = y = COUNT_ZERO_MSBS(b);
++ if(x == FLAC__BITS_PER_WORD) {
++ x = ucbits;
++ do {
++ /* didn't find stop bit yet, have to keep going... */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ if (cwords >= words)
++ goto incomplete_msbs;
++ b = br->buffer[cwords];
++ y = COUNT_ZERO_MSBS(b);
++ x += y;
++ } while(y == FLAC__BITS_PER_WORD);
++ }
++ b <<= y;
++ b <<= 1; /* account for stop bit */
++ ucbits = (ucbits - x - 1) % FLAC__BITS_PER_WORD;
++ msbs = x;
++
++ /* read the binary LSBs */
++ x = b >> (FLAC__BITS_PER_WORD - parameter);
++ if(parameter <= ucbits) {
++ ucbits -= parameter;
++ b <<= parameter;
++ } else {
++ /* there are still bits left to read, they will all be in the next word */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ if (cwords >= words)
++ goto incomplete_lsbs;
++ b = br->buffer[cwords];
++ ucbits += FLAC__BITS_PER_WORD - parameter;
++ x |= b >> ucbits;
++ b <<= FLAC__BITS_PER_WORD - ucbits;
++ }
++ lsbs = x;
+
+- cbits = br->consumed_bits;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits;
++ /* compose the value */
++ x = (msbs << parameter) | lsbs;
++ *val++ = (int)(x >> 1) ^ -(int)(x & 1);
+
+- while(1) {
++ continue;
+
+- /* read unary part */
+- while(1) {
+- while(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- brword b = br->buffer[cwords] << cbits;
+- if(b) {
+-#if 0 /* is not discernably faster... */ && defined FLAC__CPU_IA32 && !defined FLAC__NO_ASM && FLAC__BITS_PER_WORD == 32 && defined __GNUC__
+- asm volatile (
+- "bsrl %1, %0;"
+- "notl %0;"
+- "andl $31, %0;"
+- : "=r"(i)
+- : "r"(b)
+- );
+-#else
+- i = COUNT_ZERO_MSBS(b);
+-#endif
+- uval += i;
+- cbits += i;
+- cbits++; /* skip over stop bit */
+- if(cbits >= FLAC__BITS_PER_WORD) { /* faster way of testing if(cbits == FLAC__BITS_PER_WORD) */
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- }
+- goto break1;
+- }
+- else {
+- uval += FLAC__BITS_PER_WORD - cbits;
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* at this point we've eaten up all the whole words; have to try
+- * reading through any tail bytes before calling the read callback.
+- * this is a repeat of the above logic adjusted for the fact we
+- * don't have a whole word. note though if the client is feeding
+- * us data a byte at a time (unlikely), br->consumed_bits may not
+- * be zero.
+- */
+- if(br->bytes) {
+- const unsigned end = br->bytes * 8;
+- brword b = (br->buffer[cwords] & ~(FLAC__WORD_ALL_ONES >> end)) << cbits;
+- if(b) {
+- i = COUNT_ZERO_MSBS(b);
+- uval += i;
+- cbits += i;
+- cbits++; /* skip over stop bit */
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- goto break1;
+- }
+- else {
+- uval += end - cbits;
+- cbits += end;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- /* didn't find stop bit yet, have to keep going... */
+- }
++ /* at this point we've eaten up all the whole words */
++process_tail:
++ do {
++ if(0) {
++incomplete_msbs:
++ br->consumed_bits = 0;
++ br->consumed_words = cwords;
+ }
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
++
++ /* read the unary MSBs and end bit */
++ if(!FLAC__bitreader_read_unary_unsigned(br, &msbs))
+ return false;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits + uval;
+- /* + uval to offset our count by the # of unary bits already
+- * consumed before the read, because we will add these back
+- * in all at once at break1
+- */
+- }
+-break1:
+- ucbits -= uval;
+- ucbits--; /* account for stop bit */
+-
+- /* read binary part */
+- FLAC__ASSERT(cwords <= br->words);
+-
+- if(parameter) {
+- while(ucbits < parameter) {
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
++ msbs += x;
++ x = ucbits = 0;
++
++ if(0) {
++incomplete_lsbs:
++ br->consumed_bits = 0;
+ br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
+- return false;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits;
+- }
+- if(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just slower than necessary for that case */
+- const unsigned n = FLAC__BITS_PER_WORD - cbits;
+- const brword word = br->buffer[cwords];
+- if(parameter < n) {
+- uval <<= parameter;
+- uval |= (word & (FLAC__WORD_ALL_ONES >> cbits)) >> (n-parameter);
+- cbits += parameter;
+- }
+- else {
+- uval <<= n;
+- uval |= word & (FLAC__WORD_ALL_ONES >> cbits);
+- crc16_update_word_(br, word);
+- cwords++;
+- cbits = parameter - n;
+- if(cbits) { /* parameter > n, i.e. if there are still bits left to read, there have to be less than 32 so they will all be in the next word */
+- uval <<= cbits;
+- uval |= (br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits));
+- }
+- }
+- }
+- else {
+- cbits = parameter;
+- uval <<= parameter;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits);
+- }
+ }
+- else {
+- /* in this case we're starting our read at a partial tail word;
+- * the reader has guaranteed that we have at least 'parameter'
+- * bits available to read, which makes this case simpler.
+- */
+- uval <<= parameter;
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- FLAC__ASSERT(cbits + parameter <= br->bytes*8);
+- uval |= (br->buffer[cwords] & (FLAC__WORD_ALL_ONES >> cbits)) >> (FLAC__BITS_PER_WORD-cbits-parameter);
+- cbits += parameter;
+- }
+- else {
+- cbits = parameter;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits);
+- }
+- }
+- }
+
+- ucbits -= parameter;
+-
+- /* compose the value */
+- *vals = (int)(uval >> 1 ^ -(int)(uval & 1));
++ /* read the binary LSBs */
++ if(!FLAC__bitreader_read_raw_uint32(br, &lsbs, parameter - ucbits))
++ return false;
++ lsbs = x | lsbs;
+
+- /* are we done? */
+- --nvals;
+- if(nvals == 0) {
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- return true;
+- }
++ /* compose the value */
++ x = (msbs << parameter) | lsbs;
++ *val++ = (int)(x >> 1) ^ -(int)(x & 1);
++ x = 0;
+
+- uval = 0;
+- ++vals;
++ cwords = br->consumed_words;
++ words = br->words;
++ ucbits = FLAC__BITS_PER_WORD - br->consumed_bits;
++ b = br->buffer[cwords] << br->consumed_bits;
++ } while(cwords >= words && val < end);
++ }
+
++ if(ucbits == 0 && cwords < words) {
++ /* don't leave the head word with no unconsumed bits */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ ucbits = FLAC__BITS_PER_WORD;
+ }
++
++ br->consumed_bits = FLAC__BITS_PER_WORD - ucbits;
++ br->consumed_words = cwords;
++
++ return true;
+ }
+-#endif
+
+ #if 0 /* UNUSED */
+ FLAC__bool FLAC__bitreader_read_golomb_signed(FLAC__BitReader *br, int *val, unsigned parameter)
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/Makefile.am.cflags flac-1.2.1/src/libFLAC/Makefile.am
+--- flac-1.2.1/src/libFLAC/Makefile.am.cflags 2007-09-14 23:06:17.000000000 +0200
++++ flac-1.2.1/src/libFLAC/Makefile.am 2008-03-17 14:19:29.000000000 +0100
+@@ -41,7 +41,7 @@ CPUCFLAGS = -faltivec -force_cpusubtype_
+ else
+ # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
+ #@@@ PPC optimizations temporarily disabled
+-CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM
++CPUCFLAGS = -DFLAC__NO_ASM
+ endif
+ endif
+
+@@ -69,7 +69,7 @@ endif
+ endif
+ endif
+
+-libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@
++libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@ libFLAC_extracflags.la
+
+ SUBDIRS = $(ARCH_SUBDIRS) include .
+
+@@ -112,7 +112,10 @@ libFLAC_la_SOURCES = \
+ metadata_iterators.c \
+ metadata_object.c \
+ stream_decoder.c \
+- stream_encoder.c \
+ stream_encoder_framing.c \
+ window.c \
+ $(extra_ogg_sources)
++
++noinst_LTLIBRARIES = libFLAC_extracflags.la
++libFLAC_extracflags_la_SOURCES = stream_encoder.c
++libFLAC_extracflags_la_CFLAGS = $(AM_CFLAGS) -funroll-loops
+diff -up flac-1.2.1/configure.in.cflags flac-1.2.1/configure.in
+--- flac-1.2.1/configure.in.cflags 2007-09-13 17:48:42.000000000 +0200
++++ flac-1.2.1/configure.in 2008-03-17 14:17:08.000000000 +0100
+@@ -301,7 +301,7 @@ else
+ CPPFLAGS="-DNDEBUG $CPPFLAGS"
+ if test "x$GCC" = xyes; then
+ CPPFLAGS="-DFLaC__INLINE=__inline__ $CPPFLAGS"
+- CFLAGS="-O3 -funroll-loops -finline-functions -Wall -W -Winline $CFLAGS"
++ CFLAGS="-Wall -W -Winline $CFLAGS"
+ fi
+ fi
+
--- /dev/null
+diff -up flac-1.2.1/examples/cpp/encode/file/main.cpp.gcc43 flac-1.2.1/examples/cpp/encode/file/main.cpp
+--- flac-1.2.1/examples/cpp/encode/file/main.cpp.gcc43 2007-09-13 17:58:03.000000000 +0200
++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2008-01-08 10:27:39.000000000 +0100
+@@ -29,6 +29,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <string.h>
+ #include <stdlib.h>
+ #include "FLAC++/metadata.h"
+ #include "FLAC++/encoder.h"
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/include/private/ogg_helper.h.hidesyms flac-1.2.1/src/libFLAC/include/private/ogg_helper.h
+--- flac-1.2.1/src/libFLAC/include/private/ogg_helper.h.hidesyms 2007-02-02 07:22:40.000000000 +0100
++++ flac-1.2.1/src/libFLAC/include/private/ogg_helper.h 2008-01-29 15:27:13.000000000 +0100
+@@ -35,9 +35,13 @@
+ #include <ogg/ogg.h>
+ #include "FLAC/stream_encoder.h" /* for FLAC__StreamEncoder */
+
++__attribute__((__visibility__("hidden")))
+ void simple_ogg_page__init(ogg_page *page);
++__attribute__((__visibility__("hidden")))
+ void simple_ogg_page__clear(ogg_page *page);
++__attribute__((__visibility__("hidden")))
+ FLAC__bool simple_ogg_page__get_at(FLAC__StreamEncoder *encoder, FLAC__uint64 position, ogg_page *page, FLAC__StreamEncoderSeekCallback seek_callback, FLAC__StreamEncoderReadCallback read_callback, void *client_data);
++__attribute__((__visibility__("hidden")))
+ FLAC__bool simple_ogg_page__set_at(FLAC__StreamEncoder *encoder, FLAC__uint64 position, ogg_page *page, FLAC__StreamEncoderSeekCallback seek_callback, FLAC__StreamEncoderWriteCallback write_callback, void *client_data);
+
+ #endif
+diff -up flac-1.2.1/src/libFLAC/include/private/bitreader.h.hidesyms flac-1.2.1/src/libFLAC/include/private/bitreader.h
+--- flac-1.2.1/src/libFLAC/include/private/bitreader.h.hidesyms 2007-07-10 22:22:19.000000000 +0200
++++ flac-1.2.1/src/libFLAC/include/private/bitreader.h 2008-01-29 15:27:13.000000000 +0100
+@@ -95,5 +95,6 @@ FLAC__bool FLAC__bitreader_read_golomb_u
+ FLAC__bool FLAC__bitreader_read_utf8_uint32(FLAC__BitReader *br, FLAC__uint32 *val, FLAC__byte *raw, unsigned *rawlen);
+ FLAC__bool FLAC__bitreader_read_utf8_uint64(FLAC__BitReader *br, FLAC__uint64 *val, FLAC__byte *raw, unsigned *rawlen);
+
++__attribute__((__visibility__("hidden")))
+ FLAC__bool bitreader_read_from_client_(FLAC__BitReader *br);
+ #endif
+diff -up flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.hidesyms flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.hidesyms 2008-01-29 15:27:13.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm 2008-01-29 15:28:32.000000000 +0100
+@@ -34,7 +34,7 @@
+
+ data_section
+
+-cglobal precompute_partition_info_sums_32bit_asm_ia32_
++cglobal precompute_partition_info_sums_32bit_asm_ia32_:function hidden
+
+ code_section
+
--- /dev/null
+diff -up flac-1.2.1/test/test_seeking.sh.tests flac-1.2.1/test/test_seeking.sh
+--- flac-1.2.1/test/test_seeking.sh.tests 2007-09-11 09:33:04.000000000 +0200
++++ flac-1.2.1/test/test_seeking.sh 2008-01-29 13:52:03.000000000 +0100
+@@ -103,7 +103,7 @@ tiny_seek_count=100
+ if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
+ small_seek_count=10000
+ else
+- small_seek_count=100000
++ small_seek_count=100
+ fi
+
+ for suffix in '' '-s' ; do
+diff -up flac-1.2.1/test/test_streams.sh.tests flac-1.2.1/test/test_streams.sh
+--- flac-1.2.1/test/test_streams.sh.tests 2007-06-16 21:58:39.000000000 +0200
++++ flac-1.2.1/test/test_streams.sh 2008-03-17 13:57:39.000000000 +0100
+@@ -39,6 +39,10 @@ if [ x"$FLAC__TEST_LEVEL" = x ] ; then
+ FLAC__TEST_LEVEL=1
+ fi
+
++if [ "$FLAC__TEST_LEVEL" -eq 0 ] ; then
++ exit 0
++fi
++
+ flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
+
+ run_flac ()
+diff -up flac-1.2.1/src/test_streams/main.c.tests flac-1.2.1/src/test_streams/main.c
+--- flac-1.2.1/src/test_streams/main.c.tests 2007-08-31 07:54:49.000000000 +0200
++++ flac-1.2.1/src/test_streams/main.c 2008-01-29 13:53:46.000000000 +0100
+@@ -898,9 +898,9 @@ int main(int argc, char *argv[])
+ if(!generate_noise("noise.raw", 65536 * 8 * 3)) return 1;
+ if(!generate_noise("noise8m32.raw", 32)) return 1;
+ if(!generate_wackywavs()) return 1;
+- for(channels = 1; channels <= 8; channels++) {
++ for(channels = 1; channels <= 2; channels++) {
+ unsigned bits_per_sample;
+- for(bits_per_sample = 4; bits_per_sample <= 24; bits_per_sample++) {
++ for(bits_per_sample = 8; bits_per_sample <= 24; bits_per_sample += 8) {
+ static const unsigned nsamples[] = { 1, 111, 4777 } ;
+ unsigned samples;
+ for(samples = 0; samples < sizeof(nsamples)/sizeof(nsamples[0]); samples++) {
--- /dev/null
+Index: services/scheduler.cpp
+===================================================================
+--- services/scheduler.cpp (revision 1310078)
++++ services/scheduler.cpp (working copy)
+@@ -52,7 +52,7 @@
+ #include "config.h"
+ #include "bench.h"
+
+-#define DEBUG_SCHEDULER 0
++#define DEBUG_SCHEDULER 1
+
+ /* TODO:
+ * leak check
+@@ -613,6 +613,8 @@
+
+ platform_map.insert( make_pair( string( "ppc" ), string( "ppc64" ) ) );
+ platform_map.insert( make_pair( string( "s390" ), string( "s390x" ) ) );
++
++ platform_map.insert( make_pair( string( "armv5tel"), string( "armv7l" ) ) );
+ }
+
+ multimap<string, string>::const_iterator end = platform_map.upper_bound( target );