├── .gitignore ├── .gitmodules ├── README.md ├── license.txt ├── notices.txt └── source ├── .gitignore ├── Microsoft.IoT.SDKFromArduino.nuspec ├── Microsoft.IoT.SDKFromArduino.targets └── build-nupkg.cmd /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.sln.docstates 8 | 9 | # Build results 10 | [Dd]ebug/ 11 | [Dd]ebugPublic/ 12 | [Rr]elease/ 13 | x64/ 14 | build/ 15 | bld/ 16 | [Bb]in/ 17 | [Oo]bj/ 18 | 19 | # MSTest test Results 20 | [Tt]est[Rr]esult*/ 21 | [Bb]uild[Ll]og.* 22 | 23 | #NUNIT 24 | *.VisualState.xml 25 | TestResult.xml 26 | 27 | # Build Results of an ATL Project 28 | [Dd]ebugPS/ 29 | [Rr]eleasePS/ 30 | dlldata.c 31 | 32 | *_i.c 33 | *_p.c 34 | *_i.h 35 | *.ilk 36 | *.meta 37 | *.obj 38 | *.pch 39 | *.pdb 40 | *.pgc 41 | *.pgd 42 | *.rsp 43 | *.sbr 44 | *.tlb 45 | *.tli 46 | *.tlh 47 | *.tmp 48 | *.tmp_proj 49 | *.log 50 | *.vspscc 51 | *.vssscc 52 | .builds 53 | *.pidb 54 | *.svclog 55 | *.scc 56 | 57 | # Chutzpah Test files 58 | _Chutzpah* 59 | 60 | # Visual C++ cache files 61 | ipch/ 62 | *.aps 63 | *.ncb 64 | *.opensdf 65 | *.sdf 66 | *.cachefile 67 | 68 | # Visual Studio profiler 69 | *.psess 70 | *.vsp 71 | *.vspx 72 | 73 | # TFS 2012 Local Workspace 74 | $tf/ 75 | 76 | # Guidance Automation Toolkit 77 | *.gpState 78 | 79 | # ReSharper is a .NET coding add-in 80 | _ReSharper*/ 81 | *.[Rr]e[Ss]harper 82 | *.DotSettings.user 83 | 84 | # JustCode is a .NET coding addin-in 85 | .JustCode 86 | 87 | # TeamCity is a build add-in 88 | _TeamCity* 89 | 90 | # DotCover is a Code Coverage Tool 91 | *.dotCover 92 | 93 | # NCrunch 94 | *.ncrunch* 95 | _NCrunch_* 96 | .*crunch*.local.xml 97 | 98 | # MightyMoose 99 | *.mm.* 100 | AutoTest.Net/ 101 | 102 | # Web workbench (sass) 103 | .sass-cache/ 104 | 105 | # Installshield output folder 106 | [Ee]xpress/ 107 | 108 | # DocProject is a documentation generator add-in 109 | DocProject/buildhelp/ 110 | DocProject/Help/*.HxT 111 | DocProject/Help/*.HxC 112 | DocProject/Help/*.hhc 113 | DocProject/Help/*.hhk 114 | DocProject/Help/*.hhp 115 | DocProject/Help/Html2 116 | DocProject/Help/html 117 | 118 | # Click-Once directory 119 | publish/ 120 | 121 | # Publish Web Output 122 | *.[Pp]ublish.xml 123 | *.azurePubxml 124 | 125 | # NuGet Packages Directory 126 | packages/ 127 | ## TODO: If the tool you use requires repositories.config uncomment the next line 128 | #!packages/repositories.config 129 | 130 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets 131 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) 132 | !packages/build/ 133 | 134 | # Windows Azure Build Output 135 | csx/ 136 | *.build.csdef 137 | 138 | # Windows Store app package directory 139 | AppPackages/ 140 | 141 | # Others 142 | sql/ 143 | *.Cache 144 | ClientBin/ 145 | [Ss]tyle[Cc]op.* 146 | ~$* 147 | *~ 148 | *.dbmdl 149 | *.dbproj.schemaview 150 | *.pfx 151 | *.publishsettings 152 | node_modules/ 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | *.mdf 166 | *.ldf 167 | 168 | # Business Intelligence projects 169 | *.rdl.data 170 | *.bim.layout 171 | *.bim_*.settings 172 | 173 | # Microsoft Fakes 174 | FakesAssemblies/ 175 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Arduino"] 2 | path = Arduino 3 | url=https://github.com/ms-iot/Arduino.git -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | arduino-sdk 2 | =========== 3 | 4 | This repository contains the solution for the SDK from Arduino libraries. The purpose of this repository is to generate the Microsoft.IoT.SDKFromArduino nuget package. It is generated by leveraging Git submodules, importing the Arduino Github and packaging Arduino source files for inclusion in customer projects. 5 | 6 | # Contributing 7 | 8 | 1. fork this repository. 9 | 1. Clone it to your local machine 10 | 1. If you cloned your fork via the GitHub application, it will automatically initialize and update the submodule 11 | 1. If you cloned your fork repository from a command line, you'll need to initialize sub-modules and update them 12 | 13 | ```git submodule init``` 14 | 15 | ```git submodule update``` 16 | 17 | 18 | === 19 | 20 | This project has adopted the [Microsoft Open Source Code of Conduct](http://microsoft.github.io/codeofconduct). For more information see the [Code of Conduct FAQ](http://microsoft.github.io/codeofconduct/faq.md) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 21 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | this file includes licensing information for parts of arduino. 2 | 3 | first, the gnu general public license, which covers the main body 4 | of the processing/arduino code (in general, all the stuff inside the 'app' 5 | and 'core' subfolders). 6 | 7 | next, the gnu lesser general public license that covers the arduino core 8 | and libraries. 9 | 10 | 11 | ..................................................................... 12 | 13 | 14 | GNU GENERAL PUBLIC LICENSE 15 | Version 2, June 1991 16 | 17 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 18 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | Everyone is permitted to copy and distribute verbatim copies 20 | of this license document, but changing it is not allowed. 21 | 22 | Preamble 23 | 24 | The licenses for most software are designed to take away your 25 | freedom to share and change it. By contrast, the GNU General Public 26 | License is intended to guarantee your freedom to share and change free 27 | software--to make sure the software is free for all its users. This 28 | General Public License applies to most of the Free Software 29 | Foundation's software and to any other program whose authors commit to 30 | using it. (Some other Free Software Foundation software is covered by 31 | the GNU Library General Public License instead.) You can apply it to 32 | your programs, too. 33 | 34 | When we speak of free software, we are referring to freedom, not 35 | price. Our General Public Licenses are designed to make sure that you 36 | have the freedom to distribute copies of free software (and charge for 37 | this service if you wish), that you receive source code or can get it 38 | if you want it, that you can change the software or use pieces of it 39 | in new free programs; and that you know you can do these things. 40 | 41 | To protect your rights, we need to make restrictions that forbid 42 | anyone to deny you these rights or to ask you to surrender the rights. 43 | These restrictions translate to certain responsibilities for you if you 44 | distribute copies of the software, or if you modify it. 45 | 46 | For example, if you distribute copies of such a program, whether 47 | gratis or for a fee, you must give the recipients all the rights that 48 | you have. You must make sure that they, too, receive or can get the 49 | source code. And you must show them these terms so they know their 50 | rights. 51 | 52 | We protect your rights with two steps: (1) copyright the software, and 53 | (2) offer you this license which gives you legal permission to copy, 54 | distribute and/or modify the software. 55 | 56 | Also, for each author's protection and ours, we want to make certain 57 | that everyone understands that there is no warranty for this free 58 | software. If the software is modified by someone else and passed on, we 59 | want its recipients to know that what they have is not the original, so 60 | that any problems introduced by others will not reflect on the original 61 | authors' reputations. 62 | 63 | Finally, any free program is threatened constantly by software 64 | patents. We wish to avoid the danger that redistributors of a free 65 | program will individually obtain patent licenses, in effect making the 66 | program proprietary. To prevent this, we have made it clear that any 67 | patent must be licensed for everyone's free use or not licensed at all. 68 | 69 | The precise terms and conditions for copying, distribution and 70 | modification follow. 71 | 72 | GNU GENERAL PUBLIC LICENSE 73 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 74 | 75 | 0. This License applies to any program or other work which contains 76 | a notice placed by the copyright holder saying it may be distributed 77 | under the terms of this General Public License. The "Program", below, 78 | refers to any such program or work, and a "work based on the Program" 79 | means either the Program or any derivative work under copyright law: 80 | that is to say, a work containing the Program or a portion of it, 81 | either verbatim or with modifications and/or translated into another 82 | language. (Hereinafter, translation is included without limitation in 83 | the term "modification".) Each licensee is addressed as "you". 84 | 85 | Activities other than copying, distribution and modification are not 86 | covered by this License; they are outside its scope. The act of 87 | running the Program is not restricted, and the output from the Program 88 | is covered only if its contents constitute a work based on the 89 | Program (independent of having been made by running the Program). 90 | Whether that is true depends on what the Program does. 91 | 92 | 1. You may copy and distribute verbatim copies of the Program's 93 | source code as you receive it, in any medium, provided that you 94 | conspicuously and appropriately publish on each copy an appropriate 95 | copyright notice and disclaimer of warranty; keep intact all the 96 | notices that refer to this License and to the absence of any warranty; 97 | and give any other recipients of the Program a copy of this License 98 | along with the Program. 99 | 100 | You may charge a fee for the physical act of transferring a copy, and 101 | you may at your option offer warranty protection in exchange for a fee. 102 | 103 | 2. You may modify your copy or copies of the Program or any portion 104 | of it, thus forming a work based on the Program, and copy and 105 | distribute such modifications or work under the terms of Section 1 106 | above, provided that you also meet all of these conditions: 107 | 108 | a) You must cause the modified files to carry prominent notices 109 | stating that you changed the files and the date of any change. 110 | 111 | b) You must cause any work that you distribute or publish, that in 112 | whole or in part contains or is derived from the Program or any 113 | part thereof, to be licensed as a whole at no charge to all third 114 | parties under the terms of this License. 115 | 116 | c) If the modified program normally reads commands interactively 117 | when run, you must cause it, when started running for such 118 | interactive use in the most ordinary way, to print or display an 119 | announcement including an appropriate copyright notice and a 120 | notice that there is no warranty (or else, saying that you provide 121 | a warranty) and that users may redistribute the program under 122 | these conditions, and telling the user how to view a copy of this 123 | License. (Exception: if the Program itself is interactive but 124 | does not normally print such an announcement, your work based on 125 | the Program is not required to print an announcement.) 126 | 127 | These requirements apply to the modified work as a whole. If 128 | identifiable sections of that work are not derived from the Program, 129 | and can be reasonably considered independent and separate works in 130 | themselves, then this License, and its terms, do not apply to those 131 | sections when you distribute them as separate works. But when you 132 | distribute the same sections as part of a whole which is a work based 133 | on the Program, the distribution of the whole must be on the terms of 134 | this License, whose permissions for other licensees extend to the 135 | entire whole, and thus to each and every part regardless of who wrote it. 136 | 137 | Thus, it is not the intent of this section to claim rights or contest 138 | your rights to work written entirely by you; rather, the intent is to 139 | exercise the right to control the distribution of derivative or 140 | collective works based on the Program. 141 | 142 | In addition, mere aggregation of another work not based on the Program 143 | with the Program (or with a work based on the Program) on a volume of 144 | a storage or distribution medium does not bring the other work under 145 | the scope of this License. 146 | 147 | 3. You may copy and distribute the Program (or a work based on it, 148 | under Section 2) in object code or executable form under the terms of 149 | Sections 1 and 2 above provided that you also do one of the following: 150 | 151 | a) Accompany it with the complete corresponding machine-readable 152 | source code, which must be distributed under the terms of Sections 153 | 1 and 2 above on a medium customarily used for software interchange; or, 154 | 155 | b) Accompany it with a written offer, valid for at least three 156 | years, to give any third party, for a charge no more than your 157 | cost of physically performing source distribution, a complete 158 | machine-readable copy of the corresponding source code, to be 159 | distributed under the terms of Sections 1 and 2 above on a medium 160 | customarily used for software interchange; or, 161 | 162 | c) Accompany it with the information you received as to the offer 163 | to distribute corresponding source code. (This alternative is 164 | allowed only for noncommercial distribution and only if you 165 | received the program in object code or executable form with such 166 | an offer, in accord with Subsection b above.) 167 | 168 | The source code for a work means the preferred form of the work for 169 | making modifications to it. For an executable work, complete source 170 | code means all the source code for all modules it contains, plus any 171 | associated interface definition files, plus the scripts used to 172 | control compilation and installation of the executable. However, as a 173 | special exception, the source code distributed need not include 174 | anything that is normally distributed (in either source or binary 175 | form) with the major components (compiler, kernel, and so on) of the 176 | operating system on which the executable runs, unless that component 177 | itself accompanies the executable. 178 | 179 | If distribution of executable or object code is made by offering 180 | access to copy from a designated place, then offering equivalent 181 | access to copy the source code from the same place counts as 182 | distribution of the source code, even though third parties are not 183 | compelled to copy the source along with the object code. 184 | 185 | 4. You may not copy, modify, sublicense, or distribute the Program 186 | except as expressly provided under this License. Any attempt 187 | otherwise to copy, modify, sublicense or distribute the Program is 188 | void, and will automatically terminate your rights under this License. 189 | However, parties who have received copies, or rights, from you under 190 | this License will not have their licenses terminated so long as such 191 | parties remain in full compliance. 192 | 193 | 5. You are not required to accept this License, since you have not 194 | signed it. However, nothing else grants you permission to modify or 195 | distribute the Program or its derivative works. These actions are 196 | prohibited by law if you do not accept this License. Therefore, by 197 | modifying or distributing the Program (or any work based on the 198 | Program), you indicate your acceptance of this License to do so, and 199 | all its terms and conditions for copying, distributing or modifying 200 | the Program or works based on it. 201 | 202 | 6. Each time you redistribute the Program (or any work based on the 203 | Program), the recipient automatically receives a license from the 204 | original licensor to copy, distribute or modify the Program subject to 205 | these terms and conditions. You may not impose any further 206 | restrictions on the recipients' exercise of the rights granted herein. 207 | You are not responsible for enforcing compliance by third parties to 208 | this License. 209 | 210 | 7. If, as a consequence of a court judgment or allegation of patent 211 | infringement or for any other reason (not limited to patent issues), 212 | conditions are imposed on you (whether by court order, agreement or 213 | otherwise) that contradict the conditions of this License, they do not 214 | excuse you from the conditions of this License. If you cannot 215 | distribute so as to satisfy simultaneously your obligations under this 216 | License and any other pertinent obligations, then as a consequence you 217 | may not distribute the Program at all. For example, if a patent 218 | license would not permit royalty-free redistribution of the Program by 219 | all those who receive copies directly or indirectly through you, then 220 | the only way you could satisfy both it and this License would be to 221 | refrain entirely from distribution of the Program. 222 | 223 | If any portion of this section is held invalid or unenforceable under 224 | any particular circumstance, the balance of the section is intended to 225 | apply and the section as a whole is intended to apply in other 226 | circumstances. 227 | 228 | It is not the purpose of this section to induce you to infringe any 229 | patents or other property right claims or to contest validity of any 230 | such claims; this section has the sole purpose of protecting the 231 | integrity of the free software distribution system, which is 232 | implemented by public license practices. Many people have made 233 | generous contributions to the wide range of software distributed 234 | through that system in reliance on consistent application of that 235 | system; it is up to the author/donor to decide if he or she is willing 236 | to distribute software through any other system and a licensee cannot 237 | impose that choice. 238 | 239 | This section is intended to make thoroughly clear what is believed to 240 | be a consequence of the rest of this License. 241 | 242 | 8. If the distribution and/or use of the Program is restricted in 243 | certain countries either by patents or by copyrighted interfaces, the 244 | original copyright holder who places the Program under this License 245 | may add an explicit geographical distribution limitation excluding 246 | those countries, so that distribution is permitted only in or among 247 | countries not thus excluded. In such case, this License incorporates 248 | the limitation as if written in the body of this License. 249 | 250 | 9. The Free Software Foundation may publish revised and/or new versions 251 | of the General Public License from time to time. Such new versions will 252 | be similar in spirit to the present version, but may differ in detail to 253 | address new problems or concerns. 254 | 255 | Each version is given a distinguishing version number. If the Program 256 | specifies a version number of this License which applies to it and "any 257 | later version", you have the option of following the terms and conditions 258 | either of that version or of any later version published by the Free 259 | Software Foundation. If the Program does not specify a version number of 260 | this License, you may choose any version ever published by the Free Software 261 | Foundation. 262 | 263 | 10. If you wish to incorporate parts of the Program into other free 264 | programs whose distribution conditions are different, write to the author 265 | to ask for permission. For software which is copyrighted by the Free 266 | Software Foundation, write to the Free Software Foundation; we sometimes 267 | make exceptions for this. Our decision will be guided by the two goals 268 | of preserving the free status of all derivatives of our free software and 269 | of promoting the sharing and reuse of software generally. 270 | 271 | NO WARRANTY 272 | 273 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 274 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 275 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 276 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 277 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 278 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 279 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 280 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 281 | REPAIR OR CORRECTION. 282 | 283 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 284 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 285 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 286 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 287 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 288 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 289 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 290 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 291 | POSSIBILITY OF SUCH DAMAGES. 292 | 293 | 294 | 295 | ..................................................................... 296 | 297 | GNU LESSER GENERAL PUBLIC LICENSE 298 | Version 2.1, February 1999 299 | 300 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 301 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 302 | Everyone is permitted to copy and distribute verbatim copies 303 | of this license document, but changing it is not allowed. 304 | 305 | [This is the first released version of the Lesser GPL. It also counts 306 | as the successor of the GNU Library Public License, version 2, hence 307 | the version number 2.1.] 308 | 309 | Preamble 310 | 311 | The licenses for most software are designed to take away your 312 | freedom to share and change it. By contrast, the GNU General Public 313 | Licenses are intended to guarantee your freedom to share and change 314 | free software--to make sure the software is free for all its users. 315 | 316 | This license, the Lesser General Public License, applies to some 317 | specially designated software packages--typically libraries--of the 318 | Free Software Foundation and other authors who decide to use it. You 319 | can use it too, but we suggest you first think carefully about whether 320 | this license or the ordinary General Public License is the better 321 | strategy to use in any particular case, based on the explanations below. 322 | 323 | When we speak of free software, we are referring to freedom of use, 324 | not price. Our General Public Licenses are designed to make sure that 325 | you have the freedom to distribute copies of free software (and charge 326 | for this service if you wish); that you receive source code or can get 327 | it if you want it; that you can change the software and use pieces of 328 | it in new free programs; and that you are informed that you can do 329 | these things. 330 | 331 | To protect your rights, we need to make restrictions that forbid 332 | distributors to deny you these rights or to ask you to surrender these 333 | rights. These restrictions translate to certain responsibilities for 334 | you if you distribute copies of the library or if you modify it. 335 | 336 | For example, if you distribute copies of the library, whether gratis 337 | or for a fee, you must give the recipients all the rights that we gave 338 | you. You must make sure that they, too, receive or can get the source 339 | code. If you link other code with the library, you must provide 340 | complete object files to the recipients, so that they can relink them 341 | with the library after making changes to the library and recompiling 342 | it. And you must show them these terms so they know their rights. 343 | 344 | We protect your rights with a two-step method: (1) we copyright the 345 | library, and (2) we offer you this license, which gives you legal 346 | permission to copy, distribute and/or modify the library. 347 | 348 | To protect each distributor, we want to make it very clear that 349 | there is no warranty for the free library. Also, if the library is 350 | modified by someone else and passed on, the recipients should know 351 | that what they have is not the original version, so that the original 352 | author's reputation will not be affected by problems that might be 353 | introduced by others. 354 | 355 | Finally, software patents pose a constant threat to the existence of 356 | any free program. We wish to make sure that a company cannot 357 | effectively restrict the users of a free program by obtaining a 358 | restrictive license from a patent holder. Therefore, we insist that 359 | any patent license obtained for a version of the library must be 360 | consistent with the full freedom of use specified in this license. 361 | 362 | Most GNU software, including some libraries, is covered by the 363 | ordinary GNU General Public License. This license, the GNU Lesser 364 | General Public License, applies to certain designated libraries, and 365 | is quite different from the ordinary General Public License. We use 366 | this license for certain libraries in order to permit linking those 367 | libraries into non-free programs. 368 | 369 | When a program is linked with a library, whether statically or using 370 | a shared library, the combination of the two is legally speaking a 371 | combined work, a derivative of the original library. The ordinary 372 | General Public License therefore permits such linking only if the 373 | entire combination fits its criteria of freedom. The Lesser General 374 | Public License permits more lax criteria for linking other code with 375 | the library. 376 | 377 | We call this license the "Lesser" General Public License because it 378 | does Less to protect the user's freedom than the ordinary General 379 | Public License. It also provides other free software developers Less 380 | of an advantage over competing non-free programs. These disadvantages 381 | are the reason we use the ordinary General Public License for many 382 | libraries. However, the Lesser license provides advantages in certain 383 | special circumstances. 384 | 385 | For example, on rare occasions, there may be a special need to 386 | encourage the widest possible use of a certain library, so that it becomes 387 | a de-facto standard. To achieve this, non-free programs must be 388 | allowed to use the library. A more frequent case is that a free 389 | library does the same job as widely used non-free libraries. In this 390 | case, there is little to gain by limiting the free library to free 391 | software only, so we use the Lesser General Public License. 392 | 393 | In other cases, permission to use a particular library in non-free 394 | programs enables a greater number of people to use a large body of 395 | free software. For example, permission to use the GNU C Library in 396 | non-free programs enables many more people to use the whole GNU 397 | operating system, as well as its variant, the GNU/Linux operating 398 | system. 399 | 400 | Although the Lesser General Public License is Less protective of the 401 | users' freedom, it does ensure that the user of a program that is 402 | linked with the Library has the freedom and the wherewithal to run 403 | that program using a modified version of the Library. 404 | 405 | The precise terms and conditions for copying, distribution and 406 | modification follow. Pay close attention to the difference between a 407 | "work based on the library" and a "work that uses the library". The 408 | former contains code derived from the library, whereas the latter must 409 | be combined with the library in order to run. 410 | 411 | GNU LESSER GENERAL PUBLIC LICENSE 412 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 413 | 414 | 0. This License Agreement applies to any software library or other 415 | program which contains a notice placed by the copyright holder or 416 | other authorized party saying it may be distributed under the terms of 417 | this Lesser General Public License (also called "this License"). 418 | Each licensee is addressed as "you". 419 | 420 | A "library" means a collection of software functions and/or data 421 | prepared so as to be conveniently linked with application programs 422 | (which use some of those functions and data) to form executables. 423 | 424 | The "Library", below, refers to any such software library or work 425 | which has been distributed under these terms. A "work based on the 426 | Library" means either the Library or any derivative work under 427 | copyright law: that is to say, a work containing the Library or a 428 | portion of it, either verbatim or with modifications and/or translated 429 | straightforwardly into another language. (Hereinafter, translation is 430 | included without limitation in the term "modification".) 431 | 432 | "Source code" for a work means the preferred form of the work for 433 | making modifications to it. For a library, complete source code means 434 | all the source code for all modules it contains, plus any associated 435 | interface definition files, plus the scripts used to control compilation 436 | and installation of the library. 437 | 438 | Activities other than copying, distribution and modification are not 439 | covered by this License; they are outside its scope. The act of 440 | running a program using the Library is not restricted, and output from 441 | such a program is covered only if its contents constitute a work based 442 | on the Library (independent of the use of the Library in a tool for 443 | writing it). Whether that is true depends on what the Library does 444 | and what the program that uses the Library does. 445 | 446 | 1. You may copy and distribute verbatim copies of the Library's 447 | complete source code as you receive it, in any medium, provided that 448 | you conspicuously and appropriately publish on each copy an 449 | appropriate copyright notice and disclaimer of warranty; keep intact 450 | all the notices that refer to this License and to the absence of any 451 | warranty; and distribute a copy of this License along with the 452 | Library. 453 | 454 | You may charge a fee for the physical act of transferring a copy, 455 | and you may at your option offer warranty protection in exchange for a 456 | fee. 457 | 458 | 2. You may modify your copy or copies of the Library or any portion 459 | of it, thus forming a work based on the Library, and copy and 460 | distribute such modifications or work under the terms of Section 1 461 | above, provided that you also meet all of these conditions: 462 | 463 | a) The modified work must itself be a software library. 464 | 465 | b) You must cause the files modified to carry prominent notices 466 | stating that you changed the files and the date of any change. 467 | 468 | c) You must cause the whole of the work to be licensed at no 469 | charge to all third parties under the terms of this License. 470 | 471 | d) If a facility in the modified Library refers to a function or a 472 | table of data to be supplied by an application program that uses 473 | the facility, other than as an argument passed when the facility 474 | is invoked, then you must make a good faith effort to ensure that, 475 | in the event an application does not supply such function or 476 | table, the facility still operates, and performs whatever part of 477 | its purpose remains meaningful. 478 | 479 | (For example, a function in a library to compute square roots has 480 | a purpose that is entirely well-defined independent of the 481 | application. Therefore, Subsection 2d requires that any 482 | application-supplied function or table used by this function must 483 | be optional: if the application does not supply it, the square 484 | root function must still compute square roots.) 485 | 486 | These requirements apply to the modified work as a whole. If 487 | identifiable sections of that work are not derived from the Library, 488 | and can be reasonably considered independent and separate works in 489 | themselves, then this License, and its terms, do not apply to those 490 | sections when you distribute them as separate works. But when you 491 | distribute the same sections as part of a whole which is a work based 492 | on the Library, the distribution of the whole must be on the terms of 493 | this License, whose permissions for other licensees extend to the 494 | entire whole, and thus to each and every part regardless of who wrote 495 | it. 496 | 497 | Thus, it is not the intent of this section to claim rights or contest 498 | your rights to work written entirely by you; rather, the intent is to 499 | exercise the right to control the distribution of derivative or 500 | collective works based on the Library. 501 | 502 | In addition, mere aggregation of another work not based on the Library 503 | with the Library (or with a work based on the Library) on a volume of 504 | a storage or distribution medium does not bring the other work under 505 | the scope of this License. 506 | 507 | 3. You may opt to apply the terms of the ordinary GNU General Public 508 | License instead of this License to a given copy of the Library. To do 509 | this, you must alter all the notices that refer to this License, so 510 | that they refer to the ordinary GNU General Public License, version 2, 511 | instead of to this License. (If a newer version than version 2 of the 512 | ordinary GNU General Public License has appeared, then you can specify 513 | that version instead if you wish.) Do not make any other change in 514 | these notices. 515 | 516 | Once this change is made in a given copy, it is irreversible for 517 | that copy, so the ordinary GNU General Public License applies to all 518 | subsequent copies and derivative works made from that copy. 519 | 520 | This option is useful when you wish to copy part of the code of 521 | the Library into a program that is not a library. 522 | 523 | 4. You may copy and distribute the Library (or a portion or 524 | derivative of it, under Section 2) in object code or executable form 525 | under the terms of Sections 1 and 2 above provided that you accompany 526 | it with the complete corresponding machine-readable source code, which 527 | must be distributed under the terms of Sections 1 and 2 above on a 528 | medium customarily used for software interchange. 529 | 530 | If distribution of object code is made by offering access to copy 531 | from a designated place, then offering equivalent access to copy the 532 | source code from the same place satisfies the requirement to 533 | distribute the source code, even though third parties are not 534 | compelled to copy the source along with the object code. 535 | 536 | 5. A program that contains no derivative of any portion of the 537 | Library, but is designed to work with the Library by being compiled or 538 | linked with it, is called a "work that uses the Library". Such a 539 | work, in isolation, is not a derivative work of the Library, and 540 | therefore falls outside the scope of this License. 541 | 542 | However, linking a "work that uses the Library" with the Library 543 | creates an executable that is a derivative of the Library (because it 544 | contains portions of the Library), rather than a "work that uses the 545 | library". The executable is therefore covered by this License. 546 | Section 6 states terms for distribution of such executables. 547 | 548 | When a "work that uses the Library" uses material from a header file 549 | that is part of the Library, the object code for the work may be a 550 | derivative work of the Library even though the source code is not. 551 | Whether this is true is especially significant if the work can be 552 | linked without the Library, or if the work is itself a library. The 553 | threshold for this to be true is not precisely defined by law. 554 | 555 | If such an object file uses only numerical parameters, data 556 | structure layouts and accessors, and small macros and small inline 557 | functions (ten lines or less in length), then the use of the object 558 | file is unrestricted, regardless of whether it is legally a derivative 559 | work. (Executables containing this object code plus portions of the 560 | Library will still fall under Section 6.) 561 | 562 | Otherwise, if the work is a derivative of the Library, you may 563 | distribute the object code for the work under the terms of Section 6. 564 | Any executables containing that work also fall under Section 6, 565 | whether or not they are linked directly with the Library itself. 566 | 567 | 6. As an exception to the Sections above, you may also combine or 568 | link a "work that uses the Library" with the Library to produce a 569 | work containing portions of the Library, and distribute that work 570 | under terms of your choice, provided that the terms permit 571 | modification of the work for the customer's own use and reverse 572 | engineering for debugging such modifications. 573 | 574 | You must give prominent notice with each copy of the work that the 575 | Library is used in it and that the Library and its use are covered by 576 | this License. You must supply a copy of this License. If the work 577 | during execution displays copyright notices, you must include the 578 | copyright notice for the Library among them, as well as a reference 579 | directing the user to the copy of this License. Also, you must do one 580 | of these things: 581 | 582 | a) Accompany the work with the complete corresponding 583 | machine-readable source code for the Library including whatever 584 | changes were used in the work (which must be distributed under 585 | Sections 1 and 2 above); and, if the work is an executable linked 586 | with the Library, with the complete machine-readable "work that 587 | uses the Library", as object code and/or source code, so that the 588 | user can modify the Library and then relink to produce a modified 589 | executable containing the modified Library. (It is understood 590 | that the user who changes the contents of definitions files in the 591 | Library will not necessarily be able to recompile the application 592 | to use the modified definitions.) 593 | 594 | b) Use a suitable shared library mechanism for linking with the 595 | Library. A suitable mechanism is one that (1) uses at run time a 596 | copy of the library already present on the user's computer system, 597 | rather than copying library functions into the executable, and (2) 598 | will operate properly with a modified version of the library, if 599 | the user installs one, as long as the modified version is 600 | interface-compatible with the version that the work was made with. 601 | 602 | c) Accompany the work with a written offer, valid for at 603 | least three years, to give the same user the materials 604 | specified in Subsection 6a, above, for a charge no more 605 | than the cost of performing this distribution. 606 | 607 | d) If distribution of the work is made by offering access to copy 608 | from a designated place, offer equivalent access to copy the above 609 | specified materials from the same place. 610 | 611 | e) Verify that the user has already received a copy of these 612 | materials or that you have already sent this user a copy. 613 | 614 | For an executable, the required form of the "work that uses the 615 | Library" must include any data and utility programs needed for 616 | reproducing the executable from it. However, as a special exception, 617 | the materials to be distributed need not include anything that is 618 | normally distributed (in either source or binary form) with the major 619 | components (compiler, kernel, and so on) of the operating system on 620 | which the executable runs, unless that component itself accompanies 621 | the executable. 622 | 623 | It may happen that this requirement contradicts the license 624 | restrictions of other proprietary libraries that do not normally 625 | accompany the operating system. Such a contradiction means you cannot 626 | use both them and the Library together in an executable that you 627 | distribute. 628 | 629 | 7. You may place library facilities that are a work based on the 630 | Library side-by-side in a single library together with other library 631 | facilities not covered by this License, and distribute such a combined 632 | library, provided that the separate distribution of the work based on 633 | the Library and of the other library facilities is otherwise 634 | permitted, and provided that you do these two things: 635 | 636 | a) Accompany the combined library with a copy of the same work 637 | based on the Library, uncombined with any other library 638 | facilities. This must be distributed under the terms of the 639 | Sections above. 640 | 641 | b) Give prominent notice with the combined library of the fact 642 | that part of it is a work based on the Library, and explaining 643 | where to find the accompanying uncombined form of the same work. 644 | 645 | 8. You may not copy, modify, sublicense, link with, or distribute 646 | the Library except as expressly provided under this License. Any 647 | attempt otherwise to copy, modify, sublicense, link with, or 648 | distribute the Library is void, and will automatically terminate your 649 | rights under this License. However, parties who have received copies, 650 | or rights, from you under this License will not have their licenses 651 | terminated so long as such parties remain in full compliance. 652 | 653 | 9. You are not required to accept this License, since you have not 654 | signed it. However, nothing else grants you permission to modify or 655 | distribute the Library or its derivative works. These actions are 656 | prohibited by law if you do not accept this License. Therefore, by 657 | modifying or distributing the Library (or any work based on the 658 | Library), you indicate your acceptance of this License to do so, and 659 | all its terms and conditions for copying, distributing or modifying 660 | the Library or works based on it. 661 | 662 | 10. Each time you redistribute the Library (or any work based on the 663 | Library), the recipient automatically receives a license from the 664 | original licensor to copy, distribute, link with or modify the Library 665 | subject to these terms and conditions. You may not impose any further 666 | restrictions on the recipients' exercise of the rights granted herein. 667 | You are not responsible for enforcing compliance by third parties with 668 | this License. 669 | 670 | 11. If, as a consequence of a court judgment or allegation of patent 671 | infringement or for any other reason (not limited to patent issues), 672 | conditions are imposed on you (whether by court order, agreement or 673 | otherwise) that contradict the conditions of this License, they do not 674 | excuse you from the conditions of this License. If you cannot 675 | distribute so as to satisfy simultaneously your obligations under this 676 | License and any other pertinent obligations, then as a consequence you 677 | may not distribute the Library at all. For example, if a patent 678 | license would not permit royalty-free redistribution of the Library by 679 | all those who receive copies directly or indirectly through you, then 680 | the only way you could satisfy both it and this License would be to 681 | refrain entirely from distribution of the Library. 682 | 683 | If any portion of this section is held invalid or unenforceable under any 684 | particular circumstance, the balance of the section is intended to apply, 685 | and the section as a whole is intended to apply in other circumstances. 686 | 687 | It is not the purpose of this section to induce you to infringe any 688 | patents or other property right claims or to contest validity of any 689 | such claims; this section has the sole purpose of protecting the 690 | integrity of the free software distribution system which is 691 | implemented by public license practices. Many people have made 692 | generous contributions to the wide range of software distributed 693 | through that system in reliance on consistent application of that 694 | system; it is up to the author/donor to decide if he or she is willing 695 | to distribute software through any other system and a licensee cannot 696 | impose that choice. 697 | 698 | This section is intended to make thoroughly clear what is believed to 699 | be a consequence of the rest of this License. 700 | 701 | 12. If the distribution and/or use of the Library is restricted in 702 | certain countries either by patents or by copyrighted interfaces, the 703 | original copyright holder who places the Library under this License may add 704 | an explicit geographical distribution limitation excluding those countries, 705 | so that distribution is permitted only in or among countries not thus 706 | excluded. In such case, this License incorporates the limitation as if 707 | written in the body of this License. 708 | 709 | 13. The Free Software Foundation may publish revised and/or new 710 | versions of the Lesser General Public License from time to time. 711 | Such new versions will be similar in spirit to the present version, 712 | but may differ in detail to address new problems or concerns. 713 | 714 | Each version is given a distinguishing version number. If the Library 715 | specifies a version number of this License which applies to it and 716 | "any later version", you have the option of following the terms and 717 | conditions either of that version or of any later version published by 718 | the Free Software Foundation. If the Library does not specify a 719 | license version number, you may choose any version ever published by 720 | the Free Software Foundation. 721 | 722 | 14. If you wish to incorporate parts of the Library into other free 723 | programs whose distribution conditions are incompatible with these, 724 | write to the author to ask for permission. For software which is 725 | copyrighted by the Free Software Foundation, write to the Free 726 | Software Foundation; we sometimes make exceptions for this. Our 727 | decision will be guided by the two goals of preserving the free status 728 | of all derivatives of our free software and of promoting the sharing 729 | and reuse of software generally. 730 | 731 | NO WARRANTY 732 | 733 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 734 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 735 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 736 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 737 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 738 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 739 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 740 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 741 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 742 | 743 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 744 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 745 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 746 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 747 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 748 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 749 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 750 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 751 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 752 | DAMAGES. 753 | -------------------------------------------------------------------------------- /notices.txt: -------------------------------------------------------------------------------- 1 | Third Party Notices for Microsoft.IOT.SDK.FromArduino 2 | This package incorporates material from the project(s) listed below (collectively, “Third Party Code”). Microsoft Open Technologies, Inc. (“Microsoft Open Tech”) is not the original author of the Third Party Code. The original copyright and license information, under which Microsoft Open Tech received such Third Party Code, are set out below together with the full text of such license. These notices and licenses are provided for informational purposes only. This Third Party Code is licensed to you under the terms set forth in the licenses set forth below. Microsoft Open Tech reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise. 3 | The files listed in this notice were obtained from the Arduino project at https://github.com/arduino/Arduino. Copyright holders include Arduino and its various contributors. The Arduino project licenses certain of its libraries under the GNU General Public License version 2, and other libraries under the GNU Lesser General Public License version 2.1. You may find additional information about how the Arduino project licenses code at https://github.com/arduino/Arduino/blob/master/license.txt. 4 | 1. The files below were obtained from the Arduino project at https://github.com/arduino/Arduino/tree/master/hardware/arduino/cores/arduino 5 | Print.h 6 | Printable.h 7 | Stream.h 8 | WString.h 9 | WString.cpp 10 | Server.h 11 | Udp.h 12 | Stream.cpp 13 | Client.h 14 | IPAddress.h 15 | IPAddress.cpp 16 | 2. stepper.h and stepper.cpp were obtained from the Arduino project at https://github.com/arduino/Arduino/tree/master/libraries/Stepper 17 | 3. LiquidCrystal.h and LiquidCrystal.cpp were obtained from the Arduino project at https://github.com/arduino/Arduino/tree/master/libraries/LiquidCrystal 18 | 4. pins_arduino.h was obtained from the Arduino project at https://github.com/arduino/Arduino/tree/master/hardware/arduino/variants/standard 19 | 20 | ..................................................................... 21 | 22 | 23 | GNU GENERAL PUBLIC LICENSE 24 | Version 2, June 1991 25 | 26 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 27 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 28 | Everyone is permitted to copy and distribute verbatim copies 29 | of this license document, but changing it is not allowed. 30 | 31 | Preamble 32 | 33 | The licenses for most software are designed to take away your 34 | freedom to share and change it. By contrast, the GNU General Public 35 | License is intended to guarantee your freedom to share and change free 36 | software--to make sure the software is free for all its users. This 37 | General Public License applies to most of the Free Software 38 | Foundation's software and to any other program whose authors commit to 39 | using it. (Some other Free Software Foundation software is covered by 40 | the GNU Library General Public License instead.) You can apply it to 41 | your programs, too. 42 | 43 | When we speak of free software, we are referring to freedom, not 44 | price. Our General Public Licenses are designed to make sure that you 45 | have the freedom to distribute copies of free software (and charge for 46 | this service if you wish), that you receive source code or can get it 47 | if you want it, that you can change the software or use pieces of it 48 | in new free programs; and that you know you can do these things. 49 | 50 | To protect your rights, we need to make restrictions that forbid 51 | anyone to deny you these rights or to ask you to surrender the rights. 52 | These restrictions translate to certain responsibilities for you if you 53 | distribute copies of the software, or if you modify it. 54 | 55 | For example, if you distribute copies of such a program, whether 56 | gratis or for a fee, you must give the recipients all the rights that 57 | you have. You must make sure that they, too, receive or can get the 58 | source code. And you must show them these terms so they know their 59 | rights. 60 | 61 | We protect your rights with two steps: (1) copyright the software, and 62 | (2) offer you this license which gives you legal permission to copy, 63 | distribute and/or modify the software. 64 | 65 | Also, for each author's protection and ours, we want to make certain 66 | that everyone understands that there is no warranty for this free 67 | software. If the software is modified by someone else and passed on, we 68 | want its recipients to know that what they have is not the original, so 69 | that any problems introduced by others will not reflect on the original 70 | authors' reputations. 71 | 72 | Finally, any free program is threatened constantly by software 73 | patents. We wish to avoid the danger that redistributors of a free 74 | program will individually obtain patent licenses, in effect making the 75 | program proprietary. To prevent this, we have made it clear that any 76 | patent must be licensed for everyone's free use or not licensed at all. 77 | 78 | The precise terms and conditions for copying, distribution and 79 | modification follow. 80 | 81 | GNU GENERAL PUBLIC LICENSE 82 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 83 | 84 | 0. This License applies to any program or other work which contains 85 | a notice placed by the copyright holder saying it may be distributed 86 | under the terms of this General Public License. The "Program", below, 87 | refers to any such program or work, and a "work based on the Program" 88 | means either the Program or any derivative work under copyright law: 89 | that is to say, a work containing the Program or a portion of it, 90 | either verbatim or with modifications and/or translated into another 91 | language. (Hereinafter, translation is included without limitation in 92 | the term "modification".) Each licensee is addressed as "you". 93 | 94 | Activities other than copying, distribution and modification are not 95 | covered by this License; they are outside its scope. The act of 96 | running the Program is not restricted, and the output from the Program 97 | is covered only if its contents constitute a work based on the 98 | Program (independent of having been made by running the Program). 99 | Whether that is true depends on what the Program does. 100 | 101 | 1. You may copy and distribute verbatim copies of the Program's 102 | source code as you receive it, in any medium, provided that you 103 | conspicuously and appropriately publish on each copy an appropriate 104 | copyright notice and disclaimer of warranty; keep intact all the 105 | notices that refer to this License and to the absence of any warranty; 106 | and give any other recipients of the Program a copy of this License 107 | along with the Program. 108 | 109 | You may charge a fee for the physical act of transferring a copy, and 110 | you may at your option offer warranty protection in exchange for a fee. 111 | 112 | 2. You may modify your copy or copies of the Program or any portion 113 | of it, thus forming a work based on the Program, and copy and 114 | distribute such modifications or work under the terms of Section 1 115 | above, provided that you also meet all of these conditions: 116 | 117 | a) You must cause the modified files to carry prominent notices 118 | stating that you changed the files and the date of any change. 119 | 120 | b) You must cause any work that you distribute or publish, that in 121 | whole or in part contains or is derived from the Program or any 122 | part thereof, to be licensed as a whole at no charge to all third 123 | parties under the terms of this License. 124 | 125 | c) If the modified program normally reads commands interactively 126 | when run, you must cause it, when started running for such 127 | interactive use in the most ordinary way, to print or display an 128 | announcement including an appropriate copyright notice and a 129 | notice that there is no warranty (or else, saying that you provide 130 | a warranty) and that users may redistribute the program under 131 | these conditions, and telling the user how to view a copy of this 132 | License. (Exception: if the Program itself is interactive but 133 | does not normally print such an announcement, your work based on 134 | the Program is not required to print an announcement.) 135 | 136 | These requirements apply to the modified work as a whole. If 137 | identifiable sections of that work are not derived from the Program, 138 | and can be reasonably considered independent and separate works in 139 | themselves, then this License, and its terms, do not apply to those 140 | sections when you distribute them as separate works. But when you 141 | distribute the same sections as part of a whole which is a work based 142 | on the Program, the distribution of the whole must be on the terms of 143 | this License, whose permissions for other licensees extend to the 144 | entire whole, and thus to each and every part regardless of who wrote it. 145 | 146 | Thus, it is not the intent of this section to claim rights or contest 147 | your rights to work written entirely by you; rather, the intent is to 148 | exercise the right to control the distribution of derivative or 149 | collective works based on the Program. 150 | 151 | In addition, mere aggregation of another work not based on the Program 152 | with the Program (or with a work based on the Program) on a volume of 153 | a storage or distribution medium does not bring the other work under 154 | the scope of this License. 155 | 156 | 3. You may copy and distribute the Program (or a work based on it, 157 | under Section 2) in object code or executable form under the terms of 158 | Sections 1 and 2 above provided that you also do one of the following: 159 | 160 | a) Accompany it with the complete corresponding machine-readable 161 | source code, which must be distributed under the terms of Sections 162 | 1 and 2 above on a medium customarily used for software interchange; or, 163 | 164 | b) Accompany it with a written offer, valid for at least three 165 | years, to give any third party, for a charge no more than your 166 | cost of physically performing source distribution, a complete 167 | machine-readable copy of the corresponding source code, to be 168 | distributed under the terms of Sections 1 and 2 above on a medium 169 | customarily used for software interchange; or, 170 | 171 | c) Accompany it with the information you received as to the offer 172 | to distribute corresponding source code. (This alternative is 173 | allowed only for noncommercial distribution and only if you 174 | received the program in object code or executable form with such 175 | an offer, in accord with Subsection b above.) 176 | 177 | The source code for a work means the preferred form of the work for 178 | making modifications to it. For an executable work, complete source 179 | code means all the source code for all modules it contains, plus any 180 | associated interface definition files, plus the scripts used to 181 | control compilation and installation of the executable. However, as a 182 | special exception, the source code distributed need not include 183 | anything that is normally distributed (in either source or binary 184 | form) with the major components (compiler, kernel, and so on) of the 185 | operating system on which the executable runs, unless that component 186 | itself accompanies the executable. 187 | 188 | If distribution of executable or object code is made by offering 189 | access to copy from a designated place, then offering equivalent 190 | access to copy the source code from the same place counts as 191 | distribution of the source code, even though third parties are not 192 | compelled to copy the source along with the object code. 193 | 194 | 4. You may not copy, modify, sublicense, or distribute the Program 195 | except as expressly provided under this License. Any attempt 196 | otherwise to copy, modify, sublicense or distribute the Program is 197 | void, and will automatically terminate your rights under this License. 198 | However, parties who have received copies, or rights, from you under 199 | this License will not have their licenses terminated so long as such 200 | parties remain in full compliance. 201 | 202 | 5. You are not required to accept this License, since you have not 203 | signed it. However, nothing else grants you permission to modify or 204 | distribute the Program or its derivative works. These actions are 205 | prohibited by law if you do not accept this License. Therefore, by 206 | modifying or distributing the Program (or any work based on the 207 | Program), you indicate your acceptance of this License to do so, and 208 | all its terms and conditions for copying, distributing or modifying 209 | the Program or works based on it. 210 | 211 | 6. Each time you redistribute the Program (or any work based on the 212 | Program), the recipient automatically receives a license from the 213 | original licensor to copy, distribute or modify the Program subject to 214 | these terms and conditions. You may not impose any further 215 | restrictions on the recipients' exercise of the rights granted herein. 216 | You are not responsible for enforcing compliance by third parties to 217 | this License. 218 | 219 | 7. If, as a consequence of a court judgment or allegation of patent 220 | infringement or for any other reason (not limited to patent issues), 221 | conditions are imposed on you (whether by court order, agreement or 222 | otherwise) that contradict the conditions of this License, they do not 223 | excuse you from the conditions of this License. If you cannot 224 | distribute so as to satisfy simultaneously your obligations under this 225 | License and any other pertinent obligations, then as a consequence you 226 | may not distribute the Program at all. For example, if a patent 227 | license would not permit royalty-free redistribution of the Program by 228 | all those who receive copies directly or indirectly through you, then 229 | the only way you could satisfy both it and this License would be to 230 | refrain entirely from distribution of the Program. 231 | 232 | If any portion of this section is held invalid or unenforceable under 233 | any particular circumstance, the balance of the section is intended to 234 | apply and the section as a whole is intended to apply in other 235 | circumstances. 236 | 237 | It is not the purpose of this section to induce you to infringe any 238 | patents or other property right claims or to contest validity of any 239 | such claims; this section has the sole purpose of protecting the 240 | integrity of the free software distribution system, which is 241 | implemented by public license practices. Many people have made 242 | generous contributions to the wide range of software distributed 243 | through that system in reliance on consistent application of that 244 | system; it is up to the author/donor to decide if he or she is willing 245 | to distribute software through any other system and a licensee cannot 246 | impose that choice. 247 | 248 | This section is intended to make thoroughly clear what is believed to 249 | be a consequence of the rest of this License. 250 | 251 | 8. If the distribution and/or use of the Program is restricted in 252 | certain countries either by patents or by copyrighted interfaces, the 253 | original copyright holder who places the Program under this License 254 | may add an explicit geographical distribution limitation excluding 255 | those countries, so that distribution is permitted only in or among 256 | countries not thus excluded. In such case, this License incorporates 257 | the limitation as if written in the body of this License. 258 | 259 | 9. The Free Software Foundation may publish revised and/or new versions 260 | of the General Public License from time to time. Such new versions will 261 | be similar in spirit to the present version, but may differ in detail to 262 | address new problems or concerns. 263 | 264 | Each version is given a distinguishing version number. If the Program 265 | specifies a version number of this License which applies to it and "any 266 | later version", you have the option of following the terms and conditions 267 | either of that version or of any later version published by the Free 268 | Software Foundation. If the Program does not specify a version number of 269 | this License, you may choose any version ever published by the Free Software 270 | Foundation. 271 | 272 | 10. If you wish to incorporate parts of the Program into other free 273 | programs whose distribution conditions are different, write to the author 274 | to ask for permission. For software which is copyrighted by the Free 275 | Software Foundation, write to the Free Software Foundation; we sometimes 276 | make exceptions for this. Our decision will be guided by the two goals 277 | of preserving the free status of all derivatives of our free software and 278 | of promoting the sharing and reuse of software generally. 279 | 280 | NO WARRANTY 281 | 282 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 283 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 284 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 285 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 286 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 287 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 288 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 289 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 290 | REPAIR OR CORRECTION. 291 | 292 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 293 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 294 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 295 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 296 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 297 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 298 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 299 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 300 | POSSIBILITY OF SUCH DAMAGES. 301 | 302 | 303 | 304 | ..................................................................... 305 | 306 | GNU LESSER GENERAL PUBLIC LICENSE 307 | Version 2.1, February 1999 308 | 309 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 310 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 311 | Everyone is permitted to copy and distribute verbatim copies 312 | of this license document, but changing it is not allowed. 313 | 314 | [This is the first released version of the Lesser GPL. It also counts 315 | as the successor of the GNU Library Public License, version 2, hence 316 | the version number 2.1.] 317 | 318 | Preamble 319 | 320 | The licenses for most software are designed to take away your 321 | freedom to share and change it. By contrast, the GNU General Public 322 | Licenses are intended to guarantee your freedom to share and change 323 | free software--to make sure the software is free for all its users. 324 | 325 | This license, the Lesser General Public License, applies to some 326 | specially designated software packages--typically libraries--of the 327 | Free Software Foundation and other authors who decide to use it. You 328 | can use it too, but we suggest you first think carefully about whether 329 | this license or the ordinary General Public License is the better 330 | strategy to use in any particular case, based on the explanations below. 331 | 332 | When we speak of free software, we are referring to freedom of use, 333 | not price. Our General Public Licenses are designed to make sure that 334 | you have the freedom to distribute copies of free software (and charge 335 | for this service if you wish); that you receive source code or can get 336 | it if you want it; that you can change the software and use pieces of 337 | it in new free programs; and that you are informed that you can do 338 | these things. 339 | 340 | To protect your rights, we need to make restrictions that forbid 341 | distributors to deny you these rights or to ask you to surrender these 342 | rights. These restrictions translate to certain responsibilities for 343 | you if you distribute copies of the library or if you modify it. 344 | 345 | For example, if you distribute copies of the library, whether gratis 346 | or for a fee, you must give the recipients all the rights that we gave 347 | you. You must make sure that they, too, receive or can get the source 348 | code. If you link other code with the library, you must provide 349 | complete object files to the recipients, so that they can relink them 350 | with the library after making changes to the library and recompiling 351 | it. And you must show them these terms so they know their rights. 352 | 353 | We protect your rights with a two-step method: (1) we copyright the 354 | library, and (2) we offer you this license, which gives you legal 355 | permission to copy, distribute and/or modify the library. 356 | 357 | To protect each distributor, we want to make it very clear that 358 | there is no warranty for the free library. Also, if the library is 359 | modified by someone else and passed on, the recipients should know 360 | that what they have is not the original version, so that the original 361 | author's reputation will not be affected by problems that might be 362 | introduced by others. 363 | 364 | Finally, software patents pose a constant threat to the existence of 365 | any free program. We wish to make sure that a company cannot 366 | effectively restrict the users of a free program by obtaining a 367 | restrictive license from a patent holder. Therefore, we insist that 368 | any patent license obtained for a version of the library must be 369 | consistent with the full freedom of use specified in this license. 370 | 371 | Most GNU software, including some libraries, is covered by the 372 | ordinary GNU General Public License. This license, the GNU Lesser 373 | General Public License, applies to certain designated libraries, and 374 | is quite different from the ordinary General Public License. We use 375 | this license for certain libraries in order to permit linking those 376 | libraries into non-free programs. 377 | 378 | When a program is linked with a library, whether statically or using 379 | a shared library, the combination of the two is legally speaking a 380 | combined work, a derivative of the original library. The ordinary 381 | General Public License therefore permits such linking only if the 382 | entire combination fits its criteria of freedom. The Lesser General 383 | Public License permits more lax criteria for linking other code with 384 | the library. 385 | 386 | We call this license the "Lesser" General Public License because it 387 | does Less to protect the user's freedom than the ordinary General 388 | Public License. It also provides other free software developers Less 389 | of an advantage over competing non-free programs. These disadvantages 390 | are the reason we use the ordinary General Public License for many 391 | libraries. However, the Lesser license provides advantages in certain 392 | special circumstances. 393 | 394 | For example, on rare occasions, there may be a special need to 395 | encourage the widest possible use of a certain library, so that it becomes 396 | a de-facto standard. To achieve this, non-free programs must be 397 | allowed to use the library. A more frequent case is that a free 398 | library does the same job as widely used non-free libraries. In this 399 | case, there is little to gain by limiting the free library to free 400 | software only, so we use the Lesser General Public License. 401 | 402 | In other cases, permission to use a particular library in non-free 403 | programs enables a greater number of people to use a large body of 404 | free software. For example, permission to use the GNU C Library in 405 | non-free programs enables many more people to use the whole GNU 406 | operating system, as well as its variant, the GNU/Linux operating 407 | system. 408 | 409 | Although the Lesser General Public License is Less protective of the 410 | users' freedom, it does ensure that the user of a program that is 411 | linked with the Library has the freedom and the wherewithal to run 412 | that program using a modified version of the Library. 413 | 414 | The precise terms and conditions for copying, distribution and 415 | modification follow. Pay close attention to the difference between a 416 | "work based on the library" and a "work that uses the library". The 417 | former contains code derived from the library, whereas the latter must 418 | be combined with the library in order to run. 419 | 420 | GNU LESSER GENERAL PUBLIC LICENSE 421 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 422 | 423 | 0. This License Agreement applies to any software library or other 424 | program which contains a notice placed by the copyright holder or 425 | other authorized party saying it may be distributed under the terms of 426 | this Lesser General Public License (also called "this License"). 427 | Each licensee is addressed as "you". 428 | 429 | A "library" means a collection of software functions and/or data 430 | prepared so as to be conveniently linked with application programs 431 | (which use some of those functions and data) to form executables. 432 | 433 | The "Library", below, refers to any such software library or work 434 | which has been distributed under these terms. A "work based on the 435 | Library" means either the Library or any derivative work under 436 | copyright law: that is to say, a work containing the Library or a 437 | portion of it, either verbatim or with modifications and/or translated 438 | straightforwardly into another language. (Hereinafter, translation is 439 | included without limitation in the term "modification".) 440 | 441 | "Source code" for a work means the preferred form of the work for 442 | making modifications to it. For a library, complete source code means 443 | all the source code for all modules it contains, plus any associated 444 | interface definition files, plus the scripts used to control compilation 445 | and installation of the library. 446 | 447 | Activities other than copying, distribution and modification are not 448 | covered by this License; they are outside its scope. The act of 449 | running a program using the Library is not restricted, and output from 450 | such a program is covered only if its contents constitute a work based 451 | on the Library (independent of the use of the Library in a tool for 452 | writing it). Whether that is true depends on what the Library does 453 | and what the program that uses the Library does. 454 | 455 | 1. You may copy and distribute verbatim copies of the Library's 456 | complete source code as you receive it, in any medium, provided that 457 | you conspicuously and appropriately publish on each copy an 458 | appropriate copyright notice and disclaimer of warranty; keep intact 459 | all the notices that refer to this License and to the absence of any 460 | warranty; and distribute a copy of this License along with the 461 | Library. 462 | 463 | You may charge a fee for the physical act of transferring a copy, 464 | and you may at your option offer warranty protection in exchange for a 465 | fee. 466 | 467 | 2. You may modify your copy or copies of the Library or any portion 468 | of it, thus forming a work based on the Library, and copy and 469 | distribute such modifications or work under the terms of Section 1 470 | above, provided that you also meet all of these conditions: 471 | 472 | a) The modified work must itself be a software library. 473 | 474 | b) You must cause the files modified to carry prominent notices 475 | stating that you changed the files and the date of any change. 476 | 477 | c) You must cause the whole of the work to be licensed at no 478 | charge to all third parties under the terms of this License. 479 | 480 | d) If a facility in the modified Library refers to a function or a 481 | table of data to be supplied by an application program that uses 482 | the facility, other than as an argument passed when the facility 483 | is invoked, then you must make a good faith effort to ensure that, 484 | in the event an application does not supply such function or 485 | table, the facility still operates, and performs whatever part of 486 | its purpose remains meaningful. 487 | 488 | (For example, a function in a library to compute square roots has 489 | a purpose that is entirely well-defined independent of the 490 | application. Therefore, Subsection 2d requires that any 491 | application-supplied function or table used by this function must 492 | be optional: if the application does not supply it, the square 493 | root function must still compute square roots.) 494 | 495 | These requirements apply to the modified work as a whole. If 496 | identifiable sections of that work are not derived from the Library, 497 | and can be reasonably considered independent and separate works in 498 | themselves, then this License, and its terms, do not apply to those 499 | sections when you distribute them as separate works. But when you 500 | distribute the same sections as part of a whole which is a work based 501 | on the Library, the distribution of the whole must be on the terms of 502 | this License, whose permissions for other licensees extend to the 503 | entire whole, and thus to each and every part regardless of who wrote 504 | it. 505 | 506 | Thus, it is not the intent of this section to claim rights or contest 507 | your rights to work written entirely by you; rather, the intent is to 508 | exercise the right to control the distribution of derivative or 509 | collective works based on the Library. 510 | 511 | In addition, mere aggregation of another work not based on the Library 512 | with the Library (or with a work based on the Library) on a volume of 513 | a storage or distribution medium does not bring the other work under 514 | the scope of this License. 515 | 516 | 3. You may opt to apply the terms of the ordinary GNU General Public 517 | License instead of this License to a given copy of the Library. To do 518 | this, you must alter all the notices that refer to this License, so 519 | that they refer to the ordinary GNU General Public License, version 2, 520 | instead of to this License. (If a newer version than version 2 of the 521 | ordinary GNU General Public License has appeared, then you can specify 522 | that version instead if you wish.) Do not make any other change in 523 | these notices. 524 | 525 | Once this change is made in a given copy, it is irreversible for 526 | that copy, so the ordinary GNU General Public License applies to all 527 | subsequent copies and derivative works made from that copy. 528 | 529 | This option is useful when you wish to copy part of the code of 530 | the Library into a program that is not a library. 531 | 532 | 4. You may copy and distribute the Library (or a portion or 533 | derivative of it, under Section 2) in object code or executable form 534 | under the terms of Sections 1 and 2 above provided that you accompany 535 | it with the complete corresponding machine-readable source code, which 536 | must be distributed under the terms of Sections 1 and 2 above on a 537 | medium customarily used for software interchange. 538 | 539 | If distribution of object code is made by offering access to copy 540 | from a designated place, then offering equivalent access to copy the 541 | source code from the same place satisfies the requirement to 542 | distribute the source code, even though third parties are not 543 | compelled to copy the source along with the object code. 544 | 545 | 5. A program that contains no derivative of any portion of the 546 | Library, but is designed to work with the Library by being compiled or 547 | linked with it, is called a "work that uses the Library". Such a 548 | work, in isolation, is not a derivative work of the Library, and 549 | therefore falls outside the scope of this License. 550 | 551 | However, linking a "work that uses the Library" with the Library 552 | creates an executable that is a derivative of the Library (because it 553 | contains portions of the Library), rather than a "work that uses the 554 | library". The executable is therefore covered by this License. 555 | Section 6 states terms for distribution of such executables. 556 | 557 | When a "work that uses the Library" uses material from a header file 558 | that is part of the Library, the object code for the work may be a 559 | derivative work of the Library even though the source code is not. 560 | Whether this is true is especially significant if the work can be 561 | linked without the Library, or if the work is itself a library. The 562 | threshold for this to be true is not precisely defined by law. 563 | 564 | If such an object file uses only numerical parameters, data 565 | structure layouts and accessors, and small macros and small inline 566 | functions (ten lines or less in length), then the use of the object 567 | file is unrestricted, regardless of whether it is legally a derivative 568 | work. (Executables containing this object code plus portions of the 569 | Library will still fall under Section 6.) 570 | 571 | Otherwise, if the work is a derivative of the Library, you may 572 | distribute the object code for the work under the terms of Section 6. 573 | Any executables containing that work also fall under Section 6, 574 | whether or not they are linked directly with the Library itself. 575 | 576 | 6. As an exception to the Sections above, you may also combine or 577 | link a "work that uses the Library" with the Library to produce a 578 | work containing portions of the Library, and distribute that work 579 | under terms of your choice, provided that the terms permit 580 | modification of the work for the customer's own use and reverse 581 | engineering for debugging such modifications. 582 | 583 | You must give prominent notice with each copy of the work that the 584 | Library is used in it and that the Library and its use are covered by 585 | this License. You must supply a copy of this License. If the work 586 | during execution displays copyright notices, you must include the 587 | copyright notice for the Library among them, as well as a reference 588 | directing the user to the copy of this License. Also, you must do one 589 | of these things: 590 | 591 | a) Accompany the work with the complete corresponding 592 | machine-readable source code for the Library including whatever 593 | changes were used in the work (which must be distributed under 594 | Sections 1 and 2 above); and, if the work is an executable linked 595 | with the Library, with the complete machine-readable "work that 596 | uses the Library", as object code and/or source code, so that the 597 | user can modify the Library and then relink to produce a modified 598 | executable containing the modified Library. (It is understood 599 | that the user who changes the contents of definitions files in the 600 | Library will not necessarily be able to recompile the application 601 | to use the modified definitions.) 602 | 603 | b) Use a suitable shared library mechanism for linking with the 604 | Library. A suitable mechanism is one that (1) uses at run time a 605 | copy of the library already present on the user's computer system, 606 | rather than copying library functions into the executable, and (2) 607 | will operate properly with a modified version of the library, if 608 | the user installs one, as long as the modified version is 609 | interface-compatible with the version that the work was made with. 610 | 611 | c) Accompany the work with a written offer, valid for at 612 | least three years, to give the same user the materials 613 | specified in Subsection 6a, above, for a charge no more 614 | than the cost of performing this distribution. 615 | 616 | d) If distribution of the work is made by offering access to copy 617 | from a designated place, offer equivalent access to copy the above 618 | specified materials from the same place. 619 | 620 | e) Verify that the user has already received a copy of these 621 | materials or that you have already sent this user a copy. 622 | 623 | For an executable, the required form of the "work that uses the 624 | Library" must include any data and utility programs needed for 625 | reproducing the executable from it. However, as a special exception, 626 | the materials to be distributed need not include anything that is 627 | normally distributed (in either source or binary form) with the major 628 | components (compiler, kernel, and so on) of the operating system on 629 | which the executable runs, unless that component itself accompanies 630 | the executable. 631 | 632 | It may happen that this requirement contradicts the license 633 | restrictions of other proprietary libraries that do not normally 634 | accompany the operating system. Such a contradiction means you cannot 635 | use both them and the Library together in an executable that you 636 | distribute. 637 | 638 | 7. You may place library facilities that are a work based on the 639 | Library side-by-side in a single library together with other library 640 | facilities not covered by this License, and distribute such a combined 641 | library, provided that the separate distribution of the work based on 642 | the Library and of the other library facilities is otherwise 643 | permitted, and provided that you do these two things: 644 | 645 | a) Accompany the combined library with a copy of the same work 646 | based on the Library, uncombined with any other library 647 | facilities. This must be distributed under the terms of the 648 | Sections above. 649 | 650 | b) Give prominent notice with the combined library of the fact 651 | that part of it is a work based on the Library, and explaining 652 | where to find the accompanying uncombined form of the same work. 653 | 654 | 8. You may not copy, modify, sublicense, link with, or distribute 655 | the Library except as expressly provided under this License. Any 656 | attempt otherwise to copy, modify, sublicense, link with, or 657 | distribute the Library is void, and will automatically terminate your 658 | rights under this License. However, parties who have received copies, 659 | or rights, from you under this License will not have their licenses 660 | terminated so long as such parties remain in full compliance. 661 | 662 | 9. You are not required to accept this License, since you have not 663 | signed it. However, nothing else grants you permission to modify or 664 | distribute the Library or its derivative works. These actions are 665 | prohibited by law if you do not accept this License. Therefore, by 666 | modifying or distributing the Library (or any work based on the 667 | Library), you indicate your acceptance of this License to do so, and 668 | all its terms and conditions for copying, distributing or modifying 669 | the Library or works based on it. 670 | 671 | 10. Each time you redistribute the Library (or any work based on the 672 | Library), the recipient automatically receives a license from the 673 | original licensor to copy, distribute, link with or modify the Library 674 | subject to these terms and conditions. You may not impose any further 675 | restrictions on the recipients' exercise of the rights granted herein. 676 | You are not responsible for enforcing compliance by third parties with 677 | this License. 678 | 679 | 11. If, as a consequence of a court judgment or allegation of patent 680 | infringement or for any other reason (not limited to patent issues), 681 | conditions are imposed on you (whether by court order, agreement or 682 | otherwise) that contradict the conditions of this License, they do not 683 | excuse you from the conditions of this License. If you cannot 684 | distribute so as to satisfy simultaneously your obligations under this 685 | License and any other pertinent obligations, then as a consequence you 686 | may not distribute the Library at all. For example, if a patent 687 | license would not permit royalty-free redistribution of the Library by 688 | all those who receive copies directly or indirectly through you, then 689 | the only way you could satisfy both it and this License would be to 690 | refrain entirely from distribution of the Library. 691 | 692 | If any portion of this section is held invalid or unenforceable under any 693 | particular circumstance, the balance of the section is intended to apply, 694 | and the section as a whole is intended to apply in other circumstances. 695 | 696 | It is not the purpose of this section to induce you to infringe any 697 | patents or other property right claims or to contest validity of any 698 | such claims; this section has the sole purpose of protecting the 699 | integrity of the free software distribution system which is 700 | implemented by public license practices. Many people have made 701 | generous contributions to the wide range of software distributed 702 | through that system in reliance on consistent application of that 703 | system; it is up to the author/donor to decide if he or she is willing 704 | to distribute software through any other system and a licensee cannot 705 | impose that choice. 706 | 707 | This section is intended to make thoroughly clear what is believed to 708 | be a consequence of the rest of this License. 709 | 710 | 12. If the distribution and/or use of the Library is restricted in 711 | certain countries either by patents or by copyrighted interfaces, the 712 | original copyright holder who places the Library under this License may add 713 | an explicit geographical distribution limitation excluding those countries, 714 | so that distribution is permitted only in or among countries not thus 715 | excluded. In such case, this License incorporates the limitation as if 716 | written in the body of this License. 717 | 718 | 13. The Free Software Foundation may publish revised and/or new 719 | versions of the Lesser General Public License from time to time. 720 | Such new versions will be similar in spirit to the present version, 721 | but may differ in detail to address new problems or concerns. 722 | 723 | Each version is given a distinguishing version number. If the Library 724 | specifies a version number of this License which applies to it and 725 | "any later version", you have the option of following the terms and 726 | conditions either of that version or of any later version published by 727 | the Free Software Foundation. If the Library does not specify a 728 | license version number, you may choose any version ever published by 729 | the Free Software Foundation. 730 | 731 | 14. If you wish to incorporate parts of the Library into other free 732 | programs whose distribution conditions are incompatible with these, 733 | write to the author to ask for permission. For software which is 734 | copyrighted by the Free Software Foundation, write to the Free 735 | Software Foundation; we sometimes make exceptions for this. Our 736 | decision will be guided by the two goals of preserving the free status 737 | of all derivatives of our free software and of promoting the sharing 738 | and reuse of software generally. 739 | 740 | NO WARRANTY 741 | 742 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 743 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 744 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 745 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 746 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 747 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 748 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 749 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 750 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 751 | 752 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 753 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 754 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 755 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 756 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 757 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 758 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 759 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 760 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 761 | DAMAGES. 762 | -------------------------------------------------------------------------------- /source/.gitignore: -------------------------------------------------------------------------------- 1 | nupkg/ 2 | *.nupkg 3 | nuget.exe 4 | -------------------------------------------------------------------------------- /source/Microsoft.IoT.SDKFromArduino.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.IoT.SDKFromArduino 5 | 1.1.1 6 | Arduino SDK 7 | Microsoft Open Technologies, Inc. 8 | Microsoft Open Technologies, Inc. 9 | https://github.com/arduino/Arduino/blob/master/license.txt 10 | http://www.arduino.cc 11 | false 12 | SDKFromArduino contains sources implemented by the Arduino community. 13 | Arduino SDK 14 | 15 | Copyright 2015 16 | arduino microsoft native nativepackage 17 | 18 | -------------------------------------------------------------------------------- /source/Microsoft.IoT.SDKFromArduino.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(MSBuildThisFileDirectory)\include;%(AdditionalIncludeDirectories) 6 | 7 | 8 | $(MSBuildThisFileDirectory)\include;%(AdditionalIncludeDirectories) 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /source/build-nupkg.cmd: -------------------------------------------------------------------------------- 1 | @if "%echo_on%" == "" @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | :: Parse options 5 | :GETOPTS 6 | if /I "%~1" == "/?" goto USAGE 7 | if /I "%~1" == "/Help" goto USAGE 8 | if /I "%~1" == "/clean" set CLEAN=1 9 | if /I "%~1" == "/nopack" set NOPACK=1 10 | shift 11 | if not (%1)==() goto GETOPTS 12 | 13 | echo Cleaning outputs 14 | del Microsoft.IoT.SDKFromArduino*.nupkg 2> NUL 15 | rmdir /s /q nupkg 2> NUL 16 | 17 | :: if a clean was requested, exit here 18 | if "%CLEAN%"=="1" goto end 19 | 20 | echo. 21 | echo Creating nupkg directory structure 22 | md nupkg 23 | md nupkg\build 24 | md nupkg\build\native 25 | md nupkg\build\native\include 26 | md nupkg\build\native\source 27 | md nupkg\build\native\lib 28 | 29 | set arduinoSDKSources=..\Arduino\hardware\arduino\avr\cores\arduino 30 | set arduinoLibrarySources=..\Arduino\libraries 31 | 32 | if not exist %arduinoSDKSources%\Print.h ( 33 | echo The Arduino sources are not checked out. checking them out 34 | pushd .. 35 | git submodule init 36 | git submodule update 37 | popd 38 | ) 39 | 40 | if not exist %arduinoSDKSources%\Print.h ( 41 | echo The Arduino sources could not be checked out 42 | ) 43 | 44 | echo. 45 | echo Copying files into nuget package structure 46 | copy Microsoft.IoT.SDKFromArduino.nuspec nupkg /y || goto err 47 | copy Microsoft.IoT.SDKFromArduino.targets nupkg\build\native /y || goto err 48 | 49 | if exist *.h (copy *.h nupkg\build\native\include /y) || goto err 50 | copy %arduinoSDKSources%\binary.h nupkg\build\native\include /y || goto err 51 | copy %arduinoSDKSources%\Client.h nupkg\build\native\include /y || goto err 52 | copy %arduinoSDKSources%\IPAddress.h nupkg\build\native\include /y || goto err 53 | copy %arduinoSDKSources%\Print.h nupkg\build\native\include /y || goto err 54 | copy %arduinoSDKSources%\Printable.h nupkg\build\native\include /y || goto err 55 | copy %arduinoSDKSources%\Server.h nupkg\build\native\include /y || goto err 56 | copy %arduinoSDKSources%\Stream.h nupkg\build\native\include /y || goto err 57 | copy %arduinoSDKSources%\WCharacter.h nupkg\build\native\include /y || goto err 58 | copy %arduinoSDKSources%\WString.h nupkg\build\native\include /y || goto err 59 | copy %arduinoSDKSources%\Udp.h nupkg\build\native\include /y || goto err 60 | copy %arduinoLibrarySources%\LiquidCrystal\src\LiquidCrystal.h nupkg\build\native\include /y || goto err 61 | copy %arduinoLibrarySources%\Stepper\src\Stepper.h nupkg\build\native\include /y || goto err 62 | 63 | if exist *.cpp (copy *.cpp nupkg\build\native\source /y) || goto err 64 | copy %arduinoSDKSources%\IPAddress.cpp nupkg\build\native\source /y || goto err 65 | copy %arduinoSDKSources%\Print.cpp nupkg\build\native\source /y || goto err 66 | copy %arduinoSDKSources%\Stream.cpp nupkg\build\native\source /y || goto err 67 | copy %arduinoSDKSources%\WString.cpp nupkg\build\native\source /y || goto err 68 | copy %arduinoLibrarySources%\LiquidCrystal\src\LiquidCrystal.cpp nupkg\build\native\source /y || goto err 69 | copy %arduinoLibrarySources%\Stepper\src\Stepper.cpp nupkg\build\native\source /y || goto err 70 | 71 | copy ..\license.txt nupkg /y || goto err 72 | copy ..\notices.txt nupkg /y || goto err 73 | 74 | :: skip packaging step if requested 75 | if "%NOPACK%"=="1" goto end 76 | 77 | echo Creating NuGet Package 78 | nuget help > NUL 79 | IF ERRORLEVEL 1 ( 80 | echo Please install nuget.exe from http://nuget.org 81 | goto err 82 | ) 83 | nuget pack nupkg\Microsoft.IoT.SDKFromArduino.nuspec || goto err 84 | 85 | 86 | :end 87 | 88 | echo Success 89 | exit /b 0 90 | 91 | :err 92 | echo Script failed! 93 | exit /b 1 94 | --------------------------------------------------------------------------------