Een analyse van Open Source gebruik in het Aangifteprogramma van de Belastingdienst. © 2 0 0 8 Peter Rooze m a al, MathFox A uto m a tisering. 1 Verspreiding, reprod uctie en op n a m e in een gegeve nsbesta n d in onge wij zigde vor m is toegestaa n, onder ver m elding v a n a ute urs na a m en de z e licentie. Het is niet toegestaa n toega ng tot e n verspreiding v a n dit docu m e nt bij overee n ko mst of m e t tech nische m i d delen te beper ke n.
Samenvatting Gebr uiker s van h e t Linux be s t u ri ngs sys tee m s telle n h e t z ee r o p p rijs d a t d e Belas ting die n s t h e t m ogelijk m a a k t o m m e t ee n Linux sys tee m aa ngifte te d o e n. Dat d e Belas ti ng dien s t gebr uik m a a k t van Ope n Source is z owel uit k o s te n - als kwaliteit so og p u n t begrij pelijk. Een klein p u n t van z o rg is d a t d e belas ting dien s t in h a a r h a a s t o m d e Linux geb r uiker s van die n s t t e zij n vergete n lijkt t e zij n o m, z o als d e licen tie vereis t, d e volle dige lice n tietek s t voor d e O pe nSSL bibliot heek over te n e m e n in h a a r h ul p p agina' s. De ze o mis sie m o e t si m p el h e r s tel d h u n n e n wor de n. Vervelen d e r is d a t ee n si m p ele tec h nisc he a n alyse laat zie n d a t d e o n d e r z oc h t e Aangiftep r ogra m m a' s voor Linux sta tisch gelinkt zij n m e t d e o p e n - s o u rcebibliot heek GTK +. Dit beteke n t d a t ee n a a n zie nlijke d eel va n d e o bjectco d e uit d e GTK + bibliot heek geko pieer d is in d e exec u t a bles van d e Aangifte p r ogra m m a' s. De s t a n d a a r dlice n tie waa ro n d e r GTK + vers p rei d wor d t, d e GNU LGPL 2.1, s t aa t h e t royalty - free gebr uik va n d e bibliot heek e n ver s p r ei ding van d e re s ultere n d e execu t a bles o n d e r be p a al de voorwaar de n t oe. Helaas voldoe t d e Belas ting die n s t niet aa n s ectie 6 van d e LGPL, d a a r zij n oc h d e b r o nco d e va n d e GTK + bibliot heek, n oc h o bjectco de die gebr uikt ka n wor d e n o m m e t ee n alter n a tieve versie van d e bibliot heek t e linke n b e sc hikb aa r s t elt aa n d ege ne n die d e execu t a ble ge d ow n loa d h e b be n. Hier m ee wor d t vers p rei ding van h e t Aangifte p r ogra m m a ee n inbre u k o p h e t a u t e u r s r ec h t va n d e GTK + o n twikkelaar s. De Belas ti ng die n s t die n t vers p rei di ng va n bet reffe n d e Aangifte p rogra m m a' s te s t a ke n t o t d a t b r o n - e n objectco de volge n s s ectie 6 van d e LGPL b e sc hikb aa r ge m a ak t is aa n allen die ee n ko pie va n h e t Aangifte p r ogra m m a in h u n b e zit h e b be n. Voor d ege ne n die d e p r ogra m m a' s ge d ow nloa d h e be n k a n di t gebe u re n d o o r h e t a a n bie de n van ee n d ow nloa d van ee n Belas ti ng1 Peter Roo ze m a al werkt si n d s 20 0 4 voor Ope n Source Risk Manage m e n t e n a nalysee rt d e risico's verbo n de n a a n h e t gebr uik va n Ope n Source s of twa re in co m m e rciële a p plicaties. Analyses als be sc h reve n in di t r a p p o r t voert hij regel m a tig uit voor kla n t e n va n OSRM. Email: p r o o z e m a al@osrisk m a n age m e n t.co m Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 1 / 7
die n s t website. Perso ne n die ee n ko pie van h e t p r ogra m m a o p di sket te of CD o n tva nge n h e b be n m o e t d e m ogelijk hei d gebo de n wor de n o m (tegen k o s t p rijs) d e vereiste m a t e rialen o p CD of dis ket te t e o n tva nge n. De Belas ting die n s t ka n overwege n o m d e Aangifte p r ogra m m a s voor ko m e n d e jare n d y n a misc h m e t d e GTK + bibliot heek te linke n, gebr uik m a ke n d va n d e s t a n d a a r d Linux faciliteite n hiervoor.
Feitenoverzicht Dit r a p p o r t is geba see r d o p ee n a n alyse van h e t Progra m m a Aangifte ink o m s te n belas ting 2 0 0 7 voor o n de r n e m e r s, Linux versie, ge dow nloa d o p 5 feb r u a ri 2 0 0 8 als wa2 00 7_lin ux.tar.g z van mij n.belas ti ng die n s t.nl. De a n alyse h eef t zich geco nce n t reer d o p h e t wa2 00 7 ux p r ogra m m a.
Inhoud van wa2007_linux.tar.gz Het wa2 0 0 7_lin ux.tar.g z a rc hief (geco m p ri meer d tar bes ta n d) bevat d e volge n d e files: wa20 0 7 / bi n / w a 2 0 0 7 d wa20 0 7 / bi n / w a 2 0 0 7 ux wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7.b d r wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7.efr wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7.gui wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7. ml d wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7. pe m wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7. pfr wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7.scr wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7.to p wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7. zip wa20 0 7 / s h a re / b ela s ting dien s t.nl / w a 2 0 0 7 / w a 2 0 0 7 d.cfg
Het wa2007ux Programma Het wa2 0 0 7 ux p r ogra m m a is ee n n o r m ale Linux ELF bina ry voor Intel 8 0 3 8 6 e n co m p a tible p r oce s s o re n. De uitvoer van ld d laat zie n d a t wa2 00 7 ux dy n a mis h gelink t 2 is m e t ee n aa n t al sys tee m bibliot he ke n: lin ux - gate.so.1 = > (0xffffe000) 2 Dyna mi s h linke n be te ke n t d a t d e bibliot heekco de p a s bij d e uitvoe ri ng va n he t p r ogr a m m a geco m bi nee r d wor d t m e t d e p r ogra m m aco d e. Dit in t ege n s t elling t o t s t a ti sc h linke n waar d e be n o digde bibliot heekco de in h e t p r ogra m m a o pge no m e n wor d t. Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 2 / 7
lib dl.so.2 = > / lib 32 / lib dl.so.2 (0xf7f320 0 0) lib p t h rea d.s o.0 = > / lib 32 / lib p t h r ea d.so.0 (0xf7f1a 0 0 0) libXext.so.6 = > / u s r / lib32 / libXext.so.6 (0xf7f0b 0 0 0) libX11.so.6 = > / u s r / lib3 2 / libX11.so.6 (0xf7e1a0 0 0) libSM.so.6 = > / u s r / lib32 / libSM.so.6 (0xf7e12 0 0 0) lib m.so.6 = > / lib 32 / lib m.so.6 (0xf7 de d 0 0 0) libc.so.6 = > / li b3 2 / libc.so.6 (0xf7ca30 0 0) / lib / l d - lin ux.so.2 (0xf7f540 0 0) libXau.so.6 = > / u s r / lib32 / libXau.so.6 (0xf7ca00 0 0) libXd mc p.so.6 = > / u s r / lib3 2 /libXd mc p.so.6 (0xf7c9a00 0) libICE.so.6 = > / u s r / lib3 2 / libICE.so.6 (0xf7c82 0 0 0)
Symbolen in het wa2007ux Programma De s ta n d a a r d sy m b oolta bel is uit d e wa20 0 7 ux exec u t a ble ges t ri p t 3 ; d e sy m b o olta bel voor dy n a mi s h linke n is wel aa nwe zig z o als n m - D wa2 0 0 7 ux laa t zie n. Wan neer we d e C + + fu nctie na m e n de m a ngle n h e r k e n n e n we t al van n a m e n uit d e GTK + e n wxWidge t bibliot h eke n. De t o t ale lijst va n ge defineer de sy m b ole n, h e t m e re n d eel C e n C + + fu nc ties e n C + + m e m b e r fu nc ties is 2 9 1 2 7 regels lang. We cor r elere n d e fu nctiena m e n m e t ee n lijst van n a m e n uit d e s t a n d a a r d bibliot heke n die in d e ga ngbare Linux dis t rib u ties o pge n o m e n zijn; d a a rvoo r h e b be n we s p ecifiek d e Ubu b t u bibliot he ke n voor libgtk1.2 (versie 1.2.10 - 1 8) e n wxwidge ts (libwxgtk2.8, versie 2.8.4.0 - 0 u b u n t u 3) ge d ow nloa d e n o p ee n t es t sys tee m gein s t alleer d. De bela ngrijks te gevon d e n FOSS p r ojecte n zij n: FOSS project co m p a t - libs t dc + + - 2 9 6 - 2.96 - 1 3 9 GTK + - 1.2 libj peg - s ta tic - 6 b - 3 9
aantal s y m b ole n
b yt e s c od e e n data
930
37990
1886
292344
97
27862
WxWidget s 8707 1235544 Het ge hele Aangifte p r ogra m m a beva t 2 9 1 2 7 sy m b ole n e n is 4 1 8 1 4 9 0 byte s gro o t. 3 De te r m s t ri p pe n ko m t va n d e n a a m van h e t Unix /Lin ux p r ogr a m m a s t ri p d a t sy m b oolinfor m a tie e n d e sy m b oolt a bel verwijder t. Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 3 / 7
Erkenning door de Belastingdienst In d e h el p p agina's bij erke n t d e belas ting die n s t h e t gebr uik va n Ope n Source co d e in h e t aa ngifte p r ogra m m a. De Belas ting die n s t n oe m t in d e h ul p p agina's va n h e t Aangifte p r ogra m m a d e volge n d e p r ojecte n: gSOAP, Ope nSSL, wxWidge ts, GTK +, ZLIB, In de pe n d e n t JPEG Gro u p - co m p o ne n te n, Auto p ack age e n NSIS. De licen tietek s t is be sc hikbaa r voor alle erke n d e p r ojecte n, m e t uit z o n d e ri ng van d e O pe nSSL licen tie; d e h ul p p agina voor Ope nSSL beva t slec h t s ee n exter ne URL va n d e licen tietek s t.
Het wa2007d Programma Een a n alyse van d e ge definieer d e sy m b ole n in h e t wa2 00 7 d p r ogra m m a lever t ee n s te rk ver m oe d e n van d e aa nwe zigheid van GTK + co de in d e execu t a ble. We vin de n in di t p r ogra m m a eve nee n s s te rke aa nwij zinge n voor d e aa n we zighei d va n Ope nSSL co de
Aangifte Particulieren, ib2007ux Ook ee n a n alyse van h e t ib20 07 ux p r ogra m m a uit ee n rece n te ib2 0 0 7_lin ux.tar.g z d ow nloa d van www.belas ting die n s t.nl wekt ee n gerech tvaa r dig d ver m oe de n van d e aa nwe zig hei d van GTK + e n O pe nSSL co d e in d e exec u ta ble.
Analyse De z e a n alyse gaa t in d e t ail in o p d e Linux versie van d e Aangifte p r ogra m m a' s voo r o n d e r n e m e r s. De gesignalleer d e p r o ble m e n k u n n e n o ok aa nwe zig zij n in a n d e re Aangiftep r ogra m m a' s, m a a r d e z e zij n niet in voldoe n d e d e t ail o n d e r z oc h t o m ee n ge m o tiveer d o or deel t e vor m e n.
Discrepanties tussen erkenning en gevonden code De d o o r d e Belasti ng die n s t ge noe m d e t ool Aut o p ackage is niet gevo n de n in d e o n d e r z oc h te Linux tarball . De Belas ting die n s t dis t rib ueer t ook ee n alter n a tieve, m e t Auto p ackage ge m aa k te p ackage e n h e t is waar sc hij nlijk voo r die versie d a t Aut o p ackage ge noe m d wor d t. De a n alyse von d o ok gee n gSOAP, Ope nSSL, ZLIB of NSIS co de. Dit ka n ko m e n d o o r d a t d e co de niet (meer) aa nwe zig is in h e t Aangifte p rogra m m a, of d o o r be pe rki nge n van d e co d e die d e m a tc he s m a a k t, z o als h e t o n t b reke n van O pe n Source p r ojecte n in d e r efere n tie da t a ba se. Het p ackage co m p a t - libs t dc + + - 2 9 6 - 2.96 bevat o bjectco de voor d e (ISO) s t a n d a a r d C + + libraries, z o als die m eegelever d wer de n m e t GNU C + + versie 2.9 6. De z e bibliot heek valt o n d e r d e GNU GPL, m e t ee n uit z o n d e ri ng die Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 4 / 7
geb r uik van d e co de als o n d e r d eel van ee n geco m pileer d p r ogra m m a t oe s t a a t. Dit is a n aloog aa n d e uit z o n d e ring die d e WxWidget s a u te u r s m a k e n. In d e volgen de twee secties wor d e n d e gevo n de n p r o ble m e n m e t h e t Ope n Sou rce geb uik d o o r in d e Aangifte p r ogra m m a' s be sc h reve n. Verde re p r o ble me n zij n t o t d u sver niet d o o r d e a u t e u r gevon d e n.
De OpenSSL licentie Zowel d e O pe nSSL licen tie als d e SSLeay licen tie bevat te n d e volge n d e b e p aling: * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution.
Vers p r ei d er s van O pe nSSL co de m o e t e n zic h aa n bei de lice n ties h o u d e n e n d e volle dige lice ntietek s t m e elevere n in d e d oc u m e n t a tie bij h e t p r ogra m m a. Ope nSSL co de wor d t niet gebr uikt in h e t wa20 0 7 ux p r ogra m m a, m a a r va nwege d e aa nwe zighei d in h e t wa20 0 7 d p r ogra m m a die n t d e Belas ting die n s t zic h aa n d e z e voorwaa r de in d e O pe nSSL licen ties te h o u d e n. Allee n ee n link n a a r d e licen tievoorwaar de n aa n bie de n is o nvol doe n de.
GTK+ en de LGPL De GTK + bibliot heek wor d t vers p rei d o n d e r d e voorwaar de n van d e LGPLv2. De z e licen tie z eg t h e t volge n d e over h e t vers p rei de n va n bibliot heekco de als o n d e r d eel va n ee n p r ogra m m a: 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machinereadable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine readable "work that uses the Library", as object code and/or source code,
Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 5 / 7
so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interfacecompatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
Sa me ngevat in h e t Nederla n d s: De Belasting die n s t die n t co de be sc hikbaar te m a k e n z o d a t d e o n tva nger van d e Aangifte p r ogra m m a' s d e z e ka n linke n m e t gewij zig de versies van d e GTK + bibliot heek. Ver der die n t d e Belasting die n s t d e b r o nco d e va n d e GTK + bibliot heek besc hikba ar t e m a ke n Op d e web site waa rva n d a a n h e t Aangifte p r ogra m m a ge d ow nloa d is, is n oc h d e vereis de b ro nco de, n oc h linkba re o bjectco de niet te vin de n. Er is o ok gee n sc h riftelijk aa n b o d o m d e z e co de te levere n. Zoals eer de r ver m el d is d e GTK + bibliot heek s t a tisc h gelinkt, k or t o m d e Belas ting die n s t voldoe t niet aa n d e eise n va n d e LGPL e n pleegt a u te u r s rec h ti n b re u k. O m z o goe d m ogelijk in overee n s te m mi ng m e t d e LGPL te ko m e n z al d e Belas ting die n s t aa n alle o n tva nger s / d ow nloa de r s va n d e s oftware als n og ee n aa n b o d voor co de waa r m ee d e gebr uiker va n ee n Aangifte p r ogra m m a zij n eigen ver sie ka n s a m e n s tellen m o e te n d o e n 4 . Dit gel d t ook voor alle Aangifte p r ogra m m a' s uit voorgaa n d e jare n die s t a tisc h gelink t zij n m e t d e GTK + bibliot heek. De LGPL s telt d a a r bij ex pliciet d a t voor p r ogra m m a' s die o p ee n m e di u m (flo p py of CD) vers p rei d t zij n d e linkba re co de ook o p ee n m e di u m aa nge bo de n die ne n te wor d e n. Als alter n a tief voor h e t aa n bie de n va n linkbare co de s t a a t d e LGPL h e t geb r uik van ee n sha re d library sys tee m t oe. Im m e r s wa n n eer d e LGPL biblio t h eek als s h a re d library, ee n a p a r t be s t a n d, aa ngebo de n wor d t ka n d e geb r uiker va n h e t sys tee m h e t bibliot heekbes t a n d verva nge n d o o r ee n b e s t a n d n a a r eige n ke u z e. Linux h eeft d e infras t r uc t u u r o m di t m ogelijk te 4 De d e t ails o m t re n d welke co de p recies gelever t die n t t e wor d e n s t a a n in d e LGPL. Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 6 / 7
m a k e n. Dit alter n a tief ka n ec h te r niet m e t te r ugwerke n d e krac h t ingevoer d wor d e n e n is (ook vanwege vereis t te s te n) allee n releva n t voor d e Aangifte p r ogra m m a' s van ko m e n d e jare n.
Conclusies De Belas ti ng die n s t h eeft ee n a a n t al kleinere, m a a r ver mij d ba re fo u te n ge m aa k t bij h e t s a m e n s t ellen e n dis t rib uere n va n d e Aangifte p r ogra m m a s. Ten eer s te mi s t d e volledige te k s t va n d e Ope nSSL licen tie in d e h el p p agina' s e n d e Belas ting die n s t die n t d e z e o mis sie t e h e r s tellen. De wij ze waaro p GTK + gebr uikt wor d t in d e Aangifte p r ogra m m a' s is niet in overee n s t e m mi ng m e t d e LGPL, d e Belasting die n s t die n t h a a r ge m a a k te fo u t te h e r s telle n d o o r h e t levere n van co de waar m ee d e gebr uiker va n ee n Aangifte p r ogra m m a zij n eige n versie ka n s a m e n s telle n . De ze co de z al, m e t te r ugwerke n d e krac h t, a a nge bo d e n m o e te n wor de n aa n alle o n tva nger s e n d o w nlo a d e r s van Aangifte p r ogra m m a' s die GTK + co de bevat te n. Voor d e Aangiftep r ogra m m a' s in ko m e n d e jare n ka n d e Belasti ng die n s t overwege n o m d y n a mis h m e t d e GTK + bibliot heek te linke n, geb r uik m a ke n d van d e s t a n d a a r d faciliteite n voor h e t d ele n van bibliot heekco d e in Linux . Zolang d e Belas ti ng die n s t niet a a n alle van t oe p a s si ng zij n d e licen tievoorwaar de n voldoe t, is er s p r a ke va n a u t e u r s rec h tin b re u k e n ver s p r ei ding van d e Aangifte p r ogra m m a' s be h oo r t ges ta ak t te wor de n t o t d a t aa n alle lice n tievoorwaar de n voldaa n ka n wor de n. Ook z al d e Belas ting die n s t in h e t verle de n ge m a ak te fo u te n m o e t e n rech t z e t te n, di t beteke n t m e t te r ugwerke n d e krac h t ee n zelfbo uw p a kke t voor d e Aangifte p r ogra m m a' s 2 0 0 6, 2 0 0 5 (en m ogelijk eer d e r) aa n bie de n. Het ver die n t aa n beveling d a t d e Belasting die n s t m a a t regele n t reft o m vergelijkb are p r o ble m e n in d e t oeko m s t te voorko m e n. Dit be teke n t d a t er licen tiebew u s t zij n gekweek t wo r d t bij o n twikkelaar s e n d a t er ee n co n t r ole o p h e t n avolge n va n d e licen tievoorwaar de n plaa t svin d t voor d a t m e t d e ver s p r ei ding van s oftware wor d t ges t a r t.
Ope n Source gebr uik in het A a n gifteprogra m m a v a n de Belastingdienst
pa gina 7 / 7