Есть патч для rtorrent, который должен решить проблемы с памятью на freebsd - http://libtorrent.rakshasa.no/ticket/2091. Подскажите последовательность действий для правильного применения патча. Спасибо.
» Как пропатчить rtorrent на freebsd8 ?
А разве это чем-то отличается от обычной процедуры?
Но поскольку патч малюсенький, проще сделать так:
Берете ваш исходник, ищете там файл memory_chunk.cc
В этом файле находите строчку
throw internal_error("MemoryChunk::unmap() called on an invalid object");
это где-то в районе 80-й строки
После нее добавляете две строчки
if (msync(m_ptr, m_end - m_ptr,MS_INVALIDATE) != 0)
throw internal_error("MemoryChunk::unmap() - msync() system call failed");
Перекомпилируете исходник, заменяете старый экзешник новым.
Но поскольку патч малюсенький, проще сделать так:
Берете ваш исходник, ищете там файл memory_chunk.cc
В этом файле находите строчку
throw internal_error("MemoryChunk::unmap() called on an invalid object");
это где-то в районе 80-й строки
После нее добавляете две строчки
if (msync(m_ptr, m_end - m_ptr,MS_INVALIDATE) != 0)
throw internal_error("MemoryChunk::unmap() - msync() system call failed");
Перекомпилируете исходник, заменяете старый экзешник новым.
в директории порта есть директория files ( ну или можно создать),в нее положить файлик типа
files/patch-account.inc
Код:
--- lib/account.inc.orig 2010-03-24 15:22:38.000000000 -0300
+++ lib/account.inc 2010-05-31 16:30:07.000000000 -0300
@@ -39,10 +39,10 @@
* @return array list of shell names
*/
function getshells() {
- if (!isset($_SESSION['lampath'])) return array();
+ $shellPath = dirname(__FILE__) . '/../config/shells';
// Load shells from file
- if (file_exists($_SESSION['lampath'] . 'config/shells')) {
- $shells = file($_SESSION['lampath'] . 'config/shells');
+ if (file_exists($shellPath)) {
+ $shells = file($shellPath);
$i = 0;
while (count($shells) > $i) {
// remove whitespaces
@@ -386,6 +386,9 @@
case 'hostname':
$pregexpr = '/^([[:alnum:]@\\.\\ \\_\\$-])+$/u';
break;
+ case 'hostObject':
+ $pregexpr = '/^[!]?([[:alnum:]@\\.\\ \\_\\$\\*-])+$/u';
+ break;
case 'usernameList': // comma separated list of user names
case 'groupnameList': // comma separated list of group names
$pregexpr = '/^([[:alnum:]@\\.\\ \\_-])+(,([[:alnum:]@\\.\\ \\_-])+)*$/u';
@@ -467,6 +470,7 @@
break;
case 'domainSID': // Samba domain SID
$pregexpr = "/^S\\-[0-9]\\-[0-9]\\-[0-9]{2,2}\\-[0-9]+\\-[0-9]+\\-[0-9]+$/";
+ break;
case 'ip': // IP address
$pregexpr = '/^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}$/';
break;
files/patch-account.inc
Код:
--- lib/account.inc.orig 2010-03-24 15:22:38.000000000 -0300
+++ lib/account.inc 2010-05-31 16:30:07.000000000 -0300
@@ -39,10 +39,10 @@
* @return array list of shell names
*/
function getshells() {
- if (!isset($_SESSION['lampath'])) return array();
+ $shellPath = dirname(__FILE__) . '/../config/shells';
// Load shells from file
- if (file_exists($_SESSION['lampath'] . 'config/shells')) {
- $shells = file($_SESSION['lampath'] . 'config/shells');
+ if (file_exists($shellPath)) {
+ $shells = file($shellPath);
$i = 0;
while (count($shells) > $i) {
// remove whitespaces
@@ -386,6 +386,9 @@
case 'hostname':
$pregexpr = '/^([[:alnum:]@\\.\\ \\_\\$-])+$/u';
break;
+ case 'hostObject':
+ $pregexpr = '/^[!]?([[:alnum:]@\\.\\ \\_\\$\\*-])+$/u';
+ break;
case 'usernameList': // comma separated list of user names
case 'groupnameList': // comma separated list of group names
$pregexpr = '/^([[:alnum:]@\\.\\ \\_-])+(,([[:alnum:]@\\.\\ \\_-])+)*$/u';
@@ -467,6 +470,7 @@
break;
case 'domainSID': // Samba domain SID
$pregexpr = "/^S\\-[0-9]\\-[0-9]\\-[0-9]{2,2}\\-[0-9]+\\-[0-9]+\\-[0-9]+$/";
+ break;
case 'ip': // IP address
$pregexpr = '/^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}$/';
break;
Идете в порт, делаете make extract, применяете патч, делаете make install clean.
Страницы: 1
Предыдущая тема: bash, sed, разрыв строк. нужна помощь )
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.