From 4df0a4d9527d50b1eaf1b91fb480b1ce8836ab08 Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Fri, 7 Aug 2015 10:48:17 +0200 Subject: [PATCH] Add support for .deb files to abipkgdiff This lets abipkgdiff compare debian binary packages. The patch contains test cases for debian package with split debug info that is referenced by the build-id scheme. These test cases come from the bug report https://sourceware.org/bugzilla/show_bug.cgi?id=18792, more particularly from the attachment https://sourceware.org/bugzilla/attachment.cgi?id=8516. * include/abg-tools-utils.h (file_type): Add FILE_TYPE_DEB. * tools/abipkgdiff.cc (extract_deb): New. (extract_package, main): Handle FILE_TYPE_DEB. * src/abg-tools-utils.cc (operator<<): Handle FILE_TYPE_DEB. (guess_file_type): Detect FILE_TYPE_DEB. * tools/abidiff.cc (main): Handle FILE_TYPE_DEB. * tools/abilint.cc (main): Handle FILE_TYPE_DEB. * tests/data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb: Input debian debug info package; to be compared by the test harness runtestdiffpkg. * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb: Input debian package; to be compared by the test harness runtestdiffpkg. * tests/data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb: Input debug info package * tests/data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb: Input debian package; to be compared by the test harness runtestdiffpkg. * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt: Reference output for the comparison of the packages above. * tests/data/Makefile.am: Add the new files above to the source distribution. * tests/test-diff-pkg.cc (in_out_specs): Add the input packages above to the set of files to be compared by this test harness. Signed-off-by: Matthias Klose Signed-off-by: Dodji Seketeli --- include/abg-tools-utils.h | 2 + src/abg-tools-utils.cc | 14 +++- tests/data/Makefile.am | 8 ++- ...bsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb | Bin 0 -> 33100 bytes ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 65 ++++++++++++++++++ .../libsigc++-2.0-0c2a_2.4.0-1_amd64.deb | Bin 0 -> 14794 bytes ...+-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb | Bin 0 -> 34362 bytes ...libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb | Bin 0 -> 14832 bytes tests/test-diff-pkg.cc | 10 +++ tools/abidiff.cc | 4 ++ tools/abilint.cc | 2 + tools/abipkgdiff.cc | 57 +++++++++++++++ 12 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 tests/data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb create mode 100644 tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt create mode 100644 tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb create mode 100644 tests/data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb create mode 100644 tests/data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb diff --git a/include/abg-tools-utils.h b/include/abg-tools-utils.h index 14673b80..43f1312f 100644 --- a/include/abg-tools-utils.h +++ b/include/abg-tools-utils.h @@ -115,6 +115,8 @@ enum file_type FILE_TYPE_RPM, /// An SRPM (.src.rpm) file FILE_TYPE_SRPM, + /// An DEB (.deb) binary file + FILE_TYPE_DEB, }; /// Exit status for abidiff and abicompat tools. diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc index c9a6fa12..4e7e0f7b 100644 --- a/src/abg-tools-utils.cc +++ b/src/abg-tools-utils.cc @@ -471,6 +471,9 @@ operator<<(ostream& output, case FILE_TYPE_SRPM: repr = "SRPM file type"; break; + case FILE_TYPE_DEB: + repr = "Debian binary file type"; + break; } output << repr; @@ -485,8 +488,8 @@ operator<<(ostream& output, file_type guess_file_type(istream& in) { - const unsigned BUF_LEN = 13; - const unsigned NB_BYTES_TO_READ = 12; + const unsigned BUF_LEN = 25; + const unsigned NB_BYTES_TO_READ = 24; char buf[BUF_LEN]; memset(buf, 0, BUF_LEN); @@ -511,7 +514,12 @@ guess_file_type(istream& in) && buf[4] == 'c' && buf[5] == 'h' && buf[6] == '>') - return FILE_TYPE_AR; + { + if (strstr(buf, "debian-binary")) + return FILE_TYPE_DEB; + else + return FILE_TYPE_AR; + } if (buf[0] == '<' && buf[1] == 'a' diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index ab347fb5..3f8ed41c 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -818,5 +818,9 @@ test-diff-pkg/test-rpm-report-1.txt \ test-diff-pkg/test-rpm-report-2.txt \ test-diff-pkg/test-rpm-report-3.txt \ test-diff-pkg/test-rpm-report-4.txt \ -test-diff-pkg/test-rpm-report-5.txt - +test-diff-pkg/test-rpm-report-5.txt \ +test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb \ +test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt \ +test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb \ +test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb \ +test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb new file mode 100644 index 0000000000000000000000000000000000000000..f2d75622b407d42a038633a5e4ab435c0df51b2c GIT binary patch literal 33100 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 literal 0 HcmV?d00001 diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt new file mode 100644 index 00000000..34a0953c --- /dev/null +++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt @@ -0,0 +1,65 @@ +================ changes of 'libsigc-2.0.so.0.0.0'=============== + Functions changes summary: 1 Removed, 2 Changed (15 filtered out), 1 Added functions + Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + + 1 Removed function: + + 'method void std::_List_base >::_M_clear()' {_ZNSt10_List_baseIN4sigc9slot_baseESaIS1_EE8_M_clearEv} + + 1 Added function: + + 'method void std::__cxx11::_List_base >::_M_clear()' {_ZNSt7__cxx1110_List_baseIN4sigc9slot_baseESaIS2_EE8_M_clearEv} + + 2 functions with some indirect sub-type change: + + [C]'method sigc::connection::connection(const sigc::connection&)' has some indirect sub-type changes: + parameter 1 of type 'const sigc::connection&' has sub-type changes: + in referenced type 'const sigc::connection': + in unqualified underlying type 'struct sigc::connection': + 1 data member change: + type of 'sigc::slot_base* sigc::connection::slot_' changed: + in pointed to type 'class sigc::slot_base': + 1 data member change: + type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: + in pointed to type 'typedef sigc::slot_base::rep_type': + underlying type 'struct sigc::internal::slot_rep' changed: + 1 base class change: + 'struct sigc::trackable' changed: + 1 data member change: + type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: + in pointed to type 'struct sigc::internal::trackable_callback_list': + type size changed from 192 to 256 bits + 2 data member changes: + type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed: + underlying type 'class std::list >' changed: + type name changed from 'std::list >' to 'std::__cxx11::list >' + type size changed from 128 to 192 bits + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > + + 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) + + + + + + [C]'method sigc::internal::signal_impl* sigc::signal_base::impl()' has some indirect sub-type changes: + return type changed: + in pointed to type 'struct sigc::internal::signal_impl': + type size changed from 192 to 256 bits + 1 data member change: + type of 'std::list > sigc::internal::signal_impl::slots_' changed: + type name changed from 'std::list >' to 'std::__cxx11::list >' + type size changed from 128 to 192 bits + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > + + + + +================ end of changes of 'libsigc-2.0.so.0.0.0'=============== + diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb new file mode 100644 index 0000000000000000000000000000000000000000..a6f1454b5dff1211995de612126506688462168a GIT binary patch literal 14794 zcmb80V{k4E%%lry2|4$18X#6NBp#KpV=(Uz@(jgmiZry#Ig4^v- zi5Wv`1EWKlN}{e4YYV%#vNRRGlk0J!Ex_dnLkgK&+V{H!cD-L?e*!*bIkz+&q z#=Z7iWsl!6Yezp-s8J|8`|DIzfcCE9**#~!QuFs9C8&YFUw!<&+pz2ThhP79P5+fx z?P+8XS)~xKMXv~7t#LZSgmI#gl}J(u1+_-85z6^NV1&pxp_@r3^(Q*KdCAFHS+RoavST8#u=J)YyB;XZj?z7MR z>emAk^LMZ4&In(B_?L5LDsJ?hzEuJPtkv*R9s2`3to)&;;1u`Nr|UNM=z#YZzx*vu zckJz#bj>8JW;J)_DA$^MTyV>NZSBH)E<)Fc=rOi}{&D9L>5c@9I5> z_qXohH^BPv7hJtKpqKm}G-F9J>vC=qEiNvrTAu5YFq={ z0uQ610-UHYOr4AaT18dYb_mjsZeXa2enFrqAh^nPAy;uqQ{zj(Dxd=*t>hTGTd+|j z#7rZR$-t&GAZunDa9To^W1~j@uw0qyr0P3li4t z=jC9hfa!YFbN)G^?reg~_TjUfpn`E9v?2-pFUbb5ynXzqhJ6cq2fgbe$qr&0eG_(P zXJ|m}z!K|QXJ|n!p@luBDgd7Ya(71IIMJh>ibIyNOjJhrBVu$W6L(#}`!$KL^xSE3 zgGHBb>XIe>Fk#V@c_V0jdG}ZokK5u^1McCxes%ZU^Jh1bKnDq?UY9ugfm54Rv=Plc#{35<@E<|et9B-nV zTh#-VH?DsEvcT17EYz9~79w)t)pj?z?w06H?_e`(o6c<5FG!=zjMbn#8LiiNmo8c2 z!qaLznK@0`!lSF5q|VW@cct1qrDqkU@<@bCmjqmU<~EeYuJoEoWO;Bq+M9r4f93|c zMER8+(chV6t394^Jb!#%U+*+$P}bCFT-8+CgR>Ipi9JydkuZm#OZ7bgG?Cv`>^6mzPT<(Ew6T=LKhD@Jl5+@o8iT4^a?@_mjV{NV zF&L$3OSReSnVAIM-x;i!ZUV<0N1hjA{!nb;EAn3EhfzC*2TPU<5N*1(>=}$j=xvS& zvEA_^7n}~ucn=Z~yua@0Tt^L$}%->S@HZSbiDopk7&ww4uO5{)YVw z2AB-6m=Lg_|G!~>UQoaTt_(cBo4epJ#^grufDl)-{xca-Z3i}#_h+H*1!l`)+mcU zd+*IzPY!!+BV@PM;YP>FAX@v5i)%&Cu@v*BL$|!}8teL@I`54Pv1bjl3G+K2-6$+i z+Ddmv@2N9uU0Z~jlF|u&G3S0yYzkOIYvJ~UNmb;$L)C8tO$nO@(Ykcw?=-EAvh*4- z@YA2*Rvv$<)tN^ozmnIRVk{MXhFi~%C=CVzflh&i$-e~S%^!U@;;Rj>&q1|K@Tn37 zS>TZrbX`hN+-N0q%)`sVZ9fJ6H3Sj)@-%h4eSsjHjBP6iZ^qatlKxN2$u(Ri*K{ev zc;WXcQ%y2I-^ zsG+jxXQ*UMs{J|ne&&(SUmUva^TMttvqy&g3oDo?)09577@V;(S>Mif=N+^3X|B(NMU>2gBlCHa`fsPSqMz$`Uk^dX+Z_!wId|GkR$U)=z-y0>Odvm+G=ZU&}#neVrj8Sb*V76 zr0WXpDTS}NNAg32^(5xaCbQ^LhnkQE%o04FPU{#fdEu7cjKrn$T+4-pBb#lj{I4z#=@)AMV={o+5Ih3b94wPE)?~NZhhO3 zG20u4H?0z-ffg27_zl6CRdiALIyvR|5+WO%ym@Fx4^Wl3rRFNozA#dvhJBRTJm7@j z18E+CIT943V_$Y$fQY?a3=aCq?GYqRLyn|iE(SJG__E~SN|5e|Fy-1-Fa2-+F+4(z zn_KlX{vE}Oqv4cmU=Kr80-DwXR`FA=Ago;mw8LXnKlvn52e%L|=+o@E$ce$!YEK+j zkY>cN+o*ktuR_N`z;pIubFqIn+eUC2` z!Oi8*E8N_R{`*LVvU;n{3DN^Zdb~5a{GDk;x%<~&V-{P=+Y7R3+d$MhTf@a+cljTx ze@%%o4bEDFp4`!iJp@mj(W1}Yad zo6rm75Rv`8qiKJvoTxmGMcvtymqcrJ$jWnz7GPrvRBs++Ia{k?OsJnwSiymr=x1Ta z*`U~h8dXavGQ1?IFVLn~bH`OH$>?A^3F;S!Bhrhz+>tDa`!TSI)2=i_hu|1@D(|}R zv#b)vMHHqHA#NpZH7udn`+gWd8j`K)B>+oUTT;l5c5FsDmXO4&&W!#2mz7jI85GE( zEF9)=u>f&fF;qE{x0;r-i z9G~b(xKo|TB9uB7rap3L-o=;F^4BJH;FD;Ro~dVUwXNnKEM-wc;xTU-VQ~CBEQ0e+9wIZI=wj>&Y-iek z{hEdOq#rR4xYNy4e;&lvag(;EG*U)cwwCV;cp__^qX2vSxj$`oK#i3gIfz|nrXJ0} z5ETAxbIIgynd%DdaKXf|pj7CakMmrOvD~0VpwWo9?L0K1eBOAw{%78Bao`I@+8xPb zE2zmx{^PsLlANVt*va5bzd4?Lc6kg7!}JhmBtP{7S-El_)kWvZCjFm@u02#VwsimOleLOTf1sirCY4cvmL5H>~O+~17KLHaIpK|XlQJW>+{)Hg1 z?)@x)&*_8sr4gQmq~v?^yfm@|b|=FRZg_?wj^_F1$kAD*jLF31D3Z%xr@vBUf$5(NqUQ;8JJXm!jh~rI9e4|xH-VzJ(UMrD+Pe>5c(}r?)7&!=Saz#W^JF0Mu z@3Wn3G~VEz-}ew`uu}_q%54FwODL9G7|bEz1$~S zUrxG$n`;9Nda0Kp|5izcq)qQx+XZp52=6xH=gKh++_2Yw8Z~vbiDL;wurq8u>1ceD z2xm&Hf_B^=s%kRaGNd1UmH6|qj)Db4NT{Ey@ip!k@- zEYIbtm~z`>3cV9X-CfncN*r@F>d$mh2)=yk9_OwGIecbT(}g2hQXf@}K^|K3{zg)y zb91RRMtxrCyqM?dZ0fnk1;n1kUN|w^uMerAGVVPd)gYEvt{#eRf&rwpTESiWg}p%m zcn$K=xCUKz8Dl>l0`7>I(5)jU_-de}SuZ)t<7UOD-tkOm*fbI(AM?aB7PI|B*{}^i z0yU3%jyGl!L?Qd$hX|6qo1FgJaFl-4enNFok7kDF-1xG%4Xva>R3LZTzoGJdp)l_C zui5qr#IBQ4x%7;MT+kAQYd=Vqr6*0jT>p1W7{Q&p)1Ie_Tq93E_&$UO)5JIYPq9rw=L@~p5FF3euKW@4472QKZ-vm*^lZxMb1xG!Y z4W+M$xQ888-8ZK4#EB_PwM!PtvY^SNtjMxt^=BxO<~W`A<^}G?g*~s$Z&976T>45+ zDdrO0uEe}?Cg#AnV(`p7tqJ}}=mG1=ubuzK=r~UM(3dpD&OT^{e0G*Qt7bmGQL2;d zUr@WeE+|xHfedLxKtH_^%4zuOq~i6LMLWRw`vSv-;5Yy|$-`_dBF({UWGgxG72!nM zLCM`4XZ6pUD)t#cwLvGLSuV9VTAGP9{!6Jy>ad@=Q$i~Oypo6o9M$`NVY;~zO;JVaXvPY@w?l^4FjTgPDRENd>UWBF`DW8_86qLTGb|!I{cI!H~rQj;k5t&=&hjaZST`$%x9?d|bLEDhJ{W zo!dkWPPBi)8TZKJGywfA=EUA*RW8yrq>JkYc0D)?HNc45d>Pe;CSx4YW@(bVcR32E z(Mzbi1*P&~RT6lXA~117sJIv%c3WqlY~Y8SM5QWI@e(N7tqAEsr694mZ7OfB2I`&T zi_FxBKaF{#ODE^fImeU%qR`JfG^71CzXiiVV-|qE6rZOTC!4 zpX-Q3b+^zs48+pYX#+iytfd$<3~=51u=!b1C(kWM~jR1I|2nK zhE!pbVIL`2Q{|7OZp8&g1M1y5s6L`^34w4Ewvp9mac3T1n6rXysQIQ^q5Tt+4(>>E z2tIz&g9Gt`$PuQ>?i^NSp>nHzD`;i-SN0H3tRs+o7A+ZD z#4^x%@4cUjY-Vaiq&000Y>clCJ;#mv13M1RB}{B7Vh^8tYZf2P?FugMH-3?RSdyY{`H+cEpCL1ATNu&%{)0S!^80p&`mb_ zzRGo`ekR89+hJM(`IgCRZ~`F3wla^7-8py(7^oWk8X~|a*SQTOzgsWy3lFDdze1Ag zn|#PGe!x~JkGRl>G67^7{g-FvoB*7NHKfY&d3r``?6qz0(#7~*ziF@>mqd1FsX zPvj-n_@NJn`w<54Z?{Lf_0}*if3h3=DEB{bOb^`mJ{S&O zM}oZ%2Ikn_nl}fisE-a9yn>?0k;y8zN1g$@-tS)V?@=o0-17I_B5ag+QB(V%eIBbn zTcAGDc--Zs0R@Y#QD>Bk4Qt#n6xgvwc~^&7IYpyyR0<_U(Jil(XQ+xP9oo=$m}G~R zsJYCLC52A?2UF8s@o9X)7JUV-`Mx%8Cll?*TsaDfFU_QgOuYe2vvI!J8}1s0%cz`x z)&l<|CF|4c{L4fpL#bug^0-5pI#grtdeVMN` zUhP7~!|r;|-yh~5J84v<=8=?=Qz{XAsO6Cds@^YC=~d7-E*T*}Fv*INyYfYuKbq`$sAY?w+!?|-o^x@s zhMRW0J>Ov2-Y9Z}D(Dh3BFvkbKQf}}X=AVV0+0vSOq)RhMv7MDRIr@z;O+315u=(U3CUrpImo?Hw>`wy0e)Zj2HvIj+r{C=;SrS52vQ8}@L;Q-hPIl;2 zkf67xybrADOAG;zd_ka}MJL931PB_q#)b9^ouAugM zbUQlL7bBYue%&Zht`rD(ULw@d;nHCiJ@LpZP|>Q=1Ve z_53sx#W7CEc+Xj$6^*0kmv%bRzmTw1wxe{*0kZZ=_OmHDxqXxy7)$k@6kjJ*J31ET zG%Xd(G)k@btO+Q4nTvhgx`o6^tyVg@;^lp z6G^Y%$8?a*a);Po08pY4rUyw0-~v1zzhJJtksnh3k;%mS_m&f!TJTEARlTf79I*3Z zLFBH*vBUhh#HqSwf6Z>?(5+FL{zw$tmP4MmLY5iQ5Uq^b~t{j!b z)$YN%K+}uQKo@dWOt#9BYYz7vumUPQn0k5xBlo6~t(6Bl!1Q|P6{V|l!Yv`)T{{Se!ovAP%f>Q6B9nlZJ}Qvd*Cy5 z`FGpx5Pq|XEJ=07xiKi=asUb1V_m^itd*cNBPx!^$)hMm2Tz!2g!4o?p&zj zf}aXpk-h+RsV5!V7#3)OJ~Eg8Du4^`RE^9BtWC^nu3XZAd-{AmSSD3oj2h!li#d$l zb9_Rl3fGPbF?;fAS-4v7NZ9$}j?(9+^SuvgcHT)@@72NqTIYZOyKwmyNWD=Nkh%3JDC!V=H5c9byuhQhy_e7i}SFJPtq*1D^Vz~&S zU8k5kq{Rr~d5yY}eiM<$heU(nxlSLGbK5jLxerCA3iGh&(+=jg)9rV;3_{%*0VjM* z0ngC0%+Ph92yt$QP;Z2D|LVd0N zirmke?Q#h_}7c_nNEUd5hdjFf|@00zTjf}KEPICAW(ZP|XPsWZ0q5{am|W5BC5*bchVVD#c@ z%Fh;h(#qff;-9}8!9>>5zL-)Yc3hwqb`0JAw~O+hoBq=$tVKg_gVc|K8(g3QnBv8R)25%9(PvvmJLkd#i@-7Em^x4ZY~w`tze zGa~_MUH}=m^K%($>tY;OKiUH#7X=dghus#i9QNs?oN)S|SiZX(vvjthGeUJfscWS? z=b+c#g@3+Em5|$K7(j5E9f57^1A&bUD~vqFQ5V%IHli})ec1*SdUcbz=Lmeb$0nhy+M6)sfa>e4u~!$niO-ErHAej|8-DP;Eso## zi;2k~myLa3T|XzUp|ComN)$1f0#|(R{8P5R{P83JB@M$C*`gMONcyT3=MFjco5jx) zu#?4D=WoCOzO-G*A<{G1>$yTo!u-MLg%~#All?eI;jrQKnM^LohdpD73Zn{kd;w@? zFiZUfjftV$8}prmYxxfRAufjF!M%K9HI;lbL_DEJxa4M9eZ+C(cyC>^5oz|IAvyZQ zV#^3jJ`Of`vK}5*Mx{u%nnonCG&L*!pXxNn1UY<<1rO$Ui?lIDn za}9D4e6D7c8C!sEsMx!tOnKjmShZ?zD%0`wb=5Jv0U`E>SYiEFM1xeshc>eU6O`~x z%UlKvzI847$edP$ZTr;*)Xun;3rYG0_JG{NQ~5f_<0bg{X5rG-_enedF1+G(o$4>B zsGrkzzr!Dx12E^I?0GrwtH3I$>#nE_T`&1e{OJd)icj(5aQNrrV z-^{L&%04#eUEo>i4TTOLkoaJaz%-`l`}<#~=x52l4vk_Q*UWi98^=%;v9(xMHGlMQ zEkrbWr3}eR#@iJ~L{Ec~dP50&I(zy00UO`k9x7>E$^5tKyEIW(hQbh~Nh}i|wI1l0 z!n81-n;6yHPMq=Ze00DLc{LnTS;JvpA*?3< z`V%Zq2VO9y0PRs3A+n2!Fe)R!3gi#g_ zNU@tP84Ji}r1XJh6qzi7B`%`BJ&qV%BwA<-@zxP5INqpuWY7A2dL_T(S%>J0o?NuJ z$v} z|2eKEm)GP86Scc!^JvBv>!;SS6PILiT?G$4I3*EJ`KIpM@f*~@}ZoE zbfMkvlLchRW6>F3ncxQOo!UMHJPu?LKItZ1)IFs|M5)nS+Si$@5!K#l2d5jxQ#Gk! zg{jPb2++5G6QvE+F=47-F;psKqnC2$HI2iUVsq~_B8Ilsz5M3NdM#+zb$~jRa~c_&)q^=dwW#3sS(<&Kg!IuO<9;o>;CVCaA!my9nNfg?Zi;+7A>( zAv$!Q$4&~+4Db%O-Oc0=SrzV2gi^X2uX*Lamk~;lEAsSQdtn}&jQ|Jvozu7xNz^Yr zQ1eEqbIkO)fvvVkUl1BWm@_Ij*f`T?{A-g8X%L4m9SfX6xWtNgS3Z9tqw!8pfK6G{W&bi)5sPR@K1@ahVlJjHIB?28girYkviPtziw9BYi1;=(KKFebaZWnk z+7-%NBXFt!Bu0M7#=9EV@*(s)j%HnV#-ZS3Wz?g~OdBn79gcl8R^;<7bjgdYP6iDR z_5QChLg?S6QWb~T?KH6j1Fb+eTOp5n4ToNXR)uRDm&T>))?cdn>V0_O$323&pXcu^ z2tJG0ESL=wg`3-U+p1SNJ4Y6I$q*>c=e~4%y+rmNv)^hRuxgt3g7idLzwu^(s ziWb1i_!T7s=qyM2#hnxi z2EpCLLG3?%gd9i1Va(4&LhSlJhabMxknjv|t5VG$p_@i^0J&HAqP8j#qPv$A+b!bT zIAlBfs;CabHDt0uDYb)>Pt1$`nwTy|9udUy?&#>JY4J^i)A2-MJmXs(iW=27PIb69 z*v9(;R_dd?6QfOrAm1F>u&qaLhT5J zTGrDMm6V>Tb#&J~KgEomT$~)N(HUZvcGTsjrUyM_ziks9Eu6G{&8X63 zHj_Wf)N-PLBxLkK2jUs>{z@#2+^!rcYz5Ckmcxu3qK>#%d%yfSq9fmC+F=**VbpuQ zn>Y(~lc@N#ePc}G+3G*~QrsWUfVQNlK=B*0}dv$N2X4g2F2a!y(S{T$i3JId3 z9xJr?Y*ByF11o?J)=f5l9QHZb{DJ7*!8Nr!sj1lc|DgO@-(0QD6?w5diWWU7t`8WU zt@osGbc@k@vsxJ9jsvtKD{5CA?^i&&Kp&r6NzEs_MLClOBDhAu2fb;Cz8^6oZRv+E z0CwZBXrB=BT|A6I;S=Eiz~i(=jCQamoEz8FY9Ms zYV*5CH-$4I7@rP|B&#hO56nEM1@p&@h9d#v6>OFJ7)k7lyM2VGUf#^{%ELFu-#PO& zN@zt}(u5YA7XLDyPzuqCc)Q3>f8fpMM^l;Sl!m54Ydu2IpFBPldQD=n;?{2H|A8ud zrU{Rv%StJWtgf!Iqd;YYIvZ^5Ax9&Mv zn+s|DRq{ZV*B0hz(}y5M2Nw$C6ESXSkr8HyrzP78+5}Nx6o|^T8<$$vS%vvl5eOg& zniX28SUA{#KMIo|Y~|kGR-J3l3{a*qS|){qLX7KlPa(Ln-*Ened&CkFW~zm zTn`*VQDoxDVD-2<)6BBw-}fcY7;t<|v8XfW>T%-0B8RQ75S~LjN4hcs2U~Eh1%q@J zKHm=#puZY#J?ia(%X<)b(uDa@-@>A2@zeNlh8z0F4jVI}Vjb#yGWmo!bLy< zh>GH0h<)1{_p~gYlqQE5fgPaZw_ZDaHUc%zY<3fb`Jkkd1@Uq@#PE6&Sk%|BK}=ox zib%}blL-Hn_kC|XXZVmooz~B-QK^vDdr9*(P#vHN? z8$`gHb%9Bgpxv<4TxR@{#qi9AYul_4?dUV^!IgPQ=}4=ns9v$K=EFy{ff1L|Ap1qA zMi(r(R6l*oEeD%XqGU zDS`6|drhB0@NE?Fgte0>{n~=3HieGyuJMbOV1wPBGDh(dB|_UMK)~ri>buUu9jGD#W|!K`3k*n z#AofCJx~1)#?1JGIHluf_2Jfm!Z=Pm!?tSZH#!Nerls*m#aM`W_G&c5Q{PQK&k6g| z4Xy0s$I;9UZ?pWcAgnYcuvU<(O@Pp14gFii0ZOYr!yoOM$w3caneZ^#L>D%GXTT!0 zs!B85WSGSk*yPEgUv3u5`cj;;w0^h5k6#nJbwK7!_V7|8AbILEXTma%A*RxD4V8gi z#xDzHNPkuFQyg_;T|hpj3c@k|G$gW2(V)kf_{l9o4W5!k&%hwzFLh^YF4Qd7-^7ae zXjv?DArBAp(%Fd4`N{<$v62@<;mVuv0E zm0W$TC;LxDi>J|63kK1KDmNiJlIB&XAsBvPx9e^3#~*r1O@vo!xgtZJe+P%sUz*}t z8hVmJYsmjWcRaflKEZmZVen%>2xS~*EOr)E$&f=e#U9^*x}(qXzim|ASDiW8G@MSn zoI{J--P#b~^S0u! zeYFjZ>&tByf?A@@qE1^?6xTm*{dH6k01lCY)-0D!+an1g%Dg-V?e`0T|I7uXy;gl2 zVB(>pGgnU8dBgD|A`x?D0O9>pBiooN{;+c{8q7Uo%xEuCe!G>#X2M%GtqXx;AnO0b8`@1I4|rTn$>)}4mtOs@&EbnIYVWSq{zf4|1HR9sp(*?z`P1{u z2d8PGz@$5PA)k^IvUNS1Do%{4C^>J9Wcgoiq za^2bscY=0Z;bGYR+Z$)u2Cc8l)iuDE2NCtd2(hO+|CF2Ykp~%ry-La-+Fxgg*z*Db zf_c33sFFTfiCK)fWEo+xreoO%5YS^C@ja_{uUh@hKVFl%1(O0tsf{z^Dbjf0TIrYc z=C&IC`Cmr7#U;m=SunyeSdED@*nwrE&E>f`S z(H(cm1&%c(sniI9dax#zZ3v;Tx2(~T0W&j+z@c*$!>!Km9IN#DCM3e5s731%K>2Rf zayep9$lijMqwV5E{GQl2L>#UH&7IzD%hwOjPeFPb@$c%8|}XiS_|Id@b|l>75a@ z*%-aGEr!lrOsNcwFM)qn5PR|pF_-0(SbsfwFWb{uKbT8}fUu=<&JU`AtAh_-Wg5}H zd9YjmMRg(b#4Dt$9YpNyW@3tj+4)d|9dzCH=sbfHU|V}Dy@ zNyX|Ap)e(0ToVxWJxj@iaP)!RJ=n9nyAAhC zM~wu?;k5oTnch=g5G5{R?%%H-ViLQUz-a4A!BD}?CpdnA7o7@SyR5^qDdDm(V$a@! z>Aoo2@eq4Mxp8RE1TLi`cIsn1Si`CM~_$^#D(g?Mtrj@lrom92dHB0=qAvmAfe!t9Hl5P7D$#Q|1o_>>plFQvyiu1 zdF${Zo}jLx*Ue6;WTd%&)(sM}5lD^M-tbNN1@moVY<_m^`BR77YdV?!gn`dsy;2Vn zq*_*GMRC)6yBPn^b6xxFm^dwJ_VlX))7`NE{IyyuHLi82Ny1E9T)9%mo4GIT1B=wZ z$-SL3JbKw!FW|dS4B*(jtORltExV#~?@UKwh8QK(55p|k+I9yl9H_}SA}H%v4lW<` zr49CoJlLQfu(u>h^^rh%OVcVAuvQo;g4Kb3s29f*pSh z?f?UM8*zg~7PY!Bv}?|LBbb0N8|kKgQCZJ7 zCV2e`hYpl6L$A!BswNk{9Mz)QH&8djk7)=z&L-rrrzY=-r;B;tba4es@x6m~Z+9aX zYxw^#r;m)rO&rATy6A*lCHJL`hNaWf<(7&LGGg+#$4rqPc!%Ut)!fA$OaNvJ4B73I zePtl%Uwf=OPY(iW@;9O} zmfa6oWty+MA~(TFpI5coKZ4!sD-v#o`X2lh#S(x5_R6_Ib#-WGz_?N3_h zG!?qkF2%1}UGRl+GV^#08eAC^YgDJHN;@tiKHml6ZMlu6jT-g*Xw+#pzv|f)UlJ2V zA{eF~3y9ojE1&=o-FUlG%oL`&jI#cu5vD2rk0)W^oDQQ2&F6!i=HlaJX$)47^JOeZ z6BkHSliZf(b3)%$F3gvocA6WRSXc$k$SkFLBFm0)pnB>r%`ZQ1cKb>XEuY!Bv&Syo z=eC};R3GDcAMOW(WBINvw_|i>*hvtu!@{ysc}~jZDhAs*y6x|qQe(bg%B%SO&bFVJ za(|}xi_mAE`0jY^TS(PY_>Bf^ddt3MwwO{h$YavM5Y2;Qtdi?& zb_2xIxSQ9@KsKUEEvV$8ChFW!ywAsy9OusQpLHT&3j}(8KzMnU%tYrNB5l;SPPxRi4vi2 zSL3KTsl#~c3$=g&=VU)2KSL<}f!5TCE$K~UEbNR7b5&nlptTtcCBE-3YOU9Rm~&J` zT5+c{C(k!&Y}ogu0$OSlGvq0=wrH9yjw0a9PF_M|psq7kSX4~zb2LKqux|f+)UIhh z3H!bxUh0K4U&y(Z4xcAgwb|pyDTTE=$p#6;!Mu;n5dbm+*YOOAyEuNoHD$%G9_t!M z9(Qa?RxI0+mEyVJy6>6?Nx)FK|`DK=N5lrILs3 zMeMBx$Pz+jaqGw~o5CKjaBLW*Si^t+6wf_r^rH6w literal 0 HcmV?d00001 diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb b/tests/data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb new file mode 100644 index 0000000000000000000000000000000000000000..a4bdb7fe9fa3fa22447fb1926ada251e6e938ae1 GIT binary patch literal 34362 zcmaf)LyR~M5S`byZQHxQwQbwBZQHhO+qP}nX8UV7-u%OrDnx9>2M%n))LI2xJr zLK&MFS{T^U8d}&IIC>Be5HPYZ|6^hM$HBxzK)~={|9>hY0|Ofi3jx7@{@>DvVxnV! zGP1LEcC@pmb2f0KGxPla=h>Lp{%;;X3IgDN3JCZnMapiO0b%UzT8>dnp8eJ|&m0t@ zm}s~_z9QV}WH@Pfxq*1gLW7ql$r|6#Lst`$kt?n}gY~Nh3z>@SgK` z?yTyCXwEEZ#*<0?EDN%lERG*P2?`)--{&)DCvWvn;n?9q2Wpr1{(J4}r0z72-t6P; zY3@m+H@83f>~BB2;!$y>9n>n){POXfB5O*6txMCSv;3$Q^{f~Eq#)oum=No(l_5L%{mguNwQzQJMolt>J~zT?lB<;= znQAuhVW4;i?OqB>GW(S+!5(E!v#sXe_Ox9A0NfTNwQbCkq38+MekoJi5br0^uTK=I^# z-l9B#L>{ek|0;iTwOw8)d*ypTKHnbW^thb$i|SRrlA?wj#-S7 zA1;$nA|EJL1>93lI!YeX3;A01l#)X@2CKWN*cOy)FUhu{0Bv|5VnOY~Gu(M6y|G{+ z#*ShmNJ3Hi*Y3Ds@ssEyN<|SLA1*T1V9Lg_8+;< z^e07!^nZa9IsoX<-8epgDgBJXnn9IXUS(629dtqczsSQP~1#e2o>}-Zt0BC=3 zYd2~|xL~fS&a|52uiae9b9@184OD?Wx;XMsz4D7JO*+-fp6h;YCx&D?7)UzYmD6$Hn$aiL`~NK&7g;Z?-( z$Y&(RXbMkYLT+gL_(Z+4=-W;!?5pfjxN6lzTF@3eH#XstMA896wVcGsnWkjB)beR* zVeh@hO2-7!@^#!`SAx6Nh()MWax7EK?-D|QGXC1Az^$X_w;B&3ff`y4`oHHGlzs%Q zZj8mEE6pIT(bsLiS~=3oLKAni^j?C9=cgwB;3QbvV9QQXs-gQstRIvaCKbjgPFSI? zBw2>_GxV=auhby+sc_@ zCL?JA$^vVLc6G5O0EX^^fqWg-+rCq0Fh(Y&a-f!`k9C2Ylb6i97|B^PhEshU!r3Wg zN<46JsN-YbNnA`A0?bzn|E$8Ghb?Bi%pJF|kdRvad9*m|7i(KnW-x@mFgD=rJ7(Z1 z_cKJQB3jl7hWM3wHfLV&HfpJy*6q5-d7Sq02H7Hn>b@wpG|)t2m&bhPZR{TD*Yt#o z6AwjcntB2J@kIo@jO#V63biFjqg=V=gu4%GeKjg1gt1a2Qp+ygfViSEGQ_XCIV2i! zLyN5rLiu#IIVq0mGx>O)tnC78J;+MYg???_Mk96t98rI-p~S1o!Y;?U6mTDx+7yGn z7KTr_#Zi0yG0Wcr)b`o=^VO)P2k- zv-DV`S93$mXsC#fg$OyD+!-tgObw;&puYOu*!_JQ9i`zd2kr>@oZMxDonxcMiScK# z^qV3dF}GSF;quC)!hTFcU_lEcfw_!?_rxABwJt3^9O}Lru>`~yA@;j=Nd}?tCzp?@ zo^MxS-v)*BpZBY_u;gJ)A7fJY;^M@ky?*nprGd;+Cu9Q6 zRQC)Rtpv>t#G__dRq02%L)6o8lwP~=J7@DVfJ=#_l-J>KC+tZ_GnaC=Kr0mOSL?2p z^?FS^OPL*K6$)gI)1ui04eK(mLD_n7EmFO!-4S!pQ`SleqxMXYt#_1xxN=>7cY_rb? zg^7GMl#)1%+vSiwo!DsQP{$)tI?x|wfA_syVmzM6w3VcgZ7ohkZlR{TT2%CIj8E~6 zX3N{ujeI!Lx$G3`^@CD4?Y=SsH)SVesMrwN&IM4ylC#*{rK|1ok z%mBkZ)1IG4kj#sxp$UbIwr5D6tk&W35E~9BaKnG(C+w9FVEQmcxnn$HBlHGl+|<#H zZZp{f3MY0*%+*K>Zof#LpSuJ^v&9rBskTLRyB&F08a$r47q!oc>_-efx8Ryym=a-} z^PnMrhFv{0w4kX4nys%8lxvF?{iRPTU(TAUG@)9N7W$~)#r$O!%C#sJ6JyDDAP}?5 z#jurpFJ0Mu`Npp*0vxhZX-0i=I@GVE;P!pLwf>!XJ6~P7ItNQ3>uU9!h;H~r`_wq@ zIJJNC#%_s>1Y7Mk?8>O4_;HvaztvzjikZs~S>gmf)^Vo9-+0v};s%&w>kLT%FHQ)*4(^aNH7=qUDUJ$giHym$d-w!qZ%ALIuH>a_|)GPMs;A`Py zt(f+Zb~UW|o=j^i|Ik!fA25LRPSvbU^6}RQ7BJH?IV#8}T{4QY{$NItzVTu{_r^li zmkS(25tY`>mJvI@XOLohG`RTHg_hT3qj#UYPc>2@t~)}POX%~tRm)R8D1aL@nZeM- z>I!qMw^>c0sWn0*x?o9A!zFpg?@WTXW^1%EK zp>-Qte1P3C#pw#qX7m@nWvu6arw!VHP~;a31)&bsDq*T1Ffx5&bT#Ltx$H1OlgG() z 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 DM&F;S literal 0 HcmV?d00001 diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb b/tests/data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb new file mode 100644 index 0000000000000000000000000000000000000000..b0c309232e624303c15d73279eec7f61f4027598 GIT binary patch literal 14832 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
g_js8`ptx>rreNn2VPR*bIZ^2$xwe;}q@#O5s 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 literal 0 HcmV?d00001 diff --git a/tests/test-diff-pkg.cc b/tests/test-diff-pkg.cc index 5ecd0627..277de36f 100644 --- a/tests/test-diff-pkg.cc +++ b/tests/test-diff-pkg.cc @@ -113,6 +113,16 @@ static InOutSpec in_out_specs[] = "data/test-diff-pkg/test-rpm-report-5.txt", "output/test-diff-pkg/test-rpm-report-5.txt" }, + // Two debian packages. + { + "data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64.deb", + "data/test-diff-pkg/libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64.deb", + "--fail-no-dbg", + "data/test-diff-pkg/libsigc++-2.0-0c2a-dbgsym_2.4.0-1_amd64.ddeb", + "data/test-diff-pkg/libsigc++-2.0-0v5-dbgsym_2.4.1-1ubuntu2_amd64.ddeb", + "data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt", + "output/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt" + }, // This should be the last entry. {0, 0, 0, 0, 0, 0, 0} }; diff --git a/tools/abidiff.cc b/tools/abidiff.cc index b977f0a1..9c706b5b 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -551,6 +551,8 @@ main(int argc, char* argv[]) break; case abigail::tools_utils::FILE_TYPE_SRPM: break; + case abigail::tools_utils::FILE_TYPE_DEB: + break; } switch (t2_type) @@ -583,6 +585,8 @@ main(int argc, char* argv[]) break; case abigail::tools_utils::FILE_TYPE_SRPM: break; + case abigail::tools_utils::FILE_TYPE_DEB: + break; } if (!t1 && !c1) diff --git a/tools/abilint.cc b/tools/abilint.cc index 0599d245..47a797cf 100644 --- a/tools/abilint.cc +++ b/tools/abilint.cc @@ -227,6 +227,8 @@ main(int argc, char* argv[]) break; case abigail::tools_utils::FILE_TYPE_SRPM: break; + case abigail::tools_utils::FILE_TYPE_DEB: + break; } if (!tu && !corp) diff --git a/tools/abipkgdiff.cc b/tools/abipkgdiff.cc index 982a2b51..6c78a370 100644 --- a/tools/abipkgdiff.cc +++ b/tools/abipkgdiff.cc @@ -417,6 +417,47 @@ extract_rpm(const string& package_path, return true; } +/// Extract an Debian binary package. +/// +/// @param package_path the path to the package to extract. +/// +/// @param extracted_package_dir_path the path where to extract the +/// package to. +/// +/// @return true upon successful completion, false otherwise. +static bool +extract_deb(const string& package_path, + const string& extracted_package_dir_path) +{ + if (verbose) + cerr << "Extracting package " + << package_path + << "to " + << extracted_package_dir_path + << " ..."; + + string cmd = "test -d " + + extracted_package_dir_path + + " && rm -rf " + extracted_package_dir_path; + + system(cmd.c_str()); + + cmd = "mkdir -p " + extracted_package_dir_path + " && dpkg -x " + + package_path + " " + extracted_package_dir_path; + + if (system(cmd.c_str())) + { + if (verbose) + cerr << " FAILED\n"; + return false; + } + + if (verbose) + cerr << " DONE\n"; + + return true; +} + /// Erase the temporary directories created for the extraction of two /// packages. /// @@ -464,6 +505,14 @@ extract_package(const package& package) } return true; break; + case abigail::tools_utils::FILE_TYPE_DEB: + if (!extract_deb(package.path(), package.extracted_dir_path())) + { + cerr << "Error while extracting package" << package.path() << "\n"; + return false; + } + return true; + break; default: return false; } @@ -1044,6 +1093,14 @@ main(int argc, char* argv[]) } break; + case abigail::tools_utils::FILE_TYPE_DEB: + if (!(second_package->type() == abigail::tools_utils::FILE_TYPE_DEB)) + { + cerr << opts.package2 << " should be an DEB file\n"; + return 1; + } + break; + default: cerr << opts.package1 << " should be a valid package file \n"; return 1; -- 2.43.5