[85224] trunk/dports/net/libtorrent-rasterbar
devans at macports.org
devans at macports.org
Tue Oct 11 13:23:13 PDT 2011
Revision: 85224
http://trac.macports.org/changeset/85224
Author: devans at macports.org
Date: 2011-10-11 13:23:13 -0700 (Tue, 11 Oct 2011)
Log Message:
-----------
libtorrent-rasterbar: apply upstream patch to speed up hashing.
Modified Paths:
--------------
trunk/dports/net/libtorrent-rasterbar/Portfile
Added Paths:
-----------
trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff
Modified: trunk/dports/net/libtorrent-rasterbar/Portfile
===================================================================
--- trunk/dports/net/libtorrent-rasterbar/Portfile 2011-10-11 20:22:32 UTC (rev 85223)
+++ trunk/dports/net/libtorrent-rasterbar/Portfile 2011-10-11 20:23:13 UTC (rev 85224)
@@ -6,6 +6,7 @@
name libtorrent-rasterbar
conflicts libtorrent-rasterbar-devel
version 0.15.8
+revision 1
license Norberg/Rasterbar
categories net
maintainers devans openmaintainer
@@ -49,7 +50,8 @@
}
}
-patchfiles patch-bindings-python-setup.py.in.diff
+patchfiles patch-bindings-python-setup.py.in.diff \
+ patch-r6101-speeds-up-hashing.diff
post-patch {
reinplace "s|__MP_BUILD_ARCH__|${build_arch}|" ${worksrcpath}/bindings/python/setup.py.in
Added: trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff
===================================================================
--- trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff (rev 0)
+++ trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff 2011-10-11 20:23:13 UTC (rev 85224)
@@ -0,0 +1,93 @@
+Index: src/file_pool.cpp
+===================================================================
+--- src/file_pool.cpp (revision 6100)
++++ src/file_pool.cpp (revision 6101)
+@@ -70,7 +70,8 @@
+
+ if ((((e.mode & file::rw_mask) != file::read_write)
+ && ((m & file::rw_mask) == file::read_write))
+- || (e.mode & file::no_buffer) != (m & file::no_buffer))
++ || (e.mode & file::no_buffer) != (m & file::no_buffer)
++ || (e.mode & file::random_access) != (m & file::random_access))
+ {
+ // close the file before we open it with
+ // the new read/write privilages
+Index: src/file.cpp
+===================================================================
+--- src/file.cpp (revision 6100)
++++ src/file.cpp (revision 6101)
+@@ -172,19 +172,19 @@
+ const static open_mode_t mode_array[] =
+ {
+ // read_only
+- {GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS},
++ {GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, 0},
+ // write_only
+- {GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS},
++ {GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS, 0},
+ // read_write
+- {GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS},
++ {GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, 0},
+ // invalid option
+ {0,0,0,0},
+ // read_only no_buffer
+- {GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++ {GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ // write_only no_buffer
+- {GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++ {GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ // read_write no_buffer
+- {GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++ {GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ // invalid option
+ {0,0,0,0}
+ };
+@@ -209,8 +209,11 @@
+ open_mode_t const& m = mode_array[mode & mode_mask];
+ DWORD a = attrib_array[(mode & attribute_mask) >> 12];
+
++ DWORD extra_flags = ((mode & random_access) ? FILE_FLAG_RANDOM_ACCESS : 0)
++ | (a ? a : FILE_ATTRIBUTE_NORMAL);
++
+ m_file_handle = CreateFile_(m_path.c_str(), m.rw_mode, m.share_mode, 0
+- , m.create_mode, m.flags | (a ? a : FILE_ATTRIBUTE_NORMAL), 0);
++ , m.create_mode, m.flags | extra_flags, 0);
+
+ if (m_file_handle == INVALID_HANDLE_VALUE)
+ {
+@@ -272,8 +275,11 @@
+ #endif
+
+ #ifdef POSIX_FADV_RANDOM
+- // disable read-ahead
+- posix_fadvise(m_fd, 0, 0, POSIX_FADV_RANDOM);
++ if (mode & random_access)
++ {
++ // disable read-ahead
++ posix_fadvise(m_fd, 0, 0, POSIX_FADV_RANDOM);
++ }
+ #endif
+
+ #endif
+Index: include/libtorrent/file.hpp
+===================================================================
+--- include/libtorrent/file.hpp (revision 6100)
++++ include/libtorrent/file.hpp (revision 6101)
+@@ -100,6 +100,7 @@
+ no_buffer = 4,
+ mode_mask = rw_mask | no_buffer,
+ sparse = 8,
++ random_access = 32,
+
+ attribute_hidden = 0x1000,
+ attribute_executable = 0x2000,
+Index: ChangeLog
+===================================================================
+--- ChangeLog (revision 6100)
++++ ChangeLog (revision 6101)
+@@ -1,3 +1,5 @@
++ * don't open files in random-access mode (speeds up hashing)
++
+ 0.15.8 release
+
+ * allow NULL to be passed to create_torrent::set_comment and create_torrent::set_creator
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20111011/91cdc41a/attachment.html>
More information about the macports-changes
mailing list