summaryrefslogtreecommitdiff
path: root/devel/mad-flute
diff options
context:
space:
mode:
authoragc <agc>2012-05-02 04:43:11 +0000
committeragc <agc>2012-05-02 04:43:11 +0000
commit0c169ce8651b857cdedd048b27e8023fce34ca27 (patch)
treef611c77a31eb543b4792c357770c78adb82b75bd /devel/mad-flute
parent733fa30002acc51ed7bceb2de7c95e72abc25d1b (diff)
downloadpkgsrc-0c169ce8651b857cdedd048b27e8023fce34ca27.tar.gz
Initial import of mad-flute-1.7 into the packages collection
MAD project implemented two protocols designed for reliable content delivery. File Delivery over Unidirectional Transport (FLUTE) is a protocol for the unidirectional delivery of files over the Internet, which is particularly suited to multicast networks. FLUTE builds on Asyncronous Layered Coding (ALC), the base protocol designed for massively scalable multicast distribution. Asynchronous Layered Coding combines the Layered Coding Transport (LCT) building block, a multiple rate congestion control building block and the Forward Error Correction (FEC) building block to provide congestion controlled reliable asynchronous delivery of content to an unlimited number of concurrent receivers from a single sender. MAD-ALCLIB library is an implementation of the ALC/LCT protocol, along with the RLC congestion control protocol and Compact No-Code, Simple XOR and Reed-Solomon FEC schemes. Session Description Protocol (SDP) can be used to describe FLUTE sessions. MAD-SDPLIB library is an implementation of "SDP Descriptors for FLUTE" Internet-Draft. MAD-FLUTELIB is an implementation of the FLUTE protocol, and it builds on MAD-ALCLIB and MAD-SDPLIB libraries. MAD-FLUTE is a multicast file transfer tool build on the above mentioned libraries.
Diffstat (limited to 'devel/mad-flute')
-rw-r--r--devel/mad-flute/DESCR20
-rw-r--r--devel/mad-flute/Makefile26
-rw-r--r--devel/mad-flute/PLIST3
-rw-r--r--devel/mad-flute/distinfo18
-rw-r--r--devel/mad-flute/patches/patch-aa150
-rw-r--r--devel/mad-flute/patches/patch-ab23
-rw-r--r--devel/mad-flute/patches/patch-ac61
-rw-r--r--devel/mad-flute/patches/patch-ad15
-rw-r--r--devel/mad-flute/patches/patch-ae16
-rw-r--r--devel/mad-flute/patches/patch-af15
-rw-r--r--devel/mad-flute/patches/patch-ag42
-rw-r--r--devel/mad-flute/patches/patch-ah146
-rw-r--r--devel/mad-flute/patches/patch-ai43
-rw-r--r--devel/mad-flute/patches/patch-aj50
-rw-r--r--devel/mad-flute/patches/patch-ak59
-rw-r--r--devel/mad-flute/patches/patch-al33
-rw-r--r--devel/mad-flute/patches/patch-am28
17 files changed, 748 insertions, 0 deletions
diff --git a/devel/mad-flute/DESCR b/devel/mad-flute/DESCR
new file mode 100644
index 00000000000..6fe5038d4fc
--- /dev/null
+++ b/devel/mad-flute/DESCR
@@ -0,0 +1,20 @@
+MAD project implemented two protocols designed for reliable content
+delivery. File Delivery over Unidirectional Transport (FLUTE) is a
+protocol for the unidirectional delivery of files over the Internet,
+which is particularly suited to multicast networks. FLUTE builds on
+Asyncronous Layered Coding (ALC), the base protocol designed for
+massively scalable multicast distribution. Asynchronous Layered
+Coding combines the Layered Coding Transport (LCT) building block, a
+multiple rate congestion control building block and the Forward Error
+Correction (FEC) building block to provide congestion controlled
+reliable asynchronous delivery of content to an unlimited number of
+concurrent receivers from a single sender.
+
+MAD-ALCLIB library is an implementation of the ALC/LCT protocol, along
+with the RLC congestion control protocol and Compact No-Code, Simple
+XOR and Reed-Solomon FEC schemes. Session Description Protocol (SDP)
+can be used to describe FLUTE sessions. MAD-SDPLIB library is an
+implementation of "SDP Descriptors for FLUTE" Internet-Draft.
+MAD-FLUTELIB is an implementation of the FLUTE protocol, and it builds
+on MAD-ALCLIB and MAD-SDPLIB libraries. MAD-FLUTE is a multicast file
+transfer tool build on the above mentioned libraries.
diff --git a/devel/mad-flute/Makefile b/devel/mad-flute/Makefile
new file mode 100644
index 00000000000..96876cdcc82
--- /dev/null
+++ b/devel/mad-flute/Makefile
@@ -0,0 +1,26 @@
+# $NetBSD: Makefile,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+DISTNAME= mad_fcl_v1.7_src
+PKGNAME= mad-flute-1.7
+CATEGORIES= devel
+MASTER_SITES= http://mad.cs.tut.fi/download/
+
+MAINTAINER= agc@NetBSD.org
+HOMEPAGE= http://mad.cs.tut.fi/
+COMMENT= Reliable Multicast Layering
+LICENSE= gnu-gpl-v2
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+USE_TOOLS+= gmake
+
+INSTALLATION_DIRS+= bin
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/bin/flute ${DESTDIR}${PREFIX}/bin/flute
+ ${INSTALL_PROGRAM} ${WRKSRC}/bin/multis_flute ${DESTDIR}${PREFIX}/bin/multis_flute
+
+.include "../../textproc/expat/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/devel/mad-flute/PLIST b/devel/mad-flute/PLIST
new file mode 100644
index 00000000000..b9ece29e9e3
--- /dev/null
+++ b/devel/mad-flute/PLIST
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+bin/flute
+bin/multis_flute
diff --git a/devel/mad-flute/distinfo b/devel/mad-flute/distinfo
new file mode 100644
index 00000000000..734575a9c72
--- /dev/null
+++ b/devel/mad-flute/distinfo
@@ -0,0 +1,18 @@
+$NetBSD: distinfo,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+SHA1 (mad_fcl_v1.7_src.tar.gz) = e2157b42e1006167224fbaea7bec46d438e6a41c
+RMD160 (mad_fcl_v1.7_src.tar.gz) = 6aeaf046f16818fc591702371feeab11c02d4ce7
+Size (mad_fcl_v1.7_src.tar.gz) = 208408 bytes
+SHA1 (patch-aa) = 6aed24b852f6bdb39f51f71ce8d504aff4a5d958
+SHA1 (patch-ab) = 4cfd145d94d3009929a1a466779725b1be5eb1cc
+SHA1 (patch-ac) = f0a7f04b539cdae439d4ebd82d4a65a9c645d88b
+SHA1 (patch-ad) = fad10b4db89122ec9e78590237215eea55ecc7a9
+SHA1 (patch-ae) = ccc0c001ce736d4334ecd973ee812513c52de986
+SHA1 (patch-af) = 184b7525b8b6a5fc502e30617e997bbb6e237d4e
+SHA1 (patch-ag) = f58f72293758372de7851c090c2886e5f1c6f945
+SHA1 (patch-ah) = 118390da353bca29e6b21c31b68bfbad440692de
+SHA1 (patch-ai) = aab30f8acf1e6766c08812405e5469b1e512f6d7
+SHA1 (patch-aj) = ba74bc1ab51c19449953c5a4e4837223d3859054
+SHA1 (patch-ak) = 845bcf4cad65fbb73b8ad847f7fccbd385858a16
+SHA1 (patch-al) = 757ff7f015b9b60edae79d1372227553621590f3
+SHA1 (patch-am) = 198d7ec12fcbe1328408d8928d13710cb380dff2
diff --git a/devel/mad-flute/patches/patch-aa b/devel/mad-flute/patches/patch-aa
new file mode 100644
index 00000000000..bcc5aedcd6d
--- /dev/null
+++ b/devel/mad-flute/patches/patch-aa
@@ -0,0 +1,150 @@
+$NetBSD: patch-aa,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+Use gmake
+get rid of dos line endings
+
+--- Makefile 2011/12/21 16:28:33 1.1
++++ Makefile 2011/12/21 16:29:27
+@@ -1,71 +1,71 @@
+-all : alclib sdplib flutelib flute multis_flute flute_unittest
+-
+-alclib ::
+- @echo "-------------------"
+- @echo "*** ALC library ***"
+- @echo "-------------------"
+- mkdir lib; cd alclib; make clean; make
+- @echo "done"
+-
+-sdplib ::
+- @echo "-------------------"
+- @echo "*** SDP library ***"
+- @echo "-------------------"
+- mkdir lib; cd sdplib; make clean; make
+- @echo "done"
+-
+-flutelib ::
+- @echo "---------------------"
+- @echo "*** FLUTE library ***"
+- @echo "---------------------"
+- mkdir lib; cd flutelib; make clean; make
+- @echo "done"
+-
+-flute ::
+- @echo "-------------------------"
+- @echo "*** FLUTE application ***"
+- @echo "-------------------------"
+- mkdir bin; cd flute; make clean; make
+- @echo "done"
+-
+-multis_flute ::
+- @echo "----------------------------------------------"
+- @echo "*** Example multisession FLUTE application ***"
+- @echo "----------------------------------------------"
+- mkdir bin; cd multis_flute; make clean; make
+- @echo "done"
+-
+-flute_unittest ::
+- @echo "------------------------"
+- @echo "*** FLUTE unit test ***"
+- @echo "------------------------"
+- mkdir bin; cd UnitTest; make clean; make
+- @echo "done"
+-
+-clean :
+- @echo "----------------------------"
+- @echo "*** Cleaning ALC library ***"
+- @echo "----------------------------"
+- cd alclib; make clean
+- @echo "----------------------------"
+- @echo "*** Cleaning SDP library ***"
+- @echo "----------------------------"
+- cd sdplib; make clean
+- @echo "------------------------------"
+- @echo "*** Cleaning FLUTE library ***"
+- @echo "------------------------------"
+- cd flutelib; make clean
+- @echo "----------------------------------"
+- @echo "*** Cleaning FLUTE application ***"
+- @echo "----------------------------------"
+- cd flute; make clean
+- @echo "-------------------------------------------------------"
+- @echo "*** Cleaning example multisession FLUTE application ***"
+- @echo "-------------------------------------------------------"
+- cd multis_flute; make clean
+- @echo "--------------------------------"
+- @echo "*** Cleaning FLUTE unit test ***"
+- @echo "--------------------------------"
+- cd UnitTest; make clean
+- @echo "done"
+-
++all : alclib sdplib flutelib flute multis_flute
++
++alclib ::
++ @echo "-------------------"
++ @echo "*** ALC library ***"
++ @echo "-------------------"
++ mkdir lib; cd alclib; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++sdplib ::
++ @echo "-------------------"
++ @echo "*** SDP library ***"
++ @echo "-------------------"
++ mkdir lib; cd sdplib; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++flutelib ::
++ @echo "---------------------"
++ @echo "*** FLUTE library ***"
++ @echo "---------------------"
++ mkdir lib; cd flutelib; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++flute ::
++ @echo "-------------------------"
++ @echo "*** FLUTE application ***"
++ @echo "-------------------------"
++ mkdir bin; cd flute; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++multis_flute ::
++ @echo "----------------------------------------------"
++ @echo "*** Example multisession FLUTE application ***"
++ @echo "----------------------------------------------"
++ mkdir bin; cd multis_flute; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++flute_unittest ::
++ @echo "------------------------"
++ @echo "*** FLUTE unit test ***"
++ @echo "------------------------"
++ mkdir bin; cd UnitTest; ${MAKE} clean; ${MAKE}
++ @echo "done"
++
++clean :
++ @echo "----------------------------"
++ @echo "*** Cleaning ALC library ***"
++ @echo "----------------------------"
++ cd alclib; ${MAKE} clean
++ @echo "----------------------------"
++ @echo "*** Cleaning SDP library ***"
++ @echo "----------------------------"
++ cd sdplib; ${MAKE} clean
++ @echo "------------------------------"
++ @echo "*** Cleaning FLUTE library ***"
++ @echo "------------------------------"
++ cd flutelib; ${MAKE} clean
++ @echo "----------------------------------"
++ @echo "*** Cleaning FLUTE application ***"
++ @echo "----------------------------------"
++ cd flute; ${MAKE} clean
++ @echo "-------------------------------------------------------"
++ @echo "*** Cleaning example multisession FLUTE application ***"
++ @echo "-------------------------------------------------------"
++ cd multis_flute; ${MAKE} clean
++ @echo "--------------------------------"
++ @echo "*** Cleaning FLUTE unit test ***"
++ @echo "--------------------------------"
++ cd UnitTest; ${MAKE} clean
++ @echo "done"
++
diff --git a/devel/mad-flute/patches/patch-ab b/devel/mad-flute/patches/patch-ab
new file mode 100644
index 00000000000..1aafc1babbc
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ab
@@ -0,0 +1,23 @@
+$NetBSD: patch-ab,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability fixes
+
+--- alclib/transport.h 2011/12/21 16:31:23 1.1
++++ alclib/transport.h 2011/12/21 16:33:10
+@@ -35,6 +35,7 @@
+ #define _TRANSPORT_H_
+
+ #include <sys/types.h>
++#include <sys/param.h>
+
+ #ifdef LINUX
+ #include <unistd.h>
+@@ -63,6 +64,8 @@
+
+ #ifdef _MSC_VER
+ __int64 offset; /**< data symbol offset in the temporary file */
++#elif (defined(BSD) && BSD >= 199506)
++ off_t offset; /**< data symbol offset in the temporaryfile */
+ #else
+ off64_t offset; /**< data symbol offset in the temporaryfile */
+ #endif
diff --git a/devel/mad-flute/patches/patch-ac b/devel/mad-flute/patches/patch-ac
new file mode 100644
index 00000000000..0b5cad79d49
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ac
@@ -0,0 +1,61 @@
+$NetBSD: patch-ac,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+get rid of some lunixisms
+
+--- alclib/alc_rx.c 2011/12/21 16:34:42 1.1
++++ alclib/alc_rx.c 2011/12/21 17:02:30
+@@ -39,6 +39,7 @@
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/param.h>
+ #include <math.h>
+ #include <assert.h>
+
+@@ -690,6 +691,9 @@
+ #ifdef _MSC_VER
+ if((trans_obj->fd = open((const char*)trans_obj->tmp_filename,
+ _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC , _S_IWRITE)) < 0) {
++#elif (defined(BSD) && BSD >= 199506)
++ if((trans_obj->fd = open((const char*)trans_obj->tmp_filename,
++ O_WRONLY | O_CREAT | O_TRUNC , S_IRWXU)) < 0) {
+ #else
+ if((trans_obj->fd = open64(trans_obj->tmp_filename,
+ O_WRONLY | O_CREAT | O_TRUNC , S_IRWXU)) < 0) {
+@@ -720,6 +724,9 @@
+ #ifdef _MSC_VER
+ if((trans_obj->fd_st = open((const char*)trans_obj->tmp_st_filename,
+ _O_RDWR | _O_CREAT | _O_BINARY | _O_TRUNC , _S_IREAD | _S_IWRITE)) < 0) {
++#elif (defined(BSD) && BSD >= 199506)
++ if((trans_obj->fd_st = open(trans_obj->tmp_st_filename,
++ O_RDWR | O_CREAT | O_TRUNC , S_IRWXU)) < 0) {
+ #else
+ if((trans_obj->fd_st = open64(trans_obj->tmp_st_filename,
+ O_RDWR | O_CREAT | O_TRUNC , S_IRWXU)) < 0) {
+@@ -817,6 +824,8 @@
+
+ #ifdef _MSC_VER
+ trans_unit->offset = _lseeki64(trans_obj->fd_st, 0, SEEK_END);
++#elif (defined(BSD) && BSD >= 199506)
++ trans_unit->offset = lseek(trans_obj->fd_st, 0, SEEK_END);
+ #else
+ trans_unit->offset = lseek64(trans_obj->fd_st, 0, SEEK_END);
+ #endif
+@@ -901,6 +910,8 @@
+
+ #ifdef _MSC_VER
+ if(_lseeki64(trans_obj->fd_st, tu->offset, SEEK_SET) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if (lseek(trans_obj->fd_st, tu->offset, SEEK_SET) == -1) {
+ #else
+ if(lseek64(trans_obj->fd_st, tu->offset, SEEK_SET) == -1) {
+ #endif
+@@ -978,6 +989,8 @@
+
+ #ifdef _MSC_VER
+ if(_lseeki64(trans_obj->fd, pos, SEEK_SET) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if (lseek(trans_obj->fd, pos, SEEK_SET) == -1) {
+ #else
+ if(lseek64(trans_obj->fd, pos, SEEK_SET) == -1) {
+ #endif
diff --git a/devel/mad-flute/patches/patch-ad b/devel/mad-flute/patches/patch-ad
new file mode 100644
index 00000000000..ad90ded41b4
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ad
@@ -0,0 +1,15 @@
+$NetBSD: patch-ad,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+Remove an incorrect definition - kills compilation on BSDs
+
+--- alclib/Makefile 2011/12/21 18:38:36 1.1
++++ alclib/Makefile 2011/12/21 18:39:26
+@@ -1,7 +1,7 @@
+ CC = gcc
+
+ CFLAGS += -Wall -O3 -g -fPIC -DLINUX -D_LARGE_FILE_API -D_LARGEFILE64_SOURCE \
+- -D_ISOC99_SOURCE -D_XOPEN_SOURCE=500
++ -D_ISOC99_SOURCE #-D_XOPEN_SOURCE=500
+
+ SOURCES = alc_channel.c alc_hdr.c alc_rx.c alc_session.c alc_socket.c alc_tx.c \
+ lct_hdr.c mad.c transport.c blocking_alg.c null_fec.c xor_fec.c fec.c rs_fec.c \
diff --git a/devel/mad-flute/patches/patch-ae b/devel/mad-flute/patches/patch-ae
new file mode 100644
index 00000000000..5644a790a59
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ae
@@ -0,0 +1,16 @@
+$NetBSD: patch-ae,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+we don't have one of the headers they want
+
+--- flutelib/http_file_repair.h 2011/12/21 18:54:28 1.1
++++ flutelib/http_file_repair.h 2011/12/21 18:55:20
+@@ -40,7 +40,9 @@
+ #ifdef USE_FILE_REPAIR
+
+ #include <curl/curl.h>
++#ifdef __linux__
+ #include <curl/types.h>
++#endif
+ #include <curl/easy.h>
+
+ #ifdef __cplusplus
diff --git a/devel/mad-flute/patches/patch-af b/devel/mad-flute/patches/patch-af
new file mode 100644
index 00000000000..d679d08b48e
--- /dev/null
+++ b/devel/mad-flute/patches/patch-af
@@ -0,0 +1,15 @@
+$NetBSD: patch-af,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+get the right header file paths
+
+--- flutelib/Makefile 2011/12/21 18:53:07 1.1
++++ flutelib/Makefile 2011/12/21 18:56:38
+@@ -1,7 +1,7 @@
+ CC = gcc
+
+ CFLAGS += -Wall -O3 -g -fPIC -DLINUX -D_LARGE_FILE_API -D_LARGEFILE64_SOURCE -D_ISOC99_SOURCE -D_XOPEN_SOURCE=500 \
+- -I/usr/local/ssl/include
++ -I${PREFIX}/ssl/include -I${PREFIX}/include/curl
+
+ SOURCES = flute.c sender.c receiver.c fdt.c fdt_gen.c mad_md5.c uri.c getdnsname.c mad_zlib.c \
+ padding_encoding.c parse_args.c mad_utf8.c http_file_repair.c flute_file_repair.c apd.c \
diff --git a/devel/mad-flute/patches/patch-ag b/devel/mad-flute/patches/patch-ag
new file mode 100644
index 00000000000..183c04d1f4a
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ag
@@ -0,0 +1,42 @@
+$NetBSD: patch-ag,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability patches
+
+--- flutelib/sender.c 2011/12/21 18:58:00 1.1
++++ flutelib/sender.c 2011/12/21 19:01:17
+@@ -31,6 +31,8 @@
+ */
+
+ #include <stdlib.h>
++#include <sys/types.h>
++#include <sys/param.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+ #include <time.h>
+@@ -197,6 +199,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -217,6 +221,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(tx_file, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(tx_file, &file_stats) == -1) {
+ #else
+ if(stat64(tx_file, &file_stats) == -1) {
+ #endif
+@@ -258,6 +264,8 @@
+ /* File to send */
+ #ifdef _MSC_VER
+ if((fp = fopen(tx_file, "rb")) == NULL) {
++#elif (defined(BSD) && BSD >= 199506)
++ if((fp = fopen(tx_file, "rb")) == NULL) {
+ #else
+ if((fp = fopen64(tx_file, "rb")) == NULL) {
+ #endif
diff --git a/devel/mad-flute/patches/patch-ah b/devel/mad-flute/patches/patch-ah
new file mode 100644
index 00000000000..985e19dc323
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ah
@@ -0,0 +1,146 @@
+$NetBSD: patch-ah,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability patches
+
+--- flutelib/fdt_gen.c 2011/12/21 19:05:12 1.1
++++ flutelib/fdt_gen.c 2011/12/21 19:09:05
+@@ -35,6 +35,7 @@
+ #include <sys/stat.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/param.h>
+
+ #ifdef _MSC_VER
+ #include <windows.h>
+@@ -142,6 +143,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -159,6 +162,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 enc_file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat enc_file_stats;
+ #else
+ struct stat64 enc_file_stats;
+ #endif
+@@ -200,6 +205,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(fullpath, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(fullpath, &file_stats) == -1) {
+ #else
+ if(stat64(fullpath, &file_stats) == -1) {
+ #endif
+@@ -307,6 +314,8 @@
+ strcat(enc_fullpath, GZ_SUFFIX);
+ #ifdef _MSC_VER
+ if(_stat64(enc_fullpath, &enc_file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(enc_fullpath, &enc_file_stats) == -1) {
+ #else
+ if(stat64(enc_fullpath, &enc_file_stats) == -1) {
+ #endif
+@@ -439,6 +448,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -453,6 +464,8 @@
+ char enc_fullpath[MAX_PATH_LENGTH];
+ #ifdef _MSC_VER
+ struct __stat64 enc_file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat enc_file_stats;
+ #else
+ struct stat64 enc_file_stats;
+ #endif
+@@ -549,6 +562,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(fullpath, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(fullpath, &file_stats) == -1) {
+ #else
+ if(stat64(fullpath, &file_stats) == -1) {
+ #endif
+@@ -632,6 +647,8 @@
+ strcat(enc_fullpath, GZ_SUFFIX);
+ #ifdef _MSC_VER
+ if(_stat64(enc_fullpath, &enc_file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(enc_fullpath, &enc_file_stats) == -1) {
+ #else
+ if(stat64(enc_fullpath, &enc_file_stats) == -1) {
+ #endif
+@@ -765,6 +782,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(fullpath, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(fullpath, &file_stats) == -1) {
+ #else
+ if(stat64(fullpath, &file_stats) == -1) {
+ #endif
+@@ -831,6 +850,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(enc_fullpath, &enc_file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(enc_fullpath, &enc_file_stats) == -1) {
+ #else
+ if(stat64(enc_fullpath, &enc_file_stats) == -1) {
+ #endif
+@@ -973,7 +994,11 @@
+
+ strcat(fullpath, fullname);
+
++#if (defined(BSD) && BSD >= 199506)
++ if(stat(fullpath, &file_stats) == -1) {
++#else
+ if(stat64(fullpath, &file_stats) == -1) {
++#endif
+ printf("Error: %s is not valid file name\n", fullpath);
+ fflush(stdout);
+ entry = readdir(dirptr);
+@@ -1046,7 +1071,11 @@
+ strcpy(enc_fullpath, fullpath);
+ strcat(enc_fullpath, GZ_SUFFIX);
+
++#if (defined(BSD) && BSD >= 199506)
++ if(stat(enc_fullpath, &enc_file_stats) == -1) {
++#else
+ if(stat64(enc_fullpath, &enc_file_stats) == -1) {
++#endif
+ printf("Error: %s is not valid file name\n", enc_fullpath);
+ fflush(stdout);
+ entry = readdir(dirptr);
+@@ -1158,6 +1187,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -1263,6 +1294,8 @@
+ strcat(fullpath, token);
+ #ifdef _MSC_VER
+ if(_stat64(fullpath, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(fullpath, &file_stats) == -1) {
+ #else
+ if(stat64(fullpath, &file_stats) == -1) {
+ #endif
diff --git a/devel/mad-flute/patches/patch-ai b/devel/mad-flute/patches/patch-ai
new file mode 100644
index 00000000000..92fa2e3a890
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ai
@@ -0,0 +1,43 @@
+$NetBSD: patch-ai,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability improvements
+
+--- flutelib/mad_md5.c 2011/12/21 19:10:18 1.1
++++ flutelib/mad_md5.c 2011/12/21 19:11:36
+@@ -33,7 +33,9 @@
+ #include <stdio.h>
+ #include <memory.h>
+ #include <string.h>
++#include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/param.h>
+ #include <errno.h>
+
+ #include "mad_md5.h"
+@@ -48,6 +50,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -71,6 +75,8 @@
+
+ #ifdef _MSC_VER
+ fp = fopen(filename, "rb");
++#elif (defined(BSD) && BSD >= 199506)
++ fp = fopen(filename, "rb");
+ #else
+ fp = fopen64(filename, "rb");
+ #endif
+@@ -83,6 +89,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(filename, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(filename, &file_stats) == -1) {
+ #else
+ if(stat64(filename, &file_stats) == -1) {
+ #endif
diff --git a/devel/mad-flute/patches/patch-aj b/devel/mad-flute/patches/patch-aj
new file mode 100644
index 00000000000..345f70b527a
--- /dev/null
+++ b/devel/mad-flute/patches/patch-aj
@@ -0,0 +1,50 @@
+$NetBSD: patch-aj,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability patches
+
+--- flutelib/padding_encoding.c 2011/12/21 19:12:31 1.1
++++ flutelib/padding_encoding.c 2011/12/21 19:13:59
+@@ -36,6 +36,7 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/param.h>
+ #include <fcntl.h>
+
+ #ifdef _MSC_VER
+@@ -69,6 +70,8 @@
+
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -85,6 +88,8 @@
+
+ #ifdef _MSC_VER
+ fp_in = open((const char*)file_name_in, _O_RDWR | _O_CREAT | _O_BINARY, _S_IREAD | _S_IWRITE);
++#elif (defined(BSD) && BSD >= 199506)
++ fp_in = open(file_name_in, O_RDWR | O_CREAT, S_IRWXU);
+ #else
+ fp_in = open64(file_name_in, O_RDWR | O_CREAT, S_IRWXU);
+ #endif
+@@ -96,6 +101,8 @@
+
+ #ifdef _MSC_VER
+ _fstat64(fp_in, &file_stats);
++#elif (defined(BSD) && BSD >= 199506)
++ fstat(fp_in, &file_stats);
+ #else
+ fstat64(fp_in, &file_stats);
+ #endif
+@@ -105,6 +112,8 @@
+ if(f_size > content_length) {
+ #ifdef _MSC_VER
+ retval = _chsize(fp_in, (long)content_length); /* TODO: 64 bits, how ??? */
++#elif (defined(BSD) && BSD >= 199506)
++ retval = ftruncate(fp_in, content_length);
+ #else
+ retval = ftruncate64(fp_in, content_length);
+ #endif
diff --git a/devel/mad-flute/patches/patch-ak b/devel/mad-flute/patches/patch-ak
new file mode 100644
index 00000000000..f60a2fac884
--- /dev/null
+++ b/devel/mad-flute/patches/patch-ak
@@ -0,0 +1,59 @@
+$NetBSD: patch-ak,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+portability patches
+
+--- flutelib/http_file_repair.c 2011/12/21 21:33:02 1.1
++++ flutelib/http_file_repair.c 2011/12/21 21:35:06
+@@ -34,6 +34,7 @@
+ #include <stdlib.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/param.h>
+ #include <fcntl.h>
+ #include <string.h>
+ #include <ctype.h>
+@@ -107,6 +108,8 @@
+ #ifdef USE_ZLIB
+ #ifdef _MSC_VER
+ struct __stat64 file_stats;
++#elif (defined(BSD) && BSD >= 199506)
++ struct stat file_stats;
+ #else
+ struct stat64 file_stats;
+ #endif
+@@ -244,6 +247,8 @@
+
+ #ifdef _MSC_VER
+ unit->offset = _lseeki64(obj->fd_st, 0, SEEK_END);
++#elif (defined(BSD) && BSD >= 199506)
++ unit->offset = lseek(obj->fd_st, 0, SEEK_END);
+ #else
+ unit->offset = lseek64(obj->fd_st, 0, SEEK_END);
+ #endif
+@@ -292,6 +297,8 @@
+ }
+ #ifdef _MSC_VER
+ if(_lseeki64(obj->fd_st, tu->offset, SEEK_SET) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(lseek(obj->fd_st, tu->offset, SEEK_SET) == -1) {
+ #else
+ if(lseek64(obj->fd_st, tu->offset, SEEK_SET) == -1) {
+ #endif
+@@ -365,6 +372,8 @@
+
+ #ifdef _MSC_VER
+ if(_lseeki64(obj->fd, pos, SEEK_SET) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(lseek(obj->fd, pos, SEEK_SET) == -1) {
+ #else
+ if(lseek64(obj->fd, pos, SEEK_SET) == -1) {
+ #endif
+@@ -444,6 +453,8 @@
+
+ #ifdef _MSC_VER
+ if(_stat64(obj->tmp_filename, &file_stats) == -1) {
++#elif (defined(BSD) && BSD >= 199506)
++ if(stat(obj->tmp_filename, &file_stats) == -1) {
+ #else
+ if(stat64(obj->tmp_filename, &file_stats) == -1) {
+ #endif
diff --git a/devel/mad-flute/patches/patch-al b/devel/mad-flute/patches/patch-al
new file mode 100644
index 00000000000..4a3c68c6247
--- /dev/null
+++ b/devel/mad-flute/patches/patch-al
@@ -0,0 +1,33 @@
+$NetBSD: patch-al,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+ftime() is deprecated, just use time().
+
+--- alclib/alc_session.c 2011/12/21 21:41:34 1.1
++++ alclib/alc_session.c 2011/12/21 21:45:03
+@@ -44,7 +44,7 @@
+ #include <pthread.h>
+ #endif
+
+-#include <sys/timeb.h>
++#include <time.h>
+
+ #include "alc_session.h"
+ #include "mad_rlc.h"
+@@ -103,7 +103,6 @@
+ alc_session_t *s;
+ int i;
+ int retval;
+- struct timeb timeb_current_time;
+
+ #if ABSOLUTE_PATH
+ char fullpath[MAX_PATH_LENGTH];
+@@ -158,8 +157,7 @@
+
+ if(s->mode == SENDER) {
+
+- ftime(&timeb_current_time);
+- s->ftimestarttime = timeb_current_time.time+timeb_current_time.millitm/1000.0;
++ s->ftimestarttime = time(NULL);
+
+ memcpy(s->base_dir, a->base_dir, strlen(a->base_dir));
+
diff --git a/devel/mad-flute/patches/patch-am b/devel/mad-flute/patches/patch-am
new file mode 100644
index 00000000000..2cb371d16bc
--- /dev/null
+++ b/devel/mad-flute/patches/patch-am
@@ -0,0 +1,28 @@
+$NetBSD: patch-am,v 1.1.1.1 2012/05/02 04:43:11 agc Exp $
+
+ftime() is deprectaed, just use time(3).
+
+--- alclib/alc_tx.c 2011/12/21 21:46:10 1.1
++++ alclib/alc_tx.c 2011/12/21 21:46:49
+@@ -37,7 +37,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <assert.h>
+-#include <sys/timeb.h>
++#include <time.h>
+
+ #ifdef _MSC_VER
+ #include <process.h>
+@@ -580,11 +580,8 @@
+
+ double curr_time;
+ float actual_kbit_rate = (float)s->def_tx_rate;
+- struct timeb timeb_current_time;
+
+- ftime(&timeb_current_time);
+-
+- curr_time = timeb_current_time.time+timeb_current_time.millitm/1000.0;
++ curr_time = time(NULL);
+
+ if(s->sent_bytes > 0 && curr_time > s->ftimestarttime) {
+ actual_kbit_rate = (float)((s->sent_bytes*8/1024.0) / (curr_time - s->ftimestarttime));