From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 12 Mar 2010 18:49:58 +0300 From: Vladislav Zavjalov To: ALT Linux Team development discussions Message-ID: <20100312154958.GD5455@imap.altlinux.org> References: <20100310082425.5886C1D96765@ssh.git.orion.altlinux.org> <20100311130353.GA22496@wo.int.altlinux.org> <20100311175205.GB4491@mw.office.seiros.ru> <20100311204259.GA29975@imap.altlinux.org> <20100311215806.GB29975@imap.altlinux.org> <20100312152106.GA23803@mw.office.seiros.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20100312152106.GA23803@mw.office.seiros.ru> User-Agent: Mutt/1.4.2.3i Subject: Re: [devel] Fwd: fuse-encfs-1.5.2-alt7: Sisyphus/x86_64 test rebuild failed [3] X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2010 15:49:59 -0000 Archived-At: List-Archive: List-Post: On Fri, Mar 12, 2010 at 06:21:06PM +0300, Денис Смирнов wrote: > On Fri, Mar 12, 2010 at 12:58:06AM +0300, Vladislav Zavjalov wrote: > > VZ> Придумал не слишком красивенький обход (в приложении) > > Спасибо! А что вообще этот кусок кода в encfs делает, и есть ли риск > несовместимостей от этого патча? Я это понял так: Это запись и чтение xml-конфигов с помощью boost/archive и boost/serialization В xml записывается объект типа EncFSConfig, и к нему пишется версия, чтоб потом правильно читать устаревшие конфиги. Фигня в том, что версия устанавливается 20080816, а где-то в boost-е она приводится к uint16 (я покопался, но не понял где - везде вроде unsigned int). А при чтении там стоят всякие проверки, типа "если старше 20080816 - такие поля не нужны" и т.п. И с учетом этих проверок boost'у предлагают читать не тот объект, который записан. (Это все можно смотреть в файле FileUtils.cpp) Насчет патча - он сомнительный. Он перед всякими проверками говорит if (version < 65536) version+=65536*306; Мало того, что с версиями > 20120101 это уже не будет работать, так еще и конфиги, записанные разными весиями программы могут перепутаться. Сейчас в конфиги будет писаться неправильная обрезанная версия и читаться она будет правильно только сборкой с этим патчем. В общем, я бы еще подумал. Как минимум, попытался бы сделать, чтоб в конфиги писалась правильная версия (хотя это какие-то недра boost'a)... И - попинать знатоков boost'a, что там у них за фигня. Слава