From: Alexey Tourbin <at@altlinux.ru> To: ALT Devel discussion list <devel@lists.altlinux.org> Subject: Re: [devel] libopenobex-1.3 symbol versioning patch Date: Fri, 11 Aug 2006 23:42:54 +0400 Message-ID: <20060811194254.GC15751@localhost.localdomain> (raw) In-Reply-To: <20060811184453.GD15128@procyon.home> [-- Attachment #1: Type: text/plain, Size: 3904 bytes --] On Fri, Aug 11, 2006 at 10:44:53PM +0400, Sergey Vlasov wrote: > Hello! > > Прошу высказать замечания по прилагаемому патчу, который добавляет > symbol versioning в libopenobex-1.3 (сейчас в Сизифе лежит 1.0.1). [ Перепутал сначала с openbox: А что, кто-то ещё линкуется с libopenbox, кроме самого openbox? В apt-cache пока не видно. Теперь посмотрел внимательнее и вижу, что не openbox. ] > Глубже версии 1.0.0 я копать не стал (это конец 2002 года, 1.0.1, где > не сделали ничего существенного - октябрь 2003). На то, что было в > этих версиях, я поставил версию OPENOBEX_1.0 (можно было, конечно, > написать 1.0.0, но позднее формат версий немного сменился). > > Функции OBEX_SetUserCallBack, OBEX_SetTransportMTU, OBEX_ServerAccept, > OBEX_ObjectReParseHeaders на самом деле были ещё в 1.0.0, но > фактически не были доступны из-за фильтрации символов по lib/obex.sym, > где они были пропущены (эта ошибка была исправлена уже после выхода > 1.0.1, и первый релиз, в который попало исправление - 1.1), поэтому я > поставил для этих символов версию OPENOBEX_1.1, как и для добавленных > позднее в ходе разработки 1.1 OBEX_SuspendRequest, OBEX_ResumeRequest, > OBEX_InterfaceConnect, OBEX_FindInterfaces, OBEX_FreeInterfaces. > После 1.1 вроде бы изменений ABI больше не было (во всяком случае, > файл lib/obex.sym больше не менялся). > > Тест для autoconf самопальный - возможно, у кого-то есть варианты > лучше? Круто! > --- openobex-1.3/lib/obex.ver.alt-symbol-versions 2006-08-11 22:05:23 +0400 > +++ openobex-1.3/lib/obex.ver 2006-08-11 22:05:23 +0400 > @@ -0,0 +1,57 @@ > +OPENOBEX_1.0 { > +global: > + > + OBEX_Init; > + OBEX_Cleanup; > + OBEX_RegisterCTransport; > + OBEX_SetCustomData; > + OBEX_GetCustomData; > + OBEX_TransportConnect; > + OBEX_TransportDisconnect; > + OBEX_CustomDataFeed; > + OBEX_GetFD; > + OBEX_HandleInput; > + OBEX_ServerRegister; > + OBEX_Request; > + OBEX_CancelRequest; > + OBEX_SetUserData; > + OBEX_GetUserData; > + OBEX_ObjectNew; > + OBEX_ObjectDelete; > + OBEX_ObjectAddHeader; > + OBEX_ObjectGetNextHeader; > + OBEX_ObjectReadStream; > + OBEX_ObjectSetRsp; > + OBEX_ObjectGetNonHdrData; > + OBEX_ObjectSetNonHdrData; > + OBEX_ObjectSetHdrOffset; > + OBEX_UnicodeToChar; > + OBEX_CharToUnicode; > + OBEX_ResponseToString; > + OBEX_GetResponseMessage; > + InOBEX_ServerRegister; > + InOBEX_TransportConnect; > + IrOBEX_ServerRegister; > + IrOBEX_TransportConnect; > + BtOBEX_ServerRegister; > + BtOBEX_TransportConnect; > + FdOBEX_TransportSetup; > + > +local: > + *; > +}; Здесь вот что получается: "базовые" символы, у которых раньше интерфейса не было, теперь получат интерфейс по умолчанию OPENOBEX_1.0; и при линковке с этой библиотекой появится зависимость на OPENOBEX_1.0. Это может быть не очень желательно, но может быть и нормально. Я в таких случаях для базовых символов отдельного интерфейса не делаю, чтобы после добавления versioning при пересборке других пакетов не появлялось новых зависимостей. Но приходится более тщательно контролировать секцию local: в первом блоке. > +OPENOBEX_1.1 { > +global: > + > + OBEX_FindInterfaces; > + OBEX_FreeInterfaces; > + OBEX_InterfaceConnect; > + OBEX_ObjectReParseHeaders; > + OBEX_ResumeRequest; > + OBEX_ServerAccept; > + OBEX_SetTransportMTU; > + OBEX_SetUserCallBack; > + OBEX_SuspendRequest; Т.е. OPENOBEX_1.0 можно было не писать, а вот здесь вот (т.е. обязательно в первом блоке) написать секцию local: и перечислить все символы, которые не относятся к базовым. Это можно сделать паттерном типа [^OIBF]*, но всё равно желательно каждый раз проверять, что там получается. В общем тут есть свои мелкие преимущества и свои мелкие недостатки, я бы не рискнул дать однозначный совет. > +} OPENOBEX_1.0; Кстати список можно проверить с помощью rpmsodiff из пакета qa-robot. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2006-08-11 19:42 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-08-11 18:44 [devel] [RFC] " Sergey Vlasov 2006-08-11 19:42 ` Alexey Tourbin [this message] 2006-08-12 10:43 ` [devel] " Sergey Vlasov 2006-08-12 11:19 ` Alexey Tourbin 2006-08-12 13:00 ` Sergey Vlasov 2006-08-12 13:32 ` Alexey Tourbin 2006-08-12 13:46 ` Alexey Tourbin 2006-08-12 14:08 ` Sergey Vlasov 2006-08-15 17:19 ` Dmitry V. Levin 2006-08-12 13:50 ` [devel] [RFC] " Sergey Vlasov 2006-08-12 14:05 ` [devel] " Alexey Tourbin 2006-08-12 14:36 ` Alexey Tourbin 2006-08-12 15:49 ` Sergey Vlasov 2006-08-13 7:51 ` Alexey Tourbin 2006-08-13 12:13 ` Sergey Vlasov 2006-08-13 12:20 ` Alexey Tourbin 2006-08-13 14:55 ` Sergey Vlasov 2006-08-13 16:00 ` Alexey Tourbin 2006-08-13 18:57 ` Sergey Vlasov 2006-08-15 19:27 ` [devel] [RFC] " Sergey Vlasov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20060811194254.GC15751@localhost.localdomain \ --to=at@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git